summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2011-07-18 16:18:16 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2011-07-18 16:18:16 +0000
commit09ebaa023a6de546459647da40d1b4c80348163f (patch)
treec6ca0abb5dd0293b61140ec9d3fb9acf97c78c3c
parent5a8c15659e2b173c1011b016017db4ed36dacf45 (diff)
downloadATCD-09ebaa023a6de546459647da40d1b4c80348163f.tar.gz
Mon Jul 18 16:06:27 UTC 2011 William Otte <wotte@Williams-MacBook-Air.local>
* ace/OS_NS_errno.h: Resolved conflict from merge from head.
-rw-r--r--ACE/ACE-INSTALL.html133
-rw-r--r--ACE/ACE.mwc2
-rw-r--r--ACE/ACEXML/ChangeLog71
-rw-r--r--ACE/ACEXML/apps/svcconf/Svcconf.cpp37
-rw-r--r--ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp282
-rw-r--r--ACE/ACEXML/apps/svcconf/Svcconf_Handler.h57
-rw-r--r--ACE/ACEXML/apps/svcconf/svcconf.mpc5
-rw-r--r--ACE/ACEXML/common/Attributes.cpp8
-rw-r--r--ACE/ACEXML/common/Attributes_Def_Builder.h17
-rw-r--r--ACE/ACEXML/common/CharStream.h2
-rw-r--r--ACE/ACEXML/common/ContentHandler.cpp8
-rw-r--r--ACE/ACEXML/common/ContentHandler.h32
-rw-r--r--ACE/ACEXML/common/DTDHandler.cpp8
-rw-r--r--ACE/ACEXML/common/DTDHandler.h6
-rw-r--r--ACE/ACEXML/common/DTD_Manager.h6
-rw-r--r--ACE/ACEXML/common/DefaultHandler.cpp33
-rw-r--r--ACE/ACEXML/common/DefaultHandler.h33
-rw-r--r--ACE/ACEXML/common/Element_Def_Builder.h12
-rw-r--r--ACE/ACEXML/common/EntityResolver.cpp8
-rw-r--r--ACE/ACEXML/common/EntityResolver.h4
-rw-r--r--ACE/ACEXML/common/Env.cpp34
-rw-r--r--ACE/ACEXML/common/Env.h72
-rw-r--r--ACE/ACEXML/common/Env.inl25
-rw-r--r--ACE/ACEXML/common/ErrorHandler.cpp8
-rw-r--r--ACE/ACEXML/common/ErrorHandler.h10
-rw-r--r--ACE/ACEXML/common/Exception.h8
-rw-r--r--ACE/ACEXML/common/HttpCharStream.cpp12
-rw-r--r--ACE/ACEXML/common/Locator.cpp8
-rw-r--r--ACE/ACEXML/common/Makefile.am4
-rw-r--r--ACE/ACEXML/common/Mem_Map_Stream.cpp4
-rw-r--r--ACE/ACEXML/common/NamespaceSupport.cpp2
-rw-r--r--ACE/ACEXML/common/SAXExceptions.inl8
-rw-r--r--ACE/ACEXML/common/StreamFactory.cpp2
-rw-r--r--ACE/ACEXML/common/Transcode.cpp4
-rw-r--r--ACE/ACEXML/common/URL_Addr.cpp2
-rw-r--r--ACE/ACEXML/common/Validator.h7
-rw-r--r--ACE/ACEXML/common/XMLFilterImpl.cpp117
-rw-r--r--ACE/ACEXML/common/XMLFilterImpl.h49
-rw-r--r--ACE/ACEXML/common/XMLReader.cpp8
-rw-r--r--ACE/ACEXML/common/XMLReader.h20
-rw-r--r--ACE/ACEXML/common/XML_Codecs.cpp2
-rw-r--r--ACE/ACEXML/common/XML_Macros.h456
-rw-r--r--ACE/ACEXML/common/XML_Types.h2
-rw-r--r--ACE/ACEXML/common/common.mpc5
-rw-r--r--ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp38
-rw-r--r--ACE/ACEXML/examples/SAXPrint/Print_Handler.h48
-rw-r--r--ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp41
-rw-r--r--ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h49
-rw-r--r--ACE/ACEXML/examples/SAXPrint/main.cpp21
-rw-r--r--ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp14
-rw-r--r--ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h8
-rw-r--r--ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp14
-rw-r--r--ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.h6
-rw-r--r--ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp16
-rw-r--r--ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h13
-rw-r--r--ACE/ACEXML/parser/parser/Parser.cpp1119
-rw-r--r--ACE/ACEXML/parser/parser/Parser.h92
-rw-r--r--ACE/ACEXML/parser/parser/parser.mpc4
-rw-r--r--ACE/ACEXML/tests/ContentHandler_Test.cpp29
-rw-r--r--ACE/ACEXML/tests/Transcoder_Test.cpp3
-rw-r--r--ACE/ASNMP/agent/agent.mpc1
-rw-r--r--ACE/ASNMP/agent/agent_impl.cpp2
-rw-r--r--ACE/ASNMP/agent/agent_impl.h35
-rw-r--r--ACE/ASNMP/agent/main.cpp8
-rw-r--r--ACE/ASNMP/agent/snmp_agent.cpp16
-rw-r--r--ACE/ASNMP/agent/snmp_agent.h37
-rw-r--r--ACE/ASNMP/asnmp/address.cpp52
-rw-r--r--ACE/ASNMP/asnmp/address.h12
-rw-r--r--ACE/ASNMP/asnmp/asn1.cpp53
-rw-r--r--ACE/ASNMP/asnmp/asnmp.mpc2
-rw-r--r--ACE/ASNMP/asnmp/counter.cpp31
-rw-r--r--ACE/ASNMP/asnmp/ctr64.cpp33
-rw-r--r--ACE/ASNMP/asnmp/gauge.cpp33
-rw-r--r--ACE/ASNMP/asnmp/integer.cpp33
-rw-r--r--ACE/ASNMP/asnmp/octet.cpp37
-rw-r--r--ACE/ASNMP/asnmp/oid.cpp35
-rw-r--r--ACE/ASNMP/asnmp/pdu.cpp35
-rw-r--r--ACE/ASNMP/asnmp/sagent.cpp35
-rw-r--r--ACE/ASNMP/asnmp/snmp.cpp36
-rw-r--r--ACE/ASNMP/asnmp/target.cpp33
-rw-r--r--ACE/ASNMP/asnmp/timetick.cpp39
-rw-r--r--ACE/ASNMP/asnmp/transaction.cpp36
-rw-r--r--ACE/ASNMP/asnmp/transaction.h2
-rw-r--r--ACE/ASNMP/asnmp/vb.cpp43
-rw-r--r--ACE/ASNMP/asnmp/wpdu.cpp35
-rw-r--r--ACE/ASNMP/examples/get/get.cpp33
-rw-r--r--ACE/ASNMP/examples/get/get_async.cpp34
-rw-r--r--ACE/ASNMP/examples/next/next.cpp33
-rw-r--r--ACE/ASNMP/examples/set/set.cpp33
-rw-r--r--ACE/ASNMP/examples/trap/trap.cpp33
-rw-r--r--ACE/ASNMP/examples/walk/walk.cpp33
-rw-r--r--ACE/ASNMP/tests/Address_Test.cpp35
-rw-r--r--ACE/ASNMP/tests/Counter64_Test.cpp37
-rw-r--r--ACE/ASNMP/tests/Counter_Test.cpp33
-rw-r--r--ACE/ASNMP/tests/Gauge_Test.cpp33
-rw-r--r--ACE/ASNMP/tests/Integer_Test.cpp37
-rw-r--r--ACE/ASNMP/tests/Octet_Test.cpp35
-rw-r--r--ACE/ASNMP/tests/Oid_Test.cpp35
-rw-r--r--ACE/ASNMP/tests/Target_Test.cpp35
-rw-r--r--ACE/ASNMP/tests/Varbind_Test.cpp34
-rwxr-xr-xACE/ASNMP/tests/run_tests.sh4
-rw-r--r--ACE/ASNMP/tests/test_config.h24
-rw-r--r--ACE/COPYING101
-rw-r--r--ACE/ChangeLog6
-rw-r--r--ACE/ChangeLogs/ChangeLog-1993 (renamed from ACE/ChangeLogs/ChangeLog-93)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1994 (renamed from ACE/ChangeLogs/ChangeLog-94)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1995 (renamed from ACE/ChangeLogs/ChangeLog-95)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1996a (renamed from ACE/ChangeLogs/ChangeLog-96a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1996b (renamed from ACE/ChangeLogs/ChangeLog-96b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1997a (renamed from ACE/ChangeLogs/ChangeLog-97a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1997b (renamed from ACE/ChangeLogs/ChangeLog-97b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1998a (renamed from ACE/ChangeLogs/ChangeLog-98a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1998b (renamed from ACE/ChangeLogs/ChangeLog-98b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1999a (renamed from ACE/ChangeLogs/ChangeLog-99a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-1999b (renamed from ACE/ChangeLogs/ChangeLog-99b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2000a (renamed from ACE/ChangeLogs/ChangeLog-00a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2000b (renamed from ACE/ChangeLogs/ChangeLog-00b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2001a (renamed from ACE/ChangeLogs/ChangeLog-01a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2001b (renamed from ACE/ChangeLogs/ChangeLog-01b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2002a (renamed from ACE/ChangeLogs/ChangeLog-02a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2002b (renamed from ACE/ChangeLogs/ChangeLog-02b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2003a (renamed from ACE/ChangeLogs/ChangeLog-03a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2003b (renamed from ACE/ChangeLogs/ChangeLog-03b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2003c (renamed from ACE/ChangeLogs/ChangeLog-03c)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2004a (renamed from ACE/ChangeLogs/ChangeLog-04a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2004b (renamed from ACE/ChangeLogs/ChangeLog-04b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2005a (renamed from ACE/ChangeLogs/ChangeLog-05a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2005b (renamed from ACE/ChangeLogs/ChangeLog-05b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2005c (renamed from ACE/ChangeLogs/ChangeLog-05c)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2006a (renamed from ACE/ChangeLogs/ChangeLog-06a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2006b (renamed from ACE/ChangeLogs/ChangeLog-06b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2007a (renamed from ACE/ChangeLogs/ChangeLog-07a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2007b (renamed from ACE/ChangeLogs/ChangeLog-07b)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2008a (renamed from ACE/ChangeLogs/ChangeLog-08a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2009a (renamed from ACE/ChangeLogs/ChangeLog-09a)0
-rw-r--r--ACE/ChangeLogs/ChangeLog-2009b4554
-rw-r--r--ACE/ChangeLogs/ChangeLog-2010a2589
-rw-r--r--ACE/ChangeLogs/ChangeLog-2010b1777
-rw-r--r--ACE/ChangeLogs/ChangeLog-2011a5943
-rw-r--r--ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp2
-rw-r--r--ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp8
-rw-r--r--ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h2
-rw-r--r--ACE/Kokyu/DSRT_Dispatch_Item_T.cpp2
-rw-r--r--ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp4
-rw-r--r--ACE/Kokyu/DSRT_Sched_Queue_T.cpp38
-rw-r--r--ACE/Kokyu/Default_Dispatcher_Impl.cpp18
-rw-r--r--ACE/Kokyu/Dispatch_Deferrer.cpp3
-rw-r--r--ACE/Kokyu/Dispatch_Deferrer.h3
-rw-r--r--ACE/Kokyu/Dispatcher_Impl.cpp2
-rw-r--r--ACE/Kokyu/Dispatcher_Task.cpp6
-rw-r--r--ACE/Kokyu/Dispatcher_Task.inl4
-rw-r--r--ACE/Kokyu/Kokyu.cpp2
-rw-r--r--ACE/Kokyu/Kokyu.h2
-rw-r--r--ACE/Kokyu/Kokyu.mpc7
-rw-r--r--ACE/Kokyu/Kokyu_defs.cpp2
-rw-r--r--ACE/Kokyu/Kokyu_defs.h2
-rw-r--r--ACE/Kokyu/Kokyu_dsrt.cpp20
-rw-r--r--ACE/Kokyu/Kokyu_dsrt.h4
-rw-r--r--ACE/Kokyu/tests/DSRT_MIF/svc.conf5
-rw-r--r--ACE/Kokyu/tests/EDF/test.cpp2
-rw-r--r--ACE/Kokyu/tests/FIFO/test.cpp2
-rw-r--r--ACE/Makefile.am3
-rw-r--r--ACE/NEWS292
-rw-r--r--ACE/PROBLEM-REPORT-FORM20
-rw-r--r--ACE/Release210
-rw-r--r--ACE/THANKS88
-rw-r--r--ACE/VERSION13
-rw-r--r--ACE/ace/ACE.cpp342
-rw-r--r--ACE/ace/ACE.h80
-rw-r--r--ACE/ace/ACE.inl49
-rw-r--r--ACE/ace/ACE_crc32.cpp5
-rw-r--r--ACE/ace/ACE_crc_ccitt.cpp4
-rw-r--r--ACE/ace/ACE_export.h4
-rw-r--r--ACE/ace/ARGV.cpp2
-rw-r--r--ACE/ace/ATM_Acceptor.cpp2
-rw-r--r--ACE/ace/ATM_Addr.cpp2
-rw-r--r--ACE/ace/ATM_Connector.cpp2
-rw-r--r--ACE/ace/ATM_Params.cpp2
-rw-r--r--ACE/ace/ATM_QoS.cpp2
-rw-r--r--ACE/ace/ATM_Stream.cpp2
-rw-r--r--ACE/ace/ATM_Stream.inl1
-rw-r--r--ACE/ace/Acceptor.cpp69
-rw-r--r--ACE/ace/Acceptor.h55
-rw-r--r--ACE/ace/Activation_Queue.cpp6
-rw-r--r--ACE/ace/Activation_Queue.h13
-rw-r--r--ACE/ace/Active_Map_Manager.cpp2
-rw-r--r--ACE/ace/Active_Map_Manager.h4
-rw-r--r--ACE/ace/Addr.cpp4
-rw-r--r--ACE/ace/Addr.inl12
-rw-r--r--ACE/ace/Arg_Shifter.cpp7
-rw-r--r--ACE/ace/Arg_Shifter.h25
-rw-r--r--ACE/ace/Argv_Type_Converter.cpp24
-rw-r--r--ACE/ace/Argv_Type_Converter.h2
-rw-r--r--ACE/ace/Array.h29
-rw-r--r--ACE/ace/Array_Base.h6
-rw-r--r--ACE/ace/Array_Map.cpp37
-rw-r--r--ACE/ace/Array_Map.h9
-rw-r--r--ACE/ace/Assert.cpp2
-rw-r--r--ACE/ace/Asynch_Acceptor.cpp17
-rw-r--r--ACE/ace/Asynch_Acceptor.h5
-rw-r--r--ACE/ace/Asynch_Connector.cpp26
-rw-r--r--ACE/ace/Asynch_IO.cpp2
-rw-r--r--ACE/ace/Asynch_IO_Impl.h2
-rw-r--r--ACE/ace/Asynch_Pseudo_Task.cpp2
-rw-r--r--ACE/ace/Atomic_Op.cpp36
-rw-r--r--ACE/ace/Atomic_Op.h193
-rw-r--r--ACE/ace/Atomic_Op.inl260
-rw-r--r--ACE/ace/Atomic_Op_GCC_T.cpp25
-rw-r--r--ACE/ace/Atomic_Op_GCC_T.h136
-rw-r--r--ACE/ace/Atomic_Op_GCC_T.inl147
-rw-r--r--ACE/ace/Atomic_Op_T.cpp4
-rw-r--r--ACE/ace/Atomic_Op_T.h39
-rw-r--r--ACE/ace/Atomic_Op_T.inl8
-rw-r--r--ACE/ace/Auto_Event.cpp4
-rw-r--r--ACE/ace/Auto_Event.h2
-rw-r--r--ACE/ace/Auto_Functor.h6
-rw-r--r--ACE/ace/Auto_Functor.inl14
-rw-r--r--ACE/ace/Auto_IncDec_T.h22
-rw-r--r--ACE/ace/Auto_Ptr.cpp2
-rw-r--r--ACE/ace/Auto_Ptr.h16
-rw-r--r--ACE/ace/Barrier.cpp24
-rw-r--r--ACE/ace/Barrier.h27
-rw-r--r--ACE/ace/Base_Thread_Adapter.cpp6
-rw-r--r--ACE/ace/Base_Thread_Adapter.h22
-rw-r--r--ACE/ace/Basic_Stats.cpp4
-rw-r--r--ACE/ace/Basic_Types.cpp7
-rw-r--r--ACE/ace/Basic_Types.h25
-rw-r--r--ACE/ace/Bound_Ptr.inl4
-rw-r--r--ACE/ace/CDR_Base.cpp42
-rw-r--r--ACE/ace/CDR_Base.h23
-rw-r--r--ACE/ace/CDR_Size.cpp18
-rw-r--r--ACE/ace/CDR_Size.h2
-rw-r--r--ACE/ace/CDR_Stream.cpp10
-rw-r--r--ACE/ace/CE_Screen_Output.h2
-rw-r--r--ACE/ace/CORBA_macros.h489
-rw-r--r--ACE/ace/Cache_Map_Manager_T.cpp70
-rw-r--r--ACE/ace/Cache_Map_Manager_T.h14
-rw-r--r--ACE/ace/Cache_Map_Manager_T.inl4
-rw-r--r--ACE/ace/Cached_Connect_Strategy_T.cpp109
-rw-r--r--ACE/ace/Cached_Connect_Strategy_T.h43
-rw-r--r--ACE/ace/Caching_Strategies_T.h6
-rw-r--r--ACE/ace/Caching_Utility_T.cpp43
-rw-r--r--ACE/ace/Caching_Utility_T.h68
-rw-r--r--ACE/ace/Capabilities.cpp7
-rw-r--r--ACE/ace/Capabilities.h12
-rw-r--r--ACE/ace/Cleanup.cpp4
-rw-r--r--ACE/ace/Cleanup_Strategies_T.cpp4
-rw-r--r--ACE/ace/Codecs.cpp8
-rw-r--r--ACE/ace/Codeset_IBM1047.cpp4
-rw-r--r--ACE/ace/Codeset_Registry.cpp4
-rw-r--r--ACE/ace/Codeset_Registry.h4
-rw-r--r--ACE/ace/Codeset_Registry.inl36
-rw-r--r--ACE/ace/Condition_Recursive_Thread_Mutex.cpp4
-rw-r--r--ACE/ace/Condition_Recursive_Thread_Mutex.h4
-rw-r--r--ACE/ace/Condition_T.cpp15
-rw-r--r--ACE/ace/Condition_T.h13
-rw-r--r--ACE/ace/Condition_Thread_Mutex.cpp2
-rw-r--r--ACE/ace/Condition_Thread_Mutex.h24
-rw-r--r--ACE/ace/Condition_Thread_Mutex.inl21
-rw-r--r--ACE/ace/Configuration.cpp54
-rw-r--r--ACE/ace/Configuration.h56
-rw-r--r--ACE/ace/Configuration_Import_Export.h12
-rw-r--r--ACE/ace/Connection_Recycling_Strategy.cpp6
-rw-r--r--ACE/ace/Connector.cpp54
-rw-r--r--ACE/ace/Connector.h19
-rw-r--r--ACE/ace/Containers.cpp4
-rw-r--r--ACE/ace/Containers_T.cpp33
-rw-r--r--ACE/ace/Containers_T.h7
-rw-r--r--ACE/ace/Copy_Disabled.cpp6
-rw-r--r--ACE/ace/Countdown_Time.cpp29
-rw-r--r--ACE/ace/Countdown_Time.h11
-rw-r--r--ACE/ace/Countdown_Time.inl20
-rw-r--r--ACE/ace/DEV.cpp2
-rw-r--r--ACE/ace/DEV.h13
-rw-r--r--ACE/ace/DEV_Addr.cpp4
-rw-r--r--ACE/ace/DEV_Connector.cpp6
-rw-r--r--ACE/ace/DEV_IO.cpp2
-rw-r--r--ACE/ace/DLL.cpp2
-rw-r--r--ACE/ace/DLL.h4
-rw-r--r--ACE/ace/DLL_Manager.cpp26
-rw-r--r--ACE/ace/DLL_Manager.h30
-rw-r--r--ACE/ace/Date_Time.cpp2
-rw-r--r--ACE/ace/Default_Constants.h52
-rw-r--r--ACE/ace/Dev_Poll_Reactor.cpp725
-rw-r--r--ACE/ace/Dev_Poll_Reactor.h409
-rw-r--r--ACE/ace/Dev_Poll_Reactor.inl128
-rw-r--r--ACE/ace/Dirent.h26
-rw-r--r--ACE/ace/Dirent_Selector.cpp4
-rw-r--r--ACE/ace/Dump.cpp2
-rw-r--r--ACE/ace/Dump.h2
-rw-r--r--ACE/ace/Dump_T.h5
-rw-r--r--ACE/ace/Dynamic.cpp2
-rw-r--r--ACE/ace/Dynamic_Message_Strategy.cpp6
-rw-r--r--ACE/ace/Dynamic_Service_Base.cpp12
-rw-r--r--ACE/ace/Dynamic_Service_Base.h1
-rw-r--r--ACE/ace/Dynamic_Service_Dependency.cpp10
-rw-r--r--ACE/ace/ETCL/ETCL.mpc12
-rw-r--r--ACE/ace/ETCL/ETCL_Constraint.cpp22
-rw-r--r--ACE/ace/ETCL/ETCL_Constraint.h40
-rw-r--r--ACE/ace/ETCL/ETCL_Constraint.inl51
-rw-r--r--ACE/ace/ETCL/ETCL_Interpreter.cpp12
-rw-r--r--ACE/ace/ETCL/ETCL_l.cpp40
-rw-r--r--ACE/ace/ETCL/ETCL_l.cpp.diff117
-rw-r--r--ACE/ace/ETCL/ETCL_y.cpp30
-rw-r--r--ACE/ace/Env_Value_T.h14
-rw-r--r--ACE/ace/Event.cpp2
-rw-r--r--ACE/ace/Event_Handler.cpp4
-rw-r--r--ACE/ace/Event_Handler.h32
-rw-r--r--ACE/ace/Event_Handler_T.cpp4
-rw-r--r--ACE/ace/Event_Handler_T.h3
-rw-r--r--ACE/ace/Event_Handler_T.inl1
-rw-r--r--ACE/ace/Exception_Macros.h55
-rw-r--r--ACE/ace/FIFO.cpp2
-rw-r--r--ACE/ace/FIFO.h28
-rw-r--r--ACE/ace/FIFO_Recv.cpp2
-rw-r--r--ACE/ace/FIFO_Recv.h15
-rw-r--r--ACE/ace/FIFO_Recv_Msg.cpp2
-rw-r--r--ACE/ace/FIFO_Recv_Msg.inl14
-rw-r--r--ACE/ace/FIFO_Send.cpp2
-rw-r--r--ACE/ace/FIFO_Send.h8
-rw-r--r--ACE/ace/FIFO_Send_Msg.cpp2
-rw-r--r--ACE/ace/FILE.cpp2
-rw-r--r--ACE/ace/FILE.h21
-rw-r--r--ACE/ace/FILE_Addr.cpp2
-rw-r--r--ACE/ace/FILE_Connector.cpp2
-rw-r--r--ACE/ace/FILE_IO.cpp2
-rw-r--r--ACE/ace/FILE_IO.h4
-rw-r--r--ACE/ace/File_Lock.cpp10
-rw-r--r--ACE/ace/File_Lock.h16
-rw-r--r--ACE/ace/File_Lock.inl8
-rw-r--r--ACE/ace/Filecache.cpp5
-rw-r--r--ACE/ace/Filecache.h11
-rw-r--r--ACE/ace/FlReactor/FlReactor.cpp2
-rw-r--r--ACE/ace/FlReactor/ace_flreactor.mpc11
-rw-r--r--ACE/ace/Flag_Manip.cpp4
-rw-r--r--ACE/ace/FoxReactor/FoxReactor.cpp22
-rw-r--r--ACE/ace/FoxReactor/FoxReactor.h4
-rw-r--r--ACE/ace/FoxReactor/ace_foxreactor.mpc11
-rw-r--r--ACE/ace/Framework_Component.cpp11
-rw-r--r--ACE/ace/Framework_Component.h22
-rw-r--r--ACE/ace/Framework_Component.inl5
-rw-r--r--ACE/ace/Framework_Component_T.h6
-rw-r--r--ACE/ace/Free_List.h2
-rw-r--r--ACE/ace/Functor.cpp2
-rw-r--r--ACE/ace/Functor.h131
-rw-r--r--ACE/ace/Functor.inl36
-rw-r--r--ACE/ace/Functor_String.cpp4
-rw-r--r--ACE/ace/Functor_String.h57
-rw-r--r--ACE/ace/Functor_String.inl20
-rw-r--r--ACE/ace/Functor_T.h18
-rw-r--r--ACE/ace/Future.cpp34
-rw-r--r--ACE/ace/Future.h12
-rw-r--r--ACE/ace/Future_Set.cpp6
-rw-r--r--ACE/ace/Future_Set.h17
-rw-r--r--ACE/ace/Get_Opt.cpp4
-rw-r--r--ACE/ace/Get_Opt.h4
-rw-r--r--ACE/ace/Get_Opt.inl1
-rw-r--r--ACE/ace/Global_Macros.h219
-rw-r--r--ACE/ace/Guard_T.cpp1
-rw-r--r--ACE/ace/Guard_T.h61
-rw-r--r--ACE/ace/Guard_T.inl3
-rw-r--r--ACE/ace/Handle_Gobbler.inl3
-rw-r--r--ACE/ace/Handle_Ops.cpp4
-rw-r--r--ACE/ace/Handle_Set.cpp2
-rw-r--r--ACE/ace/Handle_Set.h5
-rw-r--r--ACE/ace/Handle_Set.inl12
-rw-r--r--ACE/ace/Hash_Cache_Map_Manager_T.cpp50
-rw-r--r--ACE/ace/Hash_Cache_Map_Manager_T.h14
-rw-r--r--ACE/ace/Hash_Cache_Map_Manager_T.inl79
-rw-r--r--ACE/ace/Hash_Map_Manager_T.h20
-rw-r--r--ACE/ace/Hash_Map_With_Allocator_T.h2
-rw-r--r--ACE/ace/Hash_Multi_Map_Manager_T.cpp4
-rw-r--r--ACE/ace/Hash_Multi_Map_Manager_T.h19
-rw-r--r--ACE/ace/Hashable.cpp6
-rw-r--r--ACE/ace/Hashable.inl2
-rw-r--r--ACE/ace/High_Res_Timer.cpp26
-rw-r--r--ACE/ace/High_Res_Timer.inl2
-rw-r--r--ACE/ace/ICMP_Socket.cpp10
-rw-r--r--ACE/ace/INET_Addr.cpp105
-rw-r--r--ACE/ace/INET_Addr.h18
-rw-r--r--ACE/ace/INET_Addr.inl11
-rw-r--r--ACE/ace/IOStream.cpp2
-rw-r--r--ACE/ace/IOStream.h14
-rw-r--r--ACE/ace/IOStream_T.h4
-rw-r--r--ACE/ace/IO_Cntl_Msg.cpp44
-rw-r--r--ACE/ace/IO_SAP.cpp2
-rw-r--r--ACE/ace/IO_SAP.inl1
-rw-r--r--ACE/ace/IPC_SAP.cpp2
-rw-r--r--ACE/ace/Init_ACE.cpp6
-rw-r--r--ACE/ace/Init_ACE.h26
-rw-r--r--ACE/ace/Intrusive_List.cpp35
-rw-r--r--ACE/ace/Intrusive_List.h4
-rw-r--r--ACE/ace/Intrusive_List.inl6
-rw-r--r--ACE/ace/LSOCK.cpp12
-rw-r--r--ACE/ace/LSOCK_Acceptor.cpp2
-rw-r--r--ACE/ace/LSOCK_CODgram.cpp2
-rw-r--r--ACE/ace/LSOCK_Connector.cpp2
-rw-r--r--ACE/ace/LSOCK_Dgram.cpp2
-rw-r--r--ACE/ace/LSOCK_Stream.cpp2
-rw-r--r--ACE/ace/LSOCK_Stream.h6
-rw-r--r--ACE/ace/Lib_Find.cpp10
-rw-r--r--ACE/ace/Lib_Find.h6
-rw-r--r--ACE/ace/Local_Memory_Pool.cpp2
-rw-r--r--ACE/ace/Local_Name_Space.cpp6
-rw-r--r--ACE/ace/Local_Name_Space_T.h17
-rw-r--r--ACE/ace/Local_Tokens.cpp4
-rw-r--r--ACE/ace/Local_Tokens.h22
-rw-r--r--ACE/ace/Local_Tokens.inl14
-rw-r--r--ACE/ace/Lock.cpp2
-rw-r--r--ACE/ace/Lock.h20
-rw-r--r--ACE/ace/Lock_Adapter_T.cpp11
-rw-r--r--ACE/ace/Lock_Adapter_T.h14
-rw-r--r--ACE/ace/Lock_Adapter_T.inl12
-rw-r--r--ACE/ace/Log_Msg.cpp343
-rw-r--r--ACE/ace/Log_Msg.h56
-rw-r--r--ACE/ace/Log_Msg_Backend.cpp2
-rw-r--r--ACE/ace/Log_Msg_Callback.cpp2
-rw-r--r--ACE/ace/Log_Msg_Callback.h6
-rw-r--r--ACE/ace/Log_Msg_IPC.cpp2
-rw-r--r--ACE/ace/Log_Msg_NT_Event_Log.cpp16
-rw-r--r--ACE/ace/Log_Msg_UNIX_Syslog.cpp2
-rw-r--r--ACE/ace/Log_Msg_UNIX_Syslog.h1
-rw-r--r--ACE/ace/Log_Record.cpp34
-rw-r--r--ACE/ace/Log_Record.h52
-rw-r--r--ACE/ace/Log_Record.inl31
-rw-r--r--ACE/ace/Logging_Strategy.cpp62
-rw-r--r--ACE/ace/Logging_Strategy.h33
-rw-r--r--ACE/ace/MEM_Acceptor.cpp2
-rw-r--r--ACE/ace/MEM_Acceptor.h4
-rw-r--r--ACE/ace/MEM_Acceptor.inl9
-rw-r--r--ACE/ace/MEM_Addr.cpp4
-rw-r--r--ACE/ace/MEM_Connector.cpp2
-rw-r--r--ACE/ace/MEM_Connector.h4
-rw-r--r--ACE/ace/MEM_Connector.inl9
-rw-r--r--ACE/ace/MEM_IO.cpp160
-rw-r--r--ACE/ace/MEM_IO.inl12
-rw-r--r--ACE/ace/MEM_SAP.cpp2
-rw-r--r--ACE/ace/MEM_SAP.h5
-rw-r--r--ACE/ace/MEM_Stream.cpp2
-rw-r--r--ACE/ace/MEM_Stream.h42
-rw-r--r--ACE/ace/MEM_Stream.inl104
-rw-r--r--ACE/ace/MMAP_Memory_Pool.cpp13
-rw-r--r--ACE/ace/Makefile.am25
-rw-r--r--ACE/ace/Malloc.cpp5
-rw-r--r--ACE/ace/Malloc_Allocator.cpp2
-rw-r--r--ACE/ace/Malloc_Base.h4
-rw-r--r--ACE/ace/Malloc_T.cpp50
-rw-r--r--ACE/ace/Malloc_T.h62
-rw-r--r--ACE/ace/Malloc_T.inl27
-rw-r--r--ACE/ace/Manual_Event.cpp2
-rw-r--r--ACE/ace/Manual_Event.h4
-rw-r--r--ACE/ace/Map.h32
-rw-r--r--ACE/ace/Map_Manager.cpp32
-rw-r--r--ACE/ace/Map_Manager.h27
-rw-r--r--ACE/ace/Map_Manager.inl27
-rw-r--r--ACE/ace/Map_T.cpp44
-rw-r--r--ACE/ace/Map_T.h19
-rw-r--r--ACE/ace/Map_T.inl2
-rw-r--r--ACE/ace/Mem_Map.cpp2
-rw-r--r--ACE/ace/Mem_Map.h21
-rw-r--r--ACE/ace/Message_Block.cpp5
-rw-r--r--ACE/ace/Message_Block.h18
-rw-r--r--ACE/ace/Message_Queue.cpp4
-rw-r--r--ACE/ace/Message_Queue.h4
-rw-r--r--ACE/ace/Message_Queue_NT.cpp9
-rw-r--r--ACE/ace/Message_Queue_T.cpp74
-rw-r--r--ACE/ace/Message_Queue_T.h6
-rw-r--r--ACE/ace/Message_Queue_Vx.cpp17
-rw-r--r--ACE/ace/Message_Queue_Vx.h13
-rw-r--r--ACE/ace/Method_Object.h38
-rw-r--r--ACE/ace/Method_Request.cpp5
-rw-r--r--ACE/ace/Metrics_Cache_T.cpp7
-rw-r--r--ACE/ace/Metrics_Cache_T.h78
-rw-r--r--ACE/ace/Metrics_Cache_T.inl4
-rw-r--r--ACE/ace/Module.h16
-rw-r--r--ACE/ace/Monitor_Admin.h8
-rw-r--r--ACE/ace/Monitor_Control/Auto_Update_Starter.cpp1
-rw-r--r--ACE/ace/Monitor_Control/Auto_Update_Starter.h4
-rw-r--r--ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp40
-rw-r--r--ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.h6
-rw-r--r--ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp9
-rw-r--r--ACE/ace/Monitor_Control/Bytes_Received_Monitor.h10
-rw-r--r--ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp10
-rw-r--r--ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h10
-rw-r--r--ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp7
-rw-r--r--ACE/ace/Monitor_Control/CPU_Load_Monitor.h4
-rw-r--r--ACE/ace/Monitor_Control/Constraint_Interpreter.cpp2
-rw-r--r--ACE/ace/Monitor_Control/Constraint_Visitor.cpp2
-rw-r--r--ACE/ace/Monitor_Control/Constraint_Visitor.h1
-rw-r--r--ACE/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp124
-rw-r--r--ACE/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h70
-rw-r--r--ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp6
-rw-r--r--ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.h4
-rw-r--r--ACE/ace/Monitor_Control/Makefile.am2
-rw-r--r--ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp3
-rw-r--r--ACE/ace/Monitor_Control/Memory_Usage_Monitor.h2
-rw-r--r--ACE/ace/Monitor_Control/Monitor_Control.mpc7
-rw-r--r--ACE/ace/Monitor_Control/Monitor_Group.cpp9
-rw-r--r--ACE/ace/Monitor_Control/Monitor_Group.h2
-rw-r--r--ACE/ace/Monitor_Control/Monitor_Query.cpp2
-rw-r--r--ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp2
-rw-r--r--ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.h2
-rw-r--r--ACE/ace/Monitor_Control/Num_Threads_Monitor.cpp3
-rw-r--r--ACE/ace/Monitor_Control/Num_Threads_Monitor.h2
-rw-r--r--ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp9
-rw-r--r--ACE/ace/Monitor_Control/Packets_Received_Monitor.h10
-rw-r--r--ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp9
-rw-r--r--ACE/ace/Monitor_Control/Packets_Sent_Monitor.h10
-rw-r--r--ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp42
-rw-r--r--ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h8
-rw-r--r--ACE/ace/Monitor_Control/Windows_Monitor.cpp10
-rw-r--r--ACE/ace/Monitor_Control/Windows_Monitor.h2
-rw-r--r--ACE/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp2
-rw-r--r--ACE/ace/Monitor_Point_Registry.cpp4
-rw-r--r--ACE/ace/Msg_WFMO_Reactor.cpp2
-rw-r--r--ACE/ace/Multihomed_INET_Addr.cpp4
-rw-r--r--ACE/ace/Multihomed_INET_Addr.h12
-rw-r--r--ACE/ace/Mutex.cpp5
-rw-r--r--ACE/ace/Mutex.h1
-rw-r--r--ACE/ace/Mutex.inl11
-rw-r--r--ACE/ace/NT_Service.h3
-rw-r--r--ACE/ace/Name_Proxy.cpp2
-rw-r--r--ACE/ace/Name_Request_Reply.cpp6
-rw-r--r--ACE/ace/Name_Space.cpp2
-rw-r--r--ACE/ace/Name_Space.h4
-rw-r--r--ACE/ace/Naming_Context.cpp4
-rw-r--r--ACE/ace/Naming_Context.h6
-rw-r--r--ACE/ace/Notification_Queue.cpp3
-rw-r--r--ACE/ace/Notification_Strategy.cpp4
-rw-r--r--ACE/ace/Null_Barrier.h3
-rw-r--r--ACE/ace/Null_Condition.h2
-rw-r--r--ACE/ace/Null_Mutex.h52
-rw-r--r--ACE/ace/Null_Semaphore.h2
-rw-r--r--ACE/ace/OS.cpp53
-rw-r--r--ACE/ace/OS.h277
-rw-r--r--ACE/ace/OS.inl93
-rw-r--r--ACE/ace/OS_Dirent.h32
-rw-r--r--ACE/ace/OS_Errno.cpp2
-rw-r--r--ACE/ace/OS_Log_Msg_Attributes.cpp2
-rw-r--r--ACE/ace/OS_Log_Msg_Attributes.h12
-rw-r--r--ACE/ace/OS_Memory.h6
-rw-r--r--ACE/ace/OS_NS_Thread.cpp455
-rw-r--r--ACE/ace/OS_NS_Thread.h111
-rw-r--r--ACE/ace/OS_NS_Thread.inl188
-rw-r--r--ACE/ace/OS_NS_arpa_inet.cpp4
-rw-r--r--ACE/ace/OS_NS_arpa_inet.inl4
-rw-r--r--ACE/ace/OS_NS_ctype.cpp2
-rw-r--r--ACE/ace/OS_NS_ctype.inl7
-rw-r--r--ACE/ace/OS_NS_dirent.cpp12
-rw-r--r--ACE/ace/OS_NS_dlfcn.cpp2
-rw-r--r--ACE/ace/OS_NS_dlfcn.inl17
-rw-r--r--ACE/ace/OS_NS_errno.cpp2
-rw-r--r--ACE/ace/OS_NS_errno.h4
-rw-r--r--ACE/ace/OS_NS_fcntl.cpp2
-rw-r--r--ACE/ace/OS_NS_fcntl.h4
-rw-r--r--ACE/ace/OS_NS_math.cpp2
-rw-r--r--ACE/ace/OS_NS_math.h14
-rw-r--r--ACE/ace/OS_NS_math.inl33
-rw-r--r--ACE/ace/OS_NS_netdb.cpp246
-rw-r--r--ACE/ace/OS_NS_netdb.h16
-rw-r--r--ACE/ace/OS_NS_netdb.inl73
-rw-r--r--ACE/ace/OS_NS_poll.cpp2
-rw-r--r--ACE/ace/OS_NS_pwd.cpp2
-rw-r--r--ACE/ace/OS_NS_pwd.h17
-rw-r--r--ACE/ace/OS_NS_pwd.inl85
-rw-r--r--ACE/ace/OS_NS_regex.cpp2
-rw-r--r--ACE/ace/OS_NS_regex.inl1
-rw-r--r--ACE/ace/OS_NS_signal.cpp2
-rw-r--r--ACE/ace/OS_NS_signal.h80
-rw-r--r--ACE/ace/OS_NS_signal.inl53
-rw-r--r--ACE/ace/OS_NS_stdio.cpp83
-rw-r--r--ACE/ace/OS_NS_stdio.h65
-rw-r--r--ACE/ace/OS_NS_stdio.inl72
-rw-r--r--ACE/ace/OS_NS_stdlib.cpp34
-rw-r--r--ACE/ace/OS_NS_stdlib.h48
-rw-r--r--ACE/ace/OS_NS_stdlib.inl49
-rw-r--r--ACE/ace/OS_NS_string.cpp101
-rw-r--r--ACE/ace/OS_NS_string.h64
-rw-r--r--ACE/ace/OS_NS_string.inl13
-rw-r--r--ACE/ace/OS_NS_strings.cpp2
-rw-r--r--ACE/ace/OS_NS_stropts.cpp4
-rw-r--r--ACE/ace/OS_NS_stropts.h2
-rw-r--r--ACE/ace/OS_NS_sys_mman.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_mman.inl41
-rw-r--r--ACE/ace/OS_NS_sys_msg.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_resource.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_select.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_shm.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_shm.h4
-rw-r--r--ACE/ace/OS_NS_sys_socket.cpp125
-rw-r--r--ACE/ace/OS_NS_sys_socket.h20
-rw-r--r--ACE/ace/OS_NS_sys_socket.inl36
-rw-r--r--ACE/ace/OS_NS_sys_stat.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_time.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_time.h14
-rw-r--r--ACE/ace/OS_NS_sys_time.inl27
-rw-r--r--ACE/ace/OS_NS_sys_uio.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_utsname.cpp18
-rw-r--r--ACE/ace/OS_NS_sys_wait.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_wait.inl6
-rw-r--r--ACE/ace/OS_NS_time.cpp67
-rw-r--r--ACE/ace/OS_NS_time.h22
-rw-r--r--ACE/ace/OS_NS_time.inl24
-rw-r--r--ACE/ace/OS_NS_unistd.cpp48
-rw-r--r--ACE/ace/OS_NS_unistd.h11
-rw-r--r--ACE/ace/OS_NS_unistd.inl22
-rw-r--r--ACE/ace/OS_NS_wchar.cpp12
-rw-r--r--ACE/ace/OS_NS_wchar.h4
-rw-r--r--ACE/ace/OS_NS_wctype.cpp2
-rw-r--r--ACE/ace/OS_NS_wctype.inl1
-rw-r--r--ACE/ace/OS_QoS.cpp2
-rw-r--r--ACE/ace/OS_String.h32
-rw-r--r--ACE/ace/OS_TLI.cpp2
-rw-r--r--ACE/ace/OS_TLI.h6
-rw-r--r--ACE/ace/OS_Thread_Adapter.cpp23
-rw-r--r--ACE/ace/OS_Thread_Adapter.h2
-rw-r--r--ACE/ace/OS_main.cpp21
-rw-r--r--ACE/ace/OS_main.h5
-rw-r--r--ACE/ace/Obchunk.cpp2
-rw-r--r--ACE/ace/Object_Manager.cpp37
-rw-r--r--ACE/ace/Object_Manager.h17
-rw-r--r--ACE/ace/Object_Manager_Base.cpp7
-rw-r--r--ACE/ace/Obstack_T.cpp82
-rw-r--r--ACE/ace/Obstack_T.h23
-rw-r--r--ACE/ace/Obstack_T.inl11
-rw-r--r--ACE/ace/PI_Malloc.cpp6
-rw-r--r--ACE/ace/POSIX_Asynch_IO.cpp5
-rw-r--r--ACE/ace/POSIX_Asynch_IO.h4
-rw-r--r--ACE/ace/POSIX_CB_Proactor.cpp9
-rw-r--r--ACE/ace/POSIX_Proactor.cpp52
-rw-r--r--ACE/ace/Pagefile_Memory_Pool.cpp6
-rw-r--r--ACE/ace/Pagefile_Memory_Pool.h3
-rw-r--r--ACE/ace/Pair.h32
-rw-r--r--ACE/ace/Pair_T.h49
-rw-r--r--ACE/ace/Pair_T.inl56
-rw-r--r--ACE/ace/Parse_Node.cpp19
-rw-r--r--ACE/ace/Ping_Socket.cpp9
-rw-r--r--ACE/ace/Ping_Socket.h4
-rw-r--r--ACE/ace/Pipe.cpp29
-rw-r--r--ACE/ace/Pipe.h5
-rw-r--r--ACE/ace/Pipe.inl15
-rw-r--r--ACE/ace/Priority_Reactor.cpp2
-rw-r--r--ACE/ace/Proactor.cpp5
-rw-r--r--ACE/ace/Proactor.h6
-rw-r--r--ACE/ace/Proactor_Impl.cpp4
-rw-r--r--ACE/ace/Process.cpp86
-rw-r--r--ACE/ace/Process.h56
-rw-r--r--ACE/ace/Process_Manager.cpp35
-rw-r--r--ACE/ace/Process_Manager.h21
-rw-r--r--ACE/ace/Process_Mutex.cpp2
-rw-r--r--ACE/ace/Process_Mutex.h65
-rw-r--r--ACE/ace/Process_Semaphore.cpp2
-rw-r--r--ACE/ace/Process_Semaphore.h12
-rw-r--r--ACE/ace/Profile_Timer.cpp2
-rw-r--r--ACE/ace/Profile_Timer.h4
-rw-r--r--ACE/ace/QoS/QoS_Decorator.cpp2
-rw-r--r--ACE/ace/QoS/QoS_Manager.cpp2
-rw-r--r--ACE/ace/QoS/QoS_Session.h10
-rw-r--r--ACE/ace/QoS/QoS_Session_Factory.cpp2
-rw-r--r--ACE/ace/QoS/QoS_Session_Impl.cpp2
-rw-r--r--ACE/ace/QoS/QoS_Session_Impl.h4
-rw-r--r--ACE/ace/QoS/QoS_Session_Impl.inl12
-rw-r--r--ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp4
-rw-r--r--ACE/ace/QoS/qos.mpc8
-rw-r--r--ACE/ace/QtReactor/QtReactor.h13
-rw-r--r--ACE/ace/QtReactor/ace_qt4reactor.mpc31
-rw-r--r--ACE/ace/RB_Tree.cpp13
-rw-r--r--ACE/ace/RB_Tree.inl22
-rw-r--r--ACE/ace/README106
-rw-r--r--ACE/ace/RW_Mutex.cpp2
-rw-r--r--ACE/ace/RW_Mutex.h10
-rw-r--r--ACE/ace/RW_Process_Mutex.cpp2
-rw-r--r--ACE/ace/RW_Process_Mutex.h13
-rw-r--r--ACE/ace/RW_Thread_Mutex.cpp2
-rw-r--r--ACE/ace/Reactor.cpp8
-rw-r--r--ACE/ace/Reactor.h90
-rw-r--r--ACE/ace/Reactor_Impl.cpp4
-rw-r--r--ACE/ace/Reactor_Notification_Strategy.cpp4
-rw-r--r--ACE/ace/Reactor_Notification_Strategy.h4
-rw-r--r--ACE/ace/Reactor_Timer_Interface.cpp5
-rw-r--r--ACE/ace/Read_Buffer.cpp2
-rw-r--r--ACE/ace/Read_Buffer.h6
-rw-r--r--ACE/ace/Recursive_Thread_Mutex.cpp4
-rw-r--r--ACE/ace/Recursive_Thread_Mutex.h26
-rw-r--r--ACE/ace/Recursive_Thread_Mutex.inl2
-rw-r--r--ACE/ace/Recyclable.cpp2
-rw-r--r--ACE/ace/Refcountable.h32
-rw-r--r--ACE/ace/Refcountable_T.cpp4
-rw-r--r--ACE/ace/Refcountable_T.h7
-rw-r--r--ACE/ace/Registry.cpp14
-rw-r--r--ACE/ace/Registry.h5
-rw-r--r--ACE/ace/Registry_Name_Space.cpp2
-rw-r--r--ACE/ace/Registry_Name_Space.h6
-rw-r--r--ACE/ace/Remote_Name_Space.cpp5
-rw-r--r--ACE/ace/Remote_Name_Space.h6
-rw-r--r--ACE/ace/Remote_Tokens.cpp6
-rw-r--r--ACE/ace/Remote_Tokens.h19
-rw-r--r--ACE/ace/SOCK.cpp2
-rw-r--r--ACE/ace/SOCK.h4
-rw-r--r--ACE/ace/SOCK_Acceptor.cpp2
-rw-r--r--ACE/ace/SOCK_CODgram.cpp2
-rw-r--r--ACE/ace/SOCK_Connector.cpp27
-rw-r--r--ACE/ace/SOCK_Connector.h3
-rw-r--r--ACE/ace/SOCK_Dgram.cpp96
-rw-r--r--ACE/ace/SOCK_Dgram.h3
-rw-r--r--ACE/ace/SOCK_Dgram_Bcast.cpp13
-rw-r--r--ACE/ace/SOCK_Dgram_Mcast.cpp8
-rw-r--r--ACE/ace/SOCK_Dgram_Mcast.h125
-rw-r--r--ACE/ace/SOCK_IO.cpp31
-rw-r--r--ACE/ace/SOCK_SEQPACK_Acceptor.cpp2
-rw-r--r--ACE/ace/SOCK_SEQPACK_Association.cpp2
-rw-r--r--ACE/ace/SOCK_SEQPACK_Connector.cpp2
-rw-r--r--ACE/ace/SOCK_Stream.cpp2
-rw-r--r--ACE/ace/SOCK_Stream.h5
-rw-r--r--ACE/ace/SPIPE.cpp2
-rw-r--r--ACE/ace/SPIPE_Acceptor.cpp2
-rw-r--r--ACE/ace/SPIPE_Acceptor.h2
-rw-r--r--ACE/ace/SPIPE_Addr.cpp2
-rw-r--r--ACE/ace/SPIPE_Connector.cpp2
-rw-r--r--ACE/ace/SPIPE_Stream.cpp2
-rw-r--r--ACE/ace/SPIPE_Stream.inl16
-rw-r--r--ACE/ace/SSL/SSL_Asynch_BIO.cpp6
-rw-r--r--ACE/ace/SSL/SSL_Asynch_Stream.cpp7
-rw-r--r--ACE/ace/SSL/SSL_Asynch_Stream.h12
-rw-r--r--ACE/ace/SSL/SSL_Context.cpp18
-rw-r--r--ACE/ace/SSL/SSL_Initializer.cpp44
-rw-r--r--ACE/ace/SSL/SSL_Initializer.h52
-rw-r--r--ACE/ace/SSL/SSL_SOCK.cpp5
-rw-r--r--ACE/ace/SSL/SSL_SOCK.h10
-rw-r--r--ACE/ace/SSL/SSL_SOCK_Acceptor.cpp4
-rw-r--r--ACE/ace/SSL/SSL_SOCK_Connector.cpp8
-rw-r--r--ACE/ace/SSL/SSL_SOCK_Stream.cpp4
-rw-r--r--ACE/ace/SSL/SSL_SOCK_Stream.h27
-rw-r--r--ACE/ace/SSL/SSL_SOCK_Stream.inl20
-rw-r--r--ACE/ace/SSL/ssl.mpc12
-rw-r--r--ACE/ace/SSL/ssl_for_tao.mpc6
-rw-r--r--ACE/ace/SString.cpp221
-rw-r--r--ACE/ace/SString.h226
-rw-r--r--ACE/ace/SStringfwd.h2
-rw-r--r--ACE/ace/SUN_Proactor.cpp6
-rw-r--r--ACE/ace/SV_Message.cpp2
-rw-r--r--ACE/ace/SV_Message_Queue.cpp2
-rw-r--r--ACE/ace/SV_Semaphore_Complex.cpp3
-rw-r--r--ACE/ace/SV_Semaphore_Simple.cpp14
-rw-r--r--ACE/ace/SV_Semaphore_Simple.h2
-rw-r--r--ACE/ace/SV_Shared_Memory.cpp2
-rw-r--r--ACE/ace/Sample_History.cpp2
-rw-r--r--ACE/ace/Sbrk_Memory_Pool.cpp2
-rw-r--r--ACE/ace/Sched_Params.cpp2
-rw-r--r--ACE/ace/Select_Reactor.h6
-rw-r--r--ACE/ace/Select_Reactor_Base.cpp52
-rw-r--r--ACE/ace/Select_Reactor_Base.h7
-rw-r--r--ACE/ace/Select_Reactor_T.cpp36
-rw-r--r--ACE/ace/Select_Reactor_T.h24
-rw-r--r--ACE/ace/Semaphore.cpp4
-rw-r--r--ACE/ace/Service_Config.cpp11
-rw-r--r--ACE/ace/Service_Config.h10
-rw-r--r--ACE/ace/Service_Config.inl2
-rw-r--r--ACE/ace/Service_Gestalt.cpp105
-rw-r--r--ACE/ace/Service_Gestalt.h55
-rw-r--r--ACE/ace/Service_Gestalt.inl4
-rw-r--r--ACE/ace/Service_Manager.cpp4
-rw-r--r--ACE/ace/Service_Object.cpp19
-rw-r--r--ACE/ace/Service_Repository.cpp100
-rw-r--r--ACE/ace/Service_Repository.h10
-rw-r--r--ACE/ace/Service_Templates.h29
-rw-r--r--ACE/ace/Service_Types.cpp51
-rw-r--r--ACE/ace/Service_Types.h23
-rw-r--r--ACE/ace/Service_Types.inl11
-rw-r--r--ACE/ace/Shared_Memory.cpp2
-rw-r--r--ACE/ace/Shared_Memory_MM.cpp5
-rw-r--r--ACE/ace/Shared_Memory_Pool.cpp16
-rw-r--r--ACE/ace/Shared_Memory_SV.cpp5
-rw-r--r--ACE/ace/Shared_Object.cpp6
-rw-r--r--ACE/ace/Sig_Adapter.cpp2
-rw-r--r--ACE/ace/Sig_Handler.cpp32
-rw-r--r--ACE/ace/Signal.cpp2
-rw-r--r--ACE/ace/Signal.inl16
-rw-r--r--ACE/ace/Singleton.cpp4
-rw-r--r--ACE/ace/Sock_Connect.cpp194
-rw-r--r--ACE/ace/Stack_Trace.cpp34
-rw-r--r--ACE/ace/Stack_Trace.h22
-rw-r--r--ACE/ace/Stats.cpp2
-rw-r--r--ACE/ace/Strategies.h33
-rw-r--r--ACE/ace/Strategies_T.cpp4
-rw-r--r--ACE/ace/Strategies_T.h4
-rw-r--r--ACE/ace/Strategies_T.inl4
-rw-r--r--ACE/ace/Stream.cpp33
-rw-r--r--ACE/ace/Stream.h14
-rw-r--r--ACE/ace/String_Base.cpp394
-rw-r--r--ACE/ace/String_Base.h445
-rw-r--r--ACE/ace/String_Base.inl416
-rw-r--r--ACE/ace/Svc_Conf.y7
-rw-r--r--ACE/ace/Svc_Conf_Lexer.cpp4
-rw-r--r--ACE/ace/Svc_Conf_y.cpp7
-rw-r--r--ACE/ace/Svc_Handler.cpp9
-rw-r--r--ACE/ace/Synch.h12
-rw-r--r--ACE/ace/Synch_Options.cpp6
-rw-r--r--ACE/ace/Synch_T.cpp22
-rw-r--r--ACE/ace/Synch_T.h42
-rw-r--r--ACE/ace/Synch_Traits.h37
-rw-r--r--ACE/ace/System_Time.cpp2
-rw-r--r--ACE/ace/TLI.cpp2
-rw-r--r--ACE/ace/TLI.inl2
-rw-r--r--ACE/ace/TLI_Acceptor.cpp2
-rw-r--r--ACE/ace/TLI_Connector.cpp2
-rw-r--r--ACE/ace/TLI_Stream.cpp2
-rw-r--r--ACE/ace/TP_Reactor.cpp13
-rw-r--r--ACE/ace/TSS_Adapter.cpp7
-rw-r--r--ACE/ace/TSS_Adapter.h3
-rw-r--r--ACE/ace/TSS_T.cpp241
-rw-r--r--ACE/ace/TSS_T.h24
-rw-r--r--ACE/ace/TSS_T.inl67
-rw-r--r--ACE/ace/TTY_IO.cpp159
-rw-r--r--ACE/ace/Task.cpp16
-rw-r--r--ACE/ace/Task.h19
-rw-r--r--ACE/ace/Task_Ex_T.h15
-rw-r--r--ACE/ace/Task_Ex_T.inl7
-rw-r--r--ACE/ace/Task_T.h19
-rw-r--r--ACE/ace/Task_T.inl7
-rw-r--r--ACE/ace/Thread.cpp4
-rw-r--r--ACE/ace/Thread.h22
-rw-r--r--ACE/ace/Thread.inl8
-rw-r--r--ACE/ace/Thread_Adapter.cpp20
-rw-r--r--ACE/ace/Thread_Adapter.h5
-rw-r--r--ACE/ace/Thread_Control.cpp16
-rw-r--r--ACE/ace/Thread_Control.h13
-rw-r--r--ACE/ace/Thread_Control.inl3
-rw-r--r--ACE/ace/Thread_Exit.cpp2
-rw-r--r--ACE/ace/Thread_Hook.cpp5
-rw-r--r--ACE/ace/Thread_Hook.h5
-rw-r--r--ACE/ace/Thread_Manager.cpp19
-rw-r--r--ACE/ace/Thread_Manager.inl4
-rw-r--r--ACE/ace/Thread_Mutex.cpp2
-rw-r--r--ACE/ace/Thread_Mutex.h13
-rw-r--r--ACE/ace/Thread_Mutex.inl7
-rw-r--r--ACE/ace/Thread_Semaphore.cpp2
-rw-r--r--ACE/ace/Thread_Semaphore.h2
-rw-r--r--ACE/ace/Throughput_Stats.cpp101
-rw-r--r--ACE/ace/Throughput_Stats.h12
-rw-r--r--ACE/ace/Time_Value.cpp258
-rw-r--r--ACE/ace/Time_Value.h53
-rw-r--r--ACE/ace/Time_Value.inl122
-rw-r--r--ACE/ace/Timeprobe.cpp2
-rw-r--r--ACE/ace/Timer_Hash_T.cpp33
-rw-r--r--ACE/ace/Timer_Heap_T.cpp16
-rw-r--r--ACE/ace/Timer_List.h1
-rw-r--r--ACE/ace/Timer_List_T.cpp2
-rw-r--r--ACE/ace/Timer_Queue_Adapters.cpp88
-rw-r--r--ACE/ace/Timer_Queue_Adapters.h8
-rw-r--r--ACE/ace/Timer_Queue_Adapters.inl12
-rw-r--r--ACE/ace/Timer_Queue_T.cpp69
-rw-r--r--ACE/ace/Timer_Queue_T.h4
-rw-r--r--ACE/ace/Timer_Wheel_T.cpp7
-rw-r--r--ACE/ace/TkReactor/TkReactor.cpp3
-rw-r--r--ACE/ace/TkReactor/ace_tkreactor.mpc11
-rw-r--r--ACE/ace/Token.cpp2
-rw-r--r--ACE/ace/Token.h4
-rw-r--r--ACE/ace/Token_Collection.cpp5
-rw-r--r--ACE/ace/Token_Collection.h12
-rw-r--r--ACE/ace/Token_Invariants.cpp6
-rw-r--r--ACE/ace/Token_Invariants.h28
-rw-r--r--ACE/ace/Token_Manager.cpp6
-rw-r--r--ACE/ace/Token_Manager.h14
-rw-r--r--ACE/ace/Token_Request_Reply.cpp2
-rw-r--r--ACE/ace/Tokenizer_T.cpp242
-rw-r--r--ACE/ace/Tokenizer_T.h241
-rw-r--r--ACE/ace/Trace.cpp13
-rw-r--r--ACE/ace/Trace.h6
-rw-r--r--ACE/ace/UNIX_Addr.cpp2
-rw-r--r--ACE/ace/UPIPE_Acceptor.cpp2
-rw-r--r--ACE/ace/UPIPE_Connector.cpp2
-rw-r--r--ACE/ace/UPIPE_Stream.cpp4
-rw-r--r--ACE/ace/UUID.cpp323
-rw-r--r--ACE/ace/UUID.h109
-rw-r--r--ACE/ace/UUID.inl126
-rw-r--r--ACE/ace/Unbounded_Set.h8
-rw-r--r--ACE/ace/Unbounded_Set.inl2
-rw-r--r--ACE/ace/Unbounded_Set_Ex.cpp2
-rw-r--r--ACE/ace/Unbounded_Set_Ex.h29
-rw-r--r--ACE/ace/Value_Ptr.h25
-rw-r--r--ACE/ace/Vector_T.cpp65
-rw-r--r--ACE/ace/Vector_T.h54
-rw-r--r--ACE/ace/Version.h10
-rw-r--r--ACE/ace/WFMO_Reactor.cpp9
-rw-r--r--ACE/ace/WFMO_Reactor.h56
-rw-r--r--ACE/ace/WIN32_Asynch_IO.cpp20
-rw-r--r--ACE/ace/WIN32_Asynch_IO.h22
-rw-r--r--ACE/ace/WIN32_Proactor.cpp2
-rw-r--r--ACE/ace/XTI_ATM_Mcast.cpp2
-rw-r--r--ACE/ace/XtReactor/XtReactor.cpp222
-rw-r--r--ACE/ace/XtReactor/XtReactor.h13
-rw-r--r--ACE/ace/XtReactor/ace_xtreactor.mpc11
-rw-r--r--ACE/ace/ace.mpc52
-rw-r--r--ACE/ace/ace.mwc14
-rw-r--r--ACE/ace/ace_ce_dll.cfg1
-rw-r--r--ACE/ace/ace_flreactor.mpc32
-rw-r--r--ACE/ace/ace_for_tao.mpc22
-rw-r--r--ACE/ace/ace_foxreactor.mpc32
-rw-r--r--ACE/ace/ace_qt3reactor.mpc43
-rw-r--r--ACE/ace/ace_qt4reactor.mpc43
-rw-r--r--ACE/ace/ace_tkreactor.mpc32
-rw-r--r--ACE/ace/ace_wchar.cpp2
-rw-r--r--ACE/ace/ace_wchar.h51
-rw-r--r--ACE/ace/ace_xtreactor.mpc32
-rw-r--r--ACE/ace/checked_iterator.h8
-rw-r--r--ACE/ace/config-WinCE.h78
-rw-r--r--ACE/ace/config-aix-5.x.h91
-rw-r--r--ACE/ace/config-aix-7.h29
-rw-r--r--ACE/ace/config-cray.h213
-rw-r--r--ACE/ace/config-cxx-common.h86
-rw-r--r--ACE/ace/config-cygwin32.h25
-rw-r--r--ACE/ace/config-doxygen.h126
-rw-r--r--ACE/ace/config-freebsd.h328
-rw-r--r--ACE/ace/config-g++-common.h79
-rw-r--r--ACE/ace/config-ghs-common.h43
-rw-r--r--ACE/ace/config-hpux-11.00.h40
-rw-r--r--ACE/ace/config-icc-common.h14
-rw-r--r--ACE/ace/config-integritySCA.h10
-rw-r--r--ACE/ace/config-irix6.5.x-sgic++.h18
-rw-r--r--ACE/ace/config-irix6.x-common.h257
-rw-r--r--ACE/ace/config-irix6.x-g++.h23
-rw-r--r--ACE/ace/config-irix6.x-sgic++.h36
-rw-r--r--ACE/ace/config-kfreebsd.h618
-rw-r--r--ACE/ace/config-linux-common.h454
-rw-r--r--ACE/ace/config-linux.h397
-rw-r--r--ACE/ace/config-lite.h12
-rw-r--r--ACE/ace/config-lynxos.h181
-rw-r--r--ACE/ace/config-macosx-iphone-hardware.h15
-rw-r--r--ACE/ace/config-macosx-iphone-simulator.h9
-rw-r--r--ACE/ace/config-macosx-leopard.h19
-rw-r--r--ACE/ace/config-macosx-lion.h19
-rw-r--r--ACE/ace/config-macosx-panther.h9
-rw-r--r--ACE/ace/config-macosx-snowleopard.h19
-rw-r--r--ACE/ace/config-macosx-tiger.h13
-rw-r--r--ACE/ace/config-macosx.h12
-rw-r--r--ACE/ace/config-macros.h184
-rw-r--r--ACE/ace/config-minimal.h39
-rw-r--r--ACE/ace/config-mvs.h131
-rw-r--r--ACE/ace/config-netbsd.h11
-rw-r--r--ACE/ace/config-openbsd.h303
-rw-r--r--ACE/ace/config-openvms.h16
-rw-r--r--ACE/ace/config-qnx-neutrino.h138
-rw-r--r--ACE/ace/config-qnx-rtp-62x.h133
-rw-r--r--ACE/ace/config-qnx-rtp-common.h50
-rw-r--r--ACE/ace/config-qnx-rtp-pre62x.h154
-rw-r--r--ACE/ace/config-qnx-rtp.h25
-rw-r--r--ACE/ace/config-qnx.h196
-rw-r--r--ACE/ace/config-rtems.h4
-rw-r--r--ACE/ace/config-sco-5.0.0-nothread.h14
-rw-r--r--ACE/ace/config-sco-5.0.0.h94
-rw-r--r--ACE/ace/config-suncc-common.h14
-rw-r--r--ACE/ace/config-sunos5.10.h2
-rw-r--r--ACE/ace/config-sunos5.4-g++.h10
-rw-r--r--ACE/ace/config-sunos5.4-sunc++-4.x.h17
-rw-r--r--ACE/ace/config-sunos5.5.h84
-rw-r--r--ACE/ace/config-sunos5.6.h10
-rw-r--r--ACE/ace/config-sunos5.7.h15
-rw-r--r--ACE/ace/config-tandem-nsk-mips-v2.h15
-rw-r--r--ACE/ace/config-tandem-nsk-mips-v3.h15
-rw-r--r--ACE/ace/config-tandem.h194
-rw-r--r--ACE/ace/config-tru64.h154
-rw-r--r--ACE/ace/config-unixware-7.1.0.h412
-rw-r--r--ACE/ace/config-unixware-7.1.0.udk.h460
-rw-r--r--ACE/ace/config-visualage.h20
-rw-r--r--ACE/ace/config-vxworks.h4
-rw-r--r--ACE/ace/config-vxworks6.4.h9
-rw-r--r--ACE/ace/config-vxworks6.6.h5
-rw-r--r--ACE/ace/config-vxworks6.8.h21
-rw-r--r--ACE/ace/config-win32-borland.h73
-rw-r--r--ACE/ace/config-win32-cegcc.h37
-rw-r--r--ACE/ace/config-win32-common.h60
-rw-r--r--ACE/ace/config-win32-dmc.h40
-rw-r--r--ACE/ace/config-win32-ghs.h95
-rw-r--r--ACE/ace/config-win32-interix.h150
-rw-r--r--ACE/ace/config-win32-mingw.h13
-rw-r--r--ACE/ace/config-win32-msvc-10.h16
-rw-r--r--ACE/ace/config-win32-msvc-7.h9
-rw-r--r--ACE/ace/config-win32-msvc-8.h15
-rw-r--r--ACE/ace/config-win32-msvc-9.h20
-rw-r--r--ACE/ace/config-win32-msvc.h11
-rw-r--r--ACE/ace/config-win32.h2
-rw-r--r--ACE/ace/gethrtime.cpp60
-rw-r--r--ACE/ace/iosfwd.h1
-rw-r--r--ACE/ace/os_include/net/os_if.h7
-rw-r--r--ACE/ace/os_include/netinet/os_in.h2
-rw-r--r--ACE/ace/os_include/netinet/os_tcp.h2
-rw-r--r--ACE/ace/os_include/os_dirent.h4
-rw-r--r--ACE/ace/os_include/os_dlfcn.h7
-rw-r--r--ACE/ace/os_include/os_errno.h385
-rw-r--r--ACE/ace/os_include/os_fcntl.h5
-rw-r--r--ACE/ace/os_include/os_ifaddrs.h43
-rw-r--r--ACE/ace/os_include/os_limits.h7
-rw-r--r--ACE/ace/os_include/os_netdb.h6
-rw-r--r--ACE/ace/os_include/os_pthread.h74
-rw-r--r--ACE/ace/os_include/os_pwd.h13
-rw-r--r--ACE/ace/os_include/os_sched.h4
-rw-r--r--ACE/ace/os_include/os_signal.h59
-rw-r--r--ACE/ace/os_include/os_stddef.h4
-rw-r--r--ACE/ace/os_include/os_stdio.h3
-rw-r--r--ACE/ace/os_include/os_stdlib.h12
-rw-r--r--ACE/ace/os_include/os_string.h30
-rw-r--r--ACE/ace/os_include/os_stropts.h2
-rw-r--r--ACE/ace/os_include/os_time.h11
-rw-r--r--ACE/ace/os_include/os_unistd.h17
-rw-r--r--ACE/ace/os_include/os_wchar.h8
-rw-r--r--ACE/ace/os_include/sys/os_mman.h12
-rw-r--r--ACE/ace/os_include/sys/os_resource.h11
-rw-r--r--ACE/ace/os_include/sys/os_select.h2
-rw-r--r--ACE/ace/os_include/sys/os_socket.h2
-rw-r--r--ACE/ace/os_include/sys/os_time.h8
-rw-r--r--ACE/ace/os_include/sys/os_types.h8
-rw-r--r--ACE/ace/svcconf.mpb31
-rw-r--r--ACE/ace/svcconfgen.mpc35
-rw-r--r--ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp6
-rw-r--r--ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.h149
-rw-r--r--ACE/apps/Gateway/Gateway/Config_Files.cpp2
-rw-r--r--ACE/apps/Gateway/Gateway/Config_Files.h87
-rw-r--r--ACE/apps/Gateway/Gateway/Connection_Handler.cpp2
-rw-r--r--ACE/apps/Gateway/Gateway/Connection_Handler.h99
-rw-r--r--ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp2
-rw-r--r--ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.h49
-rw-r--r--ACE/apps/Gateway/Gateway/Connection_Handler_Connector.cpp2
-rw-r--r--ACE/apps/Gateway/Gateway/Connection_Handler_Connector.h36
-rw-r--r--ACE/apps/Gateway/Gateway/Consumer_Dispatch_Set.h25
-rw-r--r--ACE/apps/Gateway/Gateway/Event.h109
-rw-r--r--ACE/apps/Gateway/Gateway/Event_Channel.cpp2
-rw-r--r--ACE/apps/Gateway/Gateway/Event_Channel.h106
-rw-r--r--ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp2
-rw-r--r--ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h53
-rw-r--r--ACE/apps/Gateway/Gateway/File_Parser.h65
-rw-r--r--ACE/apps/Gateway/Gateway/Gateway.cpp2
-rw-r--r--ACE/apps/Gateway/Gateway/Gateway.h32
-rw-r--r--ACE/apps/Gateway/Gateway/Options.cpp2
-rw-r--r--ACE/apps/Gateway/Gateway/Options.h166
-rw-r--r--ACE/apps/Gateway/Gateway/gatewayd.cpp36
-rw-r--r--ACE/apps/Gateway/Gateway/svc.conf2
-rw-r--r--ACE/apps/Gateway/Peer/Options.cpp2
-rw-r--r--ACE/apps/Gateway/Peer/Options.h113
-rw-r--r--ACE/apps/Gateway/Peer/Peer.cpp6
-rw-r--r--ACE/apps/Gateway/Peer/Peer.h233
-rw-r--r--ACE/apps/Gateway/Peer/peerd.cpp36
-rw-r--r--ACE/apps/Gateway/Peer/svc.conf2
-rw-r--r--ACE/apps/JAWS/clients/Blobby/Blob.cpp2
-rw-r--r--ACE/apps/JAWS/clients/Blobby/Blob.h85
-rw-r--r--ACE/apps/JAWS/clients/Blobby/Blob_Handler.cpp10
-rw-r--r--ACE/apps/JAWS/clients/Blobby/Blob_Handler.h65
-rw-r--r--ACE/apps/JAWS/clients/Blobby/Options.cpp2
-rw-r--r--ACE/apps/JAWS/clients/Blobby/Options.h51
-rw-r--r--ACE/apps/JAWS/clients/Blobby/blobby.cpp45
-rw-r--r--ACE/apps/JAWS/clients/Caching/ID_Generator.cpp2
-rw-r--r--ACE/apps/JAWS/clients/Caching/ID_Generator.h49
-rw-r--r--ACE/apps/JAWS/clients/Caching/Local_Locator.cpp2
-rw-r--r--ACE/apps/JAWS/clients/Caching/Local_Locator.h102
-rw-r--r--ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp6
-rw-r--r--ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.h167
-rw-r--r--ACE/apps/JAWS/clients/Caching/URL_Array_Helper.cpp2
-rw-r--r--ACE/apps/JAWS/clients/Caching/URL_Array_Helper.h25
-rw-r--r--ACE/apps/JAWS/clients/Caching/URL_Locator.cpp2
-rw-r--r--ACE/apps/JAWS/clients/Caching/URL_Locator.h75
-rw-r--r--ACE/apps/JAWS/clients/Caching/URL_Properties.cpp18
-rw-r--r--ACE/apps/JAWS/clients/Caching/URL_Properties.h163
-rw-r--r--ACE/apps/JAWS/clients/Caching/URL_Properties.inl14
-rw-r--r--ACE/apps/JAWS/clients/Caching/http_client.cpp33
-rw-r--r--ACE/apps/JAWS/clients/Caching/http_handler.cpp27
-rw-r--r--ACE/apps/JAWS/clients/Caching/http_handler.h68
-rw-r--r--ACE/apps/JAWS/clients/Caching/test_URL.cpp7
-rwxr-xr-xACE/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl2
-rwxr-xr-xACE/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl2
-rwxr-xr-xACE/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl8
-rwxr-xr-xACE/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl28
-rwxr-xr-xACE/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl6
-rwxr-xr-xACE/apps/JAWS/clients/WebSTONE/bin/wscollect.pl10
-rw-r--r--ACE/apps/JAWS/clients/WebSTONE/src/errexit.c4
-rw-r--r--ACE/apps/JAWS/clients/WebSTONE/src/genrand.c10
-rw-r--r--ACE/apps/JAWS/clients/WebSTONE/src/gettimeofday.c6
-rw-r--r--ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h2
-rw-r--r--ACE/apps/JAWS/clients/WebSTONE/src/parse_file_list.c2
-rw-r--r--ACE/apps/JAWS/clients/WebSTONE/src/rexec.c4
-rw-r--r--ACE/apps/JAWS/clients/WebSTONE/src/webmaster.c166
-rw-r--r--ACE/apps/JAWS/server/HTTP_Config.cpp2
-rw-r--r--ACE/apps/JAWS/server/HTTP_Handler.cpp4
-rw-r--r--ACE/apps/JAWS/server/HTTP_Handler.h2
-rw-r--r--ACE/apps/JAWS/server/HTTP_Helpers.cpp8
-rw-r--r--ACE/apps/JAWS/server/HTTP_Request.cpp7
-rw-r--r--ACE/apps/JAWS/server/HTTP_Response.cpp44
-rw-r--r--ACE/apps/JAWS/server/HTTP_Server.cpp8
-rw-r--r--ACE/apps/JAWS/server/IO.cpp563
-rw-r--r--ACE/apps/JAWS/server/IO.h293
-rw-r--r--ACE/apps/JAWS/server/JAWS_Concurrency.cpp2
-rw-r--r--ACE/apps/JAWS/server/JAWS_Concurrency.h2
-rw-r--r--ACE/apps/JAWS/server/JAWS_IO.cpp558
-rw-r--r--ACE/apps/JAWS/server/JAWS_IO.h293
-rw-r--r--ACE/apps/JAWS/server/JAWS_Pipeline.cpp2
-rw-r--r--ACE/apps/JAWS/server/JAWS_Pipeline_Handler.cpp2
-rw-r--r--ACE/apps/JAWS/server/Makefile.am4
-rw-r--r--ACE/apps/JAWS/server/Parse_Headers.cpp2
-rw-r--r--ACE/apps/JAWS/server/main.cpp2
-rw-r--r--ACE/apps/JAWS/server/server.mpc10
-rw-r--r--ACE/apps/JAWS/server/svc.conf2
-rw-r--r--ACE/apps/JAWS/stress_testing/benchd.cpp2
-rw-r--r--ACE/apps/JAWS/stress_testing/connection.cpp2
-rw-r--r--ACE/apps/JAWS/stress_testing/cp.cpp2
-rw-r--r--ACE/apps/JAWS/stress_testing/http_tester.cpp2
-rw-r--r--ACE/apps/JAWS/stress_testing/stats.cpp16
-rw-r--r--ACE/apps/JAWS/stress_testing/util.cpp2
-rw-r--r--ACE/apps/JAWS2/HTTP_10.cpp2
-rw-r--r--ACE/apps/JAWS2/HTTP_10_Parse.cpp2
-rw-r--r--ACE/apps/JAWS2/HTTP_10_Read.cpp2
-rw-r--r--ACE/apps/JAWS2/HTTP_10_Request.cpp2
-rw-r--r--ACE/apps/JAWS2/HTTP_10_Write.cpp2
-rw-r--r--ACE/apps/JAWS2/HTTP_Policy.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/Assoc_Array.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/Cache_Hash_T.cpp6
-rw-r--r--ACE/apps/JAWS2/JAWS/Cache_Manager_T.cpp76
-rw-r--r--ACE/apps/JAWS2/JAWS/Cache_Object.cpp12
-rw-r--r--ACE/apps/JAWS2/JAWS/Cache_Object.h5
-rw-r--r--ACE/apps/JAWS2/JAWS/Concurrency.cpp4
-rw-r--r--ACE/apps/JAWS2/JAWS/Concurrency.h2
-rw-r--r--ACE/apps/JAWS2/JAWS/Data_Block.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/FILE.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/IO.cpp595
-rw-r--r--ACE/apps/JAWS2/JAWS/IO.h263
-rw-r--r--ACE/apps/JAWS2/JAWS/IO_Acceptor.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/IO_Acceptor.h2
-rw-r--r--ACE/apps/JAWS2/JAWS/IO_Handler.cpp4
-rw-r--r--ACE/apps/JAWS2/JAWS/IO_Handler.h145
-rw-r--r--ACE/apps/JAWS2/JAWS/Jaws_IO.cpp595
-rw-r--r--ACE/apps/JAWS2/JAWS/Jaws_IO.h262
-rw-r--r--ACE/apps/JAWS2/JAWS/Makefile.am4
-rw-r--r--ACE/apps/JAWS2/JAWS/Pipeline.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp4
-rw-r--r--ACE/apps/JAWS2/JAWS/Policy.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/Policy.h12
-rw-r--r--ACE/apps/JAWS2/JAWS/Reaper.cpp4
-rw-r--r--ACE/apps/JAWS2/JAWS/Reaper.h19
-rw-r--r--ACE/apps/JAWS2/JAWS/Server.cpp4
-rw-r--r--ACE/apps/JAWS2/JAWS/Waiter.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/jaws2.mpc2
-rw-r--r--ACE/apps/JAWS2/main.cpp2
-rw-r--r--ACE/apps/JAWS3/bench/average.cpp1
-rw-r--r--ACE/apps/JAWS3/bench/mkfiles.cpp1
-rw-r--r--ACE/apps/JAWS3/bench/rqfiles.cpp1
-rw-r--r--ACE/apps/JAWS3/http/HTTP_Data.h1
-rw-r--r--ACE/apps/JAWS3/http/HTTP_Service_Handler.cpp1
-rw-r--r--ACE/apps/JAWS3/http/HTTP_Service_Handler.h3
-rw-r--r--ACE/apps/JAWS3/http/HTTP_States.h1
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/FILE_Cache.h52
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Map_Manager.h148
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp398
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.h392
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.cpp83
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.h89
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp82
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.h87
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Socket.cpp82
-rw-r--r--ACE/apps/JAWS3/jaws3-todo/Socket.h144
-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/Cached_Allocator_T.cpp24
-rw-r--r--ACE/apps/JAWS3/jaws3/Cached_Allocator_T.h2
-rw-r--r--ACE/apps/JAWS3/jaws3/Concurrency.cpp4
-rw-r--r--ACE/apps/JAWS3/jaws3/Concurrency_T.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/Concurrency_T.h1
-rw-r--r--ACE/apps/JAWS3/jaws3/Datagram.h2
-rw-r--r--ACE/apps/JAWS3/jaws3/FILE.cpp4
-rw-r--r--ACE/apps/JAWS3/jaws3/IO.cpp114
-rw-r--r--ACE/apps/JAWS3/jaws3/Jaws_IO.cpp114
-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/Protocol_Handler.cpp2
-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/THYBRID_Concurrency.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/TPR_Concurrency.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/Task_Timer.cpp4
-rw-r--r--ACE/apps/JAWS3/jaws3/Templates.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/Timer.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/Timer.h2
-rw-r--r--ACE/apps/JAWS3/jaws3/Timer_Helpers.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/jaws.conf2
-rw-r--r--ACE/apps/JAWS3/jaws3/jaws3.mpc6
-rw-r--r--ACE/apps/JAWS3/small/SS_Data.h1
-rw-r--r--ACE/apps/JAWS3/small/SS_Service_Handler.cpp1
-rw-r--r--ACE/apps/JAWS3/small/SS_Service_Handler.h3
-rw-r--r--ACE/apps/JAWS3/small/SS_State_DONE.cpp2
-rw-r--r--ACE/apps/JAWS3/small/SS_State_DONE.h1
-rw-r--r--ACE/apps/JAWS3/small/SS_State_ERROR.cpp1
-rw-r--r--ACE/apps/JAWS3/small/SS_State_ERROR.h1
-rw-r--r--ACE/apps/JAWS3/small/SS_State_PARSE.cpp2
-rw-r--r--ACE/apps/JAWS3/small/SS_State_PARSE.h1
-rw-r--r--ACE/apps/JAWS3/small/SS_State_READ.cpp2
-rw-r--r--ACE/apps/JAWS3/small/SS_State_READ.h1
-rw-r--r--ACE/apps/JAWS3/small/SS_State_WRITE.cpp3
-rw-r--r--ACE/apps/JAWS3/small/SS_State_WRITE.h1
-rw-r--r--ACE/apps/JAWS3/small/SS_Templates.cpp1
-rw-r--r--ACE/apps/JAWS3/small/jaws.conf2
-rw-r--r--ACE/apps/JAWS3/small/svc.conf2
-rw-r--r--ACE/apps/drwho/BS_Client.h56
-rw-r--r--ACE/apps/drwho/BS_Server.h58
-rw-r--r--ACE/apps/drwho/Binary_Search.cpp14
-rw-r--r--ACE/apps/drwho/Binary_Search.h74
-rw-r--r--ACE/apps/drwho/CM_Client.h46
-rw-r--r--ACE/apps/drwho/CM_Server.cpp2
-rw-r--r--ACE/apps/drwho/CM_Server.h30
-rw-r--r--ACE/apps/drwho/Comm_Manager.cpp8
-rw-r--r--ACE/apps/drwho/Comm_Manager.h25
-rw-r--r--ACE/apps/drwho/Drwho_Node.h32
-rw-r--r--ACE/apps/drwho/File_Manager.h34
-rw-r--r--ACE/apps/drwho/HT_Client.h30
-rw-r--r--ACE/apps/drwho/HT_Server.h30
-rw-r--r--ACE/apps/drwho/Hash_Table.h30
-rw-r--r--ACE/apps/drwho/Multicast_Manager.h34
-rw-r--r--ACE/apps/drwho/Options.h30
-rw-r--r--ACE/apps/drwho/PMC_All.h32
-rw-r--r--ACE/apps/drwho/PMC_Flo.h32
-rw-r--r--ACE/apps/drwho/PMC_Ruser.h32
-rw-r--r--ACE/apps/drwho/PMC_Usr.h32
-rw-r--r--ACE/apps/drwho/PMS_All.cpp4
-rw-r--r--ACE/apps/drwho/PMS_All.h30
-rw-r--r--ACE/apps/drwho/PMS_Flo.h32
-rw-r--r--ACE/apps/drwho/PMS_Ruser.h32
-rw-r--r--ACE/apps/drwho/PMS_Usr.h32
-rw-r--r--ACE/apps/drwho/PM_Client.h32
-rw-r--r--ACE/apps/drwho/PM_Server.h32
-rw-r--r--ACE/apps/drwho/Protocol_Manager.h34
-rw-r--r--ACE/apps/drwho/Protocol_Record.h32
-rw-r--r--ACE/apps/drwho/Rwho_DB_Manager.h34
-rw-r--r--ACE/apps/drwho/SL_Client.h30
-rw-r--r--ACE/apps/drwho/SL_Server.h30
-rw-r--r--ACE/apps/drwho/SML_Client.h23
-rw-r--r--ACE/apps/drwho/SML_Server.h23
-rw-r--r--ACE/apps/drwho/SMR_Client.cpp2
-rw-r--r--ACE/apps/drwho/SMR_Client.h23
-rw-r--r--ACE/apps/drwho/SMR_Server.h23
-rw-r--r--ACE/apps/drwho/SM_Client.cpp8
-rw-r--r--ACE/apps/drwho/SM_Client.h25
-rw-r--r--ACE/apps/drwho/SM_Server.cpp6
-rw-r--r--ACE/apps/drwho/SM_Server.h23
-rw-r--r--ACE/apps/drwho/Search_Struct.h34
-rw-r--r--ACE/apps/drwho/Select_Manager.h23
-rw-r--r--ACE/apps/drwho/Single_Lookup.h30
-rw-r--r--ACE/apps/drwho/client.cpp29
-rw-r--r--ACE/apps/drwho/global.h30
-rw-r--r--ACE/apps/drwho/server.cpp37
-rw-r--r--ACE/apps/gperf/ChangeLog106
-rw-r--r--ACE/apps/gperf/src/Bool_Array.cpp51
-rw-r--r--ACE/apps/gperf/src/Bool_Array.h76
-rw-r--r--ACE/apps/gperf/src/Gen_Perf.cpp166
-rw-r--r--ACE/apps/gperf/src/Gen_Perf.h76
-rw-r--r--ACE/apps/gperf/src/Hash_Table.cpp48
-rw-r--r--ACE/apps/gperf/src/Hash_Table.h74
-rw-r--r--ACE/apps/gperf/src/Iterator.cpp59
-rw-r--r--ACE/apps/gperf/src/Iterator.h85
-rw-r--r--ACE/apps/gperf/src/Key_List.cpp196
-rw-r--r--ACE/apps/gperf/src/Key_List.h129
-rw-r--r--ACE/apps/gperf/src/List_Node.cpp80
-rw-r--r--ACE/apps/gperf/src/List_Node.h77
-rw-r--r--ACE/apps/gperf/src/Options.cpp230
-rw-r--r--ACE/apps/gperf/src/Options.h180
-rw-r--r--ACE/apps/gperf/src/Vectors.cpp54
-rw-r--r--ACE/apps/gperf/src/Vectors.h56
-rw-r--r--ACE/apps/gperf/src/Version.cpp44
-rw-r--r--ACE/apps/gperf/src/gperf.cpp71
-rw-r--r--ACE/apps/gperf/src/gperf.mpc5
-rw-r--r--ACE/apps/gperf/tests/test.cpp2
-rw-r--r--ACE/apps/soreduce/Library.cpp6
-rw-r--r--ACE/apps/soreduce/Obj_Module.cpp12
-rw-r--r--ACE/apps/soreduce/Obj_Module.h14
-rw-r--r--ACE/apps/soreduce/SO_Group.cpp33
-rw-r--r--ACE/apps/soreduce/SO_Group.h4
-rw-r--r--ACE/apps/soreduce/Sig_List.cpp20
-rw-r--r--ACE/apps/soreduce/Sig_List.h10
-rw-r--r--ACE/apps/soreduce/Signature.cpp12
-rw-r--r--ACE/apps/soreduce/Signature.h20
-rw-r--r--ACE/apps/soreduce/soreduce.cpp12
-rw-r--r--ACE/bin/ACETAOCIAO.style23
-rw-r--r--ACE/bin/ACEutils.pm6
-rwxr-xr-xACE/bin/Array.pl31
-rwxr-xr-xACE/bin/Array_Helper16
-rw-r--r--ACE/bin/ChangeLogEditor/FileLocatorFactory.pm4
-rw-r--r--ACE/bin/DependencyGenerator/GNUObjectGenerator.pm1
-rwxr-xr-xACE/bin/Hash_Map_Manager.pl146
-rwxr-xr-xACE/bin/Hash_Map_Manager_Helper76
-rw-r--r--ACE/bin/LabVIEW_RT/labview_test_controller/ReadMe.txt18
-rw-r--r--ACE/bin/LabVIEW_RT/labview_test_controller/labview_test_controller.cpp6
-rw-r--r--ACE/bin/LabVIEW_RT/labview_test_controller/test.cpp2
-rw-r--r--ACE/bin/MakeProjectCreator/config/MPC.cfg4
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_fl.mpb4
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_fox.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_gl.mpb4
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_gtk.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_mc.mpb3
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_qt.mpb4
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_qt3.mpb5
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_qt4reactor.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_tk.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_unicode.mpb4
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_x11.mpb4
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_xt.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/acedefaults.mpb31
-rw-r--r--ACE/bin/MakeProjectCreator/config/aceexe.mpb1
-rw-r--r--ACE/bin/MakeProjectCreator/config/acemfcexe.mpb14
-rw-r--r--ACE/bin/MakeProjectCreator/config/automake.features2
-rw-r--r--ACE/bin/MakeProjectCreator/config/bmake.features1
-rw-r--r--ACE/bin/MakeProjectCreator/config/crosscompile.mpb8
-rw-r--r--ACE/bin/MakeProjectCreator/config/default.rel2
-rw-r--r--ACE/bin/MakeProjectCreator/config/em3.features1
-rw-r--r--ACE/bin/MakeProjectCreator/config/exceptions.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/global.features25
-rw-r--r--ACE/bin/MakeProjectCreator/config/gnuace.features3
-rw-r--r--ACE/bin/MakeProjectCreator/config/inet.mpb14
-rw-r--r--ACE/bin/MakeProjectCreator/config/inetssl.mpb7
-rw-r--r--ACE/bin/MakeProjectCreator/config/install.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/install_data.mpb12
-rw-r--r--ACE/bin/MakeProjectCreator/config/ipv6.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/mc_test_utils.mpb7
-rw-r--r--ACE/bin/MakeProjectCreator/config/nmake.features1
-rw-r--r--ACE/bin/MakeProjectCreator/config/pkgconfig.mpb3
-rw-r--r--ACE/bin/MakeProjectCreator/config/tmcast.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc10.features6
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc10nmake.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc71.features1
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc8.features1
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc9.features1
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc_warnings.mpb9
-rw-r--r--ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt2
-rw-r--r--ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt2
-rw-r--r--ACE/bin/MakeProjectCreator/config/wb26.features4
-rw-r--r--ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm11
-rw-r--r--ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm8
-rw-r--r--ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm8
-rw-r--r--ACE/bin/MakeProjectCreator/templates/gnu.mpd251
-rw-r--r--ACE/bin/PerlACE/MSProject.pm68
-rw-r--r--ACE/bin/PerlACE/MSProject/DSP.pm4
-rw-r--r--ACE/bin/PerlACE/MSProject/VCP.pm4
-rw-r--r--ACE/bin/PerlACE/ProcessLVRT.pm11
-rw-r--r--ACE/bin/PerlACE/ProcessVX.pm38
-rw-r--r--ACE/bin/PerlACE/ProcessVX_Unix.pm114
-rw-r--r--ACE/bin/PerlACE/ProcessVX_Win32.pm44
-rw-r--r--ACE/bin/PerlACE/ProcessWinCE.pm48
-rw-r--r--ACE/bin/PerlACE/ProcessWinCE_Unix.pm442
-rw-r--r--ACE/bin/PerlACE/Process_Unix.pm246
-rw-r--r--ACE/bin/PerlACE/Process_VMS.pm9
-rw-r--r--ACE/bin/PerlACE/Process_Win32.pm68
-rw-r--r--ACE/bin/PerlACE/Run_Test.pm78
-rw-r--r--ACE/bin/PerlACE/TestTarget.pm141
-rw-r--r--ACE/bin/PerlACE/TestTarget_LVRT.pm17
-rw-r--r--ACE/bin/PerlACE/TestTarget_VxWorks.pm34
-rw-r--r--ACE/bin/PerlACE/TestTarget_WinCE.pm24
-rw-r--r--ACE/bin/PythonACE/__init__.py2
-rw-r--r--ACE/bin/PythonACE/fuzz/__init__.py97
-rw-r--r--ACE/bin/PythonACE/fuzz/_fuzz.py3
-rw-r--r--ACE/bin/PythonACE/fuzz/_generic_handler.py44
-rw-r--r--ACE/bin/PythonACE/fuzz/_mailer.py106
-rw-r--r--ACE/bin/PythonACE/fuzz/_path.py0
-rw-r--r--ACE/bin/PythonACE/fuzz/_singleton.py60
-rw-r--r--ACE/bin/PythonACE/fuzz/_types.py6
-rw-r--r--ACE/bin/PythonACE/fuzz/_warning_handler.py53
-rw-r--r--ACE/bin/PythonACE/fuzz/check_includes.py20
-rwxr-xr-xACE/bin/PythonACE/fuzz/check_no_tabs.py16
-rw-r--r--ACE/bin/PythonACE/fuzz/cpp_inline.py23
-rw-r--r--ACE/bin/PythonACE/fuzz/inline.py19
-rw-r--r--ACE/bin/PythonACE/fuzz/math_include.py19
-rw-r--r--ACE/bin/PythonACE/fuzz/max_filename.py16
-rw-r--r--ACE/bin/PythonACE/fuzz/max_project_len.py27
-rw-r--r--ACE/bin/PythonACE/fuzz/newline.py17
-rw-r--r--ACE/bin/PythonACE/fuzz/no_conflict_markers.py20
-rw-r--r--ACE/bin/PythonACE/fuzz/noncvs.py12
-rw-r--r--ACE/bin/PythonACE/fuzz/ptr_arith_t.py17
-rw-r--r--ACE/bin/PythonACE/fuzz/refcountservantbase.py17
-rw-r--r--ACE/bin/PythonACE/fuzz/streams_include.py19
-rw-r--r--ACE/bin/PythonACE/fuzz/verify_changelog.py13
-rwxr-xr-xACE/bin/ace_components9
-rwxr-xr-xACE/bin/ace_install_pkgconfig.pl46
-rw-r--r--ACE/bin/ace_tests.lst1
-rwxr-xr-xACE/bin/auto_run_tests.pl41
-rwxr-xr-xACE/bin/bootstrap4
-rwxr-xr-xACE/bin/cle.pl10
-rwxr-xr-xACE/bin/clean_dsp.pl14
-rwxr-xr-xACE/bin/copy-script.sh2
-rwxr-xr-xACE/bin/cut_cidlc.sh55
-rwxr-xr-xACE/bin/diff-builds-and-group-fixed-tests-only.sh12
-rwxr-xr-xACE/bin/diff-builds.pl18
-rwxr-xr-xACE/bin/doxygen-convert-h.pl42
-rw-r--r--ACE/bin/envinfo.cpp2
-rwxr-xr-xACE/bin/fuzz.pl537
-rwxr-xr-xACE/bin/fuzz.py66
-rwxr-xr-xACE/bin/g++_metric.sh4
-rwxr-xr-xACE/bin/generate_doxygen.pl25
-rwxr-xr-xACE/bin/generate_rel_manpages30
-rwxr-xr-xACE/bin/mail_test_stats.sh43
-rwxr-xr-xACE/bin/make_release.py360
-rwxr-xr-xACE/bin/mpc.pl6
-rwxr-xr-xACE/bin/msvc_mpc_auto_compile.pl5
-rw-r--r--ACE/bin/msvc_static_order.lst72
-rwxr-xr-xACE/bin/mwc.pl6
-rwxr-xr-xACE/bin/regenerate_exports.pl4
-rwxr-xr-xACE/bin/run_all.pl224
-rwxr-xr-xACE/bin/run_all_win32.pl180
-rwxr-xr-xACE/bin/sets-manager.py13
-rwxr-xr-xACE/bin/svn_props.py1
-rwxr-xr-xACE/bin/topinfo_iorsize_stats.sh8
-rwxr-xr-xACE/bin/topinfo_simple_stats.sh14
-rwxr-xr-xACE/bin/topinfo_stats.sh12
-rwxr-xr-xACE/bin/update-ace+tao.sh4
-rwxr-xr-xACE/bin/vx_repo_link.pl217
-rwxr-xr-xACE/bin/vxworks_modify.pl578
-rw-r--r--ACE/configure.ac228
-rw-r--r--ACE/contrib/FaCE/CE_ARGV.CPP118
-rw-r--r--ACE/contrib/FaCE/CE_ARGV.H90
-rw-r--r--ACE/contrib/FaCE/CE_ARGV.cpp117
-rw-r--r--ACE/contrib/FaCE/CE_ARGV.h91
-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.h1
-rw-r--r--ACE/contrib/FaCE/FaCE.mpc2
-rw-r--r--ACE/contrib/FaCE/FaCENOACE.mpc4
-rw-r--r--ACE/contrib/FaCE/License.txt2
-rw-r--r--ACE/contrib/FaCE/Main.cpp2
-rw-r--r--ACE/contrib/FaCE/newres.h3
-rw-r--r--ACE/contrib/FaCE/resource.h2
-rw-r--r--ACE/contrib/minizip/miniunz.c4
-rw-r--r--ACE/contrib/minizip/minizip.mpc2
-rw-r--r--ACE/contrib/minizip/minizip.mwc3
-rw-r--r--ACE/contrib/minizip/minizip_export.h6
-rw-r--r--ACE/contrib/minizip/mztools.c12
-rw-r--r--ACE/contrib/minizip/unzip.c6
-rw-r--r--ACE/contrib/minizip/zip.c2
-rw-r--r--ACE/contrib/utility/BuildRules/Archive.gcc.post.rules47
-rw-r--r--ACE/contrib/utility/BuildRules/Archive.gcc.pre.rules28
-rw-r--r--ACE/contrib/utility/BuildRules/Archive.post.rules7
-rw-r--r--ACE/contrib/utility/BuildRules/Archive.pre.rules7
-rw-r--r--ACE/contrib/utility/BuildRules/Bootstrap.rules95
-rw-r--r--ACE/contrib/utility/BuildRules/Documentation.post.rules35
-rw-r--r--ACE/contrib/utility/BuildRules/Documentation.pre.rules18
-rw-r--r--ACE/contrib/utility/BuildRules/Executable.gcc.post.rules46
-rw-r--r--ACE/contrib/utility/BuildRules/Executable.gcc.pre.rules26
-rw-r--r--ACE/contrib/utility/BuildRules/Executable.generic.post.rules55
-rw-r--r--ACE/contrib/utility/BuildRules/Executable.generic.pre.rules26
-rw-r--r--ACE/contrib/utility/BuildRules/Executable.post.rules8
-rw-r--r--ACE/contrib/utility/BuildRules/Executable.pre.rules8
-rw-r--r--ACE/contrib/utility/BuildRules/Object.gcc.post.rules38
-rw-r--r--ACE/contrib/utility/BuildRules/Object.gcc.pre.rules22
-rw-r--r--ACE/contrib/utility/BuildRules/Object.post.rules7
-rw-r--r--ACE/contrib/utility/BuildRules/Object.pre.rules7
-rw-r--r--ACE/contrib/utility/BuildRules/Recursion.post.rules37
-rw-r--r--ACE/contrib/utility/BuildRules/Recursion.pre.rules13
-rw-r--r--ACE/contrib/utility/BuildRules/Shared.gcc.post.rules43
-rw-r--r--ACE/contrib/utility/BuildRules/Shared.gcc.pre.rules26
-rw-r--r--ACE/contrib/utility/BuildRules/Shared.generic.post.rules51
-rw-r--r--ACE/contrib/utility/BuildRules/Shared.generic.pre.rules26
-rw-r--r--ACE/contrib/utility/BuildRules/Shared.post.rules7
-rw-r--r--ACE/contrib/utility/BuildRules/Shared.pre.rules7
-rw-r--r--ACE/contrib/utility/BuildRules/Thoughts55
-rw-r--r--ACE/contrib/utility/Documentation/Build.xhtml58
-rw-r--r--ACE/contrib/utility/Documentation/CommandLine/News.xhtml31
-rw-r--r--ACE/contrib/utility/Documentation/CommandLine/Terminology.xhtml272
-rw-r--r--ACE/contrib/utility/Documentation/CommandLine/Thoughts8
-rw-r--r--ACE/contrib/utility/Documentation/CommandLine/index.xhtml39
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Compound.hpp.html50
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Example/Makefile26
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Example/bad_cast.cpp.html63
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Example/compound.cpp.html153
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Example/hello_world.cpp.html152
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html69
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Logic/DescriptiveException.hpp.html61
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Logic/Exception.hpp.html43
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Logic/Makefile20
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Makefile16
-rw-r--r--ACE/contrib/utility/Documentation/ExH/Makefile.documentation20
-rw-r--r--ACE/contrib/utility/Documentation/ExH/News.xhtml47
-rw-r--r--ACE/contrib/utility/Documentation/ExH/System/DescriptiveException.hpp.html64
-rw-r--r--ACE/contrib/utility/Documentation/ExH/System/Exception.hpp.html32
-rw-r--r--ACE/contrib/utility/Documentation/ExH/System/Makefile20
-rw-r--r--ACE/contrib/utility/Documentation/ExH/index.xhtml60
-rw-r--r--ACE/contrib/utility/Documentation/Hetero/News.xhtml31
-rw-r--r--ACE/contrib/utility/Documentation/Hetero/index.xhtml62
-rw-r--r--ACE/contrib/utility/Documentation/Introspection/News.xhtml38
-rw-r--r--ACE/contrib/utility/Documentation/Introspection/index.xhtml42
-rw-r--r--ACE/contrib/utility/Documentation/Makefile16
-rw-r--r--ACE/contrib/utility/Documentation/News.xhtml72
-rw-r--r--ACE/contrib/utility/Documentation/ReferenceCounting/DefaultImpl.hpp.html93
-rw-r--r--ACE/contrib/utility/Documentation/ReferenceCounting/Interface.hpp.html82
-rw-r--r--ACE/contrib/utility/Documentation/ReferenceCounting/Makefile22
-rw-r--r--ACE/contrib/utility/Documentation/ReferenceCounting/News.xhtml90
-rw-r--r--ACE/contrib/utility/Documentation/ReferenceCounting/SmartPtr.hpp.html103
-rw-r--r--ACE/contrib/utility/Documentation/ReferenceCounting/StrictPtr.hpp.html107
-rw-r--r--ACE/contrib/utility/Documentation/ReferenceCounting/index.xhtml50
-rw-r--r--ACE/contrib/utility/Documentation/ReleaseProcess13
-rw-r--r--ACE/contrib/utility/Documentation/Style/CXX.css9
-rw-r--r--ACE/contrib/utility/Documentation/Style/CXX_Blue.css25
-rw-r--r--ACE/contrib/utility/Documentation/Style/Default.css45
-rw-r--r--ACE/contrib/utility/Documentation/Synch/Makefile16
-rw-r--r--ACE/contrib/utility/Documentation/Synch/News.xhtml36
-rw-r--r--ACE/contrib/utility/Documentation/Synch/Policy/Makefile20
-rw-r--r--ACE/contrib/utility/Documentation/Synch/Policy/Null.hpp.html59
-rw-r--r--ACE/contrib/utility/Documentation/Synch/index.xhtml48
-rw-r--r--ACE/contrib/utility/Documentation/TODO53
-rw-r--r--ACE/contrib/utility/Documentation/Template.xhtml33
-rw-r--r--ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount95
-rw-r--r--ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount217
-rw-r--r--ACE/contrib/utility/Documentation/Thoughts/Enum/EnumInfo45
-rw-r--r--ACE/contrib/utility/Documentation/index.xhtml81
-rw-r--r--ACE/contrib/utility/Example/CommandLine/Foo/command.cpp88
-rw-r--r--ACE/contrib/utility/Example/CommandLine/Foo/foo.cpp184
-rw-r--r--ACE/contrib/utility/Example/ExH/BadCast/Makefile24
-rw-r--r--ACE/contrib/utility/Example/ExH/BadCast/bad_cast.cpp54
-rw-r--r--ACE/contrib/utility/Example/ExH/Compound/Makefile24
-rw-r--r--ACE/contrib/utility/Example/ExH/Compound/compound.cpp144
-rw-r--r--ACE/contrib/utility/Example/ExH/HelloWorld/Makefile24
-rw-r--r--ACE/contrib/utility/Example/ExH/HelloWorld/hello_world.cpp142
-rw-r--r--ACE/contrib/utility/Example/ExH/LogicToSystem/Makefile24
-rw-r--r--ACE/contrib/utility/Example/ExH/LogicToSystem/logic_to_system.cpp60
-rw-r--r--ACE/contrib/utility/Example/ExH/Makefile16
-rw-r--r--ACE/contrib/utility/Example/Hetero/Container/Makefile24
-rw-r--r--ACE/contrib/utility/Example/Hetero/Container/container.cpp112
-rw-r--r--ACE/contrib/utility/Example/Hetero/Makefile16
-rw-r--r--ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.cpp104
-rw-r--r--ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.hpp61
-rw-r--r--ACE/contrib/utility/Example/Introspection/InheritanceTree/Makefile22
-rw-r--r--ACE/contrib/utility/Example/Introspection/InheritanceTree/inheritance_tree.cpp65
-rw-r--r--ACE/contrib/utility/Example/Introspection/Makefile16
-rw-r--r--ACE/contrib/utility/Example/Introspection/Traversal/Makefile22
-rw-r--r--ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.cpp119
-rw-r--r--ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp95
-rw-r--r--ACE/contrib/utility/Example/Introspection/Traversal/Traversal.cpp105
-rw-r--r--ACE/contrib/utility/Example/Introspection/Traversal/Traversal.hpp157
-rw-r--r--ACE/contrib/utility/Example/Introspection/Traversal/driver.cpp93
-rw-r--r--ACE/contrib/utility/Example/Makefile16
-rw-r--r--ACE/contrib/utility/Makefile18
-rw-r--r--ACE/contrib/utility/Test/ExH/Compound/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ExH/Compound/compound.cpp115
-rw-r--r--ACE/contrib/utility/Test/ExH/Converter/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ExH/Converter/converter.cpp50
-rw-r--r--ACE/contrib/utility/Test/ExH/Inline/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ExH/Inline/inline.cpp19
-rw-r--r--ACE/contrib/utility/Test/ExH/Inline/unit.cpp8
-rw-r--r--ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/descriptive_exception.cpp110
-rw-r--r--ACE/contrib/utility/Test/ExH/Logic/Makefile16
-rw-r--r--ACE/contrib/utility/Test/ExH/Makefile16
-rw-r--r--ACE/contrib/utility/Test/ExH/System/DescriptiveException/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp109
-rw-r--r--ACE/contrib/utility/Test/ExH/System/Makefile16
-rw-r--r--ACE/contrib/utility/Test/Introspection/Inline/Makefile24
-rw-r--r--ACE/contrib/utility/Test/Introspection/Inline/inline.cpp20
-rw-r--r--ACE/contrib/utility/Test/Introspection/Inline/unit.cpp8
-rw-r--r--ACE/contrib/utility/Test/Introspection/Makefile16
-rw-r--r--ACE/contrib/utility/Test/Makefile18
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/default_impl.cpp132
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/Inline/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/Inline/inline.cpp16
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/Inline/unit.cpp8
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/Interface/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/Interface/interface.cpp104
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/Makefile16
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/smart_ptr.cpp220
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/Makefile24
-rw-r--r--ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/strict_ptr.cpp218
-rw-r--r--ACE/contrib/utility/Test/Synch/Inline/Makefile24
-rw-r--r--ACE/contrib/utility/Test/Synch/Inline/inline.cpp20
-rw-r--r--ACE/contrib/utility/Test/Synch/Inline/unit.cpp8
-rw-r--r--ACE/contrib/utility/Test/Synch/Makefile16
-rw-r--r--ACE/contrib/utility/Utility/ExH/Compound.hpp49
-rw-r--r--ACE/contrib/utility/Utility/ExH/Compound.tpp74
-rw-r--r--ACE/contrib/utility/Utility/ExH/Converter.hpp24
-rw-r--r--ACE/contrib/utility/Utility/ExH/Converter.tpp19
-rw-r--r--ACE/contrib/utility/Utility/ExH/ExH.hpp22
-rw-r--r--ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.hpp65
-rw-r--r--ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.ipp106
-rw-r--r--ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.tpp23
-rw-r--r--ACE/contrib/utility/Utility/ExH/Logic/Exception.hpp42
-rw-r--r--ACE/contrib/utility/Utility/ExH/Logic/Exception.ipp20
-rw-r--r--ACE/contrib/utility/Utility/ExH/StringStreamConverter.hpp26
-rw-r--r--ACE/contrib/utility/Utility/ExH/StringStreamConverter.ipp18
-rw-r--r--ACE/contrib/utility/Utility/ExH/System/DescriptiveException.hpp65
-rw-r--r--ACE/contrib/utility/Utility/ExH/System/DescriptiveException.ipp91
-rw-r--r--ACE/contrib/utility/Utility/ExH/System/DescriptiveException.tpp23
-rw-r--r--ACE/contrib/utility/Utility/ExH/System/Exception.hpp29
-rw-r--r--ACE/contrib/utility/Utility/Hetero/Container.hpp182
-rw-r--r--ACE/contrib/utility/Utility/Hetero/Shell.hpp86
-rw-r--r--ACE/contrib/utility/Utility/Hetero/TypeList.hpp46
-rw-r--r--ACE/contrib/utility/Utility/Hetero/TypedContainer.hpp57
-rw-r--r--ACE/contrib/utility/Utility/Hetero/Vector.hpp47
-rw-r--r--ACE/contrib/utility/Utility/Introspection/Introspection.hpp14
-rw-r--r--ACE/contrib/utility/Utility/Introspection/Makefile19
-rw-r--r--ACE/contrib/utility/Utility/Introspection/Object.cpp24
-rw-r--r--ACE/contrib/utility/Utility/Introspection/Object.hpp47
-rw-r--r--ACE/contrib/utility/Utility/Introspection/Object.ipp48
-rw-r--r--ACE/contrib/utility/Utility/Introspection/TypeId.cpp21
-rw-r--r--ACE/contrib/utility/Utility/Introspection/TypeId.hpp47
-rw-r--r--ACE/contrib/utility/Utility/Introspection/TypeId.ipp37
-rw-r--r--ACE/contrib/utility/Utility/Introspection/TypeId.tpp18
-rw-r--r--ACE/contrib/utility/Utility/Introspection/TypeInfo.hpp104
-rw-r--r--ACE/contrib/utility/Utility/Introspection/TypeInfo.ipp77
-rw-r--r--ACE/contrib/utility/Utility/Makefile16
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.hpp97
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.ipp105
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.hpp60
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.ipp122
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/Interface.hpp80
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/Interface.ipp22
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/Interface.tpp19
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/ReferenceCounting.hpp16
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.hpp97
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.tpp164
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.hpp102
-rw-r--r--ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.tpp161
-rw-r--r--ACE/contrib/utility/Utility/Synch/Policy/Null.hpp54
-rw-r--r--ACE/contrib/utility/Utility/Synch/Policy/Null.ipp20
-rw-r--r--ACE/contrib/utility/Vault/StringConverter.hpp27
-rw-r--r--ACE/contrib/utility/Vault/StringConverter.ipp18
-rw-r--r--ACE/contrib/utility/Vault/hetero/map13
-rw-r--r--ACE/contrib/utility/Vault/hetero/map.hpp249
-rw-r--r--ACE/contrib/utility/Vault/hetero/map.tpp12
-rw-r--r--ACE/contrib/utility/Version3
-rw-r--r--ACE/contrib/utility/license.html79
-rw-r--r--ACE/debian/ACE-DPKG.mwc32
-rw-r--r--ACE/debian/Basic_Logging_Service.sgml68
-rw-r--r--ACE/debian/Event_Logging_Service.sgml70
-rw-r--r--ACE/debian/Notify_Logging_Service.sgml70
-rw-r--r--ACE/debian/README.Debian37
-rw-r--r--ACE/debian/README.source44
-rw-r--r--ACE/debian/RTEvent_Logging_Service.sgml70
-rw-r--r--ACE/debian/TAO-DPKG.mwc28
-rw-r--r--ACE/debian/TAO_ORB_Options.sgml (renamed from ACE/debianbuild/TAO_ORB_Options.sgml)0
-rw-r--r--ACE/debian/TODO19
-rw-r--r--ACE/debian/ace-gperf.docs (renamed from ACE/debianbuild/gperf-ace.docs)0
-rw-r--r--ACE/debian/ace-gperf.install (renamed from ACE/debianbuild/gperf-ace.install)0
-rw-r--r--ACE/debian/ace-netsvcs.docs3
-rw-r--r--ACE/debian/ace-netsvcs.install2
-rw-r--r--ACE/debian/ace-netsvcs.manpages1
-rw-r--r--ACE/debian/ace.dsc10
-rw-r--r--ACE/debian/ace_netsvcs.sgml158
-rwxr-xr-xACE/debian/cmp-autoconf-regular.sh37
-rwxr-xr-xACE/debian/cmp-installation.sh38
-rw-r--r--ACE/debian/compat1
-rw-r--r--ACE/debian/config.h29
-rw-r--r--ACE/debian/copyright692
-rw-r--r--ACE/debian/debian.changelog1026
-rw-r--r--ACE/debian/debian.control800
-rw-r--r--ACE/debian/debian.rules198
-rw-r--r--ACE/debian/default.features35
-rwxr-xr-xACE/debian/fix_doxygen.sh32
-rw-r--r--ACE/debian/gperf-ace.docs2
-rw-r--r--ACE/debian/gperf-ace.install2
-rw-r--r--ACE/debian/libace-6.0.3.docs8
-rw-r--r--ACE/debian/libace-6.0.3.install4
-rw-r--r--ACE/debian/libace-dev.docs7
-rw-r--r--ACE/debian/libace-dev.install19
-rw-r--r--ACE/debian/libace-dev.links2
-rw-r--r--ACE/debian/libace-doc.doc-base.reference10
-rw-r--r--ACE/debian/libace-doc.docs3
-rw-r--r--ACE/debian/libace-flreactor-6.0.3.install1
-rw-r--r--ACE/debian/libace-flreactor-dev.install (renamed from ACE/debianbuild/libace-flreactor-dev.install)0
-rw-r--r--ACE/debian/libace-foxreactor-6.0.3.install1
-rw-r--r--ACE/debian/libace-foxreactor-dev.install (renamed from ACE/debianbuild/libace-foxreactor-dev.install)0
-rw-r--r--ACE/debian/libace-htbp-6.0.3.install1
-rw-r--r--ACE/debian/libace-htbp-dev.docs (renamed from ACE/debianbuild/libace-htbp-dev.docs)0
-rw-r--r--ACE/debian/libace-htbp-dev.install (renamed from ACE/debianbuild/libace-htbp-dev.install)0
-rw-r--r--ACE/debian/libace-inet-6.0.3.install1
-rw-r--r--ACE/debian/libace-inet-dev.install66
-rw-r--r--ACE/debian/libace-inet-ssl-6.0.3.install1
-rw-r--r--ACE/debian/libace-inet-ssl-dev.install4
-rw-r--r--ACE/debian/libace-qtreactor-6.0.3.install1
-rw-r--r--ACE/debian/libace-qtreactor-dev.install (renamed from ACE/debianbuild/libace-qtreactor-dev.install)0
-rw-r--r--ACE/debian/libace-rmcast-6.0.3.install1
-rw-r--r--ACE/debian/libace-rmcast-dev.docs (renamed from ACE/debianbuild/libace-rmcast-dev.docs)0
-rw-r--r--ACE/debian/libace-rmcast-dev.install (renamed from ACE/debianbuild/libace-rmcast-dev.install)0
-rw-r--r--ACE/debian/libace-ssl-6.0.3.install1
-rw-r--r--ACE/debian/libace-ssl-dev.install (renamed from ACE/debianbuild/libace-ssl-dev.install)0
-rw-r--r--ACE/debian/libace-tkreactor-6.0.3.install1
-rw-r--r--ACE/debian/libace-tkreactor-dev.install (renamed from ACE/debianbuild/libace-tkreactor-dev.install)0
-rw-r--r--ACE/debian/libace-tmcast-6.0.3.install1
-rw-r--r--ACE/debian/libace-tmcast-dev.docs (renamed from ACE/debianbuild/libace-tmcast-dev.docs)0
-rw-r--r--ACE/debian/libace-tmcast-dev.install (renamed from ACE/debianbuild/libace-tmcast-dev.install)0
-rw-r--r--ACE/debian/libace-xtreactor-6.0.3.install1
-rw-r--r--ACE/debian/libace-xtreactor-dev.install (renamed from ACE/debianbuild/libace-xtreactor-dev.install)0
-rw-r--r--ACE/debian/libacexml-6.0.3.docs (renamed from ACE/debianbuild/libacexml-5.6.8.docs)0
-rw-r--r--ACE/debian/libacexml-6.0.3.install3
-rw-r--r--ACE/debian/libacexml-dev.docs (renamed from ACE/debianbuild/libacexml-dev.docs)0
-rw-r--r--ACE/debian/libacexml-dev.install7
-rw-r--r--ACE/debian/libacexml-dev.links1
-rw-r--r--ACE/debian/libkokyu-6.0.3.docs (renamed from ACE/debianbuild/libkokyu-5.6.8.docs)0
-rw-r--r--ACE/debian/libkokyu-6.0.3.install1
-rw-r--r--ACE/debian/libkokyu-dev.doc-base.intro9
-rw-r--r--ACE/debian/libkokyu-dev.docs (renamed from ACE/debianbuild/libkokyu-dev.docs)0
-rw-r--r--ACE/debian/libkokyu-dev.install (renamed from ACE/debianbuild/libkokyu-dev.install)0
-rw-r--r--ACE/debian/libkokyu-dev.links1
-rw-r--r--ACE/debian/libnetsvcs-6.0.1.docs2
-rw-r--r--ACE/debian/libnetsvcs-6.0.1.install1
-rw-r--r--ACE/debian/libnetsvcs-dev.docs2
-rw-r--r--ACE/debian/libnetsvcs-dev.install3
-rw-r--r--ACE/debian/libtao-2.0.3.docs (renamed from ACE/debianbuild/libtao-1.6.8.docs)0
-rw-r--r--ACE/debian/libtao-2.0.3.install41
-rw-r--r--ACE/debian/libtao-dev.dirs1
-rw-r--r--ACE/debian/libtao-dev.docs (renamed from ACE/debianbuild/libtao-dev.docs)0
-rw-r--r--ACE/debian/libtao-dev.install113
-rw-r--r--ACE/debian/libtao-dev.links1
-rw-r--r--ACE/debian/libtao-doc.doc-base.reference10
-rw-r--r--ACE/debian/libtao-doc.docs3
-rw-r--r--ACE/debian/libtao-flresource-2.0.3.install1
-rw-r--r--ACE/debian/libtao-flresource-dev.install (renamed from ACE/debianbuild/libtao-flresource-dev.install)0
-rw-r--r--ACE/debian/libtao-foxresource-2.0.3.install1
-rw-r--r--ACE/debian/libtao-foxresource-dev.install (renamed from ACE/debianbuild/libtao-foxresource-dev.install)0
-rw-r--r--ACE/debian/libtao-orbsvcs-2.0.3.NEWS (renamed from ACE/debianbuild/libtao-orbsvcs-1.6.8.NEWS)0
-rw-r--r--ACE/debian/libtao-orbsvcs-2.0.3.install68
-rw-r--r--ACE/debian/libtao-orbsvcs-dev.install115
-rw-r--r--ACE/debian/libtao-orbsvcs-dev.links1
-rw-r--r--ACE/debian/libtao-qtresource-2.0.3.install1
-rw-r--r--ACE/debian/libtao-qtresource-dev.install (renamed from ACE/debianbuild/libtao-qtresource-dev.install)0
-rw-r--r--ACE/debian/libtao-tkresource-2.0.3.install1
-rw-r--r--ACE/debian/libtao-tkresource-dev.install (renamed from ACE/debianbuild/libtao-tkresource-dev.install)0
-rw-r--r--ACE/debian/libtao-xtresource-2.0.3.install1
-rw-r--r--ACE/debian/libtao-xtresource-dev.install (renamed from ACE/debianbuild/libtao-xtresource-dev.install)0
-rw-r--r--ACE/debian/mpc-ace.docs (renamed from ACE/debianbuild/mpc-ace.docs)0
-rw-r--r--ACE/debian/mpc-ace.install8
-rw-r--r--ACE/debian/mpc-ace.links3
-rw-r--r--ACE/debian/mpc-ace.manpages (renamed from ACE/debianbuild/mpc-ace.manpages)0
-rw-r--r--ACE/debian/patches/00list11
-rw-r--r--ACE/debian/patches/00patch-opts (renamed from ACE/debianbuild/patches/00patch-opts)0
-rw-r--r--ACE/debian/patches/15-fix-lzo-flags.dpatch25
-rwxr-xr-xACE/debian/patches/20-versioned_libs.dpatch136
-rw-r--r--ACE/debian/patches/34-bts386713.dpatch406
-rwxr-xr-xACE/debian/patches/49-reduce-doxygen-doc.dpatch1356
-rw-r--r--ACE/debian/patches/50-prepatch-dummy-mark.dpatch (renamed from ACE/debianbuild/patches/50-prepatch-dummy-mark.dpatch)0
-rwxr-xr-xACE/debian/patches/75-post-build-dummy-mark.dpatch8
-rw-r--r--ACE/debian/patches/90-patch-mpc-basedir.dpatch42
-rw-r--r--ACE/debian/patches/91-patch-dg-basedir.dpatch24
-rw-r--r--ACE/debian/patches/92-default-ACE_ROOT.dpatch20
-rw-r--r--ACE/debian/platform_macros.GNU29
-rw-r--r--ACE/debian/platform_macros.GNU.in (renamed from ACE/debianbuild/platform_macros.GNU.in)0
-rw-r--r--ACE/debian/tao-concurrency.docs (renamed from ACE/debianbuild/tao-concurrency.docs)0
-rw-r--r--ACE/debian/tao-concurrency.install1
-rw-r--r--ACE/debian/tao-cosconcurrency.docs1
-rw-r--r--ACE/debian/tao-cosconcurrency.install1
-rw-r--r--ACE/debian/tao-cosevent.docs (renamed from ACE/debianbuild/tao-event.docs)0
-rw-r--r--ACE/debian/tao-cosevent.install1
-rw-r--r--ACE/debian/tao-coslifecycle.install1
-rw-r--r--ACE/debian/tao-cosnaming.docs (renamed from ACE/debianbuild/tao-naming.docs)0
-rw-r--r--ACE/debian/tao-cosnaming.install1
-rw-r--r--ACE/debian/tao-cosnotification.docs (renamed from ACE/debianbuild/tao-notify.docs)0
-rw-r--r--ACE/debian/tao-cosnotification.install1
-rw-r--r--ACE/debian/tao-costime.docs (renamed from ACE/debianbuild/tao-time.docs)0
-rw-r--r--ACE/debian/tao-costime.install2
-rw-r--r--ACE/debian/tao-costrading.docs (renamed from ACE/debianbuild/tao-trading.docs)0
-rw-r--r--ACE/debian/tao-costrading.install1
-rw-r--r--ACE/debian/tao-event.docs1
-rw-r--r--ACE/debian/tao-event.install1
-rw-r--r--ACE/debian/tao-ft.docs (renamed from ACE/debianbuild/tao-ft.docs)0
-rw-r--r--ACE/debian/tao-ft.install3
-rw-r--r--ACE/debian/tao-ftrtevent.install (renamed from ACE/debianbuild/tao-ftrtevent.install)0
-rw-r--r--ACE/debian/tao-idl.install2
-rw-r--r--ACE/debian/tao-idl.links (renamed from ACE/debianbuild/tao-idl.links)0
-rw-r--r--ACE/debian/tao-idl.manpages (renamed from ACE/debianbuild/tao-idl.manpages)0
-rw-r--r--ACE/debian/tao-ifr.docs (renamed from ACE/debianbuild/tao-ifr.docs)0
-rw-r--r--ACE/debian/tao-ifr.install3
-rw-r--r--ACE/debian/tao-imr.docs (renamed from ACE/debianbuild/tao-imr.docs)0
-rw-r--r--ACE/debian/tao-imr.install3
-rw-r--r--ACE/debian/tao-lifecycle.install1
-rw-r--r--ACE/debian/tao-load.docs (renamed from ACE/debianbuild/tao-load.docs)0
-rw-r--r--ACE/debian/tao-load.install2
-rw-r--r--ACE/debian/tao-log.docs (renamed from ACE/debianbuild/tao-log.docs)0
-rw-r--r--ACE/debian/tao-log.install4
-rw-r--r--ACE/debian/tao-log.manpages (renamed from ACE/debianbuild/tao-log.manpages)0
-rw-r--r--ACE/debian/tao-naming.docs1
-rw-r--r--ACE/debian/tao-naming.install1
-rw-r--r--ACE/debian/tao-notify.docs1
-rw-r--r--ACE/debian/tao-notify.install1
-rw-r--r--ACE/debian/tao-rtevent.install1
-rw-r--r--ACE/debian/tao-scheduling.install2
-rw-r--r--ACE/debian/tao-time.docs1
-rw-r--r--ACE/debian/tao-time.install2
-rw-r--r--ACE/debian/tao-tls.docs1
-rw-r--r--ACE/debian/tao-tls.install4
-rw-r--r--ACE/debian/tao-tls.manpages4
-rw-r--r--ACE/debian/tao-trading.docs1
-rw-r--r--ACE/debian/tao-trading.install1
-rw-r--r--ACE/debian/tao-utils.docs4
-rw-r--r--ACE/debian/tao-utils.install2
-rw-r--r--ACE/debian/tao-utils.manpages4
-rw-r--r--ACE/debian/tao_catior.sgml99
-rw-r--r--ACE/debian/tao_idl6
-rw-r--r--ACE/debian/tao_ifr6
-rw-r--r--ACE/debian/tao_nsadd.sgml145
-rw-r--r--ACE/debian/tao_nsdel.sgml120
-rw-r--r--ACE/debian/tao_nslist.sgml165
-rw-r--r--ACE/debian/tao_tls_basic.sgml68
-rw-r--r--ACE/debian/tao_tls_event.sgml70
-rw-r--r--ACE/debian/tao_tls_notify.sgml70
-rw-r--r--ACE/debian/tao_tls_rtevent.sgml70
-rw-r--r--ACE/debian/watch (renamed from ACE/debianbuild/watch)0
-rw-r--r--ACE/debianbuild/Basic_Logging_Service.sgml68
-rw-r--r--ACE/debianbuild/Event_Logging_Service.sgml70
-rw-r--r--ACE/debianbuild/Notify_Logging_Service.sgml70
-rw-r--r--ACE/debianbuild/README.Debian35
-rw-r--r--ACE/debianbuild/RTEvent_Logging_Service.sgml70
-rw-r--r--ACE/debianbuild/TODO24
-rw-r--r--ACE/debianbuild/changelog850
-rwxr-xr-xACE/debianbuild/cmp-installation.sh37
-rw-r--r--ACE/debianbuild/compat1
-rw-r--r--ACE/debianbuild/control626
-rw-r--r--ACE/debianbuild/copyright690
-rw-r--r--ACE/debianbuild/dsc10
-rw-r--r--ACE/debianbuild/libace-5.6.8.docs8
-rw-r--r--ACE/debianbuild/libace-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-dev.docs7
-rw-r--r--ACE/debianbuild/libace-dev.install12
-rw-r--r--ACE/debianbuild/libace-dev.links2
-rw-r--r--ACE/debianbuild/libace-doc.docs3
-rw-r--r--ACE/debianbuild/libace-flreactor-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-foxreactor-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-htbp-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-qtreactor-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-rmcast-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-ssl-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-tkreactor-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-tmcast-5.6.8.install1
-rw-r--r--ACE/debianbuild/libace-xtreactor-5.6.8.install1
-rw-r--r--ACE/debianbuild/libacexml-5.6.8.install3
-rw-r--r--ACE/debianbuild/libacexml-dev.install5
-rw-r--r--ACE/debianbuild/libacexml-dev.links1
-rw-r--r--ACE/debianbuild/libkokyu-5.6.8.install1
-rw-r--r--ACE/debianbuild/libkokyu-dev.links1
-rw-r--r--ACE/debianbuild/libtao-1.6.8.install33
-rw-r--r--ACE/debianbuild/libtao-dev.dirs1
-rw-r--r--ACE/debianbuild/libtao-dev.install97
-rw-r--r--ACE/debianbuild/libtao-dev.links1
-rw-r--r--ACE/debianbuild/libtao-doc.docs3
-rw-r--r--ACE/debianbuild/libtao-flresource-1.6.8.install1
-rw-r--r--ACE/debianbuild/libtao-foxresource-1.6.8.install1
-rw-r--r--ACE/debianbuild/libtao-orbsvcs-1.6.8.install59
-rw-r--r--ACE/debianbuild/libtao-orbsvcs-dev.install117
-rw-r--r--ACE/debianbuild/libtao-orbsvcs-dev.links1
-rw-r--r--ACE/debianbuild/libtao-qtresource-1.6.8.install1
-rw-r--r--ACE/debianbuild/libtao-tkresource-1.6.8.install1
-rw-r--r--ACE/debianbuild/libtao-xtresource-1.6.8.install1
-rw-r--r--ACE/debianbuild/mpc-ace.install8
-rw-r--r--ACE/debianbuild/mpc-ace.links3
-rw-r--r--ACE/debianbuild/patches/00list9
-rw-r--r--ACE/debianbuild/patches/01-change-tao-sonames.dpatch33
-rw-r--r--ACE/debianbuild/patches/02-fltk-no-gl.dpatch19
-rw-r--r--ACE/debianbuild/patches/02-qt4.dpatch32
-rw-r--r--ACE/debianbuild/patches/04-reduce-opt.dpatch18
-rw-r--r--ACE/debianbuild/patches/05-autoconf-fox.dpatch116
-rw-r--r--ACE/debianbuild/patches/06-fix-kokyu-mpc.dpatch18
-rw-r--r--ACE/debianbuild/patches/07-autoconf-fix-gperf.dpatch18
-rw-r--r--ACE/debianbuild/patches/09-autoconf-fix-no-base-include-headers.diff19
-rw-r--r--ACE/debianbuild/patches/12-fix-fox-include.dpatch29
-rw-r--r--ACE/debianbuild/patches/14-autoconf-tao.dpatch54
-rw-r--r--ACE/debianbuild/patches/15-fix-fltk-include.dpatch19
-rw-r--r--ACE/debianbuild/patches/16-skip-apps.dpatch22
-rw-r--r--ACE/debianbuild/patches/17-protect-mpc-path.dpatch17
-rw-r--r--ACE/debianbuild/patches/18-fix-bswap-detection.dpatch35
-rw-r--r--ACE/debianbuild/patches/19-gcc43.dpatch32
-rw-r--r--ACE/debianbuild/patches/20-fix-iostream-detection.dpatch128
-rw-r--r--ACE/debianbuild/patches/21-generate-platform_macros.GNU.diff10
-rw-r--r--ACE/debianbuild/patches/22-tao_idl-64bit-fix.dpatch65
-rw-r--r--ACE/debianbuild/patches/34-bts386713.dpatch165
-rw-r--r--ACE/debianbuild/patches/92-default-ACE_ROOT.dpatch20
-rw-r--r--ACE/debianbuild/rules272
-rw-r--r--ACE/debianbuild/tao-concurrency.install1
-rw-r--r--ACE/debianbuild/tao-event.install1
-rw-r--r--ACE/debianbuild/tao-ft.install3
-rw-r--r--ACE/debianbuild/tao-idl.install2
-rw-r--r--ACE/debianbuild/tao-ifr.install3
-rw-r--r--ACE/debianbuild/tao-imr.install3
-rw-r--r--ACE/debianbuild/tao-lifecycle.install1
-rw-r--r--ACE/debianbuild/tao-load.install2
-rw-r--r--ACE/debianbuild/tao-log.install4
-rw-r--r--ACE/debianbuild/tao-naming.install1
-rw-r--r--ACE/debianbuild/tao-notify.install1
-rw-r--r--ACE/debianbuild/tao-rtevent.install1
-rw-r--r--ACE/debianbuild/tao-scheduling.install2
-rw-r--r--ACE/debianbuild/tao-time.install2
-rw-r--r--ACE/debianbuild/tao-trading.install1
-rw-r--r--ACE/debianbuild/tao-utils.docs2
-rw-r--r--ACE/debianbuild/tao-utils.install2
-rw-r--r--ACE/debianbuild/tao_idl6
-rw-r--r--ACE/debianbuild/tao_ifr6
-rw-r--r--ACE/docs/ACE-bug-process.html8
-rw-r--r--ACE/docs/ACE-guidelines.html19
-rw-r--r--ACE/docs/ACE-porting.html9
-rw-r--r--ACE/docs/Download.html452
-rw-r--r--ACE/docs/FAQ (renamed from ACE/FAQ)0
-rw-r--r--ACE/docs/Symbol_Versioning.html4
-rw-r--r--ACE/docs/ace_guidelines.vsmacrosbin72192 -> 68608 bytes
-rw-r--r--ACE/docs/bczar/bczar.html440
-rw-r--r--ACE/docs/index.html2
-rw-r--r--ACE/docs/msvc_notes.txt50
-rw-r--r--ACE/docs/run_test.txt25
-rw-r--r--ACE/docs/svn/config9
-rw-r--r--ACE/docs/svn/svn-prefs.reg5
-rw-r--r--ACE/docs/usage-bugzilla.html4
-rw-r--r--ACE/etc/README32
-rw-r--r--ACE/etc/ace.doxygen57
-rw-r--r--ACE/etc/ace_inet.doxygen166
-rw-r--r--ACE/etc/ace_man.doxygen18
-rw-r--r--ACE/etc/ace_qos.doxygen28
-rw-r--r--ACE/etc/ace_rmcast.doxygen28
-rw-r--r--ACE/etc/ace_ssl.doxygen28
-rw-r--r--ACE/etc/acexml.doxygen28
-rw-r--r--ACE/etc/enforce_ace_try.diff271
-rw-r--r--ACE/etc/index.html25
-rw-r--r--ACE/examples/APG/Active_Objects/AO.cpp22
-rw-r--r--ACE/examples/APG/Active_Objects/AO2.cpp22
-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/Allocator.cpp4
-rw-r--r--ACE/examples/APG/Containers/DLList.cpp6
-rw-r--r--ACE/examples/APG/Containers/Hash_Map.cpp10
-rw-r--r--ACE/examples/APG/Containers/Hash_Map_Hash.cpp8
-rw-r--r--ACE/examples/APG/Containers/Map_Manager.cpp8
-rw-r--r--ACE/examples/APG/Containers/Map_Manager_Specialization.cpp8
-rw-r--r--ACE/examples/APG/Containers/Queues.cpp6
-rw-r--r--ACE/examples/APG/Containers/RB_Tree.cpp8
-rw-r--r--ACE/examples/APG/Containers/RB_Tree_Functors.cpp8
-rw-r--r--ACE/examples/APG/Containers/Sets.cpp6
-rw-r--r--ACE/examples/APG/Containers/Stacks.cpp8
-rw-r--r--ACE/examples/APG/Containers/containers.mpc3
-rw-r--r--ACE/examples/APG/Logging/Callback-3.h8
-rw-r--r--ACE/examples/APG/Logging/Change_Instance_Default.cpp2
-rw-r--r--ACE/examples/APG/Logging/Simple1.cpp2
-rw-r--r--ACE/examples/APG/Logging/Trace.h7
-rw-r--r--ACE/examples/APG/Logging/Trace_Return.cpp15
-rw-r--r--ACE/examples/APG/Logging/Wrap_Macros.cpp15
-rw-r--r--ACE/examples/APG/Logging/Wrap_Macros_Alt.cpp2
-rw-r--r--ACE/examples/APG/Logging/client.conf2
-rw-r--r--ACE/examples/APG/Logging/logging_strategy.conf2
-rw-r--r--ACE/examples/APG/Logging/server.conf2
-rw-r--r--ACE/examples/APG/Misc_IPC/misc_ipc.mpc6
-rw-r--r--ACE/examples/APG/Naming/Name_Binding.h4
-rw-r--r--ACE/examples/APG/Naming/Temperature_Monitor2.cpp2
-rw-r--r--ACE/examples/APG/Naming/naming.mpc15
-rw-r--r--ACE/examples/APG/Naming/svc.conf2
-rw-r--r--ACE/examples/APG/Proactor/HA_Proactive_Status.cpp2
-rw-r--r--ACE/examples/APG/Proactor/proactor.mpc3
-rw-r--r--ACE/examples/APG/Processes/Process_Manager_Death.cpp4
-rw-r--r--ACE/examples/APG/Processes/Process_Mutex.cpp4
-rw-r--r--ACE/examples/APG/Processes/processes.mpc12
-rw-r--r--ACE/examples/APG/Reactor/Client.cpp4
-rw-r--r--ACE/examples/APG/Reactor/HAStatus.cpp4
-rw-r--r--ACE/examples/APG/Reactor/Timer_State_Data.cpp4
-rw-r--r--ACE/examples/APG/Shared_Memory/shared_memory.mpc15
-rw-r--r--ACE/examples/APG/Signals/SigAction.cpp6
-rw-r--r--ACE/examples/APG/Signals/SigHandler.cpp2
-rw-r--r--ACE/examples/APG/Signals/SigHandlers.cpp2
-rw-r--r--ACE/examples/APG/Streams/Answerer.cpp18
-rw-r--r--ACE/examples/APG/Streams/CommandStream.cpp4
-rw-r--r--ACE/examples/APG/Streams/CommandTask.cpp2
-rw-r--r--ACE/examples/APG/Streams/EndTask.h2
-rw-r--r--ACE/examples/APG/Streams/MessageInfo.h2
-rw-r--r--ACE/examples/APG/Streams/RecordingDeviceFactory.cpp2
-rw-r--r--ACE/examples/APG/Streams/streams.mpc3
-rw-r--r--ACE/examples/APG/Svc_Config/HA_Status_Dynamic.h1
-rw-r--r--ACE/examples/APG/Svc_Config/HA_Status_Static.h1
-rw-r--r--ACE/examples/APG/Svc_Config/svc.conf.dynamic2
-rw-r--r--ACE/examples/APG/Svc_Config/svc.conf.static2
-rw-r--r--ACE/examples/APG/Svc_Config/svc_config.mpc11
-rw-r--r--ACE/examples/APG/ThreadManagement/Async_Cancel.cpp4
-rw-r--r--ACE/examples/APG/ThreadManagement/Pool.cpp2
-rw-r--r--ACE/examples/APG/ThreadManagement/State.cpp6
-rw-r--r--ACE/examples/APG/ThreadPools/Futures.cpp17
-rw-r--r--ACE/examples/APG/ThreadPools/LF_ThreadPool.cpp19
-rw-r--r--ACE/examples/APG/ThreadPools/Task_ThreadPool.cpp10
-rw-r--r--ACE/examples/APG/ThreadPools/ThreadPool.cpp43
-rw-r--r--ACE/examples/APG/ThreadPools/threadpools.mpc3
-rw-r--r--ACE/examples/APG/ThreadSafety/Mutex.cpp1
-rw-r--r--ACE/examples/APG/ThreadSafety/Semaphore.cpp2
-rw-r--r--ACE/examples/APG/ThreadSafety/Tokens.cpp2
-rw-r--r--ACE/examples/APG/ThreadSafety/threadsafety.mpc6
-rw-r--r--ACE/examples/APG/Threads/Activate.cpp2
-rw-r--r--ACE/examples/APG/Threads/Condition_Variables.cpp1
-rw-r--r--ACE/examples/APG/Threads/Guards.cpp2
-rw-r--r--ACE/examples/APG/Threads/Message_Blocks.cpp6
-rw-r--r--ACE/examples/APG/Threads/Message_Queue.cpp6
-rw-r--r--ACE/examples/APG/Threads/Message_Receiver.h8
-rw-r--r--ACE/examples/APG/Timers/Alarm.cpp2
-rw-r--r--ACE/examples/APG/Timers/CB.cpp14
-rw-r--r--ACE/examples/APG/Timers/PCB.cpp12
-rw-r--r--ACE/examples/APG/Timers/PCB.h2
-rw-r--r--ACE/examples/APG/Timers/PTimerDispatcher.cpp10
-rw-r--r--ACE/examples/APG/Timers/Task.cpp2
-rw-r--r--ACE/examples/APG/Timers/TimerDispatcher.cpp10
-rw-r--r--ACE/examples/APG/Timers/Upcall.cpp16
-rw-r--r--ACE/examples/ASX/CCM_App/CCM_App.cpp2
-rw-r--r--ACE/examples/ASX/CCM_App/SC_Client.cpp2
-rw-r--r--ACE/examples/ASX/CCM_App/SC_Server.cpp3
-rw-r--r--ACE/examples/ASX/CCM_App/svc.conf2
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp2
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/Event.mpc3
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp12
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/Options.cpp2
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/Options.inl28
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/Peer_Router.cpp2
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp2
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/event_server.cpp4
-rw-r--r--ACE/examples/ASX/Event_Server/README7
-rw-r--r--ACE/examples/ASX/Event_Server/Transceiver/transceiver.cpp4
-rw-r--r--ACE/examples/ASX/Message_Queue/bounded_buffer.cpp6
-rw-r--r--ACE/examples/ASX/Message_Queue/buffer_stream.cpp2
-rw-r--r--ACE/examples/ASX/Message_Queue/priority_buffer.cpp6
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp4
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp24
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/Options.cpp2
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/Options.inl32
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/Peer_Router.cpp2
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp4
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc3
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/event_server.cpp6
-rw-r--r--ACE/examples/Bounded_Packet_Relay/BPR_Drivers.cpp41
-rw-r--r--ACE/examples/Bounded_Packet_Relay/BPR_Drivers.h256
-rw-r--r--ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp41
-rw-r--r--ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.h150
-rw-r--r--ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp42
-rw-r--r--ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h318
-rw-r--r--ACE/examples/Bounded_Packet_Relay/bpr_thread.cpp42
-rw-r--r--ACE/examples/C++NPv1/C++NPv1.mpc24
-rw-r--r--ACE/examples/C++NPv1/Logging_Handler.cpp2
-rw-r--r--ACE/examples/C++NPv2/AC_Client_Logging_Daemon.cpp2
-rw-r--r--ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.cpp2
-rw-r--r--ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.h10
-rw-r--r--ACE/examples/C++NPv2/C++NPv2.mpc30
-rw-r--r--ACE/examples/C++NPv2/Client_Logging_Daemon.cpp6
-rw-r--r--ACE/examples/C++NPv2/Logging_Acceptor.cpp6
-rw-r--r--ACE/examples/C++NPv2/Logging_Event_Handler.cpp6
-rw-r--r--ACE/examples/C++NPv2/Logging_Event_Handler_Ex.cpp4
-rw-r--r--ACE/examples/C++NPv2/Logging_Event_Handler_Ex.h4
-rw-r--r--ACE/examples/C++NPv2/Logging_Handler.cpp4
-rw-r--r--ACE/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp16
-rw-r--r--ACE/examples/C++NPv2/Service_Reporter.cpp12
-rw-r--r--ACE/examples/C++NPv2/Service_Reporter.h2
-rw-r--r--ACE/examples/C++NPv2/display_logfile.cpp6
-rw-r--r--ACE/examples/C++NPv2/svc.conf2
-rw-r--r--ACE/examples/ConfigViewer/ConfigTreeCtrl.cpp4
-rw-r--r--ACE/examples/ConfigViewer/ConfigTreeCtrl.h2
-rw-r--r--ACE/examples/ConfigViewer/MainFrame.cpp8
-rw-r--r--ACE/examples/ConfigViewer/ValueListCtrl.cpp6
-rw-r--r--ACE/examples/ConfigViewer/ValueListCtrl.h6
-rw-r--r--ACE/examples/Connection/blocking/Connection_Blocking.mpc6
-rw-r--r--ACE/examples/Connection/blocking/SPIPE-acceptor.cpp2
-rw-r--r--ACE/examples/Connection/blocking/SPIPE-connector.cpp11
-rw-r--r--ACE/examples/Connection/blocking/test_spipe_acceptor.cpp2
-rw-r--r--ACE/examples/Connection/blocking/test_spipe_connector.cpp12
-rw-r--r--ACE/examples/Connection/misc/Connection_Handler.cpp36
-rw-r--r--ACE/examples/Connection/misc/Connection_Misc.mpc3
-rw-r--r--ACE/examples/Connection/misc/test_upipe.cpp2
-rw-r--r--ACE/examples/Connection/non_blocking/CPP-acceptor.cpp2
-rw-r--r--ACE/examples/Connection/non_blocking/CPP-connector.cpp2
-rw-r--r--ACE/examples/Connection/non_blocking/Connection_Non_Blocking.mpc6
-rw-r--r--ACE/examples/Connection/non_blocking/test_lsock_acceptor.cpp4
-rw-r--r--ACE/examples/Connection/non_blocking/test_lsock_connector.cpp2
-rw-r--r--ACE/examples/Connection/non_blocking/test_sock_acceptor.cpp6
-rw-r--r--ACE/examples/Connection/non_blocking/test_sock_connector.cpp2
-rw-r--r--ACE/examples/Connection/non_blocking/test_spipe_acceptor.cpp6
-rw-r--r--ACE/examples/Connection/non_blocking/test_spipe_connector.cpp2
-rw-r--r--ACE/examples/Connection/non_blocking/test_tli_acceptor.cpp4
-rw-r--r--ACE/examples/Connection/non_blocking/test_tli_connector.cpp2
-rw-r--r--ACE/examples/DLL/Magazine.h54
-rw-r--r--ACE/examples/DLL/Newsweek.h47
-rw-r--r--ACE/examples/DLL/Today.h47
-rw-r--r--ACE/examples/DLL/test_dll.cpp2
-rwxr-xr-xACE/examples/Export/run_test.pl16
-rw-r--r--ACE/examples/IOStream/client/iostream_client.cpp4
-rw-r--r--ACE/examples/IOStream/server/iostream_server.cpp2
-rw-r--r--ACE/examples/IOStream/server/iostream_server.h9
-rw-r--r--ACE/examples/IPC_SAP/ATM_SAP/CPP-client.cpp2
-rw-r--r--ACE/examples/IPC_SAP/ATM_SAP/CPP-server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc3
-rw-r--r--ACE/examples/IPC_SAP/DEV_SAP/reader/reader.cpp4
-rw-r--r--ACE/examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc3
-rw-r--r--ACE/examples/IPC_SAP/DEV_SAP/writer/writer.cpp2
-rw-r--r--ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp2
-rw-r--r--ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp2
-rw-r--r--ACE/examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp2
-rw-r--r--ACE/examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc9
-rw-r--r--ACE/examples/IPC_SAP/FILE_SAP/client.cpp4
-rw-r--r--ACE/examples/IPC_SAP/FILE_SAP/file_sap_client.mpc3
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/C-inclient.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp7
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp4
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp2
-rwxr-xr-xACE/examples/IPC_SAP/SOCK_SAP/run_test.sh2
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/sock_sap.mpc18
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/NPClient.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/NPServer.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/client.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/producer_read.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SPIPE_SAP/server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp13
-rw-r--r--ACE/examples/IPC_SAP/SSL_SAP/SSL-client.cpp4
-rw-r--r--ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp6
-rw-r--r--ACE/examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp4
-rw-r--r--ACE/examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SSL_SAP/SSL-server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc18
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp2
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/CPP-client.cpp2
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/CPP-server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/db-client.cpp2
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/db-server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/ftp-client.cpp2
-rw-r--r--ACE/examples/IPC_SAP/TLI_SAP/ftp-server.cpp2
-rw-r--r--ACE/examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc9
-rw-r--r--ACE/examples/IPC_SAP/UPIPE_SAP/ex1.cpp37
-rw-r--r--ACE/examples/IPC_SAP/UPIPE_SAP/ex2.cpp35
-rw-r--r--ACE/examples/IPC_SAP/UPIPE_SAP/ex3.cpp37
-rw-r--r--ACE/examples/Log_Msg/Log_Msg_MFC/Resource.h2
-rw-r--r--ACE/examples/Log_Msg/test_callback.cpp54
-rw-r--r--ACE/examples/Log_Msg/test_log_msg.cpp35
-rw-r--r--ACE/examples/Log_Msg/test_ostream.cpp37
-rw-r--r--ACE/examples/Logger/Acceptor-server/server_loggerd.cpp2
-rw-r--r--ACE/examples/Logger/client/logging_app.cpp8
-rw-r--r--ACE/examples/Logger/simple-server/Logging_Acceptor.cpp2
-rw-r--r--ACE/examples/Logger/simple-server/Logging_Acceptor.h51
-rw-r--r--ACE/examples/Logger/simple-server/Logging_Handler.cpp2
-rw-r--r--ACE/examples/Logger/simple-server/Logging_Handler.h49
-rw-r--r--ACE/examples/Logger/simple-server/Reactor_Singleton.h27
-rw-r--r--ACE/examples/Logger/simple-server/server_loggerd.cpp2
-rw-r--r--ACE/examples/Map_Manager/test_hash_map_manager.cpp2
-rw-r--r--ACE/examples/Mem_Map/IO-tests/IO_Test.cpp52
-rw-r--r--ACE/examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc3
-rw-r--r--ACE/examples/Mem_Map/IO-tests/test_io.cpp2
-rw-r--r--ACE/examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc3
-rw-r--r--ACE/examples/Mem_Map/file-reverse/file-reverse.cpp2
-rw-r--r--ACE/examples/Misc/Misc.mpc3
-rw-r--r--ACE/examples/Misc/test_XtReactor1.cpp5
-rw-r--r--ACE/examples/Misc/test_XtReactor2.cpp5
-rw-r--r--ACE/examples/Misc/test_dump.cpp2
-rw-r--r--ACE/examples/Misc/test_dump.h6
-rw-r--r--ACE/examples/Misc/test_get_opt.cpp2
-rw-r--r--ACE/examples/Misc/test_profile_timer.cpp2
-rw-r--r--ACE/examples/Misc/test_read_buffer.cpp5
-rw-r--r--ACE/examples/Misc/test_sstring.cpp2
-rw-r--r--ACE/examples/Misc/test_timestamp.cpp4
-rw-r--r--ACE/examples/Misc/test_trace.cpp74
-rw-r--r--ACE/examples/Monitor/Bytes_Sent/Bytes_Sent.mpc4
-rw-r--r--ACE/examples/Monitor/CPU_Load/CPU_Load.mpc4
-rw-r--r--ACE/examples/Monitor/Constraint/Constraint.mpc4
-rw-r--r--ACE/examples/Monitor/Group/Group.mpc4
-rw-r--r--ACE/examples/Monitor/MC_Test_Utilities.cpp2
-rw-r--r--ACE/examples/Monitor/MC_Test_Utilities.h2
-rw-r--r--ACE/examples/Monitor/MC_Test_Utilities.mpc10
-rw-r--r--ACE/examples/Monitor/Memory_Usage/Memory_Usage.mpc4
-rw-r--r--ACE/examples/Monitor/Message_Queue_Size/Message_Queue_Size.mpc4
-rw-r--r--ACE/examples/Monitor/Num_Threads/Num_Threads.mpc4
-rw-r--r--ACE/examples/Monitor/Num_Threads/num_threads.cpp2
-rw-r--r--ACE/examples/NT_Service/main.cpp36
-rw-r--r--ACE/examples/NT_Service/ntsvc.cpp34
-rw-r--r--ACE/examples/NT_Service/ntsvc.h45
-rw-r--r--ACE/examples/Naming/Naming.mpc12
-rw-r--r--ACE/examples/Naming/test_multiple_contexts.cpp2
-rw-r--r--ACE/examples/Naming/test_non_existent.cpp2
-rw-r--r--ACE/examples/Naming/test_open.cpp2
-rw-r--r--ACE/examples/Naming/test_writers.cpp2
-rw-r--r--ACE/examples/OS/Process/OS_Process.mpc3
-rw-r--r--ACE/examples/OS/Process/imore.cpp55
-rw-r--r--ACE/examples/OS/Process/process.cpp46
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp2
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h54
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h25
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.cpp2
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h50
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp2
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h34
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp25
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h73
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp29
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h41
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/receiver.cpp25
-rw-r--r--ACE/examples/QOS/Change_Receiver_FlowSpec/sender.cpp25
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp2
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h54
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h25
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp2
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h50
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.cpp2
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.h34
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp27
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h73
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp33
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h41
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/receiver.cpp25
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/sender.cpp25
-rw-r--r--ACE/examples/QOS/Diffserv/NOTES.txt4
-rw-r--r--ACE/examples/QOS/Diffserv/QOS_Diffserv.mpc3
-rwxr-xr-xACE/examples/QOS/Diffserv/run_test.pl2
-rw-r--r--ACE/examples/QOS/Simple/Fill_ACE_QoS.cpp2
-rw-r--r--ACE/examples/QOS/Simple/Fill_ACE_QoS.h54
-rw-r--r--ACE/examples/QOS/Simple/FlowSpec_Dbase.h25
-rw-r--r--ACE/examples/QOS/Simple/QoS_Signal_Handler.cpp2
-rw-r--r--ACE/examples/QOS/Simple/QoS_Signal_Handler.h50
-rw-r--r--ACE/examples/QOS/Simple/QoS_Util.cpp2
-rw-r--r--ACE/examples/QOS/Simple/QoS_Util.h34
-rw-r--r--ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp25
-rw-r--r--ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.h73
-rw-r--r--ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.cpp29
-rw-r--r--ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.h41
-rw-r--r--ACE/examples/QOS/Simple/receiver.cpp25
-rw-r--r--ACE/examples/QOS/Simple/sender.cpp25
-rw-r--r--ACE/examples/Reactor/Dgram/CODgram.cpp2
-rw-r--r--ACE/examples/Reactor/Dgram/Dgram.cpp2
-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/FIFO/client.cpp2
-rw-r--r--ACE/examples/Reactor/FIFO/server.cpp2
-rw-r--r--ACE/examples/Reactor/Misc/Reactor_Misc.mpc2
-rw-r--r--ACE/examples/Reactor/Misc/notification.cpp7
-rw-r--r--ACE/examples/Reactor/Misc/pingpong.cpp16
-rw-r--r--ACE/examples/Reactor/Misc/test_demuxing.cpp6
-rw-r--r--ACE/examples/Reactor/Misc/test_early_timeouts.cpp37
-rw-r--r--ACE/examples/Reactor/Misc/test_event_handler_t.cpp12
-rw-r--r--ACE/examples/Reactor/Misc/test_reactors.cpp2
-rw-r--r--ACE/examples/Reactor/Misc/test_signals_1.cpp2
-rw-r--r--ACE/examples/Reactor/Misc/test_signals_2.cpp2
-rw-r--r--ACE/examples/Reactor/Misc/test_time_value.cpp2
-rw-r--r--ACE/examples/Reactor/Misc/test_timer_queue.cpp2
-rw-r--r--ACE/examples/Reactor/Multicast/Log_Wrapper.cpp2
-rw-r--r--ACE/examples/Reactor/Multicast/client.cpp8
-rw-r--r--ACE/examples/Reactor/Multicast/server.cpp2
-rw-r--r--ACE/examples/Reactor/Ntalker/ntalker.cpp2
-rw-r--r--ACE/examples/Reactor/Proactor/Aio_Platform_Test_C.cpp30
-rw-r--r--ACE/examples/Reactor/Proactor/Proactor.mpc27
-rw-r--r--ACE/examples/Reactor/Proactor/post_completions.cpp116
-rw-r--r--ACE/examples/Reactor/Proactor/simple_test_proactor.cpp71
-rw-r--r--ACE/examples/Reactor/Proactor/test_aiocb.cpp67
-rw-r--r--ACE/examples/Reactor/Proactor/test_aiocb_ace.cpp81
-rw-r--r--ACE/examples/Reactor/Proactor/test_aiosig.cpp36
-rw-r--r--ACE/examples/Reactor/Proactor/test_aiosig_ace.cpp70
-rw-r--r--ACE/examples/Reactor/Proactor/test_cancel.cpp71
-rw-r--r--ACE/examples/Reactor/Proactor/test_end_event_loop.cpp59
-rw-r--r--ACE/examples/Reactor/Proactor/test_multiple_loops.cpp46
-rw-r--r--ACE/examples/Reactor/Proactor/test_proactor.cpp86
-rw-r--r--ACE/examples/Reactor/Proactor/test_proactor2.cpp100
-rw-r--r--ACE/examples/Reactor/Proactor/test_proactor3.cpp112
-rw-r--r--ACE/examples/Reactor/Proactor/test_timeout.cpp54
-rw-r--r--ACE/examples/Reactor/Proactor/test_timeout_st.cpp50
-rw-r--r--ACE/examples/Reactor/Proactor/test_udp_proactor.cpp66
-rw-r--r--ACE/examples/Reactor/TP_Reactor/AcceptHandler.cpp14
-rw-r--r--ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp20
-rw-r--r--ACE/examples/Reactor/TP_Reactor/client.cpp14
-rwxr-xr-x[-rw-r--r--]ACE/examples/Reactor/TP_Reactor/run_test.pl4
-rw-r--r--ACE/examples/Reactor/TP_Reactor/server.cpp3
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/APC.cpp38
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Abandoned.cpp36
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Console_Input.cpp37
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Directory_Changes.cpp36
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Exceptions.cpp46
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Handle_Close.cpp42
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Multithreading.cpp60
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Network_Events.cpp68
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp45
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Registration.cpp68
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Registry_Changes.cpp36
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Removals.cpp60
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp41
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Talker.cpp372
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Timeouts.cpp56
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc9
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/Window_Messages.cpp42
-rwxr-xr-xACE/examples/Reactor/WFMO_Reactor/run_test.pl13
-rw-r--r--ACE/examples/Registry/test_registry_iterator.cpp2
-rw-r--r--ACE/examples/Registry/test_registry_update.cpp2
-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/client/broadcast_client_test.cpp4
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.inl2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.inl2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp8
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp8
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.inl2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp4
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.inl2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc6
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp2
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/svc.conf2
-rw-r--r--ACE/examples/Service_Configurator/Misc/Timer_Service.cpp2
-rw-r--r--ACE/examples/Service_Configurator/Misc/main.cpp39
-rw-r--r--ACE/examples/Service_Configurator/Misc/svc.conf12
-rw-r--r--ACE/examples/Service_Configurator/Misc/svc.conf22
-rw-r--r--ACE/examples/Shared_Malloc/Malloc.cpp2
-rw-r--r--ACE/examples/Shared_Malloc/Options.cpp4
-rw-r--r--ACE/examples/Shared_Malloc/Shared_Malloc.mpc12
-rw-r--r--ACE/examples/Shared_Malloc/test_malloc.cpp10
-rw-r--r--ACE/examples/Shared_Malloc/test_multiple_mallocs.cpp2
-rw-r--r--ACE/examples/Shared_Malloc/test_persistence.cpp4
-rw-r--r--ACE/examples/Shared_Malloc/test_position_independent_malloc.cpp2
-rw-r--r--ACE/examples/Shared_Memory/Shared_Memory.mpc6
-rw-r--r--ACE/examples/Shared_Memory/test_MM.cpp2
-rw-r--r--ACE/examples/Shared_Memory/test_SV.cpp2
-rw-r--r--ACE/examples/Smart_Pointers/Gadget_Part_Impl.cpp2
-rw-r--r--ACE/examples/Smart_Pointers/Gadget_Part_Impl.h4
-rw-r--r--ACE/examples/Smart_Pointers/Widget_Part_Impl.cpp2
-rw-r--r--ACE/examples/Smart_Pointers/Widget_Part_Impl.h2
-rw-r--r--ACE/examples/Synch/Synch.mpc3
-rw-r--r--ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp2
-rw-r--r--ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp2
-rw-r--r--ACE/examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc12
-rw-r--r--ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp2
-rw-r--r--ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp2
-rw-r--r--ACE/examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc6
-rw-r--r--ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp6
-rw-r--r--ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp2
-rw-r--r--ACE/examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp2
-rw-r--r--ACE/examples/Threads/TSS_Data.h32
-rw-r--r--ACE/examples/Threads/TSS_Obj.h40
-rw-r--r--ACE/examples/Threads/TSS_Task.h25
-rw-r--r--ACE/examples/Threads/Threads.mpc12
-rw-r--r--ACE/examples/Threads/auto_event.cpp2
-rw-r--r--ACE/examples/Threads/barrier1.cpp2
-rw-r--r--ACE/examples/Threads/barrier2.cpp4
-rw-r--r--ACE/examples/Threads/cancel.cpp2
-rw-r--r--ACE/examples/Threads/future1.cpp66
-rw-r--r--ACE/examples/Threads/future2.cpp81
-rw-r--r--ACE/examples/Threads/manual_event.cpp2
-rw-r--r--ACE/examples/Threads/process_manager.cpp54
-rw-r--r--ACE/examples/Threads/process_mutex.cpp2
-rw-r--r--ACE/examples/Threads/process_semaphore.cpp2
-rw-r--r--ACE/examples/Threads/reader_writer.cpp6
-rw-r--r--ACE/examples/Threads/recursive_mutex.cpp4
-rw-r--r--ACE/examples/Threads/task_five.cpp37
-rw-r--r--ACE/examples/Threads/task_four.cpp2
-rw-r--r--ACE/examples/Threads/task_one.cpp2
-rw-r--r--ACE/examples/Threads/task_three.cpp2
-rw-r--r--ACE/examples/Threads/task_two.cpp2
-rw-r--r--ACE/examples/Threads/thread_manager.cpp2
-rw-r--r--ACE/examples/Threads/thread_pool.cpp4
-rw-r--r--ACE/examples/Threads/thread_specific.cpp42
-rw-r--r--ACE/examples/Threads/token.cpp2
-rw-r--r--ACE/examples/Threads/tss1.cpp53
-rw-r--r--ACE/examples/Threads/tss2.cpp35
-rw-r--r--ACE/examples/Threads/wfmo.cpp2
-rw-r--r--ACE/examples/Timer_Queue/Async_Timer_Queue_Test.cpp36
-rw-r--r--ACE/examples/Timer_Queue/Async_Timer_Queue_Test.h112
-rw-r--r--ACE/examples/Timer_Queue/Custom_Handler.cpp109
-rw-r--r--ACE/examples/Timer_Queue/Custom_Handler.h128
-rw-r--r--ACE/examples/Timer_Queue/Driver.cpp35
-rw-r--r--ACE/examples/Timer_Queue/Driver.h131
-rw-r--r--ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp48
-rw-r--r--ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.h153
-rw-r--r--ACE/examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.cpp219
-rw-r--r--ACE/examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.h126
-rw-r--r--ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp54
-rw-r--r--ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.h118
-rw-r--r--ACE/examples/Timer_Queue/Timer_Queue.mpc11
-rw-r--r--ACE/examples/Timer_Queue/main_async.cpp46
-rw-r--r--ACE/examples/Timer_Queue/main_reactor.cpp46
-rw-r--r--ACE/examples/Timer_Queue/main_thread.cpp50
-rw-r--r--ACE/examples/Timer_Queue/main_thread_custom_handler.cpp40
-rw-r--r--ACE/examples/Web_Crawler/Command_Processor.cpp2
-rw-r--r--ACE/examples/Web_Crawler/Command_Processor.h83
-rw-r--r--ACE/examples/Web_Crawler/HTTP_URL.cpp2
-rw-r--r--ACE/examples/Web_Crawler/HTTP_URL.h65
-rw-r--r--ACE/examples/Web_Crawler/Iterators.cpp6
-rw-r--r--ACE/examples/Web_Crawler/Iterators.h116
-rw-r--r--ACE/examples/Web_Crawler/Mem_Map_Stream.cpp16
-rw-r--r--ACE/examples/Web_Crawler/Mem_Map_Stream.h190
-rw-r--r--ACE/examples/Web_Crawler/Options.cpp10
-rw-r--r--ACE/examples/Web_Crawler/Options.h93
-rw-r--r--ACE/examples/Web_Crawler/URL.cpp6
-rw-r--r--ACE/examples/Web_Crawler/URL.h61
-rw-r--r--ACE/examples/Web_Crawler/URL_Addr.cpp5
-rw-r--r--ACE/examples/Web_Crawler/URL_Addr.h114
-rw-r--r--ACE/examples/Web_Crawler/URL_Status.cpp2
-rw-r--r--ACE/examples/Web_Crawler/URL_Status.h32
-rw-r--r--ACE/examples/Web_Crawler/URL_Visitor.cpp2
-rw-r--r--ACE/examples/Web_Crawler/URL_Visitor.h321
-rw-r--r--ACE/examples/Web_Crawler/URL_Visitor_Factory.cpp5
-rw-r--r--ACE/examples/Web_Crawler/URL_Visitor_Factory.h67
-rw-r--r--ACE/examples/Web_Crawler/Web_Crawler.cpp12
-rw-r--r--ACE/examples/Web_Crawler/Web_Crawler.h61
-rw-r--r--ACE/examples/Web_Crawler/Web_Crawler.mpc3
-rw-r--r--ACE/examples/Web_Crawler/main.cpp39
-rw-r--r--ACE/examples/example_base.mpb2
-rw-r--r--ACE/html/Stats/index.shtml2
-rw-r--r--ACE/html/index.html91
-rw-r--r--ACE/include/makeinclude/component_check.GNU1
-rw-r--r--ACE/include/makeinclude/macros.GNU3
-rw-r--r--ACE/include/makeinclude/platform_aix.GNU6
-rw-r--r--ACE/include/makeinclude/platform_aix_g++.GNU5
-rw-r--r--ACE/include/makeinclude/platform_aix_ibm.GNU31
-rw-r--r--ACE/include/makeinclude/platform_cegcc.GNU62
-rw-r--r--ACE/include/makeinclude/platform_clang_common.GNU110
-rw-r--r--ACE/include/makeinclude/platform_cray.GNU50
-rw-r--r--ACE/include/makeinclude/platform_cygwin32.GNU23
-rw-r--r--ACE/include/makeinclude/platform_freebsd.GNU88
-rw-r--r--ACE/include/makeinclude/platform_g++_common.GNU114
-rw-r--r--ACE/include/makeinclude/platform_gnuwin32_common.GNU115
-rw-r--r--ACE/include/makeinclude/platform_hpux_aCC.GNU45
-rw-r--r--ACE/include/makeinclude/platform_hpux_gcc.GNU3
-rw-r--r--ACE/include/makeinclude/platform_integrity_ghs.GNU5
-rw-r--r--ACE/include/makeinclude/platform_irix6.x_common.GNU16
-rw-r--r--ACE/include/makeinclude/platform_irix6.x_g++.GNU30
-rw-r--r--ACE/include/makeinclude/platform_irix6.x_sgic++.GNU101
-rw-r--r--ACE/include/makeinclude/platform_linux.GNU36
-rw-r--r--ACE/include/makeinclude/platform_linux_clang.GNU61
-rw-r--r--ACE/include/makeinclude/platform_linux_common.GNU46
-rw-r--r--ACE/include/makeinclude/platform_linux_icc.GNU18
-rw-r--r--ACE/include/makeinclude/platform_linux_pgi.GNU2
-rw-r--r--ACE/include/makeinclude/platform_linux_suncc.GNU38
-rw-r--r--ACE/include/makeinclude/platform_lynxos.GNU118
-rw-r--r--ACE/include/makeinclude/platform_macosx.GNU9
-rw-r--r--ACE/include/makeinclude/platform_macosx_common.GNU54
-rw-r--r--ACE/include/makeinclude/platform_macosx_icc.GNU3
-rw-r--r--ACE/include/makeinclude/platform_macosx_iphone.GNU52
-rw-r--r--ACE/include/makeinclude/platform_macosx_lion.GNU22
-rw-r--r--ACE/include/makeinclude/platform_macosx_panther.GNU9
-rw-r--r--ACE/include/makeinclude/platform_macosx_snowleopard.GNU19
-rw-r--r--ACE/include/makeinclude/platform_macosx_tiger.GNU52
-rw-r--r--ACE/include/makeinclude/platform_mingw32.GNU62
-rw-r--r--ACE/include/makeinclude/platform_mvs.GNU35
-rw-r--r--ACE/include/makeinclude/platform_netbsd.GNU37
-rw-r--r--ACE/include/makeinclude/platform_openbsd.GNU73
-rw-r--r--ACE/include/makeinclude/platform_openvms.GNU1
-rw-r--r--ACE/include/makeinclude/platform_qnx_gcc.GNU41
-rw-r--r--ACE/include/makeinclude/platform_qnx_neutrino.GNU35
-rw-r--r--ACE/include/makeinclude/platform_qnx_rtp_gcc.GNU51
-rw-r--r--ACE/include/makeinclude/platform_rtems.x_g++.GNU13
-rw-r--r--ACE/include/makeinclude/platform_sunos5_common.GNU3
-rw-r--r--ACE/include/makeinclude/platform_sunos5_g++.GNU14
-rw-r--r--ACE/include/makeinclude/platform_sunos5_sunc++.GNU100
-rw-r--r--ACE/include/makeinclude/platform_tandem.GNU5
-rw-r--r--ACE/include/makeinclude/platform_tru64_cxx.GNU142
-rw-r--r--ACE/include/makeinclude/platform_tru64_g++.GNU46
-rw-r--r--ACE/include/makeinclude/platform_tru64_post.GNU32
-rw-r--r--ACE/include/makeinclude/platform_tru64_pre.GNU11
-rw-r--r--ACE/include/makeinclude/platform_unixware_g++.GNU44
-rw-r--r--ACE/include/makeinclude/platform_vxworks.GNU4
-rw-r--r--ACE/include/makeinclude/platform_vxworks5.5.x.GNU354
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.2.GNU21
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.3.GNU39
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.6.GNU6
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.7.GNU9
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.8.GNU11
-rw-r--r--ACE/include/makeinclude/platform_win32_dmc.GNU5
-rw-r--r--ACE/include/makeinclude/platform_win32_icc.GNU5
-rw-r--r--ACE/include/makeinclude/platform_win32_interix.GNU42
-rw-r--r--ACE/include/makeinclude/platform_win32_msvc.GNU2
-rw-r--r--ACE/include/makeinclude/rules.bin.GNU1
-rw-r--r--ACE/include/makeinclude/rules.common.GNU4
-rw-r--r--ACE/include/makeinclude/rules.lib.GNU43
-rw-r--r--ACE/include/makeinclude/rules.local.GNU138
-rw-r--r--ACE/include/makeinclude/wrapper_macros.GNU411
-rw-r--r--ACE/m4/ace.m468
-rw-r--r--ACE/m4/ace_defines.m44
-rw-r--r--ACE/m4/ace_func.m418
-rw-r--r--ACE/m4/aio.m410
-rw-r--r--ACE/m4/compiler.m43
-rw-r--r--ACE/m4/config_h.m421
-rw-r--r--ACE/m4/platform.m42
-rw-r--r--ACE/netsvcs/clients/Logger/direct_logging.cpp2
-rw-r--r--ACE/netsvcs/clients/Logger/indirect_logging.cpp2
-rw-r--r--ACE/netsvcs/clients/Naming/Client/Client_Test.cpp4
-rw-r--r--ACE/netsvcs/clients/Naming/Client/main.cpp4
-rw-r--r--ACE/netsvcs/clients/Naming/Client/svc.conf2
-rw-r--r--ACE/netsvcs/clients/Naming/Client/svc2.conf2
-rw-r--r--ACE/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp2
-rw-r--r--ACE/netsvcs/clients/Naming/Dump_Restore/createfile.cpp2
-rw-r--r--ACE/netsvcs/clients/Naming/Dump_Restore/main.cpp6
-rw-r--r--ACE/netsvcs/clients/Tokens/collection/collection.cpp39
-rw-r--r--ACE/netsvcs/clients/Tokens/collection/rw_locks.cpp2
-rw-r--r--ACE/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp28
-rw-r--r--ACE/netsvcs/clients/Tokens/invariant/invariant.cpp28
-rw-r--r--ACE/netsvcs/clients/Tokens/manual/manual.cpp67
-rw-r--r--ACE/netsvcs/clients/Tokens/mutex/test_mutex.cpp28
-rw-r--r--ACE/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp35
-rw-r--r--ACE/netsvcs/lib/Base_Optimizer.cpp2
-rw-r--r--ACE/netsvcs/lib/Base_Optimizer.h2
-rw-r--r--ACE/netsvcs/lib/Client_Logging_Handler.cpp25
-rw-r--r--ACE/netsvcs/lib/Log_Message_Receiver.cpp27
-rw-r--r--ACE/netsvcs/lib/Log_Message_Receiver.h12
-rw-r--r--ACE/netsvcs/lib/Name_Handler.cpp50
-rw-r--r--ACE/netsvcs/lib/Server_Logging_Handler.cpp3
-rw-r--r--ACE/netsvcs/lib/Server_Logging_Handler_T.cpp6
-rw-r--r--ACE/netsvcs/lib/TS_Clerk_Handler.cpp54
-rw-r--r--ACE/netsvcs/lib/TS_Server_Handler.cpp26
-rw-r--r--ACE/netsvcs/lib/Time_Request_Reply.cpp12
-rw-r--r--ACE/netsvcs/lib/Time_Request_Reply.h7
-rw-r--r--ACE/netsvcs/lib/Token_Handler.cpp4
-rw-r--r--ACE/netsvcs/lib/lib.mpc4
-rw-r--r--ACE/netsvcs/servers/README8
-rw-r--r--ACE/netsvcs/servers/main.cpp5
-rw-r--r--ACE/netsvcs/servers/servers.mpc2
-rw-r--r--ACE/netsvcs/servers/svc.conf2
-rw-r--r--ACE/performance-tests/Misc/Misc.mpc14
-rw-r--r--ACE/performance-tests/Misc/basic_func.cpp2
-rw-r--r--ACE/performance-tests/Misc/basic_func.h31
-rw-r--r--ACE/performance-tests/Misc/basic_perf.cpp39
-rw-r--r--ACE/performance-tests/Misc/childbirth_time.cpp121
-rw-r--r--ACE/performance-tests/Misc/context_switch_time.cpp113
-rw-r--r--ACE/performance-tests/Misc/preempt.cpp63
-rw-r--r--ACE/performance-tests/Misc/test_guard.cpp41
-rw-r--r--ACE/performance-tests/Misc/test_mutex.cpp2
-rw-r--r--ACE/performance-tests/Misc/test_naming.cpp36
-rw-r--r--ACE/performance-tests/Misc/test_singleton.cpp3
-rwxr-xr-xACE/performance-tests/RPC/run_test.pl2
-rw-r--r--ACE/performance-tests/SCTP/Options_Manager.cpp6
-rw-r--r--ACE/performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp45
-rw-r--r--ACE/performance-tests/SCTP/hist.cpp6
-rwxr-xr-xACE/performance-tests/SCTP/run_spectrum.pl2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp12
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.h2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp4
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/condb_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/conds_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/context_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/mutex_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/recursive_lock_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwrd_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwwr_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/sema_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/sysvsema_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Perf_Test/token_test.cpp2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp10
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h8
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t1.conf2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t16.conf2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t2.conf2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t32.conf2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t4.conf2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t64.conf2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t8.conf2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/svcconf/svc.conf2
-rw-r--r--ACE/performance-tests/Synch-Benchmarks/synch_driver.cpp2
-rwxr-xr-xACE/performance-tests/TCP/run_test.pl4
-rw-r--r--ACE/performance-tests/TCP/tcp_test.cpp84
-rw-r--r--ACE/performance-tests/TTCP/C/new-ttcp.cpp2
-rwxr-xr-xACE/performance-tests/UDP/run_test.pl4
-rw-r--r--ACE/performance-tests/UDP/udp_test.cpp49
-rw-r--r--ACE/protocols/ace/HTBP/HTBP.mpc6
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Addr.cpp4
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Channel.cpp47
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Channel.h3
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Channel.inl3
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Environment.cpp6
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Environment.h2
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Filter.cpp2
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Filter.h5
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Filter_Factory.cpp3
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Filter_Factory.h2
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_ID_Requestor.cpp8
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_ID_Requestor.h2
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp10
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp5
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Session.cpp50
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Session.h13
-rw-r--r--ACE/protocols/ace/HTBP/HTBP_Session.inl2
-rw-r--r--ACE/protocols/ace/INet/AuthenticationBase.cpp21
-rw-r--r--ACE/protocols/ace/INet/AuthenticationBase.h87
-rw-r--r--ACE/protocols/ace/INet/AuthenticationBase.inl17
-rw-r--r--ACE/protocols/ace/INet/BidirStreamBuffer.cpp219
-rw-r--r--ACE/protocols/ace/INet/BidirStreamBuffer.h139
-rw-r--r--ACE/protocols/ace/INet/BufferedStreamBuffer.cpp184
-rw-r--r--ACE/protocols/ace/INet/BufferedStreamBuffer.h109
-rw-r--r--ACE/protocols/ace/INet/ClientRequestHandler.cpp72
-rw-r--r--ACE/protocols/ace/INet/ClientRequestHandler.h116
-rw-r--r--ACE/protocols/ace/INet/ClientRequestHandler.inl27
-rw-r--r--ACE/protocols/ace/INet/ConnectionCache.cpp361
-rw-r--r--ACE/protocols/ace/INet/ConnectionCache.h270
-rw-r--r--ACE/protocols/ace/INet/ConnectionCache.inl98
-rw-r--r--ACE/protocols/ace/INet/FTP_ClientRequestHandler.cpp713
-rw-r--r--ACE/protocols/ace/INet/FTP_ClientRequestHandler.h234
-rw-r--r--ACE/protocols/ace/INet/FTP_ClientRequestHandler.inl105
-rw-r--r--ACE/protocols/ace/INet/FTP_IOStream.cpp107
-rw-r--r--ACE/protocols/ace/INet/FTP_IOStream.h127
-rw-r--r--ACE/protocols/ace/INet/FTP_IOStream.inl33
-rw-r--r--ACE/protocols/ace/INet/FTP_Request.cpp152
-rw-r--r--ACE/protocols/ace/INet/FTP_Request.h117
-rw-r--r--ACE/protocols/ace/INet/FTP_Request.inl58
-rw-r--r--ACE/protocols/ace/INet/FTP_Response.cpp132
-rw-r--r--ACE/protocols/ace/INet/FTP_Response.h133
-rw-r--r--ACE/protocols/ace/INet/FTP_Response.inl132
-rw-r--r--ACE/protocols/ace/INet/FTP_Session.cpp322
-rw-r--r--ACE/protocols/ace/INet/FTP_Session.h126
-rw-r--r--ACE/protocols/ace/INet/FTP_Simple_exec.cpp203
-rw-r--r--ACE/protocols/ace/INet/FTP_URL.cpp96
-rw-r--r--ACE/protocols/ace/INet/FTP_URL.h89
-rw-r--r--ACE/protocols/ace/INet/FTP_URL.inl27
-rw-r--r--ACE/protocols/ace/INet/HTTPS_Context.cpp125
-rw-r--r--ACE/protocols/ace/INet/HTTPS_Context.h106
-rw-r--r--ACE/protocols/ace/INet/HTTPS_Context.inl94
-rw-r--r--ACE/protocols/ace/INet/HTTPS_Session.cpp284
-rw-r--r--ACE/protocols/ace/INet/HTTPS_Session.h101
-rw-r--r--ACE/protocols/ace/INet/HTTPS_SessionFactory.cpp77
-rw-r--r--ACE/protocols/ace/INet/HTTPS_SessionFactory.h71
-rw-r--r--ACE/protocols/ace/INet/HTTPS_URL.cpp109
-rw-r--r--ACE/protocols/ace/INet/HTTPS_URL.h89
-rw-r--r--ACE/protocols/ace/INet/HTTPS_URL.inl27
-rw-r--r--ACE/protocols/ace/INet/HTTP_BasicAuthentication.cpp75
-rw-r--r--ACE/protocols/ace/INet/HTTP_BasicAuthentication.h85
-rw-r--r--ACE/protocols/ace/INet/HTTP_BasicAuthentication.inl39
-rw-r--r--ACE/protocols/ace/INet/HTTP_ClientRequestHandler.cpp367
-rw-r--r--ACE/protocols/ace/INet/HTTP_ClientRequestHandler.h254
-rw-r--r--ACE/protocols/ace/INet/HTTP_ClientRequestHandler.inl95
-rw-r--r--ACE/protocols/ace/INet/HTTP_Header.cpp47
-rw-r--r--ACE/protocols/ace/INet/HTTP_Header.h98
-rw-r--r--ACE/protocols/ace/INet/HTTP_Header.inl64
-rw-r--r--ACE/protocols/ace/INet/HTTP_IOStream.cpp110
-rw-r--r--ACE/protocols/ace/INet/HTTP_IOStream.h133
-rw-r--r--ACE/protocols/ace/INet/HTTP_IOStream.inl33
-rw-r--r--ACE/protocols/ace/INet/HTTP_Request.cpp181
-rw-r--r--ACE/protocols/ace/INet/HTTP_Request.h139
-rw-r--r--ACE/protocols/ace/INet/HTTP_Request.inl101
-rw-r--r--ACE/protocols/ace/INet/HTTP_Response.cpp126
-rw-r--r--ACE/protocols/ace/INet/HTTP_Response.h101
-rw-r--r--ACE/protocols/ace/INet/HTTP_Response.inl52
-rw-r--r--ACE/protocols/ace/INet/HTTP_Session.cpp182
-rw-r--r--ACE/protocols/ace/INet/HTTP_Session.h81
-rw-r--r--ACE/protocols/ace/INet/HTTP_SessionBase.cpp314
-rw-r--r--ACE/protocols/ace/INet/HTTP_SessionBase.h134
-rw-r--r--ACE/protocols/ace/INet/HTTP_SessionBase.inl124
-rw-r--r--ACE/protocols/ace/INet/HTTP_Simple_exec.cpp294
-rw-r--r--ACE/protocols/ace/INet/HTTP_Status.cpp197
-rw-r--r--ACE/protocols/ace/INet/HTTP_Status.h190
-rw-r--r--ACE/protocols/ace/INet/HTTP_Status.inl68
-rw-r--r--ACE/protocols/ace/INet/HTTP_StreamPolicy.cpp151
-rw-r--r--ACE/protocols/ace/INet/HTTP_StreamPolicy.h100
-rw-r--r--ACE/protocols/ace/INet/HTTP_StreamPolicyBase.cpp50
-rw-r--r--ACE/protocols/ace/INet/HTTP_StreamPolicyBase.h66
-rw-r--r--ACE/protocols/ace/INet/HTTP_URL.cpp134
-rw-r--r--ACE/protocols/ace/INet/HTTP_URL.h116
-rw-r--r--ACE/protocols/ace/INet/HTTP_URL.inl76
-rw-r--r--ACE/protocols/ace/INet/HeaderBase.cpp176
-rw-r--r--ACE/protocols/ace/INet/HeaderBase.h163
-rw-r--r--ACE/protocols/ace/INet/HeaderBase.inl156
-rw-r--r--ACE/protocols/ace/INet/INet_Export.h58
-rw-r--r--ACE/protocols/ace/INet/INet_Log.cpp75
-rw-r--r--ACE/protocols/ace/INet/INet_Log.h131
-rw-r--r--ACE/protocols/ace/INet/INet_SSL_Export.h58
-rw-r--r--ACE/protocols/ace/INet/IOS_util.cpp20
-rw-r--r--ACE/protocols/ace/INet/IOS_util.h75
-rw-r--r--ACE/protocols/ace/INet/Request.cpp21
-rw-r--r--ACE/protocols/ace/INet/Request.h42
-rw-r--r--ACE/protocols/ace/INet/RequestHandler.cpp21
-rw-r--r--ACE/protocols/ace/INet/RequestHandler.h52
-rw-r--r--ACE/protocols/ace/INet/Response.cpp21
-rw-r--r--ACE/protocols/ace/INet/Response.h42
-rw-r--r--ACE/protocols/ace/INet/SSLSock_IOStream.cpp130
-rw-r--r--ACE/protocols/ace/INet/SSLSock_IOStream.h169
-rw-r--r--ACE/protocols/ace/INet/SSL_CallbackManager.cpp122
-rw-r--r--ACE/protocols/ace/INet/SSL_CallbackManager.h79
-rw-r--r--ACE/protocols/ace/INet/SSL_CallbackManager.inl33
-rw-r--r--ACE/protocols/ace/INet/SSL_CertificateCallback.cpp62
-rw-r--r--ACE/protocols/ace/INet/SSL_CertificateCallback.h103
-rw-r--r--ACE/protocols/ace/INet/SSL_CertificateCallback.inl57
-rw-r--r--ACE/protocols/ace/INet/SSL_PasswordCallback.cpp23
-rw-r--r--ACE/protocols/ace/INet/SSL_PasswordCallback.h45
-rw-r--r--ACE/protocols/ace/INet/SSL_Proxy_Connector.cpp212
-rw-r--r--ACE/protocols/ace/INet/SSL_Proxy_Connector.h60
-rw-r--r--ACE/protocols/ace/INet/SSL_X509Cert.cpp18
-rw-r--r--ACE/protocols/ace/INet/SSL_X509Cert.h57
-rw-r--r--ACE/protocols/ace/INet/SSL_X509Cert.inl65
-rw-r--r--ACE/protocols/ace/INet/Sock_IOStream.cpp130
-rw-r--r--ACE/protocols/ace/INet/Sock_IOStream.h168
-rw-r--r--ACE/protocols/ace/INet/StreamHandler.cpp575
-rw-r--r--ACE/protocols/ace/INet/StreamHandler.h151
-rw-r--r--ACE/protocols/ace/INet/StreamInterceptor.cpp57
-rw-r--r--ACE/protocols/ace/INet/StreamInterceptor.h74
-rw-r--r--ACE/protocols/ace/INet/String_IOStream.cpp229
-rw-r--r--ACE/protocols/ace/INet/String_IOStream.h175
-rw-r--r--ACE/protocols/ace/INet/URLBase.cpp452
-rw-r--r--ACE/protocols/ace/INet/URLBase.h259
-rw-r--r--ACE/protocols/ace/INet/URLBase.inl95
-rw-r--r--ACE/protocols/ace/INet/inet.mpc97
-rw-r--r--ACE/protocols/ace/INet/inet_ssl.mpc28
-rw-r--r--ACE/protocols/ace/RMCast/Acknowledge.cpp11
-rw-r--r--ACE/protocols/ace/RMCast/Acknowledge.h3
-rw-r--r--ACE/protocols/ace/RMCast/Bits.h10
-rw-r--r--ACE/protocols/ace/RMCast/Flow.cpp20
-rw-r--r--ACE/protocols/ace/RMCast/Flow.h3
-rw-r--r--ACE/protocols/ace/RMCast/Fragment.cpp3
-rw-r--r--ACE/protocols/ace/RMCast/Fragment.h3
-rw-r--r--ACE/protocols/ace/RMCast/Link.cpp9
-rw-r--r--ACE/protocols/ace/RMCast/Link.h3
-rw-r--r--ACE/protocols/ace/RMCast/Parameters.h3
-rw-r--r--ACE/protocols/ace/RMCast/Protocol.cpp3
-rw-r--r--ACE/protocols/ace/RMCast/Protocol.h9
-rw-r--r--ACE/protocols/ace/RMCast/RMCast.mpc6
-rw-r--r--ACE/protocols/ace/RMCast/Reassemble.cpp11
-rw-r--r--ACE/protocols/ace/RMCast/Reassemble.h3
-rw-r--r--ACE/protocols/ace/RMCast/Retransmit.cpp9
-rw-r--r--ACE/protocols/ace/RMCast/Retransmit.h3
-rw-r--r--ACE/protocols/ace/RMCast/Simulator.cpp3
-rw-r--r--ACE/protocols/ace/RMCast/Simulator.h3
-rw-r--r--ACE/protocols/ace/RMCast/Socket.cpp3
-rw-r--r--ACE/protocols/ace/RMCast/Socket.h3
-rw-r--r--ACE/protocols/ace/RMCast/Stack.cpp3
-rw-r--r--ACE/protocols/ace/RMCast/Stack.h3
-rw-r--r--ACE/protocols/ace/TMCast/FaultDetector.hpp3
-rw-r--r--ACE/protocols/ace/TMCast/Group.cpp12
-rw-r--r--ACE/protocols/ace/TMCast/Group.hpp3
-rw-r--r--ACE/protocols/ace/TMCast/GroupFwd.hpp3
-rw-r--r--ACE/protocols/ace/TMCast/LinkListener.hpp15
-rw-r--r--ACE/protocols/ace/TMCast/MTQueue.cpp3
-rw-r--r--ACE/protocols/ace/TMCast/MTQueue.hpp4
-rw-r--r--ACE/protocols/ace/TMCast/Messaging.hpp3
-rw-r--r--ACE/protocols/ace/TMCast/Protocol.cpp3
-rw-r--r--ACE/protocols/ace/TMCast/Protocol.hpp19
-rw-r--r--ACE/protocols/ace/TMCast/TMCast.mpc6
-rw-r--r--ACE/protocols/ace/TMCast/TransactionController.hpp7
-rw-r--r--ACE/protocols/examples/RMCast/Send_Msg/Send_Msg.mpc4
-rw-r--r--ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp2
-rw-r--r--ACE/protocols/tests/HTBP/HTBP_Config.conf2
-rw-r--r--ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp7
-rw-r--r--ACE/protocols/tests/HTBP/Reactor_Tests/inside.conf2
-rwxr-xr-xACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl4
-rw-r--r--ACE/protocols/tests/HTBP/Reactor_Tests/server.cpp4
-rw-r--r--ACE/protocols/tests/HTBP/Reactor_Tests/test_config.h1
-rw-r--r--ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp5
-rwxr-xr-xACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl6
-rw-r--r--ACE/protocols/tests/HTBP/Send_Large_Msg/server.cpp6
-rw-r--r--ACE/protocols/tests/HTBP/Send_Recv_Tests/client.cpp49
-rwxr-xr-xACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl4
-rw-r--r--ACE/protocols/tests/HTBP/Send_Recv_Tests/server.cpp50
-rw-r--r--ACE/protocols/tests/HTBP/ping/client.cpp4
-rwxr-xr-xACE/protocols/tests/HTBP/ping/run_test.pl4
-rw-r--r--ACE/protocols/tests/HTBP/ping/server.cpp6
-rw-r--r--ACE/protocols/tests/INet/MT_Get/Main.cpp310
-rw-r--r--ACE/protocols/tests/INet/MT_Get/test.mpc9
-rw-r--r--ACE/protocols/tests/RMCast/RMCast.mpc4
-rw-r--r--ACE/protocols/tests/RMCast/Sender.cpp2
-rwxr-xr-xACE/protocols/tests/RMCast/run_test.pl2
-rw-r--r--ACE/rpmbuild/README8
-rw-r--r--ACE/rpmbuild/ace-tao-ciao.spec2688
-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
-rwxr-xr-xACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosconcurrency76
-rwxr-xr-xACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosevent76
-rwxr-xr-xACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnaming76
-rwxr-xr-xACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnotification76
-rwxr-xr-xACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-costrading76
-rwxr-xr-xACE/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
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency192
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent199
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming192
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification192
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading192
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent192
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency23
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/tao/tao-cosevent23
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnaming37
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnotification23
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/tao/tao-costrading23
-rwxr-xr-xACE/rpmbuild/ace-tao-init-suse/tao/tao-rtevent24
-rw-r--r--ACE/rpmbuild/ace-tao-orbsvcs-daemon.patch421
-rw-r--r--ACE/rpmbuild/ace-tao-rpmlintrc4
-rw-r--r--ACE/rpmbuild/ace-tao-rpmlintrc.txt5
-rw-r--r--ACE/rpmbuild/ace-tao.spec2582
-rw-r--r--ACE/rpmbuild/ace-tao.txt2428
-rw-r--r--ACE/rpmbuild/etc/logrotate.d/tao-cosconcurrency6
-rw-r--r--ACE/rpmbuild/etc/logrotate.d/tao-cosevent6
-rw-r--r--ACE/rpmbuild/etc/logrotate.d/tao-cosnaming6
-rw-r--r--ACE/rpmbuild/etc/logrotate.d/tao-cosnotification6
-rw-r--r--ACE/rpmbuild/etc/logrotate.d/tao-costrading6
-rw-r--r--ACE/rpmbuild/etc/logrotate.d/tao-rtevent6
-rw-r--r--ACE/rpmbuild/etc/tao/tao-cosconcurrency.conf4
-rw-r--r--ACE/rpmbuild/etc/tao/tao-cosevent.conf5
-rw-r--r--ACE/rpmbuild/etc/tao/tao-cosnaming.conf5
-rw-r--r--ACE/rpmbuild/etc/tao/tao-cosnotification.conf5
-rw-r--r--ACE/rpmbuild/etc/tao/tao-costrading.conf5
-rw-r--r--ACE/rpmbuild/etc/tao/tao-rtevent.conf5
-rw-r--r--ACE/tests/ACE_Init_Test.cpp2
-rw-r--r--ACE/tests/ACE_Init_Test.h40
-rw-r--r--ACE/tests/ACE_Init_Test.rc79
-rw-r--r--ACE/tests/ACE_Init_Test_Resource.h522
-rw-r--r--ACE/tests/ACE_Init_Test_StdAfx.h35
-rw-r--r--ACE/tests/ACE_Test.cpp3
-rw-r--r--ACE/tests/ARGV_Test.cpp2
-rw-r--r--ACE/tests/Aio_Platform_Test.cpp38
-rw-r--r--ACE/tests/Arg_Shifter_Test.cpp2
-rw-r--r--ACE/tests/Array_Map_Test.cpp50
-rw-r--r--ACE/tests/Atomic_Op_Test.cpp488
-rw-r--r--ACE/tests/Auto_Event_Test.cpp35
-rw-r--r--ACE/tests/Auto_IncDec_Test.cpp53
-rw-r--r--ACE/tests/Barrier_Test.cpp35
-rw-r--r--ACE/tests/Based_Pointer_Test.cpp55
-rw-r--r--ACE/tests/Based_Pointer_Test_Lib.cpp33
-rw-r--r--ACE/tests/Basic_Types_Test.cpp57
-rw-r--r--ACE/tests/Bound_Ptr_Test.cpp2
-rw-r--r--ACE/tests/Bound_Ptr_Test.h33
-rw-r--r--ACE/tests/Buffer_Stream_Test.cpp78
-rw-r--r--ACE/tests/Bug_1576_Regression_Test.cpp4
-rw-r--r--ACE/tests/Bug_1890_Regression_Test.cpp12
-rw-r--r--ACE/tests/Bug_2368_Regression_Test.cpp4
-rw-r--r--ACE/tests/Bug_2434_Regression_Test.cpp68
-rw-r--r--ACE/tests/Bug_2497_Regression_Test.cpp4
-rw-r--r--ACE/tests/Bug_2540_Regression_Test.cpp16
-rw-r--r--ACE/tests/Bug_2609_Regression_Test.cpp102
-rw-r--r--ACE/tests/Bug_2610_Regression_Test.cpp41
-rw-r--r--ACE/tests/Bug_2653_Regression_Test.cpp50
-rw-r--r--ACE/tests/Bug_2659_Regression_Test.cpp33
-rw-r--r--ACE/tests/Bug_2740_Regression_Test.cpp390
-rw-r--r--ACE/tests/Bug_2772_Regression_Test.cpp2
-rw-r--r--ACE/tests/Bug_2815_Regression_Test.cpp3
-rw-r--r--ACE/tests/Bug_2820_Regression_Test.cpp3
-rw-r--r--ACE/tests/Bug_2975_Regression_Test.cpp6
-rw-r--r--ACE/tests/Bug_2980_Regression_Dll.cpp2
-rw-r--r--ACE/tests/Bug_2980_Regression_Test.cpp20
-rw-r--r--ACE/tests/Bug_3102_Regression_Test.cpp4
-rw-r--r--ACE/tests/Bug_3319_Regression_Test.cpp8
-rw-r--r--ACE/tests/Bug_3332_Regression_Test.cpp6
-rw-r--r--ACE/tests/Bug_3334_Regression_Test.conf9
-rw-r--r--ACE/tests/Bug_3334_Regression_Test.cpp48
-rw-r--r--ACE/tests/Bug_3432_Regression_Test.cpp2
-rw-r--r--ACE/tests/Bug_3500_Regression_Test.cpp18
-rw-r--r--ACE/tests/Bug_3505_Regression_Test.cpp2
-rw-r--r--ACE/tests/Bug_3532_Regression_Test.cpp4
-rw-r--r--ACE/tests/Bug_3539_Regression_Test.cpp125
-rw-r--r--ACE/tests/Bug_3541_Regression_Test.cpp7
-rw-r--r--ACE/tests/Bug_3673_Regression_Test.cpp86
-rw-r--r--ACE/tests/Bug_3709_Regression_Test.cpp50
-rw-r--r--ACE/tests/Bug_3710_Regression_Test.cpp35
-rw-r--r--ACE/tests/Bug_3729_Regression_Test.cpp59
-rw-r--r--ACE/tests/Bug_3744_Regression_Test.cpp59
-rw-r--r--ACE/tests/Bug_3758_Regression_Test.cpp110
-rw-r--r--ACE/tests/Bug_3878_Regression_Test.cpp276
-rw-r--r--ACE/tests/Bug_3911_Regression_Test.cpp166
-rw-r--r--ACE/tests/Bug_3912_Regression_Test.conf7
-rw-r--r--ACE/tests/Bug_3912_Regression_Test.cpp146
-rw-r--r--ACE/tests/Bug_3943_Regression_Test.cpp1148
-rw-r--r--ACE/tests/Bug_3974_Regression_Test.cpp84
-rw-r--r--ACE/tests/CDR_Array_Test.cpp45
-rw-r--r--ACE/tests/CDR_File_Test.cpp59
-rw-r--r--ACE/tests/CDR_Test.cpp61
-rw-r--r--ACE/tests/Cache_Map_Manager_Test.cpp80
-rw-r--r--ACE/tests/Cache_Map_Manager_Test.h31
-rw-r--r--ACE/tests/Cached_Accept_Conn_Test.cpp45
-rw-r--r--ACE/tests/Cached_Accept_Conn_Test.h57
-rw-r--r--ACE/tests/Cached_Allocator_Test.cpp33
-rw-r--r--ACE/tests/Cached_Conn_Test.cpp45
-rw-r--r--ACE/tests/Cached_Conn_Test.h31
-rw-r--r--ACE/tests/Capabilities_Test.cpp35
-rw-r--r--ACE/tests/Codecs_Test.cpp33
-rw-r--r--ACE/tests/Collection_Test.cpp45
-rw-r--r--ACE/tests/Collection_Test.h33
-rw-r--r--ACE/tests/Compiler_Features_01_Test.cpp65
-rw-r--r--ACE/tests/Compiler_Features_02_Test.cpp83
-rw-r--r--ACE/tests/Compiler_Features_03_Test.cpp63
-rw-r--r--ACE/tests/Compiler_Features_04_Test.cpp83
-rw-r--r--ACE/tests/Compiler_Features_05_Test.cpp68
-rw-r--r--ACE/tests/Compiler_Features_06_Test.cpp95
-rw-r--r--ACE/tests/Compiler_Features_07_Test.cpp83
-rw-r--r--ACE/tests/Compiler_Features_09_Test.cpp112
-rw-r--r--ACE/tests/Compiler_Features_10_Test.cpp291
-rw-r--r--ACE/tests/Compiler_Features_11_Test.cpp66
-rw-r--r--ACE/tests/Compiler_Features_12_Test.cpp59
-rw-r--r--ACE/tests/Compiler_Features_13_Test.cpp143
-rw-r--r--ACE/tests/Compiler_Features_14_Test.cpp112
-rw-r--r--ACE/tests/Config_Test.cpp97
-rw-r--r--ACE/tests/Config_Test.h34
-rw-r--r--ACE/tests/Conn_Test.cpp57
-rw-r--r--ACE/tests/Conn_Test.h65
-rw-r--r--ACE/tests/DLL_Test.cpp56
-rw-r--r--ACE/tests/DLL_Test_Impl.cpp35
-rw-r--r--ACE/tests/DLL_Test_Impl.h49
-rw-r--r--ACE/tests/DLL_Test_Parent.cpp5
-rw-r--r--ACE/tests/DLList_Test.cpp31
-rw-r--r--ACE/tests/Date_Time_Test.cpp2
-rw-r--r--ACE/tests/Dev_Poll_Reactor_Test.cpp65
-rw-r--r--ACE/tests/Dirent_Test.cpp98
-rw-r--r--ACE/tests/Dynamic_Priority_Test.cpp176
-rw-r--r--ACE/tests/Dynamic_Test.cpp41
-rw-r--r--ACE/tests/Enum_Interfaces_Test.cpp51
-rw-r--r--ACE/tests/Env_Value_Test.cpp6
-rw-r--r--ACE/tests/FIFO_Test.cpp39
-rw-r--r--ACE/tests/FlReactor_Test.cpp51
-rw-r--r--ACE/tests/Framework_Component_DLL.cpp37
-rw-r--r--ACE/tests/Framework_Component_DLL.h33
-rw-r--r--ACE/tests/Framework_Component_Test.cpp4
-rw-r--r--ACE/tests/Framework_Component_Test.h33
-rw-r--r--ACE/tests/Future_Set_Test.cpp117
-rw-r--r--ACE/tests/Future_Test.cpp118
-rw-r--r--ACE/tests/Get_Opt_Test.cpp6
-rw-r--r--ACE/tests/Handle_Set_Test.cpp49
-rw-r--r--ACE/tests/Hash_Map_Bucket_Iterator_Test.cpp38
-rw-r--r--ACE/tests/Hash_Map_Manager_Test.cpp42
-rw-r--r--ACE/tests/Hash_Multi_Map_Manager_Test.cpp53
-rw-r--r--ACE/tests/High_Res_Timer_Test.cpp52
-rw-r--r--ACE/tests/INET_Addr_Test.cpp87
-rw-r--r--ACE/tests/INET_Addr_Test_IPV6.cpp5
-rw-r--r--ACE/tests/IOStream_Test.cpp39
-rw-r--r--ACE/tests/Integer_Truncate_Test.cpp28
-rw-r--r--ACE/tests/Intrusive_Auto_Ptr_Test.cpp53
-rw-r--r--ACE/tests/Lazy_Map_Manager_Test.cpp37
-rw-r--r--ACE/tests/Log_Msg_Backend_Test.cpp41
-rw-r--r--ACE/tests/Log_Msg_Test.cpp123
-rw-r--r--ACE/tests/Log_Thread_Inheritance_Test.cpp12
-rw-r--r--ACE/tests/Logging_Strategy_Test.cpp65
-rw-r--r--ACE/tests/MEM_Stream_Test.cpp39
-rw-r--r--ACE/tests/MEM_Stream_Test.h44
-rw-r--r--ACE/tests/MM_Shared_Memory_Test.cpp69
-rw-r--r--ACE/tests/MT_NonBlocking_Connect_Test.cpp402
-rw-r--r--ACE/tests/MT_Reactor_Timer_Test.cpp85
-rw-r--r--ACE/tests/MT_Reactor_Timer_Test.h77
-rw-r--r--ACE/tests/MT_Reactor_Upcall_Test.cpp38
-rw-r--r--ACE/tests/MT_Reference_Counted_Event_Handler_Test.cpp142
-rw-r--r--ACE/tests/MT_Reference_Counted_Notify_Test.cpp41
-rw-r--r--ACE/tests/MT_SOCK_Test.cpp122
-rw-r--r--ACE/tests/Main.cpp31
-rw-r--r--ACE/tests/Makefile.am290
-rw-r--r--ACE/tests/Malloc_Test.cpp59
-rw-r--r--ACE/tests/Malloc_Test.h32
-rw-r--r--ACE/tests/Manual_Event_Test.cpp35
-rw-r--r--ACE/tests/Map_Manager_Test.cpp269
-rw-r--r--ACE/tests/Map_Test.cpp35
-rw-r--r--ACE/tests/Map_Test.h47
-rw-r--r--ACE/tests/Max_Default_Port_Test.cpp51
-rw-r--r--ACE/tests/Max_Default_Port_Test.h38
-rw-r--r--ACE/tests/Mem_Map_Test.cpp57
-rw-r--r--ACE/tests/Memcpy_Test.cpp10
-rw-r--r--ACE/tests/Message_Block_Test.cpp59
-rw-r--r--ACE/tests/Message_Queue_Notifications_Test.cpp97
-rw-r--r--ACE/tests/Message_Queue_Test.cpp127
-rw-r--r--ACE/tests/Message_Queue_Test_Ex.cpp65
-rw-r--r--ACE/tests/Missing_Svc_Conf_Test.cpp87
-rw-r--r--ACE/tests/Multicast_Test.cpp24
-rw-r--r--ACE/tests/Multicast_Test_IPV6.cpp4
-rw-r--r--ACE/tests/Multihomed_INET_Addr_Test.cpp43
-rw-r--r--ACE/tests/Multihomed_INET_Addr_Test_IPV6.cpp37
-rw-r--r--ACE/tests/NDDS_Timer_Test.cpp179
-rw-r--r--ACE/tests/Naming_Test.cpp49
-rw-r--r--ACE/tests/Network_Adapters_Test.cpp57
-rw-r--r--ACE/tests/Network_Adapters_Test.h35
-rw-r--r--ACE/tests/New_Fail_Test.cpp57
-rw-r--r--ACE/tests/NonBlocking_Conn_Test.cpp187
-rw-r--r--ACE/tests/NonBlocking_Conn_Test.h55
-rw-r--r--ACE/tests/Notification_Queue_Unit_Test.cpp3
-rw-r--r--ACE/tests/Notify_Performance_Test.cpp41
-rw-r--r--ACE/tests/OS_Test.cpp234
-rw-r--r--ACE/tests/Object_Manager_Flipping_Test.cpp57
-rw-r--r--ACE/tests/Object_Manager_Test.cpp33
-rw-r--r--ACE/tests/Obstack_Test.cpp32
-rw-r--r--ACE/tests/OrdMultiSet_Test.cpp39
-rw-r--r--ACE/tests/Pipe_Test.cpp37
-rw-r--r--ACE/tests/Priority_Buffer_Test.cpp46
-rw-r--r--ACE/tests/Priority_Reactor_Test.cpp49
-rw-r--r--ACE/tests/Priority_Reactor_Test.h77
-rw-r--r--ACE/tests/Priority_Task_Test.cpp69
-rw-r--r--ACE/tests/Proactor_Scatter_Gather_Test.cpp32
-rw-r--r--ACE/tests/Proactor_Test.cpp39
-rw-r--r--ACE/tests/Proactor_Test.h41
-rw-r--r--ACE/tests/Proactor_Test_IPV6.cpp39
-rw-r--r--ACE/tests/Proactor_Timer_Test.cpp53
-rw-r--r--ACE/tests/Proactor_UDP_Test.cpp48
-rw-r--r--ACE/tests/Process_Env_Test.cpp37
-rw-r--r--ACE/tests/Process_Manager_Test.cpp77
-rw-r--r--ACE/tests/Process_Manual_Event_Test.cpp37
-rw-r--r--ACE/tests/Process_Mutex_Test.cpp41
-rw-r--r--ACE/tests/Process_Semaphore_Test.cpp56
-rw-r--r--ACE/tests/Process_Strategy_Test.cpp96
-rw-r--r--ACE/tests/Process_Strategy_Test.h93
-rw-r--r--ACE/tests/Process_Test.cpp86
-rw-r--r--ACE/tests/QtReactor_Test.cpp90
-rw-r--r--ACE/tests/QtReactor_Test.h4
-rw-r--r--ACE/tests/RB_Tree_Test.cpp57
-rw-r--r--ACE/tests/RB_Tree_Test.h89
-rw-r--r--ACE/tests/RW_Process_Mutex_Test.cpp31
-rw-r--r--ACE/tests/Reactor_Dispatch_Order_Test.cpp41
-rw-r--r--ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp42
-rw-r--r--ACE/tests/Reactor_Exceptions_Test.cpp44
-rw-r--r--ACE/tests/Reactor_Fairness_Test.cpp406
-rw-r--r--ACE/tests/Reactor_Fairness_Test.h49
-rw-r--r--ACE/tests/Reactor_Notification_Queue_Test.cpp3
-rw-r--r--ACE/tests/Reactor_Notify_Test.cpp140
-rw-r--r--ACE/tests/Reactor_Performance_Test.cpp42
-rw-r--r--ACE/tests/Reactor_Performance_Test.h58
-rw-r--r--ACE/tests/Reactor_Registration_Test.cpp37
-rw-r--r--ACE/tests/Reactor_Timer_Test.cpp62
-rw-r--r--ACE/tests/Reactors_Test.cpp60
-rw-r--r--ACE/tests/Reader_Writer_Test.cpp41
-rw-r--r--ACE/tests/Recursive_Condition_Bug_Test.cpp46
-rw-r--r--ACE/tests/Recursive_Condition_Test.cpp45
-rw-r--r--ACE/tests/Recursive_Mutex_Test.cpp75
-rw-r--r--ACE/tests/Refcounted_Auto_Ptr_Test.cpp8
-rw-r--r--ACE/tests/Refcounted_Auto_Ptr_Test.h33
-rw-r--r--ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp42
-rw-r--r--ACE/tests/Reference_Counted_Event_Handler_Test.cpp41
-rw-r--r--ACE/tests/Reverse_Lock_Test.cpp37
-rw-r--r--ACE/tests/SOCK_Connector_Test.cpp44
-rw-r--r--ACE/tests/SOCK_Dgram_Bcast_Test.cpp43
-rw-r--r--ACE/tests/SOCK_Dgram_Test.cpp35
-rw-r--r--ACE/tests/SOCK_Netlink_Test.cpp37
-rw-r--r--ACE/tests/SOCK_SEQPACK_SCTP_Test.cpp5
-rw-r--r--ACE/tests/SOCK_Send_Recv_Test.cpp49
-rw-r--r--ACE/tests/SOCK_Send_Recv_Test_IPV6.cpp10
-rw-r--r--ACE/tests/SOCK_Test.cpp98
-rw-r--r--ACE/tests/SOCK_Test_IPv6.cpp4
-rw-r--r--ACE/tests/SPIPE_Test.cpp49
-rw-r--r--ACE/tests/SSL/Bug_2912_Regression_Test.cpp154
-rw-r--r--ACE/tests/SSL/Main.cpp31
-rw-r--r--ACE/tests/SSL/SSL_Asynch_Stream_Test.cpp104
-rw-r--r--ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp101
-rw-r--r--ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.h40
-rw-r--r--ACE/tests/SString_Test.cpp136
-rw-r--r--ACE/tests/SV_Shared_Memory_Test.cpp68
-rw-r--r--ACE/tests/Semaphore_Test.cpp35
-rw-r--r--ACE/tests/Service_Config_DLL.cpp4
-rw-r--r--ACE/tests/Service_Config_Stream_DLL.cpp147
-rw-r--r--ACE/tests/Service_Config_Stream_DLL.h44
-rw-r--r--ACE/tests/Service_Config_Stream_DLL_Export.h38
-rw-r--r--ACE/tests/Service_Config_Stream_Test.conf27
-rw-r--r--ACE/tests/Service_Config_Stream_Test.cpp128
-rw-r--r--ACE/tests/Service_Config_Test.UTF-16.confbin2008 -> 2028 bytes
-rw-r--r--ACE/tests/Service_Config_Test.WCHAR_T.confbin4012 -> 4052 bytes
-rw-r--r--ACE/tests/Service_Config_Test.conf2
-rw-r--r--ACE/tests/Service_Config_Test.conf.xml1
-rw-r--r--ACE/tests/Service_Config_Test.cpp62
-rw-r--r--ACE/tests/Sig_Handlers_Test.cpp45
-rw-r--r--ACE/tests/Signal_Test.cpp67
-rw-r--r--ACE/tests/Sigset_Ops_Test.cpp41
-rw-r--r--ACE/tests/Simple_Message_Block_Test.cpp43
-rw-r--r--ACE/tests/Singleton_Test.cpp37
-rw-r--r--ACE/tests/Stack_Trace_Test.cpp2
-rw-r--r--ACE/tests/Svc_Handler_Test.cpp39
-rw-r--r--ACE/tests/TP_Reactor_Test.cpp161
-rw-r--r--ACE/tests/TP_Reactor_Test.h34
-rw-r--r--ACE/tests/TSS_Static_Test.cpp38
-rw-r--r--ACE/tests/TSS_Test.cpp45
-rw-r--r--ACE/tests/TSS_Test_Errno.h46
-rw-r--r--ACE/tests/Task_Ex_Test.cpp43
-rw-r--r--ACE/tests/Task_Test.cpp52
-rw-r--r--ACE/tests/Test_Output.cpp4
-rw-r--r--ACE/tests/Thread_Attrs_Test.cpp296
-rw-r--r--ACE/tests/Thread_Creation_Threshold_Test.cpp82
-rw-r--r--ACE/tests/Thread_Manager_Test.cpp53
-rw-r--r--ACE/tests/Thread_Mutex_Test.cpp63
-rw-r--r--ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp83
-rw-r--r--ACE/tests/Thread_Pool_Reactor_Resume_Test.h43
-rw-r--r--ACE/tests/Thread_Pool_Reactor_Test.cpp84
-rw-r--r--ACE/tests/Thread_Pool_Reactor_Test.h45
-rw-r--r--ACE/tests/Thread_Pool_Test.cpp98
-rw-r--r--ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp307
-rw-r--r--ACE/tests/Time_Service_Test.cpp43
-rw-r--r--ACE/tests/Time_Value_Test.cpp147
-rw-r--r--ACE/tests/Timeprobe_Test.cpp35
-rw-r--r--ACE/tests/Timer_Cancellation_Test.cpp37
-rw-r--r--ACE/tests/Timer_Queue_Reference_Counting_Test.cpp65
-rw-r--r--ACE/tests/Timer_Queue_Test.cpp240
-rw-r--r--ACE/tests/TkReactor_Test.cpp49
-rw-r--r--ACE/tests/Token_Strategy_Test.cpp4
-rw-r--r--ACE/tests/Tokens_Test.cpp57
-rw-r--r--ACE/tests/UNIXclerk.conf2
-rw-r--r--ACE/tests/UNIXserver.conf2
-rw-r--r--ACE/tests/UNIXtokens.conf2
-rw-r--r--ACE/tests/UPIPE_SAP_Test.cpp49
-rw-r--r--ACE/tests/UUID_Test.cpp127
-rw-r--r--ACE/tests/Unbounded_Set_Test.cpp37
-rw-r--r--ACE/tests/Unload_libACE.cpp46
-rw-r--r--ACE/tests/Upgradable_RW_Test.cpp55
-rw-r--r--ACE/tests/Upgradable_RW_Test.h83
-rw-r--r--ACE/tests/Vector_Test.cpp52
-rw-r--r--ACE/tests/WFMO_Reactor_Test.cpp55
-rw-r--r--ACE/tests/Wild_Match_Test.cpp2
-rw-r--r--ACE/tests/Win32clerk.conf2
-rw-r--r--ACE/tests/Win32server.conf2
-rw-r--r--ACE/tests/Win32tokens.conf2
-rw-r--r--ACE/tests/XtAthenaReactor_Test.cpp52
-rw-r--r--ACE/tests/XtMotifReactor_Test.cpp52
-rwxr-xr-xACE/tests/non_mpc_makefile/Bug_3708_Regression.pl21
-rw-r--r--ACE/tests/non_mpc_makefile/CustomMakefile9
-rw-r--r--ACE/tests/non_mpc_makefile/foo.cpp6
-rw-r--r--ACE/tests/randomize.h12
-rw-r--r--ACE/tests/run_test.lst66
-rwxr-xr-xACE/tests/run_test.pl54
-rwxr-xr-xACE/tests/run_tests_remote.sh4
-rw-r--r--ACE/tests/test_config.h13
-rw-r--r--ACE/tests/tests.mpc322
-rw-r--r--ACE/websvcs/lib/URL_Addr.cpp16
-rw-r--r--ACE/websvcs/lib/URL_Addr.h346
-rw-r--r--ACE/websvcs/tests/Test_URL_Addr.cpp2
3130 files changed, 85667 insertions, 64958 deletions
diff --git a/ACE/ACE-INSTALL.html b/ACE/ACE-INSTALL.html
index e3e9a3b07a5..d0d2d8ef23c 100644
--- a/ACE/ACE-INSTALL.html
+++ b/ACE/ACE-INSTALL.html
@@ -123,8 +123,8 @@ document</a>.</p><p>
</thead><tbody>
<tr>
<th>DOC Group</th>
- <td>Windows 2000, XP (MSVC++ 7.1, and 8);
- many versions of Linux/Intel (many compilers), Linux/IA64 (GCC).
+ <td>Windows 2000, XP (MSVC++ 7.1, 8, 9, and 10);
+ many versions of Linux/Intel (many compilers).
</td>
<td>DOC sites at <a href="http://www.dre.vanderbilt.edu/">ISIS</a>,
<a href="http://doc.ece.uci.edu/">UCI</a> and
@@ -153,13 +153,13 @@ document</a>.</p><p>
<tr>
<th>Remedy IT</th>
<td>Maintains ACE on many platforms required for their ACE and
- TAO service offerings. We support AIX,
- CodeGear C++ Builder 2007/2009, CodeGear RAD Studio 2007,
- CBuilderX 1.0, Windows CE, MinGW, Microsoft Visual C++ 7.1/8/9, GCC,
- Cygwin, VxWorks 5.5.x - 6.x (kernel and rtp), OpenVMS 8.2-1 & 8.3 on Alpha and IA64,
- BlueCAT Linux, RedHat Linux, Fedora, MacOSX, Solaris,
- Tru64, SuSE Linux on Alpha/IA32/EM64T/IA64, RTEMS, QNX, LynxOS 4.0/4.2,
- HPUX 11i v1/v2 32/64 bit on PA-RISC, and
+ TAO service offerings. We support AIX,
+ CodeGear C++ Builder 2007/2009, CodeGear RAD Studio 2007, Embarcadero C++ Builder 2010/XE,
+ Windows CE, MinGW, Microsoft Visual C++ 7.1/8/9/10, GCC,
+ Cygwin, VxWorks 6.x (kernel and rtp), OpenVMS 8.3 on IA64,
+ BlueCAT Linux, RedHat Linux, Fedora, MacOSX, Solaris,
+ Tru64, SuSE Linux on Alpha/IA32/EM64T/IA64, RTEMS, QNX, LynxOS,
+ and
HPUX 11i v2/v3 on IA64. The Intel C++ compiler is supported on
Windows 32/64bit, Linux IA32/EM64T/IA64, MacOSX.
</td>
@@ -227,13 +227,16 @@ supported by the DOC group, Riverace, OCI or Remedy IT. </p><p>
</p><p></p><hr><p>
</p><h2><a name="installpre">Installation prerequisites</a></h2>
-<p>
-ACE (as well as TAO and CIAO) use MPC (MakeProjectCreator) to generate
-files used by all supported build tools (such as GNUmakefiles for UNIX based
-platforms, sln and vcproj files for VC71/VC8 and CodeGear makefiles) on various
-platforms. To help new users to bootstrap quickly the release bundles
-of ACE (as well as TAO and CIAO) include all needed files to use the build
+
+<p> ACE (as well as TAO and CIAO) use <A
+HREF="http://downloads.ociweb.com/MPC/docs/html/MakeProjectCreator.html">MPC</A>
+(MakeProjectCreator) to generate files used by all supported build
+tools (such as GNUmakefiles for UNIX based platforms, sln and vcproj
+files for VC71/VC8 and Embarcadero makefiles) on various platforms. To
+help new users to bootstrap quickly the release bundles of ACE (as
+well as TAO and CIAO) include all needed files to use the build
instructions in this document.
+
</p>
<p>
If it is necessary to generate
@@ -490,6 +493,21 @@ include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
NOTE! There really is not a # character before 'include' in the
platform_macros.GNU file. # is a comment character.
</li>
+ <li>If you wish to install ACE (using &quot;make install&quot;), set the
+ installation prefix in platform_macros.GNU.
+<blockquote><code>
+INSTALL_PREFIX = /usr/local
+</code></blockquote>
+ Headers will be installed to $INSTALL_PREFIX/include, executables to
+ $INSTALL_PREFIX/bin, documentation and build system files to
+ $INSTALL_PREFIX/share and libraries to $INSTALL_PREFIX/lib. The library
+ directory can be customized by setting INSTALL_LIB (for example,
+ INSTALL_LIB=lib64). With INSTALL_PREFIX set, RPATH will be enabled for
+ all executables and shared libraries. To disable RPATH (for example,
+ if $INSTALL_PREFIX/$INSTALL_LIB is already a system-known location for
+ shared libraries such as those listed in /etc/ld.so.conf), set the make
+ macro install_rpath to 0 by adding install_rpath=0 to platform_macros.GNU.
+ </li>
<li>Note that because ACE builds shared libraries, you'll need to set
LD_LIBRARY_PATH (or equivalent for your platform) to the directory
where binary version of the ACE library is built into. For example,
@@ -514,6 +532,9 @@ include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
perfect hash function generator application in
<code>$ACE_ROOT/apps/gperf</code>.
</li>
+ <li>If you've set the INSTALL_PREFIX before building, now run
+<blockquote><code>% make install</code></blockquote>
+ </li>
<li>If you need to regenerate the <code>ace/Svc_Conf_y.cpp</code> file,
you'll need to
get <a href="http://ftp.gnu.org/pub/gnu/bison/">GNU Bison</a>.
@@ -535,7 +556,7 @@ one will not clean up any old files, and trying to use the environment's
<ul>
<li><a href="#msvc">Microsoft Visual Studio</a></li>
-<li><a href="#codegear">CodeGear C++Builder</a></li>
+<li><a href="#codegear">Embarcadero C++Builder</a></li>
<li><a href="#mingw">MinGW</a></li>
<li><a href="#cygwin">Cygwin</a></li>
</ul>
@@ -544,20 +565,19 @@ one will not clean up any old files, and trying to use the environment's
</p><h3><a name="msvc">Building and Installing ACE on Windows with
Microsoft Visual Studio</a></h3>
-<p>ACE contains project files for Microsoft Visual Studio .NET 2003 (VC7.1)
-and Visual Studio 2005 (VC8). Visual Studio 2005 supports building for
+<p>ACE contains project files for Microsoft Visual Studio .NET 2005 (VC8)
+, Visual Studio 2009 (VC9), and Visual Studio 2010 (VC10).
+Visual Studio 2005 supports building for
desktop/server Windows as well as for Windows CE and Windows Mobile. Since
not all users will be interested in the CE/Mobile capability, these platforms
have separate solution and project files from the desktop/server Windows.
-Furthermore, VC7.1 and VC8 use different file formats but the same file
+Furthermore, VC7.1, VC8, VC9, and 10 use different file formats but the same file
suffixes (<code>.sln</code> and <code>.vcproj</code>). To support both
environments, ACE supplies files with different names for the different
development and target platforms. The platform/name mapping is shown below.
All solution files have a <code>.sln</code> suffix and all project files have
a <code>.vcproj</code> suffix.</p>
-<p>Visual Studio 2008 (VC9) is also supported.</p>
-
<p>
The free Visual C++ 2008 Express Edition will work in place of the traditional
Visual Studio editions. All the other notes in this document
@@ -593,6 +613,11 @@ can be built with the compiler and linker included in the <a href="http://www.mi
<td><i>name</i><code>_vc9</code>
</td>
</tr>
+ <tr>
+ <th>VC10 for desktop/server</th>
+ <td><i>name</i><code>_vc10</code>
+ </td>
+ </tr>
</tbody></table>
<p>The VC++ compiler and linker can now be invoked from GNU make just like
@@ -769,7 +794,7 @@ include or library directories are specified using backslashes instead of forwar
slashes. If this occurs, the easiest way to fix it is to recreate it.</a></p>
<hr align="left" width="50%"><p>&nbsp;</p>
-<h3><a name="codegear">Building and Installing ACE on Windows with CodeGear C++</a></h3>
+<h3><a name="codegear">Building and Installing ACE on Windows with Embarcadero C++</a></h3>
If you are building for a machine without a network card, you may want
to check <a href="#win32nonic">here</a> first. <p>
@@ -798,6 +823,8 @@ to check <a href="#win32nonic">here</a> first. <p>
<br>
<code>set PATH=C:\ACE_wrappers\lib;C:\ACE_wrappers\bin;%PATH%</code><br>
<br>
+ </li><li>Generate the bmake makefiles using <a href="#MPC">MPC</a>. Use the <code>bmake</code> project type for C++ Builder.
+ <br><br>
</li><li>Change to the ACE_ROOT\ace directory.<br>
<br>
</li><li>Build release DLLs for ACE by going:<br>
@@ -819,7 +846,7 @@ to check <a href="#win32nonic">here</a> first. <p>
<br>
Set the environment variable below to build a version of ACE optimized
for a certain CPU. For this there are special compiler flags
- (-3/-4/-5/-6), see the CodeGear help for more info.<br>
+ (-3/-4/-5/-6), see the Embarcadero help for more info.<br>
<code>set CPU_FLAG=-6</code><br>
<br>
You can then start the build with the command
@@ -834,7 +861,7 @@ to check <a href="#win32nonic">here</a> first. <p>
Note that when you run <code>make</code> in a sub directory you give <code>make -f Makefile.bmak all</code>. The <code>all</code> is needed to make sure the complete project is build.<p>
-The Borland/CodeGear C++ Builder 4.0/5.0/6.0/2006/2007/2009 port has been done by Jody Hagins, <a href="mailto:chris@kohlhoff.com">Christopher Kohlhoff</a> and <a href="mailto:jwillemsen@remedy.nl">Johnny Willemsen</a>. </p><p>
+The Borland/CodeGear/Embarcadero C++ Builder 4.0/5.0/6.0/2006/2007/2009/2010 port has been done by Jody Hagins, <a href="mailto:chris@kohlhoff.com">Christopher Kohlhoff</a> and <a href="mailto:jwillemsen@remedy.nl">Johnny Willemsen</a>. </p><p>
<b>ACE TESTS</b></p><p>
@@ -881,7 +908,7 @@ For our build we require the packages
</p><ol>
- <li> Install the MinGW tools into a common directory, say c:/mingw.
+ <li> Install the MinGW tools (including the MinGW Development toolkit) into a common directory, say c:/mingw.
<br><br>
</li><li> Install the MSYS tools into a common directory, say c:/msys.
@@ -928,6 +955,19 @@ For our build we require the packages
before the previous one.
<br><br>
+ <p>
+ If you want to install ACE (using "make install") and want all the <tt>.pc</tt> files generated,
+ set the installation prefix in platform_macros.GNU.
+ </p><blockquote><code></code><pre> INSTALL_PREFIX=/c/ACE
+ </pre></blockquote>
+ Headers will be installed to $INSTALL_PREFIX/include, documentation and
+ build system files to $INSTALL_PREFIX/share and libraries to $INSTALL_PREFIX/lib. With INSTALL_PREFIX set, RPATH will be enabled.
+ To disable RPATH (for example, if $INSTALL_PREFIX/$INSTALL_LIB is already
+ a system-known location for shared libraries), set the make macro
+ install_rpath to 0 by adding install_rpath=0 to platform_macros.GNU.
+
+ <br><br>
+
</li><li> In the MSYS shell, change to the $ACE_ROOT/ace directory and
run make:
@@ -947,6 +987,14 @@ For our build we require the packages
</p><blockquote><code></code><pre> % make static_libs=1
</pre></blockquote>
+ </li><li> Run make install:
+
+ <blockquote><code></code><pre> % make install
+ </pre></blockquote>
+ <p>
+ This should create <tt>ACE.pc</tt> to use with pkg-config.
+ </p>
+
</li><li> <a name="mingwrunpath">
The same rules for Win32 search of DLLs apply for MinGW. If you
want to run some ACE programs from the MSYS shell, you may
@@ -1020,7 +1068,7 @@ setup selects by default:
<blockquote><code></code><pre> % export PATH=//c/cygwin/bin:$PATH
</pre></blockquote>
- or
+ or
<blockquote><code></code><pre> % export PATH=/cygdrive/c/cygwin/bin:$PATH
</pre></blockquote>
@@ -2067,7 +2115,7 @@ libraries.
can enable it by rebuilding your kernel with CONFIG_IP_MULTICAST
enabled.<p>
</p></li><li>Enable IP multicast in ACE. It is enabled by default in
- <code>ace/config-linux-common.h</code>. If you don't use
+ <code>ace/config-linux.h</code>. If you don't use
IP multicast, add <code>#define ACE_HAS_IP_MULTICAST 0</code>
to your <code>ace/config.h</code> before building ACE.<p>
</p></li><li>There must be a network interface that is up and supports
@@ -2463,6 +2511,29 @@ perl bin/mwc.pl -type vc71 -relative ACE_ROOT=C:/ace/ACE_wrappers -relative TAO
&lt;<a href="mailto:j.zorko@att.net">j.zorko@att.net</a>&gt; is
only one of them.</p>
+</p></li><li><strong>iPhone/iPod Touch/iPad</strong><p>
+
+ </p><p>ACE builds and runs on the iPhone/iPod Touch/iPad Hardware
+ and Simulator. Keep in mind that ACE/TAO needs to be built
+ statically since Apple does not allow third party dynamic libraries
+ to be deployed on the hardware. The following are needed to build ACE:</p>
+
+ <p>1. The iPhone SDK.</p>
+ <p>2. When creating $ACE_ROOT/ace/config.h, include
+ config-macosx-iphone-hardware.h if you want to deploy on the
+ hardware, include config-macosx-iphone-simulator.h if you want
+ to deploy on the simulator. Even though those includes are named
+ after the iPhone, the includes work for iPhone/iPod Touch, and iPad.</p>
+ <p>3. You need to define two environment variables. The first is
+ IPHONE_TARGET. Set IPHONE_TARGET to SIMULATOR if you want to deploy
+ on SIMULATOR. Set IPHONE_TARGET to HARDWARE if you want to deploy on
+ the hardware device.</p>
+ <p>4. When creating $ACE_ROOT/include/makeinclude/platform_macros.GNU,
+ include 'include $(ACE_ROOT)/include/makeinclude/platform_macosx_iphone.GNU'
+ in the file.</p>
+
+
+
</li></ul>
@@ -2587,12 +2658,14 @@ well, try 'make realclean'.</p><p>
<p></p><hr><p>
</p><h1><a name="MPC">General MPC information</a></h1>
-The Makefile Project Creator (MPC) is a tool that takes platform and
+The <A HREF="
+http://downloads.ociweb.com/MPC/docs/html/MakeProjectCreator.html</A>
+Makefile Project Creator (MPC)</A> is a tool that 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, including Make, NMake, Visual C++ 6, Visual C++ 7, etc. Please
-see <a href="MPC/docs/USAGE">USAGE</a>, <a href="MPC/docs/README">README</a> for
-documentation on MPC.<P>
+see <a href="MPC/docs/USAGE">USAGE</a>, <a
+href="MPC/docs/README">README</a> for documentation on MPC.<P>
A common usage for creating a Windows workspace containing just the
core ACE and TAO libraries and executables is the following:
diff --git a/ACE/ACE.mwc b/ACE/ACE.mwc
index 82b50da4046..1783b891807 100644
--- a/ACE/ACE.mwc
+++ b/ACE/ACE.mwc
@@ -21,7 +21,7 @@ workspace {
}
// The '--' is a special key that indicates that the associated
- // projects should be of the form @NAME@ in the generate Makefile.am.
+ // projects should be of the form @NAME@ in the generated Makefile.am.
associate(--) {
ACEXML
ASNMP
diff --git a/ACE/ACEXML/ChangeLog b/ACE/ACEXML/ChangeLog
index ecb027c6021..cf9591f72b8 100644
--- a/ACE/ACEXML/ChangeLog
+++ b/ACE/ACEXML/ChangeLog
@@ -1,3 +1,74 @@
+Tue Aug 3 16:50:57 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * common/DTD_Manager.h:
+ Fixed compile error
+
+ * common/SAXExceptions.inl:
+ Fixed fuzz
+
+Tue Aug 3 11:58:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * common/Makefile.am:
+ * common/common.mpc:
+ Updated because of the removed files
+
+Tue Aug 3 11:52:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/svcconf/Svcconf.cpp:
+ * apps/svcconf/Svcconf_Handler.h:
+ * apps/svcconf/Svcconf_Handler.cpp:
+ * common/Attributes_Def_Builder.h:
+ * common/CharStream.h:
+ * common/ContentHandler.h:
+ * common/DTDHandler.h:
+ * common/DTD_Manager.h:
+ * common/DefaultHandler.h:
+ * common/DefaultHandler.cpp:
+ * common/Element_Def_Builder.h:
+ * common/EntityResolver.h:
+ * common/ErrorHandler.h:
+ * common/Exception.h:
+ * common/SAXExceptions.inl:
+ * common/Validator.h:
+ * common/XMLFilterImpl.h:
+ * common/XMLFilterImpl.cpp:
+ * common/XMLReader.h:
+ * examples/SAXPrint/Print_Handler.h:
+ * examples/SAXPrint/Print_Handler.cpp:
+ * examples/SAXPrint/SAXPrint_Handler.h:
+ * examples/SAXPrint/SAXPrint_Handler.cpp:
+ * examples/SAXPrint/main.cpp:
+ * parser/debug_validator/Debug_Attributes_Builder.h:
+ * parser/debug_validator/Debug_Attributes_Builder.cpp:
+ * parser/debug_validator/Debug_DTD_Manager.h:
+ * parser/debug_validator/Debug_DTD_Manager.cpp:
+ * parser/debug_validator/Debug_Element_Builder.h:
+ * parser/debug_validator/Debug_Element_Builder.cpp:
+ * parser/parser/Parser.h:
+ * parser/parser/Parser.cpp:
+ * tests/ContentHandler_Test.cpp:
+ * tests/Transcoder_Test.cpp:
+ Removed support for emulated exceptions
+
+ * common/Env.h:
+ * common/Env.inl:
+ * common/Env.cpp:
+ * common/XML_Macros.h:
+ Removed these files.
+
+Thu Mar 25 19:41:57 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * parser/parser/Parser.cpp (ACEXML_Parser::parse_encoding_decl):
+ Changed ACE_OS::strcmp() to ACE_OS::strcasecmp(). Thanks to Tim
+ Pinkawa <tpinkawa at eagleseven dot com> for reporting this.
+
+Tue Oct 13 09:37:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/svcconf/Svcconf_Handler.cpp:
+ Fixed compile problems with unicode enabled. Thanks to
+ Christian Freund <freund at wrz dot de> for reporting this. This
+ fixes bugzilla 3745.
+
Mon Jul 30 08:38:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
* apps/svcconf/Svcconf_Handler.cpp:
diff --git a/ACE/ACEXML/apps/svcconf/Svcconf.cpp b/ACE/ACEXML/apps/svcconf/Svcconf.cpp
index 7fd69046ec3..a733e135a87 100644
--- a/ACE/ACEXML/apps/svcconf/Svcconf.cpp
+++ b/ACE/ACEXML/apps/svcconf/Svcconf.cpp
@@ -26,27 +26,21 @@ ACEXML_Svcconf_Parser::ACEXML_Svcconf_Parser ()
this->parser_.setDTDHandler (&this->svcconf_handler_);
this->parser_.setErrorHandler (&this->svcconf_handler_);
this->parser_.setEntityResolver (&this->svcconf_handler_);
- ACEXML_TRY_NEW_ENV
+ try
{
this->parser_.setFeature (ACE_TEXT ("http://xml.org/sax/features/validation"),
- 0
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_TRY_CHECK;
+ 0);
}
- ACEXML_CATCH (ACEXML_SAXException, ex)
+ catch (const ACEXML_SAXException& ex)
{
ex.print (); // Can't do much except printing the error.
- return;
}
- ACEXML_ENDTRY;
}
ACEXML_Svcconf_Parser::~ACEXML_Svcconf_Parser ()
{
-
}
-
int
ACEXML_Svcconf_Parser::parse_file (const ACE_TCHAR file[])
{
@@ -66,17 +60,15 @@ ACEXML_Svcconf_Parser::parse_file (const ACE_TCHAR file[])
this->input_stream_.setCharStream (fstm);
- ACEXML_TRY_NEW_ENV
+ try
{
- this->parser_.parse (&this->input_stream_ ACEXML_ENV_ARG_PARAMETER);
- ACEXML_TRY_CHECK;
+ this->parser_.parse (&this->input_stream_);
}
- ACEXML_CATCH (ACEXML_SAXException, ex)
+ catch (const ACEXML_SAXException& ex)
{
ex.print ();
return -1;
}
- ACEXML_ENDTRY;
return 0;
}
@@ -94,12 +86,11 @@ ACEXML_Svcconf_Parser::parse_string (const ACE_TCHAR str[])
"input stream.\n"), -1);
this->input_stream_.setCharStream (stm);
- ACEXML_TRY_NEW_ENV
+ try
{
- this->parser_.parse (&this->input_stream_ ACEXML_ENV_ARG_PARAMETER);
- ACEXML_TRY_CHECK;
+ this->parser_.parse (&this->input_stream_);
}
- ACEXML_CATCH (ACEXML_SAXException, ex)
+ catch (const ACEXML_SAXException& ex)
{
// If there was a problem parsing the stream, set the errno
// to EINVAL to indicate to upper levels that the stream was
@@ -108,17 +99,7 @@ ACEXML_Svcconf_Parser::parse_string (const ACE_TCHAR str[])
ex.print ();
return -1;
}
- ACEXML_ENDTRY;
return 0;
}
-#else
-
-# if defined (_AIX) && \
- (defined (__IBMCPP__) && (__IBMCPP__ >= 500) && (__IBMCPP__ < 600))
-// This simply shuts up the AIX linker that complains there are no
-// csects or exported symbols when building with Visual Age C++ 5.
-extern "C" void ace_shut_up_aix_ld (void) {};
-# endif /* AIX && __IBMCPP__ == 500 */
-
#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
diff --git a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp b/ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp
index 7bfc3a421ed..d6aa84dbe8c 100644
--- a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp
+++ b/ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp
@@ -36,13 +36,13 @@ ACEXML_Svcconf_Handler::~ACEXML_Svcconf_Handler (void)
void
ACEXML_Svcconf_Handler::characters (const ACEXML_Char *,
int,
- int ACEXML_ENV_ARG_DECL_NOT_USED)
+ int)
{
// no-op
}
void
-ACEXML_Svcconf_Handler::endDocument ( ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_Svcconf_Handler::endDocument (void)
{
// no-op
}
@@ -50,7 +50,7 @@ ACEXML_Svcconf_Handler::endDocument ( ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
void
ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *qName)
{
if (ACE_OS::strcmp (qName, ACE_TEXT ("dynamic")) == 0)
{
@@ -70,13 +70,13 @@ ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *,
if (svc_dll.open (active_info->path ()) == -1)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Cannot locate DLL: '"));
- msg += ACE_CString (ACE_TEXT (active_info->path ()));
- msg += ACE_CString (ACE_TEXT ("' for entity '"));
- msg += ACE_CString (ACE_TEXT (active_info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Cannot locate DLL: '"));
+ msg += ACE_TString (active_info->path ());
+ msg += ACE_TString (ACE_TEXT ("' for entity '"));
+ msg += ACE_TString (active_info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
void *(*func) (ACE_Service_Object_Exterminator *) = 0;
@@ -90,13 +90,13 @@ ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *,
if (func == 0)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Cannot locate init function: '"));
- msg += ACE_CString (ACE_TEXT (active_info->init_func ()));
- msg += ACE_CString (ACE_TEXT ("' for entity '"));
- msg += ACE_CString (ACE_TEXT (active_info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Cannot locate init function: '"));
+ msg += ACE_TString (active_info->init_func ());
+ msg += ACE_TString (ACE_TEXT ("' for entity '"));
+ msg += ACE_TString (active_info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
symbol = (*func)(&gobbler); // target object created in the loaded DLL.
@@ -122,12 +122,12 @@ ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *,
delete stp;
// build the error message
- ACE_CString msg (ACE_TEXT ("Expecting Stream type in stream header"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (active_info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Expecting Stream type in stream header"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (active_info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
this->stream_svc_type_ =
@@ -160,12 +160,12 @@ ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *,
|| this->stream_->push (mt) == -1)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Error initializing module"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (active_info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Error initializing module"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (active_info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
@@ -192,12 +192,12 @@ ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *,
delete stype;
// build the error message
- ACE_CString msg (ACE_TEXT ("Failed to initialize dynamic service"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (active_info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Failed to initialize dynamic service"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (active_info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
}
this->parsed_info_.reset ();
@@ -228,12 +228,12 @@ ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *,
this->parsed_info_.init_params ()) == -1)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Failed to initialize static service"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (this->parsed_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Failed to initialize static service"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (this->parsed_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
}
this->parsed_info_.reset ();
@@ -268,7 +268,7 @@ ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *,
}
void
-ACEXML_Svcconf_Handler::endPrefixMapping (const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Svcconf_Handler::endPrefixMapping (const ACEXML_Char *)
{
// no-op
}
@@ -276,14 +276,14 @@ ACEXML_Svcconf_Handler::endPrefixMapping (const ACEXML_Char * ACEXML_ENV_ARG_DEC
void
ACEXML_Svcconf_Handler::ignorableWhitespace (const ACEXML_Char *,
int,
- int ACEXML_ENV_ARG_DECL_NOT_USED)
+ int)
{
// no-op
}
void
ACEXML_Svcconf_Handler::processingInstruction (const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// no-op
}
@@ -295,13 +295,13 @@ ACEXML_Svcconf_Handler::setDocumentLocator (ACEXML_Locator* locator)
}
void
-ACEXML_Svcconf_Handler::skippedEntity (const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Svcconf_Handler::skippedEntity (const ACEXML_Char *)
{
// no-op
}
void
-ACEXML_Svcconf_Handler::startDocument ( ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_Svcconf_Handler::startDocument (void)
{
// no-op
}
@@ -310,35 +310,35 @@ void
ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
const ACEXML_Char *,
const ACEXML_Char *qName,
- ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL)
+ ACEXML_Attributes *alist)
{
if (ACE_OS::strcmp (qName, ACE_TEXT ("dynamic")) == 0)
{
- this->get_dynamic_attrs (alist ACEXML_ENV_ARG_PARAMETER);
+ this->get_dynamic_attrs (alist);
}
else if (ACE_OS::strcmp (qName, ACE_TEXT ("initializer")) == 0)
{
- this->get_initializer_attrs (alist ACEXML_ENV_ARG_PARAMETER);
+ this->get_initializer_attrs (alist);
}
else if (ACE_OS::strcmp (qName, ACE_TEXT ("static")) == 0)
{
- this->get_static_attrs (alist ACEXML_ENV_ARG_PARAMETER);
+ this->get_static_attrs (alist);
}
else if (ACE_OS::strcmp (qName, ACE_TEXT ("stream")) == 0)
{
- this->get_stream_id (alist ACEXML_ENV_ARG_PARAMETER);
+ this->get_stream_id (alist);
if (ACE_Service_Repository::instance()->find
(this->stream_info_.name (),
(const ACE_Service_Type **) &this->stream_svc_type_) == -1)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Cannot find stream '"));
- msg += ACE_CString (ACE_TEXT (this->stream_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Cannot find stream '"));
+ msg += ACE_TString (this->stream_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
this->stream_ = this->stream_svc_type_ == 0
? 0
@@ -359,7 +359,7 @@ ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
}
else if (ACE_OS::strcmp (qName, ACE_TEXT ("resume")) == 0)
{
- this->get_id (alist ACEXML_ENV_ARG_PARAMETER);
+ this->get_id (alist);
if (this->in_module_)
{
// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Resume %s in stream %s\n"),
@@ -372,11 +372,11 @@ ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
if (mt == 0)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Can't locate module '"));
- msg += ACE_CString (ACE_TEXT (this->parsed_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Can't locate module '"));
+ msg += ACE_TString (this->parsed_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
mt->resume ();
@@ -388,19 +388,19 @@ ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
if (ACE_Service_Config::resume (this->parsed_info_.name ()) == -1)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Resume failed"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (this->parsed_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Resume failed"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (this->parsed_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
}
this->parsed_info_.reset ();
}
else if (ACE_OS::strcmp (qName, ACE_TEXT ("suspend")) == 0)
{
- this->get_id (alist ACEXML_ENV_ARG_PARAMETER);
+ this->get_id (alist);
if (this->in_module_)
{
// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Suspend %s in stream %s\n"),
@@ -413,11 +413,11 @@ ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
if (mt == 0)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Can't locate module '"));
- msg += ACE_CString (ACE_TEXT (this->parsed_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Can't locate module '"));
+ msg += ACE_TString (this->parsed_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
mt->suspend ();
@@ -429,19 +429,19 @@ ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
if (ACE_Service_Config::suspend (this->parsed_info_.name ()) == -1)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Suspend failed"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (this->parsed_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Suspend failed"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (this->parsed_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
}
this->parsed_info_.reset ();
}
else if (ACE_OS::strcmp (qName, ACE_TEXT ("remove")) == 0)
{
- this->get_id (alist ACEXML_ENV_ARG_PARAMETER);
+ this->get_id (alist);
if (this->in_module_)
{
// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Remove %s in stream %s\n"),
@@ -454,11 +454,11 @@ ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
if (mt == 0)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Can't locate module '"));
- msg += ACE_CString (ACE_TEXT (this->parsed_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Can't locate module '"));
+ msg += ACE_TString (this->parsed_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
this->stream_->remove (mt);
@@ -470,12 +470,12 @@ ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
if (ACE_Service_Config::remove (this->parsed_info_.name ()) == -1)
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Remove failed"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (this->parsed_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Remove failed"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (this->parsed_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW (ACEXML_SAXException (msg.c_str ()));
+ throw ACEXML_SAXException (msg.c_str ());
}
}
this->parsed_info_.reset ();
@@ -495,7 +495,7 @@ ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *,
void
ACEXML_Svcconf_Handler::startPrefixMapping (const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -505,7 +505,7 @@ ACEXML_Svcconf_Handler::startPrefixMapping (const ACEXML_Char *,
void
ACEXML_Svcconf_Handler::notationDecl (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -514,7 +514,7 @@ void
ACEXML_Svcconf_Handler::unparsedEntityDecl (const ACEXML_Char *,
const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -523,7 +523,7 @@ ACEXML_Svcconf_Handler::unparsedEntityDecl (const ACEXML_Char *,
ACEXML_InputSource *
ACEXML_Svcconf_Handler::resolveEntity (const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
return 0;
@@ -535,7 +535,7 @@ ACEXML_Svcconf_Handler::resolveEntity (const ACEXML_Char *,
* Receive notification of a recoverable error.
*/
void
-ACEXML_Svcconf_Handler::error (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Svcconf_Handler::error (ACEXML_SAXParseException& ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line :%d col: %d ", this->locator_->getSystemId(),
this->locator_->getLineNumber(),
@@ -544,7 +544,7 @@ ACEXML_Svcconf_Handler::error (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_
}
void
-ACEXML_Svcconf_Handler::fatalError (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Svcconf_Handler::fatalError (ACEXML_SAXParseException& ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line :%d col: %d ", this->locator_->getSystemId(),
this->locator_->getLineNumber(),
@@ -553,7 +553,7 @@ ACEXML_Svcconf_Handler::fatalError (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_
}
void
-ACEXML_Svcconf_Handler::warning (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Svcconf_Handler::warning (ACEXML_SAXParseException& ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line :%d col: %d ", this->locator_->getSystemId(),
this->locator_->getLineNumber(),
@@ -562,7 +562,7 @@ ACEXML_Svcconf_Handler::warning (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DEC
}
int
-ACEXML_Svcconf_Handler::get_stream_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL)
+ACEXML_Svcconf_Handler::get_stream_id (ACEXML_Attributes *alist)
{
if (alist != 0)
for (size_t i = 0; i < alist->getLength (); ++i)
@@ -574,21 +574,20 @@ ACEXML_Svcconf_Handler::get_stream_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_D
else
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Invalid stream attribute '"));
- msg += ACE_CString (ACE_TEXT (alist->getQName (i)));
- msg += ACE_CString (ACE_TEXT ("' for entity '"));
- msg += ACE_CString (ACE_TEXT (this->stream_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
-
- ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()),
- -1);
+ ACE_TString msg (ACE_TEXT ("Invalid stream attribute '"));
+ msg += ACE_TString (alist->getQName (i));
+ msg += ACE_TString (ACE_TEXT ("' for entity '"));
+ msg += ACE_TString (this->stream_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
+
+ throw ACEXML_SAXException (msg.c_str ());
}
}
return 0;
}
int
-ACEXML_Svcconf_Handler::get_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL)
+ACEXML_Svcconf_Handler::get_id (ACEXML_Attributes *alist)
{
if (alist != 0)
for (size_t i = 0; i < alist->getLength (); ++i)
@@ -600,22 +599,21 @@ ACEXML_Svcconf_Handler::get_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL)
else
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Invalid attribute '"));
- msg += ACE_CString (ACE_TEXT (alist->getQName (i)));
- msg += ACE_CString (ACE_TEXT ("', expecting 'id'"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (this->parsed_info_.name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
-
- ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()),
- -1);
+ ACE_TString msg (ACE_TEXT ("Invalid attribute '"));
+ msg += ACE_TString (alist->getQName (i));
+ msg += ACE_TString (ACE_TEXT ("', expecting 'id'"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (this->parsed_info_.name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
+
+ throw ACEXML_SAXException (msg.c_str ());
}
}
return 0;
}
int
-ACEXML_Svcconf_Handler::get_dynamic_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL)
+ACEXML_Svcconf_Handler::get_dynamic_attrs (ACEXML_Attributes *alist)
{
if (alist != 0)
{
@@ -641,15 +639,14 @@ ACEXML_Svcconf_Handler::get_dynamic_attrs (ACEXML_Attributes *alist ACEXML_ENV_A
else
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Invalid attribute value '"));
- msg += ACE_CString (ACE_TEXT (alist->getQName (i)));
- msg += ACE_CString (ACE_TEXT ("', expecting 'active' or 'inactive'"));
- msg += ACE_CString (ACE_TEXT (" for entity '"));
- msg += ACE_CString (ACE_TEXT (info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
-
- ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()),
- -1);
+ ACE_TString msg (ACE_TEXT ("Invalid attribute value '"));
+ msg += ACE_TString (alist->getQName (i));
+ msg += ACE_TString (ACE_TEXT ("', expecting 'active' or 'inactive'"));
+ msg += ACE_TString (ACE_TEXT (" for entity '"));
+ msg += ACE_TString (info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
+
+ throw ACEXML_SAXException (msg.c_str ());
}
}
else if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("type")) == 0)
@@ -669,26 +666,25 @@ ACEXML_Svcconf_Handler::get_dynamic_attrs (ACEXML_Attributes *alist ACEXML_ENV_A
else
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Invalid Service_Object attribute value'"));
- msg += ACE_CString (ACE_TEXT (alist->getQName (i)));
- msg += ACE_CString (ACE_TEXT ("' for entity '"));
- msg += ACE_CString (ACE_TEXT (info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
-
- ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()),
- -1);
+ ACE_TString msg (ACE_TEXT ("Invalid Service_Object attribute value'"));
+ msg += ACE_TString (alist->getQName (i));
+ msg += ACE_TString (ACE_TEXT ("' for entity '"));
+ msg += ACE_TString (info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
+
+ throw ACEXML_SAXException (msg.c_str ());
}
}
else
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Invalid attribute'"));
- msg += ACE_CString (ACE_TEXT (alist->getQName (i)));
- msg += ACE_CString (ACE_TEXT ("' for entity '"));
- msg += ACE_CString (ACE_TEXT (info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Invalid attribute'"));
+ msg += ACE_TString (alist->getQName (i));
+ msg += ACE_TString (ACE_TEXT ("' for entity '"));
+ msg += ACE_TString (info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()), -1);
+ throw ACEXML_SAXException (msg.c_str ());
}
}
}
@@ -696,7 +692,7 @@ ACEXML_Svcconf_Handler::get_dynamic_attrs (ACEXML_Attributes *alist ACEXML_ENV_A
}
int
-ACEXML_Svcconf_Handler::get_initializer_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL)
+ACEXML_Svcconf_Handler::get_initializer_attrs (ACEXML_Attributes *alist)
{
if (alist != 0)
{
@@ -720,13 +716,13 @@ ACEXML_Svcconf_Handler::get_initializer_attrs (ACEXML_Attributes *alist ACEXML_E
else
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Invalid initializer attribute'"));
- msg += ACE_CString (ACE_TEXT (alist->getQName (i)));
- msg += ACE_CString (ACE_TEXT ("' for entity '"));
- msg += ACE_CString (ACE_TEXT (info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Invalid initializer attribute'"));
+ msg += ACE_TString (alist->getQName (i));
+ msg += ACE_TString (ACE_TEXT ("' for entity '"));
+ msg += ACE_TString (info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()), -1);
+ throw ACEXML_SAXException (msg.c_str ());
}
}
}
@@ -734,7 +730,7 @@ ACEXML_Svcconf_Handler::get_initializer_attrs (ACEXML_Attributes *alist ACEXML_E
}
int
-ACEXML_Svcconf_Handler::get_static_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL)
+ACEXML_Svcconf_Handler::get_static_attrs (ACEXML_Attributes *alist)
{
if (alist != 0)
{
@@ -754,13 +750,13 @@ ACEXML_Svcconf_Handler::get_static_attrs (ACEXML_Attributes *alist ACEXML_ENV_AR
else
{
// build the error message
- ACE_CString msg (ACE_TEXT ("Invalid static attribute '"));
- msg += ACE_CString (ACE_TEXT (alist->getQName (i)));
- msg += ACE_CString (ACE_TEXT ("' for entity '"));
- msg += ACE_CString (ACE_TEXT (info->name ()));
- msg += ACE_CString (ACE_TEXT ("'\n"));
+ ACE_TString msg (ACE_TEXT ("Invalid static attribute '"));
+ msg += ACE_TString (alist->getQName (i));
+ msg += ACE_TString (ACE_TEXT ("' for entity '"));
+ msg += ACE_TString (info->name ());
+ msg += ACE_TString (ACE_TEXT ("'\n"));
- ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()), -1);
+ throw ACEXML_SAXException (msg.c_str ());
}
}
}
diff --git a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.h b/ACE/ACEXML/apps/svcconf/Svcconf_Handler.h
index b15e20d7426..ebf4af74445 100644
--- a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.h
+++ b/ACE/ACEXML/apps/svcconf/Svcconf_Handler.h
@@ -102,43 +102,37 @@ public:
*/
virtual void characters (const ACEXML_Char *ch,
int start,
- int length ACEXML_ENV_ARG_DECL)
- ;
+ int length);
/*
* Receive notification of the end of a document.
*/
- virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL)
- ;
+ virtual void endDocument (void);
/*
* Receive notification of the end of an element.
*/
virtual void endElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *qName);
/*
* End the scope of a prefix-URI mapping.
*/
- virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL)
- ;
+ virtual void endPrefixMapping (const ACEXML_Char *prefix);
/*
* Receive notification of ignorable whitespace in element content.
*/
virtual void ignorableWhitespace (const ACEXML_Char *ch,
int start,
- int length ACEXML_ENV_ARG_DECL)
- ;
+ int length);
/*
* Receive notification of a processing instruction.
*/
virtual void processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *data);
/*
* Receive an object for locating the origin of SAX document events.
@@ -148,13 +142,12 @@ public:
/*
* Receive notification of a skipped entity.
*/
- virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
- ;
+ virtual void skippedEntity (const ACEXML_Char *name);
/*
* Receive notification of the beginning of a document.
*/
- virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL)
+ virtual void startDocument (void)
;
/*
@@ -163,15 +156,13 @@ public:
virtual void startElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName,
- ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL)
- ;
+ ACEXML_Attributes *atts);
/*
* Begin the scope of a prefix-URI Namespace mapping.
*/
virtual void startPrefixMapping (const ACEXML_Char *prefix,
- const ACEXML_Char *uri ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *uri);
// *** Methods inherit from ACEXML_DTDHandler.
@@ -180,8 +171,7 @@ public:
*/
virtual void notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *systemId);
/*
* Receive notification of an unparsed entity declaration event.
@@ -189,8 +179,7 @@ public:
virtual void unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *notationName);
// Methods inherit from ACEXML_EnitityResolver.
@@ -198,54 +187,50 @@ public:
* Allow the application to resolve external entities.
*/
virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *systemId);
// Methods inherit from ACEXML_ErrorHandler.
/*
* Receive notification of a recoverable error.
*/
- virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void error (ACEXML_SAXParseException &exception);
/*
* Receive notification of a non-recoverable error.
*/
- virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void fatalError (ACEXML_SAXParseException &exception);
/*
* Receive notification of a warning.
*/
- virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void warning (ACEXML_SAXParseException &exception);
protected:
/**
* Get the only attribute in <stream> or <streamdef>.
*/
- int get_stream_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL);
+ int get_stream_id (ACEXML_Attributes *alist);
/**
* Get the only attribute in <resume>, <suspend>, <remove>
*/
- int get_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL);
+ int get_id (ACEXML_Attributes *alist);
/**
* Get the dynamic tag attributes.
*/
- int get_dynamic_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL);
+ int get_dynamic_attrs (ACEXML_Attributes *alist);
/**
* Get the initializer tag attributes.
*/
- int get_initializer_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL);
+ int get_initializer_attrs (ACEXML_Attributes *alist);
/**
* Get the static tag attributes.
*/
- int get_static_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL);
+ int get_static_attrs (ACEXML_Attributes *alist);
private:
/// We are parsing a stream definition
diff --git a/ACE/ACEXML/apps/svcconf/svcconf.mpc b/ACE/ACEXML/apps/svcconf/svcconf.mpc
index 9f5ce8f091b..7b0e2c21a5c 100644
--- a/ACE/ACEXML/apps/svcconf/svcconf.mpc
+++ b/ACE/ACEXML/apps/svcconf/svcconf.mpc
@@ -3,4 +3,9 @@
project(ACEXML_XML_Svc_Conf_Parser): ace_output, acelib, acexml, install {
sharedname = ACEXML_XML_Svc_Conf_Parser
+
+ specific {
+ install_dir = ACEXML/apps/svcconf
+ }
+
}
diff --git a/ACE/ACEXML/common/Attributes.cpp b/ACE/ACEXML/common/Attributes.cpp
index 3f7c758ce8f..29e2fb53c4a 100644
--- a/ACE/ACEXML/common/Attributes.cpp
+++ b/ACE/ACEXML/common/Attributes.cpp
@@ -1,10 +1,6 @@
-#include "Attributes.h"
-
-
-ACE_RCSID (common,
- Attributes,
- "$Id$")
+// $Id$
+#include "Attributes.h"
ACEXML_Attributes::~ACEXML_Attributes (void)
{
diff --git a/ACE/ACEXML/common/Attributes_Def_Builder.h b/ACE/ACEXML/common/Attributes_Def_Builder.h
index c91025cd33d..a9986ff754b 100644
--- a/ACE/ACEXML/common/Attributes_Def_Builder.h
+++ b/ACE/ACEXML/common/Attributes_Def_Builder.h
@@ -20,7 +20,6 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ACEXML/common/XML_Types.h"
-#include "ACEXML/common/Env.h"
#include "ACEXML/common/SAXExceptions.h"
#include "ace/Auto_Ptr.h"
@@ -75,21 +74,18 @@ public:
/**
* Set the attribute type.
*/
- virtual int setAttType (const ATT_TYPE type ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual int setAttType (const ATT_TYPE type) = 0;
/**
* Insert an element for NOTATION or ENUMERATION type attribute.
*/
- virtual int insertList (const ACEXML_Char *Name ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual int insertList (const ACEXML_Char *Name) = 0;
/**
* Set default attribute declaration.
*/
virtual int setDefault (const DEFAULT_DECL def,
- const ACEXML_Char *value ACEXML_ENV_ARG_DECL)
- = 0;
+ const ACEXML_Char *value) = 0;
/**
* Check validity of the current attribute definition being built.
@@ -128,18 +124,17 @@ public:
*/
virtual int setElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- = 0;
+ const ACEXML_Char *qName) = 0;
/**
* Acquire an Attribute_Builder.
*/
- virtual ACEXML_Attribute_Def_Builder *getAttribute_Def_Builder () = 0;
+ virtual ACEXML_Attribute_Def_Builder *getAttribute_Def_Builder (void) = 0;
/**
* Add a definition for one attribute.
*/
- virtual int insertAttribute (ACEXML_Attribute_Def_Builder *def ACEXML_ENV_ARG_DECL) = 0;
+ virtual int insertAttribute (ACEXML_Attribute_Def_Builder *def) = 0;
/**
diff --git a/ACE/ACEXML/common/CharStream.h b/ACE/ACEXML/common/CharStream.h
index e0355d4721a..6c687e91e7c 100644
--- a/ACE/ACEXML/common/CharStream.h
+++ b/ACE/ACEXML/common/CharStream.h
@@ -35,7 +35,7 @@ public:
/**
* Virtual destructor, must have.
*/
- virtual ~ACEXML_CharStream () = 0;
+ virtual ~ACEXML_CharStream (void) = 0;
/**
* Returns the available ACEXML_Char in the buffer. -1
diff --git a/ACE/ACEXML/common/ContentHandler.cpp b/ACE/ACEXML/common/ContentHandler.cpp
index 633342fd6b1..b7850142c7c 100644
--- a/ACE/ACEXML/common/ContentHandler.cpp
+++ b/ACE/ACEXML/common/ContentHandler.cpp
@@ -1,10 +1,6 @@
-#include "ContentHandler.h"
-
-
-ACE_RCSID (common,
- ContentHandler,
- "$Id$")
+// $Id$
+#include "ContentHandler.h"
ACEXML_ContentHandler::~ACEXML_ContentHandler (void)
{
diff --git a/ACE/ACEXML/common/ContentHandler.h b/ACE/ACEXML/common/ContentHandler.h
index 006eb4ded37..d26cfb22295 100644
--- a/ACE/ACEXML/common/ContentHandler.h
+++ b/ACE/ACEXML/common/ContentHandler.h
@@ -19,7 +19,6 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ACEXML/common/Env.h"
#include "ACEXML/common/SAXExceptions.h"
#include "ACEXML/common/Locator.h"
#include "ACEXML/common/Attributes.h"
@@ -53,44 +52,37 @@ public:
*/
virtual void characters (const ACEXML_Char *ch,
size_t start,
- size_t length
- ACEXML_ENV_ARG_DECL)
- = 0;
+ size_t length) = 0;
/**
* Receive notification of the end of a document.
*/
- virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL)
- = 0;
+ virtual void endDocument (void) = 0;
/**
* Receive notification of the end of an element.
*/
virtual void endElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- = 0;
+ const ACEXML_Char *qName) = 0;
/**
* End the scope of a prefix-URI mapping.
*/
- virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void endPrefixMapping (const ACEXML_Char *prefix) = 0;
/**
* Receive notification of ignorable whitespace in element content.
*/
virtual void ignorableWhitespace (const ACEXML_Char *ch,
int start,
- int length ACEXML_ENV_ARG_DECL)
- = 0;
+ int length) = 0;
/**
* Receive notification of a processing instruction.
*/
virtual void processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data ACEXML_ENV_ARG_DECL)
- = 0;
+ const ACEXML_Char *data) = 0;
/**
* Receive an object for locating the origin of SAX document events.
@@ -100,14 +92,12 @@ public:
/**
* Receive notification of a skipped entity.
*/
- virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void skippedEntity (const ACEXML_Char *name) = 0;
/**
* Receive notification of the beginning of a document.
*/
- virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL)
- = 0;
+ virtual void startDocument (void) = 0;
/**
* Receive notification of the beginning of an element.
@@ -115,15 +105,13 @@ public:
virtual void startElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName,
- ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL)
- = 0;
+ ACEXML_Attributes *atts) = 0;
/**
* Begin the scope of a prefix-URI Namespace mapping.
*/
virtual void startPrefixMapping (const ACEXML_Char *prefix,
- const ACEXML_Char *uri ACEXML_ENV_ARG_DECL)
- = 0;
+ const ACEXML_Char *uri) = 0;
};
#include /**/ "ace/post.h"
diff --git a/ACE/ACEXML/common/DTDHandler.cpp b/ACE/ACEXML/common/DTDHandler.cpp
index 199f469b578..1e76ac5240e 100644
--- a/ACE/ACEXML/common/DTDHandler.cpp
+++ b/ACE/ACEXML/common/DTDHandler.cpp
@@ -1,10 +1,6 @@
-#include "DTDHandler.h"
-
-
-ACE_RCSID (common,
- DTDHandler,
- "$Id$")
+// $Id$
+#include "DTDHandler.h"
ACEXML_DTDHandler::~ACEXML_DTDHandler (void)
{
diff --git a/ACE/ACEXML/common/DTDHandler.h b/ACE/ACEXML/common/DTDHandler.h
index 18800a43a2e..155b8c40f07 100644
--- a/ACE/ACEXML/common/DTDHandler.h
+++ b/ACE/ACEXML/common/DTDHandler.h
@@ -19,7 +19,6 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ACEXML/common/Env.h"
#include "ACEXML/common/SAXExceptions.h"
/**
@@ -59,7 +58,7 @@ public:
*/
virtual void notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *systemId)
= 0;
/**
@@ -68,8 +67,7 @@ public:
virtual void unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL)
- = 0;
+ const ACEXML_Char *notationName) = 0;
};
diff --git a/ACE/ACEXML/common/DTD_Manager.h b/ACE/ACEXML/common/DTD_Manager.h
index 51ab3791551..2b4130eb298 100644
--- a/ACE/ACEXML/common/DTD_Manager.h
+++ b/ACE/ACEXML/common/DTD_Manager.h
@@ -50,7 +50,7 @@ public:
*
* @retval 0 if success, -1 if error.
*/
- virtual int insertElement_Definition (ACEXML_Element_Def_Builder *def ACEXML_ENV_ARG_DECL) = 0;
+ virtual int insertElement_Definition (ACEXML_Element_Def_Builder *def) = 0;
/**
* Acquire a pointer to an attributes definition builder.
@@ -63,7 +63,7 @@ public:
*
* @retval 0 if success, -1 otherwise.
*/
- virtual int insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def ACEXML_ENV_ARG_DECL) = 0;
+ virtual int insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def) = 0;
/**
* Acquire an element validator to validate an XML element.
@@ -73,7 +73,7 @@ public:
*/
virtual ACEXML_Validator *getValidator (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) = 0;
+ const ACEXML_Char *qName) = 0;
};
diff --git a/ACE/ACEXML/common/DefaultHandler.cpp b/ACE/ACEXML/common/DefaultHandler.cpp
index 02e7fd86126..1c4a0a32ab2 100644
--- a/ACE/ACEXML/common/DefaultHandler.cpp
+++ b/ACE/ACEXML/common/DefaultHandler.cpp
@@ -15,14 +15,13 @@ ACEXML_DefaultHandler::~ACEXML_DefaultHandler (void)
void
ACEXML_DefaultHandler::characters (const ACEXML_Char *,
size_t,
- size_t
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ size_t)
{
// No-op.
}
void
-ACEXML_DefaultHandler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_DefaultHandler::endDocument (void)
{
// No-op.
}
@@ -30,13 +29,13 @@ ACEXML_DefaultHandler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
void
ACEXML_DefaultHandler::endElement (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
void
-ACEXML_DefaultHandler::endPrefixMapping (const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_DefaultHandler::endPrefixMapping (const ACEXML_Char *)
{
// No-op.
}
@@ -44,14 +43,14 @@ ACEXML_DefaultHandler::endPrefixMapping (const ACEXML_Char * ACEXML_ENV_ARG_DECL
void
ACEXML_DefaultHandler::ignorableWhitespace (const ACEXML_Char *,
int,
- int ACEXML_ENV_ARG_DECL_NOT_USED)
+ int)
{
// No-op.
}
void
ACEXML_DefaultHandler::processingInstruction (const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -63,13 +62,13 @@ ACEXML_DefaultHandler::setDocumentLocator (ACEXML_Locator * )
}
void
-ACEXML_DefaultHandler::skippedEntity (const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_DefaultHandler::skippedEntity (const ACEXML_Char *)
{
// No-op.
}
void
-ACEXML_DefaultHandler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_DefaultHandler::startDocument (void)
{
// No-op.
}
@@ -78,14 +77,14 @@ void
ACEXML_DefaultHandler::startElement (const ACEXML_Char *,
const ACEXML_Char *,
const ACEXML_Char *,
- ACEXML_Attributes * ACEXML_ENV_ARG_DECL_NOT_USED)
+ ACEXML_Attributes *)
{
// No-op.
}
void
ACEXML_DefaultHandler::startPrefixMapping (const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -95,7 +94,7 @@ ACEXML_DefaultHandler::startPrefixMapping (const ACEXML_Char *,
void
ACEXML_DefaultHandler::notationDecl (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -104,7 +103,7 @@ void
ACEXML_DefaultHandler::unparsedEntityDecl (const ACEXML_Char *,
const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -113,7 +112,7 @@ ACEXML_DefaultHandler::unparsedEntityDecl (const ACEXML_Char *,
ACEXML_InputSource *
ACEXML_DefaultHandler::resolveEntity (const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char * )
{
// No-op.
return 0;
@@ -125,19 +124,19 @@ ACEXML_DefaultHandler::resolveEntity (const ACEXML_Char *,
* Receive notification of a recoverable error.
*/
void
-ACEXML_DefaultHandler::error (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_DefaultHandler::error (ACEXML_SAXParseException &)
{
// No-op.
}
void
-ACEXML_DefaultHandler::fatalError (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_DefaultHandler::fatalError (ACEXML_SAXParseException &)
{
// No-op.
}
void
-ACEXML_DefaultHandler::warning (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_DefaultHandler::warning (ACEXML_SAXParseException &)
{
// No-op.
}
diff --git a/ACE/ACEXML/common/DefaultHandler.h b/ACE/ACEXML/common/DefaultHandler.h
index a729778201c..7b3d6cc7a92 100644
--- a/ACE/ACEXML/common/DefaultHandler.h
+++ b/ACE/ACEXML/common/DefaultHandler.h
@@ -66,38 +66,37 @@ public:
*/
virtual void characters (const ACEXML_Char *ch,
size_t start,
- size_t length
- ACEXML_ENV_ARG_DECL);
+ size_t length);
/*
* Receive notification of the end of a document.
*/
- virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL);
+ virtual void endDocument (void);
/*
* Receive notification of the end of an element.
*/
virtual void endElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *qName);
/*
* End the scope of a prefix-URI mapping.
*/
- virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL);
+ virtual void endPrefixMapping (const ACEXML_Char *prefix);
/*
* Receive notification of ignorable whitespace in element content.
*/
virtual void ignorableWhitespace (const ACEXML_Char *ch,
int start,
- int length ACEXML_ENV_ARG_DECL);
+ int length);
/*
* Receive notification of a processing instruction.
*/
virtual void processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *data);
/*
* Receive an object for locating the origin of SAX document events.
@@ -107,12 +106,12 @@ public:
/*
* Receive notification of a skipped entity.
*/
- virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL);
+ virtual void skippedEntity (const ACEXML_Char *name);
/*
* Receive notification of the beginning of a document.
*/
- virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL);
+ virtual void startDocument (void);
/*
* Receive notification of the beginning of an element.
@@ -120,13 +119,13 @@ public:
virtual void startElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName,
- ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL);
+ ACEXML_Attributes *atts);
/*
* Begin the scope of a prefix-URI Namespace mapping.
*/
virtual void startPrefixMapping (const ACEXML_Char *prefix,
- const ACEXML_Char *uri ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *uri);
// *** Methods inherit from ACEXML_DTDHandler.
@@ -135,7 +134,7 @@ public:
*/
virtual void notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *systemId);
/*
* Receive notification of an unparsed entity declaration event.
@@ -143,7 +142,7 @@ public:
virtual void unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *notationName);
// Methods inherit from ACEXML_EnitityResolver.
@@ -151,24 +150,24 @@ public:
* Allow the application to resolve external entities.
*/
virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *systemId);
// Methods inherit from ACEXML_ErrorHandler.
/*
* Receive notification of a recoverable error.
*/
- virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL);
+ virtual void error (ACEXML_SAXParseException &exception);
/*
* Receive notification of a non-recoverable error.
*/
- virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL);
+ virtual void fatalError (ACEXML_SAXParseException &exception);
/*
* Receive notification of a warning.
*/
- virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL);
+ virtual void warning (ACEXML_SAXParseException &exception);
};
#include /**/ "ace/post.h"
diff --git a/ACE/ACEXML/common/Element_Def_Builder.h b/ACE/ACEXML/common/Element_Def_Builder.h
index ace842fb17c..fa50437b2b4 100644
--- a/ACE/ACEXML/common/Element_Def_Builder.h
+++ b/ACE/ACEXML/common/Element_Def_Builder.h
@@ -18,9 +18,9 @@
#if !defined (ACE_LACKS_PRAGMA_ONCE)
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+
#include "ace/Auto_Ptr.h"
#include "ACEXML/common/XML_Types.h"
-#include "ACEXML/common/Env.h"
#include "ACEXML/common/SAXExceptions.h"
/**
@@ -62,7 +62,7 @@ public:
*/
virtual int setElementName (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *qName)
= 0;
/**
@@ -70,7 +70,7 @@ public:
*
* @retval 0 if valid, -1 otherwise.
*/
- virtual int setContentType (CONTENT_TYPE type ACEXML_ENV_ARG_DECL)
+ virtual int setContentType (CONTENT_TYPE type)
= 0;
/**
@@ -78,7 +78,7 @@ public:
*/
virtual int insertMixedElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *qName)
= 0;
/**
@@ -91,7 +91,7 @@ public:
*
* @retval 0 on success.
*/
- virtual int endChildGroup (CARDINALITY card ACEXML_ENV_ARG_DECL) = 0;
+ virtual int endChildGroup (CARDINALITY card) = 0;
/**
* Set the type of current child group to Choice.
@@ -118,7 +118,7 @@ public:
*/
virtual int insertElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *qName)
= 0;
/**
diff --git a/ACE/ACEXML/common/EntityResolver.cpp b/ACE/ACEXML/common/EntityResolver.cpp
index bcd08c1af70..431f8d331e6 100644
--- a/ACE/ACEXML/common/EntityResolver.cpp
+++ b/ACE/ACEXML/common/EntityResolver.cpp
@@ -1,10 +1,6 @@
-#include "EntityResolver.h"
-
-
-ACE_RCSID (common,
- EntityResolver,
- "$Id$")
+// $Id$
+#include "EntityResolver.h"
ACEXML_EntityResolver::~ACEXML_EntityResolver (void)
{
diff --git a/ACE/ACEXML/common/EntityResolver.h b/ACE/ACEXML/common/EntityResolver.h
index c1934724bad..c18708b029a 100644
--- a/ACE/ACEXML/common/EntityResolver.h
+++ b/ACE/ACEXML/common/EntityResolver.h
@@ -19,7 +19,6 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ACEXML/common/Env.h"
#include "ACEXML/common/InputSource.h"
#include "ACEXML/common/SAXExceptions.h"
@@ -51,8 +50,7 @@ public:
* Allow the application to resolve external entities.
*/
virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- = 0;
+ const ACEXML_Char *systemId) = 0;
};
diff --git a/ACE/ACEXML/common/Env.cpp b/ACE/ACEXML/common/Env.cpp
deleted file mode 100644
index e5014a06714..00000000000
--- a/ACE/ACEXML/common/Env.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// -*- C++ -*- $Id$
-
-#include "ACEXML/common/Env.h"
-
-#if !defined (__ACEXML_INLINE__)
-# include "ACEXML/common/Env.inl"
-#endif /* __ACEXML_INLINE__ */
-
-ACEXML_Env::ACEXML_Env (void)
- : exception_ (0)
-{
-}
-
-ACEXML_Env::ACEXML_Env (const ACEXML_Env &rhs)
- : exception_ (0)
-{
- if (rhs.exception())
- this->exception_ = rhs.exception_->duplicate();
-}
-
-ACEXML_Env&
-ACEXML_Env::operator= (const ACEXML_Env& rhs)
-{
- ACEXML_Env tmp (rhs);
- ACEXML_Exception* tmp_ex = this->exception_;
- this->exception_ = tmp.exception_;
- tmp.exception_ = tmp_ex;
- return *this;
-}
-
-ACEXML_Env::~ACEXML_Env (void)
-{
- this->clear();
-}
diff --git a/ACE/ACEXML/common/Env.h b/ACE/ACEXML/common/Env.h
deleted file mode 100644
index ee8aa59768d..00000000000
--- a/ACE/ACEXML/common/Env.h
+++ /dev/null
@@ -1,72 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Env.h
- *
- * $Id$
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef _ACEXML_ENV_H_
-#define _ACEXML_ENV_H_
-
-#include /**/ "ace/pre.h"
-#include "ACEXML/common/ACEXML_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ACEXML/common/XML_Macros.h"
-#include "ACEXML/common/Exception.h"
-
-/**
- * @class ACEXML_Env Env.h "ACEXML/common/Env.h"
- *
- * @brief ACEXML_Env
- *
- * ACEXML_Env is modeled after CORBA_Environment class. It provides a place
- * holder for callees to propagate exceptions back to callers. ACEXML does
- * not support native exceptions at this moment.
- *
- * @sa ACEXML_Exception
- */
-class ACEXML_Export ACEXML_Env
-{
-public:
- /// Default constructor.
- ACEXML_Env (void);
-
- /// Copy constructor.
- ACEXML_Env (const ACEXML_Env& ACEXML_TRY_ENV);
-
- /// Assignment
- ACEXML_Env& operator= (const ACEXML_Env& ACEXML_TRY_ENV);
-
- /// Destructor.
- ~ACEXML_Env (void);
-
- /// Return the contained exception.
- ACEXML_Exception *exception (void) const;
-
- /// Set the contained exception to @arg ex
- void exception (ACEXML_Exception* ex);
-
- /// Clear the exception and reset the evnrionment.
- void clear (void);
-
-private:
- /// Place holder for exception (if one occurs.)
- ACEXML_Exception *exception_;
-};
-
-#if defined (__ACEXML_INLINE__)
-# include "ACEXML/common/Env.inl"
-#endif /* __ACEXML_INLINE__ */
-
-#include /**/ "ace/post.h"
-
-#endif /* _ACEXML_ENV_H_ */
diff --git a/ACE/ACEXML/common/Env.inl b/ACE/ACEXML/common/Env.inl
deleted file mode 100644
index 95c3f41c8aa..00000000000
--- a/ACE/ACEXML/common/Env.inl
+++ /dev/null
@@ -1,25 +0,0 @@
-// -*- C++ -*- $Id$
-
-#include "ace/Log_Msg.h" /* to get ACE_ASSERT */
-#include "ACEXML/common/Exception.h"
-
-ACEXML_INLINE ACEXML_Exception *
-ACEXML_Env::exception (void) const
-{
- return this->exception_;
-}
-
-ACEXML_INLINE void
-ACEXML_Env::exception (ACEXML_Exception *ex)
-{
- ACE_ASSERT (ex != this->exception_);
- this->clear();
- this->exception_ = ex;
-}
-
-ACEXML_INLINE void
-ACEXML_Env::clear (void)
-{
- delete this->exception_;
- this->exception_ = 0;
-}
diff --git a/ACE/ACEXML/common/ErrorHandler.cpp b/ACE/ACEXML/common/ErrorHandler.cpp
index 42d9552d859..de63e6d9152 100644
--- a/ACE/ACEXML/common/ErrorHandler.cpp
+++ b/ACE/ACEXML/common/ErrorHandler.cpp
@@ -1,10 +1,6 @@
-#include "ErrorHandler.h"
-
-
-ACE_RCSID (common,
- ErrorHandler,
- "$Id$")
+// $Id$
+#include "ErrorHandler.h"
ACEXML_ErrorHandler::~ACEXML_ErrorHandler (void)
{
diff --git a/ACE/ACEXML/common/ErrorHandler.h b/ACE/ACEXML/common/ErrorHandler.h
index 4d8da5cc4a4..5ba981bbcb4 100644
--- a/ACE/ACEXML/common/ErrorHandler.h
+++ b/ACE/ACEXML/common/ErrorHandler.h
@@ -19,7 +19,6 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ACEXML/common/Env.h"
#include "ACEXML/common/SAXExceptions.h"
/**
@@ -53,20 +52,17 @@ public:
/**
* Receive notification of a recoverable error.
*/
- virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void error (ACEXML_SAXParseException &exception) = 0;
/**
* Receive notification of a non-recoverable error.
*/
- virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void fatalError (ACEXML_SAXParseException &exception) = 0;
/**
* Receive notification of a warning.
*/
- virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void warning (ACEXML_SAXParseException &exception) = 0;
};
diff --git a/ACE/ACEXML/common/Exception.h b/ACE/ACEXML/common/Exception.h
index 48572e24c73..56ba88f1566 100644
--- a/ACE/ACEXML/common/Exception.h
+++ b/ACE/ACEXML/common/Exception.h
@@ -21,14 +21,6 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ACEXML/common/XML_Types.h"
-#include "ACEXML/common/XML_Macros.h"
-
-#if defined (ACE_USES_NATIVE_EXCEPTIONS)
-# define ACEXML_RAISE(EXCEPTION) throw EXCEPTION
-#else
-# define ACEXML_RAISE(EXCEPTION)
-#endif
-
/**
* @class ACEXML_Exception Exception.h "ACEXML/common/Exception.h"
diff --git a/ACE/ACEXML/common/HttpCharStream.cpp b/ACE/ACEXML/common/HttpCharStream.cpp
index b22d5a77a5f..c3a3dadb36f 100644
--- a/ACE/ACEXML/common/HttpCharStream.cpp
+++ b/ACE/ACEXML/common/HttpCharStream.cpp
@@ -8,7 +8,7 @@
#include "ACEXML/common/HttpCharStream.h"
#include "ACEXML/common/Encoding.h"
-ACE_RCSID (common, HttpCharStream, "$Id$")
+
/* Header FSM states. */
static const int HDST_LINE1_PROTOCOL = 0;
@@ -123,7 +123,7 @@ ACEXML_HttpCharStream::get_url (size_t& len)
size_t b = 0;
char const * buf = 0;
size_t buflen = BUFSIZ;
-
+
for (;;)
{
buf = this->stream_->recv (buflen);
@@ -232,12 +232,12 @@ ACEXML_HttpCharStream::get_url (size_t& len)
}
}
end_of_headers:
-
+
if (b == 0)
{
return -1;
}
-
+
++b;
// Store the address of the beginning of data. We will use it to seek to
// beginning of the data in the URL.
@@ -257,7 +257,7 @@ ACEXML_HttpCharStream::get_url (size_t& len)
this->data_offset_ =
ACE_Utils::truncate_cast<ACE_OFF_T> (data_beg - this->stream_->recv());
-
+
// Forward to the beginning of data.
if (this->stream_->seek (this->data_offset_, SEEK_SET) == -1)
{
@@ -343,7 +343,7 @@ ACEXML_HttpCharStream::determine_encoding (void)
char input[] = {0, 0, 0, 0};
size_t const len = sizeof (input) / sizeof (input[0]);
-
+
size_t i = 0;
for (; i < len && input[i] != static_cast<char> (EOF); ++i)
input[i] = this->stream_->peek_char (i);
diff --git a/ACE/ACEXML/common/Locator.cpp b/ACE/ACEXML/common/Locator.cpp
index 5de6d3a1516..2a942f1c997 100644
--- a/ACE/ACEXML/common/Locator.cpp
+++ b/ACE/ACEXML/common/Locator.cpp
@@ -1,10 +1,6 @@
-#include "Locator.h"
-
-
-ACE_RCSID (common,
- Locator,
- "$Id$")
+// $Id$
+#include "Locator.h"
ACEXML_Locator::~ACEXML_Locator (void)
{
diff --git a/ACE/ACEXML/common/Makefile.am b/ACE/ACEXML/common/Makefile.am
index f08574ae905..9b6a2200f8c 100644
--- a/ACE/ACEXML/common/Makefile.am
+++ b/ACE/ACEXML/common/Makefile.am
@@ -46,7 +46,6 @@ libACEXML_la_SOURCES = \
Element_Def_Builder.cpp \
Encoding.cpp \
EntityResolver.cpp \
- Env.cpp \
ErrorHandler.cpp \
Exception.cpp \
FileCharStream.cpp \
@@ -104,8 +103,6 @@ nobase_include_HEADERS = \
Element_Def_Builder.h \
Encoding.h \
EntityResolver.h \
- Env.h \
- Env.inl \
ErrorHandler.h \
Exception.h \
Exception.inl \
@@ -130,7 +127,6 @@ nobase_include_HEADERS = \
XMLFilterImpl.inl \
XMLReader.h \
XML_Codecs.h \
- XML_Macros.h \
XML_Types.h \
XML_Util.h \
ZipCharStream.h
diff --git a/ACE/ACEXML/common/Mem_Map_Stream.cpp b/ACE/ACEXML/common/Mem_Map_Stream.cpp
index 88097561aea..4ce9b5b6e5c 100644
--- a/ACE/ACEXML/common/Mem_Map_Stream.cpp
+++ b/ACE/ACEXML/common/Mem_Map_Stream.cpp
@@ -4,7 +4,7 @@
#include "ace/OS_NS_unistd.h"
#include "ACEXML/common/Mem_Map_Stream.h"
-ACE_RCSID(common, Mem_Map_Stream, "$Id$")
+
ACEXML_Mem_Map_Stream::ACEXML_Mem_Map_Stream (void)
: svc_handler_ (0)
@@ -124,7 +124,7 @@ ACEXML_Mem_Map_Stream::seek (ACE_OFF_T offset, int whence)
this->get_pos_ = this->end_of_mapping_plus1_;
this->recv_pos_ = this->get_pos_;
-
+
return
ACE_Utils::truncate_cast<ACE_OFF_T> (
this->recv_pos_ - reinterpret_cast<char *> (this->mem_map_.addr ()));
diff --git a/ACE/ACEXML/common/NamespaceSupport.cpp b/ACE/ACEXML/common/NamespaceSupport.cpp
index 194b805c882..d8b9b27ae6a 100644
--- a/ACE/ACEXML/common/NamespaceSupport.cpp
+++ b/ACE/ACEXML/common/NamespaceSupport.cpp
@@ -225,7 +225,7 @@ ACEXML_NamespaceSupport::processName (const ACEXML_Char *qName,
return 0;
}
- ACEXML_NS_CONTEXT_ENTRY *entry;
+ ACEXML_NS_CONTEXT_ENTRY *entry = 0;
if (this->effective_context_->find (prefix, entry) == 0)
uri = entry->int_id_.c_str ();
diff --git a/ACE/ACEXML/common/SAXExceptions.inl b/ACE/ACEXML/common/SAXExceptions.inl
index f184fcf077c..8145b2d7ed4 100644
--- a/ACE/ACEXML/common/SAXExceptions.inl
+++ b/ACE/ACEXML/common/SAXExceptions.inl
@@ -11,25 +11,25 @@ ACEXML_SAXException::message (void) const
ACEXML_INLINE void
ACEXML_SAXException::_raise (void)
{
- ACEXML_RAISE (*this);
+ throw *this;
}
ACEXML_INLINE void
ACEXML_SAXNotSupportedException::_raise (void)
{
- ACEXML_RAISE (*this);
+ throw *this;
}
ACEXML_INLINE void
ACEXML_SAXNotRecognizedException::_raise (void)
{
- ACEXML_RAISE (*this);
+ throw *this;
}
ACEXML_INLINE void
ACEXML_SAXParseException::_raise (void)
{
- ACEXML_RAISE (*this);
+ throw *this;
}
ACEXML_INLINE const ACEXML_Char *
diff --git a/ACE/ACEXML/common/StreamFactory.cpp b/ACE/ACEXML/common/StreamFactory.cpp
index 7cee4c1a65f..a32c80391c9 100644
--- a/ACE/ACEXML/common/StreamFactory.cpp
+++ b/ACE/ACEXML/common/StreamFactory.cpp
@@ -10,7 +10,7 @@
#include "ACEXML/common/ZipCharStream.h"
#endif /* USE_ZZIP */
-ACE_RCSID (common, StreamFactory, "$Id$")
+
ACEXML_CharStream*
ACEXML_StreamFactory::create_stream (const ACEXML_Char* uri)
diff --git a/ACE/ACEXML/common/Transcode.cpp b/ACE/ACEXML/common/Transcode.cpp
index 5cad39f48d5..cdf89019a62 100644
--- a/ACE/ACEXML/common/Transcode.cpp
+++ b/ACE/ACEXML/common/Transcode.cpp
@@ -233,7 +233,7 @@ ACEXML_Transcoder::utf162ucs4 (const ACEXML_UTF16 *src,
{
return ACEXML_END_OF_SOURCE;
}
-
+
return ACEXML_Transcoder::surrogate2ucs4 (*src,
*(src+1),
dst);
@@ -244,7 +244,7 @@ ACEXML_Transcoder::utf162ucs4 (const ACEXML_UTF16 *src,
{
return ACEXML_END_OF_SOURCE;
}
-
+
dst = *src;
}
diff --git a/ACE/ACEXML/common/URL_Addr.cpp b/ACE/ACEXML/common/URL_Addr.cpp
index 1d77c6da762..8005bfa37d5 100644
--- a/ACE/ACEXML/common/URL_Addr.cpp
+++ b/ACE/ACEXML/common/URL_Addr.cpp
@@ -2,7 +2,7 @@
#include "ACEXML/common/URL_Addr.h"
-ACE_RCSID(common, ACEXML_URL_Addr, "$Id$")
+
#if !defined (__ACEXML_INLINE__)
#include "ACEXML/common/URL_Addr.inl"
diff --git a/ACE/ACEXML/common/Validator.h b/ACE/ACEXML/common/Validator.h
index fad96bf2f91..79d7ad88356 100644
--- a/ACE/ACEXML/common/Validator.h
+++ b/ACE/ACEXML/common/Validator.h
@@ -20,7 +20,6 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ACEXML/common/Attributes.h"
-#include "ACEXML/common/Env.h"
#include "ACEXML/common/SAXExceptions.h"
/**
@@ -44,8 +43,7 @@ public:
*
* @retval 0 if valid, -1 otherwise.
*/
- virtual int startElement (ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual int startElement (ACEXML_Attributes *atts) = 0;
/**
* Validate the next child element.
@@ -54,8 +52,7 @@ public:
*/
virtual int nextElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- = 0;
+ const ACEXML_Char *qName) = 0;
};
diff --git a/ACE/ACEXML/common/XMLFilterImpl.cpp b/ACE/ACEXML/common/XMLFilterImpl.cpp
index 6e5be6b7efa..d000c0ea1a9 100644
--- a/ACE/ACEXML/common/XMLFilterImpl.cpp
+++ b/ACE/ACEXML/common/XMLFilterImpl.cpp
@@ -32,72 +32,68 @@ ACEXML_XMLFilterImpl::~ACEXML_XMLFilterImpl (void)
}
void
-ACEXML_XMLFilterImpl::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::parse (ACEXML_InputSource *input)
{
if (this->setupParser () < 0)
{
- ACEXML_THROW (ACEXML_SAXException (ACE_TEXT ("No Parent available")));
+ throw ACEXML_SAXException (ACE_TEXT ("No Parent available"));
}
- this->parent_->parse (input ACEXML_ENV_ARG_PARAMETER);
- return;
+ this->parent_->parse (input);
}
void
-ACEXML_XMLFilterImpl::parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::parse (const ACEXML_Char *systemId)
{
if (this->setupParser () < 0)
{
- ACEXML_THROW (ACEXML_SAXException (ACE_TEXT ("No Parent available")));
+ throw ACEXML_SAXException (ACE_TEXT ("No Parent available"));
}
- this->parent_->parse (new ACEXML_InputSource (systemId) ACEXML_ENV_ARG_PARAMETER);
- return;
+ this->parent_->parse (new ACEXML_InputSource (systemId));
}
int
-ACEXML_XMLFilterImpl::getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::getFeature (const ACEXML_Char *name)
{
if (this->parent_ != 0)
- return this->parent_->getFeature (name ACEXML_ENV_ARG_PARAMETER);
+ return this->parent_->getFeature (name);
- ACEXML_THROW_RETURN (ACEXML_SAXNotRecognizedException (name), 0);
+ throw ACEXML_SAXNotRecognizedException (name);
}
void *
-ACEXML_XMLFilterImpl::getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::getProperty (const ACEXML_Char *name)
{
if (this->parent_ != 0)
- return this->parent_->getProperty (name ACEXML_ENV_ARG_PARAMETER);
+ return this->parent_->getProperty (name);
- ACEXML_THROW_RETURN (ACEXML_SAXNotRecognizedException (name), 0);
+ throw ACEXML_SAXNotRecognizedException (name);
}
void
-ACEXML_XMLFilterImpl::setFeature (const ACEXML_Char *name,
- int boolean_value ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::setFeature (const ACEXML_Char *name, int boolean_value)
{
if (this->parent_ != 0)
{
- this->parent_->setFeature (name,
- boolean_value ACEXML_ENV_ARG_PARAMETER);
- return;
+ this->parent_->setFeature (name, boolean_value);
+ }
+ else
+ {
+ throw ACEXML_SAXNotRecognizedException (name);
}
-
- ACEXML_THROW (ACEXML_SAXNotRecognizedException (name));
}
void
-ACEXML_XMLFilterImpl::setProperty (const ACEXML_Char *name,
- void *value ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::setProperty (const ACEXML_Char *name, void *value)
{
if (this->parent_ != 0)
{
- this->parent_->setProperty (name,
- value ACEXML_ENV_ARG_PARAMETER);
- return;
+ this->parent_->setProperty (name, value);
+ }
+ else
+ {
+ throw ACEXML_SAXNotRecognizedException (name);
}
-
- ACEXML_THROW (ACEXML_SAXNotRecognizedException (name));
}
ACEXML_XMLReader *
@@ -115,56 +111,55 @@ ACEXML_XMLFilterImpl::setParent (ACEXML_XMLReader *parent)
void
ACEXML_XMLFilterImpl::characters (const ACEXML_Char *ch,
size_t start,
- size_t length
- ACEXML_ENV_ARG_DECL)
+ size_t length)
{
if (this->contentHandler_ != 0)
- this->contentHandler_->characters (ch, start, length ACEXML_ENV_ARG_PARAMETER);
+ this->contentHandler_->characters (ch, start, length);
}
void
-ACEXML_XMLFilterImpl::endDocument (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_XMLFilterImpl::endDocument (void)
{
if (this->contentHandler_ != 0)
- this->contentHandler_->endDocument (ACEXML_ENV_SINGLE_ARG_PARAMETER);
+ this->contentHandler_->endDocument ();
}
void
ACEXML_XMLFilterImpl::endElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *qName)
{
if (this->contentHandler_ != 0)
this->contentHandler_->endElement (namespaceURI,
localName,
- qName ACEXML_ENV_ARG_PARAMETER);
+ qName);
}
void
-ACEXML_XMLFilterImpl::endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::endPrefixMapping (const ACEXML_Char *prefix)
{
if (this->contentHandler_ != 0)
- this->contentHandler_->endPrefixMapping (prefix ACEXML_ENV_ARG_PARAMETER);
+ this->contentHandler_->endPrefixMapping (prefix);
}
void
ACEXML_XMLFilterImpl::ignorableWhitespace (const ACEXML_Char *ch,
int start,
- int length ACEXML_ENV_ARG_DECL)
+ int length)
{
if (this->contentHandler_ != 0)
this->contentHandler_->ignorableWhitespace (ch,
start,
- length ACEXML_ENV_ARG_PARAMETER);
+ length);
}
void
ACEXML_XMLFilterImpl::processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *data)
{
if (this->contentHandler_ != 0)
this->contentHandler_->processingInstruction (target,
- data ACEXML_ENV_ARG_PARAMETER);
+ data);
}
void
@@ -175,94 +170,94 @@ ACEXML_XMLFilterImpl::setDocumentLocator (ACEXML_Locator *locator)
}
void
-ACEXML_XMLFilterImpl::skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::skippedEntity (const ACEXML_Char *name)
{
if (this->contentHandler_ != 0)
- this->contentHandler_->skippedEntity (name ACEXML_ENV_ARG_PARAMETER);
+ this->contentHandler_->skippedEntity (name);
}
void
-ACEXML_XMLFilterImpl::startDocument (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_XMLFilterImpl::startDocument (void)
{
if (this->contentHandler_ != 0)
- this->contentHandler_->startDocument (ACEXML_ENV_SINGLE_ARG_PARAMETER);
+ this->contentHandler_->startDocument ();
}
void
ACEXML_XMLFilterImpl::startElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName,
- ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL)
+ ACEXML_Attributes *atts)
{
if (this->contentHandler_ != 0)
this->contentHandler_->startElement (namespaceURI,
localName,
qName,
- atts ACEXML_ENV_ARG_PARAMETER);
+ atts);
}
void
ACEXML_XMLFilterImpl::startPrefixMapping (const ACEXML_Char *prefix,
- const ACEXML_Char *uri ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *uri)
{
if (this->contentHandler_ != 0)
this->contentHandler_->startPrefixMapping (prefix,
- uri ACEXML_ENV_ARG_PARAMETER);
+ uri);
}
void
ACEXML_XMLFilterImpl::notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *systemId)
{
if (this->dtdHandler_ != 0)
this->dtdHandler_->notationDecl (name,
publicId,
- systemId ACEXML_ENV_ARG_PARAMETER);
+ systemId);
}
void
ACEXML_XMLFilterImpl::unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *notationName)
{
if (this->dtdHandler_ != 0)
this->dtdHandler_->unparsedEntityDecl (name,
publicId,
systemId,
- notationName ACEXML_ENV_ARG_PARAMETER);
+ notationName);
}
ACEXML_InputSource *
ACEXML_XMLFilterImpl::resolveEntity (const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *systemId)
{
if (this->entityResolver_ != 0)
return this->entityResolver_->resolveEntity (publicId,
- systemId ACEXML_ENV_ARG_PARAMETER);
+ systemId);
return 0;
}
void
-ACEXML_XMLFilterImpl::error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::error (ACEXML_SAXParseException &exception)
{
if (this->errorHandler_ != 0)
- this->errorHandler_->error (exception ACEXML_ENV_ARG_PARAMETER);
+ this->errorHandler_->error (exception);
}
void
-ACEXML_XMLFilterImpl::fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::fatalError (ACEXML_SAXParseException &exception)
{
if (this->errorHandler_ != 0)
- this->errorHandler_->fatalError (exception ACEXML_ENV_ARG_PARAMETER);
+ this->errorHandler_->fatalError (exception);
}
void
-ACEXML_XMLFilterImpl::warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
+ACEXML_XMLFilterImpl::warning (ACEXML_SAXParseException &exception)
{
if (this->errorHandler_ != 0)
- this->errorHandler_->warning (exception ACEXML_ENV_ARG_PARAMETER);
+ this->errorHandler_->warning (exception);
}
ACEXML_DTDHandler *
diff --git a/ACE/ACEXML/common/XMLFilterImpl.h b/ACE/ACEXML/common/XMLFilterImpl.h
index fa4913e0910..39e51b00d20 100644
--- a/ACE/ACEXML/common/XMLFilterImpl.h
+++ b/ACE/ACEXML/common/XMLFilterImpl.h
@@ -58,36 +58,32 @@ public:
/*
* Look up the value of a feature.
*/
- virtual int getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL);
+ virtual int getFeature (const ACEXML_Char *name);
/*
* Look up the value of a property.
*/
- virtual void * getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL);
+ virtual void * getProperty (const ACEXML_Char *name);
/*
* Parse an XML document.
*/
- virtual void parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL);
+ virtual void parse (ACEXML_InputSource *input);
/*
* Parse an XML document from a system identifier (URI).
*/
- virtual void parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- // @@ throw IOException???
- ;
+ virtual void parse (const ACEXML_Char *systemId);
/*
* Set the state of a feature.
*/
- virtual void setFeature (const ACEXML_Char *name,
- int boolean_value ACEXML_ENV_ARG_DECL);
+ virtual void setFeature (const ACEXML_Char *name, int boolean_value);
/*
* Set the value of a property.
*/
- virtual void setProperty (const ACEXML_Char *name,
- void *value ACEXML_ENV_ARG_DECL);
+ virtual void setProperty (const ACEXML_Char *name, void *value);
/*
* Get the parent reader.
@@ -144,38 +140,37 @@ public:
*/
virtual void characters (const ACEXML_Char *ch,
size_t start,
- size_t length
- ACEXML_ENV_ARG_DECL);
+ size_t length);
/*
* Receive notification of the end of a document.
*/
- virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL);
+ virtual void endDocument (void);
/*
* Receive notification of the end of an element.
*/
virtual void endElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *qName);
/*
* End the scope of a prefix-URI mapping.
*/
- virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL);
+ virtual void endPrefixMapping (const ACEXML_Char *prefix);
/*
* Receive notification of ignorable whitespace in element content.
*/
virtual void ignorableWhitespace (const ACEXML_Char *ch,
int start,
- int length ACEXML_ENV_ARG_DECL);
+ int length);
/*
* Receive notification of a processing instruction.
*/
virtual void processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *data);
/*
* Receive an object for locating the origin of SAX document events.
@@ -185,12 +180,12 @@ public:
/*
* Receive notification of a skipped entity.
*/
- virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL);
+ virtual void skippedEntity (const ACEXML_Char *name);
/*
* Receive notification of the beginning of a document.
*/
- virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL);
+ virtual void startDocument (void);
/*
* Receive notification of the beginning of an element.
@@ -198,13 +193,13 @@ public:
virtual void startElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName,
- ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL);
+ ACEXML_Attributes *atts);
/*
* Begin the scope of a prefix-URI Namespace mapping.
*/
virtual void startPrefixMapping (const ACEXML_Char *prefix,
- const ACEXML_Char *uri ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *uri);
// *** Methods inherit from ACEXML_DTDHandler.
@@ -213,7 +208,7 @@ public:
*/
virtual void notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *systemId);
/*
* Receive notification of an unparsed entity declaration event.
@@ -221,7 +216,7 @@ public:
virtual void unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *notationName);
// Methods inherit from ACEXML_EnitityResolver.
@@ -229,24 +224,24 @@ public:
* Allow the application to resolve external entities.
*/
virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *systemId);
// Methods inherit from ACEXML_ErrorHandler.
/*
* Receive notification of a recoverable error.
*/
- virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL);
+ virtual void error (ACEXML_SAXParseException &exception);
/*
* Receive notification of a non-recoverable error.
*/
- virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL);
+ virtual void fatalError (ACEXML_SAXParseException &exception);
/*
* Receive notification of a warning.
*/
- virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL);
+ virtual void warning (ACEXML_SAXParseException &exception);
protected:
int setupParser (void);
// Set up the event handlers of parent parser to this.
diff --git a/ACE/ACEXML/common/XMLReader.cpp b/ACE/ACEXML/common/XMLReader.cpp
index d762c79a3a2..8d0e498971a 100644
--- a/ACE/ACEXML/common/XMLReader.cpp
+++ b/ACE/ACEXML/common/XMLReader.cpp
@@ -1,10 +1,6 @@
-#include "XMLReader.h"
-
-
-ACE_RCSID (common,
- XMLReader,
- "$Id$")
+// $Id$
+#include "XMLReader.h"
ACEXML_XMLReader::~ACEXML_XMLReader (void)
{
diff --git a/ACE/ACEXML/common/XMLReader.h b/ACE/ACEXML/common/XMLReader.h
index 9cbc6bca7f2..95b03f62142 100644
--- a/ACE/ACEXML/common/XMLReader.h
+++ b/ACE/ACEXML/common/XMLReader.h
@@ -70,26 +70,22 @@ public:
* programmers to check whether a specific feature has been
* activated in the parser.
*/
- virtual int getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual int getFeature (const ACEXML_Char *name) = 0;
/**
* Look up the value of a property.
*/
- virtual void * getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void * getProperty (const ACEXML_Char *name) = 0;
/**
* Parse an XML document.
*/
- virtual void parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void parse (ACEXML_InputSource *input) = 0;
/**
* Parse an XML document from a system identifier (URI).
*/
- virtual void parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void parse (const ACEXML_Char *systemId) = 0;
/**
* Allow an application to register a content event handler.
@@ -114,16 +110,12 @@ public:
/**
* Activating or deactivating a feature.
*/
- virtual void setFeature (const ACEXML_Char *name,
- int boolean_value ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void setFeature (const ACEXML_Char *name, int boolean_value) = 0;
/**
* Set the value of a property.
*/
- virtual void setProperty (const ACEXML_Char *name,
- void *value ACEXML_ENV_ARG_DECL)
- = 0;
+ virtual void setProperty (const ACEXML_Char *name, void *value) = 0;
};
diff --git a/ACE/ACEXML/common/XML_Codecs.cpp b/ACE/ACEXML/common/XML_Codecs.cpp
index 9566158ddfd..01468173e89 100644
--- a/ACE/ACEXML/common/XML_Codecs.cpp
+++ b/ACE/ACEXML/common/XML_Codecs.cpp
@@ -5,7 +5,7 @@
#include "ace/OS_NS_string.h"
#include "ACEXML/common/XML_Codecs.h"
-ACE_RCSID (common, XML_Codecs, "$Id$")
+
ACEXML_Char*
ACEXML_Base64::encode (const ACEXML_Char* input,
diff --git a/ACE/ACEXML/common/XML_Macros.h b/ACE/ACEXML/common/XML_Macros.h
deleted file mode 100644
index 9ee1e90c196..00000000000
--- a/ACE/ACEXML/common/XML_Macros.h
+++ /dev/null
@@ -1,456 +0,0 @@
-// -*- C++ -*-
-
-// ============================================================================
-/**
- * @file XML_Macros.h
- *
- * $Id$
- *
- * Writing code that is portable between platforms with or without
- * native C++ exceptions is hard. The following macros offer some
- * help on this task.
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- * @author Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author Krishnakumar B <kitty@cs.wustl.edu>, et al.
- */
-// ============================================================================
-
-// Macros for handling exceptions.
-
-#ifndef _ACEXML_MACROS_H
-#define _ACEXML_MACROS_H
-
-#include /**/ "ace/pre.h"
-
-#include "ace/config-all.h"
-
-# if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-# endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Exception_Macros.h"
-
-// The Windows MFC exception mechanism requires that a caught CException
-// (including the CMemoryException in use here) be freed using its Delete()
-// method. Thus, when MFC is in use and we're catching exceptions as a result
-// of new(), the exception's Delete() method has to be called. No other
-// platform imposes this sort of restriction/requirement. The Windows
-// config stuff (at least for MSVC/MFC) defines a ACE_del_bad_alloc macro
-// that works with its ACE_bad_alloc macro to implement this cleanup
-// requirement. Since no other platform requires this, define it as
-// empty here.
-#if !defined (ACE_del_bad_alloc)
-# define ACE_del_bad_alloc
-#endif
-
-// The following macros assume that an environment variable is passed
-// in/out of each function that can throw an exception. The type of the
-// environment variable is defined by ACEXML_ENV_TYPE.
-
-#if !defined (ACEXML_ENV_TYPE)
-# define ACEXML_ENV_TYPE ACEXML_Env
-#endif /* ACEXML_ENV_TYPE */
-
-// The name of the variable defined by ACEXML_TRY_ENV. Below is the name
-// that we use by default. If you wish to change it you can redefine
-// ACEXML_TRY_ENV to change the default name. Also ACEXML_ADOPT_ENV allows the
-// use of non-standard name within a scope.
-
-#if !defined (ACEXML_TRY_ENV)
-# define ACEXML_TRY_ENV _ACEXML_Env_variable
-#endif /* ACEXML_TRY_ENV */
-
-// The base type of Exception from which all the other exception types are
-// derived. By default, it is set to ACEXML_Exception.
-
-#if !defined (ACEXML_EXCEPTION_TYPE)
-# define ACEXML_EXCEPTION_TYPE ACEXML_Exception
-#endif /* ACEXML_EXCEPTION_TYPE */
-
-// This is the exception caught by ACEXML_CATCHANY.
-#if !defined (ACEXML_ANY_EXCEPTION)
-# define ACEXML_ANY_EXCEPTION ex
-#endif /* ACEXML_ANY_EXCEPTION */
-
-// Declare a new environment variable on the stack. The type of the
-// environment variable is determined by ACEXML_ENV_TYPE.
-#define ACEXML_DECLARE_NEW_ENV \
- ACEXML_ENV_TYPE ACEXML_TRY_ENV
-
-#if defined (ACE_USES_NATIVE_EXCEPTIONS)
-// -----------------------------------------------------------------
-
-#define ACEXML_ADOPT_ENV (ENV)
-
-// No need to check. Native exceptions handle the control flow
-// automatically when an exception occurs.
-# define ACEXML_CHECK
-
-// Used when the function requires a return value.
-# define ACEXML_CHECK_RETURN(RETV)
-
-// ACEXML_THROW_R_INT should not be used by the user.
-# define ACEXML_THROW_R_INT(EXCEPTION) \
- throw EXCEPTION
-
-// Throwing an exception is easy. These two macros should _NOT_ be
-// used within try blocks.
-# define ACEXML_THROW(EXCEPTION) \
- throw EXCEPTION
-
-// Throwing an exception when the function reqires a return value.
-# if defined (__HP_aCC)
-# define ACEXML_THROW_RETURN(EXCEPTION, RETV) \
- do \
- { \
- throw EXCEPTION; \
- return RETV; \
- } while (0)
-# else /* WIN32 */
-# define ACEXML_THROW_RETURN(EXCEPTION,RETV) \
- throw EXCEPTION
-# endif /* WIN32 */
-
-// For compilers with native exceptions, we can simply use try to try. ;-)
-// do {} while (0) is required to avoid compilation warnings.
-# define ACEXML_TRY \
- do \
- { \
- try \
- {
-# define ACEXML_TRY_NEW_ENV \
- do \
- { \
- ACEXML_ENV_TYPE ACEXML_TRY_ENV; \
- try \
- {
-# define ACEXML_TRY_EX(LABEL) \
- do \
- { \
- try \
- {
-
-// No need to check for exceptions within try block for compilers with
-// native exceptions.
-# define ACEXML_TRY_CHECK
-# define ACEXML_TRY_CHECK_EX(LABEL)
-
-// Likewise, throwing exceptions within try blocks is easy.
-# define ACEXML_TRY_THROW(EXCEPTION) throw EXCEPTION
-# define ACEXML_TRY_THROW_EX(EXCEPTION,LABEL) throw EXCEPTION
-
-// Same thing for catch.
-# define ACEXML_CATCH(EXCEPTION,VAR) \
- } \
- catch (EXCEPTION & VAR) \
- { \
- ACE_UNUSED_ARG (VAR);
-
-# define ACEXML_CATCHANY \
- ACEXML_CATCH(ACEXML_EXCEPTION_TYPE, ACEXML_ANY_EXCEPTION)
-
-# define ACEXML_CATCHALL \
- } \
- catch (...) \
- {
-
-// Rethrowing the exception from catch blocks.
-# define ACEXML_RE_THROW throw
-# define ACEXML_RE_THROW_EX(LABEL) throw
-
-// Close the catch block.
-# define ACEXML_ENDTRY \
- } \
- } while (0)
-
-#else /* ! ACEXML_USES_NATIVE_EXCEPTIONS */
-// -----------------------------------------------------------------
-
-// When handling compilers without native exceptions, things get a bit
-// hairy. Exceptions are simulated using ACEXML_ENV_TYPE. The trick here is to
-// make sure the flow-of-control can simulate the case when native
-// exceptions occur...
-
-# define ACEXML_ADOPT_ENV(ENV) ACEXML_ENV_TYPE &ACEXML_TRY_ENV = ENV
-
-// Follow every statement that could throw exceptions with ACEXML_CHECK or
-// ACEXML_CHECK_RETURN. These two macros should _NOT_ be used within try
-// blocks. Use ACEXML_TRY_CHECK or ACEXML_TRY_CHECK_EX instead.
-# define ACEXML_CHECK \
- if (ACEXML_TRY_ENV . exception () != 0) \
- return
-// When function requires a return value
-# define ACEXML_CHECK_RETURN(RETV) \
- if (ACEXML_TRY_ENV . exception () != 0) \
- return RETV
-
-// ACEXML_THROW_R_INT should not be used by the user.
-# define ACEXML_THROW_R_INT(EXCEPTION) ACEXML_TRY_ENV.exception (new EXCEPTION)
-
-// Throwing exceptions will inevitably cause a return from the current
-// function. These two macros should _NOT_ be used within try blocks. Use
-// ACEXML_TRY_THROW or ACEXML_TRY_THROW_EX instead.
-# define ACEXML_THROW(EXCEPTION) \
- do \
- { \
- ACEXML_TRY_ENV.exception (new EXCEPTION); \
- return; \
- } while (0)
-
-# define ACEXML_THROW_RETURN(EXCEPTION,RETV) \
- do \
- { \
- ACEXML_TRY_ENV.exception (new EXCEPTION); \
- return RETV; \
- } while (0)
-
-// ACEXML_TRY sets up flags to control program flow. ACEXML_TRY_FLAG acts
-// like a one-shot flip-flop. When an exception occurs (detected using
-// ACEXML_TRY_CHECK,) ACEXML_TRY_FLAG will be reset and the control goes
-// back into ACEXML_TRY_LABEL. Since ACEXML_TRY_FLAG is reset, the try
-// block won't get executed again and the control proceeds to the following
-// catch blocks. ACEXML_EXCEPTION_NOT_CAUGHT flag is used to prevent
-// catching an exception twice. This macro assumes there's already an
-// ACEXML_ENV_TYPE variable ACEXML_TRY_ENV defined (which should be the
-// case normally)
-# define ACEXML_TRY \
- do { \
- int ACEXML_TRY_FLAG = 1; \
- int ACEXML_EXCEPTION_NOT_CAUGHT = 1; \
- ACEXML_TRY_LABEL: \
- if (ACEXML_TRY_FLAG) \
- do {
-
-// ACEXML_TRY_NEW_ENV functions like the macro ACEXML_TRY but defines a new
-// ACEXML_ENV_TYPE variable ACEXML_TRY_ENV. It is most often used in the outer
-// most function where no ACEXML_TRY_ENV is available.
-# define ACEXML_TRY_NEW_ENV \
- do { \
- ACEXML_ENV_TYPE ACEXML_TRY_ENV;\
- int ACEXML_TRY_FLAG = 1; \
- int ACEXML_EXCEPTION_NOT_CAUGHT = 1; \
- ACEXML_TRY_LABEL: \
- if (ACEXML_TRY_FLAG) \
- do {
-
-// ACEXML_TRY_EX works exactly like ACEXML_TRY macro except the label used
-// in the try block is customizable to avoid name clashing. It should be
-// used when nested try blocks or multiple try blocks are required, in the
-// same function.
-# define ACEXML_TRY_EX(LABEL) \
- do { \
- int ACEXML_TRY_FLAG = 1; \
- int ACEXML_EXCEPTION_NOT_CAUGHT = 1; \
- ACEXML_TRY_LABEL ## LABEL: \
- if (ACEXML_TRY_FLAG) \
- do {
-
-// Check for exceptions within try blocks.
-# define ACEXML_TRY_CHECK \
- { \
- if (ACEXML_TRY_ENV.exception () != 0) \
- { \
- ACEXML_TRY_FLAG = 0; \
- goto ACEXML_TRY_LABEL; \
- } \
- }
-
-// Checking exception within EX try blocks.
-# define ACEXML_TRY_CHECK_EX(LABEL) \
- { \
- if (ACEXML_TRY_ENV.exception () != 0) \
- { \
- ACEXML_TRY_FLAG = 0; \
- goto ACEXML_TRY_LABEL ## LABEL; \
- } \
- }
-
-// Throwing exception within TRY blocks.
-# define ACEXML_TRY_THROW(EXCEPTION) \
- { \
- ACEXML_TRY_ENV.exception (new EXCEPTION); \
- ACEXML_TRY_FLAG = 0; \
- goto ACEXML_TRY_LABEL; \
- }
-
-# define ACEXML_TRY_THROW_EX(EXCEPTION,LABEL) \
- { \
- ACEXML_TRY_ENV.exception (new EXCEPTION); \
- ACEXML_TRY_FLAG = 0; \
- goto ACEXML_TRY_LABEL ## LABEL; \
- }
-
-// When exceptions occur or try block finishes execution without exception,
-// control will continue in the catch block. This macro first checks if
-// there's any uncaught exception left. If all the conditions are met, we
-// have caught an exception. It then resets ACEXML_EXCEPTION_NOT_CAUGHT to
-// prevent subsequent catch blocks from catching the same exception again,
-// and extracts out the underlying exception in ACEXML_TRY_ENV. We also make a
-// copy of ACEXML_TRY_ENV in ACEXML_CAUGHT_ENV, in case we want to rethrow the
-// exception. ACEXML_TRY_ENV is cleared out after the exception is caught so
-// you should not use ACEXML_TRY_ENV within the catch block(You should use the
-// exception directly).
-# define ACEXML_CATCH(TYPE,VAR) \
- } while (0); \
- do \
- if (ACEXML_TRY_ENV.exception () != 0 && ACEXML_EXCEPTION_NOT_CAUGHT && \
- TYPE::_downcast(ACEXML_TRY_ENV.exception ()) != 0) \
- { \
- ACEXML_ENV_TYPE ACEXML_CAUGHT_ENV = ACEXML_TRY_ENV;\
- ACEXML_EXCEPTION_NOT_CAUGHT = 0; \
- TYPE &VAR = *TYPE::_downcast (ACEXML_CAUGHT_ENV.exception ()); \
- ACE_UNUSED_ARG (VAR); \
- ACEXML_TRY_ENV.clear ();
-
-// ACEXML_CATCHANY uses ACEXML_CATCH to catch all exceptions derived from
-// ACEXML_EXCEPTION_TYPE
-# define ACEXML_CATCHANY ACEXML_CATCH (ACEXML_EXCEPTION_TYPE, ACEXML_ANY_EXCEPTION)
-
-// Since there's no other exception for compilers without exception
-// support, we simply catch all ACEXML_EXCEPTION_TYPE exceptions for
-// ACEXML_CATCHALL.
-# define ACEXML_CATCHALL ACEXML_CATCHANY
-
-// Rethrowing exception within catch blocks. Notice that we depend on the
-// ACEXML_CHECK/ACEXML_CHECK_RETURN following the ACEXML_ENDTRY, or
-// ACEXML_TRY_CHECK/ ACEXML_TRY_CHECK_EX following the ACEXML_ENDTRY when
-// the catch block is within another try block, to do the "Right
-// Thing[TM]."
-# define ACEXML_RE_THROW \
- do {\
- ACEXML_TRY_ENV = ACEXML_CAUGHT_ENV; \
- goto ACEXML_TRY_LABEL; \
- } while (0)
-# define ACEXML_RE_THROW_EX(LABEL) \
- do {\
- ACEXML_TRY_ENV = ACEXML_CAUGHT_ENV; \
- goto ACEXML_TRY_LABEL ## LABEL; \
- } while (0)
-
-// Close the try block. Since exceptions may not get caught, and exceptions
-// can also be rethrown from the catch block, it's always a good idea to
-// follow ACEXML_ENDTRY with ACEXML_CHECK or ACEXML_TRY_CHECK (depending on
-// the context.)
-# define ACEXML_ENDTRY \
- } while (0); \
- } while (0)
-
-#endif /* ! ACE_USES_NATIVE_EXCEPTIONS */
-
-// ACE_HAS_EXCEPTIONS is not the same as ACE_NEW_THROWS_EXCEPTIONS.
-#if defined(ACE_NEW_THROWS_EXCEPTIONS)
-
-# define ACEXML_NEW_THROW_EX(POINTER,CONSTRUCTOR,EXCEPTION) \
- do { try { POINTER = new CONSTRUCTOR; } \
- catch (ACE_bad_alloc) { ACE_del_bad_alloc errno = ENOMEM; ACEXML_THROW_R_INT (EXCEPTION); } \
- } while (0)
-
-#else /* ! ACE_NEW_THROWS_EXCEPTIONS */
-
-# define ACEXML_NEW_THROW_EX(POINTER,CONSTRUCTOR,EXCEPTION) \
- do { POINTER = new CONSTRUCTOR; \
- if (POINTER == 0) { errno = ENOMEM; ACEXML_THROW_R_INT (EXCEPTION); } \
- } while (0)
-
-#endif /* ACE_NEW_THROWS_EXCEPTIONS */
-
-# define ACEXML_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \
- ACE_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) ACEXML_THROW_R_INT (EXCEPTION);
-
-# define ACEXML_READ_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \
- ACE_Read_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) ACEXML_THROW_R_INT (EXCEPTION);
-
-# define ACEXML_WRITE_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \
- ACE_Write_Guard< MUTEX > OBJ (LOCK); \
- if (OBJ.locked () == 0) ACEXML_THROW_R_INT (EXCEPTION);
-
-//@{
-/**
- * @name Native C++ exceptions portability macros.
- *
- * The following macros are used to write code portable between platforms
- * with and without native C++ exception support. Their main goal is to
- * hide the presence of the ACEXML_ENV_TYPE argument, but they collaborate
- * with the ACEXML_TRY_* macros to emulate the try/catch blocks.
- */
-
-/// Define a macro to emit code only when ACEXML_ENV_TYPE is used
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS) || defined (ACEXML_ENV_BKWD_COMPAT)
-# define ACEXML_ENV_EMIT_CODE(X) X
-#else
-# define ACEXML_ENV_EMIT_CODE(X)
-#endif /* ACE_USES_NATIVE_EXCEPTIONS && ! ACEXML_ENV_BKWD_COMPAT */
-
-/// Another macro to emit code only when ACEXML_ENV_TYPE is used
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS) || defined (ACEXML_ENV_BKWD_COMPAT)
-# define ACEXML_ENV_EMIT_CODE2(X,Y) X,Y
-#else
-# define ACEXML_ENV_EMIT_CODE2(X,Y)
-#endif /* ACE_USES_NATIVE_EXCEPTIONS && ! ACEXML_ENV_BKWD_COMPAT */
-
-/// Helper macro
-#define ACEXML_ENV_EMIT_DUMMY
-
-/// Declare a ACEXML_ENV_TYPE argument as the last argument of a
-/// function
-/**
- * Normally this macro is used as follows:
- *
- * <CODE>void my_funct (int x, int y ACEXML_ENV_ARG_DECL);</CODE>
- *
- * Its purpose is to provide developers (and users) with a mechanism to
- * write code that is portable to platforms with and without native C++
- * exceptions.
- */
-#define ACEXML_ENV_ARG_DECL \
- ACEXML_ENV_EMIT_CODE2(ACEXML_ENV_EMIT_DUMMY, \
- ACEXML_ENV_TYPE &ACEXML_TRY_ENV)
-
-/// Declare a ACEXML_ENV_TYPE argument that is not used by the
-/// function definition.
-/**
- * Similar to ACEXML_ENV_ARG_DECL, but the formal parameter name is dropped to
- * avoid warnings about unused parameters
- */
-#define ACEXML_ENV_ARG_DECL_NOT_USED \
- ACEXML_ENV_EMIT_CODE2(ACEXML_ENV_EMIT_DUMMY, \
- ACEXML_ENV_TYPE &)
-
-/// Declare a ACEXML_ENV_TYPE argument for methods that do not take any other
-/// parameters
-#define ACEXML_ENV_SINGLE_ARG_DECL \
- ACEXML_ENV_EMIT_CODE(ACEXML_ENV_TYPE &ACEXML_TRY_ENV)
-
-/// Declare a ACEXML_ENV_TYPE argument for methods which don't use it.
-#define ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED \
- ACEXML_ENV_EMIT_CODE(ACEXML_ENV_TYPE &)
-
-/// Use the ACEXML_ENV_TYPE argument in a nested call
-#define ACEXML_ENV_ARG_PARAMETER \
- ACEXML_ENV_EMIT_CODE2(ACEXML_ENV_EMIT_DUMMY, \
- ACEXML_TRY_ENV)
-
-/// Use the ACEXML_ENV_TYPE argument in a nested call, assuming that the
-/// called function takes only the ACEXML_TRY_ENV argument.
-#define ACEXML_ENV_SINGLE_ARG_PARAMETER \
- ACEXML_ENV_EMIT_CODE(ACEXML_TRY_ENV)
-
-/// Eliminate unused argument warnings about ACEXML_TRY_ENV
-#define ACEXML_ENV_ARG_NOT_USED \
- ACEXML_ENV_EMIT_CODE(ACE_UNUSED_ARG(ACEXML_TRY_ENV))
-//@}
-
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS)
-// This thing can be moved above when we drop ACEXML_ENV_BKWD_COMPAT.
-# define ACEXML_ENV_RAISE(ex) ACEXML_TRY_ENV.exception (ex)
-#else
-# define ACEXML_ENV_RAISE(ex) (ex)->_raise ()
-#endif /* ACEXML_CORBA_HAS_EXCEPTIONS */
-
-#include /**/ "ace/post.h"
-
-#endif /* _ACEXML_MACROS_H */
diff --git a/ACE/ACEXML/common/XML_Types.h b/ACE/ACEXML/common/XML_Types.h
index 5a55d6b7754..a4dec7e1639 100644
--- a/ACE/ACEXML/common/XML_Types.h
+++ b/ACE/ACEXML/common/XML_Types.h
@@ -30,7 +30,7 @@
# if defined (ACE_HAS_WCHAR) && (ACE_SIZEOF_WCHAR == 2)
typedef wchar_t ACEXML_UTF16;
# else
-typedef ACE_USHORT16 ACEXML_UTF16;
+typedef ACE_UINT16 ACEXML_UTF16;
# endif /* ACE_HAS_WCHAR && ACE_SIZEOF_WCHAR == 2 */
# if defined (ACE_HAS_WCHAR) && (ACE_SIZEOF_WCHAR == 4)
diff --git a/ACE/ACEXML/common/common.mpc b/ACE/ACEXML/common/common.mpc
index 3b469ffde37..4ed3874758f 100644
--- a/ACE/ACEXML/common/common.mpc
+++ b/ACE/ACEXML/common/common.mpc
@@ -6,6 +6,10 @@ project(ACEXML): acelib, ace_output, codecs, install, zzip, zlib {
sharedname = ACEXML
dynamicflags += ACEXML_BUILD_DLL
+ specific {
+ install_dir = ACEXML/common
+ }
+
Source_Files {
// This file will only be added if the ace_codecs feature is enabled.
// See codecs.mpb for more information.
@@ -22,7 +26,6 @@ project(ACEXML): acelib, ace_output, codecs, install, zzip, zlib {
Locator.h
XMLFilter.h
XMLReader.h
- XML_Macros.h
XML_Types.h
XML_Util.h
}
diff --git a/ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp b/ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp
index 4bcf19e1b07..846eff84e21 100644
--- a/ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp
+++ b/ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp
@@ -18,7 +18,7 @@ ACEXML_Print_Handler::~ACEXML_Print_Handler (void)
void
ACEXML_Print_Handler::characters (const ACEXML_Char *cdata,
size_t start,
- size_t length ACEXML_ENV_ARG_DECL_NOT_USED)
+ size_t length)
{
@@ -28,7 +28,7 @@ ACEXML_Print_Handler::characters (const ACEXML_Char *cdata,
}
void
-ACEXML_Print_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_Print_Handler::endDocument (void)
{
@@ -39,8 +39,7 @@ ACEXML_Print_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
void
ACEXML_Print_Handler::endElement (const ACEXML_Char *uri,
const ACEXML_Char *name,
- const ACEXML_Char *qName
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *qName)
{
@@ -50,8 +49,7 @@ ACEXML_Print_Handler::endElement (const ACEXML_Char *uri,
}
void
-ACEXML_Print_Handler::endPrefixMapping (const ACEXML_Char *prefix
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Print_Handler::endPrefixMapping (const ACEXML_Char *prefix)
{
@@ -63,8 +61,7 @@ ACEXML_Print_Handler::endPrefixMapping (const ACEXML_Char *prefix
void
ACEXML_Print_Handler::ignorableWhitespace (const ACEXML_Char *,
int,
- int
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ int)
{
// ACE_DEBUG ((LM_DEBUG,
// ACE_TEXT ("* Event ignorableWhitespace () ***************\n")));
@@ -72,8 +69,7 @@ ACEXML_Print_Handler::ignorableWhitespace (const ACEXML_Char *,
void
ACEXML_Print_Handler::processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *data)
{
@@ -91,8 +87,7 @@ ACEXML_Print_Handler::setDocumentLocator (ACEXML_Locator * locator)
}
void
-ACEXML_Print_Handler::skippedEntity (const ACEXML_Char *name
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Print_Handler::skippedEntity (const ACEXML_Char *name)
{
@@ -102,7 +97,7 @@ ACEXML_Print_Handler::skippedEntity (const ACEXML_Char *name
}
void
-ACEXML_Print_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_Print_Handler::startDocument (void)
{
@@ -114,8 +109,7 @@ void
ACEXML_Print_Handler::startElement (const ACEXML_Char *uri,
const ACEXML_Char *name,
const ACEXML_Char *qName,
- ACEXML_Attributes *alist
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ ACEXML_Attributes *alist)
{
@@ -134,7 +128,7 @@ ACEXML_Print_Handler::startElement (const ACEXML_Char *uri,
void
ACEXML_Print_Handler::startPrefixMapping (const ACEXML_Char * prefix,
- const ACEXML_Char * uri ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char * uri)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("* Event startPrefixMapping () ***************\n")));
@@ -147,7 +141,7 @@ ACEXML_Print_Handler::startPrefixMapping (const ACEXML_Char * prefix,
void
ACEXML_Print_Handler::notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicID,
- const ACEXML_Char *systemID ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *systemID)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("* Event notationDecl: (%s) "),
@@ -171,7 +165,7 @@ void
ACEXML_Print_Handler::unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicID,
const ACEXML_Char *systemID,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *notationName)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("* Unparsed Entity: %s"),
@@ -195,7 +189,7 @@ ACEXML_Print_Handler::unparsedEntityDecl (const ACEXML_Char *name,
ACEXML_InputSource *
ACEXML_Print_Handler::resolveEntity (const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
return 0;
@@ -207,7 +201,7 @@ ACEXML_Print_Handler::resolveEntity (const ACEXML_Char *,
* Receive notification of a recoverable error.
*/
void
-ACEXML_Print_Handler::error (ACEXML_SAXParseException & ex ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Print_Handler::error (ACEXML_SAXParseException & ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
(this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
@@ -217,7 +211,7 @@ ACEXML_Print_Handler::error (ACEXML_SAXParseException & ex ACEXML_ENV_ARG_DECL_N
}
void
-ACEXML_Print_Handler::fatalError (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Print_Handler::fatalError (ACEXML_SAXParseException& ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
(this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
@@ -228,7 +222,7 @@ ACEXML_Print_Handler::fatalError (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DE
}
void
-ACEXML_Print_Handler::warning (ACEXML_SAXParseException & ex ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Print_Handler::warning (ACEXML_SAXParseException & ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
(this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
diff --git a/ACE/ACEXML/examples/SAXPrint/Print_Handler.h b/ACE/ACEXML/examples/SAXPrint/Print_Handler.h
index c7beebc02b7..1de630c90c6 100644
--- a/ACE/ACEXML/examples/SAXPrint/Print_Handler.h
+++ b/ACE/ACEXML/examples/SAXPrint/Print_Handler.h
@@ -43,43 +43,37 @@ public:
*/
virtual void characters (const ACEXML_Char *ch,
size_t start,
- size_t length ACEXML_ENV_ARG_DECL)
- ;
+ size_t length);
/*
* Receive notification of the end of a document.
*/
- virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL)
- ;
+ virtual void endDocument (void);
/*
* Receive notification of the end of an element.
*/
virtual void endElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *qName);
/*
* End the scope of a prefix-URI mapping.
*/
- virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL)
- ;
+ virtual void endPrefixMapping (const ACEXML_Char *prefix);
/*
* Receive notification of ignorable whitespace in element content.
*/
virtual void ignorableWhitespace (const ACEXML_Char *ch,
int start,
- int length ACEXML_ENV_ARG_DECL)
- ;
+ int length);
/*
* Receive notification of a processing instruction.
*/
virtual void processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *data);
/*
* Receive an object for locating the origin of SAX document events.
@@ -89,14 +83,12 @@ public:
/*
* Receive notification of a skipped entity.
*/
- virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
- ;
+ virtual void skippedEntity (const ACEXML_Char *name);
/*
* Receive notification of the beginning of a document.
*/
- virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL)
- ;
+ virtual void startDocument (void);
/*
* Receive notification of the beginning of an element.
@@ -104,15 +96,13 @@ public:
virtual void startElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName,
- ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL)
- ;
+ ACEXML_Attributes *atts);
/*
* Begin the scope of a prefix-URI Namespace mapping.
*/
virtual void startPrefixMapping (const ACEXML_Char *prefix,
- const ACEXML_Char *uri ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *uri);
// *** Methods inherit from ACEXML_DTDHandler.
@@ -121,8 +111,7 @@ public:
*/
virtual void notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *systemId);
/*
* Receive notification of an unparsed entity declaration event.
@@ -130,8 +119,7 @@ public:
virtual void unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *notationName);
// Methods inherit from ACEXML_EnitityResolver.
@@ -139,28 +127,24 @@ public:
* Allow the application to resolve external entities.
*/
virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *systemId);
// Methods inherit from ACEXML_ErrorHandler.
/*
* Receive notification of a recoverable error.
*/
- virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void error (ACEXML_SAXParseException &exception);
/*
* Receive notification of a non-recoverable error.
*/
- virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void fatalError (ACEXML_SAXParseException &exception);
/*
* Receive notification of a warning.
*/
- virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void warning (ACEXML_SAXParseException &exception);
private:
ACEXML_Char* fileName_;
diff --git a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp b/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp
index 90182166b17..db9514d527f 100644
--- a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp
+++ b/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp
@@ -22,8 +22,7 @@ ACEXML_SAXPrint_Handler::~ACEXML_SAXPrint_Handler (void)
void
ACEXML_SAXPrint_Handler::characters (const ACEXML_Char *cdata,
size_t,
- size_t
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ size_t)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("%s"),
@@ -31,7 +30,7 @@ ACEXML_SAXPrint_Handler::characters (const ACEXML_Char *cdata,
}
void
-ACEXML_SAXPrint_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_SAXPrint_Handler::endDocument (void)
{
@@ -41,8 +40,7 @@ ACEXML_SAXPrint_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
void
ACEXML_SAXPrint_Handler::endElement (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char *qName
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *qName)
{
@@ -54,8 +52,7 @@ ACEXML_SAXPrint_Handler::endElement (const ACEXML_Char *,
}
void
-ACEXML_SAXPrint_Handler::endPrefixMapping (const ACEXML_Char *
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_SAXPrint_Handler::endPrefixMapping (const ACEXML_Char *)
{
// ACE_DEBUG ((LM_DEBUG,
// ACE_TEXT ("* Event endPrefixMapping (%s) ***************\n"),
@@ -65,7 +62,7 @@ ACEXML_SAXPrint_Handler::endPrefixMapping (const ACEXML_Char *
void
ACEXML_SAXPrint_Handler::ignorableWhitespace (const ACEXML_Char * cdata,
int,
- int ACEXML_ENV_ARG_DECL_NOT_USED)
+ int)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("%s"),
@@ -76,8 +73,7 @@ ACEXML_SAXPrint_Handler::ignorableWhitespace (const ACEXML_Char * cdata,
void
ACEXML_SAXPrint_Handler::processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *data)
{
@@ -96,8 +92,7 @@ ACEXML_SAXPrint_Handler::setDocumentLocator (ACEXML_Locator * locator)
}
void
-ACEXML_SAXPrint_Handler::skippedEntity (const ACEXML_Char *name
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_SAXPrint_Handler::skippedEntity (const ACEXML_Char *name)
{
@@ -107,7 +102,7 @@ ACEXML_SAXPrint_Handler::skippedEntity (const ACEXML_Char *name
}
void
-ACEXML_SAXPrint_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_SAXPrint_Handler::startDocument (void)
{
@@ -119,8 +114,7 @@ void
ACEXML_SAXPrint_Handler::startElement (const ACEXML_Char *,
const ACEXML_Char *,
const ACEXML_Char *qName,
- ACEXML_Attributes *alist
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ ACEXML_Attributes *alist)
{
@@ -141,7 +135,7 @@ ACEXML_SAXPrint_Handler::startElement (const ACEXML_Char *,
void
ACEXML_SAXPrint_Handler::startPrefixMapping (const ACEXML_Char * ,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// ACE_DEBUG ((LM_DEBUG,
// ACE_TEXT ("* Event startPrefixMapping () ***************\n")));
@@ -155,7 +149,7 @@ ACEXML_SAXPrint_Handler::startPrefixMapping (const ACEXML_Char * ,
void
ACEXML_SAXPrint_Handler::notationDecl (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -164,7 +158,7 @@ void
ACEXML_SAXPrint_Handler::unparsedEntityDecl (const ACEXML_Char *,
const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
}
@@ -173,7 +167,7 @@ ACEXML_SAXPrint_Handler::unparsedEntityDecl (const ACEXML_Char *,
ACEXML_InputSource *
ACEXML_SAXPrint_Handler::resolveEntity (const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *)
{
// No-op.
return 0;
@@ -185,8 +179,7 @@ ACEXML_SAXPrint_Handler::resolveEntity (const ACEXML_Char *,
* Receive notification of a recoverable error.
*/
void
-ACEXML_SAXPrint_Handler::error (ACEXML_SAXParseException & ex
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_SAXPrint_Handler::error (ACEXML_SAXParseException & ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
(this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
@@ -196,8 +189,7 @@ ACEXML_SAXPrint_Handler::error (ACEXML_SAXParseException & ex
}
void
-ACEXML_SAXPrint_Handler::fatalError (ACEXML_SAXParseException & ex
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_SAXPrint_Handler::fatalError (ACEXML_SAXParseException & ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
(this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
@@ -207,8 +199,7 @@ ACEXML_SAXPrint_Handler::fatalError (ACEXML_SAXParseException & ex
}
void
-ACEXML_SAXPrint_Handler::warning (ACEXML_SAXParseException & ex
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_SAXPrint_Handler::warning (ACEXML_SAXParseException & ex)
{
ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
(this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
diff --git a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h b/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h
index 1f7ba8381b4..88e7b8b1c1b 100644
--- a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h
+++ b/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h
@@ -43,14 +43,13 @@ public:
*/
virtual void characters (const ACEXML_Char *ch,
size_t start,
- size_t length
- ACEXML_ENV_ARG_DECL)
+ size_t length)
;
/*
* Receive notification of the end of a document.
*/
- virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL)
+ virtual void endDocument (void)
;
/*
@@ -58,46 +57,40 @@ public:
*/
virtual void endElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *qName);
/*
* End the scope of a prefix-URI mapping.
*/
- virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL)
- ;
+ virtual void endPrefixMapping (const ACEXML_Char *prefix);
/*
* Receive notification of ignorable whitespace in element content.
*/
virtual void ignorableWhitespace (const ACEXML_Char *ch,
int start,
- int length ACEXML_ENV_ARG_DECL)
- ;
+ int length);
/*
* Receive notification of a processing instruction.
*/
virtual void processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *data);
/*
* Receive an object for locating the origin of SAX document events.
*/
- virtual void setDocumentLocator (ACEXML_Locator *locator) ;
+ virtual void setDocumentLocator (ACEXML_Locator *locator);
/*
* Receive notification of a skipped entity.
*/
- virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
- ;
+ virtual void skippedEntity (const ACEXML_Char *name);
/*
* Receive notification of the beginning of a document.
*/
- virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL)
- ;
+ virtual void startDocument (void);
/*
* Receive notification of the beginning of an element.
@@ -105,15 +98,13 @@ public:
virtual void startElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName,
- ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL)
- ;
+ ACEXML_Attributes *atts);
/*
* Begin the scope of a prefix-URI Namespace mapping.
*/
virtual void startPrefixMapping (const ACEXML_Char *prefix,
- const ACEXML_Char *uri ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *uri);
// *** Methods inherit from ACEXML_DTDHandler.
@@ -122,8 +113,7 @@ public:
*/
virtual void notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *systemId);
/*
* Receive notification of an unparsed entity declaration event.
@@ -131,8 +121,7 @@ public:
virtual void unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *notationName);
// Methods inherit from ACEXML_EnitityResolver.
@@ -140,28 +129,24 @@ public:
* Allow the application to resolve external entities.
*/
virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *systemId);
// Methods inherit from ACEXML_ErrorHandler.
/*
* Receive notification of a recoverable error.
*/
- virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void error (ACEXML_SAXParseException &exception);
/*
* Receive notification of a non-recoverable error.
*/
- virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void fatalError (ACEXML_SAXParseException &exception);
/*
* Receive notification of a warning.
*/
- virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ;
+ virtual void warning (ACEXML_SAXParseException &exception);
void inc_indent ();
void dec_indent ();
diff --git a/ACE/ACEXML/examples/SAXPrint/main.cpp b/ACE/ACEXML/examples/SAXPrint/main.cpp
index b43b1247c63..551ae0d288c 100644
--- a/ACE/ACEXML/examples/SAXPrint/main.cpp
+++ b/ACE/ACEXML/examples/SAXPrint/main.cpp
@@ -34,7 +34,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACEXML_Char* filename = 0;
int sax = 0; // Use SAXPrint handler or not.
int str = 0;
+#ifdef USE_ZZIP
int zip = 0;
+#endif
ACEXML_Char* url = 0;
ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("sf:lu:z"));
@@ -57,7 +59,6 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
url = get_opt.opt_arg();
break;
case 'z':
- zip = 1;
#ifndef USE_ZZIP
ACE_ERROR ((LM_ERROR, ACE_TEXT ("ZZIPLIB support has not been")
ACE_TEXT (" compiled in. Refer to ")
@@ -65,6 +66,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_TEXT ("information.\n")));
return -1;
#else
+ zip = 1;
break;
#endif /* USE_ZZIP */
default:
@@ -153,31 +155,26 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
parser.setDTDHandler (handler);
parser.setErrorHandler (handler);
parser.setEntityResolver (handler);
- ACEXML_DECLARE_NEW_ENV;
- ACEXML_TRY_EX (FIRST)
+ try
{
- parser.parse (&input ACEXML_ENV_ARG_PARAMETER);
- ACEXML_TRY_CHECK_EX (FIRST);
+ parser.parse (&input);
}
- ACEXML_CATCH (ACEXML_Exception, ex)
+ catch (const ACEXML_Exception& ex)
{
ex.print();
ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred. Exiting...\n")));
}
- ACEXML_ENDTRY;
- ACEXML_TRY_EX (SECOND)
+ try
{
- parser.parse (&input ACEXML_ENV_ARG_PARAMETER);
- ACEXML_TRY_CHECK_EX (SECOND);
+ parser.parse (&input);
}
- ACEXML_CATCH (ACEXML_SAXException, ex)
+ catch (const ACEXML_SAXException& ex)
{
ex.print();
ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred. Exiting...\n")));
return 1;
}
- ACEXML_ENDTRY;
// ACEXML_TRY_EX (THIRD)
// {
// parser.parse (&input ACEXML_ENV_ARG_PARAMETER);
diff --git a/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp b/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp
index ccebd4b9098..2401a18f79c 100644
--- a/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp
+++ b/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp
@@ -36,8 +36,7 @@ ACEXML_Debug_Attribute_Builder::getName (void)
}
int
-ACEXML_Debug_Attribute_Builder::setAttType (const ATT_TYPE type
- ACEXML_ENV_ARG_DECL)
+ACEXML_Debug_Attribute_Builder::setAttType (const ATT_TYPE type)
{
if (this->type_ == ERROR_TYPE)
{
@@ -49,8 +48,7 @@ ACEXML_Debug_Attribute_Builder::setAttType (const ATT_TYPE type
}
int
-ACEXML_Debug_Attribute_Builder::insertList (const ACEXML_Char *n
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Debug_Attribute_Builder::insertList (const ACEXML_Char *n)
{
ACEXML_String str (n, 0, 0);
@@ -60,8 +58,7 @@ ACEXML_Debug_Attribute_Builder::insertList (const ACEXML_Char *n
int
ACEXML_Debug_Attribute_Builder::setDefault (const DEFAULT_DECL def,
- const ACEXML_Char *value
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *value)
{
this->default_decl_ = def;
this->default_value_.set (value, 0);
@@ -159,7 +156,7 @@ ACEXML_Debug_Attributes_Builder::~ACEXML_Debug_Attributes_Builder ()
int
ACEXML_Debug_Attributes_Builder::setElement (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *qName)
{
this->element_name_.set (qName, 0);
return 0;
@@ -177,7 +174,8 @@ ACEXML_Debug_Attributes_Builder::getAttribute_Def_Builder ()
}
int
-ACEXML_Debug_Attributes_Builder::insertAttribute (ACEXML_Attribute_Def_Builder *def ACEXML_ENV_ARG_DECL)
+ACEXML_Debug_Attributes_Builder::insertAttribute (
+ ACEXML_Attribute_Def_Builder *def)
{
ACEXML_Attribute_Def_Builder::VAR ptr (def);
diff --git a/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h b/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h
index e22b6ef936a..c7ddf073eb1 100644
--- a/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h
+++ b/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h
@@ -50,19 +50,17 @@ public:
/**
* Set the attribute type.
*/
- virtual int setAttType (const ATT_TYPE type ACEXML_ENV_ARG_DECL);
+ virtual int setAttType (const ATT_TYPE type);
/**
* Insert an element for NOTATION or ENUMERATION type attribute.
*/
- virtual int insertList (const ACEXML_Char *Name ACEXML_ENV_ARG_DECL);
+ virtual int insertList (const ACEXML_Char *Name);
/**
* Set default attribute declaration.
*/
- virtual int setDefault (const DEFAULT_DECL def,
- const ACEXML_Char *value ACEXML_ENV_ARG_DECL)
- ;
+ virtual int setDefault (const DEFAULT_DECL def, const ACEXML_Char *value);
/**
* Check validity of the current attribute definition being built.
diff --git a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp b/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp
index d0745d13bfc..22794dd6112 100644
--- a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp
+++ b/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp
@@ -22,7 +22,7 @@ ACEXML_Debug_DTD_Manager::getElement_Def_Builder ()
}
int
-ACEXML_Debug_DTD_Manager::insertElement_Definition (ACEXML_Element_Def_Builder *def ACEXML_ENV_ARG_DECL)
+ACEXML_Debug_DTD_Manager::insertElement_Definition (ACEXML_Element_Def_Builder *def)
{
ACEXML_Element_Def_Builder::VAR ptr (def);
@@ -46,7 +46,7 @@ ACEXML_Debug_DTD_Manager::getAttribute_Def_Builder ()
}
int
-ACEXML_Debug_DTD_Manager::insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def ACEXML_ENV_ARG_DECL)
+ACEXML_Debug_DTD_Manager::insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def)
{
ACEXML_Attributes_Def_Builder::VAR ptr (def);
if (def != 0)
@@ -59,13 +59,9 @@ ACEXML_Debug_DTD_Manager::insertAttributes_Definition (ACEXML_Attributes_Def_Bui
}
ACEXML_Validator *
-ACEXML_Debug_DTD_Manager::getValidator (const ACEXML_Char *namespaceURI,
- const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
+ACEXML_Debug_DTD_Manager::getValidator (const ACEXML_Char *,
+ const ACEXML_Char *,
+ const ACEXML_Char *)
{
- ACE_UNUSED_ARG (namespaceURI);
- ACE_UNUSED_ARG (localName);
- ACE_UNUSED_ARG (qName);
-
ACEXML_THROW_RETURN (ACEXML_SAXNotSupportedException (ACE_TEXT ("getValidator()")), 0);
}
diff --git a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.h b/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.h
index 0849d95ecb2..dbcbb1d0c5c 100644
--- a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.h
+++ b/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.h
@@ -44,7 +44,7 @@ public:
*
* @retval 0 if success, -1 if error.
*/
- virtual int insertElement_Definition (ACEXML_Element_Def_Builder *def ACEXML_ENV_ARG_DECL);
+ virtual int insertElement_Definition (ACEXML_Element_Def_Builder *def);
/**
* Acquire a pointer to an attributes definition builder.
@@ -57,7 +57,7 @@ public:
*
* @retval 0 if success, -1 otherwise.
*/
- virtual int insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def ACEXML_ENV_ARG_DECL);
+ virtual int insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def);
/**
* Acquire an element validator to validate an XML element.
@@ -67,7 +67,7 @@ public:
*/
virtual ACEXML_Validator *getValidator (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char *qName);
};
#include /**/ "ace/post.h"
diff --git a/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp b/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp
index da422a3429f..6890a9626c2 100644
--- a/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp
+++ b/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp
@@ -17,14 +17,14 @@ ACEXML_Debug_Element_Builder::~ACEXML_Debug_Element_Builder ()
int
ACEXML_Debug_Element_Builder::setElementName (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *qName)
{
this->element_.set (qName, 0);
return 0;
}
int
-ACEXML_Debug_Element_Builder::setContentType (CONTENT_TYPE type ACEXML_ENV_ARG_DECL)
+ACEXML_Debug_Element_Builder::setContentType (CONTENT_TYPE type)
{
if (this->type_ == UNDEFINED)
{
@@ -38,9 +38,9 @@ ACEXML_Debug_Element_Builder::setContentType (CONTENT_TYPE type ACEXML_ENV_ARG_D
int
ACEXML_Debug_Element_Builder::insertMixedElement (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *qName)
{
- ACEXML_Element_Tree_Name_Node *node;
+ ACEXML_Element_Tree_Name_Node *node = 0;
// @@ We should "throw" an exception here instead of returning -1.
ACE_NEW_RETURN (node,
@@ -60,7 +60,7 @@ ACEXML_Debug_Element_Builder::insertMixedElement (const ACEXML_Char *,
int
ACEXML_Debug_Element_Builder::startChildGroup ()
{
- ACEXML_Element_Tree_List_Node *lnode;
+ ACEXML_Element_Tree_List_Node *lnode = 0;
ACE_NEW_RETURN (lnode,
ACEXML_Element_Tree_List_Node (),
@@ -81,7 +81,7 @@ ACEXML_Debug_Element_Builder::startChildGroup ()
}
int
-ACEXML_Debug_Element_Builder::endChildGroup (CARDINALITY ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_Debug_Element_Builder::endChildGroup (CARDINALITY )
{
this->active_list_.pop ();
return 0;
@@ -104,9 +104,9 @@ ACEXML_Debug_Element_Builder::setSequence ()
int
ACEXML_Debug_Element_Builder::insertElement (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *qName)
{
- ACEXML_Element_Tree_Name_Node *node;
+ ACEXML_Element_Tree_Name_Node *node = 0;
// @@ We should "throw" an exception here instead of returning -1.
ACE_NEW_RETURN (node,
diff --git a/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h b/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h
index dc1f7765441..d892408fe4f 100644
--- a/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h
+++ b/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h
@@ -44,24 +44,21 @@ public:
*/
virtual int setElementName (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *qName);
/**
* Define the content type of the element.
*
* @retval 0 if valid, -1 otherwise.
*/
- virtual int setContentType (CONTENT_TYPE type ACEXML_ENV_ARG_DECL)
- ;
+ virtual int setContentType (CONTENT_TYPE type);
/**
* Insert one more element into Mixed definition.
*/
virtual int insertMixedElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- ;
+ const ACEXML_Char *qName);
/**
* Start a new group of children.
@@ -73,7 +70,7 @@ public:
*
* @retval 0 on success.
*/
- virtual int endChildGroup (CARDINALITY card ACEXML_ENV_ARG_DECL);
+ virtual int endChildGroup (CARDINALITY card);
/**
* Set the type of current child group to Choice.
@@ -100,7 +97,7 @@ public:
*/
virtual int insertElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
- const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *qName)
;
/**
diff --git a/ACE/ACEXML/parser/parser/Parser.cpp b/ACE/ACEXML/parser/parser/Parser.cpp
index e252c20ed65..e86d2bde39f 100644
--- a/ACE/ACEXML/parser/parser/Parser.cpp
+++ b/ACE/ACEXML/parser/parser/Parser.cpp
@@ -84,42 +84,33 @@ ACEXML_Parser::initialize(ACEXML_InputSource* input)
}
void
-ACEXML_Parser::parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::parse (const ACEXML_Char *systemId)
{
ACEXML_InputSource* input = 0;
ACE_NEW (input, ACEXML_InputSource (systemId));
- this->parse (input ACEXML_ENV_ARG_PARAMETER);
+ this->parse (input);
}
void
-ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::parse (ACEXML_InputSource *input)
{
if (input == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid input source")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error(ACE_TEXT ("Invalid input source"));
}
if (this->content_handler_ == 0)
{
- this->fatal_error (ACE_TEXT ("No content handlers defined. Exiting..")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error (ACE_TEXT ("No content handlers defined. Exiting.."));
}
if (this->validate_ && this->dtd_handler_ == 0)
{
- this->fatal_error (ACE_TEXT ("No DTD handlers defined. Exiting..")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error (ACE_TEXT ("No DTD handlers defined. Exiting.."));
}
-
if (this->initialize(input) == -1)
{
- this->fatal_error (ACE_TEXT ("Failed to initialize parser state")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error (ACE_TEXT ("Failed to initialize parser state"));
}
// Set up Locator.
this->content_handler_->setDocumentLocator (this->current_->getLocator());
@@ -132,8 +123,7 @@ ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
fwd = this->peek();
if (fwd == 'x' && !xmldecl_defined)
{
- this->parse_xml_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->parse_xml_decl ();
xmldecl_defined = 1;
}
}
@@ -141,12 +131,9 @@ ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
if (this->validate_ && !xmldecl_defined)
{
this->fatal_error (ACE_TEXT ("Expecting an XMLDecl at the beginning of")
- ACE_TEXT (" a valid document")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ ACE_TEXT (" a valid document"));
}
- this->content_handler_->startDocument (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->content_handler_->startDocument ();
int doctype_defined = 0;
for (int prolog_done = 0; prolog_done == 0; )
@@ -158,9 +145,7 @@ ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
if (this->skip_whitespace () != '<')
{
this->fatal_error (ACE_TEXT ("Expecting '<' at the beginning of ")
- ACE_TEXT ("Misc section")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ ACE_TEXT ("Misc section"));
}
fwd = this->peek();
}
@@ -168,8 +153,7 @@ ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
{
case '?':
this->get();
- this->parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->parse_processing_instruction ();
xmldecl_defined = 1;
break;
case '!':
@@ -178,8 +162,7 @@ ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
if (fwd == 'D' && !doctype_defined) // DOCTYPE
{
// This will also take care of the trailing MISC block if any.
- this->parse_doctypedecl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->parse_doctypedecl ();
doctype_defined = 1;
// Now that we have a DOCTYPE Decl defined, we shouldn't
// accept XML Decl any longer
@@ -187,25 +170,19 @@ ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
}
else if (fwd == 'D')
{
- this->fatal_error (ACE_TEXT ("Duplicate DOCTYPE declaration")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error (ACE_TEXT ("Duplicate DOCTYPE declaration"));
}
else if (fwd == '-') // COMMENT
{
if (this->parse_comment () < 0)
{
- this->fatal_error(ACE_TEXT ("Invalid comment in document")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error(ACE_TEXT ("Invalid comment in document"));
}
xmldecl_defined = 1;
}
break;
case 0:
- this->fatal_error (ACE_TEXT ("Unexpected end-of-file")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error (ACE_TEXT ("Unexpected end-of-file"));
default: // Root element begins
prolog_done = 1;
break;
@@ -214,17 +191,13 @@ ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
if (this->validate_ && !doctype_defined)
{
- this->warning (ACE_TEXT ("No doctypeDecl in valid document")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->warning (ACE_TEXT ("No doctypeDecl in valid document"));
}
// Now parse root element.
- this->parse_element (1 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->parse_element (1);
- this->content_handler_->endDocument (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->content_handler_->endDocument ();
// Reset the parser state
this->reset();
@@ -232,29 +205,24 @@ ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL)
}
int
-ACEXML_Parser::parse_doctypedecl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_doctypedecl (void)
{
if (this->parse_token (ACE_TEXT ("DOCTYPE")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword DOCTYPE in a doctypedecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword DOCTYPE in a doctypedecl"));
}
ACEXML_Char nextch = 0;
if (this->skip_whitespace_count (&nextch) == 0)
{
this->fatal_error(ACE_TEXT ("Expecting a space between DOCTYPE keyword ")
- ACE_TEXT ("and name") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("and name"));
}
this->doctype_ = this->parse_name ();
if (this->doctype_ == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid DOCTYPE name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid DOCTYPE name"));
}
int count = this->skip_whitespace_count (&nextch);
@@ -263,13 +231,10 @@ ACEXML_Parser::parse_doctypedecl (ACEXML_ENV_SINGLE_ARG_DECL)
if (count == 0)
{
this->fatal_error(ACE_TEXT ("Expecting a space between DOCTYPE")
- ACE_TEXT ("keyword and name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("keyword and name"));
}
this->external_dtd_ = 1;
- this->parse_external_dtd (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_external_dtd ();
}
nextch = this->skip_whitespace ();
@@ -277,37 +242,30 @@ ACEXML_Parser::parse_doctypedecl (ACEXML_ENV_SINGLE_ARG_DECL)
{
case '[':
this->internal_dtd_ = 1; // Internal DTD definition
- this->parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_internal_dtd ();
break;
case '>': // End of DTD definition
// This is an XML document without a doctypedecl.
if (this->validate_ && !this->external_dtd_)
{
- this->fatal_error (ACE_TEXT ("No DTD defined")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("No DTD defined"));
}
return 0;
case '0':
- this->fatal_error (ACE_TEXT ("Unexpected end-of-file")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Unexpected end-of-file"));
default:
break;
}
if (this->skip_whitespace() != '>')
{
- this->fatal_error(ACE_TEXT ("Expecting '>' at end of doctypedecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting '>' at end of doctypedecl"));
}
return 0;
}
int
-ACEXML_Parser::parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_internal_dtd (void)
{
this->ref_state_ = ACEXML_ParserInt::IN_INT_DTD;
ACEXML_Char nextch = this->skip_whitespace ();
@@ -319,40 +277,30 @@ ACEXML_Parser::parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_DECL)
switch (nextch)
{
case '!':
- this->parse_markup_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_markup_decl ();
break;
case '?':
- this->parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_processing_instruction ();
break;
default:
- this->fatal_error (ACE_TEXT ("Invalid internal subset")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid internal subset"));
break;
}
break;
case '%':
this->has_pe_refs_ = 1;
- this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_PE_reference ();
break;
case ']': // End of internal definitions.
return 0;
case '&':
- this->fatal_error (ACE_TEXT ("Invalid Reference in internal DTD")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid Reference in internal DTD"));
break;
case 0:
- this->pop_context (0 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->pop_context (0);
break;
default:
- this->fatal_error (ACE_TEXT ("Invalid content in internal subset")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid content in internal subset"));
};
nextch = this->skip_whitespace ();
} while (1);
@@ -361,17 +309,14 @@ ACEXML_Parser::parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_DECL)
}
int
-ACEXML_Parser::parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_external_dtd (void)
{
this->ref_state_ = ACEXML_ParserInt::IN_EXT_DTD;
ACEXML_Char* publicId = 0;
ACEXML_Char* systemId = 0;
- if (this->parse_external_id (publicId, systemId
- ACEXML_ENV_ARG_PARAMETER) != 0)
+ if (this->parse_external_id (publicId, systemId) != 0)
{
- this->fatal_error (ACE_TEXT ("Error in parsing ExternalID")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Error in parsing ExternalID"));
}
if (this->validate_)
{
@@ -381,9 +326,7 @@ ACEXML_Parser::parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->entity_resolver_)
{
ip = this->entity_resolver_->resolveEntity (publicId,
- (uri ? uri : systemId)
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ (uri ? uri : systemId));
}
if (ip)
{
@@ -396,22 +339,19 @@ ACEXML_Parser::parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL)
ACEXML_CharStream* cstream = factory.create_stream (uri ?
uri: systemId);
if (!cstream) {
- this->fatal_error (ACE_TEXT ("Invalid input source")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid input source"));
}
if (this->switch_input (cstream, systemId, publicId) != 0)
return -1;
}
- this->parse_external_subset (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_external_subset ();
}
return 0;
}
int
-ACEXML_Parser::parse_external_subset (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_external_subset (void)
{
this->ref_state_ = ACEXML_ParserInt::IN_EXT_DTD;
this->external_subset_ = 1;
@@ -427,60 +367,49 @@ ACEXML_Parser::parse_external_subset (ACEXML_ENV_SINGLE_ARG_DECL)
case '!':
nextch = this->peek();
if (nextch == '[')
- this->parse_conditional_section (ACEXML_ENV_SINGLE_ARG_PARAMETER);
+ this->parse_conditional_section ();
else
- this->parse_markup_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_markup_decl ();
break;
case '?':
nextch = this->peek();
if (nextch == 'x')
- this->parse_text_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
+ this->parse_text_decl ();
else
- this->parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_processing_instruction ();
break;
default:
- this->fatal_error (ACE_TEXT ("Invalid content in external DTD")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid content in external DTD"));
}
break;
case '%':
- this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_PE_reference ();
break;
case 0:
- nrelems = this->pop_context (0 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ nrelems = this->pop_context (0);
if (nrelems == 1)
return 0;
break;
default:
- this->fatal_error (ACE_TEXT ("Invalid content in external DTD")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid content in external DTD"));
}
nextch = this->skip_whitespace();
} while (1);
}
int
-ACEXML_Parser::parse_conditional_section (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_conditional_section (void)
{
ACEXML_Char ch = this->get ();
int include = 0;
if (ch != '[')
{
- this->fatal_error(ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Internal Parser Error"));
}
ch = this->skip_whitespace();
if (ch == '%')
{
- this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_PE_reference ();
ch = this->skip_whitespace();
}
if (ch == 'I')
@@ -492,9 +421,7 @@ ACEXML_Parser::parse_conditional_section (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->parse_token (ACE_TEXT ("CLUDE")) < 0)
{
this->fatal_error (ACE_TEXT ("Expecting keyword INCLUDE in ")
- ACE_TEXT ("conditionalSect")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("conditionalSect"));
}
include = 1;
break;
@@ -502,48 +429,38 @@ ACEXML_Parser::parse_conditional_section (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->parse_token (ACE_TEXT ("GNORE")) < 0)
{
this->fatal_error (ACE_TEXT ("Expecting keyword IGNORE in ")
- ACE_TEXT ("conditionalSect")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("conditionalSect"));
}
include = 0;
break;
default:
- this->fatal_error (ACE_TEXT ("Invalid conditionalSect")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid conditionalSect"));
}
ACEXML_Char fwd = '\xFF';
this->skip_whitespace_count (&fwd);
if (fwd == 0)
{
this->get(); // Consume the 0
- this->pop_context (0 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->pop_context (0);
}
}
else
{
- this->fatal_error (ACE_TEXT ("Invalid conditionalSect")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid conditionalSect"));
}
if (this->skip_whitespace() != '[')
{
- this->fatal_error (ACE_TEXT ("Expecting '[' in conditionalSect")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Expecting '[' in conditionalSect"));
}
if (include)
- this->parse_includesect (ACEXML_ENV_SINGLE_ARG_PARAMETER);
+ this->parse_includesect ();
else
- this->parse_ignoresect (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_ignoresect ();
return 0;
}
int
-ACEXML_Parser::parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_ignoresect (void)
{
ACEXML_Char nextch = this->skip_whitespace();
int count = 0;
@@ -558,7 +475,7 @@ ACEXML_Parser::parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->peek() == '[')
{
this->get();
- count++;
+ ++count;
}
}
break;
@@ -582,9 +499,7 @@ ACEXML_Parser::parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL)
if (count != 0)
{
this->fatal_error (ACE_TEXT ("Invalid Conditional Section/PE ")
- ACE_TEXT ("Nesting ")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("Nesting "));
}
default:
break;
@@ -598,7 +513,7 @@ ACEXML_Parser::parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL)
}
int
-ACEXML_Parser::parse_includesect (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_includesect (void)
{
ACEXML_Char nextch = this->skip_whitespace();
do {
@@ -611,31 +526,24 @@ ACEXML_Parser::parse_includesect (ACEXML_ENV_SINGLE_ARG_DECL)
case '!':
nextch = this->peek();
if (nextch == '[')
- this->parse_conditional_section (ACEXML_ENV_SINGLE_ARG_PARAMETER);
+ this->parse_conditional_section ();
else
- this->parse_markup_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_markup_decl ();
break;
case '?':
nextch = this->peek();
- this->parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_processing_instruction ();
break;
default:
- this->fatal_error (ACE_TEXT ("Invalid includeSect")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid includeSect"));
}
break;
case '%':
- this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_PE_reference ();
break;
case 0: // [VC: Proper Conditional Section/PE Nesting]
this->fatal_error (ACE_TEXT ("Invalid Conditional Section/PE ")
- ACE_TEXT ("Nesting ")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("Nesting "));
case ']':
if (this->peek() == ']')
{
@@ -647,16 +555,14 @@ ACEXML_Parser::parse_includesect (ACEXML_ENV_SINGLE_ARG_DECL)
}
}
default:
- this->fatal_error (ACE_TEXT ("Invalid includeSect")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid includeSect"));
}
nextch = this->skip_whitespace();
} while (1);
}
int
-ACEXML_Parser::parse_markup_decl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_markup_decl (void)
{
ACEXML_Char nextch = this->peek ();
switch (nextch)
@@ -667,54 +573,41 @@ ACEXML_Parser::parse_markup_decl (ACEXML_ENV_SINGLE_ARG_DECL)
switch (nextch)
{
case 'L':
- this->parse_element_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_element_decl ();
break;
case 'N':
- this->parse_entity_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_entity_decl ();
break;
default:
- this->fatal_error(ACE_TEXT ("Expecting keyword ELEMENT/ENTITY")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword ELEMENT/ENTITY"));
}
break;
case 'A': // An ATTLIST decl
- this->parse_attlist_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_attlist_decl ();
break;
case 'N': // A NOTATION decl
- this->parse_notation_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_notation_decl ();
break;
case '-': // a comment.
if (this->parse_comment () < 0)
{
- this->fatal_error(ACE_TEXT ("Invalid comment")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid comment"));
}
break;
case 0: // [VC: Proper Declaration/PE Nesting]
- this->fatal_error (ACE_TEXT ("Unexpected end-of-file")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Unexpected end-of-file"));
default:
- this->fatal_error (ACE_TEXT ("Invalid markupDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid markupDecl"));
}
return 0;
}
int
ACEXML_Parser::parse_external_id (ACEXML_Char *&publicId,
- ACEXML_Char *&systemId
- ACEXML_ENV_ARG_DECL)
+ ACEXML_Char *&systemId)
{
publicId = systemId = 0;
ACEXML_Char nextch = this->get ();
@@ -725,53 +618,39 @@ ACEXML_Parser::parse_external_id (ACEXML_Char *&publicId,
if (this->parse_token (ACE_TEXT ("YSTEM")) < 0 ||
this->skip_whitespace_count () < 1)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword SYSTEM")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword SYSTEM"));
}
if (this->parse_system_literal (systemId) != 0)
{
- this->fatal_error(ACE_TEXT ("Invalid systemLiteral")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid systemLiteral"));
}
break;
case 'P': // External PUBLIC id or previously defined PUBLIC id.
if (this->parse_token (ACE_TEXT ("UBLIC")) < 0 ||
this->skip_whitespace_count () < 1)
{
- this->fatal_error(ACE_TEXT ("Expecing keyword PUBLIC")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword PUBLIC"));
}
if (this->parse_pubid_literal (publicId) != 0)
{
- this->fatal_error(ACE_TEXT ("Invalid PubidLiteral")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid PubidLiteral"));
}
this->skip_whitespace_count(&fwd);
if (fwd == '\'' || fwd == '"')
{
if (this->parse_system_literal (systemId) != 0)
{
- this->fatal_error(ACE_TEXT ("Invalid systemLiteral")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid systemLiteral"));
}
}
else if (this->ref_state_ != ACEXML_ParserInt::IN_NOTATION)
{
this->fatal_error(ACE_TEXT ("Expecting systemLiteral after a ")
- ACE_TEXT ("PUBLIC keyword")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("PUBLIC keyword"));
}
break;
default:
- this->fatal_error(ACE_TEXT ("Invalid system/public Literal")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid system/public Literal"));
}
return 0;
}
@@ -820,21 +699,19 @@ ACEXML_Parser::normalize_systemid (const ACEXML_Char* systemId)
}
void
-ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::parse_element (int is_root)
{
// Parse STag.
const ACEXML_Char *startname = this->parse_name ();
if (startname == 0)
{
- this->fatal_error (ACE_TEXT ("Unexpected end-of-file")
- ACEXML_ENV_ARG_PARAMETER);
+ this->fatal_error (ACE_TEXT ("Unexpected end-of-file"));
return;
}
if (is_root && this->doctype_ != 0
&& ACE_OS::strcmp (startname, this->doctype_) != 0)
{
- this->fatal_error (ACE_TEXT ("Root element different from DOCTYPE")
- ACEXML_ENV_ARG_PARAMETER);
+ this->fatal_error (ACE_TEXT ("Root element different from DOCTYPE"));
return ;
}
ACEXML_AttributesImpl attributes;
@@ -851,34 +728,24 @@ ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL)
switch (ch)
{
case 0:
- this->fatal_error(ACE_TEXT ("Internal Parser error")
- ACEXML_ENV_ARG_PARAMETER);
+ this->fatal_error(ACE_TEXT ("Internal Parser error"));
return;
case '/':
if (this->get () != '>')
{
this->fatal_error(ACE_TEXT ("Expecting '>' at end of element ")
- ACE_TEXT ("definition")
- ACEXML_ENV_ARG_PARAMETER);
+ ACE_TEXT ("definition"));
return;
}
this->xml_namespace_.processName(startname, ns_uri,
ns_lname, 0);
this->prefix_mapping (this->xml_namespace_.getPrefix(ns_uri),
- ns_uri, 1
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ ns_uri, 1);
this->content_handler_->startElement(ns_uri, ns_lname,
- startname, &attributes
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
- this->content_handler_->endElement (ns_uri, ns_lname, startname
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ startname, &attributes);
+ this->content_handler_->endElement (ns_uri, ns_lname, startname);
this->prefix_mapping (this->xml_namespace_.getPrefix(ns_uri),
- ns_uri, 0
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ ns_uri, 0);
if (ns_flag)
{
this->xml_namespace_.popContext ();
@@ -889,13 +756,9 @@ ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL)
this->xml_namespace_.processName (startname, ns_uri,
ns_lname, 0);
this->prefix_mapping (this->xml_namespace_.getPrefix(ns_uri),
- ns_uri, 1
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ ns_uri, 1);
this->content_handler_->startElement(ns_uri, ns_lname, startname,
- &attributes
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ &attributes);
start_element_done = 1;
break;
default:
@@ -904,10 +767,9 @@ ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL)
if (attname == 0 ||
this->skip_equal () != 0 ||
- this->parse_attvalue (attvalue ACEXML_ENV_ARG_PARAMETER) != 0)
+ this->parse_attvalue (attvalue) != 0)
{
- this->fatal_error(ACE_TEXT ("Error reading attribute value")
- ACEXML_ENV_ARG_PARAMETER);
+ this->fatal_error(ACE_TEXT ("Error reading attribute value"));
return;
}
@@ -931,8 +793,7 @@ ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL)
attvalue) == -1)
{
this->fatal_error(ACE_TEXT ("Duplicate definition of ")
- ACE_TEXT ("prefix")
- ACEXML_ENV_ARG_PARAMETER);
+ ACE_TEXT ("prefix"));
return;
}
}
@@ -948,8 +809,7 @@ ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL)
this->fatal_error(ACE_TEXT ("Duplicate attribute ")
ACE_TEXT ("definition. Hint: Try ")
ACE_TEXT ("setting namespace_prefix")
- ACE_TEXT ("es feature to 0")
- ACEXML_ENV_ARG_PARAMETER);
+ ACE_TEXT ("es feature to 0"));
return;
}
}
@@ -957,8 +817,7 @@ ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL)
{
this->fatal_error(ACE_TEXT ("One of namespaces or ")
ACE_TEXT ("namespace_prefixes should be")
- ACE_TEXT (" declared")
- ACEXML_ENV_ARG_PARAMETER);
+ ACE_TEXT (" declared"));
return;
}
}
@@ -971,23 +830,21 @@ ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL)
attvalue) == -1)
{
this->fatal_error(ACE_TEXT ("Duplicate attribute ")
- ACE_TEXT ("definition")
- ACEXML_ENV_ARG_PARAMETER);
+ ACE_TEXT ("definition"));
return;
}
}
break;
}
}
- if (this->parse_content (startname, ns_uri, ns_lname, ns_flag
- ACEXML_ENV_ARG_PARAMETER) != 0)
+ if (this->parse_content (startname, ns_uri, ns_lname, ns_flag) != 0)
return;
}
int
ACEXML_Parser::parse_content (const ACEXML_Char* startname,
const ACEXML_Char*& ns_uri,
- const ACEXML_Char*& ns_lname, int ns_flag ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char*& ns_lname, int ns_flag)
{
ACEXML_Char *cdata;
size_t cdata_length = 0;
@@ -999,17 +856,14 @@ ACEXML_Parser::parse_content (const ACEXML_Char* startname,
switch (ch)
{
case 0:
- this->pop_context (1 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->pop_context (1);
break;
case '<':
// Push out old 'characters' event.
if (cdata_length != 0)
{
cdata = this->obstack_.freeze ();
- this->content_handler_->characters (cdata, 0, cdata_length
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->content_handler_->characters (cdata, 0, cdata_length);
this->obstack_.unwind (cdata);
cdata_length = 0;
}
@@ -1024,29 +878,22 @@ ACEXML_Parser::parse_content (const ACEXML_Char* startname,
if (this->parse_comment () < 0)
{
this->fatal_error(ACE_TEXT ("Invalid comment in ")
- ACE_TEXT ("document")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("document"));
}
}
else if (ch == '[') // a CDATA section.
{
- this->parse_cdata (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_cdata ();
}
else
{
this->fatal_error(ACE_TEXT ("Expecting a CDATA section ")
- ACE_TEXT ("or a comment section")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("or a comment section"));
}
break;
case '?': // a PI.
this->get(); // consume the '?'
- this->parse_processing_instruction
- (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_processing_instruction ();
break;
case '/': // an ETag.
{
@@ -1056,38 +903,30 @@ ACEXML_Parser::parse_content (const ACEXML_Char* startname,
ACE_OS::strcmp (startname, endname) != 0)
{
this->fatal_error(ACE_TEXT ("Name in ETag doesn't ")
- ACE_TEXT ("match name in STag")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("match name in STag"));
}
if (this->skip_whitespace () != '>')
{
this->fatal_error(ACE_TEXT ("Expecting '>' at end ")
- ACE_TEXT ("of element")
- ACEXML_ENV_ARG_PARAMETER);
+ ACE_TEXT ("of element"));
return -1;
}
this->content_handler_->endElement (ns_uri, ns_lname,
- endname
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ endname);
this->prefix_mapping (this->xml_namespace_.getPrefix(ns_uri),
- ns_uri, 0
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ns_uri, 0);
if (this->namespaces_ && ns_flag)
{
- if (this->nested_namespace_ >= 1)
- {
- this->xml_namespace_.popContext ();
- this->nested_namespace_--;
- }
+ if (this->nested_namespace_ >= 1)
+ {
+ this->xml_namespace_.popContext ();
+ this->nested_namespace_--;
+ }
}
return 0;
}
default: // a new nested element?
- this->parse_element (0 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_element (0);
break;
}
break;
@@ -1102,9 +941,7 @@ ACEXML_Parser::parse_content (const ACEXML_Char* startname,
if (this->parse_char_reference (buf, len) != 0)
{
// [WFC: Legal Character]
- this->fatal_error (ACE_TEXT ("Invalid CharRef")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid CharRef"));
}
} while (buf[0] == '&' && this->peek() == '#');
for (size_t j = 0; j < len; ++j)
@@ -1114,10 +951,9 @@ ACEXML_Parser::parse_content (const ACEXML_Char* startname,
else
{
this->ref_state_ = ACEXML_ParserInt::IN_CONTENT;
- int length = this->parse_entity_reference(ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ int const length = this->parse_entity_reference();
if (length == 1)
- cdata_length++;
+ ++cdata_length;
}
break;
case '\x20': case '\x0D': case '\x0A': case '\x09':
@@ -1167,14 +1003,12 @@ ACEXML_Parser::parse_content (const ACEXML_Char* startname,
int
-ACEXML_Parser::parse_cdata (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_cdata (void)
{
if (this->parse_token (ACE_TEXT ("[CDATA[")) < 0)
{
this->fatal_error(ACE_TEXT ("Expecting '[CDATA[' at beginning of CDATA ")
- ACE_TEXT ("section")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("section"));
}
ACEXML_Char ch;
@@ -1192,9 +1026,7 @@ ACEXML_Parser::parse_cdata (ACEXML_ENV_SINGLE_ARG_DECL)
{
ch = this->get();
cdata = this->obstack_.freeze ();
- this->content_handler_->characters (cdata, 0, datalen
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->content_handler_->characters (cdata, 0, datalen);
this->obstack_.unwind(cdata);
return 0;
}
@@ -1209,7 +1041,7 @@ ACEXML_Parser::parse_cdata (ACEXML_ENV_SINGLE_ARG_DECL)
int
-ACEXML_Parser::parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_entity_decl (void)
{
ACEXML_Char nextch = 0;
@@ -1217,8 +1049,7 @@ ACEXML_Parser::parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL)
this->skip_whitespace_count (&nextch) == 0)
{
this->fatal_error (ACE_TEXT ("Expecting keyword ENTITY followed by a ")
- ACE_TEXT ("space") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("space"));
}
int is_GEDecl = 1;
@@ -1229,37 +1060,28 @@ ACEXML_Parser::parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->skip_whitespace_count (&nextch) == 0)
{
this->fatal_error (ACE_TEXT ("Expecting space between % and ")
- ACE_TEXT ("entity name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("entity name"));
}
}
ACEXML_Char *entity_name = this->parse_name ();
if (entity_name == 0)
{
- this->fatal_error (ACE_TEXT ("Invalid entity name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid entity name"));
}
if (this->skip_whitespace_count (&nextch) == 0)
{
this->fatal_error (ACE_TEXT ("Expecting space between entity name and ")
- ACE_TEXT ("entityDef")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("entityDef"));
}
int retval = 0;
if (nextch == '\'' || nextch == '"')
{
ACEXML_Char *entity_value = 0;
- if (this->parse_entity_value (entity_value
- ACEXML_ENV_ARG_PARAMETER) != 0)
+ if (this->parse_entity_value (entity_value) != 0)
{
- this->fatal_error(ACE_TEXT ("Invalid EntityValue")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid EntityValue"));
}
if (is_GEDecl)
retval = this->internal_GE_.add_entity (entity_name,
@@ -1270,46 +1092,35 @@ ACEXML_Parser::parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL)
if (retval < 0)
{
this->fatal_error (ACE_TEXT ("Internal Parser Error in adding")
- ACE_TEXT ("Entity to map")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("Entity to map"));
}
else if (retval == 1)
{
- this->warning (ACE_TEXT ("Duplicate entity found")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->warning (ACE_TEXT ("Duplicate entity found"));
}
}
else
{
- ACEXML_Char *systemid, *publicid;
+ ACEXML_Char *systemid = 0, *publicid = 0;
- this->parse_external_id (publicid, systemid
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_external_id (publicid, systemid);
if (systemid == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid SystemLiteral")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid SystemLiteral"));
}
this->skip_whitespace_count (&nextch);
if (nextch == 'N') // NDATA section followed
{
if (is_GEDecl == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid NDataDecl in PEDef")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid NDataDecl in PEDef"));
}
if ((this->parse_token (ACE_TEXT ("NDATA")) < 0) ||
this->skip_whitespace_count (&nextch) == 0)
{
this->fatal_error(ACE_TEXT ("Expecting keyword NDATA followed ")
- ACE_TEXT ("by a space") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("by a space"));
}
ACEXML_Char *ndata = this->parse_name ();
@@ -1317,141 +1128,106 @@ ACEXML_Parser::parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL)
{
if (!this->notations_.resolve_entity (ndata))
{
- this->fatal_error (ACE_TEXT ("Undeclared Notation name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Undeclared Notation name"));
}
this->dtd_handler_->unparsedEntityDecl(entity_name, publicid,
- systemid, ndata
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ systemid, ndata);
}
}
else
{
if (is_GEDecl)
- retval = this->external_GE_.add_entity (entity_name,
- systemid);
+ retval = this->external_GE_.add_entity (entity_name, systemid);
else
- retval = this->external_PE_.add_entity (entity_name,
- systemid);
+ retval = this->external_PE_.add_entity (entity_name, systemid);
if (retval < 0)
{
- this->fatal_error(ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Internal Parser Error"));
}
else if (retval == 1)
- this->warning(ACE_TEXT ("Duplicate external entity")
- ACEXML_ENV_ARG_PARAMETER);
+ this->warning(ACE_TEXT ("Duplicate external entity"));
if (is_GEDecl)
- retval = this->external_GE_.add_entity (entity_name,
- publicid);
+ retval = this->external_GE_.add_entity (entity_name, publicid);
else
- retval = this->external_PE_.add_entity (entity_name,
- publicid);
+ retval = this->external_PE_.add_entity (entity_name, publicid);
if (retval < 0)
{
- this->fatal_error(ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Internal Parser Error"));
}
else if (retval == 1)
- this->warning (ACE_TEXT ("Duplicate entity definition")
- ACEXML_ENV_ARG_PARAMETER);
+ this->warning (ACE_TEXT ("Duplicate entity definition"));
}
}
// End of ENTITY definition
if (this->skip_whitespace() != '>')
{
- this->fatal_error(ACE_TEXT ("Expecting '>' at end of entityDef")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting '>' at end of entityDef"));
}
return 0;
}
int
-ACEXML_Parser::parse_attlist_decl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_attlist_decl (void)
{
if (this->parse_token (ACE_TEXT ("ATTLIST")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword 'ATTLIST'")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword 'ATTLIST'"));
}
- int count = check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ int count = check_for_PE_reference ();
if (!count)
{
this->fatal_error(ACE_TEXT ("Expecting space between ATTLIST and ")
- ACE_TEXT ("element name") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("element name"));
}
ACEXML_Char *element_name = this->parse_name ();
if (element_name == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid element Name in attlistDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid element Name in attlistDecl"));
}
ACEXML_Char fwd = 0;
count = this->skip_whitespace_count (&fwd);
// Parse AttDef*
while (fwd != '>')
{
- if (!this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER)
+ if (!this->check_for_PE_reference ()
&& !count)
this->fatal_error(ACE_TEXT ("Expecting space between element ")
- ACE_TEXT ("name and AttDef")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("name and AttDef"));
this->skip_whitespace_count (&fwd);
if (fwd == '>')
break;
- count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ count = this->check_for_PE_reference ();
- this->parse_attname (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_attname ();
- count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ count = this->check_for_PE_reference ();
if (!count)
{
this->fatal_error(ACE_TEXT ("Expecting space between AttName and ")
- ACE_TEXT ("AttType") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("AttType"));
}
- this->parse_atttype (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_atttype ();
- count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ count = this->check_for_PE_reference ();
if (!count)
{
this->fatal_error(ACE_TEXT ("Expecting space between AttType and")
- ACE_TEXT (" DefaultDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT (" DefaultDecl"));
}
- this->parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_defaultdecl ();
- count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ count = this->check_for_PE_reference ();
this->skip_whitespace_count(&fwd);
}
this->get (); // consume closing '>'
return 0;
}
-
int
-ACEXML_Parser::check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::check_for_PE_reference (void)
{
ACEXML_Char fwd = '\xFF';
// Skip any leading whitespaces and store the number of such chars skipped
@@ -1459,8 +1235,7 @@ ACEXML_Parser::check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
if (fwd == 0)
{
this->get(); // Consume the 0
- this->pop_context (0 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->pop_context (0);
fwd = this->peek();
}
if (fwd == '%')
@@ -1468,14 +1243,11 @@ ACEXML_Parser::check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
this->get(); // Consume the %
if (this->external_subset_)
{
- this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_PE_reference ();
}
else
{
- this->fatal_error(ACE_TEXT ("Illegal PERef within markupDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Illegal PERef within markupDecl"));
}
}
if (count)
@@ -1489,21 +1261,19 @@ ACEXML_Parser::check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
}
ACEXML_Char*
-ACEXML_Parser::parse_attname (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_attname (void)
{
// Parse attribute name
ACEXML_Char *att_name = this->parse_name ();
if (att_name == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid AttName")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (0);
+ this->fatal_error(ACE_TEXT ("Invalid AttName"));
}
return att_name;
}
int
-ACEXML_Parser::parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_defaultdecl (void)
{
// DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue)
ACEXML_Char nextch = this->peek ();
@@ -1517,9 +1287,7 @@ ACEXML_Parser::parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL)
case 'R':
if (this->parse_token (ACE_TEXT ("EQUIRED")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword REQUIRED")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword REQUIRED"));
}
// We now know this attribute is required
// @@ Set up the validator as such.
@@ -1527,9 +1295,7 @@ ACEXML_Parser::parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL)
case 'I':
if (this->parse_token (ACE_TEXT ("MPLIED")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword IMPLIED")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword IMPLIED"));
}
// We now know this attribute is implied.
// @@ Set up the validator as such.
@@ -1538,47 +1304,36 @@ ACEXML_Parser::parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->parse_token (ACE_TEXT ("IXED")) < 0 ||
this->skip_whitespace_count () == 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword FIXED")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword FIXED"));
}
// We now know this attribute is fixed.
- if (this->parse_attvalue (fixed_attr
- ACEXML_ENV_ARG_PARAMETER) != 0)
+ if (this->parse_attvalue (fixed_attr) != 0)
{
- this->fatal_error(ACE_TEXT ("Invalid Default AttValue")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid Default AttValue"));
}
// @@ set up validator
break;
default:
- this->fatal_error (ACE_TEXT ("Invalid DefaultDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid DefaultDecl"));
}
break;
case '\'':
case '"':
- if (this->parse_attvalue (fixed_attr ACEXML_ENV_ARG_PARAMETER) != 0)
+ if (this->parse_attvalue (fixed_attr) != 0)
{
- this->fatal_error(ACE_TEXT ("Invalid AttValue")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid AttValue"));
}
// @@ set up validator
break;
default:
- this->fatal_error (ACE_TEXT ("Invalid DefaultDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid DefaultDecl"));
break;
}
return 0;
}
int
-ACEXML_Parser::parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_tokenized_type (void)
{
ACEXML_Char ch = this->get();
switch (ch)
@@ -1615,8 +1370,7 @@ ACEXML_Parser::parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL)
}
// Admittedly, this error message is not precise enough
this->fatal_error(ACE_TEXT ("Expecting keyword `ID', `IDREF', or")
- ACE_TEXT ("`IDREFS'") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("`IDREFS'"));
case 'E': // ENTITY or ENTITIES
if (this->parse_token (ACE_TEXT ("NTIT")) == 0)
{
@@ -1641,8 +1395,7 @@ ACEXML_Parser::parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL)
}
// Admittedly, this error message is not precise enough
this->fatal_error(ACE_TEXT ("Expecting keyword `ENTITY', or")
- ACE_TEXT ("`ENTITIES'") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("`ENTITIES'"));
case 'M':
if (this->parse_token (ACE_TEXT ("TOKEN")) == 0)
{
@@ -1664,13 +1417,10 @@ ACEXML_Parser::parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL)
}
}
this->fatal_error(ACE_TEXT ("Expecting keyword `NMTOKEN' or `NMTO")
- ACE_TEXT ("KENS'") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("KENS'"));
break;
default:
- this->fatal_error (ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Internal Parser Error"));
break;
}
return 0;
@@ -1699,7 +1449,7 @@ ACEXML_Parser::parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL)
* [VC: Enumeration]
*/
int
-ACEXML_Parser::parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_atttype (void)
{
ACEXML_Char nextch = this->peek();
switch (nextch)
@@ -1707,17 +1457,14 @@ ACEXML_Parser::parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL)
case 'C': // CDATA
if (this->parse_token (ACE_TEXT ("CDATA")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword 'CDATA'")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword 'CDATA'"));
}
// Else, we have successfully identified the type of the
// attribute as CDATA
// @@ Set up validator appropriately here.
break;
case 'I': case 'E': // ID, IDREF, IDREFS, ENTITY or ENTITIES
- this->parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_tokenized_type ();
break;
case 'N': // NMTOKEN, NMTOKENS, or NOTATION
this->get();
@@ -1725,95 +1472,71 @@ ACEXML_Parser::parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL)
if (nextch != 'M' && nextch != 'O')
{
this->fatal_error (ACE_TEXT ("Expecting keyword 'NMTOKEN', ")
- ACE_TEXT ("'NMTOKENS' or 'NOTATION'")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("'NMTOKENS' or 'NOTATION'"));
}
if (nextch == 'M')
{
- this->parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_tokenized_type ();
break;
}
else // NOTATION
{
if (this->parse_token (ACE_TEXT ("OTATION")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword `NOTATION'")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword `NOTATION'"));
}
- int count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ int count = this->check_for_PE_reference ();
if (!count)
{
this->fatal_error (ACE_TEXT ("Expecting space between keyword ")
- ACE_TEXT ("NOTATION and '('")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("NOTATION and '('"));
}
if (this->get () != '(')
{
- this->fatal_error(ACE_TEXT ("Expecting '(' in NotationType")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting '(' in NotationType"));
}
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
do {
this->skip_whitespace_count();
ACEXML_Char *notation_name = this->parse_name ();
if (notation_name == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid notation name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid notation name"));
}
// @@ get another notation name, set up validator as such
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
nextch = this->get();
} while (nextch == '|');
if (nextch != ')')
{
this->fatal_error (ACE_TEXT ("Expecting a ')' after a ")
- ACE_TEXT ("NotationType declaration")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("NotationType declaration"));
}
}
break;
case '(': // EnumeratedType - Enumeration
this->get();
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
do {
this->skip_whitespace_count();
ACEXML_Char *token_name = this->parse_nmtoken ();
if (token_name == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid enumeration name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid enumeration name"));
}
// @@ get another nmtoken, set up validator as such
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
nextch = this->get();
} while (nextch == '|');
if (nextch != ')')
{
this->fatal_error (ACE_TEXT ("Expecting a ')' after a ")
- ACE_TEXT ("Enumeration declaration")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("Enumeration declaration"));
}
break;
default:
{
- this->fatal_error(ACE_TEXT ("Invalid AttType")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid AttType"));
}
ACE_NOTREACHED (break);
}
@@ -1821,38 +1544,28 @@ ACEXML_Parser::parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL)
}
int
-ACEXML_Parser::parse_notation_decl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_notation_decl (void)
{
if (this->parse_token (ACE_TEXT ("NOTATION")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting Keyword 'NOTATION'")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting Keyword 'NOTATION'"));
}
- int count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ int count = this->check_for_PE_reference ();
if (!count)
{
this->fatal_error (ACE_TEXT ("Expecting a space between keyword NOTATION")
- ACE_TEXT (" and notation name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT (" and notation name"));
}
ACEXML_Char *notation = this->parse_name ();
if (notation == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid Notation name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid Notation name"));
}
- count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ count = this->check_for_PE_reference ();
if (!count)
{
this->fatal_error (ACE_TEXT ("Expecting a space between notation name ")
- ACE_TEXT ("and ExternalID/PublicID")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("and ExternalID/PublicID"));
}
ACEXML_Char *systemid, *publicid;
@@ -1863,9 +1576,7 @@ ACEXML_Parser::parse_notation_decl (ACEXML_ENV_SINGLE_ARG_DECL)
ACEXML_ParserInt::ReferenceState temp = this->ref_state_;
this->ref_state_ = ACEXML_ParserInt::IN_NOTATION;
- this->parse_external_id (publicid, systemid
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_external_id (publicid, systemid);
// Restore the original value.
this->ref_state_ = temp;
@@ -1873,71 +1584,52 @@ ACEXML_Parser::parse_notation_decl (ACEXML_ENV_SINGLE_ARG_DECL)
if (systemid && this->notations_.add_entity (notation, systemid) != 0
&& this->validate_)
{
- this->fatal_error(ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Internal Parser Error"));
}
if (publicid)
{
int retval = this->notations_.add_entity (notation, publicid);
if (retval != 0 && !systemid && this->validate_)
{
- this->fatal_error(ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Internal Parser Error"));
}
}
if (this->skip_whitespace() != '>')
{
- this->fatal_error(ACE_TEXT ("Expecting '>' at end of NotationDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting '>' at end of NotationDecl"));
}
if (this->validate_ && this->dtd_handler_)
{
- this->dtd_handler_->notationDecl (notation,
- publicid,
- systemid ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->dtd_handler_->notationDecl (notation, publicid, systemid);
}
return 0;
}
int
-ACEXML_Parser::parse_element_decl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_element_decl (void)
{
if (this->parse_token (ACE_TEXT ("LEMENT")) < 0)
{
- this->fatal_error (ACE_TEXT ("Expecting keyword ELEMENT")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Expecting keyword ELEMENT"));
}
- int count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ int count = this->check_for_PE_reference ();
if (!count)
{
this->fatal_error (ACE_TEXT ("Expecting a space between keyword ELEMENT")
- ACE_TEXT (" and element name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT (" and element name"));
}
ACEXML_Char *element_name = this->parse_name ();
if (element_name == 0)
{
- this->fatal_error (ACE_TEXT ("Invalid element name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid element name"));
}
- count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ count = this->check_for_PE_reference ();
if (!count)
{
this->fatal_error (ACE_TEXT ("Expecting a space between element name ")
- ACE_TEXT ("and element definition")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("and element definition"));
}
ACEXML_Char nextch = this->peek();
switch (nextch)
@@ -1945,46 +1637,35 @@ ACEXML_Parser::parse_element_decl (ACEXML_ENV_SINGLE_ARG_DECL)
case 'E': // EMPTY
if (this->parse_token (ACE_TEXT ("EMPTY")) < 0)
{
- this->fatal_error (ACE_TEXT ("Expecting keyword EMPTY")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Expecting keyword EMPTY"));
}
break;
case 'A': // ANY
if (this->parse_token (ACE_TEXT ("ANY")) < 0)
{
- this->fatal_error (ACE_TEXT ("Expecting keyword ANY")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Expecting keyword ANY"));
}
break;
case '(': // children
- this->parse_children_definition (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_children_definition ();
break;
default: // error
- this->fatal_error (ACE_TEXT ("Invalid element definition")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid element definition"));
}
- count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ count = this->check_for_PE_reference ();
if (this->skip_whitespace () != '>')
{
- this->fatal_error (ACE_TEXT ("Expecting '>' after element defintion")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Expecting '>' after element defintion"));
}
return 0;
}
int
-ACEXML_Parser::parse_children_definition (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_children_definition (void)
{
this->get (); // consume the '('
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
int subelement_number = 0;
ACEXML_Char nextch = this->peek();
switch (nextch)
@@ -1992,38 +1673,31 @@ ACEXML_Parser::parse_children_definition (ACEXML_ENV_SINGLE_ARG_DECL)
case '#': // Mixed element,
if (this->parse_token (ACE_TEXT ("#PCDATA")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword '#PCDATA'")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword '#PCDATA'"));
}
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
nextch = this->get();
while (nextch == '|')
{
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
ACEXML_Char *name = this->parse_name ();
// @@ name will be used in the Validator later.
ACE_UNUSED_ARG (name);
++subelement_number;
// @@ Install Mixed element name into the validator.
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
nextch = this->skip_whitespace();
}
if (nextch != ')' ||
(subelement_number && this->get () != '*'))
{
this->fatal_error(ACE_TEXT ("Expecing ')' or ')*' at end of Mixed")
- ACE_TEXT (" element") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT (" element"));
}
// @@ close the element definition in the validator.
break;
default:
- int status = this->parse_child (1 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ int status = this->parse_child (1);
if (status != 0)
return -1;
}
@@ -2052,41 +1726,33 @@ ACEXML_Parser::parse_children_definition (ACEXML_ENV_SINGLE_ARG_DECL)
}
int
-ACEXML_Parser::parse_child (int skip_open_paren ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::parse_child (int skip_open_paren)
{
// Conditionally consume the open paren.
if (skip_open_paren == 0 && this->get () != '(')
{
- this->fatal_error(ACE_TEXT ("Expecting '(' at beginning of children")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting '(' at beginning of children"));
}
ACEXML_Char node_type = 0;
ACEXML_Char nextch;
do {
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
this->skip_whitespace_count (&nextch);
switch (nextch)
{
case '(':
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
- this->parse_child (0 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
+ this->parse_child (0);
break;
default:
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
// must be an element name here.
ACEXML_Char *subelement = this->parse_name ();
if (subelement == 0)
{
- this->fatal_error(ACE_TEXT ("Invalid subelement name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Invalid subelement name"));
}
// Check for trailing '?', '*', '+'
nextch = this->peek ();
@@ -2111,8 +1777,7 @@ ACEXML_Parser::parse_child (int skip_open_paren ACEXML_ENV_ARG_DECL)
// @@ Inform validator of the new element here.
break;
}
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
this->skip_whitespace_count (&nextch);
switch (nextch)
{
@@ -2127,9 +1792,7 @@ ACEXML_Parser::parse_child (int skip_open_paren ACEXML_ENV_ARG_DECL)
break;
default:
this->fatal_error (ACE_TEXT ("Expecting `,', `|', or `)' ")
- ACE_TEXT ("while defining an element")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("while defining an element"));
}
break;
case ',':
@@ -2143,24 +1806,19 @@ ACEXML_Parser::parse_child (int skip_open_paren ACEXML_ENV_ARG_DECL)
break;
default:
this->fatal_error (ACE_TEXT ("Expecting `,', `|', or `)' ")
- ACE_TEXT ("while defining an element")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("while defining an element"));
}
break;
case ')':
break;
default:
this->fatal_error (ACE_TEXT ("Expecting `,', `|', or `)' ")
- ACE_TEXT ("while defining an element")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("while defining an element"));
}
nextch = this->get(); // Consume the `,' or `|' or `)'
if (nextch == ')')
break;
- this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->check_for_PE_reference ();
this->skip_whitespace_count (&nextch);
} while (nextch != ')');
@@ -2260,7 +1918,7 @@ ACEXML_Parser::parse_reference_name (void)
}
int
-ACEXML_Parser::parse_attvalue (ACEXML_Char *&str ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::parse_attvalue (ACEXML_Char *&str)
{
ACEXML_Char quote = this->get ();
if (quote != '\'' && quote != '"') // Not a quoted string.
@@ -2306,9 +1964,7 @@ ACEXML_Parser::parse_attvalue (ACEXML_Char *&str ACEXML_ENV_ARG_DECL)
if (this->parse_char_reference (buf, len) != 0)
{
// [WFC: Legal Character]
- this->fatal_error (ACE_TEXT ("Invalid CharacterRef")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid CharacterRef"));
}
for (size_t j = 0; j < len; ++j)
this->obstack_.grow (buf[j]);
@@ -2316,21 +1972,17 @@ ACEXML_Parser::parse_attvalue (ACEXML_Char *&str ACEXML_ENV_ARG_DECL)
else
{
this->ref_state_ = ACEXML_ParserInt::IN_ATT_VALUE;
- this->parse_entity_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_entity_reference ();
}
break;
case '\x20': case '\x0D': case '\x0A': case '\x09':
this->obstack_.grow ('\x20');
break;
case '<': // [WFC: No < in Attribute Values]
- this->fatal_error (ACE_TEXT ("Illegal '<' in AttValue")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Illegal '<' in AttValue"));
break;
case 0:
- this->pop_context (1 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->pop_context (1);
break;
default:
this->obstack_.grow (ch);
@@ -2340,24 +1992,18 @@ ACEXML_Parser::parse_attvalue (ACEXML_Char *&str ACEXML_ENV_ARG_DECL)
}
}
-
-
int
-ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_entity_reference (void)
{
ACEXML_Char* replace = this->parse_reference_name ();
if (replace == 0)
{
- this->fatal_error (ACE_TEXT ("Invalid Reference name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid Reference name"));
}
// [WFC: Parsed Entity]
if (this->unparsed_entities_.resolve_entity (replace)) {
- this->fatal_error (ACE_TEXT ("EntityRef refers to unparsed entity")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("EntityRef refers to unparsed entity"));
}
// Look in the internal general entities set first.
const ACEXML_Char* entity = this->internal_GE_.resolve_entity(replace);
@@ -2379,15 +2025,11 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->standalone_)
{
// [WFC: Entity Declared]
- this->fatal_error (ACE_TEXT ("Undeclared Entity reference")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Undeclared Entity reference"));
}
else
{
- this->content_handler_->skippedEntity (replace
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->content_handler_->skippedEntity (replace);
return 0;
}
}
@@ -2403,9 +2045,7 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL)
|| this->standalone_))
{
// [WFC: Entity Declared]
- this->fatal_error (ACE_TEXT ("Undeclared Entity reference")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Undeclared Entity reference"));
}
ACEXML_Char* systemId = 0;
@@ -2414,15 +2054,11 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL)
{
if (this->external_GE_.resolve_entity (replace, systemId, publicId) < 0)
{
- this->fatal_error (ACE_TEXT ("Undeclared Entity reference")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Undeclared Entity reference"));
}
if (this->ref_state_ == ACEXML_ParserInt::IN_ATT_VALUE)
{
- this->fatal_error (ACE_TEXT ("External EntityRef in Attribute Value")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("External EntityRef in Attribute Value"));
}
this->external_entity_++;
}
@@ -2435,9 +2071,7 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL)
{
while (this->GE_reference_.pop(ref_name) != -1)
;
- this->fatal_error (ACE_TEXT ("Recursion in resolving entity")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Recursion in resolving entity"));
}
if (!this->external_entity_)
@@ -2448,9 +2082,7 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL)
|| this->switch_input (str, replace) != 0)
{
this->fatal_error (ACE_TEXT ("Unable to create internal input ")
- ACE_TEXT ("stream")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ ACE_TEXT ("stream"));
}
return 0;
}
@@ -2462,17 +2094,13 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->entity_resolver_)
{
ip = this->entity_resolver_->resolveEntity (publicId,
- (uri ? uri : systemId)
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ (uri ? uri : systemId));
if (ip)
{
if (this->switch_input (ip, (uri ? uri : systemId),
publicId) != 0)
{
- this->fatal_error (ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Internal Parser Error"));
}
return 0;
}
@@ -2480,29 +2108,23 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL)
ACEXML_StreamFactory factory;
ACEXML_CharStream* cstream = factory.create_stream (uri ? uri: systemId);
if (!cstream) {
- this->fatal_error (ACE_TEXT ("Invalid input source")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid input source"));
}
if (this->switch_input (cstream, systemId, publicId) != 0)
{
- this->fatal_error (ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Internal Parser Error"));
}
}
return 0;
}
int
-ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_PE_reference (void)
{
ACEXML_Char* replace = this->parse_reference_name ();
if (replace == 0)
{
- this->fatal_error (ACE_TEXT ("Invalid PEReference name")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid PEReference name"));
}
// Look in the internal general entities set first.
@@ -2513,9 +2135,7 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
this->standalone_)) // or Standalone
{
// [VC: Entity Declared]
- this->fatal_error (ACE_TEXT ("Undefined Internal PEReference")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Undefined Internal PEReference"));
}
ACEXML_Char* systemId = 0;
@@ -2524,9 +2144,7 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
{
if (this->external_PE_.resolve_entity (replace, systemId, publicId) < 0)
{
- this->fatal_error (ACE_TEXT ("Undefined PEReference")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Undefined PEReference"));
}
this->external_entity_++;
}
@@ -2538,9 +2156,7 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
{
while (this->PE_reference_.pop(ref_name) != -1)
;
- this->fatal_error (ACE_TEXT ("Recursion in resolving entity")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Recursion in resolving entity"));
}
if (entity && !this->external_entity_)
@@ -2559,9 +2175,7 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
if (sstream->open (str.c_str(), replace) < 0
|| this->switch_input (sstream, replace) != 0)
{
- this->fatal_error (ACE_TEXT ("Error in switching InputSource")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Error in switching InputSource"));
}
return 0;
}
@@ -2573,17 +2187,13 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
if (this->entity_resolver_)
{
ip = this->entity_resolver_->resolveEntity (publicId,
- (uri ? uri : systemId)
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ (uri ? uri : systemId));
}
if (ip)
{
if (this->switch_input (ip, (uri ? uri : systemId), publicId) != 0)
{
- this->fatal_error (ACE_TEXT ("Error in switching InputSource")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Error in switching InputSource"));
}
return 0;
}
@@ -2592,15 +2202,11 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
ACEXML_StreamFactory factory;
ACEXML_CharStream* cstream = factory.create_stream (uri ? uri: systemId);
if (!cstream) {
- this->fatal_error (ACE_TEXT ("Invalid input source")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid input source"));
}
if (this->switch_input (cstream, systemId, publicId) != 0)
{
- this->fatal_error (ACE_TEXT ("Error in switching InputSource")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Error in switching InputSource"));
}
if (this->ref_state_ == ACEXML_ParserInt::IN_ENTITY_VALUE)
{
@@ -2613,8 +2219,7 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
mark = this->get();
if (this->peek() == 'x')
{
- this->parse_text_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_text_decl ();
}
else
{
@@ -2628,15 +2233,12 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL)
return 0;
}
}
- this->fatal_error (ACE_TEXT ("Undefined PEReference")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Undefined PEReference"));
return -1;
}
int
-ACEXML_Parser::parse_entity_value (ACEXML_Char *&str
- ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::parse_entity_value (ACEXML_Char *&str)
{
ACEXML_ParserInt::ReferenceState temp = this->ref_state_;
ACEXML_Char quote = this->get ();
@@ -2664,8 +2266,7 @@ ACEXML_Parser::parse_entity_value (ACEXML_Char *&str
{
// [WFC: Legal Character]
this->fatal_error (ACE_TEXT ("Invalid character ")
- ACE_TEXT ("reference")
- ACEXML_ENV_ARG_PARAMETER);
+ ACE_TEXT ("reference"));
return -1;
}
for (size_t j = 0; j < len; ++j)
@@ -2679,15 +2280,13 @@ ACEXML_Parser::parse_entity_value (ACEXML_Char *&str
if (!this->external_entity_)
{
this->ref_state_ = ACEXML_ParserInt::IN_ENTITY_VALUE;
- this->parse_PE_reference(ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_PE_reference();
break;
}
this->obstack_.grow (ch);
break;
case 0:
- this->pop_context (0 ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->pop_context (0);
break;
default:
this->obstack_.grow (ch);
@@ -2884,21 +2483,17 @@ ACEXML_Parser::parse_sddecl (ACEXML_Char*& str)
void
ACEXML_Parser::prefix_mapping (const ACEXML_Char* prefix,
const ACEXML_Char* uri,
- int start ACEXML_ENV_ARG_DECL)
+ int start)
{
if (this->namespaces_)
{
const ACEXML_Char* temp = (prefix == 0) ? empty_string : prefix;
if (start) {
- this->content_handler_->startPrefixMapping (temp, uri
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->content_handler_->startPrefixMapping (temp, uri);
}
else
{
- this->content_handler_->endPrefixMapping(temp
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->content_handler_->endPrefixMapping(temp);
}
}
}
@@ -2947,48 +2542,38 @@ ACEXML_Parser::push_context (ACEXML_Parser_Context* context)
}
size_t
-ACEXML_Parser::pop_context (int GE_ref ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::pop_context (int GE_ref)
{
size_t nrelems = this->ctx_stack_.size();
if (nrelems <= 1)
{
- this->fatal_error(ACE_TEXT ("Unexpected end-of-file")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Unexpected end-of-file"));
}
ACEXML_Parser_Context* temp = 0;
int retval = this->ctx_stack_.pop (temp);
if (retval != 0)
{
- this->fatal_error (ACE_TEXT ("Unable to pop element of the input stack")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Unable to pop element of the input stack"));
}
delete temp;
if (this->ctx_stack_.top (this->current_) != 0)
{
- this->fatal_error (ACE_TEXT ("Unable to read top element of input stack")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Unable to read top element of input stack"));
}
ACEXML_Char* reference = 0;
if (GE_ref == 1 && this->GE_reference_.size() > 0)
{
if (this->GE_reference_.pop (reference) < 0)
{
- this->fatal_error (ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Internal Parser Error"));
}
}
else if (GE_ref == 0 && this->PE_reference_.size() > 0)
{
if (this->PE_reference_.pop (reference) < 0)
{
- this->fatal_error (ACE_TEXT ("Internal Parser Error")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Internal Parser Error"));
}
}
nrelems = this->ctx_stack_.size();
@@ -3002,7 +2587,7 @@ ACEXML_Parser::pop_context (int GE_ref ACEXML_ENV_ARG_DECL)
}
int
-ACEXML_Parser::getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::getFeature (const ACEXML_Char *name)
{
if (ACE_OS::strcmp (name, ACEXML_Parser::simple_parsing_feature_) == 0)
{
@@ -3021,14 +2606,13 @@ ACEXML_Parser::getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
{
return this->validate_;
}
- ACEXML_THROW_RETURN (ACEXML_SAXNotRecognizedException (name), -1);
+ throw ACEXML_SAXNotRecognizedException (name);
}
void
-ACEXML_Parser::setFeature (const ACEXML_Char *name,
- int boolean_value ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::setFeature (const ACEXML_Char *name, int boolean_value)
{
if (ACE_OS::strcmp (name, ACEXML_Parser::simple_parsing_feature_) == 0)
{
@@ -3052,152 +2636,137 @@ ACEXML_Parser::setFeature (const ACEXML_Char *name,
return;
}
- ACEXML_THROW (ACEXML_SAXNotRecognizedException (name));
+ throw ACEXML_SAXNotRecognizedException (name);
}
void *
-ACEXML_Parser::getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::getProperty (const ACEXML_Char *name)
{
- ACEXML_THROW_RETURN (ACEXML_SAXNotSupportedException (name), 0);
+ throw ACEXML_SAXNotSupportedException (name);
}
void
ACEXML_Parser::setProperty (const ACEXML_Char *name,
- void *value ACEXML_ENV_ARG_DECL)
+ void *)
{
- ACE_UNUSED_ARG (value);
-
- ACEXML_THROW (ACEXML_SAXNotSupportedException (name));
+ throw ACEXML_SAXNotSupportedException (name);
}
void
-ACEXML_Parser::error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::error (const ACEXML_Char* msg)
{
ACEXML_SAXParseException* exception = 0;
ACE_NEW_NORETURN (exception, ACEXML_SAXParseException (msg));
if (this->error_handler_)
- this->error_handler_->error (*exception ACEXML_ENV_ARG_PARAMETER);
+ this->error_handler_->error (*exception);
else
- ACEXML_ENV_RAISE (exception);
+ throw exception;
return;
}
void
-ACEXML_Parser::warning (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::warning (const ACEXML_Char* msg)
{
ACEXML_SAXParseException* exception = 0;
ACE_NEW_NORETURN (exception, ACEXML_SAXParseException (msg));
if (this->error_handler_)
- this->error_handler_->warning (*exception ACEXML_ENV_ARG_PARAMETER);
+ this->error_handler_->warning (*exception);
delete exception;
return;
}
void
-ACEXML_Parser::fatal_error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL)
+ACEXML_Parser::fatal_error (const ACEXML_Char* msg)
{
ACEXML_SAXParseException* exception = 0;
ACE_NEW_NORETURN (exception, ACEXML_SAXParseException (msg));
if (this->error_handler_)
- this->error_handler_->fatalError (*exception ACEXML_ENV_ARG_PARAMETER);
+ this->error_handler_->fatalError (*exception);
this->reset();
- ACEXML_ENV_RAISE (exception);
+ throw exception;
return;
}
void
-ACEXML_Parser::parse_version_info (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_version_info (void)
{
ACEXML_Char* astring;
if (this->parse_token (ACE_TEXT("ersion")) < 0
|| this->skip_equal () != 0
|| this->parse_version_num (astring) != 0)
{
- this->fatal_error (ACE_TEXT ("Invalid VersionInfo specification")
- ACEXML_ENV_ARG_PARAMETER);
+ this->fatal_error (ACE_TEXT ("Invalid VersionInfo specification"));
return;
}
if (ACE_OS::strcmp (astring, ACE_TEXT ("1.0")) != 0)
{
this->fatal_error (ACE_TEXT ("ACEXML Parser supports XML version 1.0 ")
- ACE_TEXT ("documents only") ACEXML_ENV_ARG_PARAMETER);
- return;
+ ACE_TEXT ("documents only"));
}
}
void
-ACEXML_Parser::parse_encoding_decl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_encoding_decl (void)
{
ACEXML_Char* astring = 0;
if ((this->parse_token (ACE_TEXT("ncoding")) < 0)
|| this->skip_equal () != 0
|| this->parse_encname (astring) != 0)
{
- this->fatal_error (ACE_TEXT ("Invalid EncodingDecl specification")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error (ACE_TEXT ("Invalid EncodingDecl specification"));
}
const ACEXML_Char* encoding = this->current_->getInputSource()->getEncoding();
- if (encoding != 0 && ACE_OS::strcmp (astring, encoding) != 0)
+ if (encoding != 0 && ACE_OS::strcasecmp (astring, encoding) != 0)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("Detected Encoding is %s ")
ACE_TEXT (": Declared Encoding is %s\n"),
encoding, astring));
this->warning (ACE_TEXT ("Declared encoding differs from detected ")
- ACE_TEXT ("encoding") ACEXML_ENV_ARG_PARAMETER);
+ ACE_TEXT ("encoding"));
}
}
int
-ACEXML_Parser::parse_text_decl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_text_decl (void)
{
// Read xml
if (this->parse_token (ACE_TEXT("xml")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword 'xml' in TextDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("Expecting keyword 'xml' in TextDecl"));
}
ACEXML_Char fwd = this->skip_whitespace();
// Read version
if (fwd == 'v')
{
- this->parse_version_info (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_version_info ();
fwd = this->skip_whitespace();
}
if (fwd == 'e')
{
- this->parse_encoding_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->parse_encoding_decl ();
fwd = this->skip_whitespace();
}
else
{
- this->fatal_error (ACE_TEXT ("Missing encodingDecl in TextDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Missing encodingDecl in TextDecl"));
}
if (fwd == '?' && this->get() == '>')
return 0;
// All the rules fail. So return an error.
- this->fatal_error (ACE_TEXT ("Invalid TextDecl") ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error (ACE_TEXT ("Invalid TextDecl"));
return -1;
}
void
-ACEXML_Parser::parse_xml_decl (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_xml_decl (void)
{
// Read <?xml
if (this->parse_token (ACE_TEXT("xml")) < 0)
{
- this->fatal_error(ACE_TEXT ("Expecting keyword xml in XMLDecl")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error(ACE_TEXT ("Expecting keyword xml in XMLDecl"));
}
ACEXML_Char fwd = this->skip_whitespace();
@@ -3205,21 +2774,17 @@ ACEXML_Parser::parse_xml_decl (ACEXML_ENV_SINGLE_ARG_DECL)
// Read version
if (fwd != 'v')
{
- this->fatal_error (ACE_TEXT ("Expecting VersionInfo declaration")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error (ACE_TEXT ("Expecting VersionInfo declaration"));
}
- this->parse_version_info (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->parse_version_info ();
fwd = this->skip_whitespace();
if (fwd != '?')
{
if (fwd == 'e')
{
- this->parse_encoding_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->parse_encoding_decl ();
fwd = this->skip_whitespace();
}
if (fwd == 's')
@@ -3238,9 +2803,7 @@ ACEXML_Parser::parse_xml_decl (ACEXML_ENV_SINGLE_ARG_DECL)
if (fwd == '?' && this->get() == '>')
return;
// All the rules fail. So return an error.
- this->fatal_error (ACE_TEXT ("Invalid XMLDecl declaration")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK;
+ this->fatal_error (ACE_TEXT ("Invalid XMLDecl declaration"));
}
int
@@ -3269,7 +2832,7 @@ ACEXML_Parser::parse_comment (void)
}
int
-ACEXML_Parser::parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_DECL)
+ACEXML_Parser::parse_processing_instruction (void)
{
const ACEXML_Char *pitarget = this->parse_name ();
ACEXML_Char *instruction = 0;
@@ -3277,9 +2840,7 @@ ACEXML_Parser::parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_DECL)
if (!ACE_OS::strcasecmp (ACE_TEXT ("xml"), pitarget))
{
// Invalid PITarget name.
- this->fatal_error(ACE_TEXT ("PI can't have 'xml' in PITarget")
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ this->fatal_error(ACE_TEXT ("PI can't have 'xml' in PITarget"));
}
int state = 0;
@@ -3298,9 +2859,7 @@ ACEXML_Parser::parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_DECL)
{
instruction = this->obstack_.freeze ();
this->content_handler_->processingInstruction (pitarget,
- instruction
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_CHECK_RETURN (-1);
+ instruction);
this->obstack_.unwind (const_cast<ACEXML_Char*> (pitarget));
return 0;
}
diff --git a/ACE/ACEXML/parser/parser/Parser.h b/ACE/ACEXML/parser/parser/Parser.h
index 3b0725ec214..976053d8317 100644
--- a/ACE/ACEXML/parser/parser/Parser.h
+++ b/ACE/ACEXML/parser/parser/Parser.h
@@ -83,34 +83,34 @@ public:
* programmers to check whether a specific feature has been
* activated in the parser.
*/
- virtual int getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL);
+ virtual int getFeature (const ACEXML_Char *name);
/**
* Activating or deactivating a feature.
*/
virtual void setFeature (const ACEXML_Char *name,
- int boolean_value ACEXML_ENV_ARG_DECL);
+ int boolean_value);
/*
* Look up the value of a property.
*/
- virtual void * getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL);
+ virtual void * getProperty (const ACEXML_Char *name);
/*
* Set the value of a property.
*/
virtual void setProperty (const ACEXML_Char *name,
- void *value ACEXML_ENV_ARG_DECL);
+ void *value);
/*
* Parse an XML document.
*/
- virtual void parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL);
+ virtual void parse (ACEXML_InputSource *input);
/*
* Parse an XML document from a system identifier (URI).
*/
- virtual void parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
+ virtual void parse (const ACEXML_Char *systemId)
;
/*
@@ -139,30 +139,30 @@ protected:
/**
* Parse XML Prolog.
*/
- void parse_xml_prolog (ACEXML_ENV_SINGLE_ARG_DECL);
+ void parse_xml_prolog (void);
/**
* Parse VersionInfo declaration.
*
*/
- void parse_version_info (ACEXML_ENV_SINGLE_ARG_DECL);
+ void parse_version_info (void);
/**
* Parse a EncodingDecl declaration.
*
*/
- void parse_encoding_decl (ACEXML_ENV_SINGLE_ARG_DECL);
+ void parse_encoding_decl (void);
/**
* Parse a XMLDecl declaration.
*
*/
- void parse_xml_decl (ACEXML_ENV_SINGLE_ARG_DECL);
+ void parse_xml_decl (void);
/**
* Parse a TextDecl declaration.
*/
- int parse_text_decl (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_text_decl (void);
/**
* Parse a PI statement. The first character encountered
@@ -170,13 +170,13 @@ protected:
*
* @retval 0 on success, -1 otherwise.
*/
- int parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_processing_instruction (void);
/**
* Parse the DOCTYPE declaration. The first character encountered
* should always be 'D' in doctype prefix: "@<@!DOCTYPE".
*/
- int parse_doctypedecl (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_doctypedecl (void);
/**
* Parse an XML element. The first character encountered should
@@ -191,15 +191,14 @@ protected:
* of validator or allow the function to return the element name so it
* can be used in a validator.
*/
- void parse_element (int is_root ACEXML_ENV_ARG_DECL);
+ void parse_element (int is_root);
/**
* Parse a content declaration.
*
*/
int parse_content (const ACEXML_Char* startname, const ACEXML_Char*& ns_uri,
- const ACEXML_Char*& ns_lname, int ns_flag
- ACEXML_ENV_ARG_DECL);
+ const ACEXML_Char*& ns_lname, int ns_flag);
/**
* Parse a character reference, i.e., "&#x20;" or "&#30;". The first
@@ -231,13 +230,13 @@ protected:
* @retval 0 on success.
* @retval -1 if fail.
*/
- int parse_cdata (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_cdata (void);
/**
* Parse a "markupdecl" section, this includes both "markupdecl" and
* "DeclSep" sections in XML specification
*/
- int parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_internal_dtd (void);
/**
* Skip over a comment. The first character encountered should always be
@@ -252,7 +251,7 @@ protected:
*
* @retval 0 on success, -1 otherwise.
*/
- int parse_element_decl (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_element_decl (void);
/**
* Parse an "ENTITY" decl. The first character this method expects
@@ -260,7 +259,7 @@ protected:
*
* @retval 0 on success, -1 otherwise.
*/
- int parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_entity_decl (void);
/**
* Parse an "ATTLIST" decl. Thse first character this method
@@ -269,13 +268,13 @@ protected:
*
* @retval 0 on success, -1 otherwise.
*/
- int parse_attlist_decl (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_attlist_decl (void);
/**
* Parse a AttType declaration.
*
*/
- int parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_atttype (void);
/**
*Parse a "NOTATION" decl. The first character this method
@@ -284,7 +283,7 @@ protected:
*
* @retval 0 on success, -1 otherwise.
*/
- int parse_notation_decl (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_notation_decl (void);
/**
* Parse an ExternalID or a reference to PUBLIC ExternalID.
@@ -306,69 +305,68 @@ protected:
*
* @retval 0 on success, -1 otherwise.
*/
- int parse_external_id (ACEXML_Char *&publicId, ACEXML_Char *&systemId
- ACEXML_ENV_ARG_DECL);
+ int parse_external_id (ACEXML_Char *&publicId, ACEXML_Char *&systemId);
/**
* Parse an external DTD.
*
*/
- int parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_external_dtd (void);
/**
* Parse an external subset. This does the actual parsing of an external
* subset and is called by @sa parse_external_dtd.
*
*/
- int parse_external_subset (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_external_subset (void);
/**
* Parse a markupDecl section.
*
*/
- int parse_markup_decl (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_markup_decl (void);
/**
* Parse a conditionalSect declaration.
*
*/
- int parse_conditional_section (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_conditional_section (void);
/**
* Parse a includeSect declaration.
*
*/
- int parse_includesect (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_includesect (void);
/**
*
* Parse a ignoreSect declaration.
*/
- int parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_ignoresect (void);
/**
* Parse a PEReference.
*
*/
- int parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_PE_reference (void);
/**
* Parse a Reference.
*
*/
- int parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_entity_reference (void);
/**
* Parse an entityValue.
*
*/
- int parse_entity_value (ACEXML_Char *&str ACEXML_ENV_ARG_DECL);
+ int parse_entity_value (ACEXML_Char *&str);
/**
* Parse a DefaultDecl specification.
*
*/
- int parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_defaultdecl (void);
/**
@@ -379,7 +377,7 @@ protected:
*
* @retval 0 on success, -1 otherwise.
*/
- int parse_children_definition (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_children_definition (void);
/**
* Parse a @c cp non-terminal. @c cp can either be a @c seq or a @c choice.
@@ -391,7 +389,7 @@ protected:
*
* @retval 0 on success, -1 otherwise.
*/
- int parse_child (int skip_open_paren ACEXML_ENV_ARG_DECL);
+ int parse_child (int skip_open_paren);
/**
* Parse a name from the input CharStream. If @a ch @!= 0, then we have
@@ -448,7 +446,7 @@ protected:
* if successful.
* @retval 0 otherwise.
*/
- ACEXML_Char* parse_attname (ACEXML_ENV_SINGLE_ARG_DECL);
+ ACEXML_Char* parse_attname (void);
/**
* Parse an attribute value.
@@ -456,14 +454,14 @@ protected:
* @param str String containing the value of the attribute if successful.
* @return 0 if attribute value was read successfully, -1 otherwise.
*/
- int parse_attvalue (ACEXML_Char*& str ACEXML_ENV_ARG_DECL);
+ int parse_attvalue (ACEXML_Char*& str);
/**
* Parse a tokenized type attribute.
*
* @return 0 if attribute type was read successfully, -1 otherwise.
*/
- int parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL);
+ int parse_tokenized_type (void);
/**
* Parse a SystemLiteral.
@@ -624,19 +622,19 @@ private:
* Dispatch errors to ErrorHandler.
*
*/
- void error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL);
+ void error (const ACEXML_Char* msg);
/**
* Dispatch warnings to ErrorHandler.
*
*/
- void warning (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL);
+ void warning (const ACEXML_Char* msg);
/**
* Dispatch fatal errors to ErrorHandler.
*
*/
- void fatal_error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL);
+ void fatal_error (const ACEXML_Char* msg);
/**
* Dispatch prefix mapping calls to the ContentHandler.
@@ -648,7 +646,7 @@ private:
*/
void prefix_mapping (const ACEXML_Char* prefix,
const ACEXML_Char* uri,
- int start ACEXML_ENV_ARG_DECL);
+ int start);
/**
* Parse a keyword.
*/
@@ -663,7 +661,7 @@ private:
/**
* Pop the top element in the stack and replace current context with that.
*/
- size_t pop_context (int GE_ref ACEXML_ENV_ARG_DECL);
+ size_t pop_context (int GE_ref);
/**
* Create a new ACEXML_CharStream from @a systemId and @a publicId and
@@ -682,13 +680,13 @@ private:
/**
* Check for a parameter entity reference. This is used to check for the
- * occurence of a PE Reference withing markupDecl. Additionally this
+ * occurrence of a PE Reference withing markupDecl. Additionally this
* function consumes any leading or trailing whitespace around the PE
* Reference.
*
* @retval Number of whitespace characters skipped.
*/
- int check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL);
+ int check_for_PE_reference (void);
/**
* Reset the parser state.
diff --git a/ACE/ACEXML/parser/parser/parser.mpc b/ACE/ACEXML/parser/parser/parser.mpc
index 580b85495a4..a70cff8fc5f 100644
--- a/ACE/ACEXML/parser/parser/parser.mpc
+++ b/ACE/ACEXML/parser/parser/parser.mpc
@@ -8,6 +8,10 @@ project(ACEXML_Parser): acelib, ace_output, install {
libs += ACEXML
dynamicflags += ACEXML_PARSER_BUILD_DLL
+ specific {
+ install_dir = ACEXML/parser/parser
+ }
+
Pkgconfig_Files {
ACEXML_Parser.pc.in
}
diff --git a/ACE/ACEXML/tests/ContentHandler_Test.cpp b/ACE/ACEXML/tests/ContentHandler_Test.cpp
index 7c7e2c5594b..28835b25eaf 100644
--- a/ACE/ACEXML/tests/ContentHandler_Test.cpp
+++ b/ACE/ACEXML/tests/ContentHandler_Test.cpp
@@ -23,7 +23,7 @@ public:
*/
virtual void characters (const ACEXML_Char *ch,
size_t start,
- size_t length ACEXML_ENV_ARG_DECL);
+ size_t length);
const ACEXML_Char *get_test_string (void)
{ return Basic_Content_Tester::test_string_; }
@@ -40,20 +40,20 @@ const ACEXML_Char * Basic_Content_Tester::test_string_ =
void
Basic_Content_Tester::characters (const ACEXML_Char *ch,
size_t start,
- size_t length ACEXML_ENV_ARG_DECL)
+ size_t length)
{
- static int already_called = 0;
+ static bool already_called = false;
static const ACEXML_Char *expect =
ACE_TEXT ("Example\nd'internationalisation");
if (already_called)
{
- ACEXML_THROW (ACEXML_SAXException
- (ACE_TEXT ("characters() called too much\n")));
+ throw ACEXML_SAXException
+ (ACE_TEXT ("characters() called too much\n"));
}
- already_called = 1;
+ already_called = true;
- size_t expected_len = ACE_OS::strlen (expect);
+ size_t const expected_len = ACE_OS::strlen (expect);
if (length != expected_len)
{
ACE_ERROR ((LM_ERROR,
@@ -61,9 +61,8 @@ Basic_Content_Tester::characters (const ACEXML_Char *ch,
ACE_TEXT ("got %u (%*s)\n"),
expected_len, expected_len, ch + start,
length, length, ch + start));
- ACEXML_THROW (ACEXML_SAXException (ACE_TEXT ("Functionality failure")));
+ throw ACEXML_SAXException (ACE_TEXT ("Functionality failure"));
}
- return;
}
int
@@ -82,20 +81,16 @@ ACE_TMAIN (int, ACE_TCHAR *[])
ACEXML_InputSource input (test_stream);
ACEXML_Parser parser;
parser.setContentHandler (&tester);
- ACEXML_TRY_NEW_ENV
+ try
{
parser.setFeature (ACE_TEXT ("http://xml.org/sax/features/validation"),
- 0
- ACEXML_ENV_ARG_PARAMETER);
- ACEXML_TRY_CHECK;
- parser.parse (&input ACEXML_ENV_ARG_PARAMETER);
- ACEXML_TRY_CHECK;
+ 0);
+ parser.parse (&input);
}
- ACEXML_CATCH (ACEXML_SAXException, ex)
+ catch (const ACEXML_SAXException& ex)
{
ex.print();
status = 1;
}
- ACEXML_ENDTRY;
return status;
}
diff --git a/ACE/ACEXML/tests/Transcoder_Test.cpp b/ACE/ACEXML/tests/Transcoder_Test.cpp
index f5dc289e5e0..83fab779702 100644
--- a/ACE/ACEXML/tests/Transcoder_Test.cpp
+++ b/ACE/ACEXML/tests/Transcoder_Test.cpp
@@ -5,8 +5,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_main.h"
-void dump_utf16 (const ACEXML_UTF16 *data,
- size_t len)
+void dump_utf16 (const ACEXML_UTF16 *data, size_t len)
{
size_t ptr = 0;
diff --git a/ACE/ASNMP/agent/agent.mpc b/ACE/ASNMP/agent/agent.mpc
index 4579c29d458..c83c707ad78 100644
--- a/ACE/ASNMP/agent/agent.mpc
+++ b/ACE/ASNMP/agent/agent.mpc
@@ -4,7 +4,6 @@ project (asnmp_agent) : aceexe {
exename = agent
after += asnmp_lib
libs += asnmp
- avoids += uses_wchar
includes += $(ACE_ROOT)/ASNMP
source_files {
agent_impl.cpp
diff --git a/ACE/ASNMP/agent/agent_impl.cpp b/ACE/ASNMP/agent/agent_impl.cpp
index e1949f54067..b78a1a003a3 100644
--- a/ACE/ASNMP/agent/agent_impl.cpp
+++ b/ACE/ASNMP/agent/agent_impl.cpp
@@ -9,8 +9,6 @@
#include "agent_impl.h"
-ACE_RCSID(agent, agent_impl, "$Id$")
-
agent_impl::agent_impl(unsigned short port, const char *rd, const char *wr) :
sagent(port)
{
diff --git a/ACE/ASNMP/agent/agent_impl.h b/ACE/ASNMP/agent/agent_impl.h
index 60ee90034a2..8eba8da44c7 100644
--- a/ACE/ASNMP/agent/agent_impl.h
+++ b/ACE/ASNMP/agent/agent_impl.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ASNMP
-//
-// = FILENAME
-// agent_impl.h
-//
-// = AUTHOR
-// Michael R. MacFaden
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file agent_impl.h
+ *
+ * $Id$
+ *
+ * @author Michael R. MacFaden
+ */
+//=============================================================================
+
#ifndef AGENT_IMPL_H
#define AGENT_IMPL_H
@@ -30,18 +27,18 @@ public:
agent_impl(unsigned short port, const char *rd, const char *wr);
virtual ~agent_impl();
+ /// retrieve data from a peer agent for a given list of oid values
virtual int handle_get( Pdu &pdu, UdpTarget &target);
- // retrieve data from a peer agent for a given list of oid values
+ /// retrieve data lexically adjacent to the oids specified in the pdu
+ /// from the peer agent
virtual int handle_get_next( Pdu &pdu, UdpTarget &target);
- // retrieve data lexically adjacent to the oids specified in the pdu
- // from the peer agent
+ /// set data in the agent from the list of oids in the pdu
virtual int handle_set( Pdu &pdu, UdpTarget &target);
- // set data in the agent from the list of oids in the pdu
+ /// main loop here using a reactor object
int process_requests();
- // main loop here using a reactor object
private:
UdpTarget tgt_; // this agent's read, write community strings
diff --git a/ACE/ASNMP/agent/main.cpp b/ACE/ASNMP/agent/main.cpp
index abc4b418eeb..3fcf229a2f7 100644
--- a/ACE/ASNMP/agent/main.cpp
+++ b/ACE/ASNMP/agent/main.cpp
@@ -6,8 +6,7 @@
#include "ace/config-all.h"
#include "snmp_agent.h"
#include "ace/ACE.h"
-
-ACE_RCSID(agent, main, "$Id$")
+#include "ace/Argv_Type_Converter.h"
int
ACE_TMAIN(int argc, ACE_TCHAR *argv[])
@@ -15,7 +14,12 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
ACE::init ();
snmp_agent the_agent;
+#ifdef ACE_USES_WCHAR
+ ACE_Argv_Type_Converter arg_converter(argc, argv);
+ if (the_agent.set_args(arg_converter.get_argc (), arg_converter.get_ASCII_argv()))
+#else
if (the_agent.set_args(argc, argv))
+#endif
return 1;
if (!the_agent.valid()) {
diff --git a/ACE/ASNMP/agent/snmp_agent.cpp b/ACE/ASNMP/agent/snmp_agent.cpp
index 04f916d3fc4..eeb47bbda70 100644
--- a/ACE/ASNMP/agent/snmp_agent.cpp
+++ b/ACE/ASNMP/agent/snmp_agent.cpp
@@ -1,6 +1,6 @@
// $Id$
-// This server daemon processes SNMPv1 requests over MIB II System group
+// This server daemon processes SNMPv1 requests over MIB II System group
#include "snmp_agent.h"
#include "agent_impl.h" // actual implementation
@@ -8,9 +8,7 @@
#include "ace/Get_Opt.h"
#include "ace/Reactor.h"
-ACE_RCSID(agent, snmp_agent, "$Id$")
-
-// module globals
+// module globals
#define SNMP_AGENT_PORT (161)
#define WR_COM ACE_TEXT ("private")
#define RD_COM ACE_TEXT ("public")
@@ -44,7 +42,7 @@ int snmp_agent::set_args(int argc, char *argv[])
ACE_Get_Opt get_opt
(argc, to_tchar.get_TCHAR_argv (), ACE_TEXT ("p:w:r:hv"));
- for (int c; (c = get_opt ()) != -1; )
+ for (int c; (c = get_opt ()) != -1; )
{
switch (c)
{
@@ -57,8 +55,8 @@ int snmp_agent::set_args(int argc, char *argv[])
case 'r': // read community string
rd = get_opt.optarg;
break;
- case 'h': // help & version info
- case 'v':
+ case 'h': // help & version info
+ case 'v':
ACE_DEBUG
((LM_DEBUG,
ACE_TEXT ("(%P|%t) Example SNMP Version 1 Agent - ASNMP/ACE\n")));
@@ -67,7 +65,7 @@ int snmp_agent::set_args(int argc, char *argv[])
return -1; // invalid arg
}
}
-
+
agent_ = new agent_impl(port,
ACE_TEXT_ALWAYS_CHAR (rd),
ACE_TEXT_ALWAYS_CHAR (wr)); // opens OS IO port
@@ -84,7 +82,7 @@ int snmp_agent::run()
if (agent_->open_port()) {
ACE_DEBUG((LM_DEBUG, "(%P|%t) open port %d failed\n", agent_->get_port()));
return -1;
- }
+ }
#endif
// Run forever, processing SNMP requests.
diff --git a/ACE/ASNMP/agent/snmp_agent.h b/ACE/ASNMP/agent/snmp_agent.h
index a7fc4c42de8..649f811980a 100644
--- a/ACE/ASNMP/agent/snmp_agent.h
+++ b/ACE/ASNMP/agent/snmp_agent.h
@@ -1,31 +1,30 @@
-// $Id$
/* -*-C++-*- */
#ifndef SNMP_AGENT_
#define SNMP_AGENT_
-// ============================================================================
-//
-// = LIBRARY
-// ASNMP
-//
-// = FILENAME
-// snmp_agent.h
-//
-// = AUTHOR
-// Michael R. MacFaden (mrm@cisco.com)
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file snmp_agent.h
+ *
+ * $Id$
+ *
+ * @author Michael R. MacFaden (mrm@cisco.com)
+ */
+//=============================================================================
+
class agent_impl;
+/**
+ * @class snmp_agent
+ *
+ * @brief An SNMP v1 agent class
+ *
+ * Contructs agents that are capable of processing SNMPv1 requests
+ * over the MIB II System group
+ */
class snmp_agent {
- // = TITLE
- // An SNMP v1 agent class
- //
- // = DESCRIPTION
- // Contructs agents that are capable of processing SNMPv1 requests
- // over the MIB II System group
public:
snmp_agent(); // uses port 161, public, private
diff --git a/ACE/ASNMP/asnmp/address.cpp b/ACE/ASNMP/asnmp/address.cpp
index edc46f00e3c..a635aa6cefa 100644
--- a/ACE/ASNMP/asnmp/address.cpp
+++ b/ACE/ASNMP/asnmp/address.cpp
@@ -1,25 +1,22 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// address.cpp
-//
-// = DESCRIPTION
-// The Vb class is an encapsulation of the snmp variable binding.
-// This module contains the class definition for the variable binding (VB)
-// class. The VB class is an encapsulation of a SNMP VB. A VB object is
-// composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
-// objects and thus requires the Oid class. To use this class,
-// set oid, value then call valid() to be sure object was constructed correctly.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+//=============================================================================
+/**
+ * @file address.cpp
+ *
+ * $Id$
+ *
+ * The Vb class is an encapsulation of the snmp variable binding.
+ * This module contains the class definition for the variable binding (VB)
+ * class. The VB class is an encapsulation of a SNMP VB. A VB object is
+ * composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
+ * objects and thus requires the Oid class. To use this class,
+ * set oid, value then call valid() to be sure object was constructed correctly.
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -45,8 +42,6 @@
#include "ace/OS_NS_ctype.h"
#include "ace/OS_Memory.h"
-ACE_RCSID(asnmp, address, "$Id$")
-
//=================================================================
//======== Abstract Address Class Implementation ==================
//=================================================================
@@ -312,7 +307,8 @@ IpAddress::~IpAddress()
int IpAddress::is_loopback() const
{
if (valid()) {
- return (*(u_long *)&address_buffer == INADDR_LOOPBACK);
+ u_long *pl = (u_long *)&address_buffer;
+ return (*pl == INADDR_LOOPBACK);
}
return 0;
}
@@ -320,7 +316,8 @@ int IpAddress::is_loopback() const
int IpAddress::is_multicast() const
{
if (valid()) {
- return (IN_MULTICAST(*(u_long *)&address_buffer));
+ u_long *pl = (u_long *)&address_buffer;
+ return (IN_MULTICAST(*pl));
}
return 0;
}
@@ -358,7 +355,8 @@ void IpAddress::to_octet(OctetStr& octet) const
int IpAddress::is_broadcast() const
{
if (valid()) {
- return ( (*(u_long *)&address_buffer) & INADDR_BROADCAST);
+ u_long *pl = (u_long *)&address_buffer;
+ return ( (*pl) & INADDR_BROADCAST);
}
return 0;
}
@@ -669,7 +667,7 @@ Address_Iter::Address_Iter (const char *hostname)
{
ACE_OS::memset (&buffer_, 0, sizeof (ACE_HOSTENT_DATA));
ACE_OS::memset (&lookupResult_, 0, sizeof (struct hostent));
-
+
if (ACE_OS::inet_addr (hostname) == (unsigned long) -1)
{
valid_ = query_dns (hostname);
diff --git a/ACE/ASNMP/asnmp/address.h b/ACE/ASNMP/asnmp/address.h
index f8131c19485..f9137d35b8d 100644
--- a/ACE/ASNMP/asnmp/address.h
+++ b/ACE/ASNMP/asnmp/address.h
@@ -99,7 +99,7 @@ class SIPAddress; // aka ipv6
//----[ Address class ]-----------------------------------------------
//--------------------------------------------------------------------
/**
- * @class
+ * @class
*
* @brief Defines the member functions for the abstract base class
* Address. An Address is a unique network endpoint.
@@ -340,7 +340,7 @@ private:
//---------[ UDP/IPv4 Address Class ]-------------------------------------
//------------------------------------------------------------------------
/**
- * @class
+ * @class
*
* @brief Defines the member functions for the concrete class UdpAddress
* A Udp Address consists of an IP Version 4 Address (IpAddress)
@@ -411,7 +411,7 @@ protected:
//---------[ 802.3 MAC Address Class ]-------------------------------------
//-------------------------------------------------------------------------
/**
- * @class
+ * @class
*
* @brief Defines the member functions for the concrete class MacAddress.
* A Media Access Control Address consists of 48 bits as defined
@@ -474,7 +474,7 @@ protected:
//---------[ Netbios Address Class ]--------------------------------------
//------------------------------------------------------------------------
/**
- * @class
+ * @class
*
* @brief Defines the member functions for the concrete class NetbiosAddress.
* The IBM/Microsoft address for NETBIOS, NETBEUI protocol transport.
@@ -536,7 +536,7 @@ protected:
//---------[ DecNet Address Class ]---------------------------------------
//------------------------------------------------------------------------
/**
- * @class
+ * @class
*
* @brief Defines the member functions for the concrete class DecNetAddress.
* DecNet Phase ? address consists of two octets (CISCO-TC.my)
@@ -585,7 +585,7 @@ class ASNMP_Export DecNetAddress : public Address
//---------[ AppleTalk Address Class ]------------------------------------
//------------------------------------------------------------------------
/**
- * @class
+ * @class
*
* @brief Defines the member functions for the concrete class DecNetAddress.
* DecNet Phase ? address consists of two octets (CISCO-TC.my)
diff --git a/ACE/ASNMP/asnmp/asn1.cpp b/ACE/ASNMP/asnmp/asn1.cpp
index 88a19b67b63..6ba1d557e62 100644
--- a/ACE/ASNMP/asnmp/asn1.cpp
+++ b/ACE/ASNMP/asnmp/asn1.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// asn1.cpp
-//
-// = DESCRIPTION
-// The Vb class is an encapsulation of the snmp variable binding.
-// This module contains the class definition for the variable binding (VB)
-// class. The VB class is an encapsulation of a SNMP VB. A VB object is
-// composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
-// objects and thus requires the Oid class. To use this class,
-// set oid, value then call valid() to be sure object was constructed correctly.
-//
-// = AUTHOR
-// S. Waldbusser (assumed)
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file asn1.cpp
+ *
+ * $Id$
+ *
+ * The Vb class is an encapsulation of the snmp variable binding.
+ * This module contains the class definition for the variable binding (VB)
+ * class. The VB class is an encapsulation of a SNMP VB. A VB object is
+ * composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
+ * objects and thus requires the Oid class. To use this class,
+ * set oid, value then call valid() to be sure object was constructed correctly.
+ *
+ *
+ * @author S. Waldbusser (assumed)Michael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/**********************************************************************
// *
* Abstract Syntax Notation One, ASN.1
@@ -54,8 +51,6 @@
#include "asnmp/snmp.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(asnmp, asn1, "$Id$")
-
/*
* parse_int - pulls a long out of an ASN int type.
* On entry, datalength is input as the number of valid bytes following
@@ -1031,7 +1026,7 @@ void cmu_snmp::add_var(struct snmp_pdu *pdu,
{
// Do nothing.
}
-
+
// create one
ACE_NEW(vars->next_variable, variable_list);
// bump ptr
@@ -1370,7 +1365,7 @@ int cmu_snmp::build( struct snmp_pdu *pdu, u_char *packet,
sizeof(pdu->agent_addr.sin_addr.s_addr));
if (cp == 0)
return -1;
-
+
long tmp (static_cast <long> (pdu->trap_type));
// generic trap
cp = asn1::build_int(cp,
@@ -1380,7 +1375,7 @@ int cmu_snmp::build( struct snmp_pdu *pdu, u_char *packet,
sizeof(pdu->trap_type));
if (cp == 0)
return -1;
-
+
tmp = static_cast <long> (pdu->specific_type);
// specific trap
cp = asn1::build_int( cp,
@@ -1628,9 +1623,9 @@ int cmu_snmp::parse( struct snmp_pdu *pdu,
&four);
if (data == 0)
return -1;
-
+
long tmp (static_cast <long> (pdu->trap_type));
-
+
// get trap type
data = asn1::parse_int(data, &length, &type, &tmp,
sizeof(pdu->trap_type));
diff --git a/ACE/ASNMP/asnmp/asnmp.mpc b/ACE/ASNMP/asnmp/asnmp.mpc
index fc128bee249..9459622034d 100644
--- a/ACE/ASNMP/asnmp/asnmp.mpc
+++ b/ACE/ASNMP/asnmp/asnmp.mpc
@@ -2,7 +2,7 @@
project (asnmp_lib) : ace_output, acelib {
sharedname = asnmp
- dynamicflags = ASNMP_BUILD_DLL
+ dynamicflags += ASNMP_BUILD_DLL
includes += $(ACE_ROOT)/ASNMP
source_files {
diff --git a/ACE/ASNMP/asnmp/counter.cpp b/ACE/ASNMP/asnmp/counter.cpp
index c62b1d0a20a..1ac73919bb9 100644
--- a/ACE/ASNMP/asnmp/counter.cpp
+++ b/ACE/ASNMP/asnmp/counter.cpp
@@ -1,20 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// counter.cpp
-//
-// = DESCRIPTION
-// Class implementation for SMI Counter32 class.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+//=============================================================================
+/**
+ * @file counter.cpp
+ *
+ * $Id$
+ *
+ * Class implementation for SMI Counter32 class.
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -33,8 +30,6 @@
#include "asnmp/counter.h"
-ACE_RCSID(asnmp, counter, "$Id$")
-
// constructor with a value
Counter32::Counter32( const unsigned long i):SnmpUInt32(i)
{
diff --git a/ACE/ASNMP/asnmp/ctr64.cpp b/ACE/ASNMP/asnmp/ctr64.cpp
index 60cc9abfbbb..03f55626924 100644
--- a/ACE/ASNMP/asnmp/ctr64.cpp
+++ b/ACE/ASNMP/asnmp/ctr64.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// ctr64.cpp
-//
-// = DESCRIPTION
-// Implementation for Counter64 ( 64 bit counter class).
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ctr64.cpp
+ *
+ * $Id$
+ *
+ * Implementation for Counter64 ( 64 bit counter class).
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -34,8 +31,6 @@
#include "asnmp/ctr64.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(asnmp, ctr64, "$Id$")
-
#define MAX32 4294967295u
//-----------[ syntax type ]----------------------------------------------
diff --git a/ACE/ASNMP/asnmp/gauge.cpp b/ACE/ASNMP/asnmp/gauge.cpp
index 9051e2f83fb..6d7796801f8 100644
--- a/ACE/ASNMP/asnmp/gauge.cpp
+++ b/ACE/ASNMP/asnmp/gauge.cpp
@@ -1,21 +1,18 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// gauge.cpp
-//
-// = DESCRIPTION
-// Class implemtation for SMI Gauge32 class.
-// NOTES: This does not behave exactly as a Gauge described in RFC 1155
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+//=============================================================================
+/**
+ * @file gauge.cpp
+ *
+ * $Id$
+ *
+ * Class implemtation for SMI Gauge32 class.
+ * NOTES: This does not behave exactly as a Gauge described in RFC 1155
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -34,8 +31,6 @@
#include "asnmp/gauge.h" // header file for gauge class
-ACE_RCSID(asnmp, gauge, "$Id$")
-
// constructor with a value
Gauge32::Gauge32( const unsigned long i):SnmpUInt32(i)
{
diff --git a/ACE/ASNMP/asnmp/integer.cpp b/ACE/ASNMP/asnmp/integer.cpp
index 8b73ce33dc6..30a907b2bd2 100644
--- a/ACE/ASNMP/asnmp/integer.cpp
+++ b/ACE/ASNMP/asnmp/integer.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// integer.cpp
-//
-// = DESCRIPTION
-// Class implemtation for SMI Integer classes.
-//
-// = AUTHOR
-// Jeff Meyer
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file integer.cpp
+ *
+ * $Id$
+ *
+ * Class implemtation for SMI Integer classes.
+ *
+ *
+ * @author Jeff MeyerMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
@@ -35,8 +32,6 @@
#include "asnmp/integer.h" // header file for gauge class
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(asnmp, integer, "$Id$")
-
// constructor with value
SnmpUInt32::SnmpUInt32 (const unsigned long i)
{
diff --git a/ACE/ASNMP/asnmp/octet.cpp b/ACE/ASNMP/asnmp/octet.cpp
index 315053cd590..8874e646a48 100644
--- a/ACE/ASNMP/asnmp/octet.cpp
+++ b/ACE/ASNMP/asnmp/octet.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// octet.cpp
-//
-// = DESCRIPTION
-// Implements the SMI Octet datatype (RFC 1155)
-// This class is fully contained and does not rely on or any other
-// SNMP libraries. Ported to ACE by Michael MacFaden mrm@cisco.com
-//
-// = AUTHOR
-// Peter E Mellquist
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file octet.cpp
+ *
+ * $Id$
+ *
+ * Implements the SMI Octet datatype (RFC 1155)
+ * This class is fully contained and does not rely on or any other
+ * SNMP libraries. Ported to ACE by Michael MacFaden mrm@cisco.com
+ *
+ *
+ * @author Peter E Mellquist
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -40,8 +37,6 @@
#include "ace/OS_NS_ctype.h"
#include "ace/os_include/os_ctype.h"
-ACE_RCSID(asnmp, octet, "$Id$")
-
//============[ syntax type ]=========================================
SmiUINT32 OctetStr::get_syntax()
{
diff --git a/ACE/ASNMP/asnmp/oid.cpp b/ACE/ASNMP/asnmp/oid.cpp
index 3e98c2fd44a..37f00e202fd 100644
--- a/ACE/ASNMP/asnmp/oid.cpp
+++ b/ACE/ASNMP/asnmp/oid.cpp
@@ -1,22 +1,19 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// oid.cpp
-//
-// = DESCRIPTION
-// This module contains the implementation of the oid class. This
-// includes all protected and public member functions. The oid class
-// may be compiled stand alone without the use of any other library.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+//=============================================================================
+/**
+ * @file oid.cpp
+ *
+ * $Id$
+ *
+ * This module contains the implementation of the oid class. This
+ * includes all protected and public member functions. The oid class
+ * may be compiled stand alone without the use of any other library.
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -41,8 +38,6 @@
#include "ace/OS_Memory.h"
#include "ace/OS_NS_ctype.h"
-ACE_RCSID(asnmp, oid, "$Id$")
-
enum Defs {SNMPBUFFSIZE=300,
SNMPCHARSIZE=15}; // max oid value (4294967295UL)
diff --git a/ACE/ASNMP/asnmp/pdu.cpp b/ACE/ASNMP/asnmp/pdu.cpp
index 1e86fe17d90..05a29cfeb96 100644
--- a/ACE/ASNMP/asnmp/pdu.cpp
+++ b/ACE/ASNMP/asnmp/pdu.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// pdu.cpp
-//
-// = DESCRIPTION
-// Pdu class implementation. Encapsulation of an SMI Protocol
-// Data Unit (PDU) in C++.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file pdu.cpp
+ *
+ * $Id$
+ *
+ * Pdu class implementation. Encapsulation of an SMI Protocol
+ * Data Unit (PDU) in C++.
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -37,8 +34,6 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(asnmp, pdu, "$Id$")
-
//=====================[ constructor no args ]=========================
Pdu::Pdu( void): vb_count_(0), error_status_(0), error_index_(0),
validity_(0), request_id_(0), pdu_type_(0), notify_timestamp_(0),
diff --git a/ACE/ASNMP/asnmp/sagent.cpp b/ACE/ASNMP/asnmp/sagent.cpp
index 8ee2fdb5b8d..610fc4c3d4e 100644
--- a/ACE/ASNMP/asnmp/sagent.cpp
+++ b/ACE/ASNMP/asnmp/sagent.cpp
@@ -1,22 +1,19 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// sagent.cpp
-//
-// = DESCRIPTION
-// SNMP agent class definition. The sagent class provides an object oriented
-// approach for creating SNMP Agents. The sagent class is an encapsulation
-// of SNMP sessions, gets, sets, etc.
-//
-// = AUTHOR
-// Michael R. MacFaden
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file sagent.cpp
+ *
+ * $Id$
+ *
+ * SNMP agent class definition. The sagent class provides an object oriented
+ * approach for creating SNMP Agents. The sagent class is an encapsulation
+ * of SNMP sessions, gets, sets, etc.
+ *
+ *
+ * @author Michael R. MacFaden
+ */
+//=============================================================================
+
#include "ace/Reactor.h"
#include "ace/SOCK_Dgram.h"
@@ -30,8 +27,6 @@
#include "asnmp/sagent.h" // agent interface
#include "asnmp/transaction.h" // convert from wire to API
-ACE_RCSID(asnmp, sagent, "$Id$")
-
sagent::sagent(unsigned short port): Snmp(port)
{
ACE_TRACE("sagent::sagent(short)");
diff --git a/ACE/ASNMP/asnmp/snmp.cpp b/ACE/ASNMP/asnmp/snmp.cpp
index cc2e1dd4179..0e2aa73be59 100644
--- a/ACE/ASNMP/asnmp/snmp.cpp
+++ b/ACE/ASNMP/asnmp/snmp.cpp
@@ -1,21 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// snmp.cpp
-//
-// = DESCRIPTION
-// The basic SNMPv1 API - blocking version using UDP/IPv4 transport
-// and addressing.
-//
-// = AUTHOR
-// Peter E Mellquist class design/orig code
-// Michael R MacFaden mrm@cisco.com / rework API, use ACE facilities
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file snmp.cpp
+ *
+ * $Id$
+ *
+ * The basic SNMPv1 API - blocking version using UDP/IPv4 transport
+ * and addressing.
+ *
+ *
+ * @author Peter E Mellquist class design/orig codeMichael R MacFaden mrm@cisco.com / rework API
+ * @author use ACE facilities
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -47,8 +45,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(asnmp, snmp, "$Id$")
-
const coldStartOid coldStart;
const warmStartOid warmStart;
const linkDownOid linkDown;
diff --git a/ACE/ASNMP/asnmp/target.cpp b/ACE/ASNMP/asnmp/target.cpp
index dd99fa19560..bd8f1cd5a71 100644
--- a/ACE/ASNMP/asnmp/target.cpp
+++ b/ACE/ASNMP/asnmp/target.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// target.cpp
-//
-// = DESCRIPTION
-// Target class defines target SNMP agents.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file target.cpp
+ *
+ * $Id$
+ *
+ * Target class defines target SNMP agents.
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -34,8 +31,6 @@
#include "asnmp/target.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(asnmp, target, "$Id$")
-
//----------------------------------------------------------------------
//--------[ Class default values ]----------------------
//----------------------------------------------------------------------
diff --git a/ACE/ASNMP/asnmp/timetick.cpp b/ACE/ASNMP/asnmp/timetick.cpp
index f777b43ad64..d8aab128035 100644
--- a/ACE/ASNMP/asnmp/timetick.cpp
+++ b/ACE/ASNMP/asnmp/timetick.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// timetick.cpp
-//
-// = DESCRIPTION
-// Class implentation for SMI Timeticks class.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file timetick.cpp
+ *
+ * $Id$
+ *
+ * Class implentation for SMI Timeticks class.
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -34,8 +31,6 @@
#include "asnmp/timetick.h" // include header file for timetick class
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(asnmp, timetick, "$Id$")
-
// constructor with a value
TimeTicks::TimeTicks( const unsigned long i):SnmpUInt32(i)
{
@@ -134,13 +129,13 @@ const char * TimeTicks::to_string()
hseconds = tt;
if ( days ==0)
- ACE_OS::sprintf( output_buffer,"%ld:%02ld:%02ld.%02ld", hours,
+ ACE_OS::sprintf( output_buffer,"%ld:%02ld:%02ld.%02ld", hours,
minutes,seconds,hseconds);
else if ( days==1)
- ACE_OS::sprintf( output_buffer,"1 day %ld:%02ld:%02ld.%02ld", hours,
+ ACE_OS::sprintf( output_buffer,"1 day %ld:%02ld:%02ld.%02ld", hours,
minutes,seconds,hseconds);
else
- ACE_OS::sprintf( output_buffer,"%ld days, %ld:%02ld:%02ld.%02ld",
+ ACE_OS::sprintf( output_buffer,"%ld days, %ld:%02ld:%02ld.%02ld",
days,hours, minutes,seconds, hseconds);
return output_buffer;
diff --git a/ACE/ASNMP/asnmp/transaction.cpp b/ACE/ASNMP/asnmp/transaction.cpp
index de3afcf8a36..9bfab1308a5 100644
--- a/ACE/ASNMP/asnmp/transaction.cpp
+++ b/ACE/ASNMP/asnmp/transaction.cpp
@@ -1,27 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// transaction.cpp
-//
-// = DESCRIPTION
-// implements blocking SNMPv1 API using a simple state machine
-// transactions over UDP/IP networks
-//
-// = AUTHOR
-// Michael R MacFaden mrm@cisco.com - remove v2c, async, rework for ACE
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file transaction.cpp
+ *
+ * $Id$
+ *
+ * implements blocking SNMPv1 API using a simple state machine
+ * transactions over UDP/IP networks
+ *
+ *
+ * @author Michael R MacFaden mrm@cisco.com - remove v2c
+ * @author async
+ * @author rework for ACE
+ */
+//=============================================================================
+
#include "ace/Reactor.h"
#include "asnmp/transaction.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(asnmp, transaction, "$Id$")
-
// pre: pdu, target report valid() == 1
// post: pdu sent out over the wire
inline void reset_receive_buffer(iovec& io)
diff --git a/ACE/ASNMP/asnmp/transaction.h b/ACE/ASNMP/asnmp/transaction.h
index d114bd40d1f..682e254c3c2 100644
--- a/ACE/ASNMP/asnmp/transaction.h
+++ b/ACE/ASNMP/asnmp/transaction.h
@@ -7,7 +7,7 @@
*
* $Id$
*
- * @brief
+ * @brief
*
* @author Michael R. MacFaden port to ACE / use Reactor pattern
*/
diff --git a/ACE/ASNMP/asnmp/vb.cpp b/ACE/ASNMP/asnmp/vb.cpp
index 4e94b5e81b9..d852ceb7e53 100644
--- a/ACE/ASNMP/asnmp/vb.cpp
+++ b/ACE/ASNMP/asnmp/vb.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// vb.h
-//
-// = DESCRIPTION
-// The Vb class is an encapsulation of the snmp variable binding.
-// This module contains the class definition for the variable binding (VB)
-// class. The VB class is an encapsulation of a SNMP VB. A VB object is
-// composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
-// objects and thus requires the Oid class. To use this class,
-// set oid, value then call valid() to be sure object was constructed correctly.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file vb.cpp
+ *
+ * $Id$
+ *
+ * The Vb class is an encapsulation of the snmp variable binding.
+ * This module contains the class definition for the variable binding (VB)
+ * class. The VB class is an encapsulation of a SNMP VB. A VB object is
+ * composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
+ * objects and thus requires the Oid class. To use this class,
+ * set oid, value then call valid() to be sure object was constructed correctly.
+ *
+ *
+ * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -43,8 +40,6 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_Memory.h"
-ACE_RCSID(asnmp, vb, "$Id$")
-
//---------------[ Vb::Vb( void) ]--------------------------------------
// constructor with no arguments
// makes an vb, unitialized
diff --git a/ACE/ASNMP/asnmp/wpdu.cpp b/ACE/ASNMP/asnmp/wpdu.cpp
index 325f508cc2e..454e8ced7a8 100644
--- a/ACE/ASNMP/asnmp/wpdu.cpp
+++ b/ACE/ASNMP/asnmp/wpdu.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// wpdu.cpp
-//
-// = DESCRIPTION
-// Adapter class. Converts between raw wire format and Pdu objects
-// that can be stuffed out a I/O port or reconstructed
-//
-// = AUTHOR
-// Michael R. MacFaden rework the class api and impl using ACE
-// Peter E Mellquist implementation/code from snmp++ snmpmsg class
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file wpdu.cpp
+ *
+ * $Id$
+ *
+ * Adapter class. Converts between raw wire format and Pdu objects
+ * that can be stuffed out a I/O port or reconstructed
+ *
+ *
+ * @author Michael R. MacFaden rework the class api and impl using ACEPeter E Mellquist implementation/code from snmp++ snmpmsg class
+ */
+//=============================================================================
+
#include "asnmp/wpdu.h"
#include "ace/Log_Msg.h"
@@ -25,8 +22,6 @@
#define DEFINE_TRAP_CONSTANTS_
#include "asnmp/enttraps.h"
-ACE_RCSID(asnmp, wpdu, "$Id$")
-
#define MAX_COMM_STR_LEN 255
#define V1_COLD_START 0
#define V1_WARM_START 1
diff --git a/ACE/ASNMP/examples/get/get.cpp b/ACE/ASNMP/examples/get/get.cpp
index 6cf1b0a7aab..f246ba291d9 100644
--- a/ACE/ASNMP/examples/get/get.cpp
+++ b/ACE/ASNMP/examples/get/get.cpp
@@ -1,22 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// get.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::get API
-// to access an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file get.cpp
+ *
+ * $Id$
+ *
+ * Sample application demonstrating synchronous Snmp::get API
+ * to access an SNMP Version 1 agent.
+ *
+ *
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
@@ -41,8 +36,6 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(get, get, "$Id$")
-
//
// SNMPv1 Get Application
//
diff --git a/ACE/ASNMP/examples/get/get_async.cpp b/ACE/ASNMP/examples/get/get_async.cpp
index 008f7b18f66..617ba42db6b 100644
--- a/ACE/ASNMP/examples/get/get_async.cpp
+++ b/ACE/ASNMP/examples/get/get_async.cpp
@@ -1,20 +1,16 @@
-// ============================================================================
-// $Id$
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// get.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::get API
-// to access an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file get_async.cpp
+ *
+ * $Id$
+ *
+ * Sample application demonstrating synchronous Snmp::get API
+ * to access an SNMP Version 1 agent.
+ *
+ *
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
@@ -39,11 +35,7 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(get, get_async, "$Id$")
-
-//
// SNMPv1 Get Application
-//
class getapp : public Snmp_Result {
public:
getapp(int argc, char **argv); // process command line args
diff --git a/ACE/ASNMP/examples/next/next.cpp b/ACE/ASNMP/examples/next/next.cpp
index ed68a033d8f..1a06992b2d2 100644
--- a/ACE/ASNMP/examples/next/next.cpp
+++ b/ACE/ASNMP/examples/next/next.cpp
@@ -1,22 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// next.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::get_next API
-// to access an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file next.cpp
+ *
+ * $Id$
+ *
+ * Sample application demonstrating synchronous Snmp::get_next API
+ * to access an SNMP Version 1 agent.
+ *
+ *
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -40,8 +35,6 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(next, next, "$Id$")
-
//
// SNMPv1 Get Next Application
//
diff --git a/ACE/ASNMP/examples/set/set.cpp b/ACE/ASNMP/examples/set/set.cpp
index 73302ab69c1..07c3041704c 100644
--- a/ACE/ASNMP/examples/set/set.cpp
+++ b/ACE/ASNMP/examples/set/set.cpp
@@ -1,22 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// set.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::set API
-// to update an oid in an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file set.cpp
+ *
+ * $Id$
+ *
+ * Sample application demonstrating synchronous Snmp::set API
+ * to update an oid in an SNMP Version 1 agent.
+ *
+ *
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -40,8 +35,6 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(set, set, "$Id$")
-
//
// SNMPv1 Set Application
//
diff --git a/ACE/ASNMP/examples/trap/trap.cpp b/ACE/ASNMP/examples/trap/trap.cpp
index 4be4021ca3e..c987c82bc28 100644
--- a/ACE/ASNMP/examples/trap/trap.cpp
+++ b/ACE/ASNMP/examples/trap/trap.cpp
@@ -1,22 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// trap.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::trap API
-// to send to an SNMP Version 1 trap listener app.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework OO, API/ACE integration
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file trap.cpp
+ *
+ * $Id$
+ *
+ * Sample application demonstrating synchronous Snmp::trap API
+ * to send to an SNMP Version 1 trap listener app.
+ *
+ *
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -42,8 +37,6 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(trap, trap, "$Id$")
-
//
// SNMPv1 Trap Application
//
diff --git a/ACE/ASNMP/examples/walk/walk.cpp b/ACE/ASNMP/examples/walk/walk.cpp
index dabd3a5437a..bdcc8e206a9 100644
--- a/ACE/ASNMP/examples/walk/walk.cpp
+++ b/ACE/ASNMP/examples/walk/walk.cpp
@@ -1,22 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// walk.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::get, get_next API
-// to access an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file walk.cpp
+ *
+ * $Id$
+ *
+ * Sample application demonstrating synchronous Snmp::get, get_next API
+ * to access an SNMP Version 1 agent.
+ *
+ *
+ */
+//=============================================================================
+
/*===================================================================
Copyright (c) 1996
Hewlett-Packard Company
@@ -39,8 +34,6 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(walk, walk, "$Id$")
-
//
// SNMPv1 Walk Mib Application
//
diff --git a/ACE/ASNMP/tests/Address_Test.cpp b/ACE/ASNMP/tests/Address_Test.cpp
index e0bb5598643..8cb98b5aa0b 100644
--- a/ACE/ASNMP/tests/Address_Test.cpp
+++ b/ACE/ASNMP/tests/Address_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Address_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Address family:
-// GenAddress, MacAddress, IpxAddress, IpAddress, UdpAddress
-// all which derive from abstract base class Address.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Address_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the Address family:
+ * GenAddress, MacAddress, IpxAddress, IpAddress, UdpAddress
+ * all which derive from abstract base class Address.
+ *
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -44,8 +41,6 @@ DAMAGES.
#include "asnmp/address.h"
#include "test_config.h"
-ACE_RCSID(tests, Address_Test, "$Id$")
-
// test the GenAddress interface
/*
*/
diff --git a/ACE/ASNMP/tests/Counter64_Test.cpp b/ACE/ASNMP/tests/Counter64_Test.cpp
index f0b9ee8ad56..a5de448a308 100644
--- a/ACE/ASNMP/tests/Counter64_Test.cpp
+++ b/ACE/ASNMP/tests/Counter64_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Counter64_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Counter64 class. An Object
-// representing an ASN.1 Counter64 SMI 64 bit Integer SYNTAX.
-// (SNMPv2c)
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Counter64_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the Counter64 class. An Object
+ * representing an ASN.1 Counter64 SMI 64 bit Integer SYNTAX.
+ * (SNMPv2c)
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -42,8 +39,6 @@ DAMAGES.
#include "asnmp/ctr64.h"
#include "test_config.h"
-ACE_RCSID(tests, Counter64_Test, "$Id$")
-
// TODO: verify this with ACE folks
#if defined(_WIN32)
#define LLONG __int64
@@ -108,7 +103,7 @@ static void TestCounter64()
Counter64 c6;
c6.assign(ld);
- ACE_ASSERT(c6.to_long_double() == ld);
+ ACE_ASSERT(ACE::is_equal(c6.to_long_double(), ld));
Counter64 c7(ull);
ACE_ASSERT(c7 == ull);
diff --git a/ACE/ASNMP/tests/Counter_Test.cpp b/ACE/ASNMP/tests/Counter_Test.cpp
index c6b4b4c9b72..ebe9693b864 100644
--- a/ACE/ASNMP/tests/Counter_Test.cpp
+++ b/ACE/ASNMP/tests/Counter_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Counter_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Counter class. An Object
-// representing an ASN.1 Counter SMI COUNTER SYNTAX.
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Counter_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the Counter class. An Object
+ * representing an ASN.1 Counter SMI COUNTER SYNTAX.
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -41,8 +38,6 @@ DAMAGES.
#include "asnmp/counter.h"
#include "test_config.h"
-ACE_RCSID(tests, Counter_Test, "$Id$")
-
/*
Counter32( void);
Counter32( const unsigned long i);
diff --git a/ACE/ASNMP/tests/Gauge_Test.cpp b/ACE/ASNMP/tests/Gauge_Test.cpp
index 45a4ac279e7..6aa429ee812 100644
--- a/ACE/ASNMP/tests/Gauge_Test.cpp
+++ b/ACE/ASNMP/tests/Gauge_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Guage_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Guage class. An Object
-// representing an ASN.1 Counter SMI GUAGE SYNTAX.
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Gauge_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the Guage class. An Object
+ * representing an ASN.1 Counter SMI GUAGE SYNTAX.
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -41,10 +38,6 @@ DAMAGES.
#include "asnmp/gauge.h"
#include "test_config.h"
-ACE_RCSID (tests,
- Gauge_Test,
- "$Id$")
-
/*
Gauge32( void);
Gauge32( const unsigned long i);
diff --git a/ACE/ASNMP/tests/Integer_Test.cpp b/ACE/ASNMP/tests/Integer_Test.cpp
index 8cea7e33f1b..459cf24b597 100644
--- a/ACE/ASNMP/tests/Integer_Test.cpp
+++ b/ACE/ASNMP/tests/Integer_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Integer_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Integer class. An Object
-// representing an ASN.1 Integer64 SMI 32 bit Integer SYNTAX.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Integer_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the Integer class. An Object
+ * representing an ASN.1 Integer64 SMI 32 bit Integer SYNTAX.
+ *
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -42,10 +39,6 @@ DAMAGES.
#include "asnmp/integer.h"
#include "test_config.h"
-ACE_RCSID (tests,
- Integer_Test,
- "$Id$")
-
#if !defined (ACE_WIN32)
static long l = LONG_MAX, nl = LONG_MIN; // limits.h
static unsigned long ul = ULONG_MAX, def = 0;
diff --git a/ACE/ASNMP/tests/Octet_Test.cpp b/ACE/ASNMP/tests/Octet_Test.cpp
index a32f1cd2f09..38bc2d1331f 100644
--- a/ACE/ASNMP/tests/Octet_Test.cpp
+++ b/ACE/ASNMP/tests/Octet_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Octet_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the OCTET class. An Object
-// representing an ASN.1 Integer64 SMI OCTET STRING SYNTAX.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Octet_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the OCTET class. An Object
+ * representing an ASN.1 Integer64 SMI OCTET STRING SYNTAX.
+ *
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -44,8 +41,6 @@ DAMAGES.
#include "asnmp/octet.h"
#include "test_config.h"
-ACE_RCSID(tests, Octet_Test, "$Id$")
-
/*
OctetStr( const char *string, long size = -1);
OctetStr ( const OctetStr &octet);
diff --git a/ACE/ASNMP/tests/Oid_Test.cpp b/ACE/ASNMP/tests/Oid_Test.cpp
index 7add52bd790..b98c8c50969 100644
--- a/ACE/ASNMP/tests/Oid_Test.cpp
+++ b/ACE/ASNMP/tests/Oid_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// Oid_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Oid class. An Object
-// representing an ASN.1 Integer64 SMI OID SYNTAX.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Oid_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the Oid class. An Object
+ * representing an ASN.1 Integer64 SMI OID SYNTAX.
+ *
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -42,8 +39,6 @@ DAMAGES.
#include "asnmp/oid.h"
#include "test_config.h"
-ACE_RCSID(tests, Oid_Test, "$Id$")
-
/*
Oid( const char * dotted_oid_string = "", size_t size = -1);
Oid ( const Oid &oid);
diff --git a/ACE/ASNMP/tests/Target_Test.cpp b/ACE/ASNMP/tests/Target_Test.cpp
index 28302e11cfd..dd2f25ddd3a 100644
--- a/ACE/ASNMP/tests/Target_Test.cpp
+++ b/ACE/ASNMP/tests/Target_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Target_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Target class.
-// Not sure if this object is really required or not in the new framework
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Target_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the Target class.
+ * Not sure if this object is really required or not in the new framework
+ *
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -44,8 +41,6 @@ DAMAGES.
#include "asnmp/target.h"
#include "test_config.h"
-ACE_RCSID(tests, Target_Test, "$Id$")
-
/*
Percieved Problems with this CTarget aka UdpTarget Interface:
diff --git a/ACE/ASNMP/tests/Varbind_Test.cpp b/ACE/ASNMP/tests/Varbind_Test.cpp
index e9c9ecc923b..cf7b7cfd01e 100644
--- a/ACE/ASNMP/tests/Varbind_Test.cpp
+++ b/ACE/ASNMP/tests/Varbind_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// Varbind_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Varbind class.
-// A varbind is a list of { oids and associated values }
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Varbind_Test.cpp
+ *
+ * $Id$
+ *
+ * Test all the member functions of the Varbind class.
+ * A varbind is a list of { oids and associated values }
+ *
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Copyright 1997 Cisco Systems, Inc.
@@ -44,7 +41,6 @@ DAMAGES.
#include "asnmp/vb.h"
#include "test_config.h"
-ACE_RCSID(tests, Varbind_Test, "$Id$")
/*
Vb( void);
Vb( const Oid &oid);
diff --git a/ACE/ASNMP/tests/run_tests.sh b/ACE/ASNMP/tests/run_tests.sh
index c8d911c184c..19a1ca957f7 100755
--- a/ACE/ASNMP/tests/run_tests.sh
+++ b/ACE/ASNMP/tests/run_tests.sh
@@ -1,8 +1,8 @@
#!/bin/sh
# This is the UNIX version of the one-button ACE tests.
# Contributed by Michael Rueger <m_rueger@SYSCOMP.DE>
-# mrm@cisco.com - Change to for loop script could be more generic if we put
-# this in the bin dir and fed it a file to read from
+# mrm@cisco.com - Change to for loop script could be more generic if we put
+# this in the bin dir and fed it a file to read from
IFS="|"
tmp=/tmp
diff --git a/ACE/ASNMP/tests/test_config.h b/ACE/ASNMP/tests/test_config.h
index e1e3912c347..4f555ca9c6e 100644
--- a/ACE/ASNMP/tests/test_config.h
+++ b/ACE/ASNMP/tests/test_config.h
@@ -1,15 +1,17 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-// = FILENAME
-// test_config.h
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>, Tim Harrison
-// <harrison@cs.wustl.edu>, and David Levine <levine@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_config.h
+ *
+ * $Id$
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ * @author Tim Harrison <harrison@cs.wustl.edu>
+ * @author and David Levine <levine@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TEST_CONFIG_H
#define ACE_TEST_CONFIG_H
diff --git a/ACE/COPYING b/ACE/COPYING
index 0b4d139ae6e..a9bbf1d9e0f 100644
--- a/ACE/COPYING
+++ b/ACE/COPYING
@@ -1,36 +1,37 @@
_________________________________________________________________
- Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM), and
- CoSMIC(TM)
+ Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM),
+ DAnCE(TM), and CoSMIC(TM)
- [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), and [4]CoSMIC(TM) (henceforth
- referred to as "DOC software") are copyrighted by [5]Douglas C.
- Schmidt and his [6]research group at [7]Washington University,
- [8]University of California, Irvine, and [9]Vanderbilt University,
- Copyright (c) 1993-2009, all rights reserved. Since DOC software is
- open-source, freely available software, you are free to use, modify,
- copy, and distribute--perpetually and irrevocably--the DOC software
- source code and object code produced from the source, as well as copy
- and distribute modified versions of this software. You must, however,
- include this copyright statement along with any code built using DOC
- software that you release. No copyright statement needs to be provided
- if you just ship binary executables of your software products.
+ [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), DAnCE(TM), and [4]CoSMIC(TM)
+ (henceforth referred to as "DOC software") are copyrighted by
+ [5]Douglas C. Schmidt and his [6]research group at [7]Washington
+ University, [8]University of California, Irvine, and [9]Vanderbilt
+ University, Copyright (c) 1993-2011, all rights reserved. Since DOC
+ software is open-source, freely available software, you are free to
+ use, modify, copy, and distribute--perpetually and irrevocably--the
+ DOC software source code and object code produced from the source, as
+ well as copy and distribute modified versions of this software. You
+ must, however, include this copyright statement along with any code
+ built using DOC software that you release. No copyright statement
+ needs to be provided if you just ship binary executables of your
+ software products.
You can use DOC software in commercial and/or binary software releases
and are under no obligation to redistribute any of your source code
- that is built using DOC software. Note, however, that you may not do
- anything to the DOC software code, such as copyrighting it yourself or
- claiming authorship of the DOC software code, that will prevent DOC
- software from being distributed freely using an open-source
- development model. You needn't inform anyone that you're using DOC
- software in your software, though we encourage you to let [10]us know
- so we can promote your project in the [11]DOC software success
- stories.
+ that is built using DOC software. Note, however, that you may not
+ misappropriate the DOC software code, such as copyrighting it yourself
+ or claiming authorship of the DOC software code, in a way that will
+ prevent DOC software from being distributed freely using an
+ open-source development model. You needn't inform anyone that you're
+ using DOC software in your software, though we encourage you to let
+ [10]us know so we can promote your project in the [11]DOC software
+ success stories.
- The [12]ACE, [13]TAO, [14]CIAO, and [15]CoSMIC web sites are
- maintained by the [16]DOC Group at the [17]Institute for Software
- Integrated Systems (ISIS) and the [18]Center for Distributed Object
+ The [12]ACE, [13]TAO, [14]CIAO, [15]DAnCE, and [16]CoSMIC web sites
+ are maintained by the [17]DOC Group at the [18]Institute for Software
+ Integrated Systems (ISIS) and the [19]Center for Distributed Object
Computing of Washington University, St. Louis for the development of
open-source software as part of the open-source software community.
Submissions are provided by the submitter ``as is'' with no warranties
@@ -54,11 +55,10 @@
DOC software is provided with no support and without any obligation on
the part of Washington University, UC Irvine, Vanderbilt University,
their employees, or students to assist in its use, correction,
- modification, or enhancement. A [19]number of companies around the
- world provide commercial support for DOC software, however.
-
- DOC software is Y2K-compliant, as long as the underlying OS platform
- is Y2K-compliant. Likewise, DOC software is compliant with the new US
+ modification, or enhancement. A [20]number of companies around the
+ world provide commercial support for DOC software, however. DOC
+ software is Y2K-compliant, as long as the underlying OS platform is
+ Y2K-compliant. Likewise, DOC software is compliant with the new US
daylight savings rule passed by Congress as "The Energy Policy Act of
2005," which established new daylight savings times (DST) rules for
the United States that expand DST as of March 2007. Since DOC software
@@ -66,23 +66,23 @@
users will not be affected by the new DST rules as long as they
upgrade their operating systems accordingly.
- The names ACE(TM), TAO(TM), CIAO(TM), CoSMIC(TM), Washington
- University, UC Irvine, and Vanderbilt University, may not be used to
- endorse or promote products or services derived from this source
- without express written permission from Washington University, UC
- Irvine, or Vanderbilt University. This license grants no permission to
- call products or services derived from this source ACE(TM), TAO(TM),
- CIAO(TM), or CoSMIC(TM), nor does it grant permission for the name
- Washington University, UC Irvine, or Vanderbilt University to appear
- in their names.
+ The names ACE(TM), TAO(TM), CIAO(TM), DAnCE(TM), CoSMIC(TM),
+ Washington University, UC Irvine, and Vanderbilt University, may not
+ be used to endorse or promote products or services derived from this
+ source without express written permission from Washington University,
+ UC Irvine, or Vanderbilt University. This license grants no permission
+ to call products or services derived from this source ACE(TM),
+ TAO(TM), CIAO(TM), DAnCE(TM), or CoSMIC(TM), nor does it grant
+ permission for the name Washington University, UC Irvine, or
+ Vanderbilt University to appear in their names.
If you have any suggestions, additions, comments, or questions, please
- let [20]me know.
+ let [21]me know.
- [21]Douglas C. Schmidt
+ [22]Douglas C. Schmidt
_________________________________________________________________
- Back to the [22]ACE home page.
+ Back to the [23]ACE home page.
References
@@ -100,11 +100,12 @@ References
12. http://www.cs.wustl.edu/~schmidt/ACE.html
13. http://www.cs.wustl.edu/~schmidt/TAO.html
14. http://www.dre.vanderbilt.edu/CIAO/
- 15. http://www.dre.vanderbilt.edu/cosmic/
- 16. http://www.dre.vanderbilt.edu/
- 17. http://www.isis.vanderbilt.edu/
- 18. http://www.cs.wustl.edu/~schmidt/doc-center.html
- 19. http://www.cs.wustl.edu/~schmidt/commercial-support.html
- 20. mailto:d.schmidt@vanderbilt.edu
- 21. http://www.dre.vanderbilt.edu/~schmidt/
- 22. http://www.cs.wustl.edu/ACE.html
+ 15. http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/DAnCE/
+ 16. http://www.dre.vanderbilt.edu/cosmic/
+ 17. http://www.dre.vanderbilt.edu/
+ 18. http://www.isis.vanderbilt.edu/
+ 19. http://www.cs.wustl.edu/~schmidt/doc-center.html
+ 20. http://www.cs.wustl.edu/~schmidt/commercial-support.html
+ 21. mailto:d.schmidt@vanderbilt.edu
+ 22. http://www.dre.vanderbilt.edu/~schmidt/
+ 23. http://www.cs.wustl.edu/ACE.html
diff --git a/ACE/ChangeLog b/ACE/ChangeLog
index 1490eb12124..1afdad6fe43 100644
--- a/ACE/ChangeLog
+++ b/ACE/ChangeLog
@@ -1,3 +1,9 @@
+Mon Jul 18 16:06:27 UTC 2011 William Otte <wotte@Williams-MacBook-Air.local>
+
+ * ace/OS_NS_errno.h:
+
+ Resolved conflict from merge from head.
+
Mon Jul 18 15:35:27 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu>
* ace/OS_NS_errno.h:
diff --git a/ACE/ChangeLogs/ChangeLog-93 b/ACE/ChangeLogs/ChangeLog-1993
index 0beb8e6321f..0beb8e6321f 100644
--- a/ACE/ChangeLogs/ChangeLog-93
+++ b/ACE/ChangeLogs/ChangeLog-1993
diff --git a/ACE/ChangeLogs/ChangeLog-94 b/ACE/ChangeLogs/ChangeLog-1994
index 09465ce823f..09465ce823f 100644
--- a/ACE/ChangeLogs/ChangeLog-94
+++ b/ACE/ChangeLogs/ChangeLog-1994
diff --git a/ACE/ChangeLogs/ChangeLog-95 b/ACE/ChangeLogs/ChangeLog-1995
index 429e5681fdc..429e5681fdc 100644
--- a/ACE/ChangeLogs/ChangeLog-95
+++ b/ACE/ChangeLogs/ChangeLog-1995
diff --git a/ACE/ChangeLogs/ChangeLog-96a b/ACE/ChangeLogs/ChangeLog-1996a
index 5aa3c9b69fc..5aa3c9b69fc 100644
--- a/ACE/ChangeLogs/ChangeLog-96a
+++ b/ACE/ChangeLogs/ChangeLog-1996a
diff --git a/ACE/ChangeLogs/ChangeLog-96b b/ACE/ChangeLogs/ChangeLog-1996b
index 5dd7b809a42..5dd7b809a42 100644
--- a/ACE/ChangeLogs/ChangeLog-96b
+++ b/ACE/ChangeLogs/ChangeLog-1996b
diff --git a/ACE/ChangeLogs/ChangeLog-97a b/ACE/ChangeLogs/ChangeLog-1997a
index 161d4746d2d..161d4746d2d 100644
--- a/ACE/ChangeLogs/ChangeLog-97a
+++ b/ACE/ChangeLogs/ChangeLog-1997a
diff --git a/ACE/ChangeLogs/ChangeLog-97b b/ACE/ChangeLogs/ChangeLog-1997b
index da7e8bf2f84..da7e8bf2f84 100644
--- a/ACE/ChangeLogs/ChangeLog-97b
+++ b/ACE/ChangeLogs/ChangeLog-1997b
diff --git a/ACE/ChangeLogs/ChangeLog-98a b/ACE/ChangeLogs/ChangeLog-1998a
index c5daa4d7ee1..c5daa4d7ee1 100644
--- a/ACE/ChangeLogs/ChangeLog-98a
+++ b/ACE/ChangeLogs/ChangeLog-1998a
diff --git a/ACE/ChangeLogs/ChangeLog-98b b/ACE/ChangeLogs/ChangeLog-1998b
index d9de5949d12..d9de5949d12 100644
--- a/ACE/ChangeLogs/ChangeLog-98b
+++ b/ACE/ChangeLogs/ChangeLog-1998b
diff --git a/ACE/ChangeLogs/ChangeLog-99a b/ACE/ChangeLogs/ChangeLog-1999a
index 5399b215825..5399b215825 100644
--- a/ACE/ChangeLogs/ChangeLog-99a
+++ b/ACE/ChangeLogs/ChangeLog-1999a
diff --git a/ACE/ChangeLogs/ChangeLog-99b b/ACE/ChangeLogs/ChangeLog-1999b
index 2bdeb97ccd3..2bdeb97ccd3 100644
--- a/ACE/ChangeLogs/ChangeLog-99b
+++ b/ACE/ChangeLogs/ChangeLog-1999b
diff --git a/ACE/ChangeLogs/ChangeLog-00a b/ACE/ChangeLogs/ChangeLog-2000a
index 29d983c12cd..29d983c12cd 100644
--- a/ACE/ChangeLogs/ChangeLog-00a
+++ b/ACE/ChangeLogs/ChangeLog-2000a
diff --git a/ACE/ChangeLogs/ChangeLog-00b b/ACE/ChangeLogs/ChangeLog-2000b
index 333c85f7a1e..333c85f7a1e 100644
--- a/ACE/ChangeLogs/ChangeLog-00b
+++ b/ACE/ChangeLogs/ChangeLog-2000b
diff --git a/ACE/ChangeLogs/ChangeLog-01a b/ACE/ChangeLogs/ChangeLog-2001a
index 2c80dd6896a..2c80dd6896a 100644
--- a/ACE/ChangeLogs/ChangeLog-01a
+++ b/ACE/ChangeLogs/ChangeLog-2001a
diff --git a/ACE/ChangeLogs/ChangeLog-01b b/ACE/ChangeLogs/ChangeLog-2001b
index 504c875d72b..504c875d72b 100644
--- a/ACE/ChangeLogs/ChangeLog-01b
+++ b/ACE/ChangeLogs/ChangeLog-2001b
diff --git a/ACE/ChangeLogs/ChangeLog-02a b/ACE/ChangeLogs/ChangeLog-2002a
index 870ec350d6e..870ec350d6e 100644
--- a/ACE/ChangeLogs/ChangeLog-02a
+++ b/ACE/ChangeLogs/ChangeLog-2002a
diff --git a/ACE/ChangeLogs/ChangeLog-02b b/ACE/ChangeLogs/ChangeLog-2002b
index c13db37e19f..c13db37e19f 100644
--- a/ACE/ChangeLogs/ChangeLog-02b
+++ b/ACE/ChangeLogs/ChangeLog-2002b
diff --git a/ACE/ChangeLogs/ChangeLog-03a b/ACE/ChangeLogs/ChangeLog-2003a
index 930128362db..930128362db 100644
--- a/ACE/ChangeLogs/ChangeLog-03a
+++ b/ACE/ChangeLogs/ChangeLog-2003a
diff --git a/ACE/ChangeLogs/ChangeLog-03b b/ACE/ChangeLogs/ChangeLog-2003b
index 311de7bdba4..311de7bdba4 100644
--- a/ACE/ChangeLogs/ChangeLog-03b
+++ b/ACE/ChangeLogs/ChangeLog-2003b
diff --git a/ACE/ChangeLogs/ChangeLog-03c b/ACE/ChangeLogs/ChangeLog-2003c
index bbd6f2714d6..bbd6f2714d6 100644
--- a/ACE/ChangeLogs/ChangeLog-03c
+++ b/ACE/ChangeLogs/ChangeLog-2003c
diff --git a/ACE/ChangeLogs/ChangeLog-04a b/ACE/ChangeLogs/ChangeLog-2004a
index 0c4668dfbb2..0c4668dfbb2 100644
--- a/ACE/ChangeLogs/ChangeLog-04a
+++ b/ACE/ChangeLogs/ChangeLog-2004a
diff --git a/ACE/ChangeLogs/ChangeLog-04b b/ACE/ChangeLogs/ChangeLog-2004b
index fe54044d243..fe54044d243 100644
--- a/ACE/ChangeLogs/ChangeLog-04b
+++ b/ACE/ChangeLogs/ChangeLog-2004b
diff --git a/ACE/ChangeLogs/ChangeLog-05a b/ACE/ChangeLogs/ChangeLog-2005a
index c6a64f51119..c6a64f51119 100644
--- a/ACE/ChangeLogs/ChangeLog-05a
+++ b/ACE/ChangeLogs/ChangeLog-2005a
diff --git a/ACE/ChangeLogs/ChangeLog-05b b/ACE/ChangeLogs/ChangeLog-2005b
index 15f3ed61bea..15f3ed61bea 100644
--- a/ACE/ChangeLogs/ChangeLog-05b
+++ b/ACE/ChangeLogs/ChangeLog-2005b
diff --git a/ACE/ChangeLogs/ChangeLog-05c b/ACE/ChangeLogs/ChangeLog-2005c
index 3dfeb0ad918..3dfeb0ad918 100644
--- a/ACE/ChangeLogs/ChangeLog-05c
+++ b/ACE/ChangeLogs/ChangeLog-2005c
diff --git a/ACE/ChangeLogs/ChangeLog-06a b/ACE/ChangeLogs/ChangeLog-2006a
index f5ab9e868ab..f5ab9e868ab 100644
--- a/ACE/ChangeLogs/ChangeLog-06a
+++ b/ACE/ChangeLogs/ChangeLog-2006a
diff --git a/ACE/ChangeLogs/ChangeLog-06b b/ACE/ChangeLogs/ChangeLog-2006b
index 2212ce3f6f0..2212ce3f6f0 100644
--- a/ACE/ChangeLogs/ChangeLog-06b
+++ b/ACE/ChangeLogs/ChangeLog-2006b
diff --git a/ACE/ChangeLogs/ChangeLog-07a b/ACE/ChangeLogs/ChangeLog-2007a
index b70a051d787..b70a051d787 100644
--- a/ACE/ChangeLogs/ChangeLog-07a
+++ b/ACE/ChangeLogs/ChangeLog-2007a
diff --git a/ACE/ChangeLogs/ChangeLog-07b b/ACE/ChangeLogs/ChangeLog-2007b
index 2e96e779dc8..2e96e779dc8 100644
--- a/ACE/ChangeLogs/ChangeLog-07b
+++ b/ACE/ChangeLogs/ChangeLog-2007b
diff --git a/ACE/ChangeLogs/ChangeLog-08a b/ACE/ChangeLogs/ChangeLog-2008a
index 7a48c1babf4..7a48c1babf4 100644
--- a/ACE/ChangeLogs/ChangeLog-08a
+++ b/ACE/ChangeLogs/ChangeLog-2008a
diff --git a/ACE/ChangeLogs/ChangeLog-09a b/ACE/ChangeLogs/ChangeLog-2009a
index f02039d5f51..f02039d5f51 100644
--- a/ACE/ChangeLogs/ChangeLog-09a
+++ b/ACE/ChangeLogs/ChangeLog-2009a
diff --git a/ACE/ChangeLogs/ChangeLog-2009b b/ACE/ChangeLogs/ChangeLog-2009b
new file mode 100644
index 00000000000..5e3344157c2
--- /dev/null
+++ b/ACE/ChangeLogs/ChangeLog-2009b
@@ -0,0 +1,4554 @@
+Mon Oct 12 14:03:48 CDT 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.4 released.
+
+Sat Oct 10 18:43:41 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Reverted the patch below, it breaks g++ on windows
+
+ Mon Sep 14 08:54:18 UTC 2009 Olli Savia <ops@iki.fi>
+ * include/makeinclude/platform_g++_common.GNU:
+ Make sure $PATH is exported properly.
+
+Sat Oct 10 18:21:41 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-vxworks.h:
+ * ace/config-vxworks6.8.h:
+ * include/makeinclude/platform_vxworks.GNU:
+ * include/makeinclude/platform_vxworks6.8.GNU:
+ Default configuration files for VxWorks 6.8
+
+Fri Oct 9 14:09:41 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Define ACE_HAS_ICMP_SUPPORT to value 1.
+
+Fri Oct 9 08:04:25 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Thread_Attrs_Test.cpp:
+ Fixed compile error in single threaded builds
+
+Thu Oct 8 13:46:25 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Don't convert odt files
+
+Thu Oct 8 08:58:25 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Added $(PLATFORM_XT_LIBS) to PLATFORM_TK_LIBS to fix linking errors.
+
+Wed Oct 7 09:21:30 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Added a few defines.
+
+Wed Oct 7 07:49:00 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Adjusted Tcl/Tk flags.
+
+Tue Oct 6 20:22:28 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ Reorganised file.
+
+Tue Oct 6 18:33:50 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp:
+ Added a test for ACE_OS::fileno(). Patch to cleanup ACE_OS::fileno()
+ implementation will be committed later.
+
+Tue Oct 6 14:06:02 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Minor cleanup.
+
+Tue Oct 6 06:20:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Also check idl3 files as idl file
+
+Sun Oct 4 19:36:27 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_stdio.inl (vsnprintf): Added some more checks in other
+ parts of the code to ensure we don't index before the bounds of
+ the array. Thanks to Johnny Willemsen for suggesting this.
+
+Sun Oct 4 14:23:55 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_stdio.inl (vsnprintf): Added a check to ensure we
+ don't index before the bounds of the array. Thanks to Hui Zhang
+ <zhanghui9527 at gmail dot com> for reporting this.
+
+Fri Oct 2 15:24:33 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Condition_T.cpp (wait): fixed the call to cond_timewait() so
+ it uses a copy of the const parameter to avoid breaking the
+ const contract. Thanks to William Glenn <wglenn at scires dot
+ com> for reporting this.
+
+Thu Oct 1 13:44:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Makefile.am:
+ Removed duplicate Timer_Queuefwd.h. Thanks to Christian Ehrlicher
+ <Ch dot Ehrlicher at gmx dot de> for reporting this
+
+Thu Oct 1 12:07:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Extended some fuzz messages with how to fix them
+
+Wed Sep 29 09:59:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks6.6.GNU:
+ Added workaround for bug in the diab compiler. Thanks to
+ Sharon Mizrahi <sharon dot mizrahi at gmail dot com> for
+ reporting this
+
+Tue Sep 28 11:40:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Don't convert pptx and graffle files
+
+Tue Sep 29 06:41:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/rules.lib.GNU:
+ Reverted part of the change below, it breaks the realclean
+
+ Thu Aug 27 20:27:52 UTC 2009 Steve Huston <shuston@riverace.com>
+ * include/makeinclude/rules.lib.GNU: Fix building, installing, and
+ cleaning up libs built in an ARCH build.
+
+Mon Sep 28 17:45:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Message_Block.h:
+ Doxygen change
+
+ * ace/CDR_Base.{h,cpp}:
+ Changed consolidate to have a return value because setting the
+ new size can fail. Return 0 on ok, -1 on failure. Thanks to
+ Annette Wilson <awilson at raytheonvtc dot com>
+
+Mon Sep 28 13:14:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Don't convert ppt files
+
+Fri Sep 25 19:24:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/TestTarget.pm:
+ Don't change the start/stop time, that gives major problems
+ with remote testing, the test script needs to increment the
+ value returned from these methods
+
+Fri Sep 25 18:47:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Download.html:
+ Reverted back to the viewvc pages
+
+Fri Sep 25 12:06:11 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Reorganised file and added a lot of new defines.
+
+Wed Sep 23 19:11:44 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/Download.html:
+
+ Updated links to viewvc to point to Doug's webspace working copy
+ instead.
+
+Wed Sep 23 14:15:58 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * configure.ac:
+ Changed ACE_CHECK_HAS_FUNCS(snprintf) to
+ ACE_CHECK_LACKS_FUNCS(vsnprintf)
+
+Tue Sep 22 17:05:56 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Timer_Wheel_T.cpp (open_i): Changed
+
+ this->wheel_time_.msec (1 << (this->res_bits_ + this->spoke_bits_));
+
+ to
+
+ this->wheel_time_.msec (1 << (this->res_bits_));
+
+ so recalc_earliest selects the right spoke as earliest_spoke_.
+ Thanks to Koh Onishi <k_onishi at mtj dot biglobe dot ne dot jp>
+ for reporting this.
+
+Mon Sep 21 20:27:06 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ * ace/config-openbsd.h:
+ Added ACE_HAS_SIGSUSPEND.
+
+Mon Sep 21 10:53:16 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.h:
+ * ace/OS_NS_signal.inl:
+ Another set of sigset related fixes.
+
+Mon Sep 21 07:31:25 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/TTY_IO.cpp:
+ Integrated patch from Bugzilla Bug #3424.
+
+Sun Sep 20 18:02:57 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Added ACE_HAS_SIGSUSPEND.
+
+Sun Sep 20 17:46:31 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-macosx-leopard.h:
+ * ace/config-macosx-panther.h:
+ * ace/config-macosx-tiger.h:
+ * ace/config-macosx.h:
+ * ace/config-openbsd.h:
+ Removed ACE_LACKS_SIGSET.
+
+Sat Sep 19 21:23:03 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.inl:
+ Fix typo.
+
+Sat Sep 19 12:12:23 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.h:
+ * ace/OS_NS_signal.inl:
+ Fix for platforms which implement sigsuspend as macro.
+
+Fri Sep 18 18:36:16 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-cegcc.h:
+ Fix sigset related compile error with cegcc.
+
+Thu Sep 17 14:17:10 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-mingw.h:
+ * ace/os_include/os_signal.h:
+ Fix sigset related compile error on MinGW.
+
+Thu Sep 17 12:23:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Process_Semaphore.h
+ * ace/Thread_Semaphore.h
+ * ace/Atomic_Op.h
+ * ace/Condition_Recursive_Thread_Mutex.h
+ * ace/Null_Mutex.h
+ Doxygen fixes
+
+Wed Sep 16 18:44:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/bmake.features:
+ * bin/MakeProjectCreator/config/em3.features:
+ * bin/MakeProjectCreator/config/global.features:
+ * bin/MakeProjectCreator/config/gnuace.features:
+ * bin/MakeProjectCreator/config/nmake.features:
+ * bin/MakeProjectCreator/config/vc71.features:
+ * bin/MakeProjectCreator/config/vc8.features:
+ * bin/MakeProjectCreator/config/vc9.features:
+ Removed cidl, that feature has been removed with 1.7.2
+
+ * bin/MakeProjectCreator/config/vc10.features:
+ New file for vc10
+
+ * bin/MakeProjectCreator/config/gnuace.features:
+ Set ndds=1 by default, at the end enabling ndds
+ is then controlled through the platform_macros.GNU File
+
+Wed Sep 16 10:54:39 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.inl:
+ * ace/config-win32-cegcc.h:
+ * ace/config-win32-mingw.h:
+ Removed use of ACE_LACKS_SIGSET_DEFINITIONS macro. It seems that
+ this macro was left over from the past.
+
+Wed Sep 16 07:25:26 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.h:
+ Fix for platforms that lack sigsets.
+
+Wed Sep 16 06:27:45 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ Fixed typo in PLATFORM_TCL_LIBS.
+
+Tue Sep 15 20:33:47 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.h:
+ * ace/OS_NS_signal.inl:
+ * ace/README:
+ * ace/config-cray.h:
+ * ace/config-macosx-leopard.h:
+ * ace/config-macosx-panther.h:
+ * ace/config-macosx-tiger.h:
+ * ace/config-macosx.h:
+ * ace/config-openbsd.h:
+ * ace/config-openvms.h:
+ * ace/config-qnx-neutrino.h:
+ * ace/config-qnx-rtp-62x.h:
+ * ace/config-qnx-rtp-pre62x.h:
+ * ace/config-sco-5.0.0.h:
+ * ace/os_include/os_signal.h:
+ * configure.ac:
+ * m4/config_h.m4:
+ Removed use of ACE_HAS_SIG_MACROS macro. If platform defines
+ sigXXXset macros, use inline functions to save definition
+ before undefining it.
+
+Mon Sep 14 09:03:30 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_openbsd.GNU:
+ Added CPPFLAGS+=-I/usr/local/include and
+ LDFLAGS+=-L/usr/local/lib
+
+Mon Sep 14 08:54:18 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Make sure $PATH is exported properly.
+
+Mon Sep 14 08:01:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Malloc_Test.cpp:
+ Unicode fix
+
+Mon Sep 14 07:50:37 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ Added compiler flags for X11 and GUI toolkits.
+
+Mon Sep 14 06:54:30 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ * include/makeinclude/platform_linux_suncc.GNU:
+ Fixes for Sun Studio for Linux.
+
+Mon Sep 14 06:47:31 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ Fine tuned compiler flags for X11 and Tcl/Tk.
+ Removed legacy linker settings
+
+Sun Sep 13 15:57:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Functor.h:
+ * ace/Functor_String.h:
+ * ace/Process.h:
+ Doxygen changes
+
+Sat Sep 12 05:41:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/index.html:
+ * docs/Download.html:
+ Updated for x.7.3
+
+ * bin/make_release.py:
+ Moved latest tags as last step
+
+Fri Sep 11 02:39:39 CDT 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.3 released.
+
+Thu Sep 10 07:14:01 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * NEWS:
+
+ Added entry for a fix in TAO_IDL to generate dds code with
+ correct wstring size.
+
+Tue Sep 8 20:27:14 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * include/makeinclude/rules.local.GNU: Strip CLEANUP_INSTALL before
+ checking for blank to be sure it doesn't inadvertantly try to RM
+ a string of spaces.
+
+Tue Sep 8 18:55:23 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/Message_Block_Test.cpp: Fix wrong logging directives.
+
+ * tests/Thread_Attrs_Test.cpp: Use a bigger test stack size spec to
+ avoid running out of stack on 64-bit systems.
+
+Tue Sep 8 10:44:22 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_openbsd.GNU:
+ Added compiler flags for X11 and Tcl/Tk.
+
+Mon Sep 7 07:02:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessWinCE_Unix.pm:
+ Also cleanup the systemlibs
+
+Mon Sep 7 06:12:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessWinCE_Unix.pm:
+ Corrected cleanup command
+
+Fri Sep 4 06:09:33 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/Log_Msg.cpp:
+ Patch applied provided by Alon Diamont. This'll
+ fix some test errors on VxWorks.
+
+Wed Sep 2 14:45:27 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * ace/Connector.cpp:
+
+ Added add/remove reference for the svc_handler owned by
+ ACE_NonBlocking_Connect_Handler. This fixes bug#3731.
+
+Tue Sep 1 21:23:37 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/Bug_3500_Regression_Test.cpp: Don't try the ACE_OS::mmap() if
+ ACE_LACKS_MMAP. Also cleaned up the format a bit.
+
+ * tests/run_test.lst: Bug_3709_Regression_Test (C++ compiler stuff)
+ doesn't work on VC 7.1, so black out LabVIEW_RT.
+
+Tue Sep 1 18:46:31 UTC 2009 Steven Stallion <stallions@ociweb.com>
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+
+ Added new flag to control annotation support for Sun CC 5.10. By
+ default, annotation support will be disabled (consistent with
+ previous Sun CC releases). Fixes Bugzilla #3733.
+
+Tue Sep 1 17:39:01 UTC 2009 Steven Stallion <stallions@ociweb.com>
+
+ * ace/config-sunos5.5.h:
+
+ Corrected _POSIX_PTHREAD_SEMANTICS behavior on SunOS hosts. This
+ was causing a failure in ACE_OS::sched_params when a non-zero
+ quantum is specified on Solaris 9. Fixes Bugzilla #3718.
+
+Sat Aug 29 22:41:33 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Event_Handler.h: Edited doc for resume_handler() to note that
+ it also works with ACE_Dev_Poll_Reactor.
+
+Thu Aug 27 20:53:18 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/Thread_Attrs_Test.cpp:
+ * tests/tests.mpc:
+ * tests/run_test.lst:
+ * tests/Makefile.am:
+ New test to verify that spawning a thread with a particular stack
+ size actually gives the desired stack size to the new thread. This
+ test only does anything real on Linux at this point. It could be
+ extended to other platforms and could be extended to test
+ other attributes of the spawned thread as well.
+
+Thu Aug 27 20:27:52 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd: When building requirement-
+ checking and LDFLAGS for building binaries, take ARCH builds into
+ account to properly locate libs.
+
+ * include/makeinclude/wrapper_macros.GNU: Don't do the ARCH adjusting
+ until after including platform_macros.GNU where ARCH would be
+ defined.
+
+ * include/makeinclude/rules.lib.GNU: Fix building, installing, and
+ cleaning up libs built in an ARCH build.
+
+Wed Aug 26 21:58:14 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * bin/MakeProjectCreator/config/global.features:
+ * include/makeinclude/wrapper_macros.GNU:
+
+ Reverting for now until I can make some fixes.
+
+Tue Aug 25 04:11:22 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/MakeProjectCreator/config/global.features:
+ * include/makeinclude/wrapper_macros.GNU:
+
+ Enable mcpp by default.
+
+Fri Aug 21 21:24:44 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * bin/PerlACE/ProcessLVRT.pm: Don't be so aggressive with the reboots.
+
+ * bin/TestTarget_LVRT.pm: React correctly to only one name being
+ passed to GetFile - if there's only one (usually the case w/ TAO
+ tests) LocalFile-ify it for the remote and use as-is for local.
+ This gets most of the TAO tests to properly retrieve the IOR file.
+
+Tue Aug 18 19:09:40 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/config-macros.h: In ACE_NOTREACHED, aC++ 03.* needs to have the
+ unreachable line removed as well.
+
+Tue Aug 18 12:25:01 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Monitor_Control/Auto_Update_Starter.cpp:
+ * ace/Monitor_Control/Bytes_Received_Monitor.h:
+ * ace/Monitor_Control/Bytes_Received_Monitor.cpp:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.h:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.cpp:
+ * ace/Monitor_Control/CPU_Load_Monitor.cpp:
+ * ace/Monitor_Control/Constraint_Interpreter.cpp:
+ * ace/Monitor_Control/Constraint_Visitor.h:
+ * ace/Monitor_Control/Constraint_Visitor.cpp:
+ * ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h:
+ * ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp:
+ * ace/Monitor_Control/Memory_Usage_Monitor.cpp:
+ * ace/Monitor_Control/Monitor_Group.cpp:
+ * ace/Monitor_Control/Monitor_Query.cpp:
+ * ace/Monitor_Control/Num_Threads_Monitor.cpp:
+ * ace/Monitor_Control/Packets_Received_Monitor.h:
+ * ace/Monitor_Control/Packets_Received_Monitor.cpp:
+ * ace/Monitor_Control/Packets_Sent_Monitor.h:
+ * ace/Monitor_Control/Packets_Sent_Monitor.cpp:
+ Added monitoring support for LynxOS. LynxOS's network statck
+ is based on FreeBSD's network stack so we can reuse FreeBSD
+ implementation.
+
+Fri Aug 14 13:31:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-macosx-tiger.h:
+ Fixed some compile problems
+
+ * ace/OS_QoS.cpp:
+ Use const cast instead of c style cast
+
+Fri Aug 14 12:54:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace_for_tao.mpc:
+ Use prop:windows
+
+Fri Aug 14 12:44:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/vc_warnings.mpb:
+ Use DisableSpecificWarnings
+
+Thu Aug 13 20:40:16 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-g++-common.h:
+ Removed definition of ACE_LACKS_ISCTYPE. Availibility of isctype()
+ doesn't depend on g++ version, it is libc stuff.
+
+ * ace/config-linux-common.h:
+ Define ACE_LACKS_ISCTYPE for glibc 2.2 and older
+
+Thu Aug 13 19:35:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Select_Reactor_T.h:
+ Doxygen change
+
+Thu Aug 13 19:08:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SV_Semaphore_Simple.h:
+ Fixed gcc warning
+
+Thu Aug 13 09:10:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.pl:
+ Shortened the time to wait, we do include now the time to start
+ a process
+
+Thu Aug 13 07:14:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-cegcc.h:
+ Set the correct export defines
+
+ * ace/DLL_Manager.cpp:
+ Improved debug statement so that we can easily see that we have
+ an empty string
+
+ * ace/OS_NS_stdio.cpp:
+ Added support for ACE_LACKS_FOPEN and simplified some methods
+
+ * ace/OS_NS_stdio.inl:
+ Const change
+
+Thu Aug 13 03:23:33 UTC 2009 Chad Elliott <elliott_c@ociweb.com>
+
+ * ACE.mwc:
+
+ Fixed a comment.
+
+ * bin/MakeProjectCreator/config/crosscompile.mpb:
+ * bin/MakeProjectCreator/config/global.features:
+ * bin/MakeProjectCreator/config/wb26.features:
+
+ Added the cross_compile feature that is disabled by default. It
+ is enabled within the wb26.features. The 'crosscompile' base
+ project "avoids" the cross_compile feature. This fixes bug 3318.
+
+Wed Aug 12 19:57:02 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Define ACE_HAS_GETIFADDRS only for glibc 2.3 and newer.
+
+Wed Aug 12 19:55:03 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ Fix for older FreeBSD versions.
+
+Wed Aug 12 17:57:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/vc_warnings.mpb:
+ Use prop:microsoft
+
+Wed Aug 12 06:47:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/tests.mpc:
+ Readded compiler test 08, but with dummy_label to show that
+ this test is there but not compiled
+
+Wed Aug 12 06:26:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/tests.mpc:
+ Don't compile bug 3709 regression with vc71 at this moment
+
+Mon Aug 10 11:39:58 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * apps/JAWS/server/HTTP_Response.cpp:
+
+ Unicode fix.
+
+Mon Aug 10 06:32:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-cegcc.h:
+ CEGCC also has a problem with isprint
+
+ * ace/config-g++-common.h:
+ Also with CEGCC don't use visibility features of GCC 4.4
+
+Sun Aug 9 19:56:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_string.cpp (strerror):
+ Added const cast to resolve compile warning with CEGCC
+
+Sun Aug 9 19:19:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_sys_utsname.cpp:
+ Print processorlevel when we don't recognize the value
+
+Sun Aug 9 18:55:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU
+ * include/makeinclude/platform_rtems.x_g++.GNU
+ * include/makeinclude/platform_vxworks5.5.x.GNU
+ * include/makeinclude/platform_vxworks6.2.GNU
+ * include/makeinclude/platform_vxworks6.3.GNU
+ Updated location of idl3_to_idl2 when HOST_ROOT is set
+
+Sun Aug 9 18:53:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU
+ Removed workaround for SLE10
+
+ * include/makeinclude/platform_cegcc.GNU
+ * include/makeinclude/platform_rtems.x_g++.GNU
+ * include/makeinclude/platform_vxworks5.5.x.GNU
+ * include/makeinclude/platform_vxworks6.2.GNU
+ * include/makeinclude/platform_vxworks6.3.GNU
+ Removed references to CIDLC
+
+Sun Aug 9 05:01:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Config_Test.cpp:
+ Fixed compile warnings with cegcc
+
+Sat Aug 8 18:25:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Use HOST_ROOT when it is set
+
+Fri Aug 7 11:51:43 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * tests/run_test.lst:
+ * tests/Makefile.am:
+ * tests/tests.mpc:
+ * tests/Compiler_Features_08_Test.cpp:
+ Removed. It seems that we have too many compilers that lack
+ support for wchar_t and wstring.
+
+Fri Aug 7 11:41:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.lst:
+ Added fixed only to Service_Config_Stream_Test, still crashes
+ at shutdown
+
+Fri Aug 7 06:26:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-borland.h:
+ Only C++ Builder 2009 will work, all other versions of C++ Builder are
+ deprecated and there are no plans to get possible newer versions supported
+
+Thu Aug 6 13:45:29 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_Memory.h (ACE_throw_bad_alloc): Changed return (void *) 0
+ to simply return 0. Thanks to Johnny Willemsen for reporting
+ this.
+
+Thu Aug 6 06:45:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.lst:
+ Removed fixed only from Service_Config_Stream_Test
+
+Wed Aug 5 23:28:43 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Parse_Node.cpp: When applying the modules in a dynamic
+ stream, note that they were link()ed in reverse order from what
+ the order is from the svc.conf file. So reverse the order when
+ pushing them on the stream. Fixes Bugzilla #3721.
+
+ * tests/Service_Config_Stream_Test.cpp:
+ * tests/Service_Config_Stream_Test.conf: Added, and commented out, a
+ test case for inserting a static module in the dynamic stream. It
+ doesn't work, but it probably should. I'm not sure why it doesn't,
+ and don't have more time to chase this right now. It's not part of
+ Bugzilla 3721 or my customer's case, and this feature has probably
+ never been tested and may have never worked, even pre-Gestalt, per
+ Doug's recollection that Service Config was not intended to be
+ used in this way. If someone has time to work this, please go ahead.
+
+Wed Aug 5 09:40:40 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-msvc-7.h:
+ Just use fileno with msvc71
+
+ * ace/Get_Opt.h:
+ Zap inline from header file
+
+Wed Aug 5 09:00:40 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/ace_unicode.mpb:
+ Just define ACE_USES_WCHAR, not to 1
+
+Wed Aug 5 07:19:40 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/*:
+ Renamed to match the current version number
+
+Wed Aug 5 07:12:40 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Monitor_Control/Monitor_Control.mpc:
+ Use prop:microsoft
+
+Tue Aug 4 07:51:13 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * tests/Compiler_Features_09_Test.cpp:
+ Workaround compiler/library bugs in Solaris Sun C++ 5.10.
+ Amazing that anybody can charge money for such a piece of
+ software.
+
+Tue Aug 4 17:43:40 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.h
+ * ace/config-win32-msvc-7.h
+ * ace/config-win32-msvc-8.h
+ * ace/config-win32-msvc-9.h
+ * ace/config-win32-msvc-10.h
+ Use _fileno instead of fileno with msvc 71/8/9/10
+
+ * ace/OS_NS_stdio.inl:
+ Const changes
+
+Tue Aug 4 17:09:00 UTC 2009 Chad Elliott <elliott_c@ociweb.com>
+
+ * include/makeinclude/rules.lib.GNU:
+ * include/makeinclude/rules.local.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+
+ Removed the remnants of the 'split' macro. This fixes Bug 1181.
+
+Tue Aug 4 14:32:24 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Configuration.h:
+ * ace/Configuration.cpp (ACE_Configuration_Heap::open): Make multiple
+ open() calls an error (return -1, EBUSY) rather than leaking
+ an allocator and whatever it had allocated.
+ Fixes Bugzilla 1324.
+
+ * tests/Config_Test.cpp: Add test case for multiple open() calls.
+
+ * NEWS: Noted the behavior change on open().
+
+Tue Aug 4 13:09:25 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Log_Msg.cpp: Added support for the %.1M format. Thanks to
+ Alon Diamant <diamant at alon at gmail dot com> for contributing
+ this. This fixes bugid 3716.
+
+ * tests/Log_Msg.cpp: Added a test for the %.1M format. Thanks to
+ Alon Diamant <diamant at alon at gmail dot com> for contributing
+ this.
+
+Tue Aug 4 12:07:09 UTC 2009 Chad Elliott <elliott_c@ociweb.com>
+
+ * bin/mpc.pl:
+ * bin/mwc.pl:
+
+ Use the new MPC Driver constant to determine which type of input
+ will be dealt with (workspaces or projects).
+
+Tue Aug 4 12:06:28 UTC 2009 Chad Elliott <elliott_c@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Modified the prebuild and postbuild rules to obey the 'requires'
+ and 'avoids' MPC settings since the gnuace projects have the
+ additional requirement of gnu make macros that match the
+ requirements and avoids settings.
+
+Mon Aug 3 20:08:22 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * tests/Compiler_Features_06_Test.cpp:
+ I think I have fixed the compilation problem on OpenVMS, using
+ some classes and functors in the STL requires including
+ "functional", but most compilers do not enforce this
+ requirement. Apparently OpenVMS does, I think this is a good
+ feature of said compiler.
+
+Tue Aug 4 10:30:40 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/ace_unicode.mpb:
+ Changed this to a feature, when uses_wchar is set we then
+ just set unicode to 1
+
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ Derive from ace_unicode. That way when we generate with uses_wchar=1
+ the define ACE_USES_WCHAR is generated into the project and also the
+ CharacterSet is correctly set in the msvc project file.
+ This fixes bugzilla 3702
+
+Tue Aug 4 03:32:21 UTC 2009 James H. Hill <hillj@dre.vanderbilt.edu>
+
+ * tests/SString_Test.cpp:
+
+ Fixed compiler warnings on vc71.
+
+Mon Aug 3 09:44:11 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * tests/Makefile.am:
+ Evidently Automake does not like an empty line after a
+ backslash, so the traditional style of keeping file lists ready
+ to receive more elements fails... Sigh.
+
+Mon Aug 3 08:30:58 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * tests/Bug_3709_Regression_Test.cpp:
+ This should fix the warnings on HP-UX and other compilers that
+ correctly detect overuse of 'DT' in the template parameter list.
+
+Mon Aug 3 20:42:57 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Compiler_Features_12_Test.cpp:
+ Fixed compile error on LynxOS 4.0.
+
+Mon Aug 3 02:17:38 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * tests/Compiler_Features_01_Test.cpp:
+ * tests/Compiler_Features_02_Test.cpp:
+ * tests/Compiler_Features_03_Test.cpp:
+ * tests/Compiler_Features_04_Test.cpp:
+ * tests/Compiler_Features_05_Test.cpp:
+ * tests/Compiler_Features_06_Test.cpp:
+ * tests/Compiler_Features_09_Test.cpp:
+ * tests/Compiler_Features_10_Test.cpp:
+ * tests/Compiler_Features_11_Test.cpp:
+ * tests/Compiler_Features_13_Test.cpp:
+ * tests/Compiler_Features_14_Test.cpp:
+ Fixed all kinds of tab vs. spaces problems.
+ I think I also fixed mis-used ACE_TEXT() concatenation.
+
+Mon Aug 3 12:00:40 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/mail_test_stats.sh:
+ Also mail the results per build
+
+Sun Aug 2 11:28:40 UTC 2009 Chad Beaulac <chad@objectivesolutions.com>
+
+ * Bug 3334 - Revisions 86318 86319 86320 86321 86322 86323
+
+ * tests/Bug_3334_Regression_Test.cpp
+ Renamed from Service_Config_Stream_SEGV.cpp
+
+ * Tests/Bug_3334_Regression_Test.cpp
+ Renamed from Service_Config_Stream_SEGV.conf
+
+ * tests/run_test.list
+ Added Bug_3334_Regression_Test
+ Put changes back in from Carlos's commit below
+
+ * tests/tests.mpc
+ Added Bug_3334_Regression_Test
+ Put changes back in from Carlos's commit below
+
+Sat Aug 1 12:19:58 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * This completes the fixes for Buzilla #3715:
+
+ * tests/run_test.lst:
+ * tests/Makefile.am:
+ * tests/tests.mpc:
+ * tests/Compiler_Features_14_Test.cpp:
+ This test verifies that partial template specialization works.
+
+ * tests/Compiler_Features_11_Test.cpp:
+ Test for standard string streams
+
+ * tests/Compiler_Features_12_Test.cpp:
+ Test for template template parameters
+
+ * tests/Compiler_Features_13_Test.cpp:
+ Test for cast operators
+
+ * tests/tests.mpc:
+ * tests/run_test.lst:
+ * tests/Makefile.am:
+ The usual accruements that go with the tests.
+
+ * tests/run_test.lst:
+ * tests/Makefile.am:
+ * tests/tests.mpc:
+ * tests/Compiler_Features_10_Test.cpp:
+ Add new test for exceptions. Verify that <stdexcept> is there,
+ that we can raise exceptions, and that object destruction during
+ exceptions is sound.
+
+ * tests/Compiler_Features_07_Test.cpp:
+ Test for std::string
+
+ * tests/Compiler_Features_08_Test.cpp:
+ Test for std::wstring
+
+ * tests/Compiler_Features_09_Test.cpp:
+ Test for std::auto_ptr<>
+
+ * tests/Compiler_Features_06_Test.cpp:
+ Fixed typo in test name.
+
+ * tests/run_test.lst:
+ * tests/Makefile.am:
+ * tests/tests.mpc:
+ Add the compilation / run paraphernalia.
+
+ * tests/Compiler_Features_04_Test.cpp:
+ Test for std::set<>
+
+ * tests/Compiler_Features_05_Test.cpp:
+ Test for std::queue<>, this is a different sort of test because
+ std::queue<> is an adaptor, not a collection. The default
+ collection is a std::deque<>, so we are testing default template
+ parameters at the same time.
+
+ * tests/Compiler_Features_06_Test.cpp:
+ Test for std::set<> with a different order function.
+
+ * tests/run_test.lst:
+ * tests/Makefile.am:
+ * tests/tests.mpc:
+ Add the compilation / run paraphernalia.
+
+ * tests/Makefile.am:
+ * tests/tests.mpc:
+ * tests/Compiler_Features_03_Test.cpp:
+ This time it is std::vector<>
+
+ * tests/run_test.lst:
+ I need to remember to add the tests to the list of automatically
+ executed ones.
+
+ * tests/tests.mpc:
+ * tests/Makefile.am:
+ * tests/Compiler_Features_02_Test.cpp:
+ Test if the std::map<> class works.
+
+ * tests/Compiler_Features_01_Test.cpp:
+ Make the tests more consistent by using typedefs.
+
+ * tests/tests.mpc:
+ * tests/Makefile.am:
+ * tests/Compiler_Features_01_Test.cpp:
+ Add first test for "modern" C++ compiler features. In this
+ case, I test if the std::list<> class works.
+
+Thu Jul 30 12:53:20 UTC 2009 James H. Hill <hillj@dre.vanderbilt.edu>
+
+ * ace/String_Base.h:
+ * ace/String_Base.inl:
+
+ Fixed fuzz errors.
+
+ Fixed compilation errors related to an extra semi-colon (;)
+ at the end of a statement.
+
+Thu Jul 30 10:40:36 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/OS_NS_netdb.inl (gethostbyname_r): Fixed typo.
+
+Thu Jul 30 10:29:29 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/run_test.lst: Mark Service_Config_Stream_Test !FIXED_BUGS_ONLY
+
+Thu Jul 30 03:33:13 UTC 2009 James H. Hill <hillj@dre.vanderbilt.edu>
+
+ * ace/SString.h:
+ * ace/String_Base.h:
+ * ace/String_Base.inl:
+ * ace/String_Base.cpp:
+
+ Added STL iterator support to the ACE_String_Base class. Right
+ now the iterator is bidirectional. The next version will make
+ the iterator random access.
+
+ * tests/SString_Test.cpp:
+
+ Updated the test to test the iterator support.
+
+Wed Jul 29 16:07:38 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/Service_Config_Stream_Test.cpp: Fixed const-ness warning.
+
+Wed Jul 29 15:51:39 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/Service_Config_Stream_DLL.h: Fixed fuzz warning on mismatched
+ pre.h/post.h.
+
+Wed Jul 29 14:34:01 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_netdb.inl (gethostbyname_r): Replaced
+ ACE_SOCKCALL_RETURN with ACE_SOCKCALL. Thanks to Paul Daugherty
+ for reporting this.
+
+Wed Jul 29 11:09:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/mail_test_stats.sh:
+ Script used to send out daily test statistics to devo
+
+Wed Jul 29 02:34:58 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_netdb.inl: Fixed gethostbyname_r() so that it sets
+ errno correctly on failure. Thanks to Paul Daugherty <paul at
+ nextalk dot com> for reporting this. This fixes bugid 3720.
+
+Tue Jul 28 18:13:22 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_Memory.h: Replace the ACE_throw_bad_alloc macro
+ definition with return (void*) 0 if exceptions=0 is enabled.
+ Thanks to John Lindal <lindalj at yahoo-inc dot com> for this
+ fix.
+
+Tue Jul 28 21:29:35 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/Service_Config_Stream_Test.cpp:
+ * tests/Service_Config_Stream_Test.conf:
+ * tests/Service_Config_Stream_DLL.h:
+ * tests/Service_Config_Stream_DLL_Export.h:
+ * tests/Service_Config_Stream_DLL.cpp:
+ * tests/tests.mpc:
+ * tests/run_test.lst:
+ New test Service_Config_Stream_Test to exercise service-config'd
+ stream behavior. Bugzilla #3721 is reported using this as a
+ initial test case. More behavioral testing can be added to this
+ test program in the future.
+
+Tue Jul 28 20:02:59 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm:
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Refactored the way gnuace interacts with DDS.
+
+Tue Jul 28 11:57:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming:
+ Fixed bug in this file. Thanks to John Fletcher
+ <john dot fletcher at rd dot bbc dot co dot uk> for reporting
+ this. This relates to bugzilla 3664
+
+Mon Jul 27 09:23:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/svn/config:
+ * docs/svn/svn-prefs.reg:
+ Added idl3 and idl3p
+
+Fri Jul 24 18:48:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosevent:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-costrading:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-rtevent:
+ Fixed location of the config files. Thanks to John Fletcher
+ <john dot fletcher at rd dot bbc dot co dot uk> for reporting
+ this. This fixes bugzilla 3664
+
+Fri Jul 24 09:33:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ Set ndds to 0 by default
+
+Fri Jul 24 08:51:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Corrected gperf library name again
+
+Fri Jul 24 08:48:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_hpux_aCC.GNU:
+ Only use the std98 flag for 3.80 and 3.85
+
+Fri Jul 24 08:25:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * ace/config-lynxos.h:
+
+ #define ACE_HAS_GETIFADDRS
+
+Fri Jul 24 07:18:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Added patches from Adam to update the latest tags in the
+ repository
+
+Fri Jul 24 07:14:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Corrected gperf library name
+
+Thu Jul 23 18:40:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3710_Regression_Test.cpp:
+ Fixed fuzz error
+
+Thu Jul 23 18:26:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_hpux_aCC.GNU:
+ Added compiler flag to enable std98 support. Result of bugzilla 3709
+
+Thu Jul 23 18:12:49 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/make_release.py:
+
+ Fix small bug with specfile generation.
+
+Thu Jul 23 16:40:55 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_string.cpp: Added some additional error checking to
+ ACE_OS::strerror() to avoid problems when errnum is out of
+ bounds. Thanks to Aleksandar Vukajlovic <aleksandar dot
+ vukajlovic at finsoft dot rs> for reporting this.
+
+Thu Jul 23 18:10:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Removed invalid space
+
+Thu Jul 23 17:57:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Updated for x.7.2
+
+Thu Jul 23 17:47:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for next release
+
+Thu Jul 23 17:46:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * etc/index.html:
+ * docs/Download.html:
+ Updated for the new release
+
+ * bin/sets-manager.py:
+ Fixed a typo
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Fixed a wrong replacement by the release script
+
+ * tests/Bug_3709_Regression_Test.cpp:
+ New test to see which compilers can handle template template arguments
+
+ * tests/Bug_3710_Regression_Test.cpp:
+ New test for bugzilla 3710 which is already fixed
+
+ * tests/Config_Test.cpp:
+ Use prefix increment
+
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Add 3709 and 3710
+
+ * bin/make_release.py:
+ DANCE_ROOT now also has to be set when generating all project files
+
+Thu Jul 23 02:11:02 CDT 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.2 released.
+
+Thu Jul 23 06:58:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Corrected bug in updating spec file
+
+Wed Jul 22 08:44:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds.pl:
+ Don't use the page with the builds run today, but use the page that
+ lists the builds on the specified date.
+
+Tue Jul 21 11:44:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Reverted the change below, it was triggered by template problems in TAO_IDL
+ generated code
+
+ Sat Jul 18 00:52:14 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+ * ace/config-macosx-leopard.h:
+ Intel on OS X requires explicit template visibility.
+
+Tue Jul 21 10:57:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/bczar/bczar.html:
+ Updated link to bugzilla
+
+Mon Jul 20 07:34:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/gperf/src/Bool_Array.h:
+ * apps/gperf/src/Key_List.h:
+ Added workaround for BCB linker which needs these classes exported
+
+Sun Jul 19 08:18:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/JAWS/server/HTTP_Response.cpp:
+ * apps/JAWS/server/JAWS_IO.cpp:
+ Unicode fixes
+
+Sat Jul 18 04:14:31 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/POSIX_Proactor.cpp:
+
+ Attempt to fix a compile warning that appears to be the result
+ of a bug in the optimizer in GCC 4.1.2.
+
+Sat Jul 18 00:52:14 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/config-macosx-leopard.h:
+
+ Intel on OS X requires explicit template visibility.
+
+Fri Jul 17 18:32:45 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_time.cpp (mktime): Set t_sys.wMilliseconds to 0 so
+ it's initialized properly. Thanks to Ryan Carmichael
+ <RCarmichael at drs-tem dot com> for this fix.
+
+Fri Jul 17 14:36:12 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * apps/JAWS/server/HTTP_Response.cpp:
+ * apps/JAWS/server/JAWS_IO.cpp:
+ Resolved UNICODE compiler errors.
+
+Wed Jul 15 14:43:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/gperf/src/gperf.mpc:
+ Made the library name different to resolve problems with vxtest
+
+Wed Jul 15 14:41:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/gperf/src/gperf_export.h:
+ Fixed problem with static builds
+
+Tue Jul 14 20:59:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Fixed problem with created MPC package
+
+ * rpmbuild/ace-tao-rpmlintrc.txt:
+ Removed txt mapping
+
+Tue Jul 14 15:16:33 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * apps/gperf/src/gperf_export.h:
+
+ Missing file from earlier merge, thanks to Phil Mesnier for
+ pointing this out.
+
+Tue Jul 14 14:24:20 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/bczar/bczar.html:
+ No need to update the spec file manually anymore
+
+Tue Jul 14 14:13:20 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ ace/OS.h is now illegal to be used in CIAO
+
+Tue Jul 14 13:31:20 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ SUSE Enterprise 10 also needs the gcc workaround
+
+Tue Jul 14 13:15:20 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Don't create bmake files anymore
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Updated because gperf has now a shared library
+
+Tue Jul 14 11:12:20 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * .:
+ * apps/gperf/ChangeLog:
+ * apps/gperf/src/Bool_Array.h:
+ * apps/gperf/src/Bool_Array.cpp:
+ * apps/gperf/src/Gen_Perf.h:
+ * apps/gperf/src/Gen_Perf.cpp:
+ * apps/gperf/src/Hash_Table.h:
+ * apps/gperf/src/Hash_Table.cpp:
+ * apps/gperf/src/Iterator.h:
+ * apps/gperf/src/Iterator.cpp:
+ * apps/gperf/src/Key_List.h:
+ * apps/gperf/src/Key_List.cpp:
+ * apps/gperf/src/List_Node.h:
+ * apps/gperf/src/List_Node.cpp:
+ * apps/gperf/src/Options.h:
+ * apps/gperf/src/Options.cpp:
+ * apps/gperf/src/Vectors.h:
+ * apps/gperf/src/Vectors.cpp:
+ * apps/gperf/src/Version.cpp:
+ * apps/gperf/src/gperf.cpp:
+ * apps/gperf/src/gperf.mpc:
+ * bin/MakeProjectCreator/config/MPC.cfg:
+ * bin/make_release.py:
+ * contrib/minizip/minizip_export.h:
+ * docs/bczar/bczar.html:
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_linux_icc.GNU:
+
+ Merged in from dds_ports branch, changelog entries pasted
+ after this entry.
+
+ * bin/cut_cidlc.sh:
+ * contrib/utility:
+
+ Removed these files. utility has been moved to old-contrib
+ at the root of the repository.
+
+
+ Sat Jul 11 20:01:36 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * include/makeinclude/platform_linux.GNU:
+
+ Undo bad merge.
+
+ Fri Jul 10 19:44:08 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * .:
+ * NEWS:
+ * PROBLEM-REPORT-FORM:
+ * THANKS:
+ * VERSION:
+ * ace/Argv_Type_Converter.cpp:
+ * ace/Configuration.cpp:
+ * ace/Dev_Poll_Reactor.h:
+ * ace/Dev_Poll_Reactor.inl:
+ * ace/Dev_Poll_Reactor.cpp:
+ * ace/ETCL/ETCL_Interpreter.cpp:
+ * ace/FoxReactor/FoxReactor.cpp:
+ * ace/Handle_Gobbler.inl:
+ * ace/Log_Msg.cpp:
+ * ace/Makefile.am:
+ * ace/Message_Queue_Vx.h:
+ * ace/Monitor_Control/BSD_Network_Interface_Monitor.h:
+ * ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp:
+ * ace/Monitor_Control/Bytes_Received_Monitor.h:
+ * ace/Monitor_Control/Bytes_Received_Monitor.cpp:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.h:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.cpp:
+ * ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h:
+ * ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp:
+ * ace/Monitor_Control/Makefile.am:
+ * ace/Monitor_Control/Monitor_Control.mpc:
+ * ace/Monitor_Control/Packets_Received_Monitor.h:
+ * ace/Monitor_Control/Packets_Received_Monitor.cpp:
+ * ace/Monitor_Control/Packets_Sent_Monitor.h:
+ * ace/Monitor_Control/Packets_Sent_Monitor.cpp:
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.inl:
+ * ace/OS_NS_Thread.cpp:
+ * ace/OS_NS_ctype.inl:
+ * ace/OS_NS_stdio.h:
+ * ace/OS_NS_stdio.inl:
+ * ace/OS_NS_stdio.cpp:
+ * ace/OS_NS_sys_socket.inl:
+ * ace/OS_NS_unistd.inl:
+ * ace/OS_NS_unistd.cpp:
+ * ace/OS_main.h:
+ * ace/OS_main.cpp:
+ * ace/Process.cpp:
+ * ace/SString.h:
+ * ace/SString.cpp:
+ * ace/Select_Reactor_T.cpp:
+ * ace/TP_Reactor.cpp:
+ * ace/Time_Value.h:
+ * ace/Time_Value.inl:
+ * ace/Time_Value.cpp:
+ * ace/Tokenizer_T.h:
+ * ace/Tokenizer_T.cpp:
+ * ace/Version.h:
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ * ace/config-cygwin32.h:
+ * ace/config-freebsd.h:
+ * ace/config-lite.h:
+ * ace/config-macosx-leopard.h:
+ * ace/config-openbsd.h:
+ * ace/config-win32-msvc-9.h:
+ * ace/config-win32-msvc.h:
+ * bin/PerlACE/ProcessWinCE.pm:
+ * bin/PerlACE/ProcessWinCE_Unix.pm:
+ * bin/ace_tests.lst:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * contrib/FaCE/CE_ARGV.h:
+ * contrib/FaCE/FaCE.cpp:
+ * contrib/FaCE/newres.h:
+ * contrib/minizip/minizip.mwc:
+ * docs/ACE-guidelines.html:
+ * docs/Download.html:
+ * etc/index.html:
+ * examples/OS/Process/process.cpp:
+ * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:
+ * include/makeinclude/platform_cegcc.GNU:
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_linux_icc.GNU:
+ * include/makeinclude/platform_lynxos.GNU:
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ * rpmbuild/ace-tao-ciao.spec:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosconcurrency:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosevent:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnaming:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnotification:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-costrading:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-rtevent:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosevent:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-costrading:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-rtevent:
+ * rpmbuild/ace-tao-init-suse/tao:
+ * rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency:
+ * rpmbuild/ace-tao-init-suse/tao/tao-cosevent:
+ * rpmbuild/ace-tao-init-suse/tao/tao-cosnaming:
+ * rpmbuild/ace-tao-init-suse/tao/tao-cosnotification:
+ * rpmbuild/ace-tao-init-suse/tao/tao-costrading:
+ * rpmbuild/ace-tao-init-suse/tao/tao-rtevent:
+ * rpmbuild/etc:
+ * rpmbuild/etc/logrotate.d:
+ * rpmbuild/etc/logrotate.d/tao-cosconcurrency:
+ * rpmbuild/etc/logrotate.d/tao-cosevent:
+ * rpmbuild/etc/logrotate.d/tao-cosnaming:
+ * rpmbuild/etc/logrotate.d/tao-cosnotification:
+ * rpmbuild/etc/logrotate.d/tao-costrading:
+ * rpmbuild/etc/logrotate.d/tao-rtevent:
+ * rpmbuild/etc/tao:
+ * rpmbuild/etc/tao/tao-cosconcurrency.conf:
+ * rpmbuild/etc/tao/tao-cosevent.conf:
+ * rpmbuild/etc/tao/tao-cosnaming.conf:
+ * rpmbuild/etc/tao/tao-cosnotification.conf:
+ * rpmbuild/etc/tao/tao-costrading.conf:
+ * rpmbuild/etc/tao/tao-rtevent.conf:
+ * tests/Bug_1890_Regression_Test.cpp:
+ * tests/Bug_2540_Regression_Test.cpp:
+ * tests/Bug_2740_Regression_Test.cpp:
+ * tests/Bug_3673_Regression_Test.cpp:
+ * tests/MT_Reactor_Upcall_Test.cpp:
+ * tests/Network_Adapters_Test.h:
+ * tests/Process_Manager_Test.cpp:
+ * tests/Reactor_Dispatch_Order_Test.cpp:
+ * tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp:
+ * tests/Refcounted_Event_Handler_Test_DevPoll.cpp:
+ * tests/Signal_Test.cpp:
+ * tests/non_mpc_makefile:
+ * tests/non_mpc_makefile/Bug_3708_Regression.pl:
+ * tests/non_mpc_makefile/CustomMakefile:
+ * tests/non_mpc_makefile/foo.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ * rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency.opt:
+ * rpmbuild/ace-tao-init-suse/tao/tao-cosevent.opt:
+ * rpmbuild/ace-tao-init-suse/tao/tao-cosnaming.opt:
+ * rpmbuild/ace-tao-init-suse/tao/tao-cosnotification.opt:
+ * rpmbuild/ace-tao-init-suse/tao/tao-costrading.opt:
+ * rpmbuild/ace-tao-init-suse/tao/tao-rtevent.opt:
+ * rpmbuild/logrotate.d:
+ * rpmbuild/logrotate.d/tao-cosconcurrency:
+ * rpmbuild/logrotate.d/tao-cosevent:
+ * rpmbuild/logrotate.d/tao-cosnaming:
+ * rpmbuild/logrotate.d/tao-cosnotification:
+ * rpmbuild/logrotate.d/tao-costrading:
+ * rpmbuild/logrotate.d/tao-rtevent:
+ * rpmbuild/tao:
+ * rpmbuild/tao/tao-cosconcurrency.conf:
+ * rpmbuild/tao/tao-cosevent.conf:
+ * rpmbuild/tao/tao-cosnaming.conf:
+ * rpmbuild/tao/tao-cosnotification.conf:
+ * rpmbuild/tao/tao-costrading.conf:
+ * rpmbuild/tao/tao-rtevent.conf:
+
+ Merged in from trunk.
+
+ Thu Jul 9 13:27:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/MPC.cfg:
+ Add $DANCE_ROOT/MPC as config directory, dance base projects will
+ move to there
+
+ Mon Jun 29 00:29:40 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/make_release.py:
+
+ Stab at update of the spec file upon release. This will need to
+ be tested.
+
+ Tue Jun 22 15:49:30 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/MPC.cfg:
+ Move TAO_ROOT/MPC to dynamic_includes, we now have an IDLHelper
+
+ Fri Jun 19 15:03:30 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * contrib/utility:
+
+ Removed these files.
+
+Tue Jul 14 02:44:58 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * etc/index.html:
+ * rpmbuild/ace-tao-ciao.spec:
+
+ updated for new release
+
+Mon Jul 13 12:32:13 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ACE version 5.7.1 released.
+
+Fri Jul 10 09:20:57 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Time_Value.{h,cpp,inl}:
+ Removed workarounds for old eVC, the extern causes major
+ problems when trying to compile ACE in release mode for a
+ Windows CE x86 target
+
+Thu Jul 9 11:54:57 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp:
+ Added support for OpenBSD.
+
+Thu Jul 9 06:44:32 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Monitor_Control/Bytes_Received_Monitor.h:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.h:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.cpp:
+ * ace/Monitor_Control/Packets_Received_Monitor.h:
+ * ace/Monitor_Control/Packets_Received_Monitor.cpp:
+ * ace/Monitor_Control/Packets_Sent_Monitor.h:
+ Fixed compile errors on FreeBSD.
+
+Wed Jul 8 14:22:41 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ace/Monitor_Control/Makefile.am:
+
+ Added new files FreeBSD_Network_Interface_Monitor.{h,cpp}
+ to the makefile.
+
+Tue Jul 7 22:21:03 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp:
+ * ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h:
+
+ New files, defining a monitor for FreeBSD.
+
+ * ace/Monitor_Control/Bytes_Received_Monitor.cpp:
+ * ace/Monitor_Control/BSD_Network_Interface_Monitor.h:
+ * ace/Monitor_Control/Monitor_Control.mpc:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.h:
+ * ace/Monitor_Control/Packets_Sent_Monitor.h:
+ * ace/Monitor_Control/Bytes_Received_Monitor.h:
+ * ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp:
+ * ace/Monitor_Control/Packets_Received_Monitor.h:
+ * ace/Monitor_Control/Packets_Sent_Monitor.cpp:
+
+ New files added to MPC project and existing monitors
+ patched with NetBSD/OpenBSD-related changes. Thanks to
+ Boyan Kasarov <bkasarov at gmail dot com> for submitting
+ these changes.
+
+Tue Jul 7 12:57:30 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/FoxReactor/FoxReactor.cpp:
+ Added missing return statement to avoid gcc's
+ 'no return statement in function returning non-void' warning.
+
+Tue Jul 7 06:00:39 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ Removed legacy cuserid() declaration.
+
+ * tests/run_test.lst:
+ Do not run Signal_Test on FreeBSD.
+
+Tue Jul 7 05:43:11 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Handle_Gobbler.inl:
+ Added static_cast to avoid compiler warning on FreeBSD.
+
+Mon Jul 6 20:33:00 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * ace/OS_NS_unistd.cpp:
+
+ Fixed a bug where the number of bytes passed to ACE_OS::malloc is
+ incorrect for ACE_USES_WCHAR (each character can be > 1 byte).
+
+Mon Jul 6 18:25:23 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * ace/config-macosx-leopard.h:
+
+ This platform needs ACE_HAS_SOCKADDR_IN_SIN_LEN.
+
+Sat Jul 4 20:50:16 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * Happy Birthday USA!
+
+Wed Jul 1 13:09:34 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Added ACE_HAS_VOID_UNSETENV.
+
+Mon Jun 29 23:42:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * contrib/FaCE/newres.h:
+ Fixed compile problem with CEGCC
+
+Mon Jun 29 23:08:06 UTC 2009 Trevor Fields <fields_t@ociweb.com>
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ Fixed settings of inline and exceptions for Sun compilers
+ greater than 5.9 (Sun Studio 12). Scan for version 5.1 was
+ catching 5.10 as well.
+
+Sun Jun 28 16:15:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-lite.h
+ Fixed compile problem with SunStudio 12 Update 1
+
+Sun Jun 28 14:33:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ Fixed compile problem with SunStudio 12 Update 1
+
+Sat Jun 27 00:55:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Updated suse
+
+ * rpmbuild/ace-tao-init-suse/fillup-templates/*:
+ Moved to tao
+
+Sat Jun 27 00:44:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/tao:
+ * rpmbuild/logrotate.d:
+ Moved to the new etc directory
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Updated for move above
+
+Fri Jun 26 22:55:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/non_mpc_makefile/run_test.pl:
+ * tests/non_mpc_makefile/Bug_3708_Regression.pl:
+ renamed to get better test stats
+
+ * bin/ace_tests.lst:
+ Updated for rename above
+
+Fri Jun 26 16:19:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Added missing DANCE_ROOT
+
+Fri Jun 26 16:10:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-init-suse/fillup-templates/*:
+ Missing files for x.7.0
+
+ * rpmbuild/ace-tao-init-suse/tao:
+ Removed, this are Fedora files
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Copy the correct files for SuSE and print the g++ version in the
+ build log which makes it easier to see which g++ version is
+ used
+
+Fri Jun 26 02:16:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Mandriva 2007 fix
+
+Fri Jun 26 00:46:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/ACE-guidelines.html:
+ Fixed typo
+
+Thu Jun 25 21:46:10 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/non_mpc_makefile/foo.cpp:
+
+ Fuzz fix.
+
+Thu Jun 25 14:20:08 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * bin/ace_tests.lst:
+ * tests/non_mpc_makefile:
+ * tests/non_mpc_makefile/CustomMakefile:
+ * tests/non_mpc_makefile/foo.cpp:
+ * tests/non_mpc_makefile/run_test.pl:
+
+ Added a test for non-MPC-generated Makefile compatibility with
+ the files in include/makeinclude.
+
+Thu Jun 25 13:26:13 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * include/makeinclude/wrapper_macros.GNU: Restore pre-5.7 build
+ functionality for non-MPC-generated Makefiles that use LIB to
+ specify what library to build. Fixes Bugzilla 3708.
+
+Thu Jun 25 02:09:51 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ More fixes
+
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosconcurrency
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosevent
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnaming
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnotification
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-costrading
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-rtevent
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosevent
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification
+ * rpmbuild/ace-tao-init-suse/init.d/tao-costrading
+ * rpmbuild/ace-tao-init-suse/init.d/tao-rtevent
+ Set svn:executable
+
+Wed Jun 24 19:33:51 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Some more fixes
+
+Wed Jun 24 18:19:24 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * ace/OS_NS_ctype.inl:
+ * ace/config-win32-msvc.h:
+
+ Revised the change from yesterday to only apply to Visual C++ and not
+ the other Win32 compilers.
+
+Wed Jun 24 08:51:51 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ First set of fixed to get x.7.0 compiling on OpenSuSE Build
+
+Sun Jun 21 14:34:13 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Log_Msg.cpp (log): Changed the use of
+ ACE_Log_Record::MAXLOGMSGLEN to ACE_MAXLOGMSGLEN to avoid
+ problems with "off-by-one" buffer overflow errors. Thanks to
+ Brendan Murphy <brendan dot murphy at euro dot apple dot com>
+ for contributing this.
+
+Tue Jun 23 20:12:51 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * ace/Argv_Type_Converter.cpp:
+
+ Allow a 0-length argv list (argc == 0), argv[0] may not be valid.
+
+ * ace/OS_NS_ctype.inl:
+
+ This WinCE/Mobile work-around applies to Win32 w/ wchar as well.
+
+ * ace/OS_NS_stdio.cpp:
+
+ Removed the check for Unicode BOM in ACE_OS::fopen(). This was only
+ checked in Win32 builds with ACE_USES_WCHAR. This resolves bug#3705.
+
+Tue Jun 23 15:09:50 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * etc/index.html:
+ Post release updates.
+
+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>
+
+ * ace/config-linux-common.h:
+
+ Reverted previous change.
+
+Sun Apr 12 20:37:11 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/config-linux-common.h:
+
+ The Rawhide nightly build shows that the scandir and alphasort
+ functions have been redefined to finally take dirrent args. The
+ detectable difference appears to be in the glibc version code,
+ which is 2.9 on the Rawhide build machine.
+
+Sat Apr 11 13:13:49 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/config-macosx-leopard.h:
+
+ Darwin also has a variation that varies the signature of
+ unsetenv().
+
+Fri Apr 10 10:26:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-openvms.h
+ OpenVMS lacks setenv/unsetenv
+
+Fri Apr 10 03:32:04 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/OS_NS_stdlib.inl:
+
+ Fix typo from previous commit.
+
+Fri Apr 10 03:00:44 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/OS_NS_stdlib.inl:
+ * ace/config-qnx-rtp-common.h:
+
+ The newly added [un]setenv wrappers don't compile on qnx rtp
+ because that platform defines unsetenv as having a void
+ return. It is possible that other platforms have this as well,
+ as legacy linux man pages show that signature.
+
+Thu Apr 9 12:34:41 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/OS_NS_stdio.inl:
+ Reverted renaming of ACE_HAS_NONCONST_WFDOPEN define
+
+Thu Apr 9 11:45:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/OS_NS_stdio.inl:
+ Resolved compiler error on WinCE 5 VC 8.
+
+Wed Apr 8 10:59:59 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/config-win32-cegcc.h:
+ Added to support CE gcc compiler
+
+ * ace/config-win32-common.h:
+ Prevent ACE_HAS_CUSTOM_EXPORT_MACROS from
+ being defined a second time.
+
+ * ace/config-win32.h:
+ Introduced ACE_HAS_CEGCC. When defined,
+ config-win32-cegcc is included.
+
+ * ace/Numeric_Limits.h:
+ "#ifdef" replace by "#if defined"
+
+ * ace/os_include/sys/os_stat.h:
+ Prevent defines from being defined a second time.
+
+ * ace/OS_NS_stdio.inl:
+ Prevent compiler errors when compiling
+ with CE gcc compiler.
+
+ Using global namespace for fseek
+
+ * ace/OS_NS_stdlib.inl:
+ Prevent compiler errors when compiling
+ with CE gcc compiler.
+
+ * ace/OS_NS_Thread.h:
+ Defining STACK_SIZE_PARAM_IS_A_RESERVATION (when it
+ isn't defined yet).
+
+ * ace/OS_NS_time.h:
+ * ace/Time_Value.inl:
+ Prevent pragma warnings when compiling with
+ CE gcc compiler.
+
+Wed Apr 8 10:13:28 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ LynxOS 5.0 has setenv/unsetenv.
+
+Wed Apr 8 10:01:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ Increased number of telnet retries
+
+Tue Apr 7 20:29:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-lynxos.h
+ LynxOS lacks setenv/unsetenv
+
+Tue Apr 7 16:44:37 UTC 2009 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * docs/ace_guidelines.vsmacros:
+
+ Bug fix where the script was trying to run on unsupported
+ text files, which was causing an exception.
+
+Tue Apr 7 09:33:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-sunos5.5.h
+ Solaris lacks setenv/unsetenv
+
+Tue Apr 7 09:32:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * configure.ac:
+ Added setenv/unsetenv
+
+Tue Apr 7 09:20:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-hpux-11.00.h
+ HPUX lacks setenv/unsetenv
+
+Tue Apr 7 06:56:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/config-vxworks6.4.h:
+ VxWorks kernel model lacks setenv/unsetenv
+
+ * bin/fuzz.pl:
+ Added setenv/unsetenv
+
+Mon Apr 6 21:59:51 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * include/makeinclude/platform_sunos5_g++.GNU: Don't acc CFLAGS to
+ CCFLAGS; set options that make sense to C and C++ in the
+ respective CFLAGS/CCFLAGS. Not all options are cross-compatible
+ so they shouldn't be blindly included. Has the side-affect of
+ removing the double -pipe (and other options included twice)
+ and fixes Bugzilla #3232.
+
+Mon Apr 6 15:17:23 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/Message_Queue_Test.cpp: Added a new close_test() function
+ to test the fix to Message_Queue_T::close(). Thanks to Igor
+ Rayak <igor dot rayak at gmail dot com> for providing this.
+
+Mon Apr 6 14:46:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-common.h:
+ Windows doesn't have setenv/unsetenv
+
+Mon Apr 6 13:44:31 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue_T.cpp (close): Added a comment explaining why
+ we don't need to check the return value of deactivate_i().
+
+Mon Apr 6 09:43:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-WinCE.h:
+ Added missing ACE_LACKS_GETENV
+
+Mon Apr 6 07:25:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-integritySCA.h:
+ Added ACE_LACKS_PUTENV_PROTOTYPE
+
+ * ace/config-WinCE.h:
+ WinCE doesn't have environment variables
+
+ * ace/OS_NS_stdlib.cpp:
+ * ace/OS_NS_stdlib.h:
+ * ace/OS_NS_stdlib.inl:
+ * ace/OS_NS_unistd.cpp:
+ Added setenv/unsetenv wrappers and used a specific define per
+ environment method
+
+Sun Apr 5 19:08:47 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue_T.cpp (close): Fixed this method so it returns
+ the number of messages that were flushed from the queue, as per
+ its documentation. Thanks to Igor Rayak <igor dot rayak at
+ gmail dot com> for reporting this.
+
+Sun Apr 5 18:39:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_main.cpp:
+ Added missing ACE_Export
+
+Sat Apr 4 11:49:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-vxworks6.4.h:
+ Removed not needed define
+
+Fri Apr 3 13:28:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/arpa/os_inet.h:
+ * ace/os_include/sys/os_select.h:
+ * ace/os_include/sys/os_socket.h:
+ * ace/os_include/sys/os_un.h:
+ * ace/Token.h:
+ * ace/config-vxworks6.4.h:
+ Moved some VxWorks checks to the config file and added some
+ new defines
+
+Thu Apr 2 19:33:13 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Added -lXp to PLATFORM_X11_LIBS.
+
+Thu Apr 2 10:05:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Sig_Handlers_Test.cpp:
+ Fixed compile error and warning
+
+Wed Apr 1 19:48:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Log_Msg_Test.cpp:
+ Fix for vxworks 6.7
+
+ * tests/Recursive_Condition_Test.cpp:
+ Const change and added a debug statement
+
+ * tests/Sig_Handlers_Test.cpp:
+ Removed not needed include and fixed compile issue
+
+ * tests/tests.mpc:
+ Added missing Sig_Handlers_Test
+
+Wed Apr 1 15:12:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Service_Repository.h:
+ Removed unicode character. Thanks to Alon Diamant
+ <diamant dot alon at gmail dot com> for reporting this
+
+Tue Mar 31 07:18:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Sock_Connect.cpp:
+ VxWorks 6.7 also has an issue with in6_addr
+
+Tue Mar 31 14:59:49 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * ace/High_Res_Timer.cpp:
+
+ Linux configured with "clock=pit" on the boot line (commonly used
+ for virtual machines) can report a 0 MHz CPU, in which case ACE
+ must run calibration for the High Res Timer to avoid a division by 0.
+
+Mon Mar 30 14:32:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.cpp:
+ * ace/OS_NS_Thread.inl:
+ Refactored VxWorks version checks to new macros
+
+Fri Mar 27 13:24:58 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * bin/MakeProjectCreator/config/ace_athena3d.mpb:
+ * tests/XtAthenaReactor_Test.cpp:
+ * tests/tests.mpc:
+ Added support for Athena-3D widgets.
+
+Fri Mar 27 11:19:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ Improved error handling
+
+Thu Mar 26 17:10:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ Changed waiting for the prompt, VxWorks 6.7 telnet server seems to
+ have slight different timing behaviour
+
+Thu Mar 26 12:48:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX.pm:
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ Added support for ACE_RUN_VX_TGT_STARTUP_SCRIPT. This is a script
+ on the host system that is loaded and then executed on the target
+
+Thu Mar 26 09:21:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Added explicit provides for mpc
+
+Thu Mar 26 09:02:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.inl (condattr_destroy, condattr_init):
+ Simplified these methods
+
+Wed Mar 25 19:27:45 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/OS_NS_Thread.inl:
+ Address the possibility that both PTHREADS and STHREADS are
+ available, which is the case on Solaris 5.5 and newer. The
+ header prefers PTHREAD definitions to STHREAD, so now this code
+ does the same.
+
+Wed Mar 25 19:09:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/os_limits.h:
+ * Kokyu/DSRT_Dispatcher_Impl_T.h:
+ Fixed VxWorks 6.7 compile problems
+
+ * Kokyu/Kokyu.cpp:
+ Initialise pointers with 0
+
+Wed Mar 25 13:04:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-vxworks6.7.h:
+ isascii still gives a problem with VxWorks 6.7.
+
+Wed Mar 25 09:15:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks.GNU:
+ Added support for VxWorks 6.7
+
+Tue Mar 24 15:16:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-common.h:
+ When the user defines ACE_HAS_WTHREADS_CONDITION_VARIABLE we don't
+ define ACE_LACKS_COND_T
+
+ * ace/OS_NS_Thread.cpp:
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.inl:
+ Windows Vista/Server 2008 and newer do have native support for
+ condition variables. Added a compilation time flag
+ ACE_HAS_WTHREADS_CONDITION_VARIABLE, when this is defined ACE will
+ use the native Windows condition api's. Did some unrelated const,
+ performance, and code improvements.
+
+ * ace/OS_NS_stdio.cpp (checkUnicodeFormat):
+ Slightly change the check for the return value
+
+Tue Mar 24 15:16:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Timer_Heap_T.cpp:
+ * ace/Timer_Queue_Adapters.cpp:
+ Const changes
+
+Tue Mar 24 13:43:14 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/Sig_Handlers_Test.cpp: Added a new test to ensure that the
+ ACE_Sig_Handlers class is working properly.
+
+Tue Mar 24 11:45:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3532_Regression_Test.cpp:
+ Use ACE_TEXT
+
+Tue Mar 24 11:38:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.cpp (checkUnicodeFormat):
+ Fixed a bug that the file pointer wasn't set to the start of the
+ file when the file is just 1 byte large. This fixes bugzilla
+ 3532, thanks to Martin Gaus <gaus at gmx dot de> for reporting
+ this.
+
+Mon Mar 23 23:11:49 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Sig_Handler.cpp: Fixed a silly bug in the use of
+ ACE_Fixed_Set_Iterator that was causing every other signal in
+ ACE_Sig_Handlers to be skipped. Thanks to Andreas Drescher <ace
+ at anticat dot ch> for reporting this bug.
+
+Sun Mar 22 19:21:06 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Acceptor.cpp (accept_svc_handler): Zapped the 'const' before
+ the 'bool'.
+
+Fri Mar 20 13:40:47 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Acceptor.cpp (accept_svc_handler): Added a check for a NULL
+ reactor to avoid a race condition. Thanks to JD Robertson
+ <JD.Robertson at ni dot com> for reporting this.
+
+Sun Mar 22 06:46:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.cpp:
+ For ACE_BEGINTHREADEX with WinCE only pas supported flags
+
+Fri Mar 20 16:15:15 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * THANKS:
+
+ Updated email address for Max Khon.
+
+Fri Mar 20 08:07:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_unistd.{h,inl}:
+ Use correct type for pid and WinCE change
+
+Thu Mar 19 16:07:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ * bin/MakeProjectCreator/config/svc_conf_files.mpb:
+ Add all .conf and .conf.xml files to a Svc Conf Files group
+ and use it for all ace/tao projects. That way any service
+ config file is part of the generated visual studio solution
+ which makes it easier to edit these files
+
+Thu Mar 19 12:42:07 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/OS_NS_unistd.inl:
+
+ Further clean up to maintain style consistency in new dup()
+ impl.
+
+Thu Mar 19 11:57:46 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/OS_NS_unistd.inl:
+
+ Clean up compile errors.
+
+Wed Mar 18 14:48:23 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_unistd.{h,inl}: Added a new ACE_OS::dup() method with
+ one more parameter as process id of target process
+ [ACE_OS:dup(ACE_HANDLE handle, int pid)], so that handle
+ duplicated by dup() can be used in target process. Thanks to
+ kashif khan <kashif_khan198227 at yahoo dot com> for
+ contributing this.
+
+Wed Mar 18 14:28:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * protocols/ace/RMCast/Acknowledge.cpp:
+ * protocols/ace/RMCast/Protocol.h:
+ Initialise pointers with 0
+
+Wed Mar 18 11:23:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-cygwin32.h:
+ Added some support for Cygwin 1.7
+
+Wed Mar 18 09:17:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.cpp:
+ For ACE_BEGINTHREADEX with WinCE, just past all flags to CreateThread,
+ that way the user can also specify STACK_SIZE_PARAM_IS_A_RESERVATION
+ as flag
+
+Tue Mar 17 09:10:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Correct Fri Mar 13 08:16:54 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+ so that CIAO_ROOT and TAO_ROOT are actually set.
+
+Mon Mar 16 20:04:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ Let gnuplot figure our the yrange high
+
+Mon Mar 16 19:46:53 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * THANKS
+ Added MarcusM for fixing Bugzilla 3618.
+
+Mon Mar 16 19:35:53 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/Service_Gestalt.cpp:
+ Applied patch attached to Bugzilla 3618.
+ Fixed Bugzilla 3618.
+
+Mon Mar 16 18:42:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/analyticsTracking.php:
+ * docs/Download.html:
+ Added tracking
+
+Mon Mar 16 13:01:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Asynch_IO.h:
+ * ace/Based_Pointer_Repository.h:
+ Added private copy constructor/assignment operator to prevent
+ making a copy which leads to a double delete
+
+Mon Mar 16 12:29:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Configuration.cpp:
+ * ace/System_Time.cpp:
+ Initialise pointers with 0
+
+ * ace/MEM_Acceptor.h:
+ Doxygen fix
+
+ * ace/Monitor_Control_Types.cpp (operator=):
+ Check for self assignment
+
+ * ace/Name_Space.cpp:
+ * ace/Name_Space.h:
+ Let operator= return a value
+
+ * ace/SOCK.h:
+ Layout change
+
+ * ace/UUID.cpp:
+ Simplified operator=
+
+Sun Mar 15 18:44:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Removed workarounds for TAO_IDL lib version numbers
+
+Sat Mar 14 22:05:15 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Updated for LynxOS 5.0
+
+Fri Mar 13 19:21:54 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Removed checks for OS version, we now use the gcc version
+
+Fri Mar 13 08:16:54 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Check also the lst files in the TAO_ROOT/bin and CIAO_ROOT/bin
+ directory.
+
+ * ace/MEM_Connector.h
+ * ace/SOCK_Connector.h
+ * ace/SOCK_SEQPACK_Connector.h
+ * ace/SSL/SSL_SOCK_Connector.h
+ Fixed typo in comment
+
+Mon Mar 9 13:39:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/*:
+ Moved all TAO and CIAO files to TAO_ROOT/etc and CIAO_ROOT/etc
+
+ * bin/generate_doxygen.pl:
+ Updated for doxygen file change
+
+Mon Mar 9 07:22:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace_qt3reactor.mpc:
+ Explicitly list moc file to resolve compile warning on fc6
+
+Mon Mar 9 07:08:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_footprint_chart.sh:
+ Changed location of footer
+
+ * bin/MakeProjectCreator/config/global.features:
+ lzo1 is disabled by default
+
+Fri Mar 6 20:28:50 UTC 2009 Steven Stallion <stallions@ociweb.com>
+
+ * bin/PerlACE/Process_Unix.pm:
+ * bin/PerlACE/Run_Test.pm:
+
+ Added add_lib_path support for Mac OS X (DYLD_LIBRARY_PATH).
+
+Fri Mar 6 09:07:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/footprint.shtml:
+ Corrected links
+
+Thu Mar 5 20:18:42 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_linux_common.GNU:
+ Improved support for systems that lack 'lsb_release' command
+ and systems which getconf doesn't support 'GNU_LIBPTHREAD_VERSION'
+ variable.
+
+Thu Mar 5 19:22:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace_qt3reactor.mpc:
+ * ace/ace_qt4reactor.mpc:
+ Moved moc step to seperate project to get the correct build order
+ with incredibuild
+
+ * ace/Select_Reactor_T.h:
+ * ace/Sig_Handler.h:
+ * ace/WFMO_Reactor.h:
+ Doxygen changes
+
+Wed Mar 4 20:01:11 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Add -ftemplate-depth-23 to CCFLAGS when compiling with GCC 2.x.
+
+Wed Mar 4 10:04:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_footprint_chart.sh:
+ * bin/generate_performance_chart.sh:
+ * bin/performance_stats.sh:
+ Updated size and scale of the graphs
+
+Wed Mar 4 08:14:35 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Process_Manager_Test.cpp:
+ Added missing ACE_TEXT.
+
+Tue Mar 3 19:59:10 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * apps/JAWS/clients/Blobby/Blob_Handler.cpp:
+ Fixed compile warning.
+
+Tue Mar 3 19:43:42 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Process_Manager_Test.cpp:
+ Fixed gcc's "zero-length format string" warning.
+
+Tue Mar 3 13:32:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ * bin/performance_stats.sh:
+ * html/Stats/performance.shtml:
+ * html/Stats/simple_footprint.shtml:
+ Don't generate thumbnails, just show the original graphs on 320x240
+
+Tue Mar 3 11:13:48 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Fixed cross compilation settings and changed default cross compilation
+ platform to Linux.
+
+Tue Mar 3 10:42:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/compilation.shtml:
+ * html/Stats/footprint.shtml:
+ * html/Stats/navigation.html:
+ * html/Stats/performance.shtml:
+ Updated links to the new results
+
+Tue Mar 3 07:46:45 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Add -lrpc to LIBS if rpc=1.
+
+Tue Mar 3 07:35:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Unbounded_Set_Test.cpp:
+ Also test the is_empty() method
+
+ * tests/Log_Msg_Backend_Test.cpp:
+ Directly assign variable
+
+Tue Mar 3 05:27:13 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/os_include/net/os_if.h:
+ Fixed errors caused by previous commit.
+
+Mon Mar 2 19:58:57 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ * ace/os_include/net/os_if.h:
+ * configure.ac:
+ * m4/config_h.m4:
+ Removed legacy ACE_HAS_STL_MAP_CONFLICT macro.
+
+Mon Mar 2 14:51:20 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * examples/Misc/test_XtReactor1.cpp:
+ * examples/Misc/test_XtReactor2.cpp:
+ * tests/XtAthenaReactor_Test.cpp:
+ * tests/XtMotifReactor_Test.cpp:
+ Fixed compile warning and run-time crash on 64-bit systems.
+
+Mon Mar 2 11:44:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Auto_IncDec_T.h:
+ * ace/OS_Memory.h:
+ * ace/OS_NS_Thread.h:
+ Doxygen fixes
+
+Mon Mar 2 10:35:41 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * apps/gperf/src/Key_List.cpp:
+
+ Fixed memory leaks in gperf code.
+
+Mon Mar 2 07:53:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ Added some more links
+
+Mon Mar 2 07:37:59 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * performance-tests/RPC/client.cpp:
+ Fixed compile error on LynxOS 4.2
+
+Sun Mar 1 20:35:34 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-sunos5.5.h:
+ Removed ACE_HAS_STL_MAP_CONFLICT.
+
+Sun Mar 1 20:20:16 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/os_include/netinet/os_in.h:
+ * ace/os_include/os_netdb.h:
+ * ace/os_include/os_stropts.h:
+ * configure.ac:
+ * m4/config_h.m4:
+ Removed legacy ACE_HAS_STL_QUEUE_CONFLICT macro.
+
+Sun Mar 1 18:45:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_footprint_chart.sh
+ * bin/generate_performance_chart.sh
+ * bin/generate_topinfo_charts.sh
+ * bin/performance_stats.sh
+ Rotate xlabel to make them more readable
+
+Sun Mar 1 07:36:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_performance_chart.sh:
+ * bin/performance_stats.sh:
+ * html/Stats/configuration.shtml:
+ * html/Stats/footprint.shtml:
+ Extended these files to that we can use them on emulab
+
+Fri Feb 27 12:31:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ Generate a link to the raw data file
+
+Fri Feb 27 10:09:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ If the object size is smaller then 1Kb, generate the graph in
+ bytes
+
+Fri Feb 27 10:09:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ Changed gnuplot generation
+
+Fri Feb 27 09:50:47 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/ace_qt3reactor.mpc:
+ * ace/ace_qt4reactor.mpc:
+ Preventing QtReactor_moc.cpp to be included twice
+
+Fri Feb 27 08:21:47 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/FlReactor/FlReactor.cpp:
+ * ace/FoxReactor/FoxReactor.cpp:
+ * tests/FlReactor_Test.cpp:
+ Fixed includes.
+
+Fri Feb 27 07:52:36 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * performance-tests/RPC/client.cpp:
+ Added #include "ace/Throughput_Stats.h" to fix compile errors.
+
+Fri Feb 27 07:08:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ Corrected sorting order
+
+Thu Feb 26 12:26:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Addr.cpp:
+ Layout change
+
+ * ace/Event_Handler.h:
+ * ace/Free_List.h:
+ * ace/Logging_Strategy.h:
+ * ace/Process_Manager.h:
+ * ace/Select_Reactor_Base.h:
+ * ace/Select_Reactor_T.h:
+ * ace/SSL/SSL_SOCK_Acceptor.inl:
+ * ace/Timer_Heap_T.h:
+ * ace/Timer_Wheel_T.h:
+ Doxygen change
+
+ * ace/Service_Config.cpp:
+ * ace/Service_Gestalt.cpp:
+ * ace/Service_Gestalt.h:
+ Changed the default value of the logger_key argument
+ to open to 0. That way we can easier check if the user
+ has overridden the default. Also check the logger_key
+ in Service_Gestalt, so that it can be set through TAO.
+ This fixes bugzilla 3597
+
+Thu Feb 26 10:45:58 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_linux_common.GNU:
+ Fixed TCL/TK flags for Ubuntu.
+
+Thu Feb 26 09:24:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ Don't generate the LAST file anymore, it only takes disk space
+ and is not used
+
+Thu Feb 26 08:39:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/*:
+ Improved these files
+
+Thu Feb 26 08:02:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ Don't use the .metrics directory, on emulab we always get a fresh
+ system. Just use the DEST directory directly
+
+Mon Feb 23 19:34:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_compile_stats.sh:
+ Use mkdir -p
+
+Mon Feb 23 19:25:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_sys_socket.h:
+ Doxygen changes
+
+Mon Feb 23 13:11:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-vxworks5.x.h:
+ * ace/config-vxworks6.2.h:
+ * ace/config-vxworks6.3.h:
+ Removed, these VxWorks versions aren't maintained anymore
+
+ * ace/config-vxworks.h:
+ Updated
+
+Mon Feb 23 08:16:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features
+ Layout changes
+
+ * bin/PerlACE/ProcessVX_Unix.pm
+ Improved quote handling
+
+ * debianbuild/dsc:
+ New file
+
+ * ace/Activation_Queue.cpp
+ * ace/ATM_Addr.cpp
+ * ace/ATM_Connector.inl
+ * ace/Configuration_Import_Export.cpp
+ * ace/Dynamic_Message_Strategy.cpp
+ * ace/Future.cpp
+ * ace/Message_Queue_T.cpp
+ * ace/Naming_Context.cpp
+ * ace/POSIX_Asynch_IO.cpp
+ * ace/QoS/QoS_Session_Impl.cpp
+ * ace/Timer_Heap_T.cpp
+ * ace/Timer_Wheel_T.cpp
+ * ace/TP_Reactor.cpp
+ * ace/WIN32_Asynch_IO.cpp
+ * ACEXML/examples/SAXPrint/main.cpp
+ * apps/gperf/src/Options.cpp
+ * apps/JAWS/server/HTTP_Handler.cpp
+ * apps/mkcsregdb/mkcsregdb.cpp
+ * ASNMP/examples/get/get.cpp
+ * ASNMP/examples/get/get_async.cpp
+ * ASNMP/examples/next/next.cpp
+ * ASNMP/examples/set/set.cpp
+ * ASNMP/examples/trap/trap.cpp
+ * ASNMP/examples/walk/walk.cpp
+ * examples/APG/Containers/DLList.cpp
+ * examples/APG/Containers/Hash_Map.cpp
+ * examples/APG/Containers/Hash_Map_Hash.cpp
+ * examples/APG/Containers/Map_Manager.cpp
+ * examples/APG/Containers/Map_Manager_Specialization.cpp
+ * examples/APG/Containers/RB_Tree.cpp
+ * examples/APG/Containers/RB_Tree_Functors.cpp
+ * examples/APG/ThreadManagement/Coop_Cancel.cpp
+ * examples/APG/ThreadManagement/ExitHandler.cpp
+ * examples/APG/ThreadManagement/Pool.cpp
+ * examples/APG/ThreadManagement/Signals2.cpp
+ * examples/APG/ThreadManagement/Start_Hook.cpp
+ * examples/APG/ThreadSafety/Atomic_Op.cpp
+ * examples/APG/ThreadSafety/TSS.cpp
+ * examples/APG/Timers/Task.cpp
+ * examples/ASX/Event_Server/Event_Server/Options.cpp
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp
+ * examples/ASX/UPIPE_Event_Server/Options.cpp
+ * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp
+ * examples/Connection/misc/Connection_Handler.cpp
+ * examples/IPC_SAP/ATM_SAP/CPP-client.cpp
+ * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp
+ * examples/IPC_SAP/SSL_SAP/SSL-server.cpp
+ * examples/QOS/Change_Receiver_FlowSpec/receiver.cpp
+ * examples/QOS/Change_Receiver_FlowSpec/sender.cpp
+ * examples/QOS/Change_Sender_TSpec/receiver.cpp
+ * examples/QOS/Change_Sender_TSpec/sender.cpp
+ * examples/QOS/Simple/receiver.cpp
+ * examples/QOS/Simple/sender.cpp
+ * examples/Reactor/Proactor/post_completions.cpp
+ * examples/Reactor/Proactor/test_aiosig.cpp
+ * examples/Reactor/Proactor/test_aiosig_ace.cpp
+ * examples/Reactor/Proactor/test_end_event_loop.cpp
+ * examples/Threads/auto_event.cpp
+ * examples/Threads/manual_event.cpp
+ * examples/Timer_Queue/Async_Timer_Queue_Test.cpp
+ * Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp
+ * Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp
+ * Kokyu/tests/DSRT_MIF/MIF.cpp
+ * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
+ * netsvcs/lib/Name_Handler.cpp
+ * NEWS
+ * performance-tests/SCTP/Options_Manager.cpp
+ * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp
+ * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp
+ * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp
+ * performance-tests/TCP/tcp_test.cpp
+ * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp
+ * performance-tests/UDP/udp_test.cpp
+ * protocols/tests/HTBP/Reactor_Tests/server.cpp
+ * protocols/tests/HTBP/Send_Large_Msg/server.cpp
+ * protocols/tests/HTBP/Send_Recv_Tests/client.cpp
+ * protocols/tests/HTBP/Send_Recv_Tests/server.cpp
+ * tests/Cache_Map_Manager_Test.cpp
+ * tests/CDR_Array_Test.cpp
+ * tests/CDR_Test.cpp
+ * tests/DLList_Test.cpp
+ * tests/Get_Opt_Test.cpp
+ * tests/Hash_Map_Manager_Test.cpp
+ * tests/Hash_Multi_Map_Manager_Test.cpp
+ * tests/IOStream_Test.cpp
+ * tests/Logging_Strategy_Test.cpp
+ * tests/Max_Default_Port_Test.cpp
+ * tests/Max_Default_Port_Test_IPV6.cpp
+ * tests/Message_Queue_Notifications_Test.cpp
+ * tests/MT_Reference_Counted_Event_Handler_Test.cpp
+ * tests/Multicast_Test.cpp
+ * tests/Multicast_Test_IPV6.cpp
+ * tests/Naming_Test.cpp
+ * tests/Network_Adapters_Test.cpp
+ * tests/Pipe_Test.cpp
+ * tests/QtReactor_Test.cpp
+ * tests/Reactor_Notification_Queue_Test.cpp
+ * tests/Reactor_Remove_Resume_Test.cpp
+ * tests/Reactor_Remove_Resume_Test_Dev_Poll.cpp
+ * tests/Reactors_Test.cpp
+ * tests/Signal_Test.cpp
+ * tests/SOCK_Netlink_Test.cpp
+ * tests/SOCK_SEQPACK_SCTP_Test.cpp
+ * tests/SString_Test.cpp
+ * tests/Thread_Pool_Reactor_Resume_Test.cpp
+ * tests/Upgradable_RW_Test.cpp
+ Zapped empty spaces at the end of a line
+
+Fri Feb 20 13:50:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-mingw.h:
+ Support MinGW 3.15
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ Improvement for cross compilation
+
+ Thanks to Jani Hakala <jahakala at iki dot fi> for delivering some
+ patches
+
+ * ace/config-vxworks6.7.h:
+ Improved support
+
+Fri Feb 20 09:54:33 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/config-win32-common.h:
+ * tests/Process_Manager_Test.cpp:
+ Added define ACE_HAS_WIN32_PRIORITY_CLASS. On win32
+ platforms where process priority classes exists,
+ one can use this define.
+
+Fri Feb 20 09:28:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Msg_IPC.h:
+ Added include of Default_Constants.h
+
+Fri Feb 20 07:29:18 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Based_Pointer_Test_Lib.cpp:
+ Reverted the last changes made by Johnny
+ (ace/svc_export.h is back again).
+
+ * tests/Based_Pointer_Test_Lib_Export.h:
+ Removed from repository (ace/svc_export.h is back again).
+
+Fri Feb 20 07:29:18 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Added ACE_LACKS_LOG2 and ACE_LACKS_ISCTYPE.
+
+Thu Feb 19 20:27:33 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ Removed ACE_HAS_SIG_MACROS.
+
+Thu Feb 19 17:38:33 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/Process_Manager_Test.cpp:
+ Expanded test with process priority on Windows platforms.
+
+Thu Feb 19 14:01:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Default_Constants.h:
+ * ace/Log_Msg_IPC.cpp:
+ * ace/Log_Msg_IPC.h:
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ * netsvcs/lib/Client_Logging_Handler.h:
+ Added new ACE_HAS_STREAM_LOG_MSG_IPC which controls whether the
+ ACE Log_Msg IPC should use streams or not. When ACE_HAS_STREAM_PIPES
+ is defined we default to 1, else to 0. We do see that using stream
+ pipes causes problems on at least Solaris, so the user can decide
+ to set this value explicitly to 0
+
+ * ace/CDR_Stream.cpp:
+ * ace/CDR_Stream.h:
+ * ace/Message_Block.inl:
+ Doxygen and layout changes
+
+ * ace/Message_Block.cpp:
+ Use %@ for pointers
+
+Wed Feb 18 20:51:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/minizip.mpb:
+ Added new base project for minizip
+
+Wed Feb 18 19:36:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-msvc-7.h:
+ Layout change
+
+ * ace/config-win32-msvc-8.h:
+ Disable warning 4250, and 4355, we do this for the other
+ msvc versions but not for vc8
+
+Wed Feb 18 19:06:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ * netsvcs/lib/Client_Logging_Handler.h:
+ Just use ACE_HAS_STREAM_PIPES, there are too much other
+ dependencies on this define
+
+Wed Feb 18 15:34:33 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/tests.mpc:
+ Reverted the last changes made by Johnny
+ (ace/svc_export.h is back again).
+
+Wed Feb 18 12:58:33 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ Added ACE_LACKS_ISCTYPE.
+
+Wed Feb 18 10:25:49 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-g++-common.h:
+ Define ACE_LACKS_NUMERIC_LIMITS and ACE_LACKS_ISCTYPE if
+ compiling with GCC 2.x.
+
+ * ace/config-lynxos.h:
+ * ace/config-vxworks5.x.h:
+ Do not define ACE_LACKS_NUMERIC_LIMITS. It is now handled by
+ config-g++-common.h.
+
+Wed Feb 18 09:22:29 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/DLL_Test.h:
+ Revert changes made by Johnny (just use
+ ace/svc_export.h again).
+
+ * tests/DLL_Test_Export.h:
+ Removed since ace/svc_export.h is
+ used again.
+
+Tue Feb 17 23:56:45 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/MakeProjectCreator/config/global.features:
+
+ Disabled xerces by default as well.
+
+Tue Feb 17 20:19:06 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/os_include/os_stddef.h:
+ Removed unneeded definitions for NULL and offsetof.
+
+Tue Feb 17 18:08:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.h:
+ * netsvcs/lib/Name_Handler.cpp:
+ * netsvcs/lib/Name_Handler.h:
+ * netsvcs/lib/Server_Logging_Handler.h:
+ * netsvcs/lib/Server_Logging_Handler_T.cpp:
+ * netsvcs/lib/Time_Request_Reply.cpp:
+ * netsvcs/lib/Time_Request_Reply.h:
+ * netsvcs/lib/Token_Handler.cpp:
+ * netsvcs/lib/Token_Handler.h:
+ * netsvcs/lib/TS_Clerk_Handler.cpp:
+ * netsvcs/lib/TS_Clerk_Handler.h:
+ * netsvcs/lib/TS_Server_Handler.cpp:
+ * netsvcs/lib/TS_Server_Handler.h:
+ Revert svc_export.h file, much more dependencies then I expected
+
+Tue Feb 17 17:46:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ * ace/Makefile.am:
+ Readded svc_export.h
+
+Tue Feb 17 17:45:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/svc_export.h:
+ Readded this file, removing it breaks a lot of examples which all
+ first have to be updated
+
+Tue Feb 17 14:27:50 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/os_include/os_signal.h:
+ Removed some legacy Linux code.
+
+Tue Feb 17 14:20:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Based_Pointer_Test_Lib.cpp:
+ * tests/Based_Pointer_Test_Lib_Export.h:
+ * tests/DLL_Test.h:
+ * tests/DLL_Test_Export.h:
+ * tests/tests.mpc:
+ Added specific export files for these tests
+
+Tue Feb 17 13:13:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ Runtime fix
+
+Tue Feb 17 12:53:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ logger_key_ is only required when using stream_pipes
+
+Tue Feb 17 11:52:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ * netsvcs/lib/Client_Logging_Handler.h:
+ Added new ACE_NETSVCS_CLIENT_LOGGING_HANDLER_USES_STREAM_PIPES which
+ can be explicitly set to 0 to just use sockets
+
+Tue Feb 17 10:57:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ * ace/Makefile.am:
+ * ace/svc_export.h:
+ * netsvcs/lib/svc_export.h:
+ * netsvcs/lib/Makefile.am
+ Moved svc_export to the netsvcs lib directory, it belongs there
+
+ * ace/CDR_Stream.cpp:
+ Layout change
+
+ * ace/Lock_Adapter_T.h:
+ * ace/Message_Block.cpp:
+ * ace/Message_Block.h:
+ * ace/Reverse_Lock_T.h:
+ Doxygen change
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ Make sure we receive the expected length
+
+ * netsvcs/lib/lib.mpc:
+ Set the correct export define
+
+ * netsvcs/lib/Client_Logging_Handler.h:
+ * netsvcs/lib/Name_Handler.cpp:
+ * netsvcs/lib/Name_Handler.h:
+ * netsvcs/lib/Server_Logging_Handler.h:
+ * netsvcs/lib/Server_Logging_Handler_T.cpp:
+ * netsvcs/lib/Time_Request_Reply.cpp:
+ * netsvcs/lib/Time_Request_Reply.h:
+ * netsvcs/lib/Token_Handler.cpp:
+ * netsvcs/lib/Token_Handler.h:
+ * netsvcs/lib/TS_Clerk_Handler.cpp:
+ * netsvcs/lib/TS_Clerk_Handler.h:
+ * netsvcs/lib/TS_Server_Handler.cpp:
+ * netsvcs/lib/TS_Server_Handler.h:
+ Updated include of svc_export and no need to set the
+ build define
+
+Mon Feb 16 18:58:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CDR_Stream.h:
+ * ace/FIFO_Recv_Msg.h:
+ * ace/FIFO_Send_Msg.h:
+ * ace/SPIPE_Stream.h:
+ Doxygen changes
+
+Mon Feb 16 17:09:40 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/MakeProjectCreator/config/global.features:
+
+ Disabled ofccm by default.
+
+Mon Feb 16 13:30:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Array_Base.h:
+ * ace/Local_Tokens.h:
+ * ace/SPIPE_Stream.h:
+ * ace/Stream.h:
+ * ace/Unbounded_Set_Ex.h:
+ * ace/Vector_T.h
+ Doyxgen change
+
+ * ace/Hash_Map_Manager_T.cpp:
+ Use prefix increment
+
+ * ace/Hash_Map_Manager_T.h:
+ * ace/Hash_Map_Manager_T.inl:
+ Removed cur_size method, current_size does the same and is
+ public
+
+ * ace/Log_Msg.cpp:
+ Layout change
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ If we don't receive the exact number of bytes with spipe stream
+ see that as error
+
+Mon Feb 16 10:57:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Msg_IPC.cpp:
+ Check all stream insertion return values
+
+Sat Feb 14 14:53:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Msg.cpp:
+ Print null if we get a nill string for a %p format specifier instead
+ of causing a crash. This fixes bugzilla 3571
+
+ * tests/Log_Msg_Test.cpp:
+ Extended this test.
+
+Fri Feb 13 13:30:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Dev_Poll_Reactor.cpp
+ * ace/Log_Msg.cpp
+ * ace/MEM_Acceptor.cpp
+ * ace/MMAP_Memory_Pool.cpp
+ * ace/POSIX_Asynch_IO.cpp
+ * ace/POSIX_CB_Proactor.cpp
+ * ace/POSIX_Proactor.cpp
+ * ace/Registry_Name_Space.cpp
+ * ace/Remote_Tokens.cpp
+ * ace/Service_Config.cpp
+ * ace/Service_Gestalt.cpp
+ * ace/Shared_Memory_Pool.cpp
+ * ace/SOCK_Dgram_Bcast.cpp
+ * ace/SUN_Proactor.cpp
+ * ace/TLI.cpp
+ Use ACE_TEXT() with %p in ACE_DEBUG/ACE_ERROR. The log string
+ passed to ACE_DEBUG/ACE_ERROR is converted automatically to
+ unicode in an unicode build. The %p expects an unicode string,
+ if a plain ascii string is passed in, this is just handled as
+ unicode string and could lead to a crash because then we are
+ just reading random memory
+
+Fri Feb 13 12:18:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ * netsvcs/lib/Server_Logging_Handler_T.cpp:
+ Log a message when insert/extract fails
+
+Fri Feb 13 11:12:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ * netsvcs/lib/Server_Logging_Handler_T.cpp:
+ When demarshaling fails return 0 instead of -1. That keeps the
+ event handler registered with the reactor for the next log
+ message.
+
+Thu Feb 12 07:33:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-common.h:
+ * ace/os_include/sys/os_types.h:
+ Added ACE_LACKS_MODE_T, ACE_LACKS_CADDR_T, ACE_LACKS_NLINK_T,
+ ACE_LACKS_UID_T, and ACE_LACKS_GID_T as new defines. This makes
+ it possible for an enduser to disable the typedefs by undefining
+ these defines. Thanks to Bill Rizzi <rizzi at softserv dot com>
+ for pointing this out
+
+Wed Feb 11 22:26:26 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/LSOCK_CODgram.h: Improved the comments and usage scenario.
+
+Wed Feb 11 16:20:19 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * include/makeinclude/wrapper_macros.GNU:
+
+ Removed xerces from this file, as its no longer a feature.
+ Thanks to Adam Mitz for pointing this out.
+
+Wed Feb 11 06:59:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-msvc.h:
+ Disable msc_ver check in this file
+
+Wed Feb 11 06:52:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Fixed Red Hat detection
+
+Tue Feb 10 20:38:27 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/MakeProjectCreator/config/global.features:
+
+ Made xerces2 and xerces3 disabled by default.
+
+Tue Feb 10 20:16:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_ctype.inl:
+ * ace/Process_Manager.cpp:
+ * ace/WFMO_Reactor.cpp:
+ Updated old msvc ver checks to fix fuzz errors
+
+Tue Feb 10 18:27:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Server_Logging_Handler_T.h:
+ Doxygen change
+
+Tue Feb 10 18:26:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Changed how we detect broken GCC versions, not check on the platform
+ but check on the gcc version (RedHat 4.1.1 or 4.1.2)
+
+Tue Feb 10 18:25:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Updated for the next release
+
+Tue Feb 10 18:23:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/bczar/bczar.html:
+ Extended bczar release instructions
+
+ * bin/fuzz.pl:
+ Extended msvc_ver check
+
+ * debianbuild/control:
+ Updated for the next release
+
+Tue Feb 10 18:20:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-pharlap.h:
+ Define ACE_HAS_WINSOCK1 to 1
+
+ * ace/config-vxworks.h:
+ Added support for VxWorks 6.7
+
+ * ace/config-win32-borland.h:
+ Removed support for C++Builder 2007
+
+ * ace/os_include/sys/os_types.h:
+ * ace/OS_NS_arpa_inet.cpp:
+ * ace/OS_NS_unistd.inl:
+ Fixes for VxWorks 6.7
+
+Tue Feb 10 05:39:28 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+ revision bump.
+
+Tue Feb 10 05:08:24 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * docs/Download.html:
+ * etc/index.html:
+ * bin/diff-builds-and-group-fixed-tests-only.sh
+ Update latest micro version links and date.
+
+ * ChangeLogs/ChangeLog-09a:
+ Added this file.
+
+Mon Feb 09 12:01:28 CST 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ACE version 5.6.8 released.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/ACE/ChangeLogs/ChangeLog-2010a b/ACE/ChangeLogs/ChangeLog-2010a
new file mode 100644
index 00000000000..7200682d343
--- /dev/null
+++ b/ACE/ChangeLogs/ChangeLog-2010a
@@ -0,0 +1,2589 @@
+Wed Mar 03 01:18:08 CST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.7 released.
+
+Mon Mar 1 12:27:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/Process_Unix.pm:
+
+ Fixed 'ps' determination problems.
+
+Fri Feb 26 19:32:06 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ace/config-sunos5.5.h:
+
+ Moved #define ACE_LACKS_CEILL & ACE_LACKS_FLOORL to a
+ non-compiler-specific section.
+
+ * ace/config-sunos5.10.h:
+
+ Added #undef ACE_LACKS_CEILL & ACE_LACKS_FLOORL because they are
+ available on Solaris 10.
+
+Fri Feb 26 18:30:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_sys_time.inl:
+ Changed ACE_HAS_CLOCK_REALTIME to ACE_HAS_CLOCK_GETTIME_REALTIME
+
+Fri Feb 26 16:00:04 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * Fixed double-declaration of ACE_LACKS_CEILL and ACE_LACKS_FLOORL in:
+ Thu Feb 25 21:42:13 UTC 2010 Steve Huston <shuston@riverace.com>
+
+Fri Feb 26 15:36:12 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * tests/Bug_2609_Regression_Test.cpp: Fix unused arg warning and
+ adjust for hosts without IPv6.
+
+Fri Feb 26 14:48:01 UTC 2010 Chris Cleeland <cleeland@ociweb.com>
+
+ * tests/Timer_Queue_Test.cpp (handle_timeout): Fix unused argument
+ warning.
+
+Fri Feb 26 14:45:30 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_sys_time.inl (ACE_OS::gettimeofday): Added in support
+ for clock_gettime() if a user sets ACE_HAS_CLOCK_REALTIME in
+ their config.h file. Thanks to Patrick Soboljew <patrick dot
+ soboljew at gmail dot com> for this suggestion.
+
+Thu Feb 25 21:42:13 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * configure.ac: Use AC_CHECK_DECL rather than ACE_CHECK_LACKS_FUNCS
+ for ceill() and floorl(). On Solaris 9 the symbols show up in
+ some library (possibly as a stub) but aren't available; this
+ fools ACE_CHECK_LACKS_FUNC. There's probably a better way to
+ integrate this into ACE_CHECKS_LACKS_FUNCS but I don't know how.
+
+Thu Feb 25 22:07:25 UTC 2010 Chris Cleeland <cleeland@ociweb.com>
+
+ * tests/Timer_Queue_Test.cpp (test_interval_timer):
+
+ Added new function to test interval timing functionality in
+ preparation for merging in a fix for bug 3104. Note that while
+ bug 3104 focuses on performance issues, this test doesn't
+ specifically test performance, but rather tests that the
+ interval timer feature works properly so that we know that
+ any performance-related changes made in fixing bug 3104 don't
+ cause a regression.
+
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.cpp:
+
+ Integrate code proposed to fix bug 3104, but factored out into
+ a new method, recompute_next_abs_interval_time, so that the
+ more efficient computation can be re-used in Timer_Hash and
+ Timer_Wheel.
+
+ * ace/Timer_Queue_T.cpp (dispatch_info_i):
+
+ Change to use recompute_next_abs_interval_time.
+
+ * ace/Timer_Hash_T.cpp (expire):
+ * ace/Timer_Wheel_T.cpp (expire):
+
+ Change to use recompute_next_abs_interval_time.
+
+Thu Feb 25 20:33:27 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * tests/Bug_2609_Regression_Test.cpp: Correct to use documented ACE
+ conventions for event handler reference counting. Should resolve
+ concerns around Bugzilla 2609.
+
+Thu Feb 25 19:11:07 UTC 2010 Steven Stallion <stallions@ociweb.com>
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ Refined use of CPPFLAGS; -library will now only be applied to CC
+ invocations.
+
+Thu Feb 25 16:52:20 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Strategies_T.cpp:
+ * ace/Connector.cpp:
+ * ace/Svc_Handler.cpp:
+ * tests/run_test.lst:
+ * tests/Bug_2609_Regression_Test.cpp:
+ * tests/NonBlocking_Conn_Test.h:
+ * tests/Bug_2610_Regression_Test.cpp:
+ * tests/Process_Strategy_Test.cpp:
+ * tests/NonBlocking_Conn_Test.cpp:
+ Reverted all the changes done in attempt to fix non-blocking
+ connect test and tests for 2609/2610.
+
+Thu Feb 25 08:10:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-opensd.h:
+ #define ACE_LACKS_CEILL & ACE_LACKS_FLOORL
+
+Thu Feb 25 08:10:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-netbsd.h:
+ #define ACE_LACKS_CEILL & ACE_LACKS_FLOORL
+
+Thu Feb 25 07:51:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-WinCE.h:
+ #define ACE_LACKS_CEILL & ACE_LACKS_FLOORL
+
+Thu Feb 25 07:38:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/svcconf.mpb:
+ * ace/svcconfgen.mpc:
+ Moved regeneration support to its own file that is disabled by
+ defeault. Thanks to Joseph Sarbak <Joseph dot Sarbak at rbccm dot com>
+ for reporting this.
+
+ * bin/MakeProjectCreator/config/global.features:
+ Set ace_svcconf_gen to 0, when this is set to 1 we enable svcconf
+ regeneration
+
+Wed Feb 24 22:07:30 UTC 2010 Steven Stallion <stallions@ociweb.com>
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ Added support for alternate CC libraries.
+
+Wed Feb 24 15:15:00 UTC 2010 Simon Massey <sma at prismtech dot com>
+
+ * ace/config-lynxos.h:
+ #define ACE_LACKS_CEILL & ACE_LACKS_FLOORL
+ Correct placement of these defines for the version of Lynxos
+
+Wed Feb 24 11:41:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Added support for no_strict_aliasing, when this is set, we add
+ -fno-strict-aliasing to the compiler flags
+
+Wed Feb 24 08:45:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.lst:
+ 2434 should run now
+
+Wed Feb 24 08:41:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-hpux-11.00.h:
+ #define ACE_LACKS_CEILL & ACE_LACKS_FLOORL
+
+Wed Feb 24 08:01:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/NonBlocking_Conn_Test.cpp:
+ Unicode fixes
+
+ * tests/Atomic_Op_Test.cpp:
+ Calculate how long each test takes and print this to the log
+
+Wed Feb 24 02:48:37 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/config-sunos5.5.h:
+ #define ACE_LACKS_CEILL & ACE_LACKS_FLOORL
+
+Tue Feb 23 19:45:39 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/OS_Test.cpp: Added tests for floorl() and ceill(). Thanks
+ to Olivier Langlois <olivier at olivierlanglois dot net> for
+ this fix.
+
+Tue Feb 23 19:43:36 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * configure.ac: Added a check for ACE_CHECK_LACKS_FUNCS(floor ceil
+ floorl ceill). Thanks to Olivier Langlois <olivier at
+ olivierlanglois dot net> for this fix.
+
+Tue Feb 23 15:15:00 UTC 2010 Simon Massey <sma at prismtech dot com>
+
+ * ace/config-lynxos.h:
+ #define ACE_LACKS_CEILL & ACE_LACKS_FLOORL
+
+Tue Feb 23 08:59:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-vxworks6.4.h:
+ VxWorks lacks floorl and ceill
+
+Mon Feb 22 20:01:54 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Time_Value.{h,cpp}: Applied some patches from Olivier Langlois
+ <olivier at olivierlanglois dot net> to fix some warnings.
+
+Mon Feb 22 19:57:02 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Thread_Mutex.inl (ACE_Thread_Mutex::lock): Added a non-const
+ lock() method. Thanks to Phil for suggesting this.
+
+Mon Feb 22 18:08:20 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Condition_Recursive_Thread_Mutex.cpp (ACE_Condition): Fixed
+ a stray occurrence of the mutex() accessor that should be
+ lock(). Thanks to Phil Mesnier for reporting this.
+
+Mon Feb 22 15:00:11 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Time_Value.{h,cpp}: Reformatted/renamed the code to conform
+ to ACE programming guidelines.
+
+Mon Feb 22 13:40:14 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Condition_T.cpp: Changed the mutex() accessor to lock() to
+ be consistent.
+
+Mon Feb 22 13:39:09 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Recursive_Thread_Mutex.{h,inl}: Created a new lock() accessor
+ so it's consistent with the other synchronizer accessors in ACE.
+
+Sun Feb 21 21:25:21 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/Time_Value_Test.cpp: Added a test for the new operator<<
+ implementation for ACE_Time_Value. Thanks to Olivier Langlois
+ <olivier at olivierlanglois dot net> for contributing this.
+
+Sun Feb 21 21:28:03 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_math.{h,inl}: Added support for floor() and ceiling()
+ for long double types. Thanks to Olivier Langlois <olivier at
+ olivierlanglois dot net> for contributing this.
+
+ * ace/Time_Value.{h,cpp}: Added support for operator<< and to
+ handle long double values better. Thanks to Olivier Langlois
+ <olivier at olivierlanglois dot net> for contributing this.
+ This fixes bugid 3818 and 2434.
+
+Sun Feb 21 16:28:47 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/Recursive_Condition_Test.cpp: Revised this test so that it
+ actually uses the ACE_Condition<> template, like it says in the
+ comments..
+
+Sun Feb 21 16:20:35 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Condition_T.cpp (ACE_Condition<MUTEX>::wait): Changed the
+ call to mutex_.lock_ to mutex_.mutex() since lock_ is protected.
+ Thanks to Nick Meyer <nick dot meyer at sensis dot com> for
+ reporting this.
+
+Sun Feb 21 09:24:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ChangeLogs/*:
+ Use full year
+
+Sat Feb 20 20:26:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ Also set dds4ccm_splie to 0 by default
+
+Fri Feb 19 19:34:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ Set dds4ccm_opendds and dds4ccm_ndds to 0 by default. When
+ generating project files for dds4ccm we now have to enable
+ which dds implementation we want to use
+
+Wed Feb 17 10:02:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ Added link for MPC440 Xampler results
+
+Tue Feb 16 09:51:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_linux_common.GNU:
+ Set fox flags
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ enabled no_hidden_visibility
+
+Mon Feb 15 19:28:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec:
+ Package nslist and catior readme files
+
+Mon Feb 15 12:10:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/rules:
+ Removed some not needed steps
+
+Mon Feb 15 09:56:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * configure.ac:
+ Fixed problem with latest autoconf tools
+
+ * patches/97-fix-empty-elseif.dpatch:
+ Removed, not needed anymore
+
+Mon Feb 15 09:44:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/patches/02-fltk-no-gl.dpatch
+ * debianbuild/patches/12-fix-fox-include.dpatch
+ * debianbuild/patches/13-fix-fox-errors.dpatch
+ * debianbuild/patches/14-autoconf-tao.dpatch
+ * debianbuild/patches/26-autoupdate.diff
+ * debianbuild/patches/35-autoconf-fix-else-fi.dpatch
+ * debianbuild/patches/36-autoconf-fix-fidone.dpatch
+ * debianbuild/patches/93-hack-to-fix-libtoolize.dpatch
+ * debianbuild/patches/98-ignore-win32-acdefun-error.diff
+ * debianbuild/patches/98-ignore-win32-acdefun-error.dpatch
+ Removed, not needed anymore, merged changes to trunk
+
+Mon Feb 15 09:40:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+
+ Added support for cpumodelflag (-mcpu=) and tunemodelflag (-mtune=) flags.
+
+Mon Feb 15 09:38:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * m4/ace.m4:
+ No need to link ftlk with gl
+
+Mon Feb 15 09:35:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/FoxReactor/FoxReactor.h:
+ User has to specify the full fox path now, some distributions now ship fox-1.6 and
+ fox-1.4 as directory names
+
+Mon Feb 15 09:20:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * m4/ace_defines.m4:
+ Fixed fixes with latest releases of tools
+
+ * m4/tao.m4:
+ Added here from TAO to get the distribution to work with the latest
+ versions of autoconf tools
+
+Mon Feb 15 06:49:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * configure.ac:
+ Fixed fixes with latest releases of tools
+
+Sun Feb 14 19:46:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * configure.ac:
+ * m4/ace.m4:
+ Integrated patches from below, created by Pau Garcia i Quiles
+ <pgquiles at elpauer dot org>
+
+ * debianbuild/patches/19-gcc43.dpatch:
+ Removed, not needed anymore
+
+ * debianbuild/patches/94-build-crosscompile.dpatch:
+ * debianbuild/patches/96-build-athena3d.dpatch:
+ Removed, integrated into trunk
+
+Sun Feb 14 07:22:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/*:
+ Imported last version from Pau Garcia i Quiles
+
+Sat Feb 13 15:59:26 UTC 2010 James H. Hill <hillj at cs dot iupui dot edu>
+
+ * ace/Unbounded_Set_Ex.h:
+
+ Added STL iterator type traits support to the ACE_Unbounded_Set*
+ and its corresponding iterators.
+
+Fri Feb 12 19:19:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.h:
+ * ace/Containers_T.h:
+ Doxygen changes
+
+Fri Feb 12 17:39:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.lst:
+ 2610 is working now
+
+Fri Feb 12 14:05:21 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.cpp: Fix unused variable warning.
+
+Fri Feb 12 10:36:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-g++-common.h:
+ Expanded autodetected support for GCC builtin __sync_XXX
+ atomic op functions to the IA64 platform
+
+Thu Feb 11 22:23:08 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * THANKS:
+
+ Added Trent Nadeau <Trent dot Nadeau at ngc dot com> to the
+ hall of fame.
+
+Thu Feb 11 20:29:06 UTC 2010 Steven Stallion <stallions@ociweb.com>
+
+ * bin/MakeProjectCreator/config/global.features:
+
+ Disabled wireshark feature by default.
+
+Thu Feb 11 19:52:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/config-g++-common.h:
+
+ Expanded autodetected support for GCC builtin __sync_XXX
+ atomic op functions to all powerpc platforms.
+
+Thu Feb 11 12:18:24 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Connector.cpp:
+ Added a call to remove_reference() for a svc handler owned by
+ non-blocking connection handler during connector's close().
+
+ * ace/Svc_Handler.cpp:
+ Removed the code that removes a reference to itself. Svc_Handler
+ doesn't own that reference and thus shouldn't remove it.
+
+ * tests/Bug_2609_Regression_Test.cpp:
+ * tests/NonBlocking_Conn_Test.h:
+ * tests/Bug_2610_Regression_Test.cpp:
+ * tests/NonBlocking_Conn_Test.cpp:
+ Fixed the tests that implicitly assumed ownership of a reference
+ to a svc handler and didn't free it at the end of the test.
+
+ * tests/Process_Strategy_Test.cpp:
+ Fixed the test that was broken by my change on
+ 'Mon Feb 8 16:21:06 UTC 2010'. The test incorrectly assumed
+ that close_handle() will not be called for svc handlers in
+ a parent process.
+
+Wed Feb 10 18:39:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/config-g++-common.h:
+
+ Added logic to detect (usable) support for GCC builtin __sync_XXX
+ atomic op functions.
+
+ * ace/Atomic_Op.h:
+ * ace/Atomic_Op.inl:
+
+ Changed autodetection for GCC builtin atomic ops so it will
+ only be used when really wanted.
+ Removed include for stdatomic.h because that has nothing to do with
+ the __sync_XXX builtins but rather with a *proposed* atomic op
+ implementation for the C++1x standard. The __sync_XXX builtins are
+ truly intrinsic, i.e. no header files involved.
+
+Wed Feb 10 15:38:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE-INSTALL.html:
+ Updated C++ builder support
+
+Wed Feb 10 10:53:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.lst:
+ Marked 2610 as not fixed
+
+ * tests/Process_Strategy_Test.cpp:
+ Use prefix increment
+
+Wed Feb 10 10:45:00 UTC 2010 Simon Massey <sma at prismtech dot com>
+
+ * tests/NonBlocking_Conn_Test.h:
+ * tests/NonBlocking_Conn_Test.cpp:
+ Fixed a VC9 compilation error (IGNORE is a vc9 #define).
+
+Tue Feb 9 15:03:35 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/NonBlocking_Conn_Test.cpp (hosts): Updated the list of hosts to
+ check to include news.bbc.co.uk.
+
+Tue Feb 9 09:14:48 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/NonBlocking_Conn_Test.h:
+ Fixed a compilation error.
+
+Mon Feb 8 18:53:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.lst:
+ Enabled 2609 and 2610 again, let us see how they run with the recent
+ changes from Vladimir
+
+Mon Feb 8 16:21:06 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Strategies_T.cpp:
+ Changed the code so that close() is called in case of failure
+ instead of destroy().
+
+ * ace/Connector.cpp:
+ Changed a bit the code added by me on 'Wed Sep 2 14:45:27 UTC 2009'
+ as a fix for bug#3731. After some more thinking it turned out that
+ the original code could result in a crash when reference counting is
+ not enabled and thus svc_handler could be destroyed at the time
+ when there was an attempt to do remove_reference().
+
+ * ace/Svc_Handler.cpp:
+ Moved the code added by me on 'Thu Feb 4 11:15:57 UTC 2010'
+ from destroy() to handle_close().
+
+ * tests/NonBlocking_Conn_Test.h:
+ * tests/NonBlocking_Conn_Test.cpp:
+ Extended the test for using Svc_Handler with and without
+ reference counting.
+
+Mon Feb 8 11:35:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/ACETAOCIAO.style:
+ Updated with version 1.17 of Profactor Sylemanager
+
+Mon Feb 8 10:33:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/ETCL/ETCL_l.cpp:
+ Fixed new GCC 4.4.x warning about ignoring return values of
+ function marked by the new warn_unused_result attribute.
+
+Sat Feb 6 18:58:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * include/makeinclude/wrapper_macros.GNU:
+ Fixed missing definitions for Icecream support.
+
+Sat Feb 6 15:03:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * include/makeinclude/wrapper_macros.GNU:
+ Added support for Icecream distributed compile system.
+
+Sat Feb 6 12:58:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Reactor_Performance_Test.cpp:
+ * tests/Reactor_Fairness_Test.cpp:
+ * ASNMP/asnmp/address.cpp:
+ * examples/Reactor/Misc/pingpong.cpp:
+ More fixes for strict-aliasing warnings.
+
+Sat Feb 6 11:28:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/LSOCK.cpp:
+ Fixes for strict-aliasing warnings.
+
+Thu Feb 4 20:29:52 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * tests/Reactor_Fairness_Test.cpp: Don't try ACE_Dev_Poll_Reactor on
+ platforms without that capability; also added ACE_WFMO_Reactor to
+ the test (which triggered a crash shutting down WFMO_Reactor... I'm
+ looking into it).
+
+Thu Feb 4 15:32:24 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * tests/Reactor_Fairness_Test.cpp:
+ * tests/Reactor_Fairness_Test.h:
+ * tests/Makefile.am:
+ * tests/tests.mpc:
+ * tests/run_test.lst: New test to verify reactor fairness across a
+ set of registered I/O sockets. Tests Select, TP, Dev_Poll now.
+ TP fails fairness tests per Bugzilla 1031. Since the TP fairness
+ failure is a known issue, the new test is marked !FIXED_BUGS_ONLY.
+
+ * ace/Dev_Poll_Reactor.cpp:
+ * ace/Dev_Poll_Reactor.h: Two performance improvements to resolve
+ Bugzilla #3714:
+ 1. The notify handler is no longer suspended/resumed around
+ notify processing. This removes the biggest source of CPU
+ consumption introduced at ACE 5.7 - simply acquiring/releasing
+ the token to handle notifies, each of which triggered another
+ token acquire/notify cycle.
+ 2. As I/O handlers are suspended before callback, they are not
+ immediately resumed on callback return. Instead, they are added
+ to a "to be resumed" list that is examined just prior to the
+ next epoll_wait() call; any to-be-resumed handles are added
+ back to the epoll set just before waiting. This removes another
+ need to acquire the token just to resume a handler.
+
+Thu Feb 4 11:15:57 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Svc_Handler.cpp:
+ Fixed an unconditional delete of Svc_Handler in destroy(). If
+ reference counting is enabled then it has to do remove_reference().
+ This completes the fix for bug#3731.
+
+ * tests/NonBlocking_Conn_Test.cpp:
+ Changed www.pakarmy.gov.pk to www.pakistanarmy.gov.pk. The first
+ URL seems to be dead.
+
+Thu Feb 4 10:53:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/Process_Unix.pm:
+
+ Fixed problems concerning correct retrievel of process list.
+
+Thu Feb 3 09:57:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.inl:
+ Added support for the GCC Atomic Builtins, if you want to
+ use these, add ACE_HAS_GCC_ATOMIC_BUILTINS defined as 1 in
+ your config file
+
+ * ace/Reactor.cpp:
+ * ace/Select_Reactor_Base.cpp:
+ Layout changes
+
+ * ace/Reactor.h:
+ Doxygen change
+
+Tue Feb 2 19:57:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/TestTarget_WinCE.pm:
+ * bin/PerlACE/Process_Unix.pm:
+ * bin/PerlACE/ProcessLVRT.pm:
+ * bin/PerlACE/TestTarget.pm:
+ * bin/PerlACE/TestTarget_VxWorks.pm:
+ * bin/PerlACE/ProcessVX.pm:
+ * bin/PerlACE/TestTarget_LVRT.pm:
+ * bin/PerlACE/Process_Win32.pm:
+ * bin/PerlACE/Process_VMS.pm:
+
+ Added killall methods to the Process and Target frameworks.
+ Currently only full implementation on Win32 and *nix platforms
+ (empty on others).
+
+Tue Feb 2 19:52:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ Updated link to Cell results
+
+Mon Feb 1 23:16:24 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Acceptor.h: Fixed up doxygen for ACE_Oneshot_Acceptor.
+
+Tue Jan 26 03:56:45 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Init_ACE.h: Updated the documentation of ACE::init() and
+ ACE::fini() so it reflects what ACE actually does. Thanks to
+ Steve Huston, Andrew Kaplan <alexande dot kaplan at tafcorp dot
+ com>, and Alexander Mintz <alexande dot mintz at tafcorp dot
+ com> for motivating this update.
+
+Mon Feb 1 17:35:08 UTC 2010 Chris Cleeland <cleeland_c@local>
+
+ * ace/Obstack_T.h:
+ * ace/Obstack_T.inl:
+ * ace/Obstack_T.cpp:
+ * ace/SStringfwd.h:
+ * ace/String_Base.h:
+ * ace/String_Base.inl:
+ * ace/String_Base.cpp:
+ * ace/Tokenizer_T.h:
+ * ace/Tokenizer_T.cpp:
+
+ Integrated changes originally done in OCITAO 1.4a by Steve Totten
+ to fulfill [RT 13868].
+
+ Wed Feb 1 10:40:35 2006 Steve Totten <totten_s@ociweb.com>
+
+ Changed the use of "CHAR" as a template parameter to "ACE_CHAR_T" to
+ avoid possible clash with "CHAR" used as a preprocessor macro.
+ Thanks to Jennifer Kahng <jennifer dot kahng at lmco dot com> for
+ reporting the problem. This change resolves [RT 8287].
+
+Mon Feb 1 11:21:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Connector.cpp:
+ Const change
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * etc/index.html:
+ * docs/Download.html:
+ Updated because of recent release
+
+ * tests/NonBlocking_Conn_Test.cpp:
+ Improved this test so that it really tests the connections
+
+ * tests/tests.mpc:
+ Bug_3709_Regression itselfs checks now for vc71
+
+ * ace/Reactor.h:
+ Doxygen fixes
+
+Sun Jan 31 01:04:43 CST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.6 released.
+
+Fri Jan 29 14:24:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/bczar/bczar.html:
+ Extended release steps
+
+Thu Jan 28 16:26:28 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ When building for the Simulator, there is no need to
+ set things as a cross-build and set HOST_ROOT environment
+ variable.
+
+Thu Jan 28 15:11:18 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ACE-INSTALL.html:
+
+ Updated with information on how to build ACE for
+ iPhone/iPod Touch/iPad Simulator and Hardware.
+
+Thu Jan 28 12:49:45 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * NEWS:
+
+ ACE/TAO now supports the new iPad ;-).
+
+Thu Jan 28 10:21:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Corrected fix for cross compilation on powerpc64.
+ Now also allows for non-standard named crosscompilers (like ppu-xx)
+ and cross compilation of non-powerpc target on powerpc host.
+
+Thu Jan 28 08:21:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Fix for cross compilation to powerpc64
+
+Wed Jan 27 22:36:36 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/platform_win32_msvc.GNU:
+
+ Trim trailing slashes from libpath entries.
+
+ * tests/Bug_3709_Regression_Test.cpp:
+
+ This test doesn't compile on MSVC 7.1.
+
+Wed Jan 27 05:33:56 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/config-macosx-iphone-hardware.h:
+
+ undefined ACE_HAS_SYSV_IPC, it doesn't seem that the
+ iphone-hardware platform supports it.
+
+Tue Jan 26 22:55:18 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/config/ace_mc.mpb:
+
+ Assign to LDLIBS along with ACE_SHLIBS. ACE_SHLIBS is only used
+ when building a shared library, LDLIBS is used for an executable.
+
+Tue Jan 26 19:53:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Process_Test.cpp:
+ Log some more details to get an insight why this test fails on
+ some systems
+
+Tue Jan 26 18:04:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_rel_manpages:
+ Doxygen is upgraded to 1.6.2
+
+Tue Jan 26 17:02:51 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.cpp (unbind_all): When shutting down, call
+ handle_close() on all registered handlers. Fixes Bugzilla 2750.
+
+Tue Jan 26 13:27:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux_common.GNU:
+ tao_idl3_to_idl2 is located in HOST_ROOT/TAO/CIAO/bin with
+ cross compilation
+
+Tue Jan 26 12:52:57 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/config-macosx-leopard.h:
+
+ Added ACE_HAS_NET_IF_DL_H macro.
+
+ * ace/os_include/net/os_if.h:
+
+ Removed hardcoding of ACE_HAS_IPHONE and ACE_HAS_MAC_OSX
+ checks. If the platform defines ACE_HAS_NET_IF_DL_H macro,
+ then <net/if_dl.h> will be included.
+
+Tue Jan 26 04:35:17 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/config-macosx-leopard.h:
+
+ Added ACE_HAS_MAC_OSX macro.
+
+ * ace/OS_NS_netdb.cpp:
+ * ace/os_include/net/os_if.h:
+
+ Enabled ACE_OS::getmacaddress() for Mac OSX as well.
+ It uses exactly the same code as the iPhone's addition below.
+
+Tue Jan 26 04:18:54 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/OS_NS_netdb.cpp:
+
+ Implement ACE_OS::getmacaddress() for iPhone. The same implementation
+ will probably work on Mac OS X as well. I will verify this in the
+ future.
+
+ * ace/os_include/net/os_if.h:
+
+ Added "#include <net/if_dl.h>" to this file if ACE_HAS_IPHONE
+ is defined. The ACE_OS::getmacaddress() depends on this include
+ include file.
+
+Mon Jan 25 18:58:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/MEM_IO.cpp
+ Added casts to fix CB2010 warnings
+
+Mon Jan 25 18:49:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SPIPE_Stream.inl:
+ Added casts to fix CB2010 warnings
+
+Mon Jan 25 14:51:09 UTC 2010 Chad Elliott <elliott_c@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Modified to best handle dependencies with a space or $(...) in
+ them. A GNU make substitute function call is used to escape
+ spaces.
+
+Mon Jan 25 09:24:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+ iPhone lacks rwho
+
+Sat Jan 23 18:48:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_2434_Regression_Test.cpp:
+ * tests/Time_Value_Test.cpp:
+ Moved another failing test to the bug_2434 file
+
+Sat Jan 23 13:53:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Thread_Attrs_Test.cpp:
+
+ Changed test to check only if resulting stack size is
+ *at least* as large as requested.
+ As the Posix docs say that the size set for the threads stack
+ will be the *minimum* size allocated (the actual size may f.i. be
+ bigger because of a) pagesize rounding, b) guardsize addition)
+ this is the best we can do without konowing the exact algorithm
+ used by the pthread implementation.
+ Also see this https://bugzilla.redhat.com/show_bug.cgi?id=435337
+ for more information.
+
+Fri Jan 22 10:38:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * config-linux-common.h:
+
+ Added fix for mismatch of ACE_SIZEOF_LONG_DOUBLE on Linux ppc
+ 32bit platforms (sizeof(long double) = 128 bit).
+
+Fri Jan 22 08:48:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Time_Value_Test.cpp:
+ Removed not used variable
+
+Thu Jan 21 23:16:27 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/CDR_Stream.cpp:
+
+ Fixed the read_8 and write_8 methods for the iPhone Hardware.
+ The iPhone Hardware (ARM architecture) has the same memory
+ layout as Intel targets, and no conversion or swapping is
+ necessary. Double values sent from Windows to iPhone Hardware
+ were messed up before this fix due to unnecessary conversion.
+
+ * ace/config-macosx-iphone-hardware.h:
+ * ace/config-macosx-iphone-simulator.h:
+
+ Added ACE_HAS_IPHONE macro.
+
+Thu Jan 21 16:33:37 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ Removed the hardcoding of -DACE_AS_STATIC_LIBS and
+ -DTAO_AS_STATIC_LIBS to CFLAGS and CXXFLAGS and instead
+ added static_libs_only=1. That fixes the problem. Thanks
+ to Johnny Willemsen for the tip.
+
+Thu Jan 21 15:25:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Multicast_Test.cpp:
+ Fixed a Linux specific problem where certain Linux flavors use
+ VERY strict rules concerning multicast communications and where
+ using the (system defined) defaults for the network interface
+ used for multicast sending/receiving does not provide a
+ matching setup (i.e. resulting if used for sending does not
+ match the if used for receiving -> nothing received).
+ The fix simply forces a fixed 'lo' interface to be used for
+ sending and receiving.
+
+Thu Jan 21 14:57:57 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ Added -DACE_AS_STATIC_LIBS and -DTAO_AS_STATIC_LIBS to the CFLAGS
+ and CXXFLAGS variables to allow more tests to pass on the iPhone
+ Simulator. This hardcoding is obviously the wrong thing to do,
+ and needs to be fixed in the future. For some reason, when building
+ a static executable those macros are missing.
+
+Thu Jan 21 08:13:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Time_Value_Test.cpp:
+ * tests/tests.mpc:
+ * tests/run_test.lst:
+ * tests/Bug_2434_Regression_Test.cpp:
+ Moved the 64bit overflow test which fails on 64bit systems to
+ its own file and marked that as not fixed
+
+ * tests/Multicast_Test.cpp:
+ Const changes
+
+Tue Jan 19 13:24:02 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * tests/Bug_2980_Regression_Test.cpp:
+ Added missing #include <string.h>.
+
+Mon Jan 18 17:57:47 UTC 2010 James H. Hill <hillj at cs dot iupui dot edu>
+
+ * ace/UUID.h:
+
+ Included Auto_Ptr.h since it is not included by other included
+ header files and in breaking builds if UUID.h is included before
+ including another file that does include Auto_Ptr.h
+
+Mon Jan 18 13:47:53 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/ace_for_tao.mpc: Added Message_Queue_NT.cpp in this file since
+ it seems to be needed for the ACE_FOR_TAO subset.
+
+Fri Jan 15 10:27:30 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Define __NO_INCLUDE_WARN__ before including param.h.
+ Fixes compile warnings.
+
+Fri Jan 15 10:22:06 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/Registry.cpp:
+ Fixed g++ 4.x compile warning on MinGW.
+
+Fri Jan 15 10:19:48 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-common.h:
+ Simplified setting of ACE_HAS_NONSTATIC_OBJECT_MANAGER.
+
+Fri Jan 15 04:19:45 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue_T.cpp: Readded
+
+ #if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+ #include "ace/Message_Queue_NT.h"
+ #endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
+ to fix a compile error on MinGW. Thanks to Olli Savia
+ <ops@iki.fi> for this fix.
+
+Fri Jan 15 04:18:17 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue_NT.cpp: Added
+
+ #include "ace/Message_Queue.h"
+
+ to fix a compile error on MinGW. Thanks to Olli Savia
+ <ops@iki.fi> for this fix.
+
+Fri Jan 15 04:17:06 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue.h: Once again removed
+
+ #if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+ #include "ace/Message_Queue_NT.h"
+ #endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
+ from this file..
+
+Fri Jan 15 04:14:49 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/config-win32-common.h: Changed the definition
+
+ # define ACE_HAS_NONSTATIC_OBJECT_MANAGER
+
+ to
+
+ # define ACE_HAS_NONSTATIC_OBJECT_MANAGER 0
+
+ to fix a compile error on MinGW. Thanks to Olli Savia
+ <ops@iki.fi> for this fix.
+
+Fri Jan 15 01:01:02 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * tests/Thread_Attrs_Test.cpp:
+
+ Slight modification to allow this test to pass on the iPhone
+ builds. Changed the spanwed thread's size from 42k to 40k.
+
+ According to Apple's Documentation: "The minimum allowed stack
+ size for secondary threads is 16 KB and the stack size must be
+ a multiple of 4 KB." My change make the stack size a multiple
+ of 4k. Below is a reference to the Apple documentation for the
+ iPhone where I got the quote.
+
+ http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html
+
+Thu Jan 14 20:06:49 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ Added "CROSS-COMPILE=1" to the top of the file.
+
+Thu Jan 14 20:02:41 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/OS_NS_Thread.cpp (add_to_argv): Replaced a call to strcpy()
+ with memmove() to avoid problems due to overlap with the
+ parameters. Thanks to Guillaume Lahaye <Guillaume dot Lahaye at
+ nuance dot com> for reporting this.
+
+Thu Jan 14 13:04:19 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/OS_Test.cpp:
+ Unicode fix
+
+Wed Jan 13 21:20:42 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ Removed ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS and
+ ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS. These are no longer used.
+
+Wed Jan 13 21:18:42 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * tests/Reference_Counted_Event_Handler_Test.cpp:
+ Fixed typo.
+
+Wed Jan 13 14:40:35 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue.h: Moved
+
+ #if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+ #include "ace/Message_Queue_NT.h"
+ #endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
+ back to this file based on comments from Arto.
+
+Wed Jan 13 13:51:54 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue_T.cpp: Moved
+
+ #if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+ #include "ace/Message_Queue_NT.h"
+ #endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
+ to outside the versioned namespace block. Thanks to Johnny for
+ reporting this.
+
+Wed Jan 13 09:03:19 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Only check run*.pl files when the filenames starts with run
+
+Wed Jan 13 06:45:19 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/sys/os_types.h:
+ * ace/OS_NS_arpa_inet.cpp:
+ * ace/OS_NS_unistd.inl:
+ VxWorks 6.8 fixes
+
+ * ace/UUID.cpp:
+ Only one exit point for operator=, const change, initialise pointer with 0
+
+Wed Jan 13 03:24:06 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue.h,
+ * ace/Message_Queue_T.cpp: Moved the code
+
+ #if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+ #include "ace/Message_Queue_NT.h"
+ #endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
+ from ace/Message_Queue.h to ace/Message_Queue_T.cpp since that
+ is more localized.
+
+Wed Jan 13 02:54:10 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/XtReactor/XtReactor.cpp: Removed stray tabs. Thanks to
+ Johnny for reporting this.
+
+Tue Jan 12 20:25:19 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Disable run_test.pl checking for some directories that
+ aren't converted yet
+
+Tue Jan 12 19:52:04 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/Time_Value.inl:
+ Fixed typo.
+
+ * ace/config-openbsd.h:
+ Removed ACE_LACKS_STRFTIME.
+
+Tue Jan 12 19:41:07 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-integritySCA.h:
+ Removed ACE_LACKS_FILE_FCNTL. It is no longer used.
+
+Tue Jan 12 19:36:32 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Removed ACE_LACKS_EXECINFO_H. It is no longer used.
+
+Tue Jan 12 19:33:25 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/os_include/netinet/os_tcp.h:
+ * configure.ac:
+ Fixed typo.
+
+Tue Jan 12 19:28:32 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-integritySCA.h:
+ Removed ACE_LACKS_USER. It is no longer used.
+
+Tue Jan 12 19:24:54 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-netbsd.h:
+ Removed ACE_LACKS_WSCANF. It is no longer used.
+
+Tue Jan 12 19:22:23 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-mvs.h:
+ Removed ACE_LACKS_SYS_NERR. It is no longer used.
+
+Tue Jan 12 19:19:26 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-netbsd.h:
+ Removed ACE_LACKS_SWSCANF. It is no longer used.
+
+Tue Jan 12 19:15:19 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdlib.h:
+ Fixed typo.
+
+ * ace/README:
+ Removed ACE_LACKS_SID and ACE_LACKS_STRCHR.
+ These are no longer used.
+
+ * ace/config-integritySCA.h:
+ Removed ACE_LACKS_SHARED_MEMORY. It is no longer used.
+
+Tue Jan 12 19:04:15 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-mvs.h:
+ Removed ACE_LACKS_MSGBUF_T. It is no longer used.
+
+Tue Jan 12 18:52:21 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ Removed ACE_LACKS_CMSG_DATA_MACRO and ACE_LACKS_CMSG_DATA_MEMBER.
+ These are no longer used.
+
+Tue Jan 12 14:18:58 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/CDR_Base.h:
+ Removed obsolete comment.
+
+ * ace/config-lynxos.h:
+ Minor cleanup.
+
+Mon Jan 11 13:53:54 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/XtReactor/XtReactor.{h,cpp}: Added a fix for BugID 3775.
+ Thanks to Dirk Bonekaemper <dirk dot bonekaemper at dfs dot de>
+ for this fix.
+
+Mon Jan 11 02:24:01 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/config-macros.h (ACE_WIN32CALL_RETURN): Changed
+
+ TYPE ace_result_ = (TYPE) X; \
+
+ to
+
+ TYPE ace_result_; \
+ ace_result_ = (TYPE) X; \
+
+ to fix a compile error on MinGW. Thanks to Arto Jalkanen
+ <ajalkane at gmail dot com> for this fix.
+
+Mon Jan 11 02:20:09 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Message_Queue.h: Added
+
+ #if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+ #include "ace/Message_Queue_NT.h"
+ #endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
+ to fix a compile error on MinGW. Thanks to Arto Jalkanen
+ <ajalkane at gmail dot com> for this fix.
+
+Tue Jan 12 04:12:41 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/config-macosx-iphone-hardware.h:
+ * ace/config-macosx-iphone-simulator.h:
+
+ Split the below file to the two files listed above.
+
+ * ace/config-macosx-iphone.h:
+
+ Removed this file.
+
+Tue Jan 12 02:10:48 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ crt1.10.6.o is missing under MacOSX 10.6 for iPhone Simulator.
+ Fallback to 10.5 until apple provides the missing crt1.10.6.o
+
+Sat Jan 9 00:42:55 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/config-macosx-iphone.h:
+
+ added "#define ACE_SIZEOF_LONG_DOUBLE 8" since this is the size
+ of long double on my iPhone 3GS. The value of long double in the
+ simulator is probably different. We need to adjust this once
+ we verify that the simulator value is different than the
+ hardware's value.
+
+Wed Jan 6 05:25:26 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ When building an executable for the iPhone Hardware (not simulator)
+ go ahead and automatically codesign the executable so it can be
+ deployed on the hardware. Note that this is a temporary hack until
+ I can figure the proper way to do this.
+
+Wed Jan 6 04:28:23 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ Minor enhancement.
+
+Mon Jan 4 20:09:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec
+ Also dump lsb_release info
+
+Fri Jan 1 03:09:45 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * Happy New Year everyone!!!
+
+Thu Dec 31 20:54:51 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/High_Res_Timer.cpp (get_cpuinfo): Don't use a CPU MHz value 0.
+ I got a customer report with a real cpuinfo file showing 0.
+
+Thu Dec 31 17:46:10 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * bin/MakeProjectCreator/config/ace_fl.mpb: Rather than add
+ PLATFORM_GL_LDFLAGS twice, one should be PLATFORM_X11_LDFLAGS.
+ Thanks to Aaron Scamehorn for catching this.
+
+Thu Dec 31 17:24:14 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * include/makeinclude/wrapper_macros.GNU: If both static_libs_only
+ and shared_libs_only are set, report the error and stop. Thanks to
+ Howard Finer for reporting this.
+
+Thu Dec 31 12:27:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Fixed fuzz check for Spawn with Stop
+
+Wed Dec 30 08:41:03 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Sig_Handler.cpp:
+ Do not use SA_SIGINFO on LynxOS.
+
+Thu Dec 24 10:55:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/RPC/run_test.pl
+ * performance-tests/SCTP/run_spectrum.pl
+ * performance-tests/TCP/run_test.pl
+ * performance-tests/UDP/run_test.pl
+ Fuzz fixes
+
+Thu Dec 24 10:49:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * protocols/tests/HTBP/ping/run_test.pl
+ * protocols/tests/HTBP/Reactor_Tests/run_test.pl
+ * protocols/tests/HTBP/Send_Large_Msg/run_test.pl
+ * protocols/tests/HTBP/Send_Recv_Tests/run_test.pl
+ * tests/run_test.pl
+ Fixed fuzz
+
+Thu Dec 24 10:20:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/gperf/src/Bool_Array.h:
+ * apps/gperf/src/Key_List.h:
+ Fixes for C++ Builder 2010 Update 4/5
+
+Thu Dec 24 09:54:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_string.cpp:
+ Const changes, layout changes, call ACE_OS::strncat instead of
+ strncat directly
+
+ * ace/Log_Msg.cpp:
+ * ace/Log_Msg.h:
+ Const changes
+
+ * ace/config-win32-borland.h:
+ C++ Builder 2010 has a broken wcsncat, reported as QC80630, for
+ this version we now enable the ACE emulation for wcsncat
+
+ * ace/OS_NS_wchar.cpp:
+ Initialise some pointers with 0
+
+Mon Dec 21 11:29:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Fixed error message and added a test for generated file headers
+
+Mon Dec 21 11:26:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/bootstrap:
+ Invoke autoupdate as part of this script
+
+Sun Dec 20 07:58:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/checked_iterator.h:
+ stl port doesn't have a checked iterator. This fixes bugzilla
+ 3799 and 3420. Thanks to <sailzeng at tencent dot com> and
+ Mark Hebbel <Mark dot Hebbel at baslerweb dot com> for
+ reporting this
+
+Fri Dec 18 17:40:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ Added IgnoreHostRoot
+
+Fri Dec 18 12:55:00 UTC 2009 Martin Corino <mcorino@remedy.nl>
+
+ * NEWS:
+ Updated fixed bugzilla entries.
+
+Thu Dec 17 12:29:00 UTC 2009 Martin Corino <mcorino@remedy.nl>
+
+ * ace/INET_Addr.inl:
+ Fixed bug in ::is_multicast() for little-endian platforms.
+ This fixes Bugzilla #3729.
+
+ * tests/Bug_3729_Regression_Test.cpp:
+ Fixed typo in logfile name.
+
+ * tests/run_test.lst:
+ Removed !FIXED_BUGS_ONLY for Bug_3729_Regression_Test.
+
+Wed Dec 16 11:24:00 UTC 2009 Martin Corino <mcorino@remedy.nl>
+
+ * ACE_wrappers/ace/Log_Msg.h:
+ Updated doxygen docu regarding additions to %D and %T
+ options.
+
+Wed Dec 16 09:09:00 UTC 2009 Martin Corino <mcorino@remedy.nl>
+
+ * ACE_wrappers/ace/ACE.h:
+ * ACE_wrappers/ace/ACE.cpp:
+ * ACE_wrappers/ace/Log_Msg.cpp:
+ Added option to print a given ACE_Time_Value in the log
+ message instead of system supplied timestamp as in %T
+ and %D.
+ The option is implemented as a variant of the %D/%T
+ options by using the '#' flag character like '%#D' or
+ '%#T'. When using this flag an ACE_Time_Value pointer is
+ expected in the argument list supplied with the log message.
+ This fixed Bugzilla #3221.
+
+ * ACE_wrappers/tests/Log_Msg_Test.cpp:
+ Added some testlines for this option.
+
+Mon Dec 14 14:58:05 UTC 2009 Abdul Sowayan <sowayan@gmail.com>
+
+ * NEWS:
+
+ Updated to note iPhone/iPod Touch support.
+
+Mon Dec 14 11:21:46 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ Updated link to PS3/IBM Cell performance graphs
+
+Mon Dec 14 10:58:46 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Export/run_test.pl:
+ Fixed fuzz error
+
+Sun Dec 13 22:38:13 UTC 2009 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ Changed to allow iPhone Hardware compiler to generate executables.
+
+Sun Dec 13 18:30:26 UTC 2009 Abdul Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ Enhanced iPhone support. Now we can build for the iPhone
+ Hardware target in addition to the simulator.
+
+Sat Dec 12 15:40:13 UTC 2009 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/config-macosx-iphone.h:
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ First cut at supporting iPhone 3.1.2. These files need
+ some cleanup. With these files, using the iPhone simulator
+ I was able to spawn ACE Threads, print ACE Logs messages,
+ and communicate between the the iPhone simulator and a
+ Windows machine using CORBA.
+
+Thu Dec 10 20:03:58 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Improved error message
+
+Thu Dec 10 15:37:58 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/ACETAOCIAO.style:
+ Small updates
+
+Thu Dec 10 15:10:58 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Check all run_*.pl files for fuzz
+
+Thu Dec 10 13:07:58 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-borland.h:
+ Removed hard supported version check
+
+Wed Dec 9 10:52:26 UTC 2009 Denis Budko <denis.budko@remedy.nl>
+
+ * bin/fuzz.pl:
+
+ Updated conditions for new framework
+
+Mon Dec 7 16:09:18 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/Basic_Types_Test.cpp: Add a verification for the endianness
+ setting.
+
+Mon Dec 7 07:40:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/bmake.features:
+ Disable mcpp for bmake
+
+Fri Dec 4 23:24:21 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * bin/MakeProjectCreator/config/global.features:
+
+ Added mpc feature to optionally turn on the indirection
+ support on valuetype outgoing message. It defaults to
+ be enabled. To be compatible with previous version TAO,
+ it needs run mwc.pl with
+ "-features valuetype_out_indirection=0" to disable it.
+
+Fri Dec 4 17:25:32 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * NEWS:
+
+ Removed entry for member validation feature in LoadBalancer as it
+ should be in TAO NEWS.
+
+Fri Dec 4 13:19:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ Added link for IBM Cell xampler performance stats
+
+Fri Dec 4 10:20:23 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * bin/fuzz.pl:
+ Removed -v option. The information which is generated
+ by -v should always be visible.
+
+Fri Dec 4 07:30:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-borland.h:
+ CB2010 fix
+
+Thu Dec 3 11:59:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Check CIAO_TRACE macros and put all run_*.pl files in a separate
+ list
+
+Wed Dec 2 18:17:04 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * NEWS:
+
+ Added entry for member validation feature in LoadBalancer.
+
+Wed Dec 2 13:46:00 UTC 2009 Martin Corino <mcorino@remedy.nl>
+
+ * debianbuild/{all files containign version numbers}:
+ Updated to latest micro release.
+
+Wed Dec 2 13:30:00 UTC 2009 Martin Corino <mcorino@remedy.nl>
+
+ * bin/make_release.py:
+ Added code to update version numbers in ACE_ROOT/debianbuild files
+ on release.
+ Changed to retrieve repo root by default from info of working copy.
+
+Wed Dec 2 07:51:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/copy-script.sh:
+ Also copy md5 files
+
+ * bin/MakeProjectCreator/config/bmake.features:
+ Enable mcpp for bmake
+
+Thu Nov 26 02:08:59 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * Gaurav Kulshreshtha is the 2300th contributor to ACE+TAO+CIAO!
+
+Mon Nov 30 19:11:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/gperf/src/Bool_Array.h:
+ * apps/gperf/src/Key_List.h:
+ C++ Builder 2010 fixes
+
+Mon Nov 30 14:02:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Process.cpp:
+ * ace/Process.h:
+ Fixed gcc warnings
+
+Mon Nov 30 12:38:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-borland.h:
+ Started port to C++ Builder 2010, older versions of C++ Builder are
+ now deprecated
+
+ * ace/MMAP_Memory_Pool.cpp:
+ Layout change
+
+ * ace/OS_NS_sys_time.h:
+ * ace/OS_NS_sys_time.inl:
+ Removed workarounds for ancient wince versions
+
+ * ace/Process.cpp:
+ * ace/Process.h:
+ Use bool and size_t and removed some ugly casts
+
+ * ace/Trace.cpp:
+ * ace/Trace.h:
+ Use bool
+
+Mon Nov 30 10:53:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/patches/18-fix-bswap-detection.dpatch:
+ * debianbuild/patches/22-tao_idl-64bit-fix.dpatch:
+ Removed, not needed anymore
+
+Mon Nov 30 10:08:00 UTC 2009 Martin Corino <mcorino@remedy.nl>
+
+ * include/makeinclude/platform_linux_common.GNU:
+
+ Added some rules to support cross builds.
+ Setting the environment variable (or make variable) CROSS_COMPILE
+ to the platform tool prefix will redefine the CC, CXX and AR
+ variables and add a '-Wl,-rpath-link' option to the LDFLAGS.
+ If the HOST_ROOT variable has been set as well TAO_IDLxxx variables
+ will be redefined as well.
+
+Mon Nov 30 08:58:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * bin/Download.html:
+ updated for x.7.5
+
+ * bin/make_release.py
+ * rpmbuild/ace-tao-ciao.spec
+ * rpmbuild/ace-tao.spec
+ Updated to match opensuse build service
+
+ * docs/svn/svn-prefs.reg:
+ Added idl3+
+
+ * etc/index.html:
+ Added 5.7.5
+
+Sun Nov 29 13:06:02 CST 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.5 released.
+
+Thu Nov 26 12:33:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Message_Queue_Test.cpp:
+ Fixed msvc warning
+
+Thu Nov 26 04:19:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/Message_Queue_Test.cpp:
+
+ Attempt to resolve warning for MSVC.
+
+Tue Nov 24 09:39:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Tokenizer_T.cpp:
+ Check if buffer_ is not nil
+
+ * bin/fuzz.pl:
+ Export files shouldn't be in the ciao repository anymore, all
+ should be generated by TAO_IDL
+
+Mon Nov 23 10:56:18 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * THANKS:
+ Added Wolfgang Pickartz.for solving a TAO_IDL compiler
+ issue.
+
+Mon Nov 23 07:53:57 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/changelog:
+ * debianbuild/control:
+ * debianbuild/dsc:
+ * debianbuild/rules:
+ Imported last version from debian
+
+Thu Nov 19 20:29:57 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Log_Msg_NT_Event_Log.cpp (ACE_Log_Msg_NT_Event_Log::log):
+ Added checks to ensure that log() works properly if the msg_data
+ size is greater than ACE_Log_Record::MAXLOGMSGLEN. Thanks to
+ Gaurav Kulshreshtha <gaurav dot kulshreshtha at onmobile dot
+ com> for contributing this fix.
+
+Fri Nov 20 08:45:52 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Log_Msg.cpp:
+ Updated documentation for '%S' modifier.
+
+Fri Nov 20 07:06:04 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Sig_Handler.cpp:
+ Reverted: Sun Nov 1 16:47:29 UTC 2009 Olli Savia <ops@iki.fi>
+
+Thu Nov 19 14:08:29 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Sig_Handler.cpp:
+ Reverted: Mon Nov 2 08:36:24 UTC 2009 Olli Savia <ops@iki.fi>
+
+Wed Nov 19 09:45:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-WinCE.h:
+ Only define FILE_MAP_COPY when it is not defined yet
+
+Mon Nov 16 14:40:42 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_win32_interix.GNU:
+ * ace/config-win32-interix.h:
+ * ace/os_include/sys/os_types.h:
+ Updated Interix support.
+
+Sun Nov 15 08:09:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/*:
+ Renamed all files for x.7.4
+
+Fri Nov 13 19:38:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Sys::Hostname shouldn't be used in a test script, use HostName on
+ the test target instead
+
+Fri Nov 13 01:54:01 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * include/makeinclude/platform_macosx_common.GNU:
+ * include/makeinclude/platform_macosx_snowleopard.GNU:
+
+ Added support for buildbits=universal for building 32/64 bit
+ universal binaries with GCC.
+
+Fri Nov 13 01:12:33 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * include/makeinclude/platform_macosx_common.GNU:
+
+ Fixed 32 bit support.
+
+Fri Nov 13 00:33:49 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * ace/Logging_Strategy.h:
+ * ace/Logging_Strategy.cpp:
+
+ Added static service declaration and definition to fix loading
+ issue in TAO Service (e.g Notify) in static builds.
+
+Thu Nov 12 15:53:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Exteded perl fuzz checks
+
+Thu Nov 12 08:31:00 UTC 2009 Denis Budko <denis.budko@remedy.nl>
+
+ * docs/run_test.txt
+ Added description of TestTarget::HostName() function usage
+
+Thu Nov 12 06:54:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Default_Constants.h:
+ * ace/OS_NS_fcntl.h:
+ * ace/RW_Process_Mutex.h:
+ Moved all constants to Default_Constants.h
+
+Wed Nov 11 14:57:15 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/run_test.lst:
+ Run Network_Adapters_Test and SOCK_Dgram_Bcast_Test on LynxOS.
+
+Wed Nov 11 13:49:11 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ Added ACE_HAS_SIGISMEMBER_BUG.
+
+Wed Nov 11 12:07:36 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * bin/fuzz.pl:
+ Added strsignal to functions that is checked
+ for the lack of ACE_OS.
+
+Wed Nov 11 11:45:23 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.h:
+ Doxygen updates.
+
+Wed Nov 11 11:36:26 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.inl:
+ * ace/config-lynxos.h:
+ * ace/os_include/os_signal.h:
+ * configure.ac:
+ * m4/config_h.m4:
+ * m4/platform.m4:
+ Renamed ACE_HAS_LYNXOS_SIGNALS to ACE_HAS_LYNXOS4_SIGNALS.
+
+Wed Nov 11 09:36:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Extended Id check to detect Id:
+
+Wed Nov 11 03:07:32 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * include/makeinclude/platform_macosx_snowleopard.GNU:
+
+ Add support for building 32 bits.
+
+Tue Nov 10 21:03:25 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/sets-manager.py:
+
+ bugfix for windows. note that cleaning up the temp directory doesn't
+ work on windows, that will need to be done by hand.
+
+Tue Nov 10 12:17:33 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Check for hardcoded timeouts, thanks to Chad for assisting with this
+
+Tue Nov 10 12:10:33 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ ACE_RUN_VX_TGTHOST shouldn't be used in a test script
+
+Tue Nov 10 06:31:33 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Message_Queue_T.cpp (enqueue_*): When enqueuing blocks, grab the
+ notifier pointer before releasing the guard; check it and do any
+ needed notify() outside the lock scope. Avoids dereferencing 'this'
+ when the message queue is deleted between the time the guard is
+ released and the notify is checked. User is still responsible for
+ ensuring the lifetime of a notifier the user supplies.
+ Also, moved the monitor updates out of notify() and into the
+ enqueue_* methods, inside the guard scope since they refer to
+ object state; rely on the Monitor docs that say the updates are
+ well-behaved.
+
+Tue Nov 10 00:35:52 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.cpp: Some changes extraneous to those in
+ Wed Nov 4 00:07:49 UTC 2009 Steve Huston <shuston@riverace.com>
+ got checked in by accident; these screwed up the handle resuming
+ and are now reverted. The changes/fix mentioned in
+ Wed Nov 4 00:07:49 UTC 2009 Steve Huston <shuston@riverace.com>
+ are now the only ones included.
+
+Mon Nov 9 12:20:05 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/Message_Queue_Test.cpp:
+
+ Modified to use rand_r, which is actually thread safe.
+
+Mon Nov 9 03:41:21 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/Message_Queue_Test.cpp:
+
+ Another attempt at fixing this problem on Snow Leopard, hopefully
+ less disruptive than the last attempt.
+
+Sat Nov 7 08:32:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Basic_Types.h:
+ Fix long double for ppc64
+
+Fri Nov 6 11:41:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Reverted the change to check all perl scripts
+
+Fri Nov 6 10:13:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * ace/Tokenizer_T.cpp:
+
+ Allow tokens to have embedded quotes so that
+ tao_idl, which generates parameters such as
+ -I"directory with spaces", actually works.
+
+ I.E. Only remove surrounding quotes. With
+ embedded quotes; the original code simply
+ returned the token when the quote character
+ was detected, without inserting a token splitting
+ null at the quote character (which if it had,
+ would then mess up the next quoted token
+ processing). This ment that the parameters got
+ repeated many times over as they are inserted
+ and interpreted again and again.
+
+Fri Nov 6 08:30:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Also check cdp files for tabs
+
+Thu Nov 5 20:13:47 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/ACE.h:
+ * ace/ACE.inl:
+ * ace/ACE.cpp:
+ Moved nibble2hex from .inl to .cpp file to avoid static
+ data in inline function.
+
+Thu Nov 5 13:58:25 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdlib.h:
+ Another fix for platforms that define ACE_STRTOLL_EQUIVALENT or
+ ACE_STRTOULL_EQUIVALENT.
+
+Thu Nov 5 13:46:34 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdlib.h:
+ Fix for platforms that lack strtoll or strtoull.
+
+Thu Nov 5 11:56:13 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdlib.h:
+ * ace/OS_NS_stdlib.inl:
+ Added ace_strtoll_helper and ace_strtoull_helper to fix compile
+ errors if strtoll or strtoull is macro.
+
+Thu Nov 5 11:32:07 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ * ace/os_include/os_signal.h:
+ Use ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES instead of
+ ACE_HAS_LYNXOS50_SIGNALS.
+
+Wed Nov 4 20:57:08 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * bin/MakeProjectCreator/config/global.features:
+
+ Set notify_monitor_control default value be 0.
+
+Wed Nov 4 17:50:05 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Message_Queue_Test.cpp:
+ Improved portability
+
+Wed Nov 4 14:51:00 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Bug_3758_Regression_Test.cpp:
+ * tests/OS_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Moved regression test for 3758 to its own file.
+
+Wed Nov 4 11:39:05 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/index.html:
+ Updated description for DDS4CCM documentation
+
+Wed Nov 4 00:07:49 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.cpp (resume_handler_i): If asked to resume a
+ handler without any bits currently set, just note the handler has
+ been resumed, don't fail it. Prevents orphaned handle if a
+ auto-suspended handler's callback clears the lone bit set.
+
+Mon Nov 2 13:45:05 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/RW_Process_Mutex.h:
+ * ace/Default_Constants.h:
+ Added ACE_DEFAULT_RW_PROCESS_MUTEX_PERMS with which the end user
+ can override the default permissions
+
+ * ace/Addr.inl:
+ * ace/MMAP_Memory_Pool.cpp:
+ Doxygen changes
+
+Mon Nov 2 08:52:05 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp:
+ Enhanced strsignal test to test with negative signal numbers.
+
+Mon Nov 2 08:40:08 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/run_test.lst:
+ Run Signal_Test on FreeBSD.
+
+Mon Nov 2 08:36:24 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Sig_Handler.cpp:
+ Removed setting of SA_SIGINFO flag. It should not be used
+ with POSIX.1 signal handler (sa_handler).
+
+Sun Nov 1 16:47:29 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Sig_Handler.cpp:
+ LynxOS 4.x supports SA_SIGINFO.
+
+Fri Oct 30 18:46:03 UTC 2009 Steven Stallion <stallions@ociweb.com>
+
+ * include/makeinclude/wrapper_macros.GNU:
+
+ Added -DNDEBUG to CPPFLAGS when debug=0 is set.
+
+Thu Oct 29 21:45:30 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_pwd.h:
+ * ace/OS_NS_time.inl:
+ * ace/README:
+ * ace/config-mvs.h:
+ * ace/config-tru64.h:
+ * ace/os_include/os_time.h:
+ * configure.ac:
+ * m4/config_h.m4:
+ Removed references to ACE_HAS_BROKEN_CTIME and
+ ACE_HAS_BROKEN_R_ROUTINES.
+
+Thu Oct 29 21:25:49 UTC 2009 Chris Cleeland <cleeland@ociweb.com>
+
+ * tests/Message_Queue_Test.cpp:
+
+ Reverted change from Tue Oct 27 08:12:25 UTC 2009
+ William R. Otte <wotte@dre.vanderbilt.edu>. The change
+ was causing core dumps on some platforms due to treating
+ the thread ID as a pointer and dereferencing that pointer.
+ Better to live with compiler warnings than crashes.
+
+Thu Oct 29 21:04:27 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ * ace/config-aix-5.x.h:
+ * ace/config-irix6.x-g++.h:
+ * ace/config-lynxos.h:
+ * ace/config-netbsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-sco-5.0.0-nothread.h:
+ * ace/config-sunos5.4-g++.h:
+ * ace/config-sunos5.5.h:
+ * ace/config-tru64.h:
+ * ace/config-unixware-7.1.0.h:
+ * ace/config-win32-borland.h:
+ * ace/config-win32-dmc.h:
+ * ace/config-win32-ghs.h:
+ * configure.ac:
+ * m4/config_h.m4:
+ Removed references to ACE_HAS_GNU_CSTRING_H.
+
+Thu Oct 29 20:30:35 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdlib.h:
+ Readded undef atop. Fixes compile error on FreeBSD.
+
+Thu Oct 29 13:58:25 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdlib.h:
+ * ace/OS_NS_stdlib.inl:
+ * ace/OS_NS_time.h:
+ Removed some legacy undefs.
+
+Thu Oct 29 08:08:51 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Log_Msg.cpp:
+ * ace/Select_Reactor_Base.cpp:
+ Fixed fuzz errors.
+
+Wed Oct 28 19:49:39 UTC 2009 Chris Cleeland <cleeland@ociweb.com>
+
+ * ace/Select_Reactor_Base.h:
+ * ace/Select_Reactor_Base.cpp:
+
+ Changed the second recv() that is used in case of a short first
+ read to be a recv_n(), blocking until the rest of the buffer can
+ be received on the pipe. The problem was discovered during
+ routine testing (Notify_Performance_Test) on VxWorks 6.7 on a P3
+ platform, but could occur on any platform. [Bugzilla 3754]
+
+Wed Oct 28 11:58:21 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-msvc-7.h:
+ Reverted: Tue Oct 27 19:40:59 UTC 2009 Olli Savia <ops@iki.fi>
+ It seems that VC7 doesn't support _get_osfhandle.
+
+Wed Oct 28 11:54:03 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Log_Msg.h:
+ * ace/Log_Msg.cpp:
+ Use ACE_OS::strsignal() instead of sys_siglist.
+
+ * ace/config-freebsd.h:
+ * ace/config-linux-common.h:
+ * ace/config-lynxos.h:
+ * ace/config-netbsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-sunos5.4-g++.h:
+ * ace/config-sunos5.4-sunc++-4.x.h:
+ * ace/config-sunos5.5.h:
+ Removed legacy sys_siglist related settings.
+
+Wed Oct 28 06:30:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_sunos5_g++.GNU:
+ Added support for buildbits 64
+
+Tue Oct 27 20:14:50 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS.inl:
+ Removed some legacy code.
+
+Tue Oct 27 19:40:59 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-msvc-7.h:
+ Added missing ACE_FILENO_EQUIVALENT macro.
+
+Tue Oct 27 19:35:06 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp:
+ Fixed wrong logic with macros
+
+Thu Oct 22 21:12:21 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Pipe.h (ACE_Pipe): Updated the document to correct a typo.
+ Thanks to Matthew Carter <r_q_einstein-acetaobugs at yahoo dot
+ com> for reporting this.
+
+Tue Oct 27 10:01:51 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.cpp:
+ * ace/config-aix-5.x.h:
+ strsignal fix for AIX.
+
+Tue Oct 27 08:22:25 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * include/makeinclude/platform_macosx_tiger.GNU:
+
+ fixed typo.
+
+Tue Oct 27 08:12:25 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/config-macosx-snowleopard.h:
+ * include/makeinclude/platform_macosx_common.GNU:
+ * include/makeinclude/platform_macosx_snowleopard.GNU:
+ * include/makeinclude/platform_macosx_tiger.GNU:
+
+ Re-factored snow leopard support, I now get a clean compile.
+ Tests will be evaluated when we get our x86 Mac hardware.
+
+ * tests/Message_Queue_Test.cpp:
+
+ Introduced some pointer gymnastics to convert a ACE_thread_t
+ to a seed for the random number generator. This was done to avoid
+ compile warnings due to pointers being bigger than a uint_t and losing
+ precision in the conversion.
+
+Tue Oct 27 07:55:38 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp:
+ Use ACE_INVALID_HANDLE instead of -1. Changed C-style casts
+ to C++ casts.
+
+Mon Oct 26 22:08:38 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-borland.h:
+ Added ACE_FILENO_EQUIVALENT.
+
+Mon Oct 26 15:42:34 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp:
+ Added cast to fix compile error on Windows.
+
+Mon Oct 26 12:25:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.inl:
+ Fix for msvc10
+
+Mon Oct 26 11:54:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Basic_Types.h:
+ Small improvement for PPC64
+
+Mon Oct 26 10:41:43 UTC 2009 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp:
+ * protocols/ace/HTBP/HTBP_Session.h:
+ * protocols/ace/HTBP/HTBP_Environment.cpp:
+ * protocols/ace/HTBP/HTBP_Channel.h:
+ * protocols/ace/HTBP/HTBP_Filter_Factory.h:
+ * protocols/ace/HTBP/HTBP_Session.cpp:
+ * protocols/ace/HTBP/HTBP_Session.inl:
+ * protocols/ace/HTBP/HTBP_ID_Requestor.cpp:
+ * protocols/ace/HTBP/HTBP_Channel.inl:
+ * protocols/ace/HTBP/HTBP_Channel.cpp:
+ * protocols/ace/HTBP/HTBP_Environment.h:
+ * protocols/ace/HTBP/HTBP_Filter_Factory.cpp:
+ Simplified the code and fixed several memory leaks.
+
+Mon Oct 26 10:23:13 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/run_test.lst:
+ Don't run MEM_Stream_Test and MT_SOCK_Test on LynxOS.
+
+Mon Oct 26 10:18:28 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Bug_2653_Regression_Test.cpp:
+ * tests/Cached_Conn_Test.cpp:
+ * tests/Reactor_Dispatch_Order_Test.cpp:
+ LynxOS improvements.
+
+Mon Oct 26 08:32:08 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp:
+ Improved test to detect if std{out,err} is not associated
+ with an output stream. This may happen with Windows application
+ without a console window.
+
+Mon Oct 26 07:48:19 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-msvc-10.h:
+ * ace/config-win32-msvc-8.h:
+ * ace/config-win32-msvc-9.h:
+ Fix for WinCE build.
+
+Sat Oct 24 14:33:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Basic_Types.h:
+ Fix for PPC64
+
+Sat Oct 24 14:30:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Fix for PPC64
+
+Sat Oct 24 12:18:00 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_Thread.inl:
+ LynxOS improvements.
+
+Sat Oct 24 12:15:40 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.cpp (strsignal):
+ Fix for Solaris and AIX.
+
+Fri Oct 23 21:38:31 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * include/makeinclude/platform_macosx_snowleopard.GNU:
+
+ Enhanced this file to remove -Wno-long-double from CFLAG.
+ Thanks to Adam Mitz for the suggestion on how to fix this.
+
+Fri Oct 23 20:25:13 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/os_include/os_string.h:
+ Removed some legacy code.
+
+Fri Oct 23 13:58:45 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/run_test.lst:
+ Run Signal_Test on LynxOS.
+
+Fri Oct 23 13:23:49 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * m4/config_h.m4:
+ Reverted: Mon Oct 19 20:58:10 UTC 2009 Olli Savia <ops@iki.fi>
+
+Fri Oct 23 13:10:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/File_Lock.{h,cpp,inl}:
+ Use bool instead of int
+
+Fri Oct 23 12:52:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/run_test.pl:
+ Extended run_test check
+
+Fri Oct 23 09:56:50 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-aix-5.x.h:
+ Added ACE_HAS_STRSIGNAL.
+
+Fri Oct 23 09:51:17 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-msvc-10.h:
+ * ace/config-win32-msvc-8.h:
+ * ace/config-win32-msvc-9.h:
+ Added missing _get_osfhandle() call to ACE_FILENO_EQUIVALENT macro.
+
+Thu Oct 22 14:16:10 UTC 2009 Chad Elliott <elliott_c@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ If a custom 'dependent' setting contains a double quote, then we
+ must make a fake rule that corresponds to it. Otherwise, make
+ doesn't know how to deal with it.
+
+Tue Oct 20 16:20:33 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Message_Queue_T.cpp (enqueue_*): Move the notify() call outside
+ the lock scope; holding the lock across a call that may block (or
+ do anything else we don't know about) is dangerous. It resulted in
+ deadlock at a customer site.
+
+ See Bugzilla #3250 for any follow-up issues.
+
+ * ace/Process_Mutex.h: Fix doxygen stuff and clarify the behavior
+ when based on semaphores vs. mutexes where there's a choice.
+
+Tue Oct 20 10:35:57 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.cpp:
+ Reformatted returned string in emulated strsignal.
+ If signum is invalid, "Unknown signal %d" is used to
+ format the string. Otherwise, "Signal %d" is used.
+
+ Use ACE_SYS_SIGLIST instead of ACE_HAS_SYS_SIGLIST.
+
+ * ace/config-lynxos.h:
+ Removed ACE_HAS_SYS_SIGLIST. Macro is no longer used.
+
+Mon Oct 19 20:58:10 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * configure.ac:
+ * m4/config_h.m4:
+ Added a check for strsignal.
+
+Mon Oct 19 20:24:54 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ * ace/config-cray.h:
+ * ace/config-cygwin32.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-lynxos.h:
+ * ace/config-netbsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-rtems.h:
+ * configure.ac:
+ * m4/config_h.m4:
+ ACE_HAS_SYS_ERRLIST is no longer in use.
+
+Mon Oct 19 19:25:40 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ * ace/config-aix-5.x.h:
+ * ace/config-cray.h:
+ * ace/config-cygwin32.h:
+ * ace/config-freebsd.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-integritySCA.h:
+ * ace/config-irix6.x-common.h:
+ * ace/config-linux-common.h:
+ * ace/config-lynxos.h:
+ * ace/config-macosx-leopard.h:
+ * ace/config-macosx-panther.h:
+ * ace/config-macosx-tiger.h:
+ * ace/config-macosx.h:
+ * ace/config-mvs.h:
+ * ace/config-netbsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-openvms.h:
+ * ace/config-qnx-neutrino.h:
+ * ace/config-qnx-rtp-62x.h:
+ * ace/config-qnx-rtp-pre62x.h:
+ * ace/config-rtems.h:
+ * ace/config-sco-5.0.0.h:
+ * ace/config-sunos5.4-g++.h:
+ * ace/config-sunos5.4-sunc++-4.x.h:
+ * ace/config-sunos5.5.h:
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/config-tandem-nsk-mips-v3.h:
+ * ace/config-tandem.h:
+ * ace/config-tru64.h:
+ * ace/config-unixware-7.1.0.h:
+ * ace/config-unixware-7.1.0.udk.h:
+ * ace/config-vxworks6.4.h:
+ * ace/config-win32-borland.h:
+ * ace/config-win32-cegcc.h:
+ * ace/config-win32-dmc.h:
+ * ace/config-win32-ghs.h:
+ * ace/config-win32-interix.h:
+ * ace/config-win32-mingw.h:
+ * ace/config-win32-msvc-10.h:
+ * ace/config-win32-msvc-7.h:
+ * ace/config-win32-msvc-8.h:
+ * ace/config-win32-msvc-9.h:
+ * ace/os_include/os_string.h:
+ * configure.ac:
+
+ Cleaned up strerror mess. We had both ACE_HAS_STRERROR and
+ ACE_LACKS_STREROR. ACE_HAS_STRERROR is no longer in use.
+
+Mon Oct 19 18:18:37 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Added ACE_HAS_STRSIGNAL.
+
+Mon Oct 19 14:28:07 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Added ACE_HAS_SYS_SIGLIST.
+
+Mon Oct 19 14:24:45 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Log_Msg_Test.cpp:
+ Added a few debug messages to exercise %S modifier.
+
+Mon Oct 19 14:00:20 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Sock_Connect.cpp:
+ LynxOS improvements.
+
+Mon Oct 19 12:18:26 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.cpp:
+ Include OS_NS_stdio.h if ACE_HAS_STRSIGNAL is not defined.
+
+Mon Oct 19 12:15:04 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosconcurrency:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosevent:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnaming:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnotification:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-costrading:
+ * rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-rtevent:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosevent:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-costrading:
+ * rpmbuild/ace-tao-init-suse/init.d/tao-rtevent:
+ Use -ORBDeamon instead of --deamon
+
+Mon Oct 19 12:10:04 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3729_Regression_Test.cpp:
+ * tests/INET_Addr_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Moved regression test for 3729 to its own file
+
+Mon Oct 19 11:58:04 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/INET_Addr_Test.cpp:
+ Unicode fixes
+
+Mon Oct 19 10:04:04 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.cpp:
+ Fixed off by one bug.
+
+ * ace/os_include/os_signal.h:
+ Due to bug above reverted previous change.
+
+Mon Oct 19 07:55:21 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.cpp:
+ * ace/config-lynxos.h:
+ LynxOS lacks strsignal. Added emulation using sys_siglist.
+
+ * ace/os_include/os_signal.h:
+ LynxOS now defines NSIG rigth. No need to add +1.
+
+Sat Oct 17 19:58:52 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.h:
+ * ace/OS_NS_string.cpp:
+ Added ACE_OS::strsignal().
+
+ * ace/config-cygwin32.h:
+ * ace/config-freebsd.h:
+ * ace/config-lynxos.h:
+ * ace/config-netbsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-sunos5.4-g++.h:
+ * ace/config-sunos5.4-sunc++-4.x.h:
+ * ace/config-sunos5.5.h:
+ Added ACE_HAS_STRSIGNAL
+
+ * tests/OS_Test.cpp:
+ Added a test for ACE_OS::strsignal().
+
+ * ace/config-win32-common.h:
+ * ace/README:
+ * ace/config-cray.h:
+ Removed references to ACE_HAS_SYS_SIGLIST. It will be removed
+ soon.
+
+Sat Oct 17 10:29:13 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Removed duplicate define ACE_HAS_GETIFADDRS.
+
+Sat Oct 17 10:26:15 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdio.h:
+ Removed undef fdopen. We may need to add helper wrapper for fdopen.
+
+Sat Oct 17 07:32:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/OS_Test.cpp:
+ Removed getmacaddress test, that moved to its own test
+
+Fri Oct 16 08:51:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_doxygen.pl:
+ * htlm/index.html:
+ Added dds4ccm
+
+Fri Oct 16 06:38:19 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/run_test.lst:
+ Run Enum_Interfaces_Test, MT_SOCK_Test, TP_Reactor_Test on LynxOS.
+
+Fri Oct 16 06:00:42 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdio.h:
+ * ace/OS_NS_stdio.inl:
+ Readded "Tue Oct 13 19:13:13 UTC 2009 Olli Savia <ops@iki.fi>"
+ without os_unistd.h modifications.
+
+Thu Oct 15 17:33:05 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/OS_NS_stdio.h:
+ * ace/OS_NS_stdio.inl:
+ * ace/os_include/os_unistd.h:
+
+ Reverted Tue Oct 13 19:13:13 UTC 2009 Olli Savia <ops@iki.fi>,
+ it broke the IDL compiler.
+
+Thu Oct 15 11:26:15 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/Pipe.cpp:
+ It OK to use socketpair to implement pipe on LynxOS.
+
+Thu Oct 15 11:11:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Basic_Types.h:
+ Fix for 64bit PPC
+
+Thu Oct 15 07:43:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3744_Regression_Test.cpp:
+ * tests/tests.mpc:
+ * tests/run_test.lst:
+ Moved the regression for 3744 to its own file, we don't have a fix yet
+
+Wed Oct 14 23:15:59 UTC 2009 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/config-macosx-snowleopard.h:
+ * include/makeinclude/platform_macosx_snowleopard.GNU:
+
+ First cut of adding snowleopard support.
+
+Wed Oct 14 14:43:01 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Added/removed some defines.
+
+Wed Oct 14 14:41:03 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.h:
+ Added include "ace/os_include/os_pthread.h" since LynxOS defines
+ pthread_sigmask() in pthread.h.
+
+Tue Oct 13 19:13:13 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdio.h:
+ * ace/OS_NS_stdio.inl:
+ Cleaned up ace_fileno_helper implementation and fixed compile
+ problem on MinGW.
+
+ * ace/os_include/os_unistd.h:
+ Redefined ACE_STD{IN,OUT,ERR}.
+ OS_Test now hopefully passes on all platforms.
+
+Tue Oct 13 19:00:53 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Removed non-functional cross compiler setup.
+
+Tue Oct 13 18:56:22 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Reverted:
+
+ Mon Oct 13 11:10:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Problems with Lynxos5.0 due to -mshared being passed to compiler
+ (inaddition to linker)
+
+ -mshared is needed on LynxOS 4.x. Need to find another
+ solution for LynxOS 5.0
+
+Tue Oct 13 10:03:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/rules.local.GNU:
+ When using cp to install a library, make sure we check date/time
+ in order to check if we need to copy. Thanks to Abdul Sowayan
+ <sowayan at gmail dot com> for reporting this. This fixes bugzilla
+ 3728
+
+Tue Oct 13 09:44:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/INET_Addr_Test.cpp:
+ Extended this test to for is_multicast. This fails on little endian
+ machines at this moment. Thanks to Patrick Rabau
+ <pr2345 at gmail dot com> for extending this test. This is related
+ to bugzilla 3729
+
+Tue Oct 13 09:33:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/OS_Test.cpp:
+ Added test for getmacaddress, thanks to Paul Daugherty
+ <paul at nextalk dot com> for creating this. This is related to
+ bugzilla 3744
+
+Tue Oct 13 06:34:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ When doing a 64bit build, also add -m64 to the linker flags
+
+Mon Oct 12 14:03:48 CDT 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.4 released.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/ACE/ChangeLogs/ChangeLog-2010b b/ACE/ChangeLogs/ChangeLog-2010b
new file mode 100644
index 00000000000..c28e05a6b5c
--- /dev/null
+++ b/ACE/ChangeLogs/ChangeLog-2010b
@@ -0,0 +1,1777 @@
+Sun Jul 04 18:57:33 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.8 released.
+
+Thu Jul 01 08:55:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/tests/INet/MT_Get/Main.cpp:
+ Fixed truncation warnings.
+
+Wed Jun 30 14:57:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/tests/INet/MT_Get/Main.cpp:
+ Fixed truncation warnings.
+
+Tue Jun 29 11:19:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/tests/INet/MT_Get/Main.cpp:
+ Fixed truncation warnings.
+
+ * protocols/ace/INet/INet_Log.h:
+ * protocols/ace/INet/INet_Log.cpp:
+ Fixed versioned namespace errors.
+
+Tue Jun 29 10:50:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/AuthenticationBase.h:
+ * protocols/ace/INet/AuthenticationBase.inl:
+ * protocols/ace/INet/FTP_ClientRequestHandler.cpp:
+ * protocols/ace/INet/FTP_ClientRequestHandler.h:
+ Small optimization for authentication (avoid copies).
+ Added documentation.
+
+ * protocols/ace/INet/BufferedStreamBuffer.h:
+ Added documentation.
+
+ * protocols/ace/INet/ConnectionCache.cpp:
+ * protocols/ace/INet/ConnectionCache.h:
+ * protocols/ace/INet/ConnectionCache.inl:
+ Fixed close_connection.
+ Added documentation.
+
+Tue Jun 29 09:32:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/FTP_ClientRequestHandler.inl:
+ Fixed VC71 compile problem.
+
+Tue Jun 29 08:59:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/FTP_URL.h:
+ Fixed Solaris 10 warning.
+
+Mon Jun 28 19:15:54 UTC 2010 Chad Elliott <elliott_c@ociweb.com>
+
+ * bin/MakeProjectCreator/config/MPC.cfg:
+
+ Modified the 'dynamic_types' setting to not complain if the
+ TAO_ROOT environment variable isn't set during processing. Users
+ of only ACE may be confused by the MPC resulting message.
+
+Mon Jun 28 14:07:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * NEWS:
+ Update.
+
+Mon Jun 28 13:06:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/INet_Log.h:
+ Allow tracing to be enabled in debug builds.
+
+Mon Jun 28 12:53:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/StreamHandler.h:
+ * protocols/ace/INet/StreamHandler.cpp:
+ Fixed problem with reactive write.
+
+Mon Jun 28 12:19:05 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ No MPC440 xampler build exists
+
+Mon Jun 28 11:32:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/FTP_Response.h:
+ Added missing include.
+
+ * protocols/ace/INet/FTP_Session.cpp:
+ Fixed truncate warning.
+
+Mon Jun 28 10:37:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/FTP_Request.h:
+ * protocols/ace/INet/FTP_Response.h:
+ Added missing inline includes.
+
+Mon Jun 28 09:53:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/AuthenticationBase.cpp:
+ * protocols/ace/INet/AuthenticationBase.h:
+ * protocols/ace/INet/AuthenticationBase.inl:
+ * protocols/ace/INet/FTP_ClientRequestHandler.cpp:
+ * protocols/ace/INet/FTP_ClientRequestHandler.h:
+ * protocols/ace/INet/FTP_ClientRequestHandler.inl:
+ * protocols/ace/INet/FTP_IOStream.cpp:
+ * protocols/ace/INet/FTP_IOStream.h:
+ * protocols/ace/INet/FTP_IOStream.inl:
+ * protocols/ace/INet/FTP_Request.cpp:
+ * protocols/ace/INet/FTP_Request.h:
+ * protocols/ace/INet/FTP_Request.inl:
+ * protocols/ace/INet/FTP_Response.cpp:
+ * protocols/ace/INet/FTP_Response.h:
+ * protocols/ace/INet/FTP_Response.inl:
+ * protocols/ace/INet/FTP_Session.cpp:
+ * protocols/ace/INet/FTP_Session.h:
+ * protocols/ace/INet/FTP_Simple_exec.cpp:
+ * protocols/ace/INet/FTP_URL.cpp:
+ * protocols/ace/INet/FTP_URL.h:
+ * protocols/ace/INet/FTP_URL.inl:
+ * protocols/ace/INet/INet_Log.cpp:
+ * protocols/ace/INet/INet_Log.h:
+ * protocols/ace/INet/ConnectionCache.cpp:
+ * protocols/ace/INet/HeaderBase.cpp:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.cpp:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ * protocols/ace/INet/HTTP_Request.cpp:
+ * protocols/ace/INet/HTTP_Response.cpp:
+ * protocols/ace/INet/HTTP_Session.cpp:
+ * protocols/ace/INet/HTTP_Simple_exec.cpp:
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/URLBase.cpp:
+ * protocols/ace/INet/URLBase.h:
+ * protocols/ace/INet/inet.mpc:
+ Added library specific logging and logging macros. Use INET_LOG_LEVEL
+ environment variable to control.
+ Added FTP URL and protocol (clientside) support.
+ Added basic authentication handling (currently only used with FTP).
+ Some minor cleanup and fixes.
+
+Fri Jun 24 19:10:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_Simple_exec.cpp:
+ Small fixes, clean up.
+
+ * protocols/ace/INet/HTTP_Session.cpp:
+ * protocols/ace/INet/HTTP_Session.h:
+ Added ctor.
+
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/StreamHandler.h:
+ Fixed blocking problem.
+
+ * protocols/ace/INet/String_IOStream.cpp:
+ Flush data on dtor.
+
+ * protocols/ace/INet/URLBase.h:
+ Added clearification.
+
+Fri Jun 24 16:24:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/MakeProjectCreator/config/inet.mpb:
+ Added missing avoids.
+
+Thu Jun 24 08:52:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * *.mpc:
+ Use dynamicflags += instead of dynamicflags =
+
+Thu Jun 24 02:07:18 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Service_Gestalt.inl (open): Allow the command line options to
+ override the passed ignore_static_svcs argument. Restores correct
+ operation, fixing Bugzilla #3865.
+
+Wed Jun 23 14:17:26 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/Log_Msg_Test.cpp:
+ Added nul terminator at the end of a string that was missing.
+
+Wed Jun 23 10:24:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ Added default setting (0) for new feature 'old_stdstream'.
+ Defines that platform has 'old' std C++ stream classes not
+ compatible with f.i. the INet lib.
+
+ * protocols/ace/INet/inet.mpc:
+ Added avoids for old_stdstream.
+
+ * protocols/ace/INet/BidirStreamBuffer.cpp:
+ * protocols/ace/INet/BidirStreamBuffer.h:
+ * protocols/ace/INet/BufferedStreamBuffer.cpp:
+ * protocols/ace/INet/BufferedStreamBuffer.h:
+ * protocols/ace/INet/HTTP_Session.cpp:
+ * protocols/ace/INet/HTTP_Session.h:
+ * protocols/ace/INet/Sock_IOStream.cpp:
+ * protocols/ace/INet/Sock_IOStream.h:
+ * protocols/ace/INet/StreamInterceptor.h:
+ Tweaking, clean up and small corrections.
+
+Wed Jun 23 03:21:01 UTC 2010 Chris Cleeland <cleeland@ociweb.com>
+
+ * bin/MakeProjectCreator/config/acedefaults.mpb (project):
+
+ Added a clause to turn off certain macros and libraries in cdt6
+ project generation when threads are not used.
+
+Tue Jun 22 07:47:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/String_IOStream.cpp:
+ * protocols/ace/INet/String_IOStream.h:
+ Const change:
+
+ * protocols/ace/INet/URLBase.inl:
+ Fixed missing ACE_INLINE.
+
+Mon Jun 21 13:29:57 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/control:
+ Fixed some version numbers
+
+ * debian/patches/00list:
+ Removed some patches we zapped in the past
+
+ Thanks to David Ward <dpward at mit dot edu> for reporting this.
+
+Mon Jun 21 09:41:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/BidirStreamBuffer.cpp:
+ * protocols/ace/INet/BidirStreamBuffer.h:
+ * protocols/ace/INet/BufferedStreamBuffer.cpp:
+ * protocols/ace/INet/BufferedStreamBuffer.h:
+ * protocols/ace/INet/ClientRequestHandler.cpp:
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/ConnectionCache.cpp:
+ * protocols/ace/INet/ConnectionCache.h:
+ * protocols/ace/INet/HeaderBase.cpp:
+ * protocols/ace/INet/HeaderBase.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.cpp:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ * protocols/ace/INet/HTTP_Header.cpp:
+ * protocols/ace/INet/HTTP_Header.h:
+ * protocols/ace/INet/HTTP_IOStream.cpp:
+ * protocols/ace/INet/HTTP_IOStream.h:
+ * protocols/ace/INet/HTTP_Request.cpp:
+ * protocols/ace/INet/HTTP_Request.h:
+ * protocols/ace/INet/HTTP_Response.cpp:
+ * protocols/ace/INet/HTTP_Response.h:
+ * protocols/ace/INet/HTTP_Session.cpp:
+ * protocols/ace/INet/HTTP_Session.h:
+ * protocols/ace/INet/HTTP_Status.cpp:
+ * protocols/ace/INet/HTTP_Status.h:
+ * protocols/ace/INet/HTTP_StreamPolicyBase.cpp:
+ * protocols/ace/INet/HTTP_StreamPolicyBase.h:
+ * protocols/ace/INet/HTTP_StreamPolicy.cpp:
+ * protocols/ace/INet/HTTP_StreamPolicy.h:
+ * protocols/ace/INet/HTTP_URL.cpp:
+ * protocols/ace/INet/HTTP_URL.h:
+ * protocols/ace/INet/HTTP_URL.inl:
+ * protocols/ace/INet/IOS_util.cpp:
+ * protocols/ace/INet/IOS_util.h:
+ * protocols/ace/INet/Request.cpp:
+ * protocols/ace/INet/Request.h:
+ * protocols/ace/INet/RequestHandler.cpp:
+ * protocols/ace/INet/RequestHandler.h:
+ * protocols/ace/INet/Response.cpp:
+ * protocols/ace/INet/Response.h:
+ * protocols/ace/INet/Sock_IOStream.cpp:
+ * protocols/ace/INet/Sock_IOStream.h:
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/StreamHandler.h:
+ * protocols/ace/INet/StreamInterceptor.cpp:
+ * protocols/ace/INet/StreamInterceptor.h:
+ * protocols/ace/INet/String_IOStream.cpp:
+ * protocols/ace/INet/String_IOStream.h:
+ * protocols/ace/INet/URLBase.cpp:
+ * protocols/ace/INet/URLBase.h:
+ * protocols/ace/INet/URLBase.inl:
+ Some clean up and reorganization to prepare for
+ new additions.
+ Standardized include statements.
+ Added some (it's a start!) documentation.
+
+ * protocols/ace/INet/inet.mpc:
+ Added ACE_ROOT/protocols to includes.
+
+Fri Jun 18 20:32:54 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * tests/Service_Config_Test.cpp: Disable error logging around the
+ load of ACE_Logging_Strategy else there are errors logged while
+ hunting for the proper name form, confusing the scoreboard output.
+
+Fri Jun 18 19:58:55 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/DLL_Manager.cpp:
+ * ace/Logging_Strategy.cpp: Moved the _get_dll_unload_policy()
+ function from DLL_Manager.cpp to Logging_Strategy.cpp where it's
+ more clear why it's there.
+
+Fri Jun 18 11:13:40 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Time_Value.inl: Fixed fuzz errors.
+
+Thu Jun 17 21:59:34 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Time_Value.{h inl}: Added explicit set_ and get_ methods for
+ ACE_UINT64 msec values. Also marked the existing "getter"
+ msec(ACE_UINT64&) methods deprecated because they look like
+ setter methods and are confusing. Users should change to get_msec().
+ Resolves Bugzilla #3336.
+
+ * NEWS: Described the new methods and rationale.
+
+ * tests/Time_Value_Test.cpp: Added test cases for the new
+ set_msec() and get_msec() methods.
+
+Thu Jun 17 19:47:58 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/DLL_Manager.cpp: Add _get_dll_unload_policy() function that
+ returns ACE_DLL_UNLOAD_POLICY_LAZY; this prevents the DLL_Manager
+ from running down ACE framework components just from unloading
+ a service contained in ACE itself.
+ Proposed fix for Bugzilla #3856.
+
+Thu Jun 17 19:01:32 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * tests/Service_Config_Test.cpp: Added a new test case,
+ testUnloadingACELoggingStrategy. It loads then unloads the
+ ACE logging strategy. This causes ACE to run down itself,
+ smashing singletons in the process. This test case goes with
+ Bugzilla #3856.
+
+Wed Jun 16 21:48:49 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+
+ Added various assignments that are specific to -type cdt6. Since
+ this Eclipse CDT support is not yet available in MPC, these will
+ be ignored for now.
+
+ * include/makeinclude/platform_g++_common.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_mingw32.GNU:
+ * include/makeinclude/rules.local.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+
+ Changes to support building on Windows (MinGW) without a bash shell.
+ Set SHELL=cmd in platform_macros.GNU to enable.
+
+Wed Jun 16 09:09:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/ConnectionCache.cpp:
+ Added some error logging.
+
+Mon Jun 14 16:16:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/inet.mpc:
+ * bin/MakeProjectCreator/config/inet.mpb:
+ Avoid WinCE.
+
+Mon Jun 14 14:16:35 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Adjusted the VMS compatibility work-around from
+ Wed Jun 9 14:45:33 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ so that it excludes more GNU make constructs that the version
+ on VMS can't handle.
+
+Mon Jun 14 10:06:31 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ Updated Xampler links, one for PS3, one for IBM Cell
+
+Mon Jun 14 09:13:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/URLBase.h:
+ Fixed single thread compile problem.
+
+Sun Jun 13 18:14:13 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec:
+ Integrated following changes from David Ward <dpward at mit dot edu>
+ Updates the RPM SPEC file to fix the build on several platforms,
+ and to otherwise clean it up:
+ - Depend on redhat-rpm-config to fix BuildArch under Fedora
+ - Depend on elfutils to allow build of debuginfo package under RHEL 4
+ - Replace %{?fedora_version} with %{?fedora} and %{?mandriva_version}
+ with %{?mdkversion} [1]
+ - Replace %{defined ...} with 0%{?...} and %{undefined ...}
+ with 0%{!?...} for portability [1]
+ - Move mwc (and autoconf/configure) step from %prep to %build [2]
+ - For _with_autoconf: Perform configure in $ACE_ROOT/objdir as
+ suggested by configure, to keep the build underneath $ACE_ROOT
+ - For _with_autoconf: Pass additional options to configure, to install
+ files in the correct location (i.e. /usr/lib64 rather than
+ /usr/lib in 64-bit multilib environments)
+ - Update "default values" comment at top of file to reflect the
+ actual default values.
+ - Remove leftover comments (i.e. references to _with_guilibs)
+
+ [1] http://en.opensuse.org/Build_Service/cross_distribution_package_how_to
+ [2] http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html
+
+ * rpmbuild/ace-tao.spec-bugfixonly.patch:
+ * rpmbuild/ace-tao.spec-release.patch:
+ Patch files to also ship latest major and minor release from
+ opensuse build service
+
+Sun Jun 13 09:48:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/BidirStreamBuffer.cpp:
+ * protocols/ace/INet/Sock_IOStream.cpp:
+ * protocols/ace/INet/HTTP_StreamPolicy.cpp:
+ * protocols/ace/INet/StreamInterceptor.cpp:
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/HTTP_StreamPolicyBase.cpp:
+ * protocols/ace/INet/String_IOStream.cpp:
+ * protocols/ace/INet/HTTP_Session.cpp:
+ * protocols/ace/INet/BufferedStreamBuffer.cpp:
+ Removed ACE_RCSID lines from template sourcefiles to fix compile problems.
+
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ Removed closing semicolons on namespaces.
+
+Thu Jun 10 01:33:11 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * protocols/ace/HTBP/HTBP_Channel.cpp:
+ * protocols/ace/HTBP/HTBP_Session.cpp:
+
+ Performance testing shows severe latency due to not using
+ TCP_NODELAY on the underlying sockets.
+
+Wed Jun 9 18:45:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/DLL_Manager.cpp:
+ Made layout of several debug statements consistent
+
+Wed Jun 9 15:41:11 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * protocols/ace/INet/inet.mpc:
+
+ The Template_Files section is needed for "make install".
+
+Wed Jun 9 14:45:33 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Adding a compatibility flag for VMS (vms_old_make) as an MPC
+ template variable. The GNU make version on VMS is old
+ and possibly buggy.
+
+Wed Jun 9 14:44:07 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * tests/Based_Pointer_Test.cpp:
+ * tests/DLL_Test.cpp:
+ * tests/Process_Semaphore_Test.cpp:
+ * tests/Process_Test.cpp:
+ * tests/Signal_Test.cpp:
+
+ Fixes for wchar on Unix. There is no ACE_OS::getenv(wchar_t*) on
+ Unix, it's only on Win32.
+
+Tue Jun 8 21:59:16 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/PerlACE/Process_Unix.pm:
+
+ Use the "EXE_SUBDIR" property of the TestTarget object (Process_Win32
+ already has this behavior).
+
+ * bin/PerlACE/TestTarget.pm:
+
+ Supporting setting the "ARCH" property on a per-TestTarget basis.
+ Added a GetArchDir() method to the TestTarget object.
+
+Tue Jun 8 14:25:56 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * protocols/ace/INet/inet.mpc:
+
+ Install the export header.
+
+Tue Jun 08 08:50:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/String_IOStream.cpp:
+ * protocols/ace/INet/HTTP_IOStream.cpp:
+ Changed static_cast to ACE truncate_cast.
+
+Tue Jun 08 07:32:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/String_IOStream.cpp:
+ * protocols/ace/INet/HTTP_IOStream.cpp:
+ Changes to silence conversion warnings.
+
+Tue Jun 08 07:16:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/StreamHandler.h:
+ * protocols/ace/INet/BidirStreamBuffer.cpp:
+ * protocols/ace/INet/Sock_IOStream.cpp:
+ * protocols/ace/INet/Response.h:
+ * protocols/ace/INet/HTTP_URL.h:
+ * protocols/ace/INet/HTTP_StreamPolicyBase.h:
+ * protocols/ace/INet/HTTP_StreamPolicy.cpp:
+ * protocols/ace/INet/StreamInterceptor.cpp:
+ * protocols/ace/INet/String_IOStream.h:
+ * protocols/ace/INet/ConnectionCache.inl:
+ * protocols/ace/INet/HeaderBase.inl:
+ * protocols/ace/INet/ConnectionCache.cpp:
+ * protocols/ace/INet/HeaderBase.cpp:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.inl:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.cpp:
+ * protocols/ace/INet/RequestHandler.cpp:
+ * protocols/ace/INet/HTTP_IOStream.h:
+ * protocols/ace/INet/HTTP_Status.h:
+ * protocols/ace/INet/HTTP_Session.h:
+ * protocols/ace/INet/HTTP_Header.inl:
+ * protocols/ace/INet/HTTP_Header.cpp:
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/IOS_util.h:
+ * protocols/ace/INet/HTTP_Request.h:
+ * protocols/ace/INet/Request.h:
+ * protocols/ace/INet/BufferedStreamBuffer.h:
+ * protocols/ace/INet/Response.cpp:
+ * protocols/ace/INet/HTTP_URL.cpp:
+ * protocols/ace/INet/HTTP_URL.inl:
+ * protocols/ace/INet/URLBase.h:
+ * protocols/ace/INet/HTTP_Response.h:
+ * protocols/ace/INet/BidirStreamBuffer.h:
+ * protocols/ace/INet/HTTP_StreamPolicyBase.cpp:
+ * protocols/ace/INet/Sock_IOStream.h:
+ * protocols/ace/INet/String_IOStream.cpp:
+ * protocols/ace/INet/HTTP_StreamPolicy.h:
+ * protocols/ace/INet/StreamInterceptor.h:
+ * protocols/ace/INet/HTTP_Status.inl:
+ * protocols/ace/INet/HTTP_IOStream.inl:
+ * protocols/ace/INet/HTTP_IOStream.cpp:
+ * protocols/ace/INet/HTTP_Session.cpp:
+ * protocols/ace/INet/HTTP_Status.cpp:
+ * protocols/ace/INet/ClientRequestHandler.inl:
+ * protocols/ace/INet/ClientRequestHandler.cpp:
+ * protocols/ace/INet/HTTP_Request.inl:
+ * protocols/ace/INet/HTTP_Request.cpp:
+ * protocols/ace/INet/IOS_util.cpp:
+ * protocols/ace/INet/HeaderBase.h:
+ * protocols/ace/INet/ConnectionCache.h:
+ * protocols/ace/INet/BufferedStreamBuffer.cpp:
+ * protocols/ace/INet/Request.cpp:
+ * protocols/ace/INet/RequestHandler.h:
+ * protocols/ace/INet/HTTP_Header.h:
+ * protocols/ace/INet/HTTP_Response.inl:
+ * protocols/ace/INet/URLBase.inl:
+ * protocols/ace/INet/HTTP_Response.cpp:
+ * protocols/ace/INet/URLBase.cpp:
+ Removed semicolons from namespace declarations.
+
+Mon Jun 7 22:57:08 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * tests/Unload_libACE.cpp:
+ * tests/run_test.lst:
+
+ With similar changes as the previous commit, this test can also be
+ run for ARCH builds.
+
+Mon Jun 7 21:39:54 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * protocols/ace/INet/inet.mpc:
+
+ Added the install_dir setting so that headers are installed to
+ the correct directory.
+
+ * bin/PerlACE/Run_Test.pm:
+
+ New function GetArchDir() for use when a test script needs to
+ know the ARCH directory for a given path. This is only needed when
+ the test passes the full path to an executable as a command-line
+ argument to a different executable (used in CIAO).
+
+ * tests/run_test.pl
+
+ If we're using ARCH, set an environment variable ACE_EXE_SUB_DIR so
+ that the individual tests can find executables and shared libraries.
+
+ * tests/Based_Pointer_Test.cpp:
+ * tests/Bug_2980_Regression_Test.cpp:
+ * tests/DLL_Test.cpp:
+ * tests/Process_Semaphore_Test.cpp:
+ * tests/Process_Test.cpp:
+ * tests/Signal_Test.cpp:
+
+ These tests need to check ACE_EXE_SUB_DIR to find executables and
+ shared libraries.
+
+Mon Jun 07 08:33:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/BufferedStreamBuffer.h:
+ * protocols/ace/INet/BufferedStreamBuffer.cpp:
+ Fix for VC71 template compile problem.
+
+Mon Jun 07 07:12:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_Simple_exec.cpp:
+ Fix for WChar compile problem.
+
+Sun Jun 06 06:34:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_Request.h:
+ * protocols/ace/INet/HTTP_Response.h:
+ Fix attempt for covariant return issue on LynxOS.
+
+Sun Jun 06 06:25:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/StreamHandler.h:
+ * protocols/ace/INet/HTTP_URL.h:
+ * protocols/ace/INet/HTTP_Status.h:
+ * protocols/ace/INet/HTTP_IOStream.h:
+ * protocols/ace/INet/HTTP_Request.h:
+ * protocols/ace/INet/BufferedStreamBuffer.h:
+ * protocols/ace/INet/HTTP_Response.h:
+ * protocols/ace/INet/BidirStreamBuffer.h:
+ * protocols/ace/INet/Sock_IOStream.h:
+ * protocols/ace/INet/StreamInterceptor.h:
+ * protocols/ace/INet/HeaderBase.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ * protocols/ace/INet/HTTP_Header.h:
+ Fixes for pragma once warnings.
+
+Sun Jun 06 06:08:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_Status.cpp:
+ * protocols/ace/INet/HTTP_Status.h:
+ Fix for nameclash with standard macro in VxWorks.
+
+ * protocols/ace/INet/HTTP_StreamPolicy.cpp:
+ Bugfix for incorrect array index.
+
+Sat Jun 05 07:32:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/ConnectionCache.cpp:
+ * protocols/ace/INet/ConnectionCache.h:
+ Fix for nameclash with standard macro in VxWorks.
+
+Sat Jun 05 07:21:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_URL.h:
+ * protocols/ace/INet/HTTP_URL.inl:
+ Fix for HPUX compile warning.
+
+Sat Jun 05 07:11:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_StreamPolicy.cpp:
+ * protocols/ace/INet/HTTP_StreamPolicy.h:
+ Fix attempt for AIX compile problem.
+
+Sat Jun 05 06:21:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_URL.cpp:
+ Fixed typo.
+
+Sat Jun 05 06:09:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/IOS_util.h:
+ Fixed missing export declaration.
+
+ * protocols/ace/INet/URLBase.h:
+ * protocols/ace/INet/URLBase.cpp:
+ Fixed missing virtual destructor.
+
+Fri Jun 04 18:48:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet:
+ * protocols/ace/INet/BidirStreamBuffer.cpp:
+ * protocols/ace/INet/BidirStreamBuffer.h:
+ * protocols/ace/INet/BufferedStreamBuffer.cpp:
+ * protocols/ace/INet/BufferedStreamBuffer.h:
+ * protocols/ace/INet/ClientRequestHandler.cpp:
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/ClientRequestHandler.inl:
+ * protocols/ace/INet/ConnectionCache.cpp:
+ * protocols/ace/INet/ConnectionCache.h:
+ * protocols/ace/INet/ConnectionCache.inl:
+ * protocols/ace/INet/HeaderBase.cpp:
+ * protocols/ace/INet/HeaderBase.h:
+ * protocols/ace/INet/HeaderBase.inl:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.cpp:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.inl:
+ * protocols/ace/INet/HTTP_Header.cpp:
+ * protocols/ace/INet/HTTP_Header.h:
+ * protocols/ace/INet/HTTP_Header.inl:
+ * protocols/ace/INet/HTTP_IOStream.cpp:
+ * protocols/ace/INet/HTTP_IOStream.h:
+ * protocols/ace/INet/HTTP_IOStream.inl:
+ * protocols/ace/INet/HTTP_Request.cpp:
+ * protocols/ace/INet/HTTP_Request.h:
+ * protocols/ace/INet/HTTP_Request.inl:
+ * protocols/ace/INet/HTTP_Response.cpp:
+ * protocols/ace/INet/HTTP_Response.h:
+ * protocols/ace/INet/HTTP_Response.inl:
+ * protocols/ace/INet/HTTP_Session.cpp:
+ * protocols/ace/INet/HTTP_Session.h:
+ * protocols/ace/INet/HTTP_Status.cpp:
+ * protocols/ace/INet/HTTP_Status.h:
+ * protocols/ace/INet/HTTP_Status.inl:
+ * protocols/ace/INet/HTTP_StreamPolicyBase.cpp:
+ * protocols/ace/INet/HTTP_StreamPolicyBase.h:
+ * protocols/ace/INet/HTTP_StreamPolicy.cpp:
+ * protocols/ace/INet/HTTP_StreamPolicy.h:
+ * protocols/ace/INet/HTTP_URL.cpp:
+ * protocols/ace/INet/HTTP_URL.h:
+ * protocols/ace/INet/HTTP_URL.inl:
+ * protocols/ace/INet/INet_Export.h:
+ * protocols/ace/INet/IOS_util.cpp:
+ * protocols/ace/INet/IOS_util.h:
+ * protocols/ace/INet/Request.cpp:
+ * protocols/ace/INet/Request.h:
+ * protocols/ace/INet/RequestHandler.cpp:
+ * protocols/ace/INet/RequestHandler.h:
+ * protocols/ace/INet/Response.cpp:
+ * protocols/ace/INet/Response.h:
+ * protocols/ace/INet/Sock_IOStream.cpp:
+ * protocols/ace/INet/Sock_IOStream.h:
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/StreamHandler.h:
+ * protocols/ace/INet/StreamInterceptor.cpp:
+ * protocols/ace/INet/StreamInterceptor.h:
+ * protocols/ace/INet/String_IOStream.cpp:
+ * protocols/ace/INet/String_IOStream.h:
+ * protocols/ace/INet/URLBase.cpp:
+ * protocols/ace/INet/URLBase.h:
+ * protocols/ace/INet/URLBase.inl:
+ New ACE addon library for Inet protocol clients (and possibly servers
+ at some point) like http://, ftp:// etc.
+ NOTE: This is work in progress!
+ The functionality currently available is needed for the new
+ DAnCE ArtifactInstallation framework.
+
+ * protocols/ace/INet/HTTP_Simple_exec.cpp:
+ Simple example program using INet.
+
+ * protocols/ace/INet/inet.mpc:
+ MPC project for library and simple example.
+
+ * protocols/tests/INet:
+ * protocols/tests/INet/MT_Get:
+ * protocols/tests/INet/MT_Get/Main.cpp:
+ * protocols/tests/INet/MT_Get/test.mpc:
+ Test for the new ACE INet library.
+ Tests multithreaded clients.
+
+ * bin/MakeProjectCreator/config/inet.mpb:
+ New MPC base project for INet dependent projects.
+
+Thu Jun 3 21:34:23 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Sock_Connect.cpp:
+
+ Removed confusing comment.
+
+Wed Jun 2 15:27:06 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Handle_Gobbler.inl:
+ * ace/Log_Msg_UNIX_Syslog.h:
+ Added missing include directives.
+
+Mon May 31 11:26:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * etc/index.html:
+ Updated for the 5.7.9 release and prepared for the upcoming 5.8.0
+ release
+
+Mon May 31 09:04:48 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.9 released.
+
+Sat May 29 02:18:06 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/config-macosx-leopard.h:
+
+ Added ACE_HAS_VOID_UNSETENV.
+
+Sat May 29 02:08:16 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/ace_for_tao.mpc:
+
+ Added Process_Manager, which is used in CIAO.
+
+Fri May 28 19:56:20 UTC 2010 Chad Beaulac <chad.beaulac@objectivesolutions.com>
+
+ * ace/Service_Repository.cpp:
+ Fixed memory leak by removing this->service_array_[i] = 0
+ in fini method.
+ Bug was introduced by #3334 fix. This fixes it thanks
+ to Vladimir Zykov for pointing this out.
+
+Fri May 28 16:16:13 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Add tpp to cpp files list
+
+Mon May 24 15:17:41 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm:
+
+ Use $(KEEP_GOING) so that when make is run with -k and multiple
+ commands are run for a single target, subsequent commands are tried
+ even if the earlier command fails.
+
+Mon May 24 14:42:57 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_dirent.cpp:
+ Small code improvements to closedir
+
+ * tests/FlReactor_Test.cpp:
+ Small changes
+
+Mon May 24 14:40:11 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/rules.lib.GNU:
+
+ Fixed a bug introduced by my earlier commit of this file today.
+ The value needs to be different in LN_S=cp vs. LN_S=ln scenarios.
+
+ * include/makeinclude/rules.local.GNU:
+
+ Echo back the ln or cp command used for symlinking/copying the
+ library or executable to the libout/dllout/exeout location.
+ This takes the place of the old "Installing..." messages which are
+ too confusing now that we have "make install".
+
+Mon May 24 14:16:15 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/rules.local.GNU:
+
+ Further refinement and simplification of commands for LN_S=cp.
+ This may work on OpenVMS.
+
+Mon May 24 11:56:32 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/rules.lib.GNU:
+ * include/makeinclude/rules.local.GNU:
+
+ Fixed cases where LN_S=cp.
+
+ * apps/gperf/src/gperf.mpc:
+
+ Using $(MKDIR) instead of raw mkdir.
+
+Fri May 21 21:30:46 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ACE-INSTALL.html:
+ * NEWS:
+
+ Documented "make install"
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Changed the libcheck message to look more like the requires/avoids
+ messages.
+
+Thu May 20 22:05:24 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/ace_tests.lst:
+ * tests/run_test.lst:
+
+ Added !ARCH to two tests that won't run properly in ARCH builds.
+
+Thu May 20 21:50:35 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/PerlACE/Process_Unix.pm:
+ * bin/PerlACE/Process_Win32.pm:
+
+ With ARCH builds, if the executable ends in "perl", don't look for
+ it in the ARCH directory.
+
+Thu May 20 18:40:46 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ For "make install", if MPC_ROOT is not defined, guess ACE_ROOT/MPC.
+
+Wed May 19 22:06:37 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Apply a "collapse slashes" function to exeout, libout, and dllout.
+ This will transform paths with consecutive slashes into the same
+ logical path with just a single slash. The multiple slahses caused
+ unexepected results with the "test" comparison in rules.local.GNU and
+ also with bin/add_rel_link.sh.
+
+Wed May 19 14:57:54 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ For Define_Custom commands, skip looking in the ARCH directory
+ if the command already contains a quote character (because the
+ command may actually be a script/executable followed by initial
+ arguments).
+
+Wed May 19 11:29:14 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Dev_Poll_Reactor.h:
+ * ace/Dev_Poll_Reactor.cpp:
+ * ace/Dev_Poll_Reactor.inl:
+ This fixes bug 3848. Now ACE_Dev_Poll_Reactor::Handler_Repository
+ will maintain its max and current size.
+ ACE_Dev_Poll_Reactor::size() will return number of handlers
+ registered in the reactor. Also this commit fixes code formatting
+ and simplifies conditionally compiled code.
+
+Wed May 19 02:18:13 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/config/mc_test_utils.mpb:
+
+ Moving this file up to the common mpb area because many scoreboard
+ builds are not set up to include mpbs from the workspace directory.
+ This is not ideal because this file will end up getting installed.
+
+ * examples/mc_test_utils.mpb:
+
+ Removed this file (moved it to bin/MakeProjectCreator/config).
+
+Tue May 18 21:34:34 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ACEXML/apps/svcconf/svcconf.mpc:
+ * ACEXML/common/common.mpc:
+ * ACEXML/parser/parser/parser.mpc:
+ * Kokyu/Kokyu.mpc:
+ * ace/ETCL/ETCL.mpc:
+ * ace/Monitor_Control/Monitor_Control.mpc:
+ * ace/QoS/qos.mpc:
+ * ace/SSL/ssl.mpc:
+ * ace/SSL/ssl_for_tao.mpc:
+ * ace/ace.mpc:
+ * apps/JAWS/server/server.mpc:
+ * apps/gperf/src/gperf.mpc:
+ * bin/MakeProjectCreator/config/MPC.cfg:
+ * bin/MakeProjectCreator/config/install.mpb:
+ * bin/MakeProjectCreator/config/install_data.mpb:
+ * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm:
+ * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm:
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ * bin/PerlACE/Process_Unix.pm:
+ * bin/PerlACE/Process_Win32.pm:
+ * bin/PerlACE/Run_Test.pm:
+ * bin/PerlACE/TestTarget.pm:
+ * contrib/minizip/minizip.mpc:
+ * include/makeinclude/macros.GNU:
+ * include/makeinclude/rules.common.GNU:
+ * include/makeinclude/rules.local.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ * protocols/ace/HTBP/HTBP.mpc:
+ * protocols/ace/RMCast/RMCast.mpc:
+ * protocols/ace/TMCast/TMCast.mpc:
+
+ Added support for "make install" with the gnuace makefiles (bug 3244)
+ Improved support for ARCH builds: executables will go to the ARCH
+ subdirectory and MPC requires/avoids are properly accounted for in
+ the gnuace template.
+ Other minor improvements to the gnuace template.
+
+ * examples/Monitor/Bytes_Sent/Bytes_Sent.mpc:
+ * examples/Monitor/CPU_Load/CPU_Load.mpc:
+ * examples/Monitor/Constraint/Constraint.mpc:
+ * examples/Monitor/Group/Group.mpc:
+ * examples/Monitor/MC_Test_Utilities.h:
+ * examples/Monitor/MC_Test_Utilities.cpp:
+ * examples/Monitor/MC_Test_Utilities.mpc:
+ * examples/Monitor/Memory_Usage/Memory_Usage.mpc:
+ * examples/Monitor/Message_Queue_Size/Message_Queue_Size.mpc:
+ * examples/Monitor/Num_Threads/Num_Threads.mpc:
+ * examples/example_base.mpb:
+ * examples/mc_test_utils.mpb:
+ * tests/Atomic_Op_Test.cpp:
+ * tests/Auto_IncDec_Test.cpp:
+ * tests/Bug_2975_Regression_Test.cpp:
+ * tests/Bug_3319_Regression_Test.cpp:
+ * tests/Bug_3500_Regression_Test.cpp:
+ * tests/Bug_3541_Regression_Test.cpp:
+ * tests/Framework_Component_Test.cpp:
+ * tests/Get_Opt_Test.cpp:
+ * tests/Multicast_Test.cpp:
+ * tests/Multicast_Test_IPV6.cpp:
+ * tests/Reactor_Registration_Test.cpp:
+ * tests/SSL/Bug_2912_Regression_Test.cpp:
+ * tests/SSL/SSL_Asynch_Stream_Test.cpp:
+ * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp:
+ * tests/Singleton_Test.cpp:
+ * tests/Test_Output.cpp:
+ * tests/Thread_Pool_Reactor_Resume_Test.cpp:
+ * tests/Thread_Pool_Reactor_Test.cpp:
+ * tests/Timeprobe_Test.cpp:
+ * tests/Timer_Cancellation_Test.cpp:
+ * tests/Token_Strategy_Test.cpp:
+ * tests/WFMO_Reactor_Test.cpp:
+ * tests/test_config.h:
+
+ Adjusted tests and examples to be able to build outside of the
+ ACE_ROOT tree, which is how we can verify that an "installed" ACE
+ is properly installed.
+
+Mon May 17 11:32:52 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/Dev_Poll_Reactor_Test.cpp:
+ Fixed 2 memory leaks in this test. Previously both client and
+ server svc handlers were leaked. After fixing that it turned out
+ that client is not able to finish properly as its reactor is not
+ shutdown. The later was happening because server was reaching
+ desired exit condition faster and once it get closed client could
+ never get a chance to reach its own exit condition. So, in short,
+ there is no point in this test to run client side reactor if the
+ client's svc handler got closed.
+
+Fri May 14 22:22:33 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ace/OS_NS_Thread.cpp:
+
+ Added another #ifdef guard around ace_wb_exec(), since it's not
+ appropriate for all use cases (see Fri Mar 19 13:23:18 UTC 2010).
+
+Thu May 13 21:47:59 UTC 2010 Thomas Girard <thomas.g.girard@free.fr>
+
+ * ace/ace_qt4reactor.mpc:
+ Explicit the file on which moc must operate. This removes a warning
+ during ACE_QtReactor build when moc was invoked.
+
+Wed May 12 08:38:50 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * examples/Timer_Queue/Custom_Handler.h:
+ * examples/Timer_Queue/Custom_Handler.cpp:
+ * examples/Timer_Queue/Timer_Queue.mpc:
+ Custom_Handler wasn't a template so removed
+ all template declarations. This should resolve
+ the static link issues on the scoreboard.
+
+Tue May 11 06:52:16 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * examples/Timer_Queue/Custom_Handler.h:
+ * examples/Timer_Queue/Custom_Handler.cpp:
+ Layout changes. Resolved linker errors on static
+ windows builds.
+
+Fri May 7 09:07:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Timer_Queue/Custom_Handler.h:
+ * examples/Timer_Queue/Custom_Handler.cpp:
+ Fixed gcc warnings
+
+Thu May 6 12:48:08 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp:
+ * examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.cpp:
+ * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
+ Fixed fuzz and removed some not used arguments
+
+Thu May 6 12:01:16 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Timer_Queue/Async_Timer_Queue_Test.h:
+ * examples/Timer_Queue/Async_Timer_Queue_Test.cpp:
+ * examples/Timer_Queue/Custom_Handler.h:
+ * examples/Timer_Queue/Custom_Handler.cpp:
+ * examples/Timer_Queue/Driver.h:
+ * examples/Timer_Queue/Driver.cpp:
+ * examples/Timer_Queue/Reactor_Timer_Queue_Test.h:
+ * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp:
+ * examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.h:
+ * examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.cpp:
+ * examples/Timer_Queue/Thread_Timer_Queue_Test.h:
+ * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
+ * examples/Timer_Queue/Timer_Queue.mpc:
+ * examples/Timer_Queue/main_async.cpp:
+ * examples/Timer_Queue/main_reactor.cpp:
+ * examples/Timer_Queue/main_thread.cpp:
+ * examples/Timer_Queue/main_thread_custom_handler.cpp:
+ Converted to doxygen style and added a seperate example that uses
+ a thread timer queue with customer event handler.
+
+Thu May 6 11:43:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/QOS/Diffserv/run_test.pl:
+ * examples/Reactor/TP_Reactor/run_test.pl:
+ Use TestTarget
+
+ * tests/OS_Test.cpp:
+ Prefix increment, const changes
+
+Wed May 5 16:17:15 UTC 2010 Chad Beaulac <chad@objectivesolutions.com>
+
+ * ace/Service_Object.cpp:
+ Setting type_ to 0 in ACE_Service_Type::fini after call to
+ type_->fini ()
+ This allows us to check for the value 0 in the double
+ loop inside ASR::fini
+
+ * ace/Service_Repository.cpp:
+ Checking for s->type () != 0 inside ASR::fini
+ This ensures we don't access ACE_Service_Type instances that
+ have been fini'd already.
+
+ This resolves Bugzilla #3847
+
+Tue May 4 21:23:44 UTC 2010 Chad Beaulac <chad@objectivesolutions.com>
+
+ * ace/Stream.cpp:
+ Added debug and warning logging in ACE_Stream::remove
+
+ * ace/Service_Types.cpp:
+ One of problems is that ACE_Module_Type::name gets its
+ value from the svc.conf file. The ACE_Module that it references
+ gets its name from the static factory method used to create the
+ module. When the names don't match the call to ACE_Stream_Type::fini
+ fails to remove any ACE_Modules from the underlying ACE_Stream.
+ Since none of the ACE_Modules are removed, ACE_Module_Type::fini
+ tries to call fini on the ACE_Module reader and writer ACE_Task
+ instances. And they've already been deleted by ACE_Stream::close
+ called from ACE_Stream_Type::fini.
+
+ Reassigned ACE_Module::name in ACE_Module_Type::init to
+ ACE_Module_Type::name and fixed the SEGV at shutdown because of the
+ issue described above.
+
+ All of these issues are related: #3334 #3205 #2916 #3847
+
+Thu Apr 29 03:34:56 UTC 2010 Chris Cleeland <cleeland@ociweb.com>
+
+ * ace/Stack_Trace.cpp: Clarified origins of platform-specific
+ code in the leading comments for the file.
+
+Wed Apr 28 09:23:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ * netsvcs/lib/TS_Server_Handler.cpp:
+ Use %C for logging the hostname instead of %s. This fixes bugzilla
+ 3846, thanks to Christian Freund <freund at wrz dot de> for reporting
+ this
+
+Mon Apr 26 08:29:58 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/SSL/SSL_Asynch_Stream_Test.cpp:
+ * tests/SSL/Bug_2912_Regression_Test.cpp:
+ * tests/Proactor_UDP_Test.cpp:
+ * tests/MT_Reference_Counted_Event_Handler_Test.cpp:
+ * tests/Proactor_Test_IPV6.cpp:
+ * tests/Bug_2740_Regression_Test.cpp:
+ * tests/Dev_Poll_Reactor_Test.cpp:
+ * tests/Proactor_Test.cpp:
+ * tests/TP_Reactor_Test.cpp:
+ All these tests need to block SIGPIPE signal. POSIX defines that
+ newly created threads must inherit signal mask from the creating
+ thread. The later doesn't happen at least on Solaris 10. With this
+ change each new thread in the above tests will block SIGPIPE signal
+ individually.
+
+Thu Apr 22 07:51:42 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * Release:
+ * bin/make_release.py:
+ Updated because of rename
+
+ * debian:
+ * debianbuild:
+ Renamed debianbuild to debianbuild
+
+Wed Apr 21 13:36:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Connection/blocking/SPIPE-connector.cpp:
+ Use Reactor instead of Proactor, thanks to Dave <dwh0403 at 163 dot com>
+ for reporting this
+
+Tue Apr 20 13:02:46 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.h:
+ Fix redefinition warning
+
+Mon Apr 19 18:17:30 UTC 2010 UTC 2010 Chad Beaulac <chad@objectivesolutions.com
+
+ * ace/Service_Repository.cpp:
+ Modified ASR::fini to print debug info for empty
+ service entries and handle empty service entries.
+ This fixes the ASR remove functionality that was
+ one of the reasons SC_Server was crashing at shutdown.
+
+ * examples/ASX/CCM_App/SC_Server.cpp:
+ Removing signal handler before main exit to present SEGV
+
+ * tests/run_test.lst:
+ Removed !FIXED_BUGS_ONLY from Bug_3334_Regression_Test
+ Apparently it was missed in the last commit.
+
+ This fixes Bugzilla #2916 and #3205.
+ I'll create another patch for #3334 after this commit.
+
+Mon Apr 19 12:44:56 UTC 2010 Chad Beaulac <chad@objectivesolutions.com>
+
+ * ace/Service_Types.h
+ * ace/Service_Types.inl
+ * ace/Service_Types.cpp
+ Added service_type_ attr to expose the type of service being
+ managed to the ACE_Service_Repository. This allows the ASR to
+ manage the lifecycle of the ACE_Module and ACE_Stream in order to
+ avoid a double delete of ACE_Module at shutdown.
+
+ ACE_Stream_Type::fini was modified to not call ACE_Module_Type::fini
+ as this will results in a double delete when ACE_Service_Repository::fini
+ is called. ACE_Stream_Type::remove(module_name) was modified to not call
+ ACE_Module_Type::fini as this will results in a double delete
+ when ACE_Service_Repository::fini is called also.
+
+ * ace/Service_Repository.cpp
+ Modified ASR::fini to iterate over the service_array_ twice.
+ ACE_Service_Type::fini is called on all ACE_Stream_Type and
+ ACE_Service_Object_Type instances first. Then, fini is called on
+ all ACE_Modules_Type instances. All calls to fini are done in the
+ order the services appear in the ASR::service_array_ except for
+ the grouping described here. The calls to ACE_Module_Type::fini
+ must be done last because ACE_Stream_Type::fini accesses the Modules
+ so they must not be deleted by a call to ACE_Module_Type::fini
+ before that.
+
+ * tests/Bug_3334_Regresssion_Test.cpp
+ Added call to ACE_Service_Repository::fini_svcs() to capture all
+ debug output before the application exits.
+
+ * tests/run_tests.lst
+ Removed !FIXED_BUGS_ONLY from Bug_3334_Regression_Test
+
+ This fixes Bugzilla #3334
+
+Mon Apr 19 06:54:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ Enabled LightWeigth CCM as default, if you want to use the
+ full ccm features set ccm_lw to 0 in your default.features file
+
+Fri Apr 16 13:02:04 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.h:
+ * ace/Atomic_Op.inl:
+ * ace/Atomic_Op.cpp:
+ * ace/config-sunos5.10.h:
+ Added support for the Solaris 10 Atomic support, thanks
+ to Aleksandar Vukajlovic <aleksandar dot vukajlovic at finsoft dot rs>
+ for providing the patches
+
+Wed Apr 14 11:22:27 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.cpp: Fixed compile error on some g++ versions.
+
+Tue Apr 13 20:34:40 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * bin/PerlACE/Process_Unix.pm: Fix typo that broke all tests.
+
+Tue Apr 13 19:34:40 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.{h cpp}: Reorder the enqueue/pipe operations
+ when adding a notification to close the race where notifies can get
+ lost in the ACE_HAS_NOTIFICATION_QUEUE case. Also fixed a misplaced
+ #endif in read_notification_pipe() and cleaned it up some.
+
+Mon Apr 12 09:31:54 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/TestTarget_WinCE.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ * bin/PerlACE/Process_Unix.pm:
+ * bin/PerlACE/ProcessLVRT.pm:
+ * bin/PerlACE/TestTarget.pm:
+ * bin/PerlACE/TestTarget_VxWorks.pm:
+ * bin/PerlACE/ProcessVX.pm:
+ * bin/PerlACE/TestTarget_LVRT.pm:
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/Process_Win32.pm:
+ * bin/PerlACE/Run_Test.pm:
+ * bin/PerlACE/Process_VMS.pm:
+
+ Added support for running multiplatform tests using remote shell
+ connections.
+ Currently only supported for *nix-like platforms
+ (like Linux PPC64 <-> Linux x86_64).
+
+Thu Apr 8 21:25:54 UTC 2010 Abdul Sowayan <sowayan@gmail.com>
+
+ * ace/OS_NS_netdb.cpp:
+
+ Fixed compile time error encountered in MAC and iPhone platforms.
+
+Thu Apr 8 14:51:45 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * docs/ACE-guidelines.html: Clarified the style recommendations
+ for loop and if statement bodies.
+
+Wed Apr 7 16:27:46 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/cle.pl:
+
+ Added the ability to use an environment variable (CL_CHANGELOG_FILE)
+ to specify the name of the ChangeLog file to use.
+
+Tue Apr 6 14:37:38 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ACE-INSTALL.html (http): Updated the link to the OCI MPC
+ website. Thanks to Tim <tim at burmair dot com> for suggesting
+ this.
+
+Wed Apr 7 07:06:31 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ ccm_lw is disabled by default
+
+Tue Apr 06 06:08:48 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/os_stddef.h:
+ Fixed incorrect semicolon
+
+ * ace/OS_NS_netdb.cpp:
+ Initialise pointers to 0
+
+ * configure.ac:
+ Fix for cross compilation, thanks to Ed Blackmond
+ <ed dot blackmond at themis dot com> for reporting this
+
+Fri Apr 02 13:57:48 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Updated latest release date
+
+ * bin/generate_rel_manpages:
+ Don't automatically copy the files to ISIS, added the copy
+ step to the release instructions
+
+ * docs/bczar/bczar.html:
+ Small improvements and manually copy the html files using
+ scp. Makes it easier to run this from another host
+
+ * docs/Download.html:
+ Updated links to point to x.7.8
+
+ * html/index.html:
+ Added link for x.7.8
+
+ * NEWS:
+ Added 5.7.8 section
+
+Fri Apr 02 10:50:48 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.7.8 released.
+
+Tue Mar 30 09:38:08 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/*:
+ Pulled in latest files from pkg-ace
+
+Tue Mar 30 09:34:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Thread_Timer_Queue_Adapter_Test.cpp:
+ Fixed compilation problems with single threaded builds
+
+Tue Mar 30 07:50:02 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/MT_NonBlocking_Connect_Test.cpp:
+ Fixed compilation problem for single threaded builds.
+
+Mon Mar 29 12:25:38 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * tests/NDDS_Timer_Test.cpp:
+ Resolved test issues.
+
+Mon Mar 29 11:05:23 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * tests/NDDS_Timer_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Added timer test which uses the ndds timers.
+
+Mon Mar 29 06:59:08 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/ace_qt4reactor.mpb:
+ New base project, thanks to Marek Brudka <mbrudka at aster dot pl>
+ for providing this
+
+Mon Mar 29 06:54:08 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/*:
+ Pulled in latest files from pkg-ace
+
+Fri Mar 26 14:07:55 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.{h inl cpp}: Refinements to the way notifies
+ are handled:
+ 1. The notify handler was being dispatched multiple times per
+ notify; this has been fixed, which increases performance.
+ 2. Notifications are now dispatched in only one thread at a time.
+ This brings more parity to the way notifies are handled in
+ other reactor implementations.
+
+Fri Mar 26 13:43:08 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/tao-utils.install:
+ Corrected filenames
+
+ * debianbuild/libtao-orbsvcs-dev.install:
+ Added missing libraries
+
+Fri Mar 26 09:02:50 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/run_test.pl:
+ Added -l option which allows to run tests selectively.
+
+Wed Mar 24 07:17:22 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * bin/fuzz.pl:
+ Added dds4ccm_trace checks.
+
+Tue Mar 23 10:59:08 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/patches/34-bts386713.dpatch:
+ Updated from debian
+
+Fri Mar 19 16:52:08 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/MT_NonBlocking_Connect_Test.cpp:
+ And another attempt to workaround WFMO reactor. The previous
+ changes could break the test on other platforms.
+
+Fri Mar 19 16:44:37 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.cpp (find_handler): If the handle isn't
+ registered, don't try to dereference a null pointer; return 0.
+
+Fri Mar 19 16:16:30 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/MT_NonBlocking_Connect_Test.cpp:
+ Fixed a typo in previous commit.
+
+Fri Mar 19 15:58:52 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/MT_NonBlocking_Connect_Test.cpp:
+ Fixed a test on Windows for WFMO reactor which doesn't support
+ work_pending() function.
+
+Fri Mar 19 13:23:18 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ace/OS_NS_Thread.cpp:
+
+ Added a helper function for starting tasks on VxWorks.
+
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ * bin/PerlACE/TestTarget_VxWorks.pm:
+
+ Fixed a bug that was triggered with CreateProcess was called with
+ only one argument.
+ Also, set the correct relative path to the executable when it's not
+ in the current directory.
+
+Fri Mar 19 08:56:29 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Added support for archmodelflag
+
+Thu Mar 18 10:40:29 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/NonBlocking_Conn_Test.cpp:
+ Made logging a bit more verbose.
+
+Wed Mar 17 20:00:45 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * include/makeinclude/platform_linux_common.GNU: Make the ARFLAGS
+ setting overridable.
+
+Wed Mar 17 14:24:20 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Logging_Strategy.cpp:
+ * ace/Logging_Strategy.h:
+ Extended ACE_Logging_Strategy to allow safely change reactor
+ used by this logging strategy.
+
+Wed Mar 17 11:58:10 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ Committed the changes that I had to revert before x.7.7.
+
+ * ace/Strategies_T.cpp:
+ Changed the code so that close() is called in case of failure
+ instead of destroy().
+
+ * ace/Connector.cpp:
+ * ace/Connector.h:
+ Changed the fix for bug#3731. Now NBCH adds a reference in
+ constructor and removes it in destructor if the SVC_HANDLER that
+ it owns is reference counted. This is a cleaner solution than the
+ one used before.
+
+ * tests/NonBlocking_Conn_Test.h:
+ * tests/Process_Strategy_Test.cpp:
+ * tests/NonBlocking_Conn_Test.cpp:
+ Extended NonBlocking_Conn_Test and changed Process_Strategy_Test
+ because of the change in Strategies_T.cpp.
+
+ * tests/MT_NonBlocking_Connect_Test.cpp:
+ * tests/tests.mpc:
+ * tests/run_test.lst:
+ Added a new test. This can be a reproducer for the bug#3731 which
+ currently doesn't have its own test.
+
+Wed Mar 17 08:57:30 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Service_Gestalt.h:
+ * ace/Service_Config.h:
+ Extended doxygen documentaion related to the order of processing
+ of command-line directives and service configuration files.
+
+ * ace/Service_Gestalt.cpp:
+ Changed the order of processing. First, service configuration files
+ are processed then command-line directive. This way default svc.conf
+ can not override results of user provided command-line directives.
+
+ * NEWS:
+ Added a news entry for this change.
+
+Mon Mar 15 20:08:32 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-WinCE.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-lynxos.h:
+ * ace/config-netbsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-sunos5.10.h:
+ * ace/config-sunos5.5.h:
+ * ace/config-vxworks6.4.h:
+ * configure.ac:
+ Removed floorl and ceill related settings which are no longer
+ needed.
+
+Mon Mar 15 12:50:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ When generating with -static set static_libs_only to 1. This fixes
+ bugzilla 3815. Thanks to Chad Elliot for assisting with this
+
+Mon Mar 15 09:41:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Reverted change below, it breaks unix builds
+
+ Mon Mar 15 07:58:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/High_Res_Timer.cpp
+ * ace/High_Res_Timer.h
+ * ace/High_Res_Timer.inl
+ Use 64bit calculations to increase our precision. If you want to have the 32bit
+ calculations, add ACE_USE_WINDOWS_32BIT_HIGH_RES_TIMER_CALCULATIONS as define. If
+ the scoreboard doesn't show any platforms requiring 32bit, we will remove that code
+ before the next micro release goes out
+ Thanks to Alon Diamant <diamant dot alon at gmail dot com> for supplying the patches.
+ This fixes bugzilla 3703.
+
+Mon Mar 15 07:58:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/High_Res_Timer.cpp
+ * ace/High_Res_Timer.h
+ * ace/High_Res_Timer.inl
+ Use 64bit calculations to increase our precision. If you want to have the 32bit
+ calculations, add ACE_USE_WINDOWS_32BIT_HIGH_RES_TIMER_CALCULATIONS as define. If
+ the scoreboard doesn't show any platforms requiring 32bit, we will remove that code
+ before the next micro release goes out
+ Thanks to Alon Diamant <diamant dot alon at gmail dot com> for supplying the patches.
+ This fixes bugzilla 3703.
+
+ * ace/Timer_Queue_Adapters.cpp
+ * ace/Timer_Queue_Adapters.h
+ * ace/Timer_Queue_Adapters.inl
+ Make it possible to use a customer event handler in ACE_Thread_Timer_Queue_Adapter.
+ Thanks to Alon Diamant <diamant dot alon at gmail dot com> for supplying the patches.
+ This fixes bugzilla 3614
+
+ * tests/tests.mpc:
+ * tests/Thread_Timer_Queue_Adapter_Test.cpp:
+ New test for testing custom event handlers in ACE_Thread_Timer_Queue_Adapter.
+ Thanks to Alon Diamant <diamant dot alon at gmail dot com> for creating
+ this new test
+
+Fri Mar 12 21:53:30 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/PerlACE/ProcessVX.pm:
+ * bin/PerlACE/ProcessVX_Unix.pm:
+
+ Added an option to use the 'expect' program to interact with
+ the remote target (via telnet). This is only enabled when the
+ environment variable ACE_RUN_VX_USE_EXPECT is defined.
+
+ * tests/Log_Msg_Test.cpp:
+
+ Updated the ACE_VXWORKS version check to include version 6.8.
+
+ * tests/run_test.lst:
+
+ Added !VxWorks to exclude Pipe_Test which can't be run
+ on VxWorks (kernel mode) because it depends on ACE_Process::spawn().
+
+Fri Mar 12 12:09:02 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_math.h:
+ * ace/OS_NS_math.inl:
+ Rewrote ceil and floor functions using templates and overloaded
+ ceil/floor functions provided by standard C++.
+
+ * tests/OS_Test.cpp:
+ Added tests for ceil(float) and floor(float).
+
+Thu Mar 11 09:33:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-g++-common.h:
+ PPU 4.1.1 for PPC doesn't have atomic builtin support
+ for datatypes of size 1 and 2
+
+ * ace/Atomic_Op.h:
+ * ace/Atomic_Op.inl:
+ Added defines to just disable short/unsigned short/bool specializations
+
+ * tests/run_test.lst:
+ Enable 2610 but mark it as not fixed
+
+ * ace/Process_Manager.cpp:
+ Layout change
+
+ * ace/WIN32_Asynch_IO.cpp:
+ Const changes
+
+Wed Mar 10 10:31:16 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Svc_Handler.cpp:
+ * tests/run_test.lst:
+ Fixed bug#2609 and enabled the test for it. Thanks to Milan
+ Cvetkovic <milan dot cvetkovic at mpathix dot com> for
+ contributing this.
+
+Tue Mar 9 12:20:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Added CXX_MACHINE
+
+Mon Mar 8 15:36:55 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/mpc.pl:
+ * bin/mwc.pl:
+
+ Some platforms have been reported to return undef from
+ $FindBin::RealBin. In this case, fall back on dirname($0).
+
+Mon Mar 8 13:53:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op_GCC_T.inl:
+ Fixed gcc warning
+
+Mon Mar 8 08:35:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.h:
+ * ace/Atomic_Op.inl:
+ Added specializations for bool/unsigned short/short, is around 7 times
+ faster than the default atomic op
+
+Mon Mar 8 08:24:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Atomic_Op_Test.cpp:
+ Added tests for short/unsigned short/bool
+
+Fri Mar 5 14:02:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * configure.ac:
+ Added test for GCC builtin support
+
+Fri Mar 5 12:40:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.h:
+ * ace/Atomic_Op.inl:
+ We did a benchmark on a FC10 64bit system with the GCC builtin support
+ for long/unsigned long. In a release/inline build the performance
+ results using the GCC builtin support is around 2 times faster than
+ when using the ACE assembly version. When we have the GCC builtin support,
+ we now also going to use that for long/unsigned long.
+
+Fri Mar 5 12:20:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.h:
+ * ace/Atomic_Op.inl:
+ * ace/Atomic_Op_GCC_T.cpp:
+ * ace/Atomic_Op_GCC_T.h:
+ * ace/Atomic_Op_GCC_T.inl:
+ Added new Atomic template for the GCC builtin atomic op support.
+ This is used on PPC64/PPC32/IA64 for int/unsigned int/long/unsigned long.
+ On EM64T we do use this for int/unsigned int, the ACE assembly version for
+ long/unsigned long is faster than the GCC.
+
+ On FC10 64bit the int/unsigned int Atomic_Op is now around 6 to 7 times
+ faster than before this change
+
+ * ace/config-g++-common.h:
+ Enable the new builtin atomic also for EM64T
+
+ * ace/ace.mpc:
+ * ace/Makefile.am:
+ Added new files
+
+Fri Mar 5 11:30:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Atomic_Op_Test.cpp:
+ Print the number of iterations
+
+Fri Mar 5 11:28:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Atomic_Op_Test.cpp:
+ Also measure postfix increment/decrement
+
+Fri Mar 5 11:21:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Atomic_Op_Test.cpp:
+ Added more checks to make sure Atomic_Op does work
+
+Tue Mar 2 21:02:51 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.cpp (mask_ops_i): If the specified handle is
+ not registered, return -1 instead of crashing.
+
+Thu Mar 4 09:15:54 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/make_release.py:
+ Fix for problems with creating MPC release tag.
+
+Thu Mar 4 07:50:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Atomic_Op_Test.cpp:
+ Rewritten this test to use a template method so that we can
+ test atomic op easily for various data types
+
+ * ace/Time_Value.cpp:
+ Layout changes and fixed compile problem with CB2010. This fixes
+ bugzilla 3835, thanks to Jan Kalin <jan dot kalin at zag dot si>
+ for reporting this.
+
+ * ace/config-win32-borland.h:
+ CB also has long timevalue mismatch
+
+Thu Mar 4 07:50:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for next micro
+
+ * rpmbuild/ace-tao.spec:
+ Fixed problem with installation of nslist readme
+
+ * etc/index.html:
+ Added 5.7.7
+
+ * docs/Download.html:
+ Updated for 5.7.7
+
+ * docs/bczar/bczar.html:
+ Several updates because we now package on a FC12 system
+
+ * debianbuild/rules:
+ Removed commented out part
+
+ * bin/make_release.py:
+ Next micro release will not ship msvc71 solutions, it is still
+ supported but the end user should generate the solutions him self.
+ Also WinCE solutions are not generated anymore for CIAO and the
+ autoconf bootstrapping is done much earlier in the release process
+ so when it fails we know early. The hostname check has been removed
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Updated because of micro release
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/ACE/ChangeLogs/ChangeLog-2011a b/ACE/ChangeLogs/ChangeLog-2011a
new file mode 100644
index 00000000000..b8c4fd40c09
--- /dev/null
+++ b/ACE/ChangeLogs/ChangeLog-2011a
@@ -0,0 +1,5943 @@
+Wed Apr 20 09:52:52 CEST 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 6.0.2 released.
+
+Sun Apr 17 17:48:54 UTC 2011 Chad Beaulac <chad@objectivesolutions.com>
+ * tests/Bug_3912_Regression_Test.conf
+ * tests/run_test.lst
+ * tests/Bug_3912_Regression_Test.cpp
+ * tests/tests.mpc
+ Removed 3912 Test and conf file.
+ Will re-add after code freeze for upcoming release.
+
+Sun Apr 17 14:11:52 UTC 2011 Chad Beaulac <chad@objectivesolutions.com>
+ * ace/Stream.cpp
+ Reverted previous commit. #3912 is not fixed.
+
+ * tests/run_test.lst
+ Added (not)FIX_BUGS_ONLY to Bug_3912_Regression_Test
+
+Sun Apr 17 13:30:23 UTC 2011 Chad Beaulac <chad@objectivesolutions.com>
+
+ * ace/Stream.cpp
+ ACE_Stream::remove(module) always calls close on the Module now.
+ It use to only call close when the flags was M_DELETE_NONE.
+
+ * tests/Bug_3912_Regression_Test.conf
+ * tests/Bug_3912_Regression_Test.cpp
+ Tests that close is called on an ACE_Task that's
+ the reader in a Module that's removed from the Stream.
+
+ * tests/Service_Config_Stream_DLL.cpp
+ Added make_close factory method for a new Module.
+
+ * tests/Bug_3334_Regression_Test.cpp
+ Initialized status variable to zero.
+
+ * tests/run_test.lst
+ * tests/tests.mpc
+ Added new test.
+
+Fri Apr 15 14:07:34 UTC 2011 Adam Mitz <mitza@ociweb.com>
+
+ * tests/Bug_3709_Regression_Test.cpp:
+
+ Work-around a clang compiler crash in this test.
+ A bugzilla bug has been filed with the clang project.
+
+Fri Apr 15 08:30:40 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3943_Regression_Test.cpp:
+ Fixed mingw warning
+
+Fri Apr 15 07:51:49 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ Disable coredx by default
+
+Thu Apr 14 19:17:04 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/Bug_3943_Regression_Test.cpp:
+
+ Scoreboard cleanup. "small" appears to be a reserved word on some
+ win32 builds.
+
+Thu Apr 14 09:27:20 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ Removed unused SOBUILD variable.
+
+Thu Apr 14 07:58:19 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/ACE.cpp:
+ * ace/config-lynxos.h:
+ * ace/os_include/sys/os_resource.h:
+ Removed legacy rlimit related settings.
+
+Wed Apr 13 13:29:13 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/Bug_3943_Regression_Test.cpp:
+
+ Still more scoreboard cleanup. The ACE defined iovec struct uses
+ u_long for the iovlen rather than size_t, and on x64 systems, size_t
+ is actually larger than u_long, so a "possible loss of data" warning
+ is generated when assigning from a size_t to a u_long.
+
+Wed Apr 13 09:39:09 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Time_Value_Test.cpp:
+ * tests/Bug_2434_Regression_Test.cpp:
+ Overflow problem is part of bugzilla 2434, only do the test there,
+ that way Time_Value_Test should run in all builds
+
+ * tests/ACE_Test.cpp:
+ * tests/Bug_3758_Regression_Test.cpp:
+ * tests/Date_Time_Test.cpp:
+ Layout changes
+
+Wed Apr 13 07:41:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Time_Value.inl:
+ Removed truncate_cast because it gives problems on Windows. Thanks
+ to Jonathan Saxton <jsaxton at appsecinc dot com>
+
+ * tests/Time_Value_Test.cpp:
+ Extended with new test for change above
+
+Tue Apr 12 20:39:11 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * NEWS:
+ Added a note about rand_r() and getpwnam_r() changes.
+
+Tue Apr 12 18:51:21 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/Bug_3943_Regression_Test.cpp:
+
+ More scoreboard cleanup.
+
+Mon Apr 11 17:21:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-qnx.h:
+ Another try to fix qnx 6.3
+
+Mon Apr 11 06:30:07 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Added support for no-optimize-sibling-calls
+
+Sun Apr 10 18:04:19 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-qnx.h:
+ Don't define _QNX_SOURCE, already defined by default
+
+Sun Apr 10 17:32:22 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-qnx.h:
+ qnx63 has much less than qnx65
+
+Sun Apr 10 17:03:49 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-qnx.h:
+ Made some fixes for qnx65
+
+ * include/makeinclude/platform_qnx_gcc.GNU:
+ Simplified
+
+Sun Apr 10 14:58:13 UTC 2011 Phil Mesnier <mesnier_p@ociwb.com>
+
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+
+ Bug_3943_Regression_Test needs to avoid ace_for_tao.
+
+Sat Apr 9 12:56:05 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/Bug_3943_Regression_Test.cpp:
+
+ Scoreboard cleanup.
+
+Sat Apr 9 08:29:15 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-qnx.h:
+ Added ACE_LACKS_ISWBLANK
+
+Fri Apr 8 21:55:21 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/OS_NS_sys_socket.cpp:
+
+ * tests/Bug_3943_Regression_Test.cpp:
+
+ Clean up code for non-windows builds. The test now runs on
+ non-windows, although the 3943 regression isn't actually
+ evaluated as the error is windows specfic.
+
+Fri Apr 8 13:35:54 UTC 2011 Adam Mitz <mitza@ociweb.com>
+
+ * ace/config-linux.h:
+ * include/makeinclude/platform_linux_clang.GNU:
+
+ Support for the Clang C++ compiler (http://clang.llvm.org) on Linux.
+
+Fri Apr 8 13:15:08 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/OS_NS_sys_socket.h:
+ * ace/OS_NS_sys_socket.inl:
+ * ace/OS_NS_sys_socket.cpp:
+
+ Fix for bug 3943, the regression test added the other day should
+ pass now.
+
+Thu Apr 7 11:40:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ Merged changes from Remedy work branch.
+
+ === start changelog ===
+
+ Mon Mar 21 17:58:15 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Lock.h:
+ * ace/Map_T.h:
+ * ace/WFMO_Reactor.h:
+ Doxygen updates
+
+ Mon Feb 28 13:32:56 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Local_Tokens.h:
+ Doxygen updates
+
+ Tue Feb 22 13:21:35 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Reactor.h:
+ * ace/WFMO_Reactor.h:
+ Doxygen updates
+
+ Sun Feb 20 12:47:05 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.inl:
+ * ace/OS_NS_Thread.cpp:
+ Removed ACE_HAS_NONSCALAR_THREAD_KEY_T, we don't have a config file
+ that defines this
+
+ * ace/TSS_Adapter.h:
+ * ace/TSS_Adapter.cpp:
+ * ace/TSS_T.cpp:
+ Added missing ACE_Export
+
+ * ace/os_include/os_signal.h:
+ Simplified ifdef checks
+
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ Removed exceptions, added cdt6
+
+ * ace/config-qnx.h:
+ * include/makeinclude/platform_qnx_gcc.GNU:
+ New files for QNX, simplified them and extended support for QNX 6.5
+
+ * include/makeinclude/platform_qnx_neutrino.GNU:
+ * include/makeinclude/platform_qnx_rtp_gcc.GNU:
+ Removed these files.
+
+ Mon Feb 14 18:02:20 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec:
+ Set explicit MPC_ROOT
+
+ === end changelog ===
+
+Wed Apr 6 14:39:10 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/tests.mpc:
+
+ Added Bug 3943 regression test to build.
+
+Wed Apr 6 14:14:59 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/Bug_3943_Regression_Test.cpp:
+ * tests/run_test.lst:
+
+ Adding new test prior to committing fix.
+
+Wed Apr 6 12:57:42 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/ACE-guidelines.html:
+
+ Updated emacs directive to remove trailing whitespace.
+
+Tue Apr 5 14:27:40 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ * protocols/ace/INet/URLBase.h:
+ Fixes for MingW32 link problem.
+
+Tue Apr 5 13:01:08 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * include/makeinclude/platform_macosx_iphone.GNU:
+
+ Added new feature, iphone_codesign, to only use the iPhone codesign
+ utility if explicitly set. Recent changes in behavior have make this
+ problematic in automated builds.
+
+Tue Apr 5 12:36:37 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Get_Opt.inl:
+ * ace/Guard_T.inl:
+ * ace/Guard_T.cpp:
+ * ace/Handle_Set.h:
+ * ace/Handle_Set.cpp:
+ * ace/Hash_Multi_Map_Manager_T.cpp:
+ * ace/Hashable.inl:
+ * ace/Hashable.cpp:
+ * ace/IO_SAP.inl:
+ * ace/IO_SAP.cpp:
+ Layout changes
+
+ * ace/Handle_Set.inl:
+ Removed some old includes, should not be a problem with the current
+ supported platforms
+
+ * bin/vx_repo_link.pl:
+ Removed this file, vxsim is not supported anymore
+
+Mon Apr 4 09:42:27 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * include/makeinclude/rules.local.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ Added support to build from symlinked project root.
+
+Thu Mar 31 12:59:08 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ If CROSS_COMPILE is set, set CROSS-COMPILE to 1
+
+Tue Mar 29 12:37:49 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/doxygen-convert-h.pl:
+ Also convert idl files
+
+ * apps/JAWS2/JAWS/Policy.h:
+ * apps/JAWS2/JAWS/Reaper.h:
+ * tests/Message_Queue_Test_Ex.cpp:
+ * tests/Wild_Match_Test.cpp:
+ Doxygen changes
+
+Tue Mar 29 07:09:56 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ * protocols/ace/INet/URLBase.h:
+ Made explicit export defs on nested classes default for all MSVC
+ compilers as it turns out VC10 is troubled by this deficiency
+ as well.
+
+Mon Mar 28 09:58:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp:
+ * netsvcs/clients/Tokens/invariant/invariant.cpp:
+ * netsvcs/clients/Tokens/mutex/test_mutex.cpp:
+ Fuzz fixes
+
+Mon Mar 28 07:50:45 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ASNMP/asnmp/vb.cpp:
+ * ASNMP/examples/get/get_async.cpp:
+ * ASNMP/tests/Gauge_Test.cpp:
+ * apps/Gateway/Gateway/gatewayd.cpp:
+ * apps/Gateway/Peer/peerd.cpp:
+ * apps/JAWS/clients/Blobby/blobby.cpp:
+ * apps/JAWS2/JAWS/IO_Handler.h:
+ * apps/JAWS2/JAWS/IO_Handler.cpp:
+ * apps/JAWS2/JAWS/Jaws_IO.h:
+ * apps/drwho/Hash_Table.h:
+ * protocols/tests/HTBP/Send_Recv_Tests/client.cpp:
+ * protocols/tests/HTBP/Send_Recv_Tests/server.cpp:
+ Fuzz fixes
+
+Mon Mar 28 07:41:37 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Extended to check for old documentation style
+
+ Converted to doxygen
+ * ASNMP/agent/agent_impl.h:
+ * ASNMP/agent/snmp_agent.h:
+
+ * ASNMP/asnmp/address.cpp:
+ * ASNMP/asnmp/asn1.cpp:
+ * ASNMP/asnmp/counter.cpp:
+ * ASNMP/asnmp/ctr64.cpp:
+ * ASNMP/asnmp/gauge.cpp:
+ * ASNMP/asnmp/integer.cpp:
+ * ASNMP/asnmp/octet.cpp:
+ * ASNMP/asnmp/oid.cpp:
+ * ASNMP/asnmp/pdu.cpp:
+ * ASNMP/asnmp/sagent.cpp:
+ * ASNMP/asnmp/snmp.cpp:
+ * ASNMP/asnmp/target.cpp:
+ * ASNMP/asnmp/timetick.cpp:
+ * ASNMP/asnmp/transaction.cpp:
+ * ASNMP/asnmp/vb.cpp:
+ * ASNMP/asnmp/wpdu.cpp:
+
+ * ASNMP/examples/get/get.cpp:
+ * ASNMP/examples/get/get_async.cpp:
+
+ * ASNMP/examples/next/next.cpp:
+
+ * ASNMP/examples/set/set.cpp:
+
+ * ASNMP/examples/trap/trap.cpp:
+
+ * ASNMP/examples/walk/walk.cpp:
+
+ * ASNMP/tests/Address_Test.cpp:
+ * ASNMP/tests/Counter64_Test.cpp:
+ * ASNMP/tests/Counter_Test.cpp:
+ * ASNMP/tests/Gauge_Test.cpp:
+ * ASNMP/tests/Integer_Test.cpp:
+ * ASNMP/tests/Octet_Test.cpp:
+ * ASNMP/tests/Oid_Test.cpp:
+ * ASNMP/tests/Target_Test.cpp:
+ * ASNMP/tests/Varbind_Test.cpp:
+ * ASNMP/tests/test_config.h:
+
+ * Kokyu/Kokyu_dsrt.h:
+
+ * ace/Codeset_Registry.h:
+ * ace/Codeset_Registry.inl:
+
+ * ace/ETCL/ETCL_l.cpp:
+ * ace/ETCL/ETCL_y.cpp:
+
+ * ace/OS_NS_signal.inl:
+
+ * apps/Gateway/Gateway/Concrete_Connection_Handlers.h:
+ * apps/Gateway/Gateway/Config_Files.h:
+ * apps/Gateway/Gateway/Connection_Handler.h:
+ * apps/Gateway/Gateway/Connection_Handler_Acceptor.h:
+ * apps/Gateway/Gateway/Connection_Handler_Connector.h:
+ * apps/Gateway/Gateway/Consumer_Dispatch_Set.h:
+ * apps/Gateway/Gateway/Event.h:
+ * apps/Gateway/Gateway/Event_Channel.h:
+ * apps/Gateway/Gateway/Event_Forwarding_Discriminator.h:
+ * apps/Gateway/Gateway/File_Parser.h:
+ * apps/Gateway/Gateway/Gateway.h:
+ * apps/Gateway/Gateway/Options.h:
+ * apps/Gateway/Gateway/gatewayd.cpp:
+
+ * apps/Gateway/Peer/Options.h:
+ * apps/Gateway/Peer/Peer.h:
+ * apps/Gateway/Peer/peerd.cpp:
+
+ * apps/JAWS/clients/Blobby/Blob.h:
+ * apps/JAWS/clients/Blobby/Blob_Handler.h:
+ * apps/JAWS/clients/Blobby/Options.h:
+ * apps/JAWS/clients/Blobby/blobby.cpp:
+
+ * apps/JAWS/clients/Caching/ID_Generator.h:
+ * apps/JAWS/clients/Caching/Local_Locator.h:
+ * apps/JAWS/clients/Caching/Locator_Request_Reply.h:
+ * apps/JAWS/clients/Caching/URL_Array_Helper.h:
+ * apps/JAWS/clients/Caching/URL_Locator.h:
+ * apps/JAWS/clients/Caching/URL_Properties.h:
+ * apps/JAWS/clients/Caching/http_client.cpp:
+ * apps/JAWS/clients/Caching/http_handler.h:
+ * apps/JAWS/clients/Caching/http_handler.cpp:
+
+ * apps/JAWS2/JAWS/IO_Handler.h:
+ * apps/JAWS2/JAWS/Jaws_IO.h:
+
+ * apps/drwho/BS_Client.h:
+ * apps/drwho/BS_Server.h:
+ * apps/drwho/Binary_Search.h:
+ * apps/drwho/CM_Client.h:
+ * apps/drwho/CM_Server.h:
+ * apps/drwho/Comm_Manager.h:
+ * apps/drwho/Drwho_Node.h:
+ * apps/drwho/File_Manager.h:
+ * apps/drwho/HT_Client.h:
+ * apps/drwho/HT_Server.h:
+ * apps/drwho/Hash_Table.h:
+ * apps/drwho/Multicast_Manager.h:
+ * apps/drwho/Options.h:
+ * apps/drwho/PMC_All.h:
+ * apps/drwho/PMC_Flo.h:
+ * apps/drwho/PMC_Ruser.h:
+ * apps/drwho/PMC_Usr.h:
+ * apps/drwho/PMS_All.h:
+ * apps/drwho/PMS_Flo.h:
+ * apps/drwho/PMS_Ruser.h:
+ * apps/drwho/PMS_Usr.h:
+ * apps/drwho/PM_Client.h:
+ * apps/drwho/PM_Server.h:
+ * apps/drwho/Protocol_Manager.h:
+ * apps/drwho/Protocol_Record.h:
+ * apps/drwho/Rwho_DB_Manager.h:
+ * apps/drwho/SL_Client.h:
+ * apps/drwho/SL_Server.h:
+ * apps/drwho/SML_Client.h:
+ * apps/drwho/SML_Server.h:
+ * apps/drwho/SMR_Client.h:
+ * apps/drwho/SMR_Server.h:
+ * apps/drwho/SM_Client.h:
+ * apps/drwho/SM_Server.h:
+ * apps/drwho/Search_Struct.h:
+ * apps/drwho/Select_Manager.h:
+ * apps/drwho/Single_Lookup.h:
+ * apps/drwho/client.cpp:
+ * apps/drwho/global.h:
+ * apps/drwho/server.cpp:
+
+ * netsvcs/clients/Tokens/collection/collection.cpp:
+
+ * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp:
+
+ * netsvcs/clients/Tokens/invariant/invariant.cpp:
+
+ * netsvcs/clients/Tokens/manual/manual.cpp:
+
+ * netsvcs/clients/Tokens/mutex/test_mutex.cpp:
+
+ * netsvcs/clients/Tokens/rw_lock/rw_locks.cpp:
+
+ * performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h:
+ * performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp:
+
+ * protocols/tests/HTBP/Send_Recv_Tests/client.cpp:
+ * protocols/tests/HTBP/Send_Recv_Tests/server.cpp:
+
+ * websvcs/lib/URL_Addr.h:
+
+Sat Mar 26 12:07:59 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ AIO is not available in single thread builds on LynxOS 4.x.
+
+Thu Mar 24 18:59:55 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Define ACE_LACKS_REALPATH on LynxOS 5.0. Platform has
+ function prototype but doesn't provide implementation.
+
+Thu Mar 24 18:31:21 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Misc/basic_func.h:
+ * performance-tests/Misc/basic_perf.cpp:
+ * performance-tests/Misc/childbirth_time.cpp:
+ * performance-tests/Misc/context_switch_time.cpp:
+ * performance-tests/Misc/preempt.cpp:
+ * performance-tests/Misc/test_naming.cpp:
+ * performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp:
+ * performance-tests/TCP/tcp_test.cpp:
+ * performance-tests/UDP/udp_test.cpp:
+ Converted to doxygen
+
+Thu Mar 24 13:26:32 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Bounded_Packet_Relay/BPR_Drivers.h:
+ * examples/Bounded_Packet_Relay/BPR_Drivers.cpp:
+ * examples/Bounded_Packet_Relay/BPR_Drivers_T.h:
+ * examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp:
+ * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h:
+ * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp:
+ * examples/Bounded_Packet_Relay/bpr_thread.cpp:
+ * examples/Connection/misc/Connection_Handler.cpp:
+ * examples/DLL/Magazine.h:
+ * examples/DLL/Newsweek.h:
+ * examples/DLL/Today.h:
+ * examples/IPC_SAP/UPIPE_SAP/ex1.cpp:
+ * examples/IPC_SAP/UPIPE_SAP/ex2.cpp:
+ * examples/IPC_SAP/UPIPE_SAP/ex3.cpp:
+ * examples/Log_Msg/test_callback.cpp:
+ * examples/Log_Msg/test_log_msg.cpp:
+ * examples/Log_Msg/test_ostream.cpp:
+ * examples/Logger/simple-server/Logging_Acceptor.h:
+ * examples/Logger/simple-server/Logging_Handler.h:
+ * examples/Logger/simple-server/Reactor_Singleton.h:
+ * examples/Misc/test_trace.cpp:
+ * examples/NT_Service/main.cpp:
+ * examples/NT_Service/ntsvc.h:
+ * examples/NT_Service/ntsvc.cpp:
+ * examples/OS/Process/imore.cpp:
+ * examples/OS/Process/process.cpp:
+ * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h:
+ * examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h:
+ * examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h:
+ * examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h:
+ * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h:
+ * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp:
+ * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h:
+ * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:
+ * examples/QOS/Change_Receiver_FlowSpec/receiver.cpp:
+ * examples/QOS/Change_Receiver_FlowSpec/sender.cpp:
+ * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h:
+ * examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h:
+ * examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h:
+ * examples/QOS/Change_Sender_TSpec/QoS_Util.h:
+ * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h:
+ * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp:
+ * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h:
+ * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:
+ * examples/QOS/Change_Sender_TSpec/receiver.cpp:
+ * examples/QOS/Change_Sender_TSpec/sender.cpp:
+ * examples/QOS/Simple/Fill_ACE_QoS.h:
+ * examples/QOS/Simple/FlowSpec_Dbase.h:
+ * examples/QOS/Simple/QoS_Signal_Handler.h:
+ * examples/QOS/Simple/QoS_Util.h:
+ * examples/QOS/Simple/Receiver_QoS_Event_Handler.h:
+ * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp:
+ * examples/QOS/Simple/Sender_QoS_Event_Handler.h:
+ * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp:
+ * examples/QOS/Simple/receiver.cpp:
+ * examples/QOS/Simple/sender.cpp:
+ * examples/Reactor/Misc/test_early_timeouts.cpp:
+ * examples/Reactor/Proactor/Aio_Platform_Test_C.cpp:
+ * examples/Reactor/Proactor/post_completions.cpp:
+ * examples/Reactor/Proactor/simple_test_proactor.cpp:
+ * examples/Reactor/Proactor/test_aiocb.cpp:
+ * examples/Reactor/Proactor/test_aiocb_ace.cpp:
+ * examples/Reactor/Proactor/test_aiosig.cpp:
+ * examples/Reactor/Proactor/test_aiosig_ace.cpp:
+ * examples/Reactor/Proactor/test_cancel.cpp:
+ * examples/Reactor/Proactor/test_end_event_loop.cpp:
+ * examples/Reactor/Proactor/test_multiple_loops.cpp:
+ * examples/Reactor/Proactor/test_proactor.cpp:
+ * examples/Reactor/Proactor/test_proactor2.cpp:
+ * examples/Reactor/Proactor/test_proactor3.cpp:
+ * examples/Reactor/Proactor/test_timeout.cpp:
+ * examples/Reactor/Proactor/test_timeout_st.cpp:
+ * examples/Reactor/Proactor/test_udp_proactor.cpp:
+ * examples/Reactor/WFMO_Reactor/APC.cpp:
+ * examples/Reactor/WFMO_Reactor/Abandoned.cpp:
+ * examples/Reactor/WFMO_Reactor/Console_Input.cpp:
+ * examples/Reactor/WFMO_Reactor/Directory_Changes.cpp:
+ * examples/Reactor/WFMO_Reactor/Exceptions.cpp:
+ * examples/Reactor/WFMO_Reactor/Handle_Close.cpp:
+ * examples/Reactor/WFMO_Reactor/Multithreading.cpp:
+ * examples/Reactor/WFMO_Reactor/Network_Events.cpp:
+ * examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp:
+ * examples/Reactor/WFMO_Reactor/Registration.cpp:
+ * examples/Reactor/WFMO_Reactor/Registry_Changes.cpp:
+ * examples/Reactor/WFMO_Reactor/Removals.cpp:
+ * examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp:
+ * examples/Reactor/WFMO_Reactor/Talker.cpp:
+ * examples/Reactor/WFMO_Reactor/Timeouts.cpp:
+ * examples/Reactor/WFMO_Reactor/Window_Messages.cpp:
+ * examples/Service_Configurator/Misc/main.cpp:
+ * examples/Threads/TSS_Data.h:
+ * examples/Threads/TSS_Obj.h:
+ * examples/Threads/TSS_Task.h:
+ * examples/Threads/future1.cpp:
+ * examples/Threads/future2.cpp:
+ * examples/Threads/process_manager.cpp:
+ * examples/Threads/task_five.cpp:
+ * examples/Threads/tss1.cpp:
+ * examples/Threads/tss2.cpp:
+ * examples/Timer_Queue/Custom_Handler.h:
+ * examples/Timer_Queue/Custom_Handler.cpp:
+ * examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.h:
+ * examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.cpp:
+ * examples/Timer_Queue/main_thread_custom_handler.cpp:
+ * examples/Web_Crawler/Command_Processor.h:
+ * examples/Web_Crawler/HTTP_URL.h:
+ * examples/Web_Crawler/Iterators.h:
+ * examples/Web_Crawler/Mem_Map_Stream.h:
+ * examples/Web_Crawler/Options.h:
+ * examples/Web_Crawler/URL.h:
+ * examples/Web_Crawler/URL_Addr.h:
+ * examples/Web_Crawler/URL_Status.h:
+ * examples/Web_Crawler/URL_Visitor.h:
+ * examples/Web_Crawler/URL_Visitor_Factory.h:
+ * examples/Web_Crawler/Web_Crawler.h:
+ * examples/Web_Crawler/main.cpp:
+ Converted to doxygen style of documentation
+
+Thu Mar 24 13:10:02 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/ACE_Init_Test.h:
+ * tests/ACE_Init_Test_Resource.h:
+ * tests/ACE_Init_Test_StdAfx.h:
+ * tests/Aio_Platform_Test.cpp:
+ * tests/Atomic_Op_Test.cpp:
+ * tests/Auto_Event_Test.cpp:
+ * tests/Auto_IncDec_Test.cpp:
+ * tests/Barrier_Test.cpp:
+ * tests/Based_Pointer_Test.cpp:
+ * tests/Based_Pointer_Test_Lib.cpp:
+ * tests/Basic_Types_Test.cpp:
+ * tests/Bound_Ptr_Test.h:
+ * tests/Buffer_Stream_Test.cpp:
+ * tests/Bug_2434_Regression_Test.cpp:
+ * tests/Bug_2653_Regression_Test.cpp:
+ * tests/Bug_2659_Regression_Test.cpp:
+ * tests/Bug_3539_Regression_Test.cpp:
+ * tests/Bug_3729_Regression_Test.cpp:
+ * tests/CDR_Array_Test.cpp:
+ * tests/CDR_File_Test.cpp:
+ * tests/CDR_Test.cpp:
+ * tests/Cache_Map_Manager_Test.h:
+ * tests/Cache_Map_Manager_Test.cpp:
+ * tests/Cached_Accept_Conn_Test.h:
+ * tests/Cached_Accept_Conn_Test.cpp:
+ * tests/Cached_Allocator_Test.cpp:
+ * tests/Cached_Conn_Test.h:
+ * tests/Cached_Conn_Test.cpp:
+ * tests/Capabilities_Test.cpp:
+ * tests/Codecs_Test.cpp:
+ * tests/Collection_Test.h:
+ * tests/Collection_Test.cpp:
+ * tests/Config_Test.h:
+ * tests/Config_Test.cpp:
+ * tests/Conn_Test.h:
+ * tests/Conn_Test.cpp:
+ * tests/DLL_Test.cpp:
+ * tests/DLL_Test_Impl.h:
+ * tests/DLL_Test_Impl.cpp:
+ * tests/DLList_Test.cpp:
+ * tests/Dirent_Test.cpp:
+ * tests/Dynamic_Priority_Test.cpp:
+ * tests/Dynamic_Test.cpp:
+ * tests/Enum_Interfaces_Test.cpp:
+ * tests/FIFO_Test.cpp:
+ * tests/FlReactor_Test.cpp:
+ * tests/Framework_Component_DLL.h:
+ * tests/Framework_Component_DLL.cpp:
+ * tests/Framework_Component_Test.h:
+ * tests/Future_Set_Test.cpp:
+ * tests/Future_Test.cpp:
+ * tests/Handle_Set_Test.cpp:
+ * tests/Hash_Map_Bucket_Iterator_Test.cpp:
+ * tests/Hash_Map_Manager_Test.cpp:
+ * tests/Hash_Multi_Map_Manager_Test.cpp:
+ * tests/High_Res_Timer_Test.cpp:
+ * tests/INET_Addr_Test.cpp:
+ * tests/IOStream_Test.cpp:
+ * tests/Intrusive_Auto_Ptr_Test.cpp:
+ * tests/Lazy_Map_Manager_Test.cpp:
+ * tests/Log_Msg_Backend_Test.cpp:
+ * tests/Log_Msg_Test.cpp:
+ * tests/Logging_Strategy_Test.cpp:
+ * tests/MEM_Stream_Test.h:
+ * tests/MEM_Stream_Test.cpp:
+ * tests/MM_Shared_Memory_Test.cpp:
+ * tests/MT_NonBlocking_Connect_Test.cpp:
+ * tests/MT_Reactor_Timer_Test.h:
+ * tests/MT_Reactor_Timer_Test.cpp:
+ * tests/MT_Reactor_Upcall_Test.cpp:
+ * tests/MT_Reference_Counted_Event_Handler_Test.cpp:
+ * tests/MT_Reference_Counted_Notify_Test.cpp:
+ * tests/MT_SOCK_Test.cpp:
+ * tests/Main.cpp:
+ * tests/Malloc_Test.h:
+ * tests/Malloc_Test.cpp:
+ * tests/Manual_Event_Test.cpp:
+ * tests/Map_Manager_Test.cpp:
+ * tests/Map_Test.h:
+ * tests/Map_Test.cpp:
+ * tests/Max_Default_Port_Test.h:
+ * tests/Max_Default_Port_Test.cpp:
+ * tests/Mem_Map_Test.cpp:
+ * tests/Message_Block_Test.cpp:
+ * tests/Message_Queue_Notifications_Test.cpp:
+ * tests/Message_Queue_Test.cpp:
+ * tests/Message_Queue_Test_Ex.cpp:
+ * tests/Missing_Svc_Conf_Test.cpp:
+ * tests/Multihomed_INET_Addr_Test.cpp:
+ * tests/Multihomed_INET_Addr_Test_IPV6.cpp:
+ * tests/NDDS_Timer_Test.cpp:
+ * tests/Naming_Test.cpp:
+ * tests/Network_Adapters_Test.h:
+ * tests/Network_Adapters_Test.cpp:
+ * tests/New_Fail_Test.cpp:
+ * tests/NonBlocking_Conn_Test.h:
+ * tests/NonBlocking_Conn_Test.cpp:
+ * tests/Notify_Performance_Test.cpp:
+ * tests/Object_Manager_Flipping_Test.cpp:
+ * tests/Object_Manager_Test.cpp:
+ * tests/Obstack_Test.cpp:
+ * tests/OrdMultiSet_Test.cpp:
+ * tests/Pipe_Test.cpp:
+ * tests/Priority_Buffer_Test.cpp:
+ * tests/Priority_Reactor_Test.h:
+ * tests/Priority_Reactor_Test.cpp:
+ * tests/Priority_Task_Test.cpp:
+ * tests/Proactor_Test.h:
+ * tests/Proactor_Timer_Test.cpp:
+ * tests/Process_Env_Test.cpp:
+ * tests/Process_Manager_Test.cpp:
+ * tests/Process_Manual_Event_Test.cpp:
+ * tests/Process_Mutex_Test.cpp:
+ * tests/Process_Semaphore_Test.cpp:
+ * tests/Process_Strategy_Test.h:
+ * tests/Process_Strategy_Test.cpp:
+ * tests/Process_Test.cpp:
+ * tests/QtReactor_Test.cpp:
+ * tests/RB_Tree_Test.h:
+ * tests/RB_Tree_Test.cpp:
+ * tests/RW_Process_Mutex_Test.cpp:
+ * tests/Reactor_Dispatch_Order_Test.cpp:
+ * tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp:
+ * tests/Reactor_Exceptions_Test.cpp:
+ * tests/Reactor_Fairness_Test.h:
+ * tests/Reactor_Fairness_Test.cpp:
+ * tests/Reactor_Notify_Test.cpp:
+ * tests/Reactor_Performance_Test.h:
+ * tests/Reactor_Performance_Test.cpp:
+ * tests/Reactor_Registration_Test.cpp:
+ * tests/Reactor_Timer_Test.cpp:
+ * tests/Reactors_Test.cpp:
+ * tests/Reader_Writer_Test.cpp:
+ * tests/Recursive_Condition_Bug_Test.cpp:
+ * tests/Recursive_Condition_Test.cpp:
+ * tests/Recursive_Mutex_Test.cpp:
+ * tests/Refcounted_Auto_Ptr_Test.h:
+ * tests/Refcounted_Event_Handler_Test_DevPoll.cpp:
+ * tests/Reference_Counted_Event_Handler_Test.cpp:
+ * tests/Reverse_Lock_Test.cpp:
+ * tests/SOCK_Connector_Test.cpp:
+ * tests/SOCK_Dgram_Bcast_Test.cpp:
+ * tests/SOCK_Dgram_Test.cpp:
+ * tests/SOCK_Netlink_Test.cpp:
+ * tests/SOCK_SEQPACK_SCTP_Test.cpp:
+ * tests/SOCK_Send_Recv_Test.cpp:
+ * tests/SOCK_Test.cpp:
+ * tests/SPIPE_Test.cpp:
+ * tests/SSL/Main.cpp:
+ * tests/SSL/SSL_Asynch_Stream_Test.cpp:
+ * tests/SSL/Thread_Pool_Reactor_SSL_Test.h:
+ * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp:
+ * tests/SString_Test.cpp:
+ * tests/SV_Shared_Memory_Test.cpp:
+ * tests/Semaphore_Test.cpp:
+ * tests/Sig_Handlers_Test.cpp:
+ * tests/Signal_Test.cpp:
+ * tests/Sigset_Ops_Test.cpp:
+ * tests/Simple_Message_Block_Test.cpp:
+ * tests/Singleton_Test.cpp:
+ * tests/Svc_Handler_Test.cpp:
+ * tests/TP_Reactor_Test.h:
+ * tests/TP_Reactor_Test.cpp:
+ * tests/TSS_Static_Test.cpp:
+ * tests/TSS_Test.cpp:
+ * tests/TSS_Test_Errno.h:
+ * tests/Task_Ex_Test.cpp:
+ * tests/Task_Test.cpp:
+ * tests/Thread_Attrs_Test.cpp:
+ * tests/Thread_Creation_Threshold_Test.cpp:
+ * tests/Thread_Manager_Test.cpp:
+ * tests/Thread_Mutex_Test.cpp:
+ * tests/Thread_Pool_Reactor_Resume_Test.h:
+ * tests/Thread_Pool_Reactor_Resume_Test.cpp:
+ * tests/Thread_Pool_Reactor_Test.h:
+ * tests/Thread_Pool_Reactor_Test.cpp:
+ * tests/Thread_Pool_Test.cpp:
+ * tests/Time_Service_Test.cpp:
+ * tests/Time_Value_Test.cpp:
+ * tests/Timeprobe_Test.cpp:
+ * tests/Timer_Cancellation_Test.cpp:
+ * tests/Timer_Queue_Reference_Counting_Test.cpp:
+ * tests/Timer_Queue_Test.cpp:
+ * tests/TkReactor_Test.cpp:
+ * tests/Tokens_Test.cpp:
+ * tests/UPIPE_SAP_Test.cpp:
+ * tests/UUID_Test.cpp:
+ * tests/Unbounded_Set_Test.cpp:
+ * tests/Unload_libACE.cpp:
+ * tests/Upgradable_RW_Test.h:
+ * tests/Upgradable_RW_Test.cpp:
+ * tests/Vector_Test.cpp:
+ * tests/WFMO_Reactor_Test.cpp:
+ * tests/XtAthenaReactor_Test.cpp:
+ * tests/XtMotifReactor_Test.cpp:
+ Converted to doxygen style of documentation
+
+Wed Mar 23 18:36:19 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Also check numeric log level for dds4ccm
+
+Wed Mar 23 13:17:54 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/fuzz.pl:
+
+ Enabled the numeric dance log check at a lower level so it will
+ run with the fuzz build.
+
+Tue Mar 22 21:09:14 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Acceptor.h:
+ Doxygen change
+
+ * ace/config-win32-borland.h:
+ Updated comment
+
+Tue Mar 22 15:40:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/os_ifaddrs.h:
+ New wrapper file
+
+ * ace/OS_NS_stdlib.inl:
+ * ace/config-WinCE.h:
+ Added new define to not check for OS in OS_NS_ file
+
+ * ace/Sock_Connect.cpp:
+ use new os_ifaddrs.h wrapper
+
+ * tests/Dirent_Test.cpp:
+ * tests/Test_Output.cpp:
+ Cleanup
+
+Tue Mar 22 09:24:54 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Added back ACE_LACKS_SETSCHED. OpenBSD does not provide
+ implementation.
+
+Tue Mar 22 09:18:44 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Reverted: Mon Mar 21 16:10:05 UTC 2011 Olli Savia <ops@iki.fi>
+ Put back ACE_LACKS_RLIMIT_NOFILE. The problem with LynxOS 4.2
+ seems to be rlimit.
+
+Mon Mar 21 20:40:36 UTC 2011 James Edmondson <james.r.edmondson@vanderbilt.edu>
+
+ * bin/fuzz.pl:
+ Commented out lines that may be used for debugging the
+ trace error checker
+
+Mon Mar 21 20:18:52 UTC 2011 James Edmondson <james.r.edmondson@vanderbilt.edu>
+
+ * bin/fuzz.pl:
+ Reverted previous changes
+
+Mon Mar 21 19:07:52 UTC 2011 James Edmondson <james.r.edmondson@vanderbilt.edu>
+
+ * bin/fuzz.pl:
+ Stopped fuzz.pl from looking into lib/bin/Debug/Release
+ Stopped fuzz.pl from considering *C.* and *S.* generated files
+ Stopped fuzz.pl from considering *_export.h
+
+Mon Mar 21 19:02:57 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * html/Stats/index.shtml:
+ Playstation xampler results are not available anymore
+
+Mon Mar 21 16:10:05 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ ACE_LACKS_THREAD_PROCESS_SCOPING is needed on LynxOS 4.2.
+
+Mon Mar 21 15:15:52 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Also check DANCE_TRACE
+
+Mon Mar 21 14:23:46 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ * include/makeinclude/platform_openbsd.GNU:
+ Improved support for OpenBSD.
+
+Mon Mar 21 12:48:01 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/INET_Addr.cpp:
+ * ace/OS_NS_netdb.h:
+ * ace/OS_NS_netdb.inl:
+ * ace/OS_NS_netdb.cpp:
+ * ace/OS_NS_pwd.h:
+ * ace/Ping_Socket.h:
+ * ace/Process.cpp:
+ * ace/ace_wchar.h:
+ * ace/os_include/os_signal.h:
+ * ace/os_include/os_stdio.h:
+ Cleanup, removed lot of old VxWorks code not needed anymore
+
+ * include/makeinclude/platform_sunos5_common.GNU:
+ Add to the correct make flags
+
+Sat Mar 19 15:01:11 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Removed this file.
+
+ * ace/config-linux.h:
+ Merged contents of config-linux-common.h to config-linux.h
+ for easier maintenance.
+
+ * ACE-INSTALL.html:
+ Update due to changes above.
+
+Sat Mar 19 14:57:04 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Improved support for LynxOS 4.2 and 5.0.
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Removed unused SOBUILD variable.
+
+Sat Mar 19 06:17:54 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * examples/APG/ThreadSafety/Tokens.cpp:
+ Fixes due to ACE rand_r() changes.
+
+Fri Mar 18 05:21:08 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Layout changes and cleanups.
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Use -lnetinet instead of -lbsd
+
+Fri Mar 18 05:16:45 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ Removed some macros which are no longer used.
+
+Fri Mar 18 05:10:32 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * tests/Message_Queue_Test.cpp:
+ Fixes due to ACE rand_r() changes.
+
+Thu Mar 17 21:13:36 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * tests/Message_Queue_Test.cpp:
+ * tests/Timer_Queue_Test.cpp:
+ * tests/randomize.h:
+ Fixes due to ACE rand_r() changes.
+
+Thu Mar 17 15:03:52 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * include/makeinclude/platform_macosx_lion.GNU:
+
+ Fuzz.
+
+Thu Mar 17 09:48:53 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * examples/Shared_Malloc/test_malloc.cpp:
+ Fixes due to ACE rand_r() changes.
+
+Thu Mar 17 07:51:20 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ * ace/config-sunos5.4-g++.h:
+ * ace/config-sunos5.4-sunc++-4.x.h:
+ * ace/os_include/os_stdlib.h:
+ * tests/randomize.h:
+ Removed references to unused ACE_RANDR_TYPE.
+
+Thu Mar 17 07:32:34 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdlib.h:
+ * ace/OS_NS_stdlib.inl:
+ * ace/OS_NS_stdlib.cpp:
+ Changed rand_r() API to conform POSIX.
+
+ * ace/config-freebsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-openvms.h:
+ * ace/config-rtems.h:
+ * ace/config-vxworks6.4.h:
+ * ace/config-win32-common.h:
+ Added/removed some defines due to change above.
+
+Thu Mar 17 07:20:50 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-WinCE.h:
+ Added ACE_LACKS_STRTOK_R.
+
+Thu Mar 17 04:58:19 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/config-macosx-lion.h:
+ * include/makeinclude/platform_macosx_lion.GNU:
+ * include/makeinclude/platform_macosx_snowleopard.GNU:
+
+ Updated to Mac config/platform files.
+
+Thu Mar 17 04:55:30 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/fuzz.pl:
+
+ Added check at level 6 for numeric log priorities in DAnCE.
+
+Wed Mar 16 14:34:57 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/os_include/os_pwd.h:
+ Removed legacy _posix_getpwnam_r() declaration.
+
+Wed Mar 16 14:27:15 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_pwd.inl:
+ * ace/config-lynxos.h:
+ Renamed ACE_HAS_NONSTD_GETPWNAM_R to ACE_HAS_LYNXOS4_GETPWNAM_R
+ since LynxOS 4.x is the only platform that has nonstandard
+ getpwnam_r() implementation.
+
+Wed Mar 16 14:12:56 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-win32-msvc-7.h:
+ Added ACE_LACKS_STRTOK_R ACE_LACKS_LOCALTIME_R.
+
+Wed Mar 16 14:00:26 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_time.cpp:
+ Rearranged localtime_r() code to eliminate macro
+ ACE_HAS_REENTRANT_FUNCTIONS.
+
+ * ace/config-win32-mingw.h:
+ Added ACE_LACKS_STRTOK_R ACE_LACKS_LOCALTIME_R.
+
+Wed Mar 16 13:49:11 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ICMP_Socket.cpp:
+ Use ACE_OS
+
+Wed Mar 16 12:08:36 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/config-aix-7.h: New config for AIX 7.
+
+Wed Mar 16 09:00:45 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-linux-common.h:
+ Fixed format specifiers for 64bit PPC
+
+Wed Mar 16 06:26:54 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ Removed ACE_HAS_PTHREADS_STD.
+
+Tue Mar 15 21:24:11 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-kfreebsd.h:
+ * ace/config-lynxos.h:
+ * ace/config-macosx-leopard.h:
+ * ace/config-openbsd.h:
+ * ace/config-win32-interix.h:
+ Removed ACE_HAS_PTHREADS_STD.
+
+ * tests/Service_Config_Test.cpp:
+ Check features against ACE_HAS_PTHREADS instead of
+ ACE_HAS_PTHREADS_STD.
+
+Tue Mar 15 19:47:01 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_string.h:
+ * ace/OS_NS_string.inl:
+ * ace/OS_NS_string.cpp:
+ Rearranged strtok_r() code to eliminate macro
+ ACE_HAS_REENTRANT_FUNCTIONS.
+
+Tue Mar 15 19:29:59 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-sunos5.5.h:
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ Moved _POSIX_PTHREAD_SEMANTICS definition from config file to
+ command line.
+
+Mon Mar 14 18:58:40 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-sunos5.5.h:
+ Define _POSIX_PTHREAD_SEMANTICS if it not already set.
+ Hopefully fixes getpwnam_r() problems.
+
+Mon Mar 14 11:01:41 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-openvms.h:
+ Removed ACE_HAS_NONSTD_GETPWNAM_R.
+
+Mon Mar 14 08:16:33 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_time.h:
+ * ace/OS_NS_time.inl:
+ * ace/OS_NS_time.cpp:
+ Removed ghs method
+
+ * ace/Guard_T.h:
+ Doxygen change
+
+ * ace/OS_NS_sys_utsname.cpp:
+ * ace/Process.cpp:
+ * ace/Process_Manager.cpp:
+ * ace/WFMO_Reactor.cpp:
+ * ace/config-sunos5.5.h:
+ * ace/config-sunos5.7.h:
+ * ace/config-vxworks6.4.h:
+ * ace/config-win32-msvc.h:
+ Removed ghs workaround
+
+ * tests/Multihomed_INET_Addr_Test.cpp:
+ Layout change
+
+ * ace/gethrtime.cpp:
+ Removed this file, ghs is not supported anymore a long time
+
+ * ace/ace.mpc:
+ * ace/Makefile.am:
+ Removed gethrtime.cpp
+
+Sun Mar 13 10:32:34 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp (test_getpwnam_r):
+ Handle case where getlogin() returns 0.
+
+Sun Mar 13 09:37:13 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Service_Object.cpp:
+ * ace/Naming_Context.cpp:
+ * performance-tests/UDP/udp_test.cpp:
+ * performance-tests/SCTP/Options_Manager.cpp:
+ * apps/gperf/src/Options.cpp:
+ * apps/JAWS/clients/Blobby/Blob_Handler.cpp:
+ * examples/Log_Msg/test_callback.cpp:
+ * examples/IPC_SAP/FILE_SAP/client.cpp:
+ * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp:
+ Fixed compile warnings from incorrect use of ACE_TCHAR* type in
+ printf in wchar builds.
+
+Sat Mar 12 09:26:56 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ * ace/config-linux.h:
+ Disable clock_{get,set}time() for single thread build.
+
+Fri Mar 11 20:07:05 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/config-openbsd.h:
+ Attempted to fix warnings about wrong format for size_t type
+ on OpenBSD same as this works on NetBSD. It appears that %u is
+ too little for size_t, let's try %lu.
+
+Fri Mar 11 16:30:16 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * apps/JAWS/server/HTTP_Request.cpp:
+ Fixed compile error due getpwnam_r() changes.
+
+Fri Mar 11 12:24:43 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp:
+ Compile fix for platforms that lack pwd-functions.
+
+Fri Mar 11 12:09:00 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_pwd.h:
+ * ace/OS_NS_pwd.inl:
+ Rewrote getpwnam_r(). Changed API to conform POSIX.
+ Fixes Bug #3952.
+
+ * ace/config-aix-5.x.h:
+ * ace/config-cygwin32.h:
+ * ace/config-freebsd.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-kfreebsd.h:
+ * ace/config-linux.h:
+ * ace/config-lynxos.h:
+ * ace/config-netbsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-openvms.h:
+ * ace/config-rtems.h:
+ * ace/config-sunos5.5.h:
+ * ace/config-win32-interix.h:
+ Config changes due getpwnam_r() rewrite and API change.
+
+ * tests/OS_Test.cpp:
+ Added atest for getpwnam_r().
+
+Thu Mar 10 16:42:30 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * bin/fuzz.pl:
+ Fix the test so it correctly ignores OS.h when explicitly disabled.
+
+Thu Mar 10 16:42:09 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/ace.mpc: Add OS.h to the Headers to be installed. Thanks to
+ Phil Mesnier for pointing this out.
+
+Thu Mar 10 11:41:15 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/MEM_Stream_Test.cpp:
+ Fixed printf warning on MinGW.
+
+Thu Mar 10 11:04:08 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ * include/makeinclude/platform_linux_suncc.GNU:
+ Sun Studio related updates.
+
+Thu Mar 10 10:37:44 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/OS_NS_netdb.inl:
+ * ace/Stack_Trace.cpp:
+ Fixed warnings on VxWorks.
+
+ * ace/ACE.cpp:
+ Added a cast for a type that is expected by printf to be long.
+
+ * examples/Timer_Queue/Custom_Handler.cpp:
+ * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
+ Added casts for arguments to printf as it expects unsigned long.
+
+Thu Mar 10 08:29:30 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-lynxos.h:
+ Added some feature defines.
+
+Thu Mar 10 07:31:51 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Include config-posix.h on non-NPTL platforms as well.
+
+ * ace/config-linux.h:
+ Compile fixes for single thread build.
+
+Wed Mar 9 19:14:01 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/OS.h: Re-added OS.h due to popular demand. It's been slimmed down
+ from its pre-ACE 6 days, now including primarily the OS_NS_*.h files
+ which can be disabled by setting the preprocessor macro
+ DO_NOT_INCLUDE_OS_H before including OS.h.
+ This file is here to maintain backwards build compatibility with
+ older ACE versions. Using it will slow your compile time over
+ simply including the requisite OS_NS_*.h file(s).
+
+ * bin/fuzz.pl: Added a new test check_for_include_OS_h to be sure no
+ source within ACE includes ace/OS.h.
+
+ * tests/OS_Test.cpp: Added #include "ace/OS.h" to be sure that it
+ at least compiles.
+
+ * NEWS: Note that OS.h is back.
+
+Wed Mar 9 16:22:26 UTC 2011 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/rules.local.GNU:
+
+ Removed "-e config.h" from the depgen.pl invocation, we do want
+ dependencies included from config.h to be considered.
+
+Wed Mar 9 10:38:39 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Service_Object.cpp:
+ Fixed incorrect arguments for the provided format.
+
+ * ace/Process.h:
+ Reverted my change from 'Mon Mar 7 16:14:33 UTC 2011'. GCC cannot
+ check formats in wide strings.
+
+Tue Mar 8 15:36:34 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux.h:
+ Put back accidentally removed MT_SAFE define.
+
+Tue Mar 8 10:31:41 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/config-macros.h:
+ Fixed compilation errors from my addition of
+ ACE_GCC_FORMAT_ATTRIBUTE.
+
+Tue Mar 8 06:39:00 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux.h:
+ Cleanup.
+
+Mon Mar 7 16:14:33 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/config-g++-common.h:
+ * ace/OS_NS_stdio.h:
+ * ace/Process.h:
+ * ace/OS_NS_time.h:
+ Added format GCC __attribute__ to printf-like functions.
+
+ * tests/TP_Reactor_Test.cpp:
+ * apps/gperf/src/Options.cpp:
+ * examples/APG/Threads/Message_Blocks.cpp:
+ Fixed warnings from incorrect use of printf format.
+
+Sun Mar 6 14:49:04 UTC 2011 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ACE-INSTALL.html: Update this document to explain how to use the
+ "make install" step for MinGW. Thanks to Laura Aut�n Garc�a
+ <darklulu+ace at gmail dot com> for contributing this
+ description.
+
+Mon Mar 7 09:38:57 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/SSL/SSL_Context.cpp:
+ * ace/SSL/SSL_Initializer.cpp:
+ * ace/SSL/SSL_Initializer.h:
+ Added SSL initializer which is a part of the fix for bug#3418.
+ The initializer if used does correct SSL cleanup. Moved SSL context
+ singleton cleanup from ACE_SSL_Context::ssl_library_fini() to
+ the initializer.
+
+Sun Mar 6 20:53:26 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux.h:
+ Removed some old checks.
+
+Sun Mar 6 13:50:09 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-openbsd.h:
+ Define _THREAD_SAFE.
+
+Sun Mar 6 09:20:22 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/INET_Addr_Test.cpp:
+ * tests/Multihomed_INET_Addr_Test.cpp:
+ Fixed gcc 4.5 warnings
+
+ * tests/Log_Thread_Inheritance_Test.cpp:
+ * tests/MT_Reference_Counted_Notify_Test.cpp:
+ * tests/NDDS_Timer_Test.cpp:
+ Zapped some empty lines
+
+Sat Mar 5 17:31:08 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ Minor layout changes.
+
+ * ace/config-openbsd.h:
+ Define MT_SAFE. Minor layout changes.
+
+ * ace/config-macros.h:
+ Do not define _REENTRANT. It should be defined in platform
+ specific files if needed.
+
+Sat Mar 5 12:14:27 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/gnuace.features:
+ Set qt4 instead of qt to default 1
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Also don't use strict aliasing with gcc 4.2/4.3
+
+Sat Mar 5 07:16:12 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux.h:
+ Removed some GLIBC 2.1 related settings.
+
+Fri Mar 4 16:00:26 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ * include/makeinclude/platform_freebsd.GNU:
+ Threads related cleanup.
+
+Fri Mar 4 14:54:49 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_signal.h:
+ OpenBSD needs os_pthread.h to pick up pthread_sigmask().
+
+ * ace/config-openbsd.h:
+ * include/makeinclude/platform_openbsd.GNU:
+ Threads related cleanup.
+
+Fri Mar 4 12:39:39 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_linux_icc.GNU:
+ Fixed linking problems.
+
+Thu Mar 3 15:49:52 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/config-win32-common.h: Ensure that _AMD64_ is defined for
+ both MPC and non-MPC projects built for 64-bit Windows.
+
+Thu Mar 3 12:22:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec:
+ Further improvements to this file, thanks to Glenn Zickert
+ <gzickert at comcast dot net> for reporting these
+
+Wed Mar 2 20:56:42 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Removed some ancient settings.
+
+Wed Mar 2 12:42:58 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ * ace/config-linux.h:
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_linux_common.GNU:
+ Simplified setting of ACE_HAS_AIO_CALLS.
+
+Tue Mar 1 11:31:55 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_linux.GNU:
+ Fixed setting of CC and CXX variables (conditional assignment
+ doesn't work in this case).
+
+Tue Mar 1 07:35:43 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_linux.GNU:
+ Added missing SOFLAGS += -pthread.
+
+Mon Feb 28 21:05:59 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-WinCE.h:
+ * ace/config-cygwin32.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-kfreebsd.h:
+ * ace/config-lynxos.h:
+ * ace/config-netbsd.h:
+ * ace/config-openbsd.h:
+ * ace/config-win32-interix.h:
+ No need to define ACE_HAS_POSITION_INDEPENDENT_POINTERS since it
+ is default setting.
+
+Mon Feb 28 20:29:59 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp:
+ * examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp: Replaced the
+ name "mod_name" with "module_name" to avoid a clash with macro
+ defined in /usr/include/sys/stropts.h encountered when optimized
+ build was done.
+
+Mon Feb 28 18:10:19 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * include/makeinclude/platform_aix_ibm.GNU: Remove the -qfuncsect
+ option from CCFLAGS; it caused an occasional odd problem and the
+ only reason it was added (Jul 17 2002) was to try and remove
+ duplicate symbol diagnostics from template instantiations.
+ Thanks to Phil Mesnier for raising this issue and identifying
+ the fix.
+
+Mon Feb 28 13:31:50 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/index.html:
+ * html/index.html:
+ Mention DAnCE
+
+Mon Feb 28 13:18:53 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * bin/make_release.py:
+ Reverted the change tagged as
+ 'Thu Oct 28 11:40:01 UTC 2010 Vladimir Zykov'.
+
+Mon Feb 28 09:21:21 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/config-freebsd.h:
+ Do not define __ACE_INLINE__
+
+Sun Feb 27 08:50:14 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_linux.GNU:
+ Use option "-pthread" instead of setting _REENTRANT macro.
+
+Sat Feb 26 07:31:41 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Added missing DCCFLAGS and OCCFLAGS.
+
+Sat Feb 26 07:24:33 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_netbsd.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ Added missing DCCFLAGS and OCCFLAGS.
+
+Fri Feb 25 12:19:58 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/config-lite.h: Adjust the __SUNPRO_CC version checks to include
+ Sun Studio 12.2. Thanks to Henk Jan Priester <hjpriester@gmail.com>
+ for this fix.
+
+ * THANKS: Added Henk Jan Priester to the thank-you list.
+
+Wed Feb 23 10:24:02 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Connector.cpp:
+ Changed initialization of ACE_Strategy_Connector so that its
+ CREATION_STRATEGY and its base class ACE_Connector use reactor
+ provided by user instead of the default one returned by
+ ACE_Reactor::instance().
+
+Wed Feb 23 10:23:36 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Removed unneeded options. Minor cleanups.
+
+Wed Feb 23 08:20:01 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_netbsd.GNU:
+ Cleanup.
+
+Wed Feb 23 08:12:47 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ Added some flags. Minor cleanups.
+
+Tue Feb 22 12:17:51 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/index.html:
+ Updated location of the daily doxygen tree to
+ http://doxygen.theaceorb.nl
+
+Mon Feb 21 09:14:55 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ Removed legacy threads related settings.
+
+Sun Feb 20 11:04:02 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_netbsd.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ * include/makeinclude/platform_win32_interix.GNU:
+ Removed CPPFLAGS from SOFLAGS.
+
+Sat Feb 19 09:07:32 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Removed unneeded compile options
+
+Fri Feb 18 22:20:42 UTC 2011 James H. Hill <hillj at cs dot iupui dot edu>
+
+ * ace/Functor_String.h:
+ * ace/Functor_String.inl:
+
+ Specialized the string functors for std::string.
+
+Fri Feb 18 13:37:44 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Removed -fsigned-char compiler option.
+
+Thu Feb 17 19:26:57 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Added pipes ?= 1
+
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_lynxos.GNU:
+ * include/makeinclude/platform_macosx.GNU:
+ * include/makeinclude/platform_macosx_common.GNU:
+ * include/makeinclude/platform_macosx_panther.GNU:
+ * include/makeinclude/platform_netbsd.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ * include/makeinclude/platform_qnx_neutrino.GNU:
+ * include/makeinclude/platform_rtems.x_g++.GNU:
+ * include/makeinclude/platform_sunos5_g++.GNU:
+ * include/makeinclude/platform_win32_dmc.GNU:
+ * include/makeinclude/platform_win32_icc.GNU:
+ * include/makeinclude/platform_win32_interix.GNU:
+ Removed setting of pipes variable.
+ It now set in platform_g++_common.GNU.
+
+Thu Feb 17 18:53:07 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_aix_g++.GNU:
+ * include/makeinclude/platform_hpux_gcc.GNU:
+ * include/makeinclude/platform_macosx.GNU:
+ * include/makeinclude/platform_macosx_common.GNU:
+ * include/makeinclude/platform_netbsd.GNU:
+ * include/makeinclude/platform_qnx_neutrino.GNU:
+ * include/makeinclude/platform_qnx_rtp_gcc.GNU:
+ * include/makeinclude/platform_rtems.x_g++.GNU:
+ * include/makeinclude/platform_sunos5_g++.GNU:
+ * include/makeinclude/platform_win32_interix.GNU:
+ Removed CCFLAGS += $(CFLAGS) $(FLAGS_C_CC)
+
+Thu Feb 17 18:36:48 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * configure.ac:
+ Replaced ACE_LIB_TEXT with ACE_TEXT, thanks to Andrew Hill
+ <lists at thefrog dot net> for reporting this
+
+Thu Feb 17 08:35:31 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_lynxos.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ Removed CCFLAGS += $(CFLAGS) $(FLAGS_C_CC)
+
+Thu Feb 17 08:20:57 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/wrapper_macros.GNU:
+ Added $(FLAGS_C_CC) to compile and link rules.
+
+ * include/makeinclude/platform_linux.GNU:
+ Removed CFLAGS+=$(FLAGS_C_CC) and CCFLAGS+=$(FLAGS_C_CC)
+
+Wed Feb 16 12:41:59 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_lynxos.GNU:
+ Moved some settings from CFLAGS to CPPFLAGS
+ and FLAGS_C_CC.
+
+Wed Feb 16 09:12:53 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_openbsd.GNU:
+ Removed legacy settings.
+
+Wed Feb 16 08:41:23 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ Removed legacy settings. Layout changes.
+
+Tue Feb 15 20:46:01 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_aix_g++.GNU:
+ Removed "-W -Wall" from CFLAGS.
+
+Tue Feb 15 20:39:49 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_aix_g++.GNU:
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_hpux_gcc.GNU:
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_lynxos.GNU:
+ * include/makeinclude/platform_macosx.GNU:
+ * include/makeinclude/platform_macosx_common.GNU:
+ * include/makeinclude/platform_macosx_panther.GNU:
+ * include/makeinclude/platform_netbsd.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ * include/makeinclude/platform_qnx_neutrino.GNU:
+ * include/makeinclude/platform_rtems.x_g++.GNU:
+ * include/makeinclude/platform_vxworks6.2.GNU:
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ * include/makeinclude/platform_win32_interix.GNU:
+ Make sure FLAGS_C_CC is added to CCFLAGS.
+
+Tue Feb 15 20:20:36 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_g++_common.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_lynxos.GNU:
+ * include/makeinclude/platform_macosx.GNU:
+ * include/makeinclude/platform_macosx_common.GNU:
+ * include/makeinclude/platform_macosx_panther.GNU:
+ * include/makeinclude/platform_netbsd.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ * include/makeinclude/platform_qnx_neutrino.GNU:
+ * include/makeinclude/platform_qnx_rtp_gcc.GNU:
+ * include/makeinclude/platform_sunos5_g++.GNU:
+ * include/makeinclude/platform_win32_interix.GNU:
+ Moved setting "-Wall -W -Wpointer-arith" from platform_xxx.GNU
+ files to platform_g++_common.GNU.
+
+Tue Feb 15 20:00:34 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_qnx_neutrino.GNU:
+ * include/makeinclude/platform_qnx_rtp_gcc.GNU:
+ Removed TEMPLATES_FLAG which is no longer used.
+
+Tue Feb 15 14:40:21 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Monitor_Control/Monitor_Group.cpp:
+ Fixed warning
+
+Mon Feb 14 20:20:11 UTC 2011 Adam Mitz <mitza@ociweb.com>
+
+ * ace/Lock_Adapter_T.inl:
+
+ Constructor moved from .cpp to .inl in
+ Wed Jan 26 13:53:27 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+ requires #include in the .inl as well.
+
+Mon Feb 14 09:42:38 UTC 2011 Martin Corino <corino_m@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Added change to enable suppression of strict-aliasing checks
+ (-fno-strict-aliasing) by default for GCC >= 4.4.
+ Default behaviour can be suppressed by explicitly setting
+ no_strict_aliasing=0 in platform_macros.GNU.
+
+Sun Feb 13 13:31:21 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Makefile.am:
+ Removed file that got removed
+
+Sat Feb 12 09:13:41 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/Gateway/Gateway/Options.h:
+ * apps/JAWS2/JAWS/Cache_Object.h:
+ Reordered includes to fix compile errors with inline enabled
+
+Fri Feb 11 20:25:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Fixed cross compile
+
+Fri Feb 11 11:16:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ Merged changes from Remedy work branch.
+
+ === start changelog ===
+
+ Wed Feb 9 12:53:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CDR_Size.h:
+ * ace/Lib_Find.h:
+ * ace/Local_Name_Space_T.h:
+ * ace/Lock.h:
+ * ace/Message_Block.h:
+ * ace/Name_Space.h:
+ * ace/Naming_Context.h:
+ Doxygen changes
+
+ Tue Feb 8 20:52:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ACE.cpp:
+ Removed support for deprecated VxWorks versions
+
+ * ace/Active_Map_Manager.h:
+ Doxygen changes
+
+ Tue Feb 8 20:47:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux_icc.GNU:
+ Intel C++ 12 has support for visibility
+
+ * include/makeinclude/rules.bin.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ Removed support for Chorus
+
+ Tue Feb 8 20:44:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/os_dirent.h:
+ * ace/os_include/os_fcntl.h:
+ * ace/os_include/os_limits.h:
+ * ace/os_include/os_netdb.h:
+ * ace/os_include/os_stdio.h:
+ * ace/os_include/sys/os_time.h:
+ Removed support for deprecated VxWorks versions
+
+ Tue Feb 8 19:14:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Reactor/Misc/notification.cpp:
+ * examples/Reactor/Misc/pingpong.cpp:
+ Removed old support for chorus
+
+ Tue Feb 8 19:11:58 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Atomic_Op_Test.cpp:
+ * tests/Dirent_Test.cpp:
+ * tests/SSL/SSL_Asynch_Stream_Test.cpp:
+ * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp:
+ * tests/Thread_Manager_Test.cpp:
+ * tests/Thread_Pool_Reactor_Resume_Test.cpp:
+ Removed old support for chorus and vxworks 5.5
+
+ Tue Feb 8 13:37:12 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ * bin/sets-manager.py:
+ * bin/svn_props.py:
+ Check py files for Id
+
+ Tue Feb 8 10:40:12 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * src/Bool_Array.h:
+ * src/Bool_Array.cpp:
+ * src/Gen_Perf.h:
+ * src/Hash_Table.h:
+ * src/Hash_Table.cpp:
+ * src/Iterator.h:
+ * src/Iterator.cpp:
+ * src/Key_List.h:
+ * src/Key_List.cpp:
+ * src/List_Node.h:
+ * src/Options.h:
+ * src/Options.cpp:
+ * src/Vectors.h:
+ * src/Vectors.cpp:
+ * src/gperf.cpp:
+ Removed checks for ACE_HAS_GPERF, just always compile this executable.
+
+ Tue Feb 8 10:21:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/IOStream_T.h:
+ * ace/IOStream.h:
+ * ace/IOStream.cpp:
+ Doxygen changes
+
+ * ace/config-netbsd.h:
+ Removed define which we don't have anymore
+
+ * ace/config-macosx.h:
+ * ace/config-openbsd.h:
+ * ace/config-win32-interix.h:
+ Added new defines
+
+ * ace/os_include/sys/os_select.h:
+ Updated comment
+
+ * ace/OS_NS_netdb.cpp:
+ Use new define
+
+ Mon Feb 7 09:53:50 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux_icc.GNU:
+ Fix for Intel C++ 12.0
+
+ Sun Feb 7 19:35:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Added gprof for compiling for gprof, gcov for compiling with gcov
+
+ Sat Feb 5 13:49:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_aix_g++.GNU:
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_hpux_gcc.GNU:
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_linux_icc.GNU:
+ * include/makeinclude/platform_linux_pgi.GNU:
+ * include/makeinclude/platform_linux_suncc.GNU:
+ * include/makeinclude/platform_lynxos.GNU:
+ * include/makeinclude/platform_macosx.GNU:
+ * include/makeinclude/platform_macosx_common.GNU:
+ * include/makeinclude/platform_macosx_icc.GNU:
+ * include/makeinclude/platform_macosx_panther.GNU:
+ * include/makeinclude/platform_netbsd.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ * include/makeinclude/platform_sunos5_g++.GNU:
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ * include/makeinclude/platform_vxworks6.2.GNU:
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ * include/makeinclude/platform_win32_dmc.GNU:
+ * include/makeinclude/platform_win32_icc.GNU:
+ * include/makeinclude/platform_win32_interix.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ Cleanup, removed old template flags
+
+ Thu Feb 3 13:05:13 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-qnx-neutrino.h:
+ * ace/config-qnx-rtp-common.h:
+ * ace/config-qnx-rtp.h:
+ Cleanup
+
+ * ace/config-minimal.h:
+ Removed this file, not used
+
+ Thu Feb 3 09:54:32 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-qnx-rtp.h:
+ Just one file for qnx, pre 6.2 support is already removed
+
+ * ace/config-qnx-rtp-62x.h:
+ * ace/config-qnx-rtp-pre62x.h:
+ Removed these files.
+
+ Wed Feb 2 11:22:13 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ Added more macros
+
+ * ace/config-doxygen.h:
+ Removed this file, not needed for doxygen
+
+ Tue Feb 1 15:24:47 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Cache_Map_Manager_T.cpp:
+ * ace/Cached_Connect_Strategy_T.cpp:
+ * ace/Hash_Cache_Map_Manager_T.inl:
+ * ace/Hash_Cache_Map_Manager_T.cpp:
+ Removed ACE_T1/ACE_T2, this improves doxygen documentation
+
+ * ace/Guard_T.h:
+ * ace/Asynch_IO_Impl.h:
+ Doxygen fixes
+ * etc/ace.doxygen:
+
+ * ace/Hash_Cache_Map_Manager_T.h:
+ Removed not needed define
+
+ Thu Jan 27 08:34:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Condition_T.h:
+ * ace/Lock.h:
+ Doxygen changes
+
+ * tests/tests.mpc:
+ Updated qt base project
+
+ Wed Jan 26 13:53:27 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Lock_Adapter_T.h:
+ Layout, doxygen changes
+
+ * ace/Lock_Adapter_T.inl:
+ * ace/Lock_Adapter_T.cpp:
+ Moved constructor to inline, the old compiler mentioned is deprecated
+ a long time ago
+
+ * ace/QtReactor/QtReactor.h:
+ Removed Qt3 support
+
+ * ace/QtReactor/ace_qt3reactor.mpc:
+ * bin/MakeProjectCreator/config/ace_qt3.mpb:
+ * bin/MakeProjectCreator/config/ace_qtreactor.mpb:
+ Removed these files, qt3 support is removed
+
+ === end changelog ===
+
+Wed Feb 9 08:41:00 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ Moved some settings from CFLAGS to CPPFLAGS and
+ FLAGS_C_CC.
+
+Wed Feb 9 08:25:29 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_cygwin32.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_mingw32.GNU:
+ Moved some common settings from Cygwin/MinGW config files to
+ platform_gnuwin32_common.GNU. Some cleanups.
+
+Tue Feb 8 14:52:43 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * tests/run_test.lst:
+ Disabled two tests on Cygwin.
+
+Tue Feb 8 13:17:55 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_cygwin32.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_mingw32.GNU:
+ Moved some common setting from Cygwin/MinGW config files to
+ platform_gnuwin32_common.GNU.
+
+Fri Feb 4 20:04:13 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * tests/OS_Test.cpp:
+ Use ACE::is_inequal() instead of ACE::is_equal().
+
+Fri Feb 4 20:02:28 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * ace/ACE.h:
+ Added a simple helper ACE::is_inequal() which compares inequality of
+ two objects without using operator!=. This is useful for comparing
+ floating point values.
+
+Fri Feb 4 19:51:33 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * examples/APG/ThreadManagement/Async_Cancel.cpp:
+ Removed legacy HP-UX workaround. This should fix
+ "statement is unreachable" warning on HP-UX builds.
+
+Fri Feb 4 18:35:52 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ Another cleanup.
+
+Fri Feb 4 13:58:44 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ Fixed to use {cpu,tune}modelflag settings in platform_g++_common.GNU
+
+Fri Feb 4 12:21:23 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_mingw32.GNU:
+ Fix for previous commit.
+
+Fri Feb 4 12:13:43 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_mingw32.GNU:
+ Moved MinGW specific settings to platform_mingw32.GNU
+
+Thu Feb 3 12:26:23 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ More cleanups
+
+Wed Feb 2 11:13:29 UTC 2011 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ Cleanup.
+
+Tue Feb 1 14:28:18 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/String_Base.cpp (operator+=): Add a temporary for the return
+ value to quiet an IBM XL C++ 10 optimizer warning about returning
+ the address of a temporary. No, I'm not kidding.
+
+Fri Jan 28 13:39:54 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/ACE-bug-process.html:
+ Updated email addresses
+
+Fri Jan 28 13:23:29 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * etc/index.html:
+ Updated to make the 6.0.1 release public
+
+Fri Jan 28 11:21:05 CET 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 6.0.1 released.
+
+Thu Jan 27 08:30:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ Predefine ACE_HAS_THREADS to get several missing classes added to
+ the documentation
+
+Wed Jan 26 20:17:28 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * include/makeinclude/platform_aix_ibm.GNU: If XL C/C++ 10.1 is used,
+ use the same compiler options as for XL C/C++ 9.
+
+Wed Jan 26 08:58:32 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/tests.mpc:
+ Added empty resource file for 2980 dll
+
+Tue Jan 25 15:17:58 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * bin/MakeProjectCreator/config/acemfcexe.mpb: The SubSystem value
+ for "Windows" on VC10 is "Windows", not "2" as it is for VC8-9.
+
+ * tests/ACE_Init_Test.ico: Reverted changes from
+ Fri Jan 21 00:15:19 UTC 2011 Steve Huston <shuston@riverace.com>
+ The VC8 resource compiler had problems with the new .ico file.
+ Although it's an issue with the VC8 resource compiler that can be
+ worked around, the test builds and works fine with the older
+ ico file, so I just put it back.
+
+ * tests/ACE_Init_Test_Resource.h: Fixed fuzz errors.
+
+ * tests/ACE_Init_Test.rc: Replaced #include afxres.h with winres.h.
+ Although VS generates it that way, afxres.h isn't needed unless
+ MFC is used and won't be present when MFC components aren't installed.
+
+Tue Jan 25 10:52:53 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Object_Manager.cpp:
+ Fixed WinCE compilation errors.
+
+Sun Jan 23 18:02:57 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux_common.GNU:
+ Fixed problems with tcl flags
+
+Fri Jan 21 17:04:29 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/config-hpux-11.00.h: Set ACE_LACKS_(STR|WCS)TO[U]LL when
+ the requisite long-long compiler settings are missing. Enables
+ use of these functions when they're available.
+
+ * m4/ace_func.m4: Remove the parts of ACE_FUNC_WCSTOLL and
+ ACE_FUNC_WCSTOULL that set ACE_LACKS_*_PROTOTYPE. The use of
+ the ACE_LACKS_*_PROTOTYPE was removed from ACE code in
+ Thu Jan 20 11:42:53 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ plus, it's wrong. The functions (at least on HP-UX, which seems
+ to center on the issue here) are available when needed via a
+ #pragma extern, which effectively inlines the code from the
+ compiler. Adding a prototype is the wrong thing to do in this
+ case.
+
+ * m4/compiler.m4: Add -ext to aCC's options. Turns on long-long.
+
+ * include/makeinclude/platform_hpux_aCC.GNU: Remove all the specific
+ macro setting to try and select particular threading features and
+ Rogue Wave libs. Use -mt and be done with it. -mt does the right
+ thing wrt RW and preprocessor feature macros based on the -AA/-AP
+ options. Also add -ext to turn on long-long.
+
+Fri Jan 21 00:15:19 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * bin/MakeProjectCreator/config/acemfcexe.mpb: New base project
+ that sets the proper subsystem and macros for an MFC app.
+
+ * tests/ACE_Init_Test.ico:
+ * tests/ACE_Init_Test.rc:
+ * tests/ACE_Init_Test_Resource.h: Modernized resource defs to let
+ ACE_Init_Test build and run properly.
+
+ * tests/tests.mpc: Added the rest of the needed files for ACE_Init_Test
+ and made it require mfc; base it off acemfcexe (new, above).
+
+Thu Jan 20 11:42:53 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ Merged changes from Remedy work branch.
+
+ === start changelog ===
+
+ Wed Jan 12 11:57:15 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * examples/OS/Process/process.cpp:
+ Fixed MSVC warning.
+
+ Wed Jan 12 09:21:38 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/gperf/src/Key_List.cpp:
+ Fixed gcc warnings
+
+ Mon Jan 10 13:53:16 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Msg.h:
+ Doxygen fix
+
+ * ace/Log_Msg.cpp:
+ * ace/OS_NS_Thread.cpp:
+ * ace/Task.cpp:
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/os_include/sys/os_types.h:
+ * apps/gperf/src/Key_List.cpp:
+ Cleanup of MVS support, got deprecated already a long time ago, but
+ seems we forgot todo the cleanup
+
+ * ace/config-mvs.h:
+ Removed
+
+ * ace/config-sunos5.6.h:
+ * ace/config-win32-common.h:
+ Zapped some empty lines
+
+ Mon Jan 10 12:38:10 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ Doxygen improvement
+
+ Mon Jan 10 09:09:16 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ * etc/ace_inet.doxygen:
+ * etc/ace_man.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ Removed deprecated macros
+
+ Fri Jan 7 08:25:08 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/patches/11-promote-QtResource-to-qt4.dpatch:
+ Removed part of this patch
+
+ Thu Jan 6 11:20:15 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Object_Manager.cpp:
+ Simplified preprocessor tests for ACE_DISABLE_WIN32_ERROR_WINDOWS
+ which is ALWAYS explicitly user defined.
+ Added support for using ACE_DISABLE_WIN32_ERROR_WINDOWS in MingW32
+ builds.
+
+ Thu Jan 6 09:46:36 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cray.GNU:
+ * include/makeinclude/platform_mvs.GNU:
+ * include/makeinclude/platform_vxworks5.5.x.GNU:
+ Removed these files, platforms got removed some time ago but
+ seems we forgot to remove these files
+
+ Wed Jan 5 18:20:10 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-tandem.h:
+ Removed commented out define
+
+ * ace/os_include/os_string.h:
+ * ace/os_include/os_wchar.h:
+ Removed several ACE_LACKS_*_PROTOTYPE guarded code, the defines
+ are never set
+
+ Wed Jan 5 14:02:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/rules.local.GNU:
+ Removed rcs target
+
+ Wed Jan 5 14:00:15 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/wrapper_macros.GNU:
+ ACE_RCSID has been removed some time ago
+
+ Tue Jan 4 14:20:15 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * examples/OS/Process/process.cpp:
+ * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:
+ * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp:
+ * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:
+ Fixed const char* assignment warnings.
+
+ Tue Jan 4 13:50:15 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * ace/NT_Service.h:
+ Fix to prevent warning concerning const char* assignment.
+
+ Tue Jan 4 11:10:15 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/ace_tk.mpb:
+ Fixed typo
+
+ * bin/auto_run_tests.pl:
+ Document -ExeSubDir with --help
+
+ Mon Jan 3 15:06:54 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux_common.GNU:
+ Fixed tcl an tk flags
+
+ * debian/patches/14-fix-tcl-flags.dpatch:
+ Removed this file, merged this into file above
+
+ Mon Jan 3 14:38:53 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/ace_components:
+ * include/makeinclude/component_check.GNU:
+ Removed support for PACE
+
+ Sun Jan 2 13:19:44 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/QtReactor/ace_qt4reactor.mpc:
+ Added missing header
+
+ * ace/ace.mpc:
+ * apps/gperf/src/gperf.mpc:
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ * bin/ace_install_pkgconfig.pl:
+ Added support for DESTDIR, needed for debian packaghing
+
+ * debian/patches/00list:
+ Removed patches merged upstream
+
+ * debian/patches/12-add-DESTDIR-to-MPC.dpatch:
+ Removed this file.
+
+ * docs/svn/config:
+ Added some more extensions
+
+ Sun Jan 2 12:45:13 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/*:
+ Merged revision 734 from pkg-ace
+
+ === end changelog ===
+
+Mon Jan 17 20:47:01 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/Asynch_Acceptor.cpp (handle_accept): If the new handler has
+ already set its own proactor pointer, don't reset it. Fixes
+ Bugzilla #3947.
+
+Wed Jan 12 21:05:19 UTC 2011 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/OS_NS_unistd.inl:
+ * ace/SPIPE_Stream.inl:
+
+ Use ACE_UNUSED_ARG instead of self assignment to suppress unused
+ variable warning.
+
+Wed Jan 5 23:10:05 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * tests/Bug_2610_Regression_Test.cpp: Fixed a bunch of ACE_ERROR
+ statements to log the actual error cause; also fixed for IPv6.
+
+Wed Dec 29 16:10:21 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/SOCK_Stream.h: Noted that the timeout on the counted send/recv
+ methods applies per operation, restarting on retries, not to the
+ overall set of retries.
+
+Mon Dec 27 20:32:33 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Use $(LIB_PREFIX) and $(LIBEXT) for DEPLIBS.
+ New variable $(LD_RPATH_FLAGS) for extra linker flags that
+ will be used when RPATH is enabled.
+
+ * include/makeinclude/platform_linux.GNU:
+
+ Set LD_RPATH_FLAGS to enable DT_RUNPATH in the ELF headers.
+
+Sat Dec 25 15:52:56 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * Merry Christmas and Peace on Earth.
+
+Tue Dec 21 09:57:54 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * protocols/ace/TMCast/TransactionController.hpp:
+ Added missing ACE_OS:: to memcpy call.
+
+Mon Dec 20 21:10:55 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ACEXML/common/NamespaceSupport.cpp:
+ * Kokyu/DSRT_Sched_Queue_T.cpp:
+ Initialize pointer with zero
+
+Mon Dec 20 20:58:26 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:
+ * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:
+ * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp:
+ Fixed compile warnings.
+
+Fri Dec 17 14:42:53 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * */*.*:
+ Merged RemedyWork branch.
+
+Wed Dec 15 11:32:59 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Msg.cpp:
+ Initialize pointer with zero
+
+Tue Dec 14 15:26:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * etc/index.html:
+ Updated for next release
+
+Tue Dec 14 13:13:17 CET 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 6.0.0 released.
+
+Tue Dec 14 10:12:53 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Atomic_Op_Test.cpp:
+ * tests/Auto_IncDec_Test.cpp:
+ * tests/Buffer_Stream_Test.cpp:
+ * tests/Bug_2434_Regression_Test.cpp:
+ * tests/Bug_3332_Regression_Test.cpp:
+ * tests/Bug_3878_Regression_Test.cpp:
+ * tests/CDR_Array_Test.cpp:
+ * tests/CDR_Test.cpp:
+ * tests/Cache_Map_Manager_Test.cpp:
+ * tests/Collection_Test.cpp:
+ * tests/Conn_Test.cpp:
+ * tests/Dev_Poll_Reactor_Test.cpp:
+ * tests/Dynamic_Priority_Test.cpp:
+ * tests/Dynamic_Test.cpp:
+ * tests/Future_Set_Test.cpp:
+ * tests/Future_Test.cpp:
+ * tests/IOStream_Test.cpp:
+ * tests/Integer_Truncate_Test.cpp:
+ * tests/Intrusive_Auto_Ptr_Test.cpp:
+ * tests/MM_Shared_Memory_Test.cpp:
+ * tests/MT_Reference_Counted_Event_Handler_Test.cpp:
+ * tests/MT_Reference_Counted_Notify_Test.cpp:
+ * tests/MT_SOCK_Test.cpp:
+ * tests/Mem_Map_Test.cpp:
+ * tests/Message_Queue_Notifications_Test.cpp:
+ * tests/New_Fail_Test.cpp:
+ * tests/NonBlocking_Conn_Test.cpp:
+ * tests/Object_Manager_Flipping_Test.cpp:
+ * tests/Pipe_Test.cpp:
+ * tests/Priority_Buffer_Test.cpp:
+ * tests/Proactor_Scatter_Gather_Test.cpp:
+ * tests/Proactor_Test.cpp:
+ * tests/Proactor_Test_IPV6.cpp:
+ * tests/Proactor_UDP_Test.cpp:
+ * tests/Process_Semaphore_Test.cpp:
+ * tests/Process_Strategy_Test.cpp:
+ * tests/RB_Tree_Test.cpp:
+ * tests/Reactor_Timer_Test.cpp:
+ * tests/Reactors_Test.cpp:
+ * tests/Recursive_Mutex_Test.cpp:
+ * tests/SOCK_Send_Recv_Test_IPV6.cpp:
+ * tests/SOCK_Test.cpp:
+ * tests/SOCK_Test_IPv6.cpp:
+ * tests/SPIPE_Test.cpp:
+ * tests/SV_Shared_Memory_Test.cpp:
+ * tests/Signal_Test.cpp:
+ * tests/TP_Reactor_Test.cpp:
+ * tests/TSS_Test.cpp:
+ * tests/Task_Ex_Test.cpp:
+ * tests/Thread_Manager_Test.cpp:
+ * tests/Thread_Mutex_Test.cpp:
+ * tests/Thread_Pool_Reactor_Resume_Test.cpp:
+ * tests/Thread_Pool_Reactor_Test.cpp:
+ * tests/Thread_Pool_Test.cpp:
+ * tests/Thread_Timer_Queue_Adapter_Test.cpp:
+ * tests/Time_Value_Test.cpp:
+ * tests/Timer_Queue_Reference_Counting_Test.cpp:
+ * tests/Tokens_Test.cpp:
+ * tests/UPIPE_SAP_Test.cpp:
+ * tests/Vector_Test.cpp:
+ * tests/WFMO_Reactor_Test.cpp:
+ Replaced ACE_ASSERT by ACE_TEST_ASSERT to conditions get
+ tested in release mode as well.
+
+Mon Dec 13 07:59:21 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Message_Queue_NT.cpp:
+ Add missing activation in open() (setting state indicator).
+
+Sun Dec 12 16:20:22 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ Fix DLL export problems with MingW GCC 4.5.0
+
+ * ace/Future_Set.cpp:
+ * protocols/ace/RMCast/Acknowledge.cpp:
+ * protocols/ace/RMCast/Protocol.h:
+ * protocols/ace/RMCast/Reassemble.cpp:
+ * tests/Bug_3332_Regression_Test.cpp:
+ * tests/Bug_3911_Regression_Test.cpp:
+ * tests/Hash_Map_Manager_Test.cpp:
+ Fixed uninitialized use warnings.
+
+ * ace/WIN32_Asynch_IO.cpp:
+ Fixed comparison always true warning.
+
+ * examples/Reactor/WFMO_Reactor/Handle_Close.cpp:
+ Fixed constant char* assignment.
+
+ * examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp:
+ Fixed unused argument/variable warnings.
+
+ * tests/Array_Map_Test.cpp:
+ * tests/Handle_Set_Test.cpp:
+ * tests/Hash_Map_Bucket_Iterator_Test.cpp:
+ * tests/MT_Reactor_Timer_Test.cpp:
+ * tests/Malloc_Test.cpp:
+ * tests/Naming_Test.cpp:
+ * tests/Process_Manual_Event_Test.cpp:
+ * tests/Process_Mutex_Test.cpp:
+ * tests/Reactor_Notify_Test.cpp:
+ * tests/Sig_Handlers_Test.cpp:
+ * tests/Sigset_Ops_Test.cpp:
+ * tests/Timer_Queue_Test.cpp:
+ Replaced ACE_ASSERT by ACE_TEST_ASSERT to make test
+ function in release (NDEBUG) builds as well.
+
+Wed Dec 8 09:36:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Configuration.cpp:
+ Fixed uninitialized use warning.
+
+Tue Dec 7 23:07:27 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3878_Regression_Test.cpp:
+ Fixed problem in single threaded build
+
+Tue Dec 7 23:04:14 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3539_Regression_Test.cpp:
+ Fixed problem in single threaded build
+
+Tue Dec 7 15:52:02 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * tests/Atomic_Op_Test.cpp: For platforms w/o built-in atomic op
+ support, run fewer iterations of the test loop. Those platforms
+ sometimes time out during regression tests. This was a problem
+ with Riverace's PA-RISC box so if this change causes problems
+ otherwise, please let me know.
+
+Mon Dec 6 15:59:52 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/make_release.py:
+
+ Enabled the calls to update_latest_tag() now that the bug in that
+ functions has been fixed in:
+ Tue Sep 14 16:42:26 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+Sat Dec 4 14:25:26 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.cpp (timestamp):
+ * ace/Log_Msg.cpp (log):
+ * ace/Log_Msg_UNIX_Syslog.cpp (log):
+ * ace/Log_Record.cpp (format_msg):
+ * examples/Misc/test_timestamp.cpp: Cleanups, correcting buffer sizes
+ from old 35-char length to 27 based on new timestamp format. Thanks
+ to Thomas Lockhart for these.
+
+Thu Dec 2 18:29:36 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.{h cpp} (timestamp): Changed the format produced from
+ ACE::timestamp() from ctime-ish "Day Mon dd hh:mm:ss yyyy" to
+ ISO-8601 yyyy-mm-dd hh:mm:ss.mmmmmm. Thank you to Thomas
+ Lockhart for this fix. Resolves Bugzilla #3210.
+ Also fixed up the doxygen comments related.
+
+ * ace/Log_Record.cpp (format_msg): VERBOSE[_LITE] timestamp also
+ changed to ISO-8601 format but uses 3 decimal places after secs.
+
+ * NEWS: Described above change for users.
+
+Mon Nov 29 17:20:47 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * THANKS:
+
+ Added Shi John <John dot Shi at acxiom dot com>.
+
+Fri Nov 26 17:36:10 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/os_include/os_pthread.h: Removed the #defines for
+ PTHREAD_CANCEL_{ENABLE, DISABLE, DEFERRED, ASYNCHRONOUS}. They
+ were breaking the LynxOS build (LynxOS sets these via enum, not
+ macro). If a platform doesn't have these symbols then the
+ ACE_LACKS_PTHREAD_CANCEL config setting should be used to avoid
+ code that references them.
+
+Thu Nov 25 12:17:31 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_unistd.h:
+ * ace/OS_NS_unistd.cpp:
+ Removed not enabled ftruncate workaround
+
+ * ace/Env_Value_T.h:
+ Doxygen change
+
+ * ace/OS_NS_sys_utsname.cpp:
+ * ace/OS_NS_sys_wait.cpp:
+ * ace/OS_NS_time.cpp:
+ * ace/OS_NS_wchar.cpp:
+ Layout changes
+
+Tue Nov 23 23:20:07 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/os_include/os_pthread.h: Give definite values to THR_CANCEL_*
+ flags - using the PTHREAD_CANCEL_* values gives the THR_CANCEL_*
+ options overlapping bits making it impossible to distinguish them.
+
+ * ace/Base_Thread_Adapter.{h, cpp}:
+ * ace/OS_NS_Thread.cpp (thr_create):
+ * ace/OS_Thread_Adapter.{h, cpp}:
+ * ace/Thread_Adapter.{h, cpp}:
+ * ace/Thread_Manager.cpp (spawn):
+ Added a member in the thread adapters to carry the cancel flags
+ through to the spawned thread. In the spawned thread, check the
+ cancel-related flags and act on them if set. This enables proper
+ support for spawning threads with the THR_CANCEL_* flags as
+ documented.
+
+ * ace/OS_NS_Thread.{h inl} (thr_setcancelstate, thr_setcanceltype):
+ Map the THR_CANCEL_* values to PTHREAD_CANCEL_* values on both
+ sides of the pthread call. Makes this API portable across OSes
+ in case cancel support is ever added anywhere else.
+ Added comments for doxygen to pick up explaining this.
+
+ * tests/Thread_Attrs_Test.cpp: Added test cases for spawning threads
+ with various cancel settings.
+
+ Resolves Bugzilla #3932.
+
+Fri Nov 19 18:55:58 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * THANKS:
+
+ Added Wendsomde Yameogo <wendsomde at yameogo dot com>.
+
+Fri Nov 19 15:46:07 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Attempted to fix compile problems with using tao_idl3_to_xmi
+ in cross builds.
+
+Wed Nov 17 09:29:42 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * apps/gperf/src/Key_List.cpp:
+ Fixed memory leaks.
+
+Mon Nov 15 12:58:26 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Malloc_Test.cpp:
+ Use ACE_auto_ptr_reset
+
+Mon Nov 15 12:41:22 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * protocols/ace/INet/inet.mpc: Renamed 2nd instance of http_simple_wget
+ to be slightly different in ssl case - prevents name clash when
+ regenerating automake files.
+
+Mon Nov 15 12:29:51 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * m4/ace.m4: Restored TAO-related conditionals; there's no way to set
+ them to true, but they're referred to in many Makefile.ams so
+ the conditional needs to be there.
+ Also added enable/disable for protocols/ace/INet.
+
+Mon Nov 15 09:40:48 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * Makefile.am:
+ Zap TAO as directory
+
+ * ACEXML/common/XML_Types.h:
+ * ace/Auto_Ptr.h:
+ * ace/Basic_Types.h:
+ * ace/OS_NS_Thread.cpp:
+ * ace/Obchunk.cpp:
+ * ace/Object_Manager.cpp:
+ * ace/Object_Manager_Base.cpp:
+ * ace/Proactor.h:
+ * ace/SOCK_Dgram.h:
+ * ace/SOCK_Dgram.inl:
+ * ace/SOCK_Dgram_Mcast.h:
+ * ace/SOCK_Dgram_Mcast.cpp:
+ * ace/SString.h:
+ * ace/SString.cpp:
+ * ace/Thread_Exit.cpp:
+ * ace/Timer_List.h:
+ * ace/config-lite.h:
+ * apps/JAWS/clients/Caching/Locator_Request_Reply.cpp:
+ * apps/JAWS/clients/Caching/URL_Properties.h:
+ * apps/JAWS/clients/Caching/URL_Properties.inl:
+ * apps/JAWS/clients/Caching/URL_Properties.cpp:
+ Clean of deprecated define ACE_USHORT16 and ACE_AUTO_PTR_RESET
+
+ * configure.ac:
+ Updated support address
+
+Wed Nov 10 18:12:41 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Makefile.am:
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ Updated for removed file
+
+ * ace/Strategies.h:
+ Removed this file, was for backwards compatibility but had an invalid
+ include in it. Thanks to Helmut Böing for reporting this
+
+Wed Nov 10 14:49:57 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SOCK_Dgram_Mcast.h:
+ Doxygen changes
+
+ * configure.ac:
+ * m4/ace.m4:
+ * m4/tao.m4:
+ Removed support for TAO, thanks to Mark <markg85 at gmail dot com>
+ for reporting this
+
+Wed Nov 10 10:17:27 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ Added support for tao_idl3_to_xmi in makefiles.
+
+Sun Nov 7 00:13:13 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * tests/INET_Addr_Test.cpp: Mismatching the addr->name test is not
+ necessarily an error.
+
+Fri Nov 5 14:23:26 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * include/makeinclude/rules.local.GNU: Added a hook for users to
+ include site-private rules in a build. If the user places a
+ "rules.private.GNU" in any build directory it will get included
+ from rules.local.GNU. The "private_rules_file" make variable
+ can be set to override the name and/or location of the file.
+ If no such rules file exists, its absence is silently ignored.
+ This facility can be used, for example, to integrate a specialized
+ code checker into the build process.
+
+ * NEWS: Describe this new hook.
+
+Fri Nov 5 00:29:08 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Process_Manager.h: Removed remaining references to reap().
+ Noted that terminate() doesn't remove the process entry, and the
+ caller is advised to also call wait() or remove().
+
+Thu Nov 4 15:17:51 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/INET_Addr.cpp (set): For platforms that have the GNU-extended
+ gethostbyname2_r() function, use it instead of getaddrinfo() for
+ a IPv6 hostname lookup. Customer reports that it getaddrinfo() is
+ hugely slower than gethostbyname2 on large vlans. The alternate
+ code is used if ACE_HAS_GETHOSTBYNAME2 is set in config.h.
+ (This is a revised fix from Tue Nov 2 00:18:34 UTC 2010)
+
+ * tests/INET_Addr_Test.cpp: Add some IPv6 address and name lookups.
+
+Tue Nov 2 13:26:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ATM_Stream.inl:
+ * ace/Atomic_Op.inl:
+ * ace/Atomic_Op_GCC_T.inl:
+ Layout changes
+
+ * ace/OS_NS_dlfcn.inl:
+ Removed old code
+
+ * ace/config-macros.h:
+ When using ACE_HAS_VALGRIND, disable the dlclose functionality,
+ valgrind needs to have all loaded dll's still in memory in order
+ to show the full callstack, if the dll is unloaded before process
+ shutdown valgrind will show ???
+
+ * ace/os_include/os_dlfcn.h:
+ Removed old defines
+
+ * debian/TODO:
+ * debian/debian.rules:
+ Cleanup
+
+ * debian/cmp-installation.sh:
+ Removed this file.
+
+Tue Nov 2 01:25:05 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Log_Msg.cpp (ACE_Log_Msg::log): Added
+
+ ACE_OS::memset(format,'\0',128);
+
+ to ensure the format string has known values. Thanks to Chad
+ Beaulac <chad dot beaulac at objectivesolutions dot com> for
+ this suggestion. This fixes bugid 3923.
+
+Tue Nov 2 00:18:34 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/INET_Addr.cpp (set): For platforms that have the GNU-extended
+ gethostbyname2_r() function, use it instead of getaddrinfo() for
+ a IPv6 hostname lookup. Customer reports that it getaddrinfo() is
+ hugely slower than gethostbyname2 on large vlans. The alternate
+ code is used if ACE_HAS_GETHOSTBYNAME2 is set in config.h.
+
+ * configure.ac: Check for ACE_HAS_GETHOSTBYNAME2.
+
+Mon Nov 1 15:03:05 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Reactor.h: Clarified some behavior descriptions related to
+ timer expiry behavior and return value from handle_timeout().
+
+Mon Nov 1 14:57:11 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ace/OS_NS_sys_mman.inl:
+
+ For 64-bit Windows, pass the high 32 bits of ACE_OS::mmap()'s "len"
+ parameter as the 3rd parameter to CreateFileMapping(), which was
+ previously hard-coded to zero. This both avoids a warning and also
+ enables the user to pass a value > MAX_INT as the maximum size.
+
+Mon Nov 1 07:18:43 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Reverted some of changes in previous commit which
+ were accidentally cheked in.
+
+Sun Oct 31 10:14:10 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Removed some legacy GLIBC 1.x related settings.
+
+Sat Oct 30 10:09:47 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ Removed some legacy settings.
+
+Fri Oct 29 14:33:33 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Removed GCC 2.x support.
+
+Thu Oct 28 17:45:10 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/INET_Addr.cpp (set): Corrected ACE_HAS_IPV6 checks made in
+ Wed Oct 27 22:16:12 UTC 2010 Steve Huston <shuston@riverace.com>.
+
+Thu Oct 28 11:40:01 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * bin/make_release.py:
+ Fixed incorrect spelling of DANCE.
+
+Thu Oct 28 11:18:12 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Fixed generation of dsc file
+
+Thu Oct 28 07:38:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Array_Map.h:
+ * ace/Array_Map.cpp:
+ * ace/Auto_Functor.h:
+ * ace/Auto_Functor.inl:
+ * ace/Value_Ptr.h:
+ * ace/config-g++-common.h:
+ * ace/config-win32-msvc-8.h:
+ * performance-tests/Misc/test_singleton.cpp:
+ Cleanup because GCC < 3 isn't supported anymore
+
+ * include/makeinclude/platform_hpux_aCC.GNU:
+ aCC 3.31 isn't supported anymore for a long time
+
+Thu Oct 28 07:08:00 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/APG/Logging/Trace_Return.cpp:
+ * examples/APG/Logging/Wrap_Macros.cpp:
+ Fixed compile errors
+
+Wed Oct 27 22:16:12 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/INET_Addr.cpp (set): When looking up a hostname, always use
+ gethostbyname() for IPv4 requests, even if IPv6 is available.
+ getaddrinfo() (used when IPv4 and 6 are both available) is hugely
+ slower than gethostbyname() in large vlan environments. Note that
+ even though gethostbyname() can grok IPv6 on Linux, it can't
+ anywhere else, so I avoided trying to go that route.
+
+Wed Oct 27 19:35:09 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/libace-5.8.3.docs:
+ * rpmbuild/ace-tao.spec:
+ FAQ got removed
+
+Wed Oct 27 17:47:55 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-g++-common.h:
+ * examples/APG/Logging/Trace.h:
+ * examples/APG/Logging/Trace_Return.cpp:
+ * examples/APG/Logging/Wrap_Macros.cpp:
+ Removed support for GCC < 3
+
+Wed Oct 27 17:40:19 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Download.html:
+ Make x.8.3 available for download
+
+ * debian/ace.dsc:
+ Updated size and md5
+
+ * rpmbuild/ace-tao.spec:
+ Corrected executable names
+
+Wed Oct 27 12:29:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/index.html:
+ Added x.8.3
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Updated for x.8.3
+
+ * bin/make_release.py:
+ Generate spaces and removed some not needed excludes
+
+ * bin/generate_rel_manpages:
+ Print a message when we are ready
+
+Wed Oct 27 10:38:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ChangeLog:
+ * NEWS:
+ Updated for next release
+
+Wed Oct 27 12:01:05 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.8.3 released.
+
+Tue Oct 26 11:21:35 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Fixed DANCE_ROOT, could cause problems with the test stats email
+
+Mon Oct 25 21:01:02 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * NEWS:
+ Updated.
+
+Mon Oct 25 14:07:15 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Service_Gestalt.cpp:
+ Another fix to error processing behavior. If the result of
+ process_directives() was > 0, that value was replaced by the
+ result of process_commandline_directives(), which is contrary to
+ the expected behavior. Now the result is the sum of these to
+ return values, unless either returns -1, then the result is just
+ -1.
+
+Mon Oct 25 06:30:35 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op_T.h:
+ * ace/Auto_IncDec_T.h:
+ Doxygen changes
+
+Sun Oct 24 12:35:28 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Event_Handler.h:
+ * ace/Reactor.h:
+ * ace/Reactor_Notification_Strategy.h:
+ * ace/Read_Buffer.h:
+ * ace/Registry_Name_Space.h:
+ * ace/Remote_Tokens.h:
+ Doxygen changes
+
+Fri Oct 22 11:19:33 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Reactor.h:
+ Doxygen changes
+
+Thu Oct 21 11:10:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ACE.cpp:
+ * ace/FILE_IO.h:
+ * ace/Free_List.h:
+ * ace/Handle_Set.h:
+ * ace/Log_Msg.h:
+ * ace/WIN32_Asynch_IO.h:
+ Doxygen changes
+
+Wed Oct 20 18:19:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ If we just see dollarIddollar we trigger an error, svn:keywords is
+ than lacking
+
+Wed Oct 20 16:07:09 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Timer_Queue_Adapters.cpp (ACE_Thread_Timer_Queue_Adapter::svc):
+ * ace/Timer_Queue_T.cpp (expire):
+ Temporarily release and reacquire the mutex around timer dispatch.
+ This prevents a deadlock on user code with multiple threads doing
+ timer-related operations.
+
+Wed Oct 20 09:22:46 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ Add nddsmonitor as default to 0
+
+Wed Oct 20 09:19:25 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Msg.h:
+
+ * bin/MakeProjectCreator/config/global.features:
+
+ * tests/Time_Value_Test.cpp:
+
+Tue Oct 19 18:11:57 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/Caching_Utility_T.cpp:
+ Added missing include.
+
+Tue Oct 19 09:44:45 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/Caching_Utility_T.cpp:
+ Use ACE::is_equal() to compare floating point values.
+
+Fri Oct 15 10:18:05 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3911_Regression_Test.cpp:
+ Fixed warning
+
+Thu Oct 14 18:29:35 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ 3911 doesn't work with ace_for_tao
+
+Thu Oct 14 13:15:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Process.h:
+ * ace/Process.cpp:
+ Changes to allow to dynamically define the max. number of cmdline args.
+ The tao_idl compiler was running out of room in certain instances and
+ the static max was very conservative.
+
+Thu Oct 14 09:38:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Bug_3911_Regression_Test.cpp:
+ Wchar build fixes.
+
+Wed Oct 13 08:24:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Bug_3911_Regression_Test.cpp:
+ Wchar build fixes.
+
+Wed Oct 13 06:15:00 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Framework_Component.h:
+ * ace/Framework_Component.inl:
+ * ace/Framework_Component.cpp:
+ * ace/Framework_Component_T.h:
+ Use ACE_Copy_Disabled, change c-style cast to const cast, use
+ sync macros instead of ACE_MT. Thanks to Ranjit Hande
+ <hande at avaya dot com> for reporting the c-style cast warnings
+
+ * tests/Framework_Component_Test.h:
+ Layout change
+
+Tue Oct 12 21:12:51 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/DependencyGenerator/GNUObjectGenerator.pm:
+
+ Fixed incorrect Perl regex escaping from my previous commit.
+
+Tue Oct 12 11:41:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Bug_3911_Regression_Test.cpp:
+ Fuzz fixes.
+
+Tue Oct 12 08:06:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * tests/Bug_3911_Regression_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Added reproducer test for Bugzilla #3911.
+
+Mon Oct 11 16:31:12 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/DependencyGenerator/GNUObjectGenerator.pm:
+
+ If the source file contains '../', remove the directory part from
+ the name of the object file (see gnu.mpd:383 OBJS make variable).
+
+Mon Oct 11 11:53:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Dev_Poll_Reactor.cpp:
+ * ace/Select_Reactor_T.cpp:
+ Fixed problems with threads=0, thanks to Elez <elezsh at gmail dot com>
+ for reporting this and providing a patch
+
+Fri Oct 8 11:19:44 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * protocols/ace/RMCast/Flow.cpp:
+ Added missing include.
+
+Fri Oct 8 08:42:37 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-linux-common.h:
+ * ace/os_include/os_unistd.h:
+ * configure.ac:
+ * m4/config_h.m4:
+ Removed references to ACE_LACKS_PREAD_PROTOTYPE. It is no
+ longer used.
+
+Fri Oct 8 08:20:04 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdio.inl:
+ * ace/README:
+ * tests/OS_Test.cpp:
+ Removed references to ACE_LACKS_RENAME. It is no
+ longer used.
+
+Fri Oct 8 07:51:46 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/config-integritySCA.h:
+ Removed references to ACE_LACKS_IPC_H. It is no
+ longer used.
+
+Fri Oct 8 07:48:38 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/README:
+ Removed references to ACE_LACKS_IOSTREAMS_TOTALLY. It is no
+ longer used.
+
+ * ace/os_include/os_stropts.h:
+ Fixed typo.
+
+Fri Oct 8 07:42:26 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/OS_NS_stdio.h:
+ * ace/OS_NS_stdio.inl:
+ * ace/README:
+ * ace/Svc_Conf_Lexer.cpp:
+ Removed references to ACE_LACKS_CLEARERR. It is no
+ longer used.
+
+Fri Oct 8 06:58:56 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * protocols/ace/RMCast/Flow.cpp:
+ * tests/CDR_Array_Test.cpp:
+ * tests/CDR_File_Test.cpp:
+ * tests/CDR_Test.cpp:
+ * tests/Upgradable_RW_Test.cpp:
+ Use ACE::is_equal() to compare floating point values.
+
+Thu Oct 7 12:34:20 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ASNMP/tests/Counter64_Test.cpp:
+ * ace/ETCL/ETCL_Constraint.cpp:
+ * ace/Monitor_Control/CPU_Load_Monitor.cpp:
+ Use ACE::is_equal() to compare floating point values.
+
+Tue Oct 5 07:23:19 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE-INSTALL.html:
+ * COPYING:
+ Small updates
+
+ * docs/ACE-porting.html:
+ Updated links
+
+ * include/makeinclude/wrapper_macros.GNU:
+ Added support for valgrind=1
+
+Mon Oct 4 19:55:33 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/make_release.py:
+
+ Updates.
+
+Mon Oct 4 12:32:02 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/LSOCK_Stream.h:
+ Doxygen changes
+
+ * ace/Makefile.am:
+ Removed zapped file
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ Removed SUN_CC_HAS_PVFC_BUG, this got added 8 years ago and is
+ used for any SunCC compiler version. If some old SunCC compiler breaks
+ we can readd this flag for just that compiler version
+
+Fri Oct 1 16:00:51 UTC 2010 William Otte <wotte@zifnab>
+
+ * COPYING:
+
+ Updated to include DAnCE.
+
+Fri Oct 1 11:55:23 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-g++-common.h:
+ * ace/config-qnx-neutrino.h:
+ * ace/config-qnx-rtp-common.h:
+ Fixed redefinition warnings
+
+ * ace/ace_for_tao.mpc:
+ Zapped some files
+
+ * ace/config-win32-common.h:
+ * ace/config-win32-msvc.h:
+ * ace/config-win32.h:
+ Cleanup
+
+ * ace/config-win32-ghs.h:
+ Removed this file.
+
+Thu Sep 30 10:49:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/mpc-ace.install:
+ Improved
+
+ * docs/bczar/bczar.html:
+ Added DAnCE to doxygen instructions
+
+Thu Sep 30 08:09:34 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/IOStream.h:
+ * ace/config-g++-common.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-linux-common.h:
+ * ace/config-mvs.h:
+ * ace/config-sunos5.5.h:
+ * ace/config-win32-borland.h:
+ * ace/config-win32-cegcc.h:
+ * ace/config-win32-dmc.h:
+ * ace/config-win32-ghs.h:
+ * ace/config-win32-mingw.h:
+ * ace/config-win32-msvc.h:
+ Cleanup, move g++ version defines to config-g++-common.h
+
+Thu Sep 30 05:45:10 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * NEWS:
+ * ace/Cache_Map_Manager_T.h:
+ * ace/Cache_Map_Manager_T.inl:
+ * ace/Cache_Map_Manager_T.cpp:
+ * ace/Cached_Connect_Strategy_T.h:
+ * ace/Cached_Connect_Strategy_T.cpp:
+ * ace/Caching_Strategies_T.h:
+ * ace/Caching_Utility_T.cpp:
+ * ace/Cleanup_Strategies_T.cpp:
+ * ace/Hash_Cache_Map_Manager_T.h:
+ * ace/Hash_Cache_Map_Manager_T.cpp:
+ * ace/Map_T.h:
+ * ace/Map_T.inl:
+ * ace/Map_T.cpp:
+ * ace/Pair_T.h:
+ * ace/Pair_T.inl:
+ * examples/Web_Crawler/URL_Visitor.h:
+ * tests/Cache_Map_Manager_Test.cpp:
+ * tests/Cached_Accept_Conn_Test.h:
+ * tests/Cached_Conn_Test.cpp:
+ * tests/Map_Manager_Test.cpp:
+ Removed ACE_Pair from the ACE library.
+
+Wed Sep 29 14:06:40 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Cache_Map_Manager_T.h:
+ * ace/MEM_SAP.h:
+ * ace/Metrics_Cache_T.h:
+ * ace/Metrics_Cache_T.inl:
+ * ace/Metrics_Cache_T.cpp:
+ Doxygen changes
+
+Wed Sep 29 12:19:17 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Caching_Utility_T.h:
+ * ace/Caching_Utility_T.cpp:
+ Use bool and ACE_Copy_Disabled
+
+ * ace/Malloc_Base.h:
+ * ace/Malloc_T.h:
+ Typo fixes
+
+Wed Sep 29 12:08:58 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ Add ccm_noevent option, default 0, events in CCM are enabled.
+ If set, events in CCM are disabled.
+
+Tue Sep 28 18:48:58 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/JAWS3/jaws3-todo:
+ Removed, todo for years now
+
+Tue Sep 28 18:16:52 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * performance-tests/TCP/tcp_test.cpp:
+
+ If the 1st char of the host name is a digit, need to set the IP
+ address and port as network byte order since that is what's
+ returned from ACE_OS::inet_addr().
+
+Tue Sep 28 11:34:05 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Asynch_Connector.cpp:
+ * ace/Barrier.h:
+ * ace/Barrier.cpp:
+ * ace/Condition_Thread_Mutex.h:
+ * ace/Condition_Thread_Mutex.inl:
+ * ace/Containers_T.cpp:
+ * ace/Functor.h:
+ * ace/Functor.inl:
+ * ace/IO_Cntl_Msg.cpp:
+ * ace/Intrusive_List.cpp:
+ * ace/Local_Tokens.inl:
+ * ace/MEM_IO.cpp:
+ * ace/MEM_Stream.h:
+ * ace/MEM_Stream.inl:
+ * ace/Malloc_T.inl:
+ * ace/OS_NS_Thread.inl:
+ * ace/OS_NS_string.inl:
+ * ace/Object_Manager_Base.cpp:
+ * ace/POSIX_Proactor.cpp:
+ * ace/Ping_Socket.cpp:
+ * ace/Signal.inl:
+ * ace/Throughput_Stats.h:
+ * ace/Throughput_Stats.cpp:
+ * ace/Time_Value.cpp:
+ * ace/Timer_Hash_T.cpp:
+ * ace/Timer_Heap_T.cpp:
+ * ace/Vector_T.h:
+ * ace/Vector_T.cpp:
+ * ace/config-linux-common.h:
+ Removed code that was ifdefed out for years now
+
+Tue Sep 28 08:31:37 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * performance-tests/Misc/test_guard.cpp:
+ * tests/ACE_Test.cpp:
+ * examples/Reactor/TP_Reactor/client.cpp:
+ Fixed compilation errors with missing includes.
+
+Mon Sep 27 18:04:34 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ACE.h:
+ * ace/Thread.h:
+ * ace/Thread_Adapter.h:
+ * ace/Thread_Mutex.h:
+ Doxygen changes
+
+Mon Sep 27 14:47:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/String_Base.h:
+ Doxygen changes
+
+ * ace/Svc_Conf_Lexer.cpp:
+ Const changes
+
+ * bin/msvc_static_order.lst:
+ Some updates, but this list is very outdated
+
+Mon Sep 27 14:27:25 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * THANKS:
+
+ Added Matthew Waller <matthewrwaller at gmail dot com>
+
+Mon Sep 27 14:08:11 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Log_Msg.h:
+ * ace/Log_Msg.cpp:
+ Fixed compilation with ACE_HAS_DUMP. The later happens because
+ ACE_Log_Msg depends on ACE_Atomic_Op and ACE_Atomic_Op needs
+ ACE_DEBUG when ACE_HAS_DUMP is defined. This change moves
+ include of ace/Atomic_Op.h from header to CPP file and adds
+ forward declaration for ACE_Atomic_Op.
+
+ * ace/Atomic_Op_T.cpp:
+ * ace/Guard_T.cpp:
+ Removed unnecessary this paramater when doing ACE_END_DUMP.
+
+ * examples/Misc/test_dump.h:
+ * examples/Threads/thread_specific.cpp:
+ Fixed logging in these tests.
+
+Mon Sep 27 11:24:02 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * examples/C++NPv2/AIO_Client_Logging_Daemon.h:
+ Another attempt to fix compile error.
+
+Mon Sep 27 09:42:29 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Enable export file check, use TAO_IDL to generate export files or
+ remove the generated by line from the export file itself. Currently
+ only for CIAO and DAnCE
+
+Sat Sep 25 06:41:39 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/ACE.h:
+ Modified ACE::is_equal() comment once again to make fuzz happy.
+
+Fri Sep 24 14:52:44 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Pipe.{h inl cpp}: Added two new methods, close_read() and
+ close_write() to close individual pipe handles. Refactored the
+ original close() method to use these and factored out the actual
+ closing code to a new inlined close_handle() method.
+
+ Thanks to John Lilley <jlilley at datalever dot com> for this
+ addition.
+
+ * NEWS: Added description of the new methods.
+
+Fri Sep 24 12:41:13 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE-INSTALL.html:
+ Updated Remedy platforms
+
+ * ACEXML/parser/parser/Parser.h:
+ * ace/Containers_T.h:
+ * ace/Containers_T.cpp:
+ * ace/OS_NS_string.h:
+ * ace/OS_NS_wchar.h:
+ * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h:
+ Fixed typo
+
+Fri Sep 24 12:32:44 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Containers_T.h:
+ * ace/Containers_T.cpp:
+ * ace/OS_NS_string.h:
+ * ace/OS_NS_wchar.h:
+ Fixed typo
+
+Fri Sep 24 12:24:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE-INSTALL.html:
+ Documented vc10, thanks to Paul Carter <pcarter at scires dot com>
+ for reporting this.
+
+Fri Sep 24 11:44:06 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/ACE.h:
+ Adjusted ACE::is_equal() comment to make fuzz happy.
+
+Fri Sep 24 09:35:00 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * examples/C++NPv2/AIO_Client_Logging_Daemon.h:
+ Removed code that is problematic for GCC 2.95.3 in a crossbuild
+ for LynxOS 4.0.
+
+Fri Sep 24 07:35:27 UTC 2010 Olli Savia <ops@iki.fi>
+
+ * ace/ACE.h:
+ Added a simple helper ACE::is_equal() which compares equality of two
+ objects without using operator==. This is useful for comparing floating
+ point values.
+
+ * tests/OS_Test.cpp:
+ Use ACE::is_equal() instead of local copy.
+
+Thu Sep 23 16:14:12 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ace/SSL/ssl.mpc:
+ * bin/MakeProjectCreator/config/pkgconfig.mpb:
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ * bin/ace_install_pkgconfig.pl:
+ * include/makeinclude/rules.lib.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+
+ Added support for installing pkg-config (.pc) files as part of the
+ gnuace "make install". This includes a refactoring of how the
+ shared library version numbers are set internally in the makefiles.
+
+Thu Sep 23 12:32:05 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Service_Gestalt.cpp:
+ Fixed memory leak. Previously it could happen that svc_queue_ was
+ allocated during processing of arguments but was not freed if
+ application didn't call process_commandline_directives().
+
+ * tests/Network_Adapters_Test.cpp:
+ Removed non-ASCII character from the comments.
+
+Wed Sep 22 18:42:25 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/msvc_mpc_auto_compile.pl:
+
+ Updates for DAnCE.
+
+Wed Sep 22 14:17:11 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * debian/Basic_Logging_Service.sgml:
+ * debian/Event_Logging_Service.sgml:
+ * debian/Notify_Logging_Service.sgml:
+ * debian/RTEvent_Logging_Service.sgml:
+ Renamed TAO orb services. See $TAO_ROOT/NEWS for details.
+
+Wed Sep 22 14:06:25 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * debian/libtao-orbsvcs-1.8.2.install:
+ * debian/libtao-orbsvcs-dev.install:
+ * debian/tao-imr.install:
+ * debian/tao-naming.install:
+ * debian/tao-notify.install:
+ * debian/tao-rtevent.install:
+ Renamed TAO orb services. See $TAO_ROOT/NEWS for details.
+
+Wed Sep 22 13:58:46 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * debian/tao-concurrency.install:
+ * debian/tao-event.install:
+ * debian/tao-ft.install:
+ * debian/tao-ifr.install:
+ * debian/tao-lifecycle.install:
+ * debian/tao-load.install:
+ * debian/tao-log.install:
+ * debian/tao-scheduling.install:
+ * debian/tao-time.install:
+ * debian/tao-trading.install:
+ Renamed TAO orb services. See $TAO_ROOT/NEWS for details.
+
+Tue Sep 21 08:27:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ASNMP/agent/main.cpp:
+ Fixed compile error
+
+Mon Sep 20 13:24:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ASNMP/agent/agent.mpc:
+ * ASNMP/agent/main.cpp:
+ Enable for wchar, thanks to Christian Freund <freund at wrz dot de>
+ for reporting this and providing a patch, fixes bugzilla 3889
+
+ * ace/String_Base.h:
+ * apps/JAWS3/http/HTTP_Service_Handler.h:
+ * apps/JAWS3/small/SS_Service_Handler.h:
+ Fixed typo in comment
+
+ * ace/config-win32-borland.h:
+ Some updates based on QC emails
+
+ * debian/libtao-dev.install:
+ * debian/mpc-ace.install:
+ Fixed paths
+
+Fri Sep 17 20:14:33 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ace/FlReactor/ace_flreactor.mpc:
+ * ace/FoxReactor/ace_foxreactor.mpc:
+ * ace/QtReactor/ace_qt3reactor.mpc:
+ * ace/QtReactor/ace_qt4reactor.mpc:
+ * ace/TkReactor/ace_tkreactor.mpc:
+ * ace/XtReactor/ace_xtreactor.mpc:
+
+ Since these have been moved, the default install_dir isn't what we
+ want. Set the install_dir to ace/*Reactor.
+
+Fri Sep 17 07:51:06 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * bin/fuzz.pl:
+ Added Id check for cdp files.
+
+Fri Sep 17 07:16:16 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Msg.h:
+ * ace/OS_Errno.cpp:
+ Layout changes
+
+ * ace/Malloc_T.h:
+ * ace/Malloc_T.cpp:
+ * ace/Map_Manager.inl:
+ * ace/Map_Manager.cpp:
+ Moved some methods inline
+
+ * ace/OS_NS_signal.cpp:
+ Fixed problem with versioned macros
+
+Thu Sep 16 13:36:51 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/URLBase.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ Changes to fix export problems with nested classes with MSVC 9.
+
+Thu Sep 16 09:25:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace.mpc:
+ Removed Service_Templates.h
+
+Thu Sep 16 09:08:39 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * protocols/tests/HTBP/Send_Large_Msg/server.cpp:
+ * protocols/tests/HTBP/ping/client.cpp:
+ Added missing includes
+
+Wed Sep 15 12:45:13 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Auto_Event.h:
+ * ace/OS_NS_arpa_inet.inl:
+ * ace/OS_NS_arpa_inet.cpp:
+ * ace/OS_NS_errno.cpp:
+ * ace/OS_NS_fcntl.cpp:
+ * ace/OS_NS_math.cpp:
+ * ace/OS_NS_pwd.inl:
+ * ace/OS_NS_pwd.cpp:
+ * ace/OS_NS_regex.inl:
+ * ace/OS_NS_regex.cpp:
+ * ace/OS_NS_signal.cpp:
+ * ace/OS_NS_sys_resource.cpp:
+ * ace/OS_NS_sys_wait.inl:
+ * ace/OS_NS_wctype.inl:
+ * ace/OS_NS_wctype.cpp:
+ * ace/config-tandem.h:
+ * ace/os_include/os_pthread.h:
+ * ace/os_include/os_signal.h:
+ * ace/os_include/sys/os_resource.h:
+ * ace/os_include/sys/os_socket.h:
+ Small cleanup and layout changes
+
+Wed Sep 15 12:31:07 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * protocols/tests/HTBP/Reactor_Tests/server.cpp:
+ * protocols/tests/HTBP/Send_Recv_Tests/server.cpp:
+ * protocols/tests/HTBP/ping/server.cpp:
+ Fixed solaris compile problems
+
+Wed Sep 15 09:33:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ Zapped removed files
+
+ * docs/svn/config:
+ Added another file type
+
+Wed Sep 15 07:51:33 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ Removed invalid comma, thanks to Frank Preischl
+ <Frank dot Preischl at ids dot de> for reporting this and Olli Savia
+ for correcting my initial patch
+
+Tue Sep 14 18:18:36 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace.mwc:
+ No need for a workspace with all projects in it
+
+ * ace/ace_ce_dll.cfg:
+ Removed this file, ancient and not used
+
+Tue Sep 14 16:42:26 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/make_release.py (update_latest_tag):
+
+ Fixed a bug with the new DAnCE changes and changed the way it does
+ the svn properties edits. This function is still not called, but
+ the calls are ready to be un-commented whenever the buildczar or
+ release manager can re-enable this.
+
+Tue Sep 14 13:00:44 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Record.h:
+ * ace/Log_Record.inl:
+ * ace/Log_Record.cpp:
+ Removed deprecated encode/decode methods
+
+Tue Sep 14 12:05:19 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * examples/APG/Logging/Callback-3.h: Replaced use of deprecated
+ ACE_Log_Record::encode() with CDR converter.
+
+Tue Sep 14 12:01:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/FlReactor/ace_flreactor.mpc:
+ * ace/FoxReactor/ace_foxreactor.mpc:
+ * ace/QtReactor/ace_qt3reactor.mpc:
+ * ace/QtReactor/ace_qt4reactor.mpc:
+ * ace/TkReactor/ace_tkreactor.mpc:
+ * ace/XtReactor/ace_xtreactor.mpc:
+ * ace/ace_flreactor.mpc:
+ * ace/ace_foxreactor.mpc:
+ * ace/ace_qt3reactor.mpc:
+ * ace/ace_qt4reactor.mpc:
+ * ace/ace_tkreactor.mpc:
+ * ace/ace_xtreactor.mpc:
+ Moved these files to the subdirectory they need to be in
+
+Tue Sep 14 11:40:39 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/Array.pl:
+ * bin/Array_Helper:
+ * bin/Hash_Map_Manager.pl:
+ * bin/Hash_Map_Manager_Helper:
+ * bin/vxworks_modify.pl:
+ Removed these files, very old and will not work at all
+
+ * bin/PythonACE:
+ * bin/PythonACE/__init__.py:
+ * bin/PythonACE/fuzz:
+ * bin/PythonACE/fuzz/__init__.py:
+ * bin/PythonACE/fuzz/_fuzz.py:
+ * bin/PythonACE/fuzz/_generic_handler.py:
+ * bin/PythonACE/fuzz/_mailer.py:
+ * bin/PythonACE/fuzz/_path.py:
+ * bin/PythonACE/fuzz/_singleton.py:
+ * bin/PythonACE/fuzz/_types.py:
+ * bin/PythonACE/fuzz/_warning_handler.py:
+ * bin/PythonACE/fuzz/check_includes.py:
+ * bin/PythonACE/fuzz/check_no_tabs.py:
+ * bin/PythonACE/fuzz/cpp_inline.py:
+ * bin/PythonACE/fuzz/inline.py:
+ * bin/PythonACE/fuzz/math_include.py:
+ * bin/PythonACE/fuzz/max_filename.py:
+ * bin/PythonACE/fuzz/max_project_len.py:
+ * bin/PythonACE/fuzz/newline.py:
+ * bin/PythonACE/fuzz/no_conflict_markers.py:
+ * bin/PythonACE/fuzz/noncvs.py:
+ * bin/PythonACE/fuzz/ptr_arith_t.py:
+ * bin/PythonACE/fuzz/refcountservantbase.py:
+ * bin/PythonACE/fuzz/streams_include.py:
+ * bin/PythonACE/fuzz/verify_changelog.py:
+ * bin/fuzz.py:
+ Deleted, fuzz is still perl, if we need a PythonACE later we can
+ easily get this again from svn
+
+Tue Sep 14 11:31:42 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_doxygen.pl:
+ * html/index.html:
+ Removed ciao config handlers
+
+Tue Sep 14 11:30:18 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_doxygen.pl:
+ * html/index.html:
+ Removed pss
+
+Tue Sep 14 09:41:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/mpc-ace.install:
+ Don't use environment variables
+
+ * protocols/ace/HTBP/HTBP_Filter.h:
+ Added missing includes
+
+Tue Sep 14 09:36:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Updated generation of dsc file
+
+ * protocols/examples/RMCast/Send_Msg/Sender.cpp:
+ * protocols/tests/RMCast/Sender.cpp:
+ * tests/Based_Pointer_Test.cpp:
+ * tests/SSL/Bug_2912_Regression_Test.cpp:
+ Added missing includes
+
+Mon Sep 13 18:15:27 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ *:
+ Zapped trailing whitespaces using
+ find -name \*.h -o -name \*.cpp -name \*.inl | xargs perl -i -pe's/\s+\n/\n/'
+
+Mon Sep 13 14:04:48 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Reverted change below, not correct given new info from Adam
+
+ Thu Sep 9 11:49:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ Removed invalid comma, thanks to Frank Preischl
+ <Frank dot Preischl at ids dot de> for reporting this
+
+ * debian/debian.rules:
+ * debian/mpc-ace.install:
+ Improved
+
+Mon Sep 13 09:25:22 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_doxygen.pl:
+ Updated for DAnCE move
+
+ * ace/ETCL/ETCL_Constraint.cpp:
+ * ace/ETCL/ETCL_l.cpp.diff:
+ * ace/ETCL/ETCL_l.cpp:
+ * ace/Makefile.am:
+ * ace/Thread_Control.inl:
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ * apps/JAWS3/bench/average.cpp:
+ * apps/JAWS3/bench/mkfiles.cpp:
+ * apps/JAWS3/bench/rqfiles.cpp:
+ * apps/JAWS3/http/HTTP_Data.h:
+ * apps/JAWS3/http/HTTP_Service_Handler.h:
+ * apps/JAWS3/http/HTTP_Service_Handler.cpp:
+ * apps/JAWS3/http/HTTP_States.h:
+ * apps/JAWS3/jaws3-todo/Reactive_Socket.h:
+ * apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.h:
+ * apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp:
+ * apps/JAWS3/jaws3-todo/Socket.h:
+ * apps/JAWS3/jaws3/Concurrency_T.h:
+ * apps/JAWS3/small/SS_Data.h:
+ * apps/JAWS3/small/SS_Service_Handler.h:
+ * apps/JAWS3/small/SS_Service_Handler.cpp:
+ * apps/JAWS3/small/SS_State_DONE.h:
+ * apps/JAWS3/small/SS_State_DONE.cpp:
+ * apps/JAWS3/small/SS_State_ERROR.h:
+ * apps/JAWS3/small/SS_State_ERROR.cpp:
+ * apps/JAWS3/small/SS_State_PARSE.h:
+ * apps/JAWS3/small/SS_State_PARSE.cpp:
+ * apps/JAWS3/small/SS_State_READ.h:
+ * apps/JAWS3/small/SS_State_READ.cpp:
+ * apps/JAWS3/small/SS_State_WRITE.h:
+ * apps/JAWS3/small/SS_State_WRITE.cpp:
+ * apps/JAWS3/small/SS_Templates.cpp:
+ * contrib/FaCE/FaCE.h:
+ * examples/APG/Svc_Config/HA_Status_Dynamic.h:
+ * examples/APG/Svc_Config/HA_Status_Static.h:
+ * examples/Reactor/TP_Reactor/client.cpp:
+ * examples/Reactor/TP_Reactor/server.cpp:
+ * protocols/ace/HTBP/HTBP_Channel.cpp:
+ * protocols/ace/HTBP/HTBP_Filter.h:
+ * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp:
+ * protocols/ace/HTBP/HTBP_Session.cpp:
+ * protocols/ace/TMCast/Group.cpp:
+ * protocols/examples/RMCast/Send_Msg/Sender.cpp:
+ * protocols/tests/HTBP/Reactor_Tests/client.cpp:
+ * protocols/tests/HTBP/Reactor_Tests/server.cpp:
+ * protocols/tests/HTBP/Reactor_Tests/test_config.h:
+ * protocols/tests/HTBP/Send_Large_Msg/client.cpp:
+ * protocols/tests/HTBP/Send_Large_Msg/server.cpp:
+ * protocols/tests/HTBP/Send_Recv_Tests/client.cpp:
+ * protocols/tests/HTBP/Send_Recv_Tests/server.cpp:
+ * protocols/tests/HTBP/ping/client.cpp:
+ * protocols/tests/HTBP/ping/server.cpp:
+ * protocols/tests/RMCast/Sender.cpp:
+ * tests/Based_Pointer_Test.cpp:
+ * tests/Bug_2980_Regression_Dll.cpp:
+ * tests/SSL/Bug_2912_Regression_Test.cpp:
+ Removed include of ace/OS.h, only in a few files we really had
+ to add an include of OS_NS_*.h
+
+ * ace/OS.h:
+ * ace/OS.inl:
+ * ace/OS.cpp:
+ Removed these files, replaced with OS_NS_* files a long time ago
+
+Sun Sep 12 19:27:58 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/make_release.py:
+
+ Some updates to handle moved DAnCE package.
+
+Sun Sep 12 19:22:21 UTC 2010 William Otte <wotte@zifnab>
+
+ * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm:
+ * bin/MakeProjectCreator/templates/:
+
+ Added rules to pullin rules.dance.GNU.
+
+Fri Sep 10 16:43:39 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Makefile.am: Removed references to files removed at
+ Thu Sep 9 11:14:45 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+Fri Sep 10 11:07:56 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * ace/TSS_T.h:
+ Resolved compile issue regarding ACE_Copy_Disabled class.
+
+Fri Sep 10 07:36:39 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * ace/Thread_Control.inl:
+ Include before versioning macros.
+
+Fri Sep 10 07:05:45 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * ace/Thread_Control.inl:
+ Resolved compile error (ACE_OS_TRACE could not be found).
+
+Thu Sep 9 12:53:39 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Asynch_Acceptor.h:
+ * ace/Asynch_Acceptor.cpp:
+ * ace/Hash_Multi_Map_Manager_T.h:
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.cpp:
+ * ace/Service_Config.cpp:
+ * ace/TSS_T.cpp:
+ * ace/Thread.h:
+ * ace/Thread.inl:
+ * ace/config-macosx-snowleopard.h:
+ * ace/config-macosx-tiger.h:
+ * ace/config-macosx.h:
+ * tests/Hash_Multi_Map_Manager_Test.cpp:
+ Removed deprecated methods and arguments
+
+ * docs/FAQ:
+ * FAQ:
+ Moved to docs
+
+Thu Sep 9 11:54:10 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/soreduce/Signature.cpp:
+ * tests/TkReactor_Test.cpp:
+ Fixed fuzz
+
+Thu Sep 9 11:49:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ Removed invalid comma, thanks to Frank Preischl
+ <Frank dot Preischl at ids dot de> for reporting this
+
+Thu Sep 9 11:14:45 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * Kokyu/Dispatch_Deferrer.h:
+
+ * ace/Atomic_Op_T.h:
+ * ace/Atomic_Op_T.inl:
+ * ace/Configuration.h:
+ * ace/Configuration.cpp:
+ * ace/Default_Constants.h:
+ * ace/Hash_Multi_Map_Manager_T.h:
+ * ace/Hash_Multi_Map_Manager_T.cpp:
+ * ace/Intrusive_List.h:
+ * ace/Intrusive_List.inl:
+ * ace/Local_Name_Space_T.h:
+ * ace/Log_Msg.h:
+ * ace/Log_Msg.cpp:
+ * ace/MEM_Acceptor.h:
+ * ace/MEM_Acceptor.inl:
+ * ace/MEM_Connector.h:
+ * ace/MEM_Connector.inl:
+ * ace/Message_Queue.h:
+ * ace/OS.h:
+ * ace/OS_Memory.h:
+ * ace/OS_TLI.h:
+ * ace/Obstack_T.h:
+ * ace/Obstack_T.inl:
+ * ace/POSIX_Asynch_IO.h:
+ * ace/Process_Manager.h:
+ * ace/Process_Manager.cpp:
+ * ace/Recursive_Thread_Mutex.h:
+ * ace/Recursive_Thread_Mutex.cpp:
+ * ace/Refcountable_T.h:
+ * ace/Strategies_T.h:
+ * ace/Strategies_T.inl:
+ * ace/Synch.h:
+ * ace/Task.h:
+ * ace/Task_Ex_T.h:
+ * ace/Task_Ex_T.inl:
+ * ace/Task_T.h:
+ * ace/Task_T.inl:
+ * ace/Thread_Control.cpp:
+ * ace/Token_Collection.h:
+ * ace/Token_Invariants.h:
+ * ace/Token_Manager.h:
+ * ace/ace_wchar.h:
+ * ace/config-macosx-leopard.h:
+ * ace/os_include/net/os_if.h:
+ * ace/os_include/sys/os_mman.h:
+ * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp:
+ * netsvcs/lib/Time_Request_Reply.h:
+ * netsvcs/lib/Time_Request_Reply.cpp:
+ * tests/Conn_Test.cpp:
+ * tests/Dirent_Test.cpp:
+ * tests/Svc_Handler_Test.cpp:
+ Removed several methods, files, and macros that are marked deprecated
+ for several years now.
+
+ * ace/Map.h:
+ * ace/Method_Object.h:
+ * ace/OS_Dirent.h:
+ * ace/OS_String.h:
+ * ace/Pair.h:
+ * ace/Refcountable.h:
+ * ace/Service_Templates.h:
+ Removed these files.
+
+Thu Sep 9 09:37:22 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_doxygen.pl:
+ Fixed errors
+
+ * debian/debian.rules:
+ Moving forward with OBS
+
+Thu Sep 9 09:29:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CDR_Base.h:
+ * ace/CDR_Base.cpp:
+ * ace/DEV.h:
+ * ace/FILE.h:
+ * ace/Global_Macros.h:
+ * ace/INET_Addr.inl:
+ * ace/Malloc_T.h:
+ * ace/Malloc_T.inl:
+ * ace/Malloc_T.cpp:
+ * ace/SOCK_Dgram_Bcast.cpp:
+ * ace/SSL/SSL_SOCK.h:
+ * ace/Shared_Memory_Pool.cpp:
+ * ace/Sock_Connect.cpp:
+ * ace/config-aix-5.x.h:
+ * ace/config-doxygen.h:
+ * ace/config-g++-common.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-icc-common.h:
+ * ace/config-integritySCA.h:
+ * ace/config-linux-common.h:
+ * ace/config-macros.h:
+ * ace/config-mvs.h:
+ * ace/config-openvms.h:
+ * ace/config-suncc-common.h:
+ * ace/config-sunos5.5.h:
+ * ace/config-sunos5.6.h:
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/config-tandem-nsk-mips-v3.h:
+ * ace/config-win32-borland.h:
+ * ace/config-win32-dmc.h:
+ * ace/config-win32-ghs.h:
+ * ace/config-win32-msvc-10.h:
+ * ace/config-win32-msvc-7.h:
+ * ace/config-win32-msvc-8.h:
+ * ace/config-win32-msvc-9.h:
+ * examples/IOStream/server/iostream_server.h:
+ * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp:
+ * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp:
+ * examples/Reactor/Misc/test_event_handler_t.cpp:
+ * tests/Basic_Types_Test.cpp:
+ * tests/Conn_Test.cpp:
+ * tests/Message_Queue_Test.cpp:
+ * tests/SSL/Thread_Pool_Reactor_SSL_Test.h:
+ * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp:
+ Cleanup, all compilers support templated typedefs
+
+ * ace/config-cray.h:
+ * ace/config-cxx-common.h:
+ Removed these files, obsolete
+
+Thu Sep 9 09:01:10 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ACE.cpp:
+ * ace/ACE_export.h:
+ * ace/ETCL/ETCL_y.cpp:
+ * ace/INET_Addr.cpp:
+ * ace/Log_Msg.cpp:
+ * ace/OS.inl:
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.inl:
+ * ace/OS_NS_Thread.cpp:
+ * ace/OS_NS_ctype.cpp:
+ * ace/OS_NS_netdb.inl:
+ * ace/OS_NS_pwd.inl:
+ * ace/OS_NS_stdlib.inl:
+ * ace/OS_NS_time.inl:
+ * ace/OS_NS_time.cpp:
+ * ace/POSIX_CB_Proactor.cpp:
+ * ace/POSIX_Proactor.cpp:
+ * ace/config-cxx-common.h:
+ * ace/config-doxygen.h:
+ * ace/config-integritySCA.h:
+ * ace/config-lynxos.h:
+ * ace/config-macros.h:
+ * ace/config-openvms.h:
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/config-tandem-nsk-mips-v3.h:
+ * ace/config-vxworks6.4.h:
+ * ace/config-win32-common.h:
+ * ace/os_include/os_pthread.h:
+ * ace/os_include/os_pwd.h:
+ * ace/os_include/os_signal.h:
+ * ace/os_include/os_stdlib.h:
+ * ace/os_include/os_time.h:
+ * ace/os_include/sys/os_types.h:
+ Removed Tru64, Irix, Unixware, and SCO support
+
+ * debian/debian.rules:
+ Improved
+
+ * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h:
+ * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h:
+ * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h:
+ * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h:
+ * examples/QOS/Simple/Receiver_QoS_Event_Handler.h:
+ * examples/QOS/Simple/Sender_QoS_Event_Handler.h:
+ Zapped ACE_RCSID
+
+ * ace/config-irix6.5.x-sgic++.h:
+ * ace/config-irix6.x-common.h:
+ * ace/config-irix6.x-g++.h:
+ * ace/config-irix6.x-sgic++.h:
+ * ace/config-sco-5.0.0-nothread.h:
+ * ace/config-sco-5.0.0.h:
+ * ace/config-unixware-7.1.0.h:
+ * ace/config-unixware-7.1.0.udk.h:
+ * include/makeinclude/platform_irix6.x_common.GNU:
+ * include/makeinclude/platform_irix6.x_g++.GNU:
+ * include/makeinclude/platform_irix6.x_sgic++.GNU:
+ * include/makeinclude/platform_tru64_cxx.GNU:
+ * include/makeinclude/platform_tru64_g++.GNU:
+ * include/makeinclude/platform_tru64_post.GNU:
+ * include/makeinclude/platform_tru64_pre.GNU:
+ * include/makeinclude/platform_unixware_g++.GNU:
+ Removed the files because Tru64, Irix, Unixware, and SCO support are
+ removed now
+
+Wed Sep 8 14:54:45 UTC 2010 William Otte <wotte@zifnab>
+
+ * docs/bczar/bczar.html:
+
+ Updated documentation for removal of Release makefile.
+
+Wed Sep 8 14:40:57 UTC 2010 William Otte <wotte@zifnab>
+
+ * Release:
+
+ Removing obsolete release makefile.
+
+Wed Sep 8 10:57:12 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/ace.dsc:
+ * debian/debian.changelog:
+ * debian/debian.control:
+ * debian/debian.rules:
+ * debian/changelog:
+ * debian/control:
+ * debian/dsc:
+ * debian/rules:
+ Renamed to the names we use on OBS
+
+Wed Sep 8 09:11:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/SSL/Bug_2912_Regression_Test.cpp:
+ Fixed compile error
+
+Wed Sep 8 05:53:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/APG/ThreadPools/Futures.cpp:
+ Added missing include
+
+Tue Sep 7 17:07:58 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Process.h: Noted the affects of handle_inheritance() on Windows.
+
+Tue Sep 7 14:23:13 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Message_Queue_T.cpp:
+ * examples/APG/ThreadPools/LF_ThreadPool.cpp:
+ * examples/APG/ThreadPools/ThreadPool.cpp:
+ * examples/APG/ThreadSafety/Mutex.cpp:
+ * examples/APG/Threads/Condition_Variables.cpp:
+ * protocols/ace/HTBP/HTBP_ID_Requestor.h:
+ * protocols/ace/TMCast/Group.cpp:
+ * protocols/ace/TMCast/MTQueue.hpp:
+ * tests/Bug_3878_Regression_Test.cpp:
+ * tests/Upgradable_RW_Test.cpp:
+ Fixed compile problems
+
+Tue Sep 7 11:35:04 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Fix fuzz problem
+
+Tue Sep 7 10:52:59 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp:
+ Use ACE_GUARD
+
+ * Kokyu/Dispatcher_Task.cpp:
+ Initialise pointer with 0
+
+ * PROBLEM-REPORT-FORM:
+ * VERSION:
+ Updated support email addresses
+
+ * ace/ACE.inl:
+ Layout changes
+
+ * ace/ACE.cpp:
+ Layout changes, simplified some ifdef checks
+
+ * ace/Auto_IncDec_T.h:
+ * ace/Env_Value_T.h:
+ Use ACE_Copy_Disabled
+
+ * ace/Bound_Ptr.inl:
+ Documentation updates
+
+ * ace/CORBA_macros.h:
+ Removed all deprecated macros
+
+ * ace/Dynamic_Service_Base.cpp:
+ Use ACE_GUARD_RETURN
+
+ * ace/Event_Handler_T.h:
+ * ace/Event_Handler_T.inl:
+ * ace/Event_Handler_T.cpp:
+ Removed checks for ACE_HAS_TEMPLATE_TYPEDEFS, I think all compilers
+ have this now, let us see if nothing breaks
+
+ * ace/FILE.h:
+ Doxygen updates
+
+ * ace/Future.h:
+ * ace/Future.cpp:
+ Use mutex defines
+
+ * ace/Future_Set.h:
+ Use ACE_Copy_Disabled
+
+ * ace/Future_Set.cpp:
+ Initialise pointer with 0
+
+ * ace/Global_Macros.h:
+ Removed checks for ACE_HAS_TEMPLATE_TYPEDEFS, doxygen changes, make it
+ possible for users to redefine ACE_GUARD macros
+
+ * ace/Guard_T.h:
+ * ace/Guard_T.inl:
+ * ace/Guard_T.cpp:
+ Doxygen changes, disable ACE_Guard checks for this file
+
+ * ace/Hash_Map_Manager_T.h:
+ * ace/Hash_Multi_Map_Manager_T.h:
+ * ace/Map_Manager.h:
+ Update to indicate the usage of ACE_GUARD
+
+ * ace/INET_Addr.h:
+ Doxygen changes
+
+ * ace/Local_Tokens.h:
+ Disable part of this file for ACE_Guard fuzz check
+
+ * ace/Log_Msg.cpp:
+ Use ACE_OS::thr_self
+
+ * ace/Malloc_T.h:
+ Disable part of this file for ACE_Guard fuzz check, doxygen changes
+
+ * ace/Message_Queue_T.h:
+ * ace/Message_Queue_T.cpp:
+ * ace/Message_Queue_Vx.h:
+ * ace/Message_Queue_Vx.cpp:
+ Removed ACE_Guard argument to some methods, not used and now cause
+ fuzz to fail
+
+ * ace/Mutex.h:
+ * ace/Mutex.inl:
+ Added non const lock(), this fixes bugzilla 3878. Thanks to
+ Susan Finster <sfinster at daetwyler-rd dot com> for reporting this
+
+ * ace/Null_Barrier.h:
+ * ace/Null_Condition.h:
+ * ace/Null_Mutex.h:
+ * ace/Null_Semaphore.h:
+ Removed old comments, disable part for ACE_Guard, removed
+ ACE_Null_Mutex_Guard
+
+ * ace/OS_NS_Thread.cpp:
+ Layout changes, use ACE_Guard
+
+ * ace/OS_NS_poll.cpp:
+ * ace/OS_NS_sys_select.cpp:
+ Layout changes
+
+ * ace/OS_NS_sys_socket.inl:
+ Comment change
+
+ * ace/Read_Buffer.h:
+ * ace/Remote_Tokens.h:
+ * ace/SOCK.h:
+ Doxygen changes
+
+ * ace/SOCK_Connector.h:
+ * ace/SOCK_Dgram_Mcast.h:
+ Doxygen changes
+
+ * ace/SOCK_Connector.cpp:
+ Layout and const changes
+
+ * ace/Select_Reactor.h:
+ Disable part of this file for ACE_Guard fuzz check
+
+ * ace/Service_Gestalt.h:
+ Use ACE_Copy_Disabled
+
+ * ace/Sig_Handler.cpp:
+ Use ACE_GUARD macros
+
+ * ace/Synch_Traits.h:
+ Removed ACE_HAS_TEMPLATE_TYPEDEFS checks
+
+ * ace/TSS_T.h:
+ * ace/TSS_T.cpp:
+ Use ACE_Copy_Disabled, reworked some code to fix ACE_Guard fuzz
+ checks
+
+ * ace/Task_Ex_T.h:
+ Use ACE_Copy_Disabled
+
+ * apps/Gateway/Peer/Peer.cpp:
+ * apps/JAWS/server/HTTP_Server.cpp:
+ * apps/JAWS/server/JAWS_IO.cpp:
+ Initialise pointers with 0
+
+ * apps/JAWS/server/HTTP_Helpers.cpp:
+ Use ACE_GUARD macros
+
+ * apps/JAWS2/JAWS/Cache_Hash_T.cpp:
+ * apps/JAWS2/JAWS/Cache_Manager_T.cpp:
+ * apps/JAWS2/JAWS/Cache_Object.cpp:
+ * apps/JAWS2/JAWS/Concurrency.cpp:
+ * apps/JAWS2/JAWS/FILE.cpp:
+ * apps/JAWS2/JAWS/Jaws_IO.cpp:
+ * apps/JAWS2/JAWS/Reaper.cpp:
+ * apps/JAWS3/jaws3/FILE.cpp:
+ Use ACE_GUARD macros
+
+ * apps/gperf/src/Options.cpp:
+ Rename of local variable so that we don't need to disable ACE_OS
+ fuzz check
+
+ * bin/fuzz.pl:
+ Improved ACE_Guard checks and enable this one by default
+
+ * bin/generate_doxygen.pl:
+ Let DANCE use the CIAO version file for the moment
+
+ * bin/make_release.py:
+ Don't create static and wince solutions as part of the release anymore,
+ if you use these, generate them by hand in the future. Added vc10
+ project files
+
+ * examples/APG/Proactor/HA_Proactive_Status.cpp:
+ * examples/APG/Reactor/Client.cpp:
+ * examples/APG/Reactor/HAStatus.cpp:
+ * examples/APG/Streams/Answerer.cpp:
+ * examples/APG/Streams/CommandStream.cpp:
+ * examples/APG/ThreadManagement/Pool.cpp:
+ * examples/APG/ThreadPools/LF_ThreadPool.cpp:
+ * examples/APG/ThreadPools/Task_ThreadPool.cpp:
+ * examples/APG/ThreadSafety/Semaphore.cpp:
+ * examples/APG/Threads/Message_Blocks.cpp:
+ * examples/APG/Threads/Message_Queue.cpp:
+ * examples/ASX/Message_Queue/bounded_buffer.cpp:
+ * examples/ASX/Message_Queue/priority_buffer.cpp:
+ * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp:
+ * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp:
+ * examples/C++NPv2/display_logfile.cpp:
+ * examples/IPC_SAP/UPIPE_SAP/ex1.cpp:
+ * examples/Reactor/Misc/test_demuxing.cpp:
+ * examples/Reactor/WFMO_Reactor/Talker.cpp:
+ * examples/Threads/barrier2.cpp:
+ * examples/Threads/thread_pool.cpp:
+ Initialise pointers with 0
+
+ * examples/APG/ThreadPools/ThreadPool.cpp:
+ Use ACE_Thread_ID to store a print a thread id using ACE_DEBUG, that
+ is the only way that is 100% portable
+
+ * examples/APG/Threads/Guards.cpp:
+ Disable ACE_Guard fuzz
+
+ * examples/Threads/reader_writer.cpp:
+ * examples/Threads/recursive_mutex.cpp:
+ Use ACE_GUARD macros
+
+ * examples/Threads/thread_specific.cpp:
+ * examples/Threads/tss1.cpp:
+ Removed code not used
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Added CROSS_COMPILE support to this file
+
+ * include/makeinclude/platform_linux.GNU:
+ * include/makeinclude/platform_linux_common.GNU:
+ Moved some bits to platform_g++_common.GNU, works with G++ in
+ general
+
+ * include/makeinclude/platform_qnx_neutrino.GNU:
+ * include/makeinclude/platform_qnx_rtp_gcc.GNU:
+ Cleanup
+
+ * netsvcs/lib/Log_Message_Receiver.h:
+ * netsvcs/lib/Log_Message_Receiver.cpp:
+ Use ACE_GUARD macros
+
+ * performance-tests/Misc/Misc.mpc:
+ Enable test_guard
+
+ * performance-tests/Misc/test_guard.cpp:
+ Made this compiling again
+
+ * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp:
+ * performance-tests/TCP/tcp_test.cpp:
+ Renamed variable to not need ACE_OS fuzz disable code
+
+ * protocols/ace/HTBP/HTBP_ID_Requestor.cpp:
+ * protocols/ace/HTBP/HTBP_Session.cpp:
+ Use ACE_GUARD macros
+
+ * protocols/ace/RMCast/Acknowledge.h:
+ * protocols/ace/RMCast/Acknowledge.cpp:
+ * protocols/ace/RMCast/Bits.h:
+ * protocols/ace/RMCast/Flow.h:
+ * protocols/ace/RMCast/Flow.cpp:
+ * protocols/ace/RMCast/Fragment.h:
+ * protocols/ace/RMCast/Fragment.cpp:
+ * protocols/ace/RMCast/Link.h:
+ * protocols/ace/RMCast/Link.cpp:
+ * protocols/ace/RMCast/Parameters.h:
+ * protocols/ace/RMCast/Protocol.h:
+ * protocols/ace/RMCast/Protocol.cpp:
+ * protocols/ace/RMCast/Reassemble.h:
+ * protocols/ace/RMCast/Reassemble.cpp:
+ * protocols/ace/RMCast/Retransmit.h:
+ * protocols/ace/RMCast/Retransmit.cpp:
+ * protocols/ace/RMCast/Simulator.h:
+ * protocols/ace/RMCast/Simulator.cpp:
+ * protocols/ace/RMCast/Socket.h:
+ * protocols/ace/RMCast/Socket.cpp:
+ * protocols/ace/RMCast/Stack.h:
+ * protocols/ace/RMCast/Stack.cpp:
+ * protocols/ace/TMCast/FaultDetector.hpp:
+ * protocols/ace/TMCast/Group.cpp:
+ * protocols/ace/TMCast/Group.hpp:
+ * protocols/ace/TMCast/GroupFwd.hpp:
+ * protocols/ace/TMCast/LinkListener.hpp:
+ * protocols/ace/TMCast/MTQueue.hpp:
+ * protocols/ace/TMCast/MTQueue.cpp:
+ * protocols/ace/TMCast/Messaging.hpp:
+ * protocols/ace/TMCast/Protocol.hpp:
+ * protocols/ace/TMCast/Protocol.cpp:
+ * protocols/ace/TMCast/TransactionController.hpp:
+ Removed commented out code, Id changes, disable ACE_Guard check
+ for this project
+
+ * rpmbuild/ace-tao.spec:
+ Fixed some problems in this spec file
+
+ * tests/Aio_Platform_Test.cpp:
+ * tests/Basic_Types_Test.cpp:
+ * tests/Bug_1576_Regression_Test.cpp:
+ * tests/Bug_3532_Regression_Test.cpp:
+ * tests/Bug_3673_Regression_Test.cpp:
+ * tests/Bug_3709_Regression_Test.cpp:
+ * tests/Bug_3744_Regression_Test.cpp:
+ * tests/Compiler_Features_03_Test.cpp:
+ * tests/Compiler_Features_09_Test.cpp:
+ * tests/Compiler_Features_13_Test.cpp:
+ * tests/Compiler_Features_14_Test.cpp:
+ * tests/Env_Value_Test.cpp:
+ * tests/Hash_Map_Bucket_Iterator_Test.cpp:
+ * tests/Logging_Strategy_Test.cpp:
+ * tests/MT_SOCK_Test.cpp:
+ * tests/Pipe_Test.cpp:
+ * tests/Priority_Task_Test.cpp:
+ * tests/Proactor_UDP_Test.cpp:
+ * tests/QtReactor_Test.cpp:
+ * tests/Reactor_Notification_Queue_Test.cpp:
+ * tests/Reactor_Registration_Test.cpp:
+ * tests/Reference_Counted_Event_Handler_Test.cpp:
+ * tests/Time_Service_Test.cpp:
+ Zapped ACE_RCSID
+
+ * tests/Message_Block_Test.cpp:
+ * tests/Multicast_Test_IPV6.cpp:
+ Initialise pointer with 0
+
+ * tests/Reader_Writer_Test.cpp:
+ Use ACE_GUARD
+
+ * tests/Recursive_Mutex_Test.cpp:
+ Disable ACE_Guard fuzz for part of this file
+
+ * tests/Bug_3878_Regression_Test.cpp:
+ New test for bugzilla 3878
+
+ * tests/SSL/Bug_2912_Regression_Test.cpp:
+ * tests/TP_Reactor_Test.cpp:
+ Use ACE_GUARD
+
+ * tests/Simple_Message_Block_Test.cpp:
+ * tests/Svc_Handler_Test.cpp:
+ * tests/Thread_Pool_Test.cpp:
+ * tests/UPIPE_SAP_Test.cpp:
+ Initialise pointers with 0
+
+ * tests/Thread_Mutex_Test.cpp:
+ Disable ACE_Guard fuzz
+
+ * tests/Upgradable_RW_Test.cpp:
+ Use ACE_GUARD
+
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Added 3878
+
+Mon Sep 6 09:30:00 UTC 2010 Simon Massey <buildczar at prismtech dot com>
+
+ * ace/Acceptor.cpp:
+ Due to the way the code was formatted, I mistook a do {} while loop for
+ a while loop with my change. I have corrected this.
+
+Mon Sep 6 08:10:00 UTC 2010 Simon Massey <buildczar at prismtech dot com>
+
+ * ace/ACE.cpp:
+ * ace/Acceptor.cpp:
+ * ace/SOCK_IO.cpp:
+ * ace/SOCK_Dgram.cpp:
+ * tests/SOCK_Test.cpp:
+ * tests/MT_SOCK_Test.cpp:
+ * NEWS:
+ Now that release x.8.3. is out, we are attempting to provide the correct
+ fix to the original commit by Steve Huston related to handle_ready()
+ (Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>)
+ and added back the corresponding NEWS entry.
+
+Sat Sep 04 18:08:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * bin/make_release.py:
+ * docs/Download.html:
+ * etc/index.html:
+ Updated because of release
+
+Sat Sep 04 11:30:18 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.8.2 released.
+
+Thu Sep 2 14:46:56 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/Acceptor.cpp:
+ * ace/SOCK_IO.cpp:
+ * ace/SOCK_Dgram.cpp:
+ * ace/ACE.cpp:
+ * tests/SOCK_Test.cpp:
+ * tests/MT_SOCK_Test.cpp:
+ * NEWS:
+ Reverted both commits by Steve Huston related to handle_ready()
+ and a NEWS entry.
+ Wed Sep 1 19:31:24 UTC 2010 Steve Huston <shuston@riverace.com>
+ Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
+ This is necessary for a quick release of 1.8.2.
+
+Wed Sep 1 19:31:24 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.cpp (handle_ready): Changed the timeout behavior to just
+ return 0, no errno, as ACE_OS::poll() and ACE_OS::select() both do.
+ This restores historic behavior changed inadvertently at
+ Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/SOCK_Dgram.cpp:
+ * ace/SOCK_IO.cpp:
+ * tests/MT_SOCK_Test.cpp:
+ * tests/SOCK_Test.cpp: Re-added the if/switch on return value from
+ ACE::handle_read|write_ready() to detect timeout and set errno
+ here.
+
+ These changes were necessary to fix the TAO faults test. Thanks
+ to Johnny and Simon for narrowing down the cause and testing
+ the fix.
+
+Wed Sep 1 15:58:47 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Changed the short-circuit logic for the .NOTPARALLEL checks to ||
+ instead of &&. If any one file is newer, we will have to rebuild.
+ Also added a missing foreach for the output files with dependent libs.
+
+Wed Sep 1 09:59:42 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/Time_Value_Test.cpp:
+ Fixed compile warning on QNX. time_t on QNX is defined as unsigned
+ int.
+
+Tue Aug 31 16:53:07 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * THANKS:
+
+ Added Catherine L. Paquin <catherine dot paquin at ngc dot com>.
+
+Tue Aug 31 14:40:17 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * NEWS:
+
+ Updated to proper name of Visual Studio 2010, which may assist
+ those searching for it in the NEWS file.
+
+Tue Aug 31 12:56:36 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * NEWS: Added an entry for the change at
+ Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/README:
+ * ace/config-sunos5.6.h:
+ * ace/config-sunos5.7.h: Removed all mention of ACE_HAS_LIMITED_SELECT.
+
+Mon Aug 30 18:41:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace.mpc:
+ Added Obstack.h
+
+Mon Aug 30 16:48:34 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/FIFO.h:
+ * ace/FIFO_Recv.h:
+ * ace/FIFO_Send.h: Clarified initialization and open behavior.
+
+Mon Aug 30 15:33:57 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Process.h (set_handles): Add a note that passing a socket handle
+ with this mechanism does not work on Windows.
+
+Mon Aug 30 10:06:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Reactor/Proactor/test_proactor2.cpp:
+ * examples/Reactor/Proactor/test_proactor3.cpp:
+ * tests/Proactor_Test.cpp:
+ * tests/Proactor_Test_IPV6.cpp:
+ * tests/Proactor_UDP_Test.cpp:
+ ACE_Guard changes
+
+Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.cpp (handle_ready, handle_timed_complete,
+ handle_timed_accept): On platforms where poll() is
+ available, prefer that to using select() for checking a single
+ handle's state and/or waiting for a condition. This preference
+ was previously only used if ACE_HAS_LIMITED_SELECT was set. The
+ ACE_HAS_LIMITED_SELECT choice is removed, making ACE_HAS_POLL the
+ setting that switches this preference. The driving reason for this
+ is that if select() is called to detect changes on a handle whose
+ values falls outside that which can safely be stored in an fdset,
+ the handle-setting macros/functions will set/clear bits outside
+ of the fdset. This results in very weird memory changes, often in
+ the stack, which are very hard to diagnose. poll()'s operation
+ does not suffer from this affect. With the growing use of large
+ numbers of handles and use of ACE_Dev_Poll_Reactor on Linux,
+ the rate at which this problem was cropping up was increasing.
+ Thanks to Olivier Langlois for diagnosing this problem and
+ proposing the patch.
+
+ (handle_ready): Properly set the poll condition for read and/or
+ write. Thanks to kumaran.prem@gmail.com for this fix.
+
+ * ace/Acceptor.cpp:
+ * ace/SOCK_IO.cpp:
+ * ace/SOCK_Dgram.cpp:
+ * tests/MT_SOCK_Test.cpp:
+ * tests/SOCK_Test.cpp: Replaced use of ACE_OS::select() with
+ ACE::handle_ready() and friends.
+
+ This all resolves Bugzilla #3606.
+
+Fri Aug 27 19:10:16 UTC 2010 Brian Johnson <johnsonb@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ Merging dependent_libs support for gnuace from TAO 1.5a.
+ (Bugzilla #3281)
+
+Fri Aug 27 18:36:37 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.inl:
+ Added assignment operator for ACE_Thread_Id
+
+Fri Aug 27 15:01:41 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * Connector.{h cpp} (ACE_NonBlocking_Connect_Handler): Add a
+ handle_close() which calls handle_input() if called by the
+ ACE_Dev_Poll_Reactor to remove a failed connect. Apparently,
+ Linux epoll, at least sometimes, signals EPOLLERR on a failed
+ nonblocking connect, unlike the select() case which selects the
+ failed fd for read. Thanks to Kannan Ramaswamy <kannan dot
+ ramaswamy at cogcap dot com> for this information and fix.
+
+ * THANKS: Added Kannan to the Hall of Fame.
+
+Fri Aug 27 14:17:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.h:
+ Doxygen changes
+
+ * ace/OS_NS_Thread.cpp:
+ Use ACE_GUARD
+
+ * bin/fuzz.pl:
+ Added check for ACE_Guard
+
+Fri Aug 27 06:56:11 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ * etc/acexml.doxygen:
+ Fuzz fixes
+
+Thu Aug 26 13:20:48 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Added DANCE_ROOT
+
+Thu Aug 26 13:08:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/servers/servers.mpc:
+ Use ace_netsvcs as executable name, this makes more sense when
+ we install this file in a target directory
+
+Thu Aug 26 13:04:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Check doxygen files for tabs
+
+ * etc/ace.doxygen:
+ * etc/ace_inet.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ * html/index.html:
+ Changed documentation subdirectories to make debian packaging easier
+
+Thu Aug 26 12:30:33 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debian/control:
+ Made some fixes for x.8.1
+
+Thu Aug 26 11:54:15 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/auto_run_tests.pl:
+ Extended script to also check for $DANCE_ROOT/bin/dance_tests.lst
+
+Thu Aug 26 10:20:41 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/OS_NS_Thread.cpp:
+ Changes implementing the patches from Bugzilla #3653 (with
+ changes and some rejects; *no* asserts allowed in ACE).
+
+Wed Aug 25 19:58:19 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.{h cpp}: Regarding change number 2 at
+ Fri Mar 26 14:07:55 UTC 2010 Steve Huston <shuston@riverace.com>
+ dispatching notifies in only one thread at a time was 1) wrong
+ (TP_Reactor doesn't do this), 2) broke important existing
+ applications at a customer site. This has been fixed so that the
+ notify dispatch behavior is like ACE_TP_Reactor: when the
+ notify handle is signaled, extract one notification, release
+ the token, dispatch the notification. Thus, each thread will
+ dispatch one notification, and multiple threads can dispatch
+ them at the same time if there are multiples.
+
+ Also fixed an error where it was possible to lose notice of a
+ notification. Resolves Bugzilla #3328.
+
+Wed Aug 25 09:49:41 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Arg_Shifter.h:
+ * ace/config-macosx-leopard.h:
+ * ace/Guard_T.h:
+ * ace/Global_Macros.h:
+ Selected changes from patches in Bugzilla 3652.
+
+Tue Aug 24 14:21:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.h:
+ Layout changes
+
+ * ace/config-win32-common.h:
+ Improved MinGW GCC 4.4 support. Thanks to
+ Jani Hakala <jani dot j dot hakala at jyu dot fi> for creating the
+ patch
+
+Tue Aug 24 14:15:45 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * ace/Log_Msg.cpp
+ * ace/Log_Msg.h
+ * tests/Log_Msg_Test.cpp
+ Revert changes for logging thread id as argument.
+
+Tue Aug 24 12:59:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/URLBase.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ Changes to fix export problems with nested classes with MSVC 7/8.
+
+Tue Aug 24 11:29:45 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * ace/Log_Msg.h:
+ * ace/Log_Msg.cpp:
+ * tests/Log_Msg_Test.cpp:
+ * ChangeLog:
+ Add %#t to log a thread id that is coming from user code, as argument .
+
+Mon Aug 23 19:51:59 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/Missing_Svc_Conf_Test.cpp:
+
+ Fix some scoreboard problems.
+
+Mon Aug 23 15:05:56 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * ace/Select_Reactor.h:
+
+ vc10 needs an "ACE_Export" declaration on the explicit template
+ instantiation of ACE_Select_Reactor.
+
+Mon Aug 23 13:23:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-kfreebsd.h:
+ New config file for kfreebsd
+
+ * ace/config-win32-common.h:
+ Removed commented out defines
+
+Mon Aug 23 11:57:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/INet_SSL_Export.h:
+ * protocols/ace/INet/HTTPS_Context.h:
+ * protocols/ace/INet/HTTPS_SessionFactory.h:
+ * protocols/ace/INet/HTTPS_URL.h:
+ * protocols/ace/INet/SSL_CallbackManager.h:
+ * protocols/ace/INet/SSL_CertificateCallback.h:
+ * protocols/ace/INet/SSL_PasswordCallback.h:
+ * protocols/ace/INet/SSL_X509Cert.h:
+ * protocols/ace/INet/inet_ssl.mpc:
+ Changes to fix MSVC 7/8 link errors.
+
+Mon Aug 23 11:34:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTPS_URL.h:
+ Fixed GCC41 error concerning comma at end of enum list.
+
+Sat Aug 21 12:53:05 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/Missing_Svc_Conf_Test.cpp:
+
+ Added a descriptive comment block to the source.
+
+Fri Aug 20 13:29:22 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Service_Gestalt.cpp:
+
+ One more shot at fixing the behavior of the service configurator
+ in the face of missing defaulted svc.conf file.
+
+ * tests/Missing_Svc_Conf_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+
+ Added a proper test to ensure changes to this behavior are caught
+ in the future.
+
+Fri Aug 20 11:58:20 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/TSS_T.cpp:
+ Updated comment
+
+ * include/makeinclude/platform_g++_common.GNU:
+ If minimaltoc is set to 1, add -mminimal-toc to compiler flags
+
+ * include/makeinclude/platform_linux.GNU:
+ Removed check for ppc64, if you build for ppc64 and need -mminimal-toc
+ add minimaltoc=1 to your platform_macros.GNU file
+
+Fri Aug 20 09:52:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/inet_ssl.mpb:
+ Removed feature subproject config.
+
+ * protocols/ace/INet/inet_ssl.mpc:
+ Added sublibrary project I forgot yesterday.
+
+Thu Aug 19 12:37:14 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Functor_T.h:
+ Doxygen changes
+
+ * include/makeinclude/platform_linux.GNU:
+ Make it possible to control -mminimal-toc through the
+ platform_macros.GNU file using minimaltoc
+
+Thu Aug 19 12:09:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/MakeProjectCreator/config/inet.mpb:
+ * bin/MakeProjectCreator/config/inetssl.mpb:
+ * protocols/ace/INet/inet.mpc:
+ * protocols/ace/INet/inet_ssl.mpb:
+ Changes to split INet into 2 libraries; regular and SSL.
+ Fixes dependencies of DAnCE tools on SSL.
+
+Wed Aug 18 09:26:04 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp:
+ Fixed a compile warning.
+
+Tue Aug 17 07:34:31 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * ace/CDR_Stream.cpp
+ Add Id
+
+Mon Aug 16 22:00:06 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * examples/Reactor/Misc/Reactor_Misc.mpc:
+
+ Explicitly list an empty Template_Files so that the *_t.cpp doesn't
+ get added to Template_Files.
+
+Mon Aug 16 12:58:31 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * ace/Auto_Event.cpp:
+ * ace/CDR_Stream.cpp:
+ * ace/Cleanup.cpp:
+ * ace/Codecs.cpp:
+ * ace/DEV_Addr.cpp:
+ * ace/Dynamic_Service_Base.cpp:
+ * ace/Filecache.cpp:
+ * ace/Flag_Manip.cpp:
+ * ace/FlReactor/FlReactor.cpp:
+ * ace/FoxReactor/FoxReactor.cpp:
+ * ace/Handle_Ops.cpp:
+ * ace/Hashable.cpp:
+ * ace/INET_Addr.cpp:
+ * ace/Init_ACE.cpp:
+ * ace/Local_Tokens.cpp:
+ * ace/Logging_Strategy.cpp:
+ * ace/Malloc.cpp:
+ * ace/MEM_Addr.cpp:
+ * ace/Message_Block.cpp:
+ * ace/Method_Request.cpp:
+ * ace/Multihomed_INET_Addr.cpp:
+ * ace/Name_Request_Reply.cpp:
+ * ace/OS_NS_string.cpp:
+ * ace/OS_Thread_Adapter.cpp:
+ * ace/Parse_Node.cpp:
+ * ace/Ping_Socket.cpp:
+ * ace/POSIX_Asynch_IO.cpp:
+ * ace/POSIX_CB_Proactor.cpp:
+ * ace/Proactor.cpp:
+ * ace/Proactor_Impl.cpp:
+ * ace/Process_Manager.cpp:
+ * ace/QoS/QoS_Decorator.cpp:
+ * ace/QoS/QoS_Manager.cpp:
+ * ace/QoS/QoS_Session_Factory.cpp:
+ * ace/QoS/QoS_Session_Impl.cpp:
+ * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp:
+ * ace/Reactor.cpp:
+ * ace/Refcountable_T.cpp:
+ * ace/Remote_Name_Space.cpp:
+ * ace/Select_Reactor_Base.cpp:
+ * ace/Service_Config.cpp:
+ * ace/Service_Gestalt.cpp:
+ * ace/Shared_Memory_SV.cpp:
+ * ace/Singleton.cpp:
+ * ace/Sock_Connect.cpp:
+ * ace/SSL/SSL_Asynch_BIO.cpp:
+ * ace/SSL/SSL_Asynch_Stream.cpp:
+ * ace/SSL/SSL_Context.cpp:
+ * ace/SSL/SSL_SOCK.cpp:
+ * ace/SSL/SSL_SOCK_Acceptor.cpp:
+ * ace/SSL/SSL_SOCK_Connector.cpp:
+ * ace/SSL/SSL_SOCK_Stream.cpp:
+ * ace/SString.cpp:
+ * ace/Svc_Conf.y
+ * ace/Svc_Conf_y.cpp:
+ * ace/Task.cpp:
+ * ace/Thread_Manager.cpp:
+ * ace/Timer_Hash_T.cpp:
+ * ace/TkReactor/TkReactor.cpp:
+ * ace/Token_Collection.cpp:
+ * ace/WIN32_Asynch_IO.cpp:
+ * ace/XtReactor/XtReactor.cpp:
+ Removed ACE_RCSID
+
+Thu Aug 12 16:07:55 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * configure.ac: Added feature test for ACE_LACKS_STRUCT_LIFNUM.
+
+Thu Aug 12 08:39:31 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec:
+ Fixed problem compiling FC packages on OSB
+
+Wed Aug 11 20:50:37 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+
+ With ARCH set, we need to create the local ARCH directory for the
+ executable in case there are no object files that would otherwise
+ have required it.
+
+Wed Aug 11 13:45:52 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-g++-common.h:
+ Only enable GCC builtin atomic op when threads are enabled. Thanks to
+ Rafi <rafi dot net at gmail dot com> for reporting this
+
+Tue Aug 10 17:24:05 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACEXML/apps/svcconf/Svcconf.cpp:
+ Fixed compile problem
+
+Tue Aug 10 08:55:17 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Makefile.am:
+ Removed zapped file
+
+Mon Aug 9 17:14:27 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * THANKS:
+
+ Added Robert Shectman <shectman at llnl dot gov>
+
+Mon Aug 9 16:02:08 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ * include/makeinclude/platform_vxworks6.8.GNU:
+
+ The location of user-mode (RTP) libraries has changed in 6.8.
+
+Mon Aug 9 15:14:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACEXML/apps/svcconf/Svcconf_Handler.cpp:
+ Zap emulated exception macros
+
+ * ace/config-macros.h:
+ Only define ACE_HAS_EXCEPTIONS when it is not defined yet
+
+Mon Aug 9 06:38:34 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-sunos5.5.h:
+ Fixed compile error
+
+Mon Aug 9 06:35:14 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace.mpc:
+ Removed zapped file
+
+Sun Aug 8 23:31:32 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/config-macosx-snowleopard.h:
+
+ Clang uses ACE_ANY_OPS_USE_NAMESPACE.
+
+Fri Aug 6 17:36:45 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * bin/fuzz.pl:
+
+ Added a "trailing whitespace" check (not enabled by default).
+ Added the ability to pass multiple test names on the command line.
+ Extend the "too long file name" check to some additional file types.
+
+Fri Aug 6 08:39:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * protocols/ace/TMCast/TMCast.mpc:
+ Removed exceptions as base project
+
+Thu Aug 5 16:56:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/tmcast.mpb:
+ * protocols/tests/RMCast/RMCast.mpc:
+ Removed exceptions as base project
+
+Thu Aug 5 09:00:49 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ACE.cpp:
+ * ace/ACE_crc32.cpp:
+ * ace/ACE_crc_ccitt.cpp:
+ * ace/ARGV.cpp:
+ * ace/ATM_Acceptor.cpp:
+ * ace/ATM_Addr.cpp:
+ * ace/ATM_Connector.cpp:
+ * ace/ATM_Params.cpp:
+ * ace/ATM_QoS.cpp:
+ * ace/ATM_Stream.cpp:
+ * ace/Acceptor.cpp:
+ * ace/Activation_Queue.cpp:
+ * ace/Active_Map_Manager.cpp:
+ * ace/Addr.cpp:
+ * ace/Arg_Shifter.cpp:
+ * ace/Argv_Type_Converter.cpp:
+ * ace/Assert.cpp:
+ * ace/Asynch_Acceptor.cpp:
+ * ace/Asynch_IO.cpp:
+ * ace/Asynch_Pseudo_Task.cpp:
+ * ace/Atomic_Op.cpp:
+ * ace/Atomic_Op_GCC_T.cpp:
+ * ace/Atomic_Op_T.cpp:
+ * ace/Auto_Ptr.cpp:
+ * ace/Barrier.cpp:
+ * ace/Base_Thread_Adapter.cpp:
+ * ace/Basic_Stats.cpp:
+ * ace/CDR_Base.cpp:
+ * ace/Capabilities.cpp:
+ * ace/Codeset_IBM1047.cpp:
+ * ace/Codeset_Registry.cpp:
+ * ace/Condition_Thread_Mutex.cpp:
+ * ace/Connection_Recycling_Strategy.cpp:
+ * ace/Containers.cpp:
+ * ace/Copy_Disabled.cpp:
+ * ace/Countdown_Time.cpp:
+ * ace/DEV.cpp:
+ * ace/DEV_Connector.cpp:
+ * ace/DEV_IO.cpp:
+ * ace/DLL.cpp:
+ * ace/DLL_Manager.cpp:
+ * ace/Date_Time.cpp:
+ * ace/Dev_Poll_Reactor.cpp:
+ * ace/Dirent_Selector.cpp:
+ * ace/Dump.cpp:
+ * ace/Dynamic.cpp:
+ * ace/Dynamic_Message_Strategy.cpp:
+ * ace/Dynamic_Service_Dependency.cpp:
+ * ace/Event.cpp:
+ * ace/Event_Handler.cpp:
+ * ace/FIFO.cpp:
+ * ace/FIFO_Recv.cpp:
+ * ace/FIFO_Recv_Msg.cpp:
+ * ace/FIFO_Send.cpp:
+ * ace/FIFO_Send_Msg.cpp:
+ * ace/FILE.cpp:
+ * ace/FILE_Addr.cpp:
+ * ace/FILE_Connector.cpp:
+ * ace/FILE_IO.cpp:
+ * ace/File_Lock.cpp:
+ * ace/Framework_Component.cpp:
+ * ace/Functor.cpp:
+ * ace/Functor_String.cpp:
+ * ace/Future.cpp:
+ * ace/Get_Opt.cpp:
+ * ace/Handle_Set.cpp:
+ * ace/High_Res_Timer.cpp:
+ * ace/ICMP_Socket.cpp:
+ * ace/IOStream.cpp:
+ * ace/IO_Cntl_Msg.cpp:
+ * ace/IO_SAP.cpp:
+ * ace/IPC_SAP.cpp:
+ * ace/LSOCK.cpp:
+ * ace/LSOCK_Acceptor.cpp:
+ * ace/LSOCK_CODgram.cpp:
+ * ace/LSOCK_Connector.cpp:
+ * ace/LSOCK_Dgram.cpp:
+ * ace/LSOCK_Stream.cpp:
+ * ace/Lib_Find.cpp:
+ * ace/Local_Memory_Pool.cpp:
+ * ace/Local_Name_Space.cpp:
+ * ace/Lock.cpp:
+ * ace/Log_Msg.cpp:
+ * ace/Log_Msg_Backend.cpp:
+ * ace/Log_Msg_Callback.cpp:
+ * ace/Log_Msg_IPC.cpp:
+ * ace/Log_Msg_NT_Event_Log.cpp:
+ * ace/Log_Record.cpp:
+ * ace/MEM_Acceptor.cpp:
+ * ace/MEM_Connector.cpp:
+ * ace/MEM_IO.cpp:
+ * ace/MEM_SAP.cpp:
+ * ace/MEM_Stream.cpp:
+ * ace/MMAP_Memory_Pool.cpp:
+ * ace/Malloc_Allocator.cpp:
+ * ace/Manual_Event.cpp:
+ * ace/Mem_Map.cpp:
+ * ace/Message_Queue.cpp:
+ * ace/Message_Queue_NT.cpp:
+ * ace/Message_Queue_Vx.cpp:
+ * ace/Msg_WFMO_Reactor.cpp:
+ * ace/Mutex.cpp:
+ * ace/Name_Proxy.cpp:
+ * ace/Name_Space.cpp:
+ * ace/Naming_Context.cpp:
+ * ace/Notification_Strategy.cpp:
+ * ace/OS.cpp:
+ * ace/OS_Errno.cpp:
+ * ace/OS_Log_Msg_Attributes.cpp:
+ * ace/OS_NS_Thread.cpp:
+ * ace/OS_NS_arpa_inet.cpp:
+ * ace/OS_NS_ctype.cpp:
+ * ace/OS_NS_dirent.cpp:
+ * ace/OS_NS_dlfcn.cpp:
+ * ace/OS_NS_errno.cpp:
+ * ace/OS_NS_fcntl.cpp:
+ * ace/OS_NS_math.cpp:
+ * ace/OS_NS_netdb.cpp:
+ * ace/OS_NS_poll.cpp:
+ * ace/OS_NS_pwd.cpp:
+ * ace/OS_NS_regex.cpp:
+ * ace/OS_NS_signal.cpp:
+ * ace/OS_NS_stdio.cpp:
+ * ace/OS_NS_stdlib.cpp:
+ * ace/OS_NS_strings.cpp:
+ * ace/OS_NS_stropts.cpp:
+ * ace/OS_NS_sys_mman.cpp:
+ * ace/OS_NS_sys_msg.cpp:
+ * ace/OS_NS_sys_resource.cpp:
+ * ace/OS_NS_sys_select.cpp:
+ * ace/OS_NS_sys_shm.cpp:
+ * ace/OS_NS_sys_socket.cpp:
+ * ace/OS_NS_sys_stat.cpp:
+ * ace/OS_NS_sys_time.cpp:
+ * ace/OS_NS_sys_uio.cpp:
+ * ace/OS_NS_sys_utsname.cpp:
+ * ace/OS_NS_sys_wait.cpp:
+ * ace/OS_NS_time.cpp:
+ * ace/OS_NS_unistd.cpp:
+ * ace/OS_NS_wchar.cpp:
+ * ace/OS_NS_wctype.cpp:
+ * ace/OS_TLI.cpp:
+ * ace/OS_main.cpp:
+ * ace/Obchunk.cpp:
+ * ace/Object_Manager.cpp:
+ * ace/Object_Manager_Base.cpp:
+ * ace/PI_Malloc.cpp:
+ * ace/Pagefile_Memory_Pool.cpp:
+ * ace/Pipe.cpp:
+ * ace/Priority_Reactor.cpp:
+ * ace/Process.cpp:
+ * ace/Process_Mutex.cpp:
+ * ace/Process_Semaphore.cpp:
+ * ace/Profile_Timer.cpp:
+ * ace/RW_Mutex.cpp:
+ * ace/RW_Process_Mutex.cpp:
+ * ace/RW_Thread_Mutex.cpp:
+ * ace/Reactor_Impl.cpp:
+ * ace/Reactor_Notification_Strategy.cpp:
+ * ace/Reactor_Timer_Interface.cpp:
+ * ace/Read_Buffer.cpp:
+ * ace/Recursive_Thread_Mutex.cpp:
+ * ace/Recyclable.cpp:
+ * ace/Registry.cpp:
+ * ace/Registry_Name_Space.cpp:
+ * ace/Remote_Tokens.cpp:
+ * ace/SOCK.cpp:
+ * ace/SOCK_Acceptor.cpp:
+ * ace/SOCK_CODgram.cpp:
+ * ace/SOCK_Connector.cpp:
+ * ace/SOCK_Dgram.cpp:
+ * ace/SOCK_Dgram_Bcast.cpp:
+ * ace/SOCK_Dgram_Mcast.cpp:
+ * ace/SOCK_IO.cpp:
+ * ace/SOCK_SEQPACK_Acceptor.cpp:
+ * ace/SOCK_SEQPACK_Association.cpp:
+ * ace/SOCK_SEQPACK_Connector.cpp:
+ * ace/SOCK_Stream.cpp:
+ * ace/SPIPE.cpp:
+ * ace/SPIPE_Acceptor.cpp:
+ * ace/SPIPE_Addr.cpp:
+ * ace/SPIPE_Connector.cpp:
+ * ace/SPIPE_Stream.cpp:
+ * ace/SUN_Proactor.cpp:
+ * ace/SV_Message.cpp:
+ * ace/SV_Message_Queue.cpp:
+ * ace/SV_Semaphore_Complex.cpp:
+ * ace/SV_Semaphore_Simple.cpp:
+ * ace/SV_Shared_Memory.cpp:
+ * ace/Sample_History.cpp:
+ * ace/Sbrk_Memory_Pool.cpp:
+ * ace/Sched_Params.cpp:
+ * ace/Select_Reactor_T.cpp:
+ * ace/Semaphore.cpp:
+ * ace/Service_Manager.cpp:
+ * ace/Service_Object.cpp:
+ * ace/Service_Repository.cpp:
+ * ace/Service_Types.cpp:
+ * ace/Shared_Memory.cpp:
+ * ace/Shared_Memory_MM.cpp:
+ * ace/Shared_Memory_Pool.cpp:
+ * ace/Shared_Object.cpp:
+ * ace/Sig_Adapter.cpp:
+ * ace/Sig_Handler.cpp:
+ * ace/Signal.cpp:
+ * ace/Stack_Trace.cpp:
+ * ace/Stats.cpp:
+ * ace/Synch_Options.cpp:
+ * ace/System_Time.cpp:
+ * ace/TLI.cpp:
+ * ace/TLI_Acceptor.cpp:
+ * ace/TLI_Connector.cpp:
+ * ace/TLI_Stream.cpp:
+ * ace/TP_Reactor.cpp:
+ * ace/TSS_Adapter.cpp:
+ * ace/TTY_IO.cpp:
+ * ace/Thread.cpp:
+ * ace/Thread_Adapter.cpp:
+ * ace/Thread_Control.cpp:
+ * ace/Thread_Exit.cpp:
+ * ace/Thread_Hook.cpp:
+ * ace/Thread_Mutex.cpp:
+ * ace/Thread_Semaphore.cpp:
+ * ace/Throughput_Stats.cpp:
+ * ace/Time_Value.cpp:
+ * ace/Timeprobe.cpp:
+ * ace/Timer_List_T.cpp:
+ * ace/Token.cpp:
+ * ace/Token_Invariants.cpp:
+ * ace/Token_Manager.cpp:
+ * ace/Token_Request_Reply.cpp:
+ * ace/Trace.cpp:
+ * ace/UNIX_Addr.cpp:
+ * ace/UPIPE_Acceptor.cpp:
+ * ace/UPIPE_Connector.cpp:
+ * ace/UPIPE_Stream.cpp:
+ * ace/UUID.cpp:
+ * ace/WFMO_Reactor.cpp:
+ * ace/WIN32_Proactor.cpp:
+ * ace/XTI_ATM_Mcast.cpp:
+ * ace/ace_wchar.cpp:
+ * ace/gethrtime.cpp:
+ Removed ACE_RCSID
+
+Thu Aug 5 08:13:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CORBA_macros.h:
+ * ace/Global_Macros.h:
+ * ace/Vector_T.h:
+ * ace/ace_wchar.h:
+ * ace/config-cxx-common.h:
+ * ace/config-doxygen.h:
+ * ace/config-g++-common.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-icc-common.h:
+ * ace/config-integritySCA.h:
+ * ace/config-macros.h:
+ * ace/config-netbsd.h:
+ * ace/config-openvms.h:
+ * ace/config-suncc-common.h:
+ * ace/config-sunos5.4-sunc++-4.x.h:
+ * ace/config-sunos5.5.h:
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/config-tandem-nsk-mips-v3.h:
+ * ace/config-unixware-7.1.0.h:
+ * ace/config-unixware-7.1.0.udk.h:
+ * ace/config-win32-borland.h:
+ * ace/config-win32-dmc.h:
+ * ace/config-win32-ghs.h:
+ * ace/config-win32-interix.h:
+ * ace/config-win32-msvc-10.h:
+ * ace/config-win32-msvc-7.h:
+ * ace/config-win32-msvc-8.h:
+ * ace/config-win32-msvc-9.h:
+ * include/makeinclude/platform_aix.GNU:
+ * include/makeinclude/platform_aix_g++.GNU:
+ * include/makeinclude/platform_aix_ibm.GNU:
+ * include/makeinclude/platform_cray.GNU:
+ * include/makeinclude/platform_freebsd.GNU:
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ * include/makeinclude/platform_hpux_aCC.GNU:
+ * include/makeinclude/platform_hpux_gcc.GNU:
+ * include/makeinclude/platform_integrity_ghs.GNU:
+ * include/makeinclude/platform_irix6.x_common.GNU:
+ * include/makeinclude/platform_linux_common.GNU:
+ * include/makeinclude/platform_lynxos.GNU:
+ * include/makeinclude/platform_macosx.GNU:
+ * include/makeinclude/platform_macosx_common.GNU:
+ * include/makeinclude/platform_macosx_icc.GNU:
+ * include/makeinclude/platform_macosx_panther.GNU:
+ * include/makeinclude/platform_netbsd.GNU:
+ * include/makeinclude/platform_openbsd.GNU:
+ * include/makeinclude/platform_openvms.GNU:
+ * include/makeinclude/platform_qnx_rtp_gcc.GNU:
+ * include/makeinclude/platform_rtems.x_g++.GNU:
+ * include/makeinclude/platform_sunos5_g++.GNU:
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+ * include/makeinclude/platform_tandem.GNU:
+ * include/makeinclude/platform_tru64_cxx.GNU:
+ * include/makeinclude/platform_tru64_g++.GNU:
+ * include/makeinclude/platform_unixware_g++.GNU:
+ * include/makeinclude/platform_vxworks5.5.x.GNU:
+ * include/makeinclude/platform_vxworks6.2.GNU:
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ * include/makeinclude/platform_win32_dmc.GNU:
+ * include/makeinclude/platform_win32_icc.GNU:
+ * include/makeinclude/platform_win32_interix.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ * tests/Bug_3673_Regression_Test.cpp:
+ * tests/Reactor_Exceptions_Test.cpp:
+ * tests/tests.mpc:
+ Removed support for non exception builds, ACE_HAS_EXCEPTIONS is
+ now always defined
+
+ * rpmbuild/ace-tao.spec:
+ Small updates
+
+ * ace/Exception_Macros.h:
+ * bin/MakeProjectCreator/config/exceptions.mpb:
+ Removed these files.
+
+Thu Aug 5 07:40:00 UTC 2010 Build CZar <buildczar at prismtech dot com>
+
+ * ace/OS_NS_Thread.cpp:
+ Add the missing ; to the lines added by the fix below.
+ Wed Aug 4 14:16:46 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+Wed Aug 4 17:21:17 UTC 2010 Chris Cleeland <cleeland@ociweb.com>
+
+ * bin/MakeProjectCreator/config/crosscompile.mpb:
+ Added specific clause for cdt6.
+
+Wed Aug 4 14:16:46 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.cpp:
+ Check more internal return values
+
+ * rpmbuild/ace-tao.spec-bugfixonly.patch:
+ Removed this file, not needed
+
+Tue Aug 3 12:14:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_doxygen.pl:
+ * html/index.html:
+ DAnCE has its own file now and also some documentation got moved
+ out of the tao directory
+
+Sun Aug 1 18:14:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * bin/make_release.py:
+ * docs/Download.html:
+ * etc/index.html:
+ Updated because of release
+
+ * debian/*:
+ Did rename actions the release script didn't do, have to sort this
+ out later
+
+Sun Aug 01 11:30:54 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.8.1 released.
+
+Thu Jul 29 14:41:32 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/Process.h (set_handles): Clarify that passing ACE_INVALID_HANDLE
+ for any of the handle values will cause a duplicate of the
+ corresponding ACE_STDIN/OUT/ERR to be used in the options.
+
+Thu Jul 29 10:43:32 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * bin/MakeProjectCreator/config/global.features:
+ * bin/MakeProjectCreator/config/inetssl.mpb:
+ * protocols/ace/INet/inet_ssl.mpb:
+ Created a new feature, inet_ssl. When set, the INet libary
+ builds, using SSL. To let the INet libary use SSL, one should
+ enable the inet_ssl feature in default.features and add ssl=1 to
+ the platform_macos.GNU.
+
+Mon Jul 26 20:26:53 UTC 2010 Steve Huston <shuston@riverace.com>
+
+ * ace/OS_NS_Thread.h: Note that the cpu_set_size to the get/set
+ affinity methods is a byte count.
+
+Mon Jul 26 07:02:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/MakeProjectCreator/config/inet.mpb:
+ * protocols/ace/INet/inet.mpc:
+ Added avoids += corba_e_compact.
+
+Thu Jul 22 04:35:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/MakeProjectCreator/config/inet.mpb:
+ * protocols/ace/INet/inet.mpc:
+ Added avoids += ace_for_tao.
+
+Wed Jul 21 18:23:32 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Basic_Types.h (ACE_INT8_FORMAT_SPECIFIER): Added the missing
+ "_ASCII" to the ACE_INT8_FORMAT_SPECIFIER macro usage. Thanks
+ to Andre Kostur <akostur at incognito dot com> for reporting
+ this.
+
+Wed Jul 21 15:52:32 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Service_Gestalt.h:
+ * ace/Service_Gestalt.inl:
+ * ace/Service_Gestalt.cpp:
+
+ Reverted for_TAO specific change, revised the processing to
+ ensure default first, then files, then cmdline directives.
+
+Wed Jul 21 03:07:28 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Service_Gestalt.h:
+ * ace/Service_Gestalt.cpp:
+
+ Fix errors in premature committal.
+
+Wed Jul 21 02:30:45 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Service_Gestalt.h:
+ * ace/Service_Gestalt.inl:
+ * ace/Service_Gestalt.cpp:
+
+ Add a specialized open method to be called by TAO. TAO depends
+ on a modified order of directive evaluation.
+
+Tue Jul 20 18:02:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Download.html:
+ Fixed some typos, thanks to Thomas Lockhart
+ <Thomas dot lockhart at jpl dot nasa dot gov> for reporting this
+
+Tue Jul 20 15:08:49 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/Bug_3319_Regression_Test.cpp:
+
+ Fix the test to be consistent with revised service config
+ behavior. The test had assumed that ACE_Service_Config::open()
+ would return 0 even if svc.conf were not present, but since it
+ was setting the ignore_default_svc_conf_file to 0, the restore
+ behavior of the service configurator is to fail with ENOENT in
+ that case.
+
+Tue Jul 20 08:48:00 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/TSS_T.cpp:
+ Fixed a bug in ACE_TSS::ts_get() that only exhibited on
+ SunOS/Studio builds. The later configutsyion uses ACE_HAS_THR_C_DEST
+ and with that define ts_get() behaved differently. In particular it
+ didn't create a ts_obj if tss_adapter was not 0.
+
+Tue Jul 20 07:38:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/SSL_CallbackManager.h:
+ Fixed comment typo.
+
+Tue Jul 20 05:25:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_BasicAuthentication.cpp:
+ * protocols/ace/INet/HTTP_BasicAuthentication.h:
+ * protocols/ace/INet/HTTP_BasicAuthentication.inl:
+ * protocols/ace/INet/inet.mpc:
+ Added basic support for HTTP Basic Authentication scheme.
+
+Tue Jul 20 03:56:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTP_SessionBase.cpp:
+ Fixed MSVC 7.1 compile problems.
+
+ * protocols/ace/INet/HTTP_Simple_exec.cpp:
+ Fixed compile problems for non-SSL builds.
+
+Tue Jul 20 03:25:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/MakeProjectCreator/config/inetssl.mpb:
+ * protocols/ace/INet/inet_ssl.mpb:
+ Fuzz fixes.
+
+Mon Jul 19 11:50:59 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * ace/TSS_T.inl:
+ * ace/TSS_T.h:
+ * ace/TSS_T.cpp:
+ Mostly fixed bug 3539. It doesn't fix a case when main thread
+ doesn't own ACE_TSS but still uses it. Fixing the later is not
+ straight forward and will require a lot more efforts.
+ Also rearranged the code so that it has less duplicates.
+
+ * tests/run_test.lst:
+ Marked the test as fixed.
+
+Mon Jul 19 09:15:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/MakeProjectCreator/config/inet.mpb:
+ * bin/MakeProjectCreator/config/global.features:
+ * protocols/ace/INet/inet.mpc:
+ Added new feature 'exclude_inet' to allow builds to
+ explicitly exclude building INet.
+
+Mon Jul 19 08:49:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/HTTPS_Session.cpp:
+ * protocols/ace/INet/HTTPS_Session.h:
+ Fixed compile errors byadding version check to disable
+ 'relatively' new OpenSSL functionality for builds using
+ outdated OpenSSL installations (OpenSSL <= 0.9.8e).
+
+Sat Jul 17 14:06:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/URLBase.h:
+ Some include shuffling to fix an incomplete type warning
+ with MSVC.
+
+Sat Jul 17 11:39:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * protocols/ace/INet/inet_ssl.mpb:
+ Replaced ace_openssl base project by ssl. Fixes missing
+ ACE_SSL lib link errors.
+
+ * protocols/ace/INet/SSL_CallbackManager.cpp:
+ Fixed MSVC compile errors.
+
+Sat Jul 17 10:26:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/MakeProjectCreator/config/inetssl.mpb:
+ * bin/MakeProjectCreator/config/inet.mpb:
+ Added feature project for SSL based parts of INet.
+ Setting feature ssl=1 will automatically cause correct
+ dependencies for SSL to be generated in INet based projects.
+
+ * protocols/ace/INet/HTTPS_Context.cpp:
+ * protocols/ace/INet/HTTPS_Context.h:
+ * protocols/ace/INet/HTTPS_Context.inl:
+ * protocols/ace/INet/HTTP_SessionBase.cpp:
+ * protocols/ace/INet/HTTP_SessionBase.h:
+ * protocols/ace/INet/HTTP_SessionBase.inl:
+ * protocols/ace/INet/HTTPS_Session.cpp:
+ * protocols/ace/INet/HTTPS_SessionFactory.cpp:
+ * protocols/ace/INet/HTTPS_SessionFactory.h:
+ * protocols/ace/INet/HTTPS_Session.h:
+ * protocols/ace/INet/HTTPS_URL.cpp:
+ * protocols/ace/INet/HTTPS_URL.h:
+ * protocols/ace/INet/HTTPS_URL.inl:
+ * protocols/ace/INet/SSL_CallbackManager.cpp:
+ * protocols/ace/INet/SSL_CallbackManager.h:
+ * protocols/ace/INet/SSL_CallbackManager.inl:
+ * protocols/ace/INet/SSL_CertificateCallback.cpp:
+ * protocols/ace/INet/SSL_CertificateCallback.h:
+ * protocols/ace/INet/SSL_CertificateCallback.inl:
+ * protocols/ace/INet/SSL_PasswordCallback.cpp:
+ * protocols/ace/INet/SSL_PasswordCallback.h:
+ * protocols/ace/INet/SSL_Proxy_Connector.cpp:
+ * protocols/ace/INet/SSL_Proxy_Connector.h:
+ * protocols/ace/INet/SSLSock_IOStream.cpp:
+ * protocols/ace/INet/SSLSock_IOStream.h:
+ * protocols/ace/INet/SSL_X509Cert.cpp:
+ * protocols/ace/INet/SSL_X509Cert.h:
+ * protocols/ace/INet/SSL_X509Cert.inl:
+ New files implementing SSL/HTTPS support.
+ Includes support for proxy CONNECT tunneling.
+
+ * protocols/ace/INet/inet_ssl.mpb:
+ Feature project which will include SSL/HTTPS support
+ into INet when MPC feature ssl=1 is set.
+
+ * protocols/ace/INet/ClientRequestHandler.cpp:
+ * protocols/ace/INet/ClientRequestHandler.h:
+ * protocols/ace/INet/ConnectionCache.cpp:
+ * protocols/ace/INet/ConnectionCache.h:
+ * protocols/ace/INet/FTP_ClientRequestHandler.cpp:
+ * protocols/ace/INet/FTP_URL.cpp:
+ * protocols/ace/INet/FTP_URL.h:
+ * protocols/ace/INet/FTP_URL.inl:
+ * protocols/ace/INet/HeaderBase.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.cpp:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.h:
+ * protocols/ace/INet/HTTP_ClientRequestHandler.inl:
+ * protocols/ace/INet/HTTP_Session.cpp:
+ * protocols/ace/INet/HTTP_Session.h:
+ * protocols/ace/INet/HTTP_StreamPolicyBase.h:
+ * protocols/ace/INet/HTTP_StreamPolicy.h:
+ * protocols/ace/INet/HTTP_URL.cpp:
+ * protocols/ace/INet/HTTP_URL.h:
+ * protocols/ace/INet/HTTP_URL.inl:
+ * protocols/ace/INet/inet.mpc:
+ * protocols/ace/INet/RequestHandler.h:
+ * protocols/ace/INet/StreamHandler.cpp:
+ * protocols/ace/INet/StreamInterceptor.h:
+ * protocols/ace/INet/URLBase.h:
+ Some redesign to accomodate addition of HTTPS.
+ Some additional logging.
+ Some additional documentation.
+
+ * protocols/ace/INet/HTTP_Simple_exec.cpp:
+ Extended to include HTTPS support.
+
+ * protocols/tests/INet/MT_Get/Main.cpp:
+ Added some traces.
+
+Fri Jul 16 22:08:05 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Service_Gestalt.h:
+ * ace/Service_Gestalt.cpp:
+
+ Further refinement of service initialization process. This
+ restores the order of processing, and is more explicit about
+ handling a defaulted svc.conf.
+
+Thu Jul 15 17:53:47 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Service_Gestalt.cpp:
+ * THANKS:
+
+ Restore pre-gestalt behavior of returning -1 if svc.conf does
+ not exist and an ACE_Service_Config::open() is expecting to use
+ the default file.
+
+ Thanks to Daynesh Mangal (daynesh@gmail.com) for reporting the
+ errant behavior.
+
+Thu Jul 15 12:53:53 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ * etc/ace_inet.doxygen:
+ * etc/ace_man.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ Generate deprecated/todo pages
+
+Thu Jul 15 12:35:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/SSL/SSL_SOCK_Stream.h:
+ * ace/SSL/SSL_SOCK_Stream.inl:
+ Added two method overloads available in ACE_SOCK_Stream but
+ missing from ACE_SSL_SOCK_Stream.
+
+Thu Jul 15 09:49:28 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-doxygen.h:
+ Added ACE_HAS_POSITION_INDEPENDENT_POINTERS
+
+Thu Jul 15 09:29:58 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_doxygen.pl:
+ * etc/ace_inet.doxygen:
+ * html/index.html:
+ Added ACE INet library
+
+Thu Jul 15 09:11:51 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ace/config-macosx-snowleopard.h:
+ * include/makeinclude/platform_clang_common.GNU:
+ * include/makeinclude/platform_macosx_common.GNU:
+
+ Preliminary support for clang compiler.
+
+Tue Jul 13 14:39:55 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated
+
+Tue Jul 13 14:33:23 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Cached_Connect_Strategy_T.h:
+ * ace/Capabilities.h:
+ Doxygen fixes
+
+Tue Jul 13 14:20:09 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/os_errno.h:
+ Fixed problems with msvc 10, , thanks to Max Zhou
+ <earthdog at 126.com> for supplying these changes, this fixes
+ bugzilla 3873
+
+Tue Jul 13 11:08:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/vc10nmake.mpb:
+ * netsvcs/lib/lib.mpc:
+ vc10 support, thanks to Max Zhou <earthdog at 126.com> for
+ supplying these changes
+
+Mon Jul 12 11:04:58 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ACE.cpp:
+ * ace/Activation_Queue.h:
+ * ace/Active_Map_Manager.h:
+ * ace/Dev_Poll_Reactor.h:
+ * ace/Dev_Poll_Reactor.inl:
+ * ace/Event_Handler.h:
+ * ace/Filecache.h:
+ * ace/Manual_Event.h:
+ * ace/Map_Manager.h:
+ * ace/Mem_Map.h:
+ * ace/Message_Block.h:
+ * ace/OS_Log_Msg_Attributes.h:
+ * ace/OS_NS_unistd.h:
+ * ace/Object_Manager.h:
+ * ace/Recursive_Thread_Mutex.h:
+ Layout, const, and doxygen fixes
+
+Mon Jul 12 10:11:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/DLL.h:
+ * ace/DLL_Manager.h:
+ * ace/Dirent.h:
+ * ace/Dump_T.h:
+ * ace/Event_Handler.h:
+ * ace/File_Lock.h:
+ * ace/INET_Addr.h:
+ * ace/Log_Msg_Callback.h:
+ * ace/Log_Record.h:
+ * ace/Logging_Strategy.h:
+ Fixed set of doxygen warnings
+
+Mon Jul 12 08:19:58 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Connector.h:
+ * ace/Malloc_Base.h:
+ * ace/SString.h:
+ * ace/Stream.h:
+ * ace/Task.h:
+ Fixed set of doxygen warnings
+
+Fri Jul 09 09:35:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/Process_Unix.pm:
+ Fix killall() valgrind handling.
+
+Thu Jul 08 14:41:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/Process_Unix.pm:
+ Fix killall() valgrind handling.
+
+Thu Jul 08 07:56:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/Process_Unix.pm:
+ Make killall() recognize and handle valgrind runs correctly.
+
+Wed Jul 7 14:53:12 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tests/run_test.lst:
+ * tests/Bug_3539_Regression_Test.cpp:
+ * tests/tests.mpc:
+ Added a test for bug 3539 as non-fixed.
+
+Wed Jul 7 11:43:16 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/bczar/bczar.html:
+ Extended instructions
+
+Tue Jul 6 12:28:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Download.html:
+ CIAO is also online available
+
+Tue Jul 6 11:29:41 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Message_Queue_T.cpp:
+ * ace/Service_Repository.h:
+ * ace/Task_T.h:
+ Fixed doxygen warnings
+
+Tue Jul 6 11:22:08 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ Improved doxygen configuration
+
+Tue Jul 6 11:11:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ * etc/ace_man.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ Reduced the size of the colloboration graphs
+
+Mon Jul 5 15:20:14 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec:
+ Removed some test code
+
+Mon Jul 5 14:59:25 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec:
+ Added missing file, thanks to Anatoli Sakhnik
+ <sakhnik at gmail dot com> for reporting this, this should fix
+ bugzilla 3870
+
+Mon Jul 05 14:32:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/Process_Unix.pm:
+ Fixes problem with killall() function being not selective enough.
+
+Mon Jul 5 13:56:57 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ace.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ Disable include and included graphs, this should reduce the size
+ of the documentation a lot
+
+Mon Jul 5 13:29:23 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_doxygen.pl:
+ Some preparations to move the DAnCE doxygen files to DAnCE
+
+ * docs/bczar/bczar.html:
+ Updated release notes, made it possible to generate doxygen on
+ a regular system instead of on naboo, the side effect is that the
+ doxygen packages on naboo are 350Mb, on FC13 with all latest tools
+ they are 1.4GB
+
+Mon Jul 5 11:22:09 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Select_Reactor_Base.cpp:
+ Fixed doxygen warning
+
+ * etc/ace.doxygen:
+ * etc/ace_man.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ Define ACE_INLINE as inline and not as 1
+
+Mon Jul 5 10:56:15 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao.spec-release.patch:
+ Removed this file.
+
+Mon Jul 5 09:11:21 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Download.html:
+ Removed link to very old patches and fixed typo
+
+Mon Jul 5 09:05:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Download.html:
+ Updated filenames in text
+
+Mon Jul 5 08:57:09 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Download.html:
+ Update latest minor release to x.8.0
+
+Mon Jul 5 08:19:17 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Updated for x.8.0
+
+ * bin/generate_rel_manpages:
+ Remove restriction to run on naboo, removed doxygen check, updated
+ error message
+
+ * docs/Download.html:
+ Updated to x.8.0
+
+ * etc/ace.doxygen:
+ Layout changes
+
+ * etc/index.html:
+ Added 5.8
+
+ * rpmbuild/ace-tao.spec:
+ Changed version numbers to x.8.0 and added new ACE INet library
+
+Sun Jul 04 18:57:33 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.8 released.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp b/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp
index d9a2eebab59..e875b8fead1 100644
--- a/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp
+++ b/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp
@@ -9,8 +9,6 @@
//#include "DSRT_CV_Dispatcher_Impl_T.i"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, DSRT_CV_Dispatcher_Impl_T, "$Id$")
-
namespace Kokyu
{
diff --git a/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp b/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp
index 5339fe8a3b8..b27f9fd96a3 100644
--- a/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp
+++ b/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp
@@ -9,8 +9,6 @@
//#include "DSRT_Direct_Dispatcher_Impl_T.i"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, DSRT_Direct_Dispatcher_Impl_T, "$Id$")
-
namespace Kokyu
{
@@ -283,10 +281,6 @@ update_schedule_i (Guid_t guid, Block_Flag_t flag)
DSRT_Dispatch_Item_var<DSRT_Scheduler_Traits> dispatch_item;
ACE_hthread_t thr_handle;
- //@@ Perhaps the lock could be got rid of. It looks like the state
- //of this object is not getting modified here. It makes calls to
- //other methods, which already are thread-safe.
- //ACE_Guard<cond_lock_t> mon(sched_queue_modified_cond_lock_);
int found = this->ready_queue_.find (guid, dispatch_item);
if (found == 0 && flag == BLOCK)
@@ -361,7 +355,7 @@ shutdown_i ()
{
this->shutdown_flagged_ = 1;
- ACE_Guard<cond_lock_t> mon(this->sched_queue_modified_cond_lock_);
+ ACE_GUARD_RETURN (cond_lock_t, mon, this->sched_queue_modified_cond_lock_, 0);
this->sched_queue_modified_ = 1;
this->sched_queue_modified_cond_.signal ();
// We have to wait until the scheduler executive thread shuts
diff --git a/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h b/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h
index 1e5dddfaecd..d4f93f37eca 100644
--- a/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h
+++ b/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h
@@ -38,7 +38,7 @@ namespace Kokyu
typedef typename
DSRT_Scheduler_Traits::QoSDescriptor_t DSRT_QoSDescriptor;
- DSRT_Direct_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy,
+ DSRT_Direct_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy,
int sched_scope);
int init_i (const DSRT_ConfigInfo&);
diff --git a/ACE/Kokyu/DSRT_Dispatch_Item_T.cpp b/ACE/Kokyu/DSRT_Dispatch_Item_T.cpp
index 123b4a47e2c..b1a29c74c60 100644
--- a/ACE/Kokyu/DSRT_Dispatch_Item_T.cpp
+++ b/ACE/Kokyu/DSRT_Dispatch_Item_T.cpp
@@ -9,8 +9,6 @@
#include "DSRT_Dispatch_Item_T.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, DSRT_Dispatch_Item, "$Id$")
-
namespace Kokyu
{
diff --git a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp
index 3d3ac5ed8f2..94eadc2c09c 100644
--- a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp
+++ b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp
@@ -9,14 +9,12 @@
#include "DSRT_Dispatcher_Impl_T.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, DSRT_Dispatcher_Impl, "$Id$")
-
namespace Kokyu
{
template <class DSRT_Scheduler_Traits>
DSRT_Dispatcher_Impl<DSRT_Scheduler_Traits>::
-DSRT_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy,
+DSRT_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy,
int sched_scope)
: sched_policy_ (sched_policy),
sched_scope_ (sched_scope),
diff --git a/ACE/Kokyu/DSRT_Sched_Queue_T.cpp b/ACE/Kokyu/DSRT_Sched_Queue_T.cpp
index e9888f7bc32..a9ae001ba85 100644
--- a/ACE/Kokyu/DSRT_Sched_Queue_T.cpp
+++ b/ACE/Kokyu/DSRT_Sched_Queue_T.cpp
@@ -19,10 +19,6 @@
//#include "DSRT_Sched_Queue_T.i"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu,
- DSRT_Sched_Queue_T,
- "$Id$")
-
namespace Kokyu
{
/*
@@ -85,7 +81,7 @@ find (Guid_t guid,
DSRT_Dispatch_Item_var<DSRT_Scheduler_Traits>& found_item)
{
ACE_GUARD_RETURN (ACE_LOCK, mon, lock_, -1);
- RB_Tree_Dispatch_Item_Node* rb_tree_node;
+ RB_Tree_Dispatch_Item_Node* rb_tree_node = 0;
if (dispatch_items_hash_map_.find(guid, rb_tree_node) == -1)
{
@@ -115,15 +111,15 @@ insert (DSRT_Dispatch_Item<DSRT_Scheduler_Traits>* item)
#ifdef KOKYU_DSRT_LOGGING
ACE_hthread_t thr_handle = item->thread_handle ();
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) about to insert %d in sched queue\n",
+ ACE_DEBUG ((LM_DEBUG,
+ "(%t|%T) about to insert %d in sched queue\n",
thr_handle));
#endif
if (dispatch_items_hash_map_.find (guid, rb_tree_node) == -1)
{
#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
"(%t|%T) %d not found in hashmap\n", thr_handle));
#endif
if (dispatch_items_prio_queue_.bind (item_var,
@@ -142,7 +138,7 @@ insert (DSRT_Dispatch_Item<DSRT_Scheduler_Traits>* item)
dispatch_items_hash_map_.dump ();
ACE_DEBUG ((LM_DEBUG,
"<===Hash Table contents End=====>\n"));
-#endif
+#endif
return 0;
}
}
@@ -150,35 +146,35 @@ insert (DSRT_Dispatch_Item<DSRT_Scheduler_Traits>* item)
else
{
#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
"(%t|%T) %d found in hashmap\n", thr_handle));
#endif
dispatch_items_hash_map_.unbind (guid);
dispatch_items_prio_queue_.unbind (rb_tree_node);
#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) %d removed from hashmap and rbtree\n", thr_handle));
+ ACE_DEBUG ((LM_DEBUG,
+ "(%t|%T) %d removed from hashmap and rbtree\n", thr_handle));
#endif
if (dispatch_items_prio_queue_.bind (item_var,
item_var,
rb_tree_node) == 0)
{
#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) %d bound to rbtree\n", thr_handle));
+ ACE_DEBUG ((LM_DEBUG,
+ "(%t|%T) %d bound to rbtree\n", thr_handle));
#endif
if (dispatch_items_hash_map_.bind (guid, rb_tree_node) == 0)
{
#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) %d bound to hashmap\n", thr_handle));
+ ACE_DEBUG ((LM_DEBUG,
+ "(%t|%T) %d bound to hashmap\n", thr_handle));
ACE_DEBUG ((LM_DEBUG,
"<===Hash Table contents Begin===>\n"));
dispatch_items_hash_map_.dump ();
ACE_DEBUG ((LM_DEBUG,
"<===Hash Table contents End===>\n"));
-#endif
+#endif
return 0;
}
}
@@ -194,7 +190,7 @@ int Sched_Ready_Queue<DSRT_Scheduler_Traits,
remove (Guid_t guid)
{
ACE_GUARD_RETURN (ACE_LOCK, mon, lock_, -1);
- RB_Tree_Dispatch_Item_Node* rb_tree_node;
+ RB_Tree_Dispatch_Item_Node* rb_tree_node = 0;
if (dispatch_items_hash_map_.find(guid, rb_tree_node) == 0)
{
@@ -207,7 +203,7 @@ remove (Guid_t guid)
ACE_DEBUG ((LM_DEBUG,
"<===Hash Table contents End===>\n"));
#endif
-
+
return 0;
}
@@ -235,13 +231,13 @@ dump ()
PRIO_QUEUE_ENTRY &ent = (*iter);
DSRT_Dispatch_Item_var<DSRT_Scheduler_Traits>
item_var = ent.item ();
- /*
+ /*
int guid;
ACE_OS::memcpy (&guid,
item_var->guid ().get_buffer (),
item_var->guid ().length ());
- ACE_DEBUG ((LM_DEBUG, "(%t|%T):guid %d, thr_handle = %d\n",
+ ACE_DEBUG ((LM_DEBUG, "(%t|%T):guid %d, thr_handle = %d\n",
guid, item_var->thread_handle ()));
*/
++iter;
diff --git a/ACE/Kokyu/Default_Dispatcher_Impl.cpp b/ACE/Kokyu/Default_Dispatcher_Impl.cpp
index 8261486521c..f9971ecefcf 100644
--- a/ACE/Kokyu/Default_Dispatcher_Impl.cpp
+++ b/ACE/Kokyu/Default_Dispatcher_Impl.cpp
@@ -7,10 +7,6 @@
#include "Default_Dispatcher_Impl.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (Kokyu,
- Default_Dispatcher_Impl,
- "$Id$")
-
namespace Kokyu
{
@@ -42,7 +38,7 @@ Default_Dispatcher_Impl::init_i (const Dispatcher_Attributes& attrs)
//ACE_DEBUG ((LM_DEBUG, "task array auto_ptr set\n" ));
- ConfigInfoSet& config_set =
+ ConfigInfoSet& config_set =
const_cast<ConfigInfoSet&> (attrs.config_info_set_);
ConfigInfoSet::ITERATOR iter(config_set);
int i=0;
@@ -52,8 +48,8 @@ Default_Dispatcher_Impl::init_i (const Dispatcher_Attributes& attrs)
{
//ACE_DEBUG ((LM_DEBUG, "iter = %d\n", i));
Dispatcher_Task* task=0;
- ACE_NEW_RETURN (task,
- Dispatcher_Task (*config,
+ ACE_NEW_RETURN (task,
+ Dispatcher_Task (*config,
ACE_Thread_Manager::instance()),
-1);
auto_ptr<Dispatcher_Task> tmp_task_auto_ptr (task);
@@ -88,12 +84,12 @@ Default_Dispatcher_Impl::activate_i ()
Priority_t priority =
tasks_[i]->get_curr_config_info ().thread_priority_;
- if (this->tasks_[i]->activate (this->thr_creation_flags_,
+ if (this->tasks_[i]->activate (this->thr_creation_flags_,
1, 1, priority) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("EC (%P|%t) cannot activate queue.")
- ACE_TEXT ("Need superuser privilege to run in RT class\n")),
+ ACE_TEXT ("Need superuser privilege to run in RT class\n")),
-1);
}
}
@@ -130,7 +126,7 @@ Default_Dispatcher_Impl::dispatch_i (const Dispatch_Command* cmd,
Dispatcher_Task* task =
find_task_with_preemption_prio (qos_info.preemption_priority_);
- //@@VS - We should insert this into the lowest prio queue.
+ //@@VS - We should insert this into the lowest prio queue.
//How do we know that the last queue is the lowest prio queue.
if (task == 0)
task = tasks_[ntasks_-1].get ();
@@ -141,7 +137,7 @@ Default_Dispatcher_Impl::dispatch_i (const Dispatch_Command* cmd,
int
Default_Dispatcher_Impl::shutdown_i ()
{
- //This needs to be revisited based on mode transition and
+ //This needs to be revisited based on mode transition and
//consistent cut through the queues
//post shutdown command to all tasks
diff --git a/ACE/Kokyu/Dispatch_Deferrer.cpp b/ACE/Kokyu/Dispatch_Deferrer.cpp
index 6db734c8205..0716d5be243 100644
--- a/ACE/Kokyu/Dispatch_Deferrer.cpp
+++ b/ACE/Kokyu/Dispatch_Deferrer.cpp
@@ -11,7 +11,6 @@
#include "kokyu_config.h"
#include "kokyu_dsui_families.h"
#include <dsui.h>
-ACE_RCSID(Kokyu, Dispatch_Deferrer, "$Id$")
namespace Kokyu
{
@@ -68,7 +67,7 @@ Dispatch_Deferrer::handle_timeout (const ACE_Time_Value &,
//get all expired Dispatch_Queue_Items
ACE_Message_Block *begin,*end;
this->rgq_.remove_messages(begin,end,
- (u_int) (ACE_Dynamic_Message_Strategy::LATE |
+ (u_int) (ACE_Dynamic_Message_Strategy::LATE |
ACE_Dynamic_Message_Strategy::BEYOND_LATE));
//dispatch them back to Dispatcher_Impl
diff --git a/ACE/Kokyu/Dispatch_Deferrer.h b/ACE/Kokyu/Dispatch_Deferrer.h
index 6375ed1b865..16154402877 100644
--- a/ACE/Kokyu/Dispatch_Deferrer.h
+++ b/ACE/Kokyu/Dispatch_Deferrer.h
@@ -20,11 +20,10 @@
#include "Kokyu_defs.h"
#include "ace/Event_Handler.h"
#include "ace/Thread_Mutex.h"
-#include "ace/Synch_T.h"
#include "ace/Message_Block.h"
#include "ace/Message_Queue.h"
#include "ace/Reactor.h"
-#include "ace/Map.h"
+#include "ace/Map_T.h"
namespace Kokyu
{
diff --git a/ACE/Kokyu/Dispatcher_Impl.cpp b/ACE/Kokyu/Dispatcher_Impl.cpp
index 884cf2dceb2..1c21849004b 100644
--- a/ACE/Kokyu/Dispatcher_Impl.cpp
+++ b/ACE/Kokyu/Dispatcher_Impl.cpp
@@ -6,8 +6,6 @@
#include "Dispatcher_Impl.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, Dispatcher_Impl, "$Id$")
-
namespace Kokyu
{
diff --git a/ACE/Kokyu/Dispatcher_Task.cpp b/ACE/Kokyu/Dispatcher_Task.cpp
index c6e1ef9e3ba..c3df4c58466 100644
--- a/ACE/Kokyu/Dispatcher_Task.cpp
+++ b/ACE/Kokyu/Dispatcher_Task.cpp
@@ -9,8 +9,6 @@
#include "Dispatcher_Task.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, Dispatcher_Task, "$Id$")
-
namespace
//anonymous namespace - use this to avoid polluting the global namespace
{
@@ -97,8 +95,8 @@ Dispatcher_Task::svc (void)
while (!done)
{
- ACE_Message_Block *mb;
-
+ ACE_Message_Block *mb = 0;
+
if (this->getq (mb) == -1)
{
if (ACE_OS::last_error () == ESHUTDOWN)
diff --git a/ACE/Kokyu/Dispatcher_Task.inl b/ACE/Kokyu/Dispatcher_Task.inl
index e663509d86b..84ff1ee6017 100644
--- a/ACE/Kokyu/Dispatcher_Task.inl
+++ b/ACE/Kokyu/Dispatcher_Task.inl
@@ -52,8 +52,8 @@ Dispatch_Queue_Item::Dispatch_Queue_Item (
ACE_Data_Block *data_block,
int flags,
ACE_Allocator* mb_allocator)
- : ACE_Message_Block (data_block,
- flags,
+ : ACE_Message_Block (data_block,
+ flags,
mb_allocator),
command_ (cmd), qos_info_ (qos_info)
diff --git a/ACE/Kokyu/Kokyu.cpp b/ACE/Kokyu/Kokyu.cpp
index 999004dafc5..ff2a6605276 100644
--- a/ACE/Kokyu/Kokyu.cpp
+++ b/ACE/Kokyu/Kokyu.cpp
@@ -8,8 +8,6 @@
#include "Kokyu.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, Kokyu, "$Id$")
-
namespace Kokyu
{
diff --git a/ACE/Kokyu/Kokyu.h b/ACE/Kokyu/Kokyu.h
index 67cd6329c01..caa22af7f0b 100644
--- a/ACE/Kokyu/Kokyu.h
+++ b/ACE/Kokyu/Kokyu.h
@@ -35,7 +35,7 @@
//#################################################################
//Beware that this interface will be subject to change in the future
//since this is the very initial release. We will be working on
-//trying to merge the DSRT and EC mechanisms in the future. If you
+//trying to merge the DSRT and EC mechanisms in the future. If you
//are a user of this interface, kindly let us know so that we can
//coordinate with you when we refactor this interface.
//##################################################################
diff --git a/ACE/Kokyu/Kokyu.mpc b/ACE/Kokyu/Kokyu.mpc
index 592f7acd14b..58948a1731e 100644
--- a/ACE/Kokyu/Kokyu.mpc
+++ b/ACE/Kokyu/Kokyu.mpc
@@ -3,7 +3,7 @@
project(Kokyu) : acelib, ace_output, install {
sharedname = Kokyu
- dynamicflags = KOKYU_BUILD_DLL
+ dynamicflags += KOKYU_BUILD_DLL
Source_Files {
Dispatcher_Impl.cpp
@@ -13,12 +13,17 @@ project(Kokyu) : acelib, ace_output, install {
Kokyu_defs.cpp
}
+ Header_Files {
+ *.h
+ }
+
Template_Files {
Kokyu_dsrt.cpp
DSRT_Direct_Dispatcher_Impl_T.cpp
DSRT_Dispatcher_Impl_T.cpp
DSRT_Dispatch_Item_T.cpp
DSRT_Sched_Queue_T.cpp
+ DSRT_CV_Dispatcher_Impl_T.cpp
}
Pkgconfig_Files {
diff --git a/ACE/Kokyu/Kokyu_defs.cpp b/ACE/Kokyu/Kokyu_defs.cpp
index 8ba5c907429..4d2e59c54b9 100644
--- a/ACE/Kokyu/Kokyu_defs.cpp
+++ b/ACE/Kokyu/Kokyu_defs.cpp
@@ -6,8 +6,6 @@
#include "Kokyu_defs.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, Kokyu_defs, "$Id$")
-
namespace Kokyu
{
Dispatch_Command::~Dispatch_Command (void)
diff --git a/ACE/Kokyu/Kokyu_defs.h b/ACE/Kokyu/Kokyu_defs.h
index 721b87e522f..b854d241144 100644
--- a/ACE/Kokyu/Kokyu_defs.h
+++ b/ACE/Kokyu/Kokyu_defs.h
@@ -11,7 +11,7 @@
#ifndef KOKYU_DEFS_H
#define KOKYU_DEFS_H
#include /**/ "ace/pre.h"
-#include "ace/Array.h"
+#include "ace/Containers_T.h"
#include "ace/Time_Value.h"
#include "ace/Auto_Ptr.h"
#include "ace/Message_Block.h"
diff --git a/ACE/Kokyu/Kokyu_dsrt.cpp b/ACE/Kokyu/Kokyu_dsrt.cpp
index 31b3beec2a4..1965fffba6a 100644
--- a/ACE/Kokyu/Kokyu_dsrt.cpp
+++ b/ACE/Kokyu/Kokyu_dsrt.cpp
@@ -10,8 +10,6 @@
#include "Kokyu_dsrt.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Kokyu, Kokyu, "$Id$")
-
namespace Kokyu
{
@@ -70,23 +68,23 @@ create_DSRT_dispatcher (const DSRT_ConfigInfo& config_info)
switch (config_info.impl_type_)
{
case DSRT_OS_BASED:
- ACE_NEW_RETURN (tmp,
+ ACE_NEW_RETURN (tmp,
DSRT_Direct_Dispatcher_Impl<DSRT_Scheduler_Traits> (
- config_info.sched_policy_,
- config_info.sched_scope_),
+ config_info.sched_policy_,
+ config_info.sched_scope_),
0);
break;
case DSRT_CV_BASED:
default:
- ACE_NEW_RETURN (tmp,
+ ACE_NEW_RETURN (tmp,
DSRT_CV_Dispatcher_Impl<DSRT_Scheduler_Traits>(
- config_info.sched_policy_,
- config_info.sched_scope_),
+ config_info.sched_policy_,
+ config_info.sched_scope_),
0);
break;
}
-
+
ACE_ASSERT (tmp != 0);
ACE_NEW_RETURN (disp, DSRT_Dispatcher<DSRT_Scheduler_Traits>, 0);
disp->implementation (tmp);
@@ -138,10 +136,10 @@ operator ()(const QoSDescriptor& qos1,
const QoSDescriptor& qos2)
{
#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
"(%t|%T):qos1.importance = %d, qos2.importance = %d\n",
qos1.importance_, qos2.importance_));
-#endif
+#endif
if (qos1.importance_ > qos2.importance_)
{
diff --git a/ACE/Kokyu/Kokyu_dsrt.h b/ACE/Kokyu/Kokyu_dsrt.h
index c10d429e062..c2f202d34e0 100644
--- a/ACE/Kokyu/Kokyu_dsrt.h
+++ b/ACE/Kokyu/Kokyu_dsrt.h
@@ -13,10 +13,6 @@
#include /**/ "ace/pre.h"
#include "ace/Copy_Disabled.h"
-//#if !defined (ACE_LACKS_PRAGMA_ONCE)
-//# pragma once
-//#endif /* ACE_LACKS_PRAGMA_ONCE */
-
#include "kokyu_export.h"
#include "Kokyu_defs.h"
diff --git a/ACE/Kokyu/tests/DSRT_MIF/svc.conf b/ACE/Kokyu/tests/DSRT_MIF/svc.conf
index 247c85945d9..10cfe1d4bc1 100644
--- a/ACE/Kokyu/tests/DSRT_MIF/svc.conf
+++ b/ACE/Kokyu/tests/DSRT_MIF/svc.conf
@@ -1,4 +1,5 @@
-#
+# $Id$
+
dynamic DSRT_Scheduler_Impl Service_Object *
-Kokyu:_make_MIF_Scheduler_Impl()
+Kokyu:_make_MIF_Scheduler_Impl()
"-sched_scope thread -sched_policy fifo -min_importance 0 -max_importance 10" \ No newline at end of file
diff --git a/ACE/Kokyu/tests/EDF/test.cpp b/ACE/Kokyu/tests/EDF/test.cpp
index 0c6939ee613..f59596120a9 100644
--- a/ACE/Kokyu/tests/EDF/test.cpp
+++ b/ACE/Kokyu/tests/EDF/test.cpp
@@ -157,6 +157,6 @@ int parse_args (int argc, ACE_TCHAR *argv[])
"-p <fifo|rr|other>"),
-1);
}
- // Indicates sucessful parsing of the command line
+ // Indicates successful parsing of the command line
return 0;
}
diff --git a/ACE/Kokyu/tests/FIFO/test.cpp b/ACE/Kokyu/tests/FIFO/test.cpp
index deb25823a3b..daa2916166a 100644
--- a/ACE/Kokyu/tests/FIFO/test.cpp
+++ b/ACE/Kokyu/tests/FIFO/test.cpp
@@ -161,6 +161,6 @@ int parse_args (int argc, ACE_TCHAR *argv[])
"-p <fifo|rr|other>"),
-1);
}
- // Indicates sucessful parsing of the command line
+ // Indicates successful parsing of the command line
return 0;
}
diff --git a/ACE/Makefile.am b/ACE/Makefile.am
index 29fb2e2dbe8..d1b17b995c3 100644
--- a/ACE/Makefile.am
+++ b/ACE/Makefile.am
@@ -28,8 +28,7 @@ endif
SUBDIRS += \
@protocols@ \
websvcs \
- @KOKYU@ \
- @TAO@
+ @KOKYU@
ACLOCAL = @ACLOCAL@
ACLOCAL_AMFLAGS = -I m4
diff --git a/ACE/NEWS b/ACE/NEWS
index a021ceb6126..3875b9c4350 100644
--- a/ACE/NEWS
+++ b/ACE/NEWS
@@ -1,7 +1,293 @@
-PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
-===========================================================================
+USER VISIBLE CHANGES BETWEEN ACE-6.0.3 and ACE-6.0.4
+====================================================
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.2 and ACE-6.0.3
+====================================================
+
+. Added support for GCC 4.6
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.1 and ACE-6.0.2
+====================================================
+
+. The ACE_wrappers/ace/OS.h file has been restored in order to ensure
+ build-time compatibility with older ACE versions. Its use will still
+ cause your build to incur more processing time than using the needed
+ ace/OS_NS_*.h files; however, you should be able to build OS.h-including
+ code without needing to replace it with OS_NS_* includes.
+
+. Improved and simplified QNX support
+
+. Changed rand_r() and getpwnam_r() to conform Single UNIX Specification.
+
+. Fixed performance of send_v on windows when individual iovec elements
+ are particularly large.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.0 and ACE-6.0.1
+====================================================
+
+. Added support for MinGW with GCC 4.5
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.3 and ACE-6.0.0
+====================================================
+
+. Changed the string format produced by ACE::timestamp() from the ctime
+ format "Day Mon dd hh:mm:ss yyyy" to ISO-8601 yyyy-mm-dd hh:mm:ss.mmmmmm.
+ This makes the time easier to collate and removes any dependence on locale.
+ The change affects the output from ACE_Log_Msg's %D format and both VERBOSE
+ and VERBOSE_LIGHT timestamps in addition to application-made direct calls
+ to ACE::timestamp().
+
+. Removed GCC < 3 support
+
+. A new build system hook was added for users to include site-private rules
+ in a build. If a file named "rules.private.GNU" in located in any build
+ directory it will get included from
+ $ACE_ROOT/include/makeinclude/rules.local.GNU. The "private_rules_file"
+ make variable can be set to override the name and/or location of the file.
+ If no such rules file exists, its absence is silently ignored. This
+ facility can be used, for example, to integrate a specialized code checker
+ into the build process.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.2 and ACE-5.8.3
+====================================================
+
+. Two new methods were added to ACE_Pipe: close_read() and close_write().
+ These methods can be used to close individual pipe handles.
+
+. The ACE::handle_ready() family of methods was changed to prefer using
+ poll() over select() on platforms where poll() is available. This
+ preference was previously only used if ACE_HAS_LIMITED_SELECT was set.
+ The ACE_HAS_LIMITED_SELECT choice is removed, making ACE_HAS_POLL the
+ setting that switches this preference. The driving reason for this
+ is that if select() is called to detect changes on a handle whose
+ values falls outside that which can safely be stored in an fdset,
+ the handle-setting macros/functions will set/clear bits outside
+ of the fdset. This results in very weird memory changes, often in
+ the stack, which are very hard to diagnose. poll()'s operation
+ does not suffer from this affect. With the growing use of large
+ numbers of handles and use of ACE_Dev_Poll_Reactor on Linux,
+ the rate at which this problem was cropping up was increasing.
+
+. Added a simple helper ACE::is_equal() which compares equality of two
+ objects without using operator==. This is useful for comparing floating
+ point values.
+
+. Removed all deprecated methods, arguments, files, classes, macros and
+ anything else we kept for years.
+
+. Removed Irix/Tru64/SCO/Uniware/Cray support
+
+. ACE_Pair has been removed. Users should now use std::pair.
+
+. This is the last micro release that will work with GCC < 3, after x.8.3
+ support for GCC < 3 will be removed
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.1 and ACE-5.8.2
+====================================================
+
+. Added support for the Microsoft Visual Studio 2010 IDE (vc10)
+
+. Removed complete support for emulated C++ exceptions
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.0 and ACE-5.8.1
+====================================================
+
+. Added support for Microsoft Visual Studio 2010 using nmake
+
+. Reduced the amount of doxygen pages generated, the original settings caused
+ a doxygen generated html package of 1.4GB which was way too large
+
+. Extended ACE INet addon library with:
+ * HTTP Basic Authentication
+ * SSL/HTTPS support.
+ * Proxy CONNECT tunneling.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.9 and ACE-5.8.0
+====================================================
+
+. There are two new ACE_Time_Value methods for getting and setting millisecond
+ values to/from ACE_UINT64 values:
+
+ ACE_UINT64 ACE_Time_Value::get_msec () const
+ void ACE_Time_Value::set_msec (const ACE_UINT64 &ms)
+
+ The former is a replacement for the existing msec(ACE_UINT64&) methods that
+ are "getter" methods whose signatures look confusingly like "setters". See
+ Bugzilla #3336 for the history behind this change.
+
+ The latter is for consistency and clarity.
+
+. Added ACE INet addon library for Inet protocol clients (and possibly
+ servers at some point) like http://, ftp:// etc.
+ The library implements standard C++ iostream wrapper classes for
+ ACE Svc_Handler and Reactor based input/output handling, URL classes
+ and protocol handler classes.
+ NOTE: This is work in progress! There is no guarentee that the API
+ won't change in the next few releases.
+ Protocol handling is currently restricted to client side download
+ requests for HTTP and FTP.
+ Handling for upload requests should be added in the near future as well
+ as HTTP Basic Authentication.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.8 and ACE-5.7.9
+====================================================
+
+. ACE's default makefiles (traditional ACE/GNU, not autoconf/automake)
+ now support installation with "make install".
+ Please see the ACE-INSTALL.html file for instructions.
+
+. Support for the ARCH make variable has been enhanced to apply to executables
+ (in addition to libraries and object files), and the ARCH feature has been
+ integrated into the MPC-generated makefiles (to work with MPC's requires
+ and avoids features).
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.7 and ACE-5.7.8
+====================================================
+
+. ACE now uses GCC builtin Atomic instructions for short,
+ unsigned short, long, unsigned long, int, unsigned int,
+ and bool. This makes our Atomic_Op around 7 times faster
+
+. ACE Service Configuration Framework now process first service
+ configuration files and then command-line directives. Thus if
+ application uses both service configuration files and command-line
+ directives then the command-line directives may override results of
+ directives in the configuration files. At the same time if the
+ application uses only the default svc.conf file and command-line
+ directives then the directives from svc.conf can not override
+ results of the user provided command-line directives.
+
+. ACE_Dev_Poll_Reactor now dispatches notifications in only one thread at
+ a time. This brings notification handling more in line with behavior in
+ other Reactor implementations.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.6 and ACE-5.7.7
+====================================================
+
+. Integrated fix for bug 3104 and regression test for
+ interval timers.
+
+. Added support for GCC builtin Atomic instructions which
+ are enabled with GCC >= 4.1 for PPC32/PPC64/IA64
+
+. Improved autoconf support for debian
+
+. Added support for -mcpu and -mtune. Add TCPU=.. to your
+ environment/platform_macros.GNU to specify you cpu and
+ than add cpumodelflag=1 and/or tunemodelflag=1. Using
+ this with IBM Cell increased the performance significantly
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.5 and ACE-5.7.6
+====================================================
+
+. Added support for iPhone/iPod Touch/iPad. The following
+ environment variables are needed:
+
+ IPHONE_TARGET, should be set to either SIMULATOR or
+ HARDWARE. Set to HARDWARE if you want to deploy
+ on the iPhone/iPod Touch/iPad device.
+
+ IPHONE_VERSION, should be set to 3.1.2 or 3.2. One can
+ set the version to any future or past versions, but
+ only 3.1.2 and 3.2 have been tried.
+
+ Note that one has to compile ACE/TAO statically as
+ it is believed that the iPhone OS does not support
+ dynamic loading of external libraries. The usual
+ procedure of cross compiling ACE/TAO applies
+ (such as setting HOST_ROOT environment variable).
+
+. Added support for Embarcadero C++ Builder 2010
+
+. Added option to print a given ACE_Time_Value in the log
+ message instead of system supplied timestamp as in %T
+ and %D.
+ The option is implemented as a variant of the %D/%T
+ options by using the '#' flag character like '%#D' or
+ '%#T'. When using this flag an ACE_Time_Value pointer is
+ expected in the argument list supplied with the log message.
+ This fixed Bugzilla #3221.
+
+. Fixed problems with ACE_INET_Addr::is_multicast() on
+ little endian platforms. This fixed bugzilla #3729.
+
+. Added compilation support for VxWorks 6.8, no runtime
+ testing has been performed
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.4 and ACE-5.7.5
+====================================================
+
+. Added MacOSX Snow Leopard support
+
+. Added strsignal() wrapper
+
+. Improved LynxOS support
+
+. Updated Interix port
+
+. Fixed MinGW compilation problems
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.3 and ACE-5.7.4
+====================================================
+
+. ACE_CDR::consolidate now returns an int, 0 is ok, -1 is failure
+
+. Fixed a bug in the realclean feature of the GNU makefiles
+
+. Improved Sun Studio for Linux support
+
+. Improved OpenBSD support
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.2 and ACE-5.7.3
+====================================================
+
+. C++ Builder 2009 Update 3 is the only C++Builder that is supported, older
+ and newer compilers are not supported anymore
+
+. Made final changes for the CEGCC port
+
+. Added a set of tests to validate C++ compiler and the stl implementation
+ they ship.
+
+. HP-UX PARISC aCC < 3.80 are deprecated and can't be used anymore. Upgrade
+ to aCC 3.80 or newer
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.1 and ACE-5.7.2
+====================================================
+
+. Borland C++ makefiles aren't shipped anymore as part of the release
+ but have to be generated by the user
+
+. Refactored gperf to have its own shared library so that we can reuse
+ that in TAO
+
+. Added support for SuSE Enterprise 10
+
+. ACE_Configuration_Heap::open() now returns -1 with errno EBUSY if it is
+ called multiple times. Previous versions would allow multiple calls to
+ open() but leak resources.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.0 and ACE-5.7.1
+====================================================
+
+. Added support for Sun Studio 12 Update Pack 1
+
+. Fixed compile problems when using Windows CE x86 release mode
+
+. Fixed compile problems for FreeBSD
+
+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
-. RPM packaging as part of the release process by the doc_group (Remedy and user community)
+. 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 17109a408ec..10075bfd34a 100644
--- a/ACE/PROBLEM-REPORT-FORM
+++ b/ACE/PROBLEM-REPORT-FORM
@@ -1,6 +1,7 @@
[Please use the PRF form below to submit bug reports, problem reports,
- etc., to the ACE developers and interested users. Send to
- ace-bugs@cs.wustl.edu. If you are using OCI, PrismTech, or
+ etc., to the ACE developers and interested users. Send it to
+ ace-bugs@list.isis.vanderbilt.edu, you must be subscribed to the list
+ in order to be able to post to it. If you are using OCI, PrismTech, or
Riverace's versions of ACE do not send bugs to this mailing list, but
instead contact those companies for support. Please also send your
PRF as plain ASCII text, _not_ uuencoded or as an attachment.
@@ -15,12 +16,8 @@
browse bugzilla and the ChangeLog files to find out if your problem
has been solved in a more recent version of ACE.
- To ensure that you see responses, please do one of the following:
-
- 1) Subscribe to the ace-bugs mail list, by sending email with
- contents "subscribe ace-bugs" to majordomo@cs.wustl.edu.
-
- 2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
+ To subscribe to the list see
+ http://www.cs.wustl.edu/~schmidt/ACE-mail.html
Replace/remove all the explanatory text in brackets before mailing.
@@ -40,10 +37,10 @@
8<----------8<----------8<----------8<----------8<----------8<----------8<----
-To: ace-bugs@cs.wustl.edu
+To: ace-bugs@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- ACE VERSION: 5.6.9
+ ACE VERSION: 6.0.3
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
@@ -60,6 +57,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/Release b/ACE/Release
deleted file mode 100644
index 485f4a51eab..00000000000
--- a/ACE/Release
+++ /dev/null
@@ -1,210 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Top-level Makefile for the ACE toolkit libraries, tests, and
-# applications
-#----------------------------------------------------------------------------
-
-#### NOTE: The following comments describe how to create kits.
-#### It's intended for use by ACE+TAO developers and
-#### maintainers only. ACE+TAO users need not be concerned
-#### with creating kits, just unpacking and using them.
-
-#### The "release" and "releaseall" targets can be used to create
-#### the ACE and ACE+TAO kits. By default, each creates a new beta
-#### release. To create a new minor or major release, add REL=minor
-#### or REL=major, respectively, to the make invocation.
-####
-#### NOTE: the REL modifier applies to _both_ ACE and TAO in
-#### releaseall!
-####
-#### To create a new ACE minor release and a TAO beta release:
-#### % make release REL=minor
-#### % cd TAO
-#### % make release
-####
-#### There are some other release/releaseall options [default value is in
-#### brackets]:
-#### ACE_TAG [ACE version in your workspace]: prepend tag with -ta
-#### TAO_TAG [TAO version in your workspace]: prepend tag with -tt
-####
-#### NOTE: the ACE and TAO versions will be updated automatically
-#### by release/releaseall. ACE_TAG and TAO_TAG can be overridden
-#### to kit a particular version.
-####
-#### APPLY_NEW_TAG [enabled]: set to null to disable
-#### CHECK [disabled]: set to -n to see what make_release will do, but not
-#### do it
-#### INSTALL_KIT [enabled]: set to null to not install in public
-#### ftp/http directory on host ace
-#### REL [beta]: set to minor or major, optionally, when applying a new tag
-#### ZIP_FILES [enabled]: set to -z to disable creation of .zip files
-####
-#### Example creation of ACE-only kit, version ACE-5_0_1 from current
-#### workspace:
-#### make release ACE_TAG='-ta ACE-5_0_1' APPLY_NEW_TAG= \
-#### INSTALL_KIT= ZIP_FILES=-z
-
-
-CONTROLLED_FILES = \
- ACE-INSTALL.html \
- ASNMP \
- AUTHORS \
- COPYING \
- ChangeLog* \
- FAQ \
- Release \
- NEWS \
- ACE.mwc \
- Makefile.am \
- PROBLEM-REPORT-FORM \
- README \
- THANKS \
- VERSION \
- ACEXML \
- ace \
- apps \
- bin \
- configure.ac \
- debianbuild \
- lib \
- MPC \
- docs \
- etc \
- examples \
- include \
- m4 \
- netsvcs \
- performance-tests \
- rpmbuild \
- tests \
- Kokyu \
- protocols \
- websvcs \
- contrib
-
-RELEASE_FILES = \
- $(addprefix ACE_wrappers/,$(CONTROLLED_FILES)) \
- ACE_wrappers/GNUmake* \
- ACE_wrappers/*.sln \
- ACE_wrappers/*.bmak \
- ACE_wrappers/*.vcw \
- ACE_wrappers/Makefile.in \
- ACE_wrappers/configure \
- ACE_wrappers/aclocal.m4 \
- ACE_wrappers/aux_config
-
-
-ALL_RELEASE_FILES = \
- $(RELEASE_FILES) \
- ACE_wrappers/TAO
-
-RELEASE_LIB_FILES = \
- ACE_wrappers/VERSION \
- ACE_wrappers/ace \
- ACE_wrappers/bin \
- ACE_wrappers/lib \
- ACE_wrappers/etc \
- ACE_wrappers/include \
- ACE_wrappers/m4 \
- ACE_wrappers/netsvcs \
- ACE_wrappers/tests \
- ACE_wrappers/websvcs
-
-# Files that should get tagged at release time but shouldn't be in any
-# of the release file lists since they may already be in a directory
-# found in those lists.
-RELEASE_TAG_FILES = \
- html
-
-.PHONY: tag ACE TAO CIAO acesources taosources ciaosources
-.PHONY: allsources manpages all
-
-# Some useful defines which are used to create the release bundle.
-ACE_TAG_VALUE = $(shell head -1 VERSION | perl -ne \
- 's/.* ([\d\.]+),.*\n/$$1/; tr/./_/; print "ACE-$$_";')
-ACE_TAG = -ta $(ACE_TAG_VALUE)
-TAO_TAG_VALUE = $(shell head -1 TAO/VERSION | perl -ne \
- 's/.* ([\d\.]+),.*\n/$$1/; tr/./_/; print "TAO-$$_";')
-TAO_TAG = -tt $(TAO_TAG_VALUE)
-CIAO_TAG_VALUE = $(shell head -1 TAO/CIAO/VERSION | perl -ne \
- 's/.* ([\d\.]+),.*\n/$$1/; tr/./_/; print "CIAO-$$_";')
-CIAO_TAG = -tc $(CIAO_TAG_VALUE)
-APPLY_NEW_TAG = tag
-CHECK =
-INSTALL_KIT = -i
-REL = beta
-MAKE = make -f Release
-ZIP_FILES =
-
-tag:
- @$(ACE_ROOT)/bin/make_release $(CHECK) -k ace -v $(REL) -u
-
-#### The allsources target:
-allsources: $(APPLY_NEW_TAG)
- @cd TAO && $(MAKE) -s allsources REL=$(REL)
-
-### Generate man pages
-manpages:
- @$(ACE_ROOT)/bin/generate_rel_manpages
-
-#### Generate everything in one shot -- not recommended
-all: allsources manpages
-
-#################################################################
-#### The following targets in the following block are used by the
-#### targets defined above. Please do not invoke them directly.
-#################################################################
-
-#### The release target creates the ACE (only) kit. This is not supposed
-#### to be used directly. Use make -f Release ACE instead.
-acesources: $(APPLY_NEW_TAG)
- @$(ACE_ROOT)/bin/make_release -k ace $(ACE_TAG) \
- $(INSTALL_KIT) $(ZIP_FILES) $(CHECK)
-
-#### The following target is for use by the TAO Release target. It
-#### should not be called directly from the command line. This is
-#### invoked by the TAO target this Release file.
-taosources:
- @$(ACE_ROOT)/bin/make_release -k ace+tao $(ACE_TAG) $(TAO_TAG) \
- $(INSTALL_KIT) $(ZIP_FILES) $(CHECK)
-
-#### The following target is for use by the TAO Release target. It
-#### should not be called directly from the command line. This is
-#### invoked by the TAO target this Release file.
-ciaosources:
- @$(ACE_ROOT)/bin/make_release -k ace+tao+ciao $(ACE_TAG) $(TAO_TAG) $(CIAO_TAG) \
- $(INSTALL_KIT) $(ZIP_FILES) $(CHECK)
-
-#########################################################################
-## The following targets are a matter of convinience. We don't
-## believe that we ever will release ACE+TAO+CIAO seperately. If that
-## happens then we have these to help us out.
-#########################################################################
-# First, CIAO standalone
-CIAO: $(allsources)
-
-# TAO standalone
-TAO: $(APPLY_NEW_TAG)
- @cd TAO && $(MAKE) -s TAO REL=$(REL)
-
-# ACE standalone
-ACE: $(APPLY_NEW_TAG)
- $(MAKE) -s acesources REL=$(REL)
-
-
-.PHONY: show_controlled_files show_release_files show_release_lib_files
-.PHONY: show_release_tag_files
-
-show_controlled_files:
- @echo $(CONTROLLED_FILES)
-
-show_release_files:
- @echo $(RELEASE_FILES)
-
-show_release_lib_files:
- @echo $(RELEASE_LIB_FILES)
-
-show_release_tag_files:
- @echo $(RELEASE_TAG_FILES)
-
diff --git a/ACE/THANKS b/ACE/THANKS
index ba3d67a097d..d4312c154ab 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
@@ -168,7 +168,7 @@ Jean-Francois Ripouteau <Jean-Francois dot Ripouteau at netsurf dot org>
Ajit Sagar <asagar at spdmail dot spd dot dsccc dot com>
Ashish Singhai <singhai at delirius dot cs dot uiuc dot edu>
David Sames <David dot L dot Sames dot 1 at gsfc dot nasa dot gov>
-Gonzalo Diethelm <gonzalo dot diethelm at aditiva dot com>
+Gonzalo Diethelm <gdiethelm at dcv dot cl>
Raj <raj at itd dot ssb dot com>
Darrin Edelman <darrin at aetherworks dot com>
Steve Weismuller <spweismu at rsoc dot rockwell dot com>
@@ -411,7 +411,7 @@ Andrew Harbick <aharbick at opentext dot com>
Pavel Motuzenko <p_motuzenko at hotmail dot com>
Ross J. Lillie <lillie at rsch dot comm dot mot dot com>
Sam Hauer <shauer at nmo dot gtegsc dot com>
-Frank J. Hodum <fhodum at dctd dot saic dot com>
+Frank J. Hodum <FRANK.J.HODUM at saic dot com>
David Miron <dxm at crapper dot dsto dot defence dot gov dot au>
Anton van Straaten <anton at appsolutions dot com>
Joe Covalesky <joe at nowsol dot com>
@@ -776,7 +776,6 @@ Philipp Slusallek <slusallek at graphics dot stanford dot edu>
Matthew Davis <matthew dot davis at solers dot com>
Janusz Stopa <jstopa at bear dot com>
Rusty Conover <rconover at zootweb dot com>
-Alex Mintz <amintz at bear dot com>
Phillippe Merle <Philippe dot Merle at lifl dot fr>
Mark Winrock <mwinrock at nortelnetworks dot com>
Boris Kaminer <boris_kaminer at mail dot ru>
@@ -1069,7 +1068,7 @@ Giovanni Zito <gzito at mbox dot thunder dot it>
Matthew Adams <madams at bexusa dot com>
Sameer Schabungbam <schabungbam at hss dot hns dot com>
Jeff Butler <jeff at panasas dot com>
-Roland Rüdenauer <roland dot ruedenauer at freenet dot de>
+Roland R�denauer <roland dot ruedenauer at freenet dot de>
John Buckman <john at lyris dot com>
Guy Rosen <grosen at bigfoot dot com>
<amoderni at viasoft dot com>
@@ -1963,7 +1962,7 @@ Arto Jalkanen <ajalkane at gmail dot com>
Scott Zionic <sz at finsatconsulting dot com>
Diana Ukleja <Diana_Ukleja at raytheon dot com>
Shaun Cooley <scooley4241 at hotmail dot com>
-Aapo Mäkinen <aapo dot makinen at firstbeattechnologies dot com>
+Aapo M�kinen <aapo dot makinen at firstbeattechnologies dot com>
Matt Emerson <mjemerson at isis dot vanderbilt dot edu>
Sean Parker <supinlick at yahoo dot com>
Mark Wilson <mwil at lle dot rochester dot edu>
@@ -2009,7 +2008,7 @@ Timothy Wayne Gomez <gomezt at saic dot com>
Ventimiglia Chere <Ventimiglia_Chere at emc dot com>
Frederick Heckel <fwph at cse dot wustl dot edu>
Ian Zagorskih <ianzag at megasignal dot com>
-Olivier Guérin <guerin35 at hotmail dot com>
+Olivier Gu�rin <guerin35 at hotmail dot com>
Abdel Rigumye <rigumyea at ociweb dot com>
James Damour <james dot damour at request dot com>
Alan Anderson <Alan dot Anderson at sdsmt dot edu>
@@ -2165,7 +2164,7 @@ Ray Lischner <rlischner at proteus-technologies dot com>
Sergey Kosenko <sergey dot kosenko at gmail dot com>
Pavel Zaichenko <zpf at ivl dot ua>
Paul Riley <paul at riley dot net>
-Nelson Filipe Ferreira Gonçalves <ngoncalves at isr dot ist dot utl dot pt>
+Nelson Filipe Ferreira Gon�alves <ngoncalves at isr dot ist dot utl dot pt>
Harry Goldschmitt <harry at hgac dot com>
Sail Zeng <sailzeng at tencent dot com>
Markus Henschel <m dot henschel at bally-wulff dot de>
@@ -2221,7 +2220,7 @@ Hayim Shaul <hayim at iportent dot com>
Erman Balcik <erman dot balcik at siemens dot com>
Torsten Saliwada <sally at gmx dot net>
Nathan Glasser <nglasser at cantata dot com>
-Grégor Boirie <gregor dot boirie at free dot fr>
+Gr�gor Boirie <gregor dot boirie at free dot fr>
Alex Solan <alex dot solan at gmail dot com>
Venkat Sidhabathuni <venkats at idengines dot com>
Nathan Ernst <Nathan dot Ernst at citadelgroup dot com>
@@ -2250,7 +2249,7 @@ Ittehad Shaikh <ishaikh at verivue dot com>
Michael Doubez <michael dot doubez at gmail dot com>
Namrata Gandhi <...>
Michael Guntli <michael dot guntli at leica-geosystems dot com>
-Frank Förster <F dot Forster at herts dot ac dot uk>
+Frank F�rster <F dot Forster at herts dot ac dot uk>
Roger Leblanc <rog dot leblanc at gmail dot com>
Bob Fiske <Robert dot Fiske at ironmountain dot com>
Julien Vintrou <vintrouj at gmail dot com>
@@ -2286,6 +2285,74 @@ 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>
+Brendan Murphy <brendan dot murphy at euro dot apple dot com>
+Ryan Carmichael <RCarmichael at drs-tem dot com>
+Koh Onishi <k_onishi at mtj dot biglobe dot ne dot jp>
+Markus Gaugusch <markus at gaugusch dot at>
+Annette Wilson <awilson at raytheonvtc dot com>
+Sharon Mizrahi <sharon dot mizrahi at gmail dot com>
+William Glenn <wglenn at scires dot com>
+Christian Ehrlicher <Ch dot Ehrlicher at gmx dot de>
+Hui Zhang <zhanghui9527 at gmail dot com>
+Marijke Hengstmengel <mhengstmengel at remedy dot nl>
+Christian Freund <freund at wrz dot de>
+Chris Shaw <google at cshaw-tech dot co dot uk>
+Matthew Carter <r_q_einstein-acetaobugs at yahoo dot com>
+Denis Budko <denis dot budko at remedy dot nl>
+Gaurav Kulshreshtha <gaurav dot kulshreshtha at onmobile dot com>
+Wolfgang Pickartz <Wolfgang dot Pickartz at procom.de>
+Joost Kraaijeveld <J dot Kraaijeveld at Askesis dot nl>
+Pau Garcia i Quiles <pgquiles at elpauer dot org>
+Sail Zeng <sailzeng at tencent dot com>
+Dirk Bonekaemper <dirk dot bonekaemper at dfs dot de>
+Sreejith <sreejithsmadhavan at gmail dot com>
+Guillaume Lahaye <Guillaume dot Lahaye at nuance dot com>
+Andrew Kaplan <alexande dot kaplan at tafcorp dot com>
+Alexander Mintz <alexande dot mintz at tafcorp dot com>
+Jennifer Kahng <jennifer dot kahng at lmco dot com>
+Trent Nadeau <Trent dot Nadeau at ngc dot com>
+Nick Meyer <nick dot meyer at sensis dot com>
+Olivier Langlois <olivier at olivierlanglois dot net>
+Patrick Soboljew <patrick dot soboljew at gmail dot com>
+Tim Pinkawa <tpinkawa at eagleseven dot com>
+Ed Blackmond <ed dot blackmond at themis dot com>
+Dave <dwh0403 at 163 dot com>
+Inma Perea <inma dot perea dot fdz at gmail dot com>
+David Ward <dpward at mit dot edu>
+Anatoli Sakhnik <sakhnik at gmail dot com>
+Max Zhou <earthdog at 126 dot com>
+Daynesh Mangal <daynesh at gmail dot com>
+Robert Shectman <shectman at llnl dot gov>
+Rafi <rafi dot net at gmail dot com>
+Kannan Ramaswamy <kannan dot ramaswamy at cogcap dot com>
+Brian Johnson <johnsonb at ociweb dot com>
+Catherine L. Paquin <catherine dot paquin at ngc dot com>
+Susan Finster <sfinster at daetwyler-rd dot com>
+Frank Preischl <Frank dot Preischl at ids dot de>
+Matthew Waller <matthewrwaller at gmail dot com>
+Elez <elezsh at gmail dot com>
+Ranjit Hande <hande at avaya dot com>
+Van Vuong <vanvuong1 at us dot ibm dot com>
+Mark <markg85 at gmail dot com>
+Wendsomde Yameogo <wendsomde at yameogo dot com>
+Shi John <John dot Shi at acxiom dot com>
+Helmut Böing
+Andrew Hill <lists at thefrog dot net>
+Henk Jan Priester <hjpriester at gmail dot com>
+Glenn Zickert <gzickert at comcast dot net>
+Chris Galli <christian dot galli at gmail dot com>
+Laura Autón García <darklulu+ace at gmail dot com>
+Jonathan Saxton <jsaxton at appsecinc dot com>
+Remko Duppen <remko dot duppen at syntel dot nl>
+Paul Fitzpatrick <paul at robotrebuilt dot com>
+Chad Beaulac <chad dot beaulac at objectivesolutions dot com>
+Jochen Meier <gesammeltimusenet2009 at arcor dot de>
I would particularly like to thank Paul Stephenson, who worked with me
at Ericsson in the early 1990's. Paul devised the recursive Makefile
@@ -2306,6 +2373,7 @@ hear about it. Please see the instructions in
$ACE_ROOT/PROBLEM-REPORT-FORM
$TAO_ROOT/PROBLEM-REPORT-FORM
$CIAO_ROOT/PROBLEM-REPORT-FORM
+$DANCE_ROOT/PROBLEM-REPORT-FORM
for instructions on submitting suggestions or fixes.
diff --git a/ACE/VERSION b/ACE/VERSION
index 0bedd2e9e72..d745e62929c 100644
--- a/ACE/VERSION
+++ b/ACE/VERSION
@@ -1,11 +1,8 @@
-This is ACE version 5.6.9, released Tue Apr 14 10:06:19 CDT 2009
+This is ACE version 6.0.3, released Thu Jun 23 13:46:08 CEST 2011
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
-found in the file PROBLEM-REPORT-FORM. To ensure that you see responses,
-please do one of the following:
+e-mail to the ACE mailing list (ace-bugs@list.isis.vanderbilt.edu),
+using the form found in the file PROBLEM-REPORT-FORM. In order
+to post to the list you must subscribe to it.
- 1) Subscribe to the ace-users mail list, by sending email with
- contents "subscribe ace-users" to majordomo@cs.wustl.edu.
-
- 2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
+See http://www.cs.wustl.edu/~schmidt/ACE-mail.html
diff --git a/ACE/ace/ACE.cpp b/ACE/ace/ACE.cpp
index 12a55194c3d..0d469b76357 100644
--- a/ACE/ace/ACE.cpp
+++ b/ACE/ace/ACE.cpp
@@ -25,26 +25,16 @@
#include "ace/OS_TLI.h"
#include "ace/Truncate.h"
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-extern "C" int maxFiles;
-#endif /* ACE_VXWORKS */
-
#if !defined (__ACE_INLINE__)
#include "ace/ACE.inl"
#endif /* __ACE_INLINE__ */
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+#if defined (ACE_HAS_POLL)
# include "ace/OS_NS_poll.h"
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-
-
-ACE_RCSID (ace,
- ACE,
- "$Id$")
-
+#endif /* ACE_HAS_POLL */
// Open versioned namespace, if enabled by the user.
- ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE
{
@@ -94,10 +84,6 @@ ACE::out_of_handles (int error)
#elif defined (__OpenBSD__)
// OpenBSD appears to return EBADF.
error == EBADF ||
-#elif defined (__sgi) // irix
- error == ENOTSUP ||
-#elif defined (DIGITAL_UNIX) // osf1
- error == ENOTSUP ||
#endif /* ACE_WIN32 */
error == ENFILE)
return 1;
@@ -163,6 +149,13 @@ ACE::compiler_beta_version (void)
#endif
}
+ACE_TCHAR
+ACE::nibble2hex (u_int n)
+{
+ // Yes, this works for UNICODE
+ return ACE_TEXT ("0123456789abcdef")[n & 0x0f];
+}
+
bool
ACE::debug (void)
{
@@ -651,8 +644,7 @@ ACE::recv_n_i (ACE_HANDLE handle,
errno == EWOULDBLOCK)
{
// Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_read_ready (handle,
- timeout);
+ int const rtn = ACE::handle_read_ready (handle, timeout);
// Did select() succeed?
if (rtn != -1)
@@ -713,8 +705,7 @@ ACE::t_rcv_n_i (ACE_HANDLE handle,
if (errno == EWOULDBLOCK)
{
// Wait for the blocking to subside.
- int result = ACE::handle_read_ready (handle,
- 0);
+ int const result = ACE::handle_read_ready (handle, 0);
// Did select() succeed?
if (result != -1)
@@ -771,8 +762,7 @@ ACE::t_rcv_n_i (ACE_HANDLE handle,
errno == EWOULDBLOCK)
{
// Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_read_ready (handle,
- timeout);
+ int const rtn = ACE::handle_read_ready (handle, timeout);
// Did select() succeed?
if (rtn != -1)
@@ -832,8 +822,7 @@ ACE::recv_n_i (ACE_HANDLE handle,
if (errno == EWOULDBLOCK)
{
// Wait for the blocking to subside.
- int result = ACE::handle_read_ready (handle,
- 0);
+ int const result = ACE::handle_read_ready (handle, 0);
// Did select() succeed?
if (result != -1)
@@ -888,8 +877,7 @@ ACE::recv_n_i (ACE_HANDLE handle,
errno == EWOULDBLOCK)
{
// Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_read_ready (handle,
- timeout);
+ int const rtn = ACE::handle_read_ready (handle, timeout);
// Did select() succeed?
if (rtn != -1)
@@ -927,8 +915,8 @@ ssize_t
ACE::recv (ACE_HANDLE handle, size_t n, ...)
{
va_list argp;
- int total_tuples = static_cast<int> (n / 2);
- iovec *iovp;
+ int const total_tuples = static_cast<int> (n / 2);
+ iovec *iovp = 0;
#if defined (ACE_HAS_ALLOCA)
iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
#else
@@ -945,7 +933,7 @@ ACE::recv (ACE_HANDLE handle, size_t n, ...)
iovp[i].iov_len = va_arg (argp, int);
}
- ssize_t result = ACE_OS::recvv (handle, iovp, total_tuples);
+ ssize_t const result = ACE_OS::recvv (handle, iovp, total_tuples);
#if !defined (ACE_HAS_ALLOCA)
delete [] iovp;
#endif /* !defined (ACE_HAS_ALLOCA) */
@@ -985,14 +973,10 @@ ACE::recvv_n_i (ACE_HANDLE handle,
size_t &bytes_transferred = bt == 0 ? temp : *bt;
bytes_transferred = 0;
- for (int s = 0;
- s < iovcnt;
- )
+ for (int s = 0; s < iovcnt; )
{
// Try to transfer as much of the remaining data as possible.
- ssize_t n = ACE_OS::recvv (handle,
- iov + s,
- iovcnt - s);
+ ssize_t n = ACE_OS::recvv (handle, iov + s, iovcnt - s);
// Check EOF.
if (n == 0)
return 0;
@@ -1004,8 +988,7 @@ ACE::recvv_n_i (ACE_HANDLE handle,
if (errno == EWOULDBLOCK)
{
// Wait for the blocking to subside.
- int result = ACE::handle_read_ready (handle,
- 0);
+ int const result = ACE::handle_read_ready (handle, 0);
// Did select() succeed?
if (result != -1)
@@ -1053,28 +1036,21 @@ ACE::recvv_n_i (ACE_HANDLE handle,
int val = 0;
ACE::record_and_set_non_blocking_mode (handle, val);
- for (int s = 0;
- s < iovcnt;
- )
+ for (int s = 0; s < iovcnt; )
{
// Try to transfer as much of the remaining data as possible.
// Since the socket is in non-blocking mode, this call will not
// block.
- ssize_t n = ACE_OS::recvv (handle,
- iov + s,
- iovcnt - s);
+ ssize_t n = ACE_OS::recvv (handle, iov + s, iovcnt - s);
// Check for errors.
- if (n == 0 ||
- n == -1)
+ if (n == 0 || n == -1)
{
// Check for possible blocking.
- if (n == -1 &&
- errno == EWOULDBLOCK)
+ if (n == -1 && errno == EWOULDBLOCK)
{
// Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_read_ready (handle,
- timeout);
+ int const rtn = ACE::handle_read_ready (handle, timeout);
// Did select() succeed?
if (rtn != -1)
@@ -1235,7 +1211,8 @@ ACE::send (ACE_HANDLE handle,
return -1;
else
{
- ssize_t bytes_transferred = ACE_OS::send (handle, (const char *) buf, n, flags);
+ ssize_t const bytes_transferred =
+ ACE_OS::send (handle, (const char *) buf, n, flags);
ACE::restore_non_blocking_mode (handle, val);
return bytes_transferred;
}
@@ -1260,7 +1237,8 @@ ACE::t_snd (ACE_HANDLE handle,
return -1;
else
{
- ssize_t bytes_transferred = ACE_OS::t_snd (handle, (const char *) buf, n, flags);
+ ssize_t const bytes_transferred =
+ ACE_OS::t_snd (handle, (const char *) buf, n, flags);
ACE::restore_non_blocking_mode (handle, val);
return bytes_transferred;
}
@@ -1284,7 +1262,7 @@ ACE::send (ACE_HANDLE handle,
return -1;
else
{
- ssize_t bytes_transferred = ACE::send_i (handle, buf, n);
+ ssize_t const bytes_transferred = ACE::send_i (handle, buf, n);
ACE::restore_non_blocking_mode (handle, val);
return bytes_transferred;
}
@@ -1306,7 +1284,8 @@ ACE::sendmsg (ACE_HANDLE handle,
return -1;
else
{
- ssize_t bytes_transferred = ACE_OS::sendmsg (handle, msg, flags);
+ ssize_t const bytes_transferred =
+ ACE_OS::sendmsg (handle, msg, flags);
ACE::restore_non_blocking_mode (handle, val);
return bytes_transferred;
}
@@ -1331,7 +1310,7 @@ ACE::sendto (ACE_HANDLE handle,
return -1;
else
{
- ssize_t bytes_transferred =
+ ssize_t const bytes_transferred =
ACE_OS::sendto (handle, buf, len, flags, addr, addrlen);
ACE::restore_non_blocking_mode (handle, val);
return bytes_transferred;
@@ -1374,8 +1353,7 @@ ACE::send_n_i (ACE_HANDLE handle,
#endif /* ACE_WIN32 */
{
// Wait for the blocking to subside.
- int result = ACE::handle_write_ready (handle,
- 0);
+ int const result = ACE::handle_write_ready (handle, 0);
// Did select() succeed?
if (result != -1)
@@ -1428,12 +1406,10 @@ ACE::send_n_i (ACE_HANDLE handle,
n == -1)
{
// Check for possible blocking.
- if (n == -1 &&
- (errno == EWOULDBLOCK || errno == ENOBUFS))
+ if (n == -1 && (errno == EWOULDBLOCK || errno == ENOBUFS))
{
// Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_write_ready (handle,
- timeout);
+ int const rtn = ACE::handle_write_ready (handle, timeout);
// Did select() succeed?
if (rtn != -1)
@@ -1498,8 +1474,7 @@ ACE::t_snd_n_i (ACE_HANDLE handle,
if (errno == EWOULDBLOCK || errno == ENOBUFS)
{
// Wait for the blocking to subside.
- int result = ACE::handle_write_ready (handle,
- 0);
+ int const result = ACE::handle_write_ready (handle, 0);
// Did select() succeed?
if (result != -1)
@@ -1556,8 +1531,7 @@ ACE::t_snd_n_i (ACE_HANDLE handle,
errno == EWOULDBLOCK || errno == ENOBUFS)
{
// Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_write_ready (handle,
- timeout);
+ int const rtn = ACE::handle_write_ready (handle, timeout);
// Did select() succeed?
if (rtn != -1)
@@ -1618,8 +1592,7 @@ ACE::send_n_i (ACE_HANDLE handle,
if (errno == EWOULDBLOCK || errno == ENOBUFS)
{
// Wait for the blocking to subside.
- int result = ACE::handle_write_ready (handle,
- 0);
+ int const result = ACE::handle_write_ready (handle, 0);
// Did select() succeed?
if (result != -1)
@@ -1674,8 +1647,7 @@ ACE::send_n_i (ACE_HANDLE handle,
(errno == EWOULDBLOCK || errno == ENOBUFS))
{
// Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_write_ready (handle,
- timeout);
+ int const rtn = ACE::handle_write_ready (handle, timeout);
// Did select() succeed?
if (rtn != -1)
@@ -1781,9 +1753,8 @@ ACE::sendv_n_i (ACE_HANDLE handle,
)
{
// Try to transfer as much of the remaining data as possible.
- ssize_t n = ACE_OS::sendv (handle,
- iov + s,
- iovcnt - s);
+ ssize_t n = ACE_OS::sendv (handle, iov + s, iovcnt - s);
+
// Check EOF.
if (n == 0)
return 0;
@@ -1795,8 +1766,7 @@ ACE::sendv_n_i (ACE_HANDLE handle,
if (errno == EWOULDBLOCK || errno == ENOBUFS)
{
// Wait for the blocking to subside.
- int result = ACE::handle_write_ready (handle,
- 0);
+ int const result = ACE::handle_write_ready (handle, 0);
// Did select() succeed?
if (result != -1)
@@ -1853,9 +1823,7 @@ ACE::sendv_n_i (ACE_HANDLE handle,
// Try to transfer as much of the remaining data as possible.
// Since the socket is in non-blocking mode, this call will not
// block.
- ssize_t n = ACE_OS::sendv (handle,
- iov + s,
- iovcnt - s);
+ ssize_t n = ACE_OS::sendv (handle, iov + s, iovcnt - s);
// Check for errors.
if (n == 0 ||
@@ -1866,8 +1834,7 @@ ACE::sendv_n_i (ACE_HANDLE handle,
(errno == EWOULDBLOCK || errno == ENOBUFS))
{
// Wait upto <timeout> for the blocking to subside.
- int rtn = ACE::handle_write_ready (handle,
- timeout);
+ int const rtn = ACE::handle_write_ready (handle, timeout);
// Did select() succeed?
if (rtn != -1)
@@ -2194,28 +2161,29 @@ ACE::handle_ready (ACE_HANDLE handle,
int write_ready,
int exception_ready)
{
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
- ACE_UNUSED_ARG (write_ready);
+#if defined (ACE_HAS_POLL)
ACE_UNUSED_ARG (exception_ready);
struct pollfd fds;
fds.fd = handle;
- fds.events = read_ready ? POLLIN : POLLOUT;
+ fds.events = read_ready ? POLLIN : 0;
+
+ if( write_ready )
+ {
+ fds.events |= POLLOUT;
+ }
+
fds.revents = 0;
- int result = ACE_OS::poll (&fds, 1, timeout);
+ int const result = ACE_OS::poll (&fds, 1, timeout);
#else
ACE_Handle_Set handle_set;
handle_set.set_bit (handle);
// Wait for data or for the timeout to elapse.
- int select_width;
-# if defined (ACE_WIN32)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
+ int select_width = 0;
+#if !defined (ACE_WIN32)
select_width = int (handle) + 1;
# endif /* ACE_WIN64 */
int result = ACE_OS::select (select_width,
@@ -2224,8 +2192,7 @@ ACE::handle_ready (ACE_HANDLE handle,
exception_ready ? handle_set.fdset () : 0, // exception_fds.
timeout);
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
-
+#endif /* ACE_HAS_POLL */
switch (result)
{
case 0: // Timer expired.
@@ -2246,14 +2213,12 @@ ACE::enter_recv_timedwait (ACE_HANDLE handle,
const ACE_Time_Value *timeout,
int &val)
{
- int result = ACE::handle_read_ready (handle,
- timeout);
+ int const result = ACE::handle_read_ready (handle, timeout);
if (result == -1)
return -1;
- ACE::record_and_set_non_blocking_mode (handle,
- val);
+ ACE::record_and_set_non_blocking_mode (handle, val);
return result;
}
@@ -2263,21 +2228,18 @@ ACE::enter_send_timedwait (ACE_HANDLE handle,
const ACE_Time_Value *timeout,
int &val)
{
- int result = ACE::handle_write_ready (handle,
- timeout);
+ int const result = ACE::handle_write_ready (handle, timeout);
if (result == -1)
return -1;
- ACE::record_and_set_non_blocking_mode (handle,
- val);
+ ACE::record_and_set_non_blocking_mode (handle, val);
return result;
}
void
-ACE::record_and_set_non_blocking_mode (ACE_HANDLE handle,
- int &val)
+ACE::record_and_set_non_blocking_mode (ACE_HANDLE handle, int &val)
{
// We need to record whether we are already *in* nonblocking mode,
// so that we can correctly reset the state when we're done.
@@ -2290,11 +2252,9 @@ ACE::record_and_set_non_blocking_mode (ACE_HANDLE handle,
}
void
-ACE::restore_non_blocking_mode (ACE_HANDLE handle,
- int val)
+ACE::restore_non_blocking_mode (ACE_HANDLE handle, int val)
{
- if (ACE_BIT_DISABLED (val,
- ACE_NONBLOCK))
+ if (ACE_BIT_DISABLED (val, ACE_NONBLOCK))
{
// Save/restore errno.
ACE_Errno_Guard error (errno);
@@ -2304,11 +2264,9 @@ ACE::restore_non_blocking_mode (ACE_HANDLE handle,
}
}
-
-// Format buffer into printable format. This is useful for debugging.
-// Portions taken from mdump by J.P. Knight (J.P.Knight@lut.ac.uk)
-// Modifications by Todd Montgomery.
-
+/// Format buffer into printable format. This is useful for debugging.
+/// Portions taken from mdump by J.P. Knight (J.P.Knight@lut.ac.uk)
+/// Modifications by Todd Montgomery.
size_t
ACE::format_hexdump (const char *buffer,
size_t size,
@@ -2409,97 +2367,61 @@ ACE::format_hexdump (const char *buffer,
// Returns the current timestamp in the form
// "hour:minute:second:microsecond." The month, day, and year are
-// also stored in the beginning of the date_and_time array.
+// also stored in the beginning of the date_and_time array
+// using ISO-8601 format.
ACE_TCHAR *
ACE::timestamp (ACE_TCHAR date_and_time[],
size_t date_and_timelen,
bool return_pointer_to_first_digit)
{
+ return ACE::timestamp (ACE_Time_Value::zero,
+ date_and_time,
+ date_and_timelen,
+ return_pointer_to_first_digit);
+}
+
+// Returns the given timestamp in the form
+// "hour:minute:second:microsecond." The month, day, and year are
+// also stored in the beginning of the date_and_time array
+// using ISO-8601 format.
+// 012345678901234567890123456
+// 2010-12-02 12:56:00.123456<nul>
+
+ACE_TCHAR *
+ACE::timestamp (const ACE_Time_Value& time_value,
+ ACE_TCHAR date_and_time[],
+ size_t date_and_timelen,
+ bool return_pointer_to_first_digit)
+{
//ACE_TRACE ("ACE::timestamp");
- if (date_and_timelen < 35)
+ // This magic number is from the formatting statement
+ // farther down this routine.
+ if (date_and_timelen < 27)
{
errno = EINVAL;
return 0;
}
-#if defined (WIN32)
- // Emulate Unix. Win32 does NOT support all the UNIX versions
- // below, so DO we need this ifdef.
- static const ACE_TCHAR *day_of_week_name[] =
- {
- ACE_TEXT ("Sun"),
- ACE_TEXT ("Mon"),
- ACE_TEXT ("Tue"),
- ACE_TEXT ("Wed"),
- ACE_TEXT ("Thu"),
- ACE_TEXT ("Fri"),
- ACE_TEXT ("Sat")
- };
-
- static const ACE_TCHAR *month_name[] =
- {
- ACE_TEXT ("Jan"),
- ACE_TEXT ("Feb"),
- ACE_TEXT ("Mar"),
- ACE_TEXT ("Apr"),
- ACE_TEXT ("May"),
- ACE_TEXT ("Jun"),
- ACE_TEXT ("Jul"),
- ACE_TEXT ("Aug"),
- ACE_TEXT ("Sep"),
- ACE_TEXT ("Oct"),
- ACE_TEXT ("Nov"),
- ACE_TEXT ("Dec")
- };
-
- SYSTEMTIME local;
- ::GetLocalTime (&local);
-
- ACE_OS::sprintf (date_and_time,
- ACE_TEXT ("%3s %3s %2d %04d %02d:%02d:%02d.%06d"),
- day_of_week_name[local.wDayOfWeek],
- month_name[local.wMonth - 1],
- (int) local.wDay,
- (int) local.wYear,
- (int) local.wHour,
- (int) local.wMinute,
- (int) local.wSecond,
- (int) (local.wMilliseconds * 1000));
- return &date_and_time[15 + (return_pointer_to_first_digit != 0)];
-#else /* UNIX */
- ACE_TCHAR timebuf[26]; // This magic number is based on the ctime(3c) man page.
- ACE_Time_Value cur_time = ACE_OS::gettimeofday ();
+ ACE_Time_Value cur_time =
+ (time_value == ACE_Time_Value::zero) ?
+ ACE_Time_Value (ACE_OS::gettimeofday ()) : time_value;
time_t secs = cur_time.sec ();
-
- ACE_OS::ctime_r (&secs,
- timebuf,
- sizeof timebuf / sizeof (ACE_TCHAR));
- // date_and_timelen > sizeof timebuf!
- ACE_OS::strsncpy (date_and_time,
- timebuf,
- date_and_timelen);
- ACE_TCHAR yeartmp[5];
- ACE_OS::strsncpy (yeartmp,
- &date_and_time[20],
- 5);
- ACE_TCHAR timetmp[9];
- ACE_OS::strsncpy (timetmp,
- &date_and_time[11],
- 9);
- ACE_OS::sprintf (&date_and_time[11],
-# if defined (ACE_USES_WCHAR)
- ACE_TEXT ("%ls %ls.%06ld"),
-# else
- ACE_TEXT ("%s %s.%06ld"),
-# endif /* ACE_USES_WCHAR */
- yeartmp,
- timetmp,
- cur_time.usec ());
- date_and_time[33] = '\0';
- return &date_and_time[15 + (return_pointer_to_first_digit != 0)];
-#endif /* WIN32 */
+ struct tm tms;
+ ACE_OS::localtime_r (&secs, &tms);
+ ACE_OS::snprintf (date_and_time,
+ date_and_timelen,
+ ACE_TEXT ("%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d.%06ld"),
+ tms.tm_year + 1900,
+ tms.tm_mon + 1,
+ tms.tm_mday,
+ tms.tm_hour,
+ tms.tm_min,
+ tms.tm_sec,
+ static_cast<long> (cur_time.usec()));
+ date_and_time[date_and_timelen - 1] = '\0';
+ return &date_and_time[11 + (return_pointer_to_first_digit != 0)];
}
// This function rounds the request to a multiple of the page size.
@@ -2533,7 +2455,7 @@ ACE::handle_timed_complete (ACE_HANDLE h,
{
ACE_TRACE ("ACE::handle_timed_complete");
-#if !defined (ACE_WIN32) && defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+#if !defined (ACE_WIN32) && defined (ACE_HAS_POLL)
struct pollfd fds;
@@ -2546,7 +2468,7 @@ ACE::handle_timed_complete (ACE_HANDLE h,
ACE_Handle_Set wr_handles;
rd_handles.set_bit (h);
wr_handles.set_bit (h);
-#endif /* !ACE_WIN32 && ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+#endif /* !ACE_WIN32 && ACE_HAS_POLL */
#if defined (ACE_WIN32)
// Winsock is different - it sets the exception bit for failed connect,
@@ -2566,7 +2488,7 @@ ACE::handle_timed_complete (ACE_HANDLE h,
ex_handles,
timeout);
#else
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+# if defined (ACE_HAS_POLL)
int n = ACE_OS::poll (&fds, 1, timeout);
@@ -2584,7 +2506,7 @@ ACE::handle_timed_complete (ACE_HANDLE h,
wr_handles,
0,
timeout);
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+# endif /* ACE_HAS_POLL */
#endif /* ACE_WIN32 */
// If we failed to connect within the time period allocated by the
@@ -2618,18 +2540,18 @@ ACE::handle_timed_complete (ACE_HANDLE h,
}
#else
if (is_tli)
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+# if defined (ACE_HAS_POLL)
need_to_check = (fds.revents & POLLIN) && !(fds.revents & POLLOUT);
# else
need_to_check = rd_handles.is_set (h) && !wr_handles.is_set (h);
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+# endif /* ACE_HAS_POLL */
else
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+# if defined (ACE_HAS_POLL)
need_to_check = (fds.revents & POLLIN);
# else
need_to_check = true;
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+# endif /* ACE_HAS_POLL */
#endif /* ACE_WIN32 */
if (need_to_check)
@@ -2691,7 +2613,7 @@ ACE::handle_timed_accept (ACE_HANDLE listener,
if (listener == ACE_INVALID_HANDLE)
return -1;
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+#if defined (ACE_HAS_POLL)
struct pollfd fds;
@@ -2703,29 +2625,25 @@ ACE::handle_timed_accept (ACE_HANDLE listener,
// Use the select() implementation rather than poll().
ACE_Handle_Set rd_handle;
rd_handle.set_bit (listener);
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+#endif /* ACE_HAS_POLL */
// We need a loop here if <restart> is enabled.
for (;;)
{
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+#if defined (ACE_HAS_POLL)
int n = ACE_OS::poll (&fds, 1, timeout);
#else
- int select_width;
-# if defined (ACE_WIN32)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
+ int select_width = 0;
+# if !defined (ACE_WIN32)
select_width = int (listener) + 1;
# endif /* ACE_WIN32 */
int n = ACE_OS::select (select_width,
rd_handle, 0, 0,
timeout);
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+#endif /* ACE_HAS_POLL */
switch (n)
{
@@ -2889,8 +2807,6 @@ ACE::max_handles (void)
#if defined (_SC_OPEN_MAX)
return ACE_OS::sysconf (_SC_OPEN_MAX);
-#elif defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
- return maxFiles;
#elif defined (FD_SETSIZE)
return FD_SETSIZE;
#else
@@ -2937,7 +2853,7 @@ ACE::set_handle_limit (int new_limit,
#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE)
rl.rlim_cur = new_limit;
return ACE_OS::setrlimit (RLIMIT_NOFILE, &rl);
-#elif defined (ACE_LACKS_RLIMIT_NOFILE)
+#elif !defined (RLIMIT_NOFILE)
return 0;
#else
// Must return EINVAL errno.
@@ -3364,10 +3280,7 @@ ACE::strnew (const char *s)
ACE_NEW_RETURN (t,
char [ACE_OS::strlen (s) + 1],
0);
- if (t == 0)
- return 0;
- else
- return ACE_OS::strcpy (t, s);
+ return ACE_OS::strcpy (t, s);
}
#if defined (ACE_HAS_WCHAR)
@@ -3380,10 +3293,7 @@ ACE::strnew (const wchar_t *s)
ACE_NEW_RETURN (t,
wchar_t[ACE_OS::strlen (s) + 1],
0);
- if (t == 0)
- return 0;
- else
- return ACE_OS::strcpy (t, s);
+ return ACE_OS::strcpy (t, s);
}
#endif /* ACE_HAS_WCHAR */
diff --git a/ACE/ace/ACE.h b/ACE/ace/ACE.h
index 38f4233c8eb..eb0002ecdcb 100644
--- a/ACE/ace/ACE.h
+++ b/ACE/ace/ACE.h
@@ -90,7 +90,7 @@ namespace ACE
/// Simple wildcard matching function supporting '*' and '?'
/// return true if string s matches pattern.
- /// If character_classes is true, '[' is treated as a wildcard character
+ /// If @a character_classes is true, '[' is treated as a wildcard character
/// as described in the fnmatch() POSIX API. The following POSIX "bracket
/// expression" features are not implemented: collating symbols, equivalence
/// class expressions, and character class expressions. The POSIX locale is
@@ -474,15 +474,45 @@ namespace ACE
ACE_DIRECTORY_SEPARATOR_CHAR);
/**
- * Returns the current timestamp in the form
- * "hour:minute:second:microsecond." The month, day, and year are
- * also stored in the beginning of the @a date_and_time array, which
- * is a user-supplied array of size @a time_len> @c ACE_TCHARs.
- * Returns 0 if unsuccessful, else returns pointer to beginning of the
- * "time" portion of @a date_and_time. If @a
- * return_pointer_to_first_digit is 0 then return a pointer to the
- * space before the time, else return a pointer to the beginning of
- * the time portion.
+ * Translate the given timestamp to ISO-8601 format.
+ *
+ * @param time_value ACE_Time_Value to format. This is assumed to be
+ * an absolute time value.
+ * @param date_and_time Array to hold the timestamp.
+ * @param time_len Size of @a date_and_time in ACE_TCHARs.
+ * Must be greater than or equal to 27.
+ * @param return_pointer_to_first_digit If true, returned pointer value
+ * is to the first time digit, else to the space
+ * prior to the first time digit. See Return Values.
+ *
+ * @retval 0 if unsuccessful, with errno set. If @a time_len is less than
+ * 27 errno will be EINVAL.
+ * @retval If successful, pointer to beginning of the "time" portion of
+ * @a date_and_time. If @a return_pointer_to_first_digit is false
+ * the pointer is actually to the space before the time, else
+ * the pointer is to the first time digit.
+ */
+ extern ACE_Export ACE_TCHAR *timestamp (const ACE_Time_Value& time_value,
+ ACE_TCHAR date_and_time[],
+ size_t time_len,
+ bool return_pointer_to_first_digit = false);
+
+ /**
+ * Translate the current time to ISO-8601 timestamp format.
+ *
+ * @param date_and_time Array to hold the timestamp.
+ * @param time_len Size of @a date_and_time in ACE_TCHARs.
+ * Must be greater than or equal to 27.
+ * @param return_pointer_to_first_digit If true, returned pointer value
+ * is to the first time digit, else to the space
+ * prior to the first time digit. See Return Values.
+ *
+ * @retval 0 if unsuccessful, with errno set. If @a time_len is less than
+ * 27 errno will be EINVAL.
+ * @retval If successful, pointer to beginning of the "time" portion of
+ * @a date_and_time. If @a return_pointer_to_first_digit is false
+ * the pointer is actually to the space before the time, else
+ * the pointer is to the first time digit.
*/
extern ACE_Export ACE_TCHAR *timestamp (ACE_TCHAR date_and_time[],
size_t time_len,
@@ -626,8 +656,24 @@ namespace ACE
/// Computes the base 2 logarithm of {num}.
ACE_NAMESPACE_INLINE_FUNCTION u_long log2 (u_long num);
+ /// Helper to avoid comparing floating point values with ==
+ /// (uses < and > operators).
+ template <typename T>
+ bool is_equal (const T& a, const T& b)
+ {
+ return !((a < b) || (a > b));
+ }
+
+ /// Helper to avoid comparing floating point values with !=
+ /// (uses < and > operators).
+ template <typename T>
+ bool is_inequal (const T& a, const T& b)
+ {
+ return !is_equal (a, b);
+ }
+
/// Hex conversion utility.
- ACE_NAMESPACE_INLINE_FUNCTION ACE_TCHAR nibble2hex (u_int n);
+ extern ACE_Export ACE_TCHAR nibble2hex (u_int n);
/// Convert a hex character to its byte representation.
ACE_NAMESPACE_INLINE_FUNCTION u_char hex2byte (ACE_TCHAR c);
@@ -650,21 +696,33 @@ namespace ACE
const ACE_Time_Value *timeout = 0);
/// Timed wait for handle to get read ready.
+ /// @retval -1 for error
+ /// @retval 0 for timeout
+ /// @retval 1 the handle is ready
ACE_NAMESPACE_INLINE_FUNCTION
int handle_read_ready (ACE_HANDLE handle,
const ACE_Time_Value *timeout);
/// Timed wait for handle to get write ready.
+ /// @retval -1 for error
+ /// @retval 0 for timeout
+ /// @retval 1 the handle is ready
ACE_NAMESPACE_INLINE_FUNCTION
int handle_write_ready (ACE_HANDLE handle,
const ACE_Time_Value *timeout);
/// Timed wait for handle to get exception ready.
+ /// @retval -1 for error
+ /// @retval 0 for timeout
+ /// @retval 1 the handle is ready
ACE_NAMESPACE_INLINE_FUNCTION
int handle_exception_ready (ACE_HANDLE handle,
const ACE_Time_Value *timeout);
/// Timed wait for handle to get read, write, or exception ready.
+ /// @retval -1 for error
+ /// @retval 0 for timeout
+ /// @retval 1 the handle is ready
extern ACE_Export int handle_ready (ACE_HANDLE handle,
const ACE_Time_Value *timeout,
int read_ready,
diff --git a/ACE/ace/ACE.inl b/ACE/ace/ACE.inl
index ff48803b2a9..c114deb90ee 100644
--- a/ACE/ace/ACE.inl
+++ b/ACE/ace/ACE.inl
@@ -238,36 +238,21 @@ ACE::recv_i (ACE_HANDLE handle, void *buf, size_t len)
}
ACE_INLINE int
-ACE::handle_read_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout)
+ACE::handle_read_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
{
- return ACE::handle_ready (handle,
- timeout,
- 1,
- 0,
- 0);
+ return ACE::handle_ready (handle, timeout, 1, 0, 0);
}
ACE_INLINE int
-ACE::handle_write_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout)
+ACE::handle_write_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
{
- return ACE::handle_ready (handle,
- timeout,
- 0,
- 1,
- 0);
+ return ACE::handle_ready (handle, timeout, 0, 1, 0);
}
ACE_INLINE int
-ACE::handle_exception_ready (ACE_HANDLE handle,
- const ACE_Time_Value *timeout)
+ACE::handle_exception_ready (ACE_HANDLE handle, const ACE_Time_Value *timeout)
{
- return ACE::handle_ready (handle,
- timeout,
- 0,
- 0,
- 1);
+ return ACE::handle_ready (handle, timeout, 0, 0, 1);
}
ACE_INLINE void
@@ -287,7 +272,7 @@ ACE::strdelete (wchar_t *s)
ACE_INLINE bool
ACE::isdotdir (const char *s)
{
- return (s[0] == '.' &&
+ return (s[0] == '.' &&
((s[1] == 0) || (s[1] == '.' && s[2] == 0)));
}
@@ -295,7 +280,7 @@ ACE::isdotdir (const char *s)
ACE_INLINE bool
ACE::isdotdir (const wchar_t *s)
{
- return (s[0] == ACE_TEXT ('.') &&
+ return (s[0] == ACE_TEXT ('.') &&
((s[1] == 0) || (s[1] == ACE_TEXT ('.') && s[2] == 0)));
}
#endif /* ACE_HAS_WCHAR */
@@ -319,24 +304,6 @@ ACE::log2 (u_long num)
return log;
}
-ACE_INLINE ACE_TCHAR
-ACE::nibble2hex (u_int n)
-{
- // Hexadecimal characters.
-#if defined (ACE_VXWORKS) && !defined (__DCPLUSPLUS__)
- // temporary solution to prevent Windriver GNU toolchains from spewing
- // loads of warnings when inlining.
- // problem (incorrect warning leftover from older GNU) has been reported as
- // TSR to Windriver.
- const ACE_TCHAR hex_chars[] = ACE_TEXT ("0123456789abcdef");
-#else
- static const ACE_TCHAR hex_chars[] = ACE_TEXT ("0123456789abcdef");
-#endif
-
- // Yes, this works for UNICODE
- return hex_chars[n & 0x0f];
-}
-
ACE_INLINE int
ACE::map_errno (int error)
{
diff --git a/ACE/ace/ACE_crc32.cpp b/ACE/ace/ACE_crc32.cpp
index f9e91c652ce..ee666bd21a3 100644
--- a/ACE/ace/ACE_crc32.cpp
+++ b/ACE/ace/ACE_crc32.cpp
@@ -2,11 +2,6 @@
#include "ace/ACE.h"
-ACE_RCSID (ace,
- ACE_crc32,
- "$Id$")
-
-
namespace
{
/*****************************************************************/
diff --git a/ACE/ace/ACE_crc_ccitt.cpp b/ACE/ace/ACE_crc_ccitt.cpp
index f591b53aa10..63d04f92e4f 100644
--- a/ACE/ace/ACE_crc_ccitt.cpp
+++ b/ACE/ace/ACE_crc_ccitt.cpp
@@ -2,10 +2,6 @@
#include "ace/ACE.h"
-ACE_RCSID (ace,
- ACE_crc_ccitt,
- "$Id$")
-
namespace
{
/*****************************************************************/
diff --git a/ACE/ace/ACE_export.h b/ACE/ace/ACE_export.h
index a988b143427..0261c704c68 100644
--- a/ACE/ace/ACE_export.h
+++ b/ACE/ace/ACE_export.h
@@ -53,9 +53,7 @@
#if defined (__ACE_INLINE__)
# if defined (_MSC_VER) || defined (__MINGW32__) || defined (CYGWIN32) || \
(defined (__SUNPRO_CC) && __SUNPRO_CC >= 0x560) || \
- (defined (__HP_aCC) && (__HP_aCC >= 60500)) || \
- (defined (__sgi) && \
- defined (_COMPILER_VERSION) && _COMPILER_VERSION <= 730)
+ (defined (__HP_aCC) && (__HP_aCC >= 60500))
# define ACE_NAMESPACE_INLINE_FUNCTION inline
# else
# define ACE_NAMESPACE_INLINE_FUNCTION ACE_NAMESPACE_STORAGE_CLASS inline
diff --git a/ACE/ace/ARGV.cpp b/ACE/ace/ARGV.cpp
index c4b64f6a38a..8546443ab68 100644
--- a/ACE/ace/ARGV.cpp
+++ b/ACE/ace/ARGV.cpp
@@ -12,8 +12,6 @@
#include "ace/ARGV.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, ARGV, "$Id$")
-
// Open versioned namespace, if enabled by the user.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/ATM_Acceptor.cpp b/ACE/ace/ATM_Acceptor.cpp
index 6c725566315..c643dccd0bd 100644
--- a/ACE/ace/ATM_Acceptor.cpp
+++ b/ACE/ace/ATM_Acceptor.cpp
@@ -2,7 +2,7 @@
#include "ace/ATM_Acceptor.h"
-ACE_RCSID(ace, ATM_Acceptor, "$Id$")
+
#if defined (ACE_HAS_ATM)
diff --git a/ACE/ace/ATM_Addr.cpp b/ACE/ace/ATM_Addr.cpp
index 58f1e95263d..89469aeef74 100644
--- a/ACE/ace/ATM_Addr.cpp
+++ b/ACE/ace/ATM_Addr.cpp
@@ -15,7 +15,7 @@
#include "ace/ATM_Addr.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, ATM_Addr, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/ATM_Connector.cpp b/ACE/ace/ATM_Connector.cpp
index ca33a2bb833..f7dcdab32e5 100644
--- a/ACE/ace/ATM_Connector.cpp
+++ b/ACE/ace/ATM_Connector.cpp
@@ -6,7 +6,7 @@
#include "ace/Handle_Set.h"
-ACE_RCSID(ace, ATM_Connector, "$Id$")
+
#if !defined (__ACE_INLINE__)
#include "ace/ATM_Connector.inl"
diff --git a/ACE/ace/ATM_Params.cpp b/ACE/ace/ATM_Params.cpp
index cc6ec674ece..583b56b9990 100644
--- a/ACE/ace/ATM_Params.cpp
+++ b/ACE/ace/ATM_Params.cpp
@@ -4,7 +4,7 @@
#if defined (ACE_HAS_ATM)
-ACE_RCSID(ace, ATM_Params, "$Id$")
+
#if !defined (__ACE_INLINE__)
#include "ace/ATM_Params.inl"
diff --git a/ACE/ace/ATM_QoS.cpp b/ACE/ace/ATM_QoS.cpp
index b30bc406626..4f16f1d4444 100644
--- a/ACE/ace/ATM_QoS.cpp
+++ b/ACE/ace/ATM_QoS.cpp
@@ -2,7 +2,7 @@
#include "ace/ATM_QoS.h"
-ACE_RCSID(ace, ATM_QoS, "$Id$")
+
#if defined (ACE_HAS_ATM)
diff --git a/ACE/ace/ATM_Stream.cpp b/ACE/ace/ATM_Stream.cpp
index 62e79af1b23..14c07bc03bf 100644
--- a/ACE/ace/ATM_Stream.cpp
+++ b/ACE/ace/ATM_Stream.cpp
@@ -2,8 +2,6 @@
#include "ace/ATM_Stream.h"
-ACE_RCSID (ace, ATM_Stream, "$Id$")
-
#if defined (ACE_HAS_ATM)
#if !defined (__ACE_INLINE__)
diff --git a/ACE/ace/ATM_Stream.inl b/ACE/ace/ATM_Stream.inl
index 1c0420e8db5..bf3836d3b27 100644
--- a/ACE/ace/ATM_Stream.inl
+++ b/ACE/ace/ATM_Stream.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Acceptor.cpp b/ACE/ace/Acceptor.cpp
index b66b293eef1..5d5b587b9c9 100644
--- a/ACE/ace/Acceptor.cpp
+++ b/ACE/ace/Acceptor.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#ifndef ACE_ACCEPTOR_CPP
#define ACE_ACCEPTOR_CPP
@@ -8,16 +10,10 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Acceptor.h"
-#include "ace/Handle_Set.h"
#include "ace/Svc_Handler.h"
#include "ace/WFMO_Reactor.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
-#include "ace/OS_NS_sys_select.h"
-
-ACE_RCSID (ace,
- Acceptor,
- "$Id$")
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -367,17 +363,9 @@ template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> int
ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input (ACE_HANDLE listener)
{
ACE_TRACE ("ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input");
- ACE_Handle_Set conn_handle;
// Default is "timeout (0, 0)," which means "poll."
ACE_Time_Value timeout;
-# if defined (ACE_WIN32)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles
- int select_width = 0;
-# else
- int select_width = int (listener) + 1;
-# endif /* ACE_WIN32 */
// Accept connections from clients. Note that a loop is used for two
// reasons:
@@ -389,6 +377,11 @@ ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input (ACE_HANDLE listene
// 2. It allows the TLI_SAP::ACE_Acceptor class to work correctly (don't
// ask -- TLI is *horrible*...).
+ // Ensure that errno is preserved in case the ACE::handle_read_ready()
+ // method resets it in the loop bellow. We are actually supposed to
+ // ignore any errors from this loop, hence the return 0 following it.
+ ACE_Errno_Guard error (errno);
+
// @@ What should we do if any of the substrategies fail? Right
// now, we just print out a diagnostic message if <ACE::debug>
// returns > 0 and return 0 (which means that the Acceptor remains
@@ -403,9 +396,11 @@ ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input (ACE_HANDLE listene
if (this->make_svc_handler (svc_handler) == -1)
{
if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("make_svc_handler")));
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("make_svc_handler")));
+ }
return 0;
}
// Accept connection into the Svc_Handler.
@@ -414,10 +409,18 @@ ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input (ACE_HANDLE listene
// Note that <accept_svc_handler> closes the <svc_handler>
// on failure.
if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("accept_svc_handler")));
- return this->handle_accept_error ();
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("accept_svc_handler")));
+ }
+ const int ret = this->handle_accept_error ();
+ if (ret == -1)
+ {
+ // Ensure that the errno from the above call propegates.
+ error = errno;
+ }
+ return ret;
}
// Activate the <svc_handler> using the designated concurrency
// strategy (note that this method becomes responsible for
@@ -429,23 +432,17 @@ ACE_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::handle_input (ACE_HANDLE listene
// on failure.
if (ACE::debug ())
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("activate_svc_handler")));
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("activate_svc_handler")));
+ }
return 0;
}
-
- conn_handle.set_bit (listener);
- }
-
- // Now, check to see if there is another connection pending and
- // break out of the loop if there is none.
- while (this->use_select_
- && ACE_OS::select (select_width,
- conn_handle,
- 0,
- 0,
- &timeout) == 1);
+ // Now, check to see if there is another connection pending and
+ // break out of the loop if there is none.
+ } while (this->use_select_ &&
+ ACE::handle_read_ready (listener, &timeout) == 1);
return 0;
}
diff --git a/ACE/ace/Acceptor.h b/ACE/ace/Acceptor.h
index 499bfc38277..b673015bb84 100644
--- a/ACE/ace/Acceptor.h
+++ b/ACE/ace/Acceptor.h
@@ -193,9 +193,9 @@ protected:
virtual int accept_svc_handler (SVC_HANDLER *svc_handler);
/**
- * Bridge method for activating a {svc_handler} with the appropriate
+ * Bridge method for activating a @a svc_handler with the appropriate
* concurrency strategy. The default behavior of this method is to
- * activate the SVC_HANDLER by calling its {open} method (which
+ * activate the SVC_HANDLER by calling its open() method (which
* allows the SVC_HANDLER to define its own concurrency strategy).
* However, subclasses can override this strategy to do more
* sophisticated concurrency activations (such as making the
@@ -503,21 +503,30 @@ protected:
* @class ACE_Oneshot_Acceptor
*
* @brief Generic factory for passively connecting clients and creating
- * exactly one service handler (SVC_HANDLER).
+ * exactly one service handler of the type SVC_HANDLER specified in the
+ * template.
*
- * This class works similarly to the regular {ACE_Acceptor},
+ * This class works similarly to the regular ACE_Acceptor, but
* with the following differences:
- * 1. This class doesn't automagically register {this} with the
- * {ACE_Reactor} since it expects to have its {accept} method
- * called directly. However, it stashes the {ACE_Reactor}
- * pointer away in case it's needed later to finish accepting
- * a connection asynchronously.
- * 2. The class doesn't need an {ACE_Creation_Strategy} (since
- * the user supplies the SVC_HANDLER) or an
- * {ACE_Accept_Strategy} (since this class only accepts one
- * connection and then removes all traces of itself from the
- * {ACE_Reactor} if it was registered for asynchronous
- * accepts).
+ * -# ACE_Oneshot_Acceptor doesn't automatically register itself with the
+ * ACE_Reactor; the caller is expected to call the accept() method
+ * directly. Since a later call to accept() may require a reactor,
+ * the constructor and open() methods both accept an ACE_Reactor pointer
+ * which is saved in case it's needed in accept().
+ * -# ACE_Oneshot_Acceptor doesn't need an ACE_Creation_Strategy (because
+ * the user supplies the SVC_HANDLER) or an ACE_Accept_Strategy (because
+ * this class only accepts one connection and then removes all traces of
+ * itself from the ACE_Reactor if it was registered for asynchronous
+ * accepts).
+ *
+ * The usage model for ACE_Oneshot_Acceptor is:
+ * - Instantiate an object and establish its local address to listen at.
+ * This can be accomplished using either the address-accepting constructor
+ * (but there's no error indication) or the default constructor followed
+ * by a call to open().
+ * - Call the accept() method. This will attempt to accept a connection
+ * immediately. If there is no immediately available connection to accept,
+ * behavior is governed by the ACE_Synch_Options argument passed to open().
*/
template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
class ACE_Oneshot_Acceptor : public ACE_Service_Object
@@ -535,10 +544,10 @@ public:
/**
* Initialize the appropriate strategies for concurrency and then
- * open the {peer_acceptor} at the designated {local_addr}. Note
- * that unlike the {ACE_Acceptor} and {ACE_Strategy_Acceptor}, this
- * method does NOT register {this} acceptor with the {reactor} at
- * this point -- it just stashes the {reactor} away in case it's
+ * open the acceptor at the designated @a local_addr. Note
+ * that unlike ACE_Acceptor and ACE_Strategy_Acceptor, this
+ * method does NOT register this acceptor with the @a reactor at
+ * this point -- the @a reactor parameter is saved in case it's
* needed later.
*/
ACE_Oneshot_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
@@ -547,10 +556,10 @@ public:
/**
* Initialize the appropriate strategies for concurrency and then
- * open the {peer_acceptor} at the designated {local_addr}. Note
- * that unlike the {ACE_Acceptor} and {ACE_Strategy_Acceptor}, this
- * method does NOT register {this} acceptor with the {reactor} at
- * this point -- it just stashes the {reactor} away in case it's
+ * open the acceptor at the designated @a local_addr. Note
+ * that unlike ACE_Acceptor and ACE_Strategy_Acceptor, this
+ * method does NOT register this acceptor with the @a reactor at
+ * this point -- the @a reactor parameter is saved in case it's
* needed later.
*/
int open (const ACE_PEER_ACCEPTOR_ADDR &,
diff --git a/ACE/ace/Activation_Queue.cpp b/ACE/ace/Activation_Queue.cpp
index 324a26bcce3..22fa6a899be 100644
--- a/ACE/ace/Activation_Queue.cpp
+++ b/ACE/ace/Activation_Queue.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Activation_Queue.h"
#if !defined (__ACE_INLINE__)
@@ -9,10 +11,6 @@
#include "ace/Malloc_Base.h"
#include "ace/Time_Value.h"
-ACE_RCSID (ace,
- Activation_Queue,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
void
diff --git a/ACE/ace/Activation_Queue.h b/ACE/ace/Activation_Queue.h
index 87fffc0f73d..a356b1f0a34 100644
--- a/ACE/ace/Activation_Queue.h
+++ b/ACE/ace/Activation_Queue.h
@@ -23,6 +23,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Message_Queue.h"
+#include "ace/Copy_Disabled.h"
#include "ace/Condition_Thread_Mutex.h"
/// Define to be compatible with the terminology in the POSA2 book!
@@ -35,7 +36,8 @@ class ACE_Method_Request;
/**
* @class ACE_Activation_Queue
*
- * @brief Reifies a method into a request. Subclasses typically
+ * @brief
+ * Reifies a method into a request. Subclasses typically
* represent necessary state and behavior.
*
* Maintains a priority-ordered queue of ACE_Method_Request objects.
@@ -47,10 +49,9 @@ class ACE_Method_Request;
*
* @sa ACE_Method_Request
*/
-class ACE_Export ACE_Activation_Queue
+class ACE_Export ACE_Activation_Queue : private ACE_Copy_Disabled
{
public:
- // = Initialization and termination methods.
/// Constructor.
/**
* Initializes a new activation queue.
@@ -139,12 +140,6 @@ public:
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
-private:
-
- // = Prevent copying and assignment.
- ACE_Activation_Queue (const ACE_Activation_Queue &);
- void operator= (const ACE_Activation_Queue &);
-
protected:
/// Stores the Method_Requests.
diff --git a/ACE/ace/Active_Map_Manager.cpp b/ACE/ace/Active_Map_Manager.cpp
index 6f4b66191c7..913576e8475 100644
--- a/ACE/ace/Active_Map_Manager.cpp
+++ b/ACE/ace/Active_Map_Manager.cpp
@@ -2,8 +2,6 @@
#include "ace/Active_Map_Manager.h"
-ACE_RCSID(ace, Active_Map_Manager, "$Id$")
-
#if !defined (__ACE_INLINE__)
#include "ace/Active_Map_Manager.inl"
#endif /* __ACE_INLINE__ */
diff --git a/ACE/ace/Active_Map_Manager.h b/ACE/ace/Active_Map_Manager.h
index c9cc0349958..9da187e582e 100644
--- a/ACE/ace/Active_Map_Manager.h
+++ b/ACE/ace/Active_Map_Manager.h
@@ -68,7 +68,7 @@ public:
void decode (const void *data);
/// Encode state of the active key into @a data. @a data must be as
- /// big as the value returned from <size>.
+ /// big as the value returned from size().
void encode (void *data) const;
/// Compare keys.
@@ -95,7 +95,7 @@ private:
/// Slot index in the active map.
ACE_UINT32 slot_index_;
- /// Slot generation number of <slot_index_> slot in the active map.
+ /// Slot generation number of @c slot_index_ slot in the active map.
ACE_UINT32 slot_generation_;
};
diff --git a/ACE/ace/Addr.cpp b/ACE/ace/Addr.cpp
index 640bd561200..b2aea3e2082 100644
--- a/ACE/ace/Addr.cpp
+++ b/ACE/ace/Addr.cpp
@@ -2,10 +2,6 @@
#include "ace/Addr.h"
-ACE_RCSID (ace,
- Addr,
- "$Id$")
-
#if !defined (__ACE_INLINE__)
#include "ace/Addr.inl"
#endif /* __ACE_INLINE__ */
diff --git a/ACE/ace/Addr.inl b/ACE/ace/Addr.inl
index 3780e04b6aa..dc8e9286dc1 100644
--- a/ACE/ace/Addr.inl
+++ b/ACE/ace/Addr.inl
@@ -20,32 +20,28 @@ ACE_Addr::operator != (const ACE_Addr &sap) const
sap.addr_size_ != this->addr_size_ );
}
-// Return the size of the address.
-
+/// Return the size of the address.
ACE_INLINE int
ACE_Addr::get_size (void) const
{
return this->addr_size_;
}
-// Sets the size of the address.
-
+/// Sets the size of the address.
ACE_INLINE void
ACE_Addr::set_size (int size)
{
this->addr_size_ = size;
}
-// Return the type of the address.
-
+/// Return the type of the address.
ACE_INLINE int
ACE_Addr::get_type (void) const
{
return this->addr_type_;
}
-// Set the type of the address.
-
+/// Set the type of the address.
ACE_INLINE void
ACE_Addr::set_type (int type)
{
diff --git a/ACE/ace/Arg_Shifter.cpp b/ACE/ace/Arg_Shifter.cpp
index 8c98daf2946..e751e1ad3e3 100644
--- a/ACE/ace/Arg_Shifter.cpp
+++ b/ACE/ace/Arg_Shifter.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#ifndef ACE_ARG_SHIFTER_T_CPP
#define ACE_ARG_SHIFTER_T_CPP
@@ -7,11 +9,6 @@
#include "ace/OS_Errno.h"
#include "ace/OS_Memory.h"
-ACE_RCSID (ace,
- Arg_Shifter,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <typename CHAR_TYPE>
diff --git a/ACE/ace/Arg_Shifter.h b/ACE/ace/Arg_Shifter.h
index 8439e92ef51..ba5703ce89c 100644
--- a/ACE/ace/Arg_Shifter.h
+++ b/ACE/ace/Arg_Shifter.h
@@ -33,13 +33,23 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @a argv vector, so deeper levels of argument parsing can locate the yet
* unprocessed arguments at the beginning of the vector.
*
+ * Nomenclature:
+ * argument - a member of the argv array
+ * option - an argument starting with '-'
+ * flag - synonym for "option"
+ * parameter value - an argument not starting with '-'
+ * parameter - synonym for "parameter value"
+ *
* The @c ACE_Arg_Shifter copies the pointers of the @a argv vector
- * into a temporary array. As the @c ACE_Arg_Shifter iterates over
- * the copied vector, it places known arguments in the rear of the
- * vector, leaving the unknown ones in the beginning. So, after having
- * visited all the arguments in the temporary vector, @c ACE_Arg_Shifter
- * has placed all the unknown arguments in their original order at
- * the front of original @a argv.
+ * into a temporary array, emptying the original. As the @c ACE_Arg_Shifter
+ * iterates over the temporary array, it places known arguments in the rear
+ * of the original array and places the unknown ones in the beginning of the
+ * original array. It modifies argc to be the number of unknown arguments,
+ * so it looks to the caller as if the original array contains only unknown
+ * arguments. So, after @c ACE_Arg_Shifter has visited all the arguments
+ * in the temporary array, the original @a argv array appears to contain
+ * only the unknown arguments in their original order (but it actually has
+ * all the known arguments, too, beyond argc).
*/
template <typename CHAR_TYPE>
class ACE_Arg_Shifter_T
@@ -202,6 +212,9 @@ private:
/// The index of <argv_> in which we'll stick the next known
/// argument.
int front_;
+ /* This is not really the "front" at all. It's the point after
+ * which the unknown arguments end and at which the known arguments begin.
+ */
};
typedef ACE_Arg_Shifter_T<ACE_TCHAR> ACE_Arg_Shifter;
diff --git a/ACE/ace/Argv_Type_Converter.cpp b/ACE/ace/Argv_Type_Converter.cpp
index e16076818a4..dd2ed6c4f1b 100644
--- a/ACE/ace/Argv_Type_Converter.cpp
+++ b/ACE/ace/Argv_Type_Converter.cpp
@@ -6,10 +6,6 @@
#include "ace/Argv_Type_Converter.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Argv_Type_Converter,
- "$Id$")
-
#include "ace/OS_NS_string.h"
#include "ace/OS_Errno.h"
@@ -108,11 +104,10 @@ ACE_Argv_Type_Converter::initialize (void)
void
ACE_Argv_Type_Converter::align_char_with_wchar (void)
{
- int wchar_argv_index = 0;
- wchar_t* match_argv = this->wchar_argv_[0]; // pick the initial entry
-
- while (wchar_argv_index < this->saved_argc_)
+ for (int wchar_argv_index = 0; wchar_argv_index < this->saved_argc_;
+ ++wchar_argv_index)
{
+ wchar_t *match_argv = this->wchar_argv_[wchar_argv_index];
// if n'th entries of both argv lists are different
if (ACE_OS::strcmp (this->char_argv_[wchar_argv_index],
ACE_TEXT_ALWAYS_CHAR (match_argv)) != 0)
@@ -132,9 +127,6 @@ ACE_Argv_Type_Converter::align_char_with_wchar (void)
}
}
}
-
- // move to the next wchar argv list entry
- match_argv = this->wchar_argv_[++wchar_argv_index];
}
this->cleanup ();
@@ -143,11 +135,10 @@ ACE_Argv_Type_Converter::align_char_with_wchar (void)
void
ACE_Argv_Type_Converter::align_wchar_with_char (void)
{
- int char_argv_index = 0;
- char* match_argv = this->char_argv_[0]; // pick the initial entry
-
- while (char_argv_index < saved_argc_)
+ for (int char_argv_index = 0; char_argv_index < saved_argc_;
+ ++char_argv_index)
{
+ char* match_argv = this->char_argv_[char_argv_index];
// if n'th entries of both argv lists are different
if (ACE_OS::strcmp (
ACE_TEXT_ALWAYS_CHAR (this->wchar_argv_[char_argv_index]),
@@ -168,9 +159,6 @@ ACE_Argv_Type_Converter::align_wchar_with_char (void)
}
}
}
-
- // move to the next wchar argv list entry
- match_argv = this->char_argv_[++char_argv_index];
}
this->cleanup();
diff --git a/ACE/ace/Argv_Type_Converter.h b/ACE/ace/Argv_Type_Converter.h
index 6d01c05faee..09259f241ef 100644
--- a/ACE/ace/Argv_Type_Converter.h
+++ b/ACE/ace/Argv_Type_Converter.h
@@ -78,7 +78,7 @@ private:
/// argv list.
void align_wchar_with_char (void);
- /// Clean up removed (comsumed) argv entries and reset the pass flags.
+ /// Clean up removed (consumed) argv entries and reset the pass flags.
void cleanup (void);
#endif // ACE_USES_WCHAR
diff --git a/ACE/ace/Array.h b/ACE/ace/Array.h
deleted file mode 100644
index c3159cd7a89..00000000000
--- a/ACE/ace/Array.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Array.h
- *
- * $Id$
- *
- * @deprecated
- *
- * @note This file has been deprecated and will soon go away. You
- * should directly include "Containers_T.h" instead.
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_ARRAY_H
-#define ACE_ARRAY_H
-#include /**/ "ace/pre.h"
-
-#include "ace/Containers_T.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_ARRAY_H */
diff --git a/ACE/ace/Array_Base.h b/ACE/ace/Array_Base.h
index 0110a5224a9..e75b994c45a 100644
--- a/ACE/ace/Array_Base.h
+++ b/ACE/ace/Array_Base.h
@@ -67,21 +67,21 @@ public:
ACE_Array_Base (size_type size = 0,
ACE_Allocator * the_allocator = 0);
- /// Dynamically initialize the entire array to the <default_value>.
+ /// Dynamically initialize the entire array to the @a default_value.
ACE_Array_Base (size_type size,
T const & default_value,
ACE_Allocator * the_allocator = 0);
/**
* The copy constructor performs initialization by making an exact
- * copy of the contents of parameter <s>, i.e., *this == s will
+ * copy of the contents of parameter @a s, i.e., *this == s will
* return true.
*/
ACE_Array_Base (ACE_Array_Base<T> const & s);
/**
* Assignment operator performs an assignment by making an exact
- * copy of the contents of parameter <s>, i.e., *this == s will
+ * copy of the contents of parameter @a s, i.e., *this == s will
* return true. Note that if the <max_size_> of <array_> is >= than
* <s.max_size_> we can copy it without reallocating. However, if
* <max_size_> is < <s.max_size_> we must delete the <array_>,
diff --git a/ACE/ace/Array_Map.cpp b/ACE/ace/Array_Map.cpp
index 62c6f553292..14036b5f7b7 100644
--- a/ACE/ace/Array_Map.cpp
+++ b/ACE/ace/Array_Map.cpp
@@ -15,7 +15,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
template<typename Key, typename Value, class EqualTo>
template<typename InputIterator>
ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (InputIterator f,
@@ -34,26 +33,6 @@ ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (InputIterator f,
// for (InputIterator i = f; i != l; ++i, ++n)
// *n = *i;
}
-#else
-template<typename Key, typename Value, class EqualTo>
-ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (
- typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator f,
- typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator l)
- : size_ (l - f)
- , capacity_ (size_)
- , nodes_ (size_ == 0 ? 0 : new value_type[size_])
-{
- (void) std::copy (f,
- l,
- ACE_make_checked_array_iterator (this->begin (),
- this->size_));
-
-// iterator n = this->begin ();
-
-// for (const_iterator i = f; i != l; ++i, ++n)
-// *n = *i;
-}
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
template<typename Key, typename Value, class EqualTo>
ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (
@@ -119,7 +98,6 @@ ACE_Array_Map<Key, Value, EqualTo>::insert (
return std::make_pair (i, inserted);
}
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
template<typename Key, typename Value, class EqualTo>
template<typename InputIterator>
void
@@ -132,21 +110,6 @@ ACE_Array_Map<Key, Value, EqualTo>::insert (InputIterator f, InputIterator l)
(void) this->insert (*i);
}
}
-#else
-template<typename Key, typename Value, class EqualTo>
-void
-ACE_Array_Map<Key, Value, EqualTo>::insert (
- typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator f,
- typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator l)
-{
- this->grow (l - f); // Preallocate storage.
-
- for (const_iterator i = f; i != l; ++i)
- {
- (void) this->insert (*i);
- }
-}
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
template<typename Key, typename Value, class EqualTo>
void
diff --git a/ACE/ace/Array_Map.h b/ACE/ace/Array_Map.h
index 02027f843a1..724cc5bfc10 100644
--- a/ACE/ace/Array_Map.h
+++ b/ACE/ace/Array_Map.h
@@ -110,12 +110,8 @@ public:
*/
ACE_Array_Map (size_type s = 0);
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
template<typename InputIterator>
ACE_Array_Map (InputIterator f, InputIterator l);
-#else
- ACE_Array_Map (const_iterator f, const_iterator l);
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
ACE_Array_Map (ACE_Array_Map const & map);
ACE_Array_Map & operator= (ACE_Array_Map const & map);
@@ -181,14 +177,9 @@ public:
*/
std::pair<iterator, bool> insert (value_type const & x);
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
/// Insert range of elements into map.
template<typename InputIterator>
void insert (InputIterator f, InputIterator l);
-#else
- /// Insert range of elements into map.
- void insert (const_iterator f, const_iterator l);
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
/// Remove element at position @a pos from the map.
void erase (iterator pos);
diff --git a/ACE/ace/Assert.cpp b/ACE/ace/Assert.cpp
index 06e4f34d2ea..ccd7ffa504a 100644
--- a/ACE/ace/Assert.cpp
+++ b/ACE/ace/Assert.cpp
@@ -3,8 +3,6 @@
#include "ace/Assert.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Assert, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// The following ASSERT macro is courtesy of Alexandre Karev
diff --git a/ACE/ace/Asynch_Acceptor.cpp b/ACE/ace/Asynch_Acceptor.cpp
index 1930967ad08..dcb6d393825 100644
--- a/ACE/ace/Asynch_Acceptor.cpp
+++ b/ACE/ace/Asynch_Acceptor.cpp
@@ -10,8 +10,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-ACE_RCSID(ace, Asynch_Acceptor, "$Id$")
-
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on platforms that support async i/o.
@@ -299,8 +297,10 @@ ACE_Asynch_Acceptor<HANDLER>::handle_accept (const ACE_Asynch_Accept::Result &re
// If no errors
if (!error)
{
- // Update the Proactor.
- new_handler->proactor (this->proactor ());
+ // Update the Proactor unless make_handler() or constructed handler
+ // set up its own.
+ if (new_handler->proactor () == 0)
+ new_handler->proactor (this->proactor ());
// Pass the addresses
if (this->pass_addresses_)
@@ -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
@@ -447,13 +447,6 @@ ACE_Asynch_Acceptor<HANDLER>::make_handler (void)
return handler;
}
-/* static */
-template <class HANDLER> size_t
-ACE_Asynch_Acceptor<HANDLER>::address_size (void)
-{
- return sizeof (sockaddr) + sizeof (sockaddr_in);
-}
-
template <class HANDLER> bool
ACE_Asynch_Acceptor<HANDLER>::pass_addresses (void) const
{
diff --git a/ACE/ace/Asynch_Acceptor.h b/ACE/ace/Asynch_Acceptor.h
index af7944e4b58..acfb1555f51 100644
--- a/ACE/ace/Asynch_Acceptor.h
+++ b/ACE/ace/Asynch_Acceptor.h
@@ -211,11 +211,6 @@ public:
/// Set bytes to be read with the <accept> call.
virtual void bytes_to_read (size_t new_value);
- /// @deprecated address_size() assumes IPv4 use, so is not always valid.
- /// This method will be removed after ACE 5.5. Internal uses have been
- /// changes to base needed sizes on the addr_family_ member.
- static size_t address_size (void);
-
protected:
/// This is called when an outstanding accept completes.
diff --git a/ACE/ace/Asynch_Connector.cpp b/ACE/ace/Asynch_Connector.cpp
index fd61fcfdb8a..2a484cc4655 100644
--- a/ACE/ace/Asynch_Connector.cpp
+++ b/ACE/ace/Asynch_Connector.cpp
@@ -221,32 +221,6 @@ ACE_Asynch_Connector<HANDLER>::parse_address (const ACE_Asynch_Connect::Result &
remote_address.set (reinterpret_cast<sockaddr_in *> (&remote_addr),
remote_size);
-#if 0
- // @@ Just debugging.
- char local_address_buf [BUFSIZ];
- char remote_address_buf [BUFSIZ];
-
- if (local_address.addr_to_string (local_address_buf,
- sizeof local_address_buf) == -1)
- ACE_ERROR ((LM_ERROR,
- "Error:%m:can't obtain local_address's address string"));
-
- ACE_DEBUG ((LM_DEBUG,
- "ACE_Asynch_Connector<HANDLER>::parse_address : "
- "Local address %s\n",
- local_address_buf));
-
- if (remote_address.addr_to_string (remote_address_buf,
- sizeof remote_address_buf) == -1)
- ACE_ERROR ((LM_ERROR,
- "Error:%m:can't obtain remote_address's address string"));
-
- ACE_DEBUG ((LM_DEBUG,
- "ACE_Asynch_Connector<HANDLER>::parse_address : "
- "Remote address %s\n",
- remote_address_buf));
-#endif /* 0 */
-
return;
}
diff --git a/ACE/ace/Asynch_IO.cpp b/ACE/ace/Asynch_IO.cpp
index 1b0a42fa050..4f31d288ea6 100644
--- a/ACE/ace/Asynch_IO.cpp
+++ b/ACE/ace/Asynch_IO.cpp
@@ -2,8 +2,6 @@
#include "ace/Asynch_IO.h"
-ACE_RCSID(ace, Asynch_IO, "$Id$")
-
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on platforms with Asynchronous IO
diff --git a/ACE/ace/Asynch_IO_Impl.h b/ACE/ace/Asynch_IO_Impl.h
index b2a308a7565..2e3895f9d6c 100644
--- a/ACE/ace/Asynch_IO_Impl.h
+++ b/ACE/ace/Asynch_IO_Impl.h
@@ -81,7 +81,7 @@ public:
/**
* POSIX4 real-time signal number to be used for the
- * operation. <signal_number> ranges from SIGRTMIN to SIGRTMAX. By
+ * operation. signal_number ranges from SIGRTMIN to SIGRTMAX. By
* default, SIGRTMIN is used to issue <aio_> calls. This is a no-op
* on non-POSIX4 systems and returns 0.
*/
diff --git a/ACE/ace/Asynch_Pseudo_Task.cpp b/ACE/ace/Asynch_Pseudo_Task.cpp
index 6bc47866b6f..1ec2329521c 100644
--- a/ACE/ace/Asynch_Pseudo_Task.cpp
+++ b/ACE/ace/Asynch_Pseudo_Task.cpp
@@ -5,8 +5,6 @@
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_signal.h"
-ACE_RCSID(ace, Asynch_Pseudo_Task, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Asynch_Pseudo_Task::ACE_Asynch_Pseudo_Task ()
diff --git a/ACE/ace/Atomic_Op.cpp b/ACE/ace/Atomic_Op.cpp
index 9076b9f67ed..78344b063b5 100644
--- a/ACE/ace/Atomic_Op.cpp
+++ b/ACE/ace/Atomic_Op.cpp
@@ -3,10 +3,6 @@
#include "ace/Atomic_Op.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID (ace,
- Atomic_Op,
- "$Id$")
-
#if !defined (__ACE_INLINE__)
#include "ace/Atomic_Op.inl"
#endif /* __ACE_INLINE__ */
@@ -34,8 +30,8 @@ single_cpu_increment (volatile long *value)
unsigned long addr = reinterpret_cast<unsigned long> (value);
asm( "xadd %0, (%1)" : "+r"(tmp) : "r"(addr) );
return tmp + 1;
-#elif defined (sun) || \
- (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))
+#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \
+ (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))))
return ace_atomic_add_long (
reinterpret_cast<volatile unsigned long*> (value), 1);
#elif defined(__GNUC__) && defined(PPC)
@@ -58,8 +54,8 @@ single_cpu_decrement (volatile long *value)
unsigned long addr = reinterpret_cast<unsigned long> (value);
asm( "xadd %0, (%1)" : "+r"(tmp) : "r"(addr) );
return tmp - 1;
-#elif defined (sun) || \
- (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))
+#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \
+ (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))))
return ace_atomic_add_long (
reinterpret_cast<volatile unsigned long*> (value), -1);
#elif defined(__GNUC__) && defined(PPC)
@@ -81,8 +77,8 @@ single_cpu_exchange (volatile long *value, long rhs)
unsigned long addr = reinterpret_cast<unsigned long> (value);
asm( "xchg %0, (%1)" : "+r"(rhs) : "r"(addr) );
return rhs;
-#elif defined (sun) || \
- (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))
+#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \
+ (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))))
return ace_atomic_swap_long (
reinterpret_cast<volatile unsigned long*> (value), rhs);
#elif defined(__GNUC__) && defined(PPC)
@@ -104,8 +100,8 @@ single_cpu_exchange_add (volatile long *value, long rhs)
unsigned long addr = reinterpret_cast<unsigned long> (value);
asm( "xadd %0, (%1)" : "+r"(rhs) : "r"(addr) );
return rhs;
-#elif defined (sun) || \
- (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))
+#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \
+ (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))))
return ace_atomic_swap_add_long (
reinterpret_cast<volatile unsigned long*> (value), rhs);
#elif defined(__GNUC__) && defined(PPC)
@@ -147,8 +143,8 @@ multi_cpu_increment (volatile long *value)
unsigned long addr = reinterpret_cast<unsigned long> (value);
asm( "lock ; xadd %0, (%1)" : "+r"(tmp) : "r"(addr) );
return tmp + 1;
-#elif defined (sun) || \
- (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))
+#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \
+ (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))))
return ace_atomic_add_long (
reinterpret_cast<volatile unsigned long*> (value), 1);
#else /* ACE_HAS_INTEL_ASSEMBLY*/
@@ -165,8 +161,8 @@ multi_cpu_decrement (volatile long *value)
unsigned long addr = reinterpret_cast<unsigned long> (value);
asm( "lock ; xadd %0, (%1)" : "+r"(tmp) : "r"(addr) );
return tmp - 1;
-#elif defined (sun) || \
- (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))
+#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \
+ (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))))
return ace_atomic_add_long (
reinterpret_cast<volatile unsigned long*> (value), -1);
#else /* ACE_HAS_INTEL_ASSEMBLY*/
@@ -183,8 +179,8 @@ multi_cpu_exchange (volatile long *value, long rhs)
// The XCHG instruction automatically follows LOCK semantics
asm( "xchg %0, (%1)" : "+r"(rhs) : "r"(addr) );
return rhs;
-#elif defined (sun) || \
- (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))
+#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \
+ (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))))
return ace_atomic_swap_long (
reinterpret_cast<volatile unsigned long*> (value), rhs);
#else /* ACE_HAS_INTEL_ASSEMBLY*/
@@ -201,8 +197,8 @@ multi_cpu_exchange_add (volatile long *value, long rhs)
unsigned long addr = reinterpret_cast<unsigned long> (value);
asm( "lock ; xadd %0, (%1)" : "+r"(rhs) : "r"(addr) );
return rhs;
-#elif defined (sun) || \
- (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64)))
+#elif !defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && (defined (sun) || \
+ (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))))
return ace_atomic_swap_add_long (
reinterpret_cast<volatile unsigned long*> (value), rhs);
#elif defined (WIN32) && !defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
diff --git a/ACE/ace/Atomic_Op.h b/ACE/ace/Atomic_Op.h
index 24abb64ef1d..69eb3e42f70 100644
--- a/ACE/ace/Atomic_Op.h
+++ b/ACE/ace/Atomic_Op.h
@@ -43,16 +43,26 @@
# 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
+# elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB) && !defined (ACE_HAS_BUILTIN_ATOMIC_OP)
+# define ACE_HAS_BUILTIN_ATOMIC_OP
# endif /* WIN32 */
#endif /* ACE_HAS_THREADS */
-#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
+// If we have the GCC Atomic builtin support, use it
+#if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
+# undef ACE_HAS_BUILTIN_ATOMIC_OP
+#endif
+
+// Include the templates here.
+#include "ace/Atomic_Op_GCC_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
+
/**
- * @class ACE_Atomic_Op<ACE_Thread_Mutex, long>
- *
* @brief Specialization of ACE_Atomic_Op for platforms that
* support atomic integer operations.
*
@@ -63,64 +73,64 @@ template<>
class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, long>
{
public:
- /// Initialize <value_> to 0.
+ /// Initialize @c value_ to 0.
ACE_Atomic_Op (void);
- /// Initialize <value_> to c.
+ /// Initialize @c value_ to c.
ACE_Atomic_Op (long c);
/// Manage copying...
ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &c);
- /// Atomically pre-increment <value_>.
+ /// Atomically pre-increment @c value_.
long operator++ (void);
- /// Atomically post-increment <value_>.
+ /// Atomically post-increment @c value_.
long operator++ (int);
- /// Atomically increment <value_> by rhs.
+ /// Atomically increment @c value_ by rhs.
long operator+= (long rhs);
- /// Atomically pre-decrement <value_>.
+ /// Atomically pre-decrement @c value_.
long operator-- (void);
- /// Atomically post-decrement <value_>.
+ /// Atomically post-decrement @c value_.
long operator-- (int);
- /// Atomically decrement <value_> by rhs.
+ /// Atomically decrement @c value_ by rhs.
long operator-= (long rhs);
- /// Atomically compare <value_> with rhs.
+ /// Atomically compare @c value_ with rhs.
bool operator== (long rhs) const;
- /// Atomically compare <value_> with rhs.
+ /// Atomically compare @c value_ with rhs.
bool operator!= (long rhs) const;
- /// Atomically check if <value_> greater than or equal to rhs.
+ /// Atomically check if @c value_ greater than or equal to rhs.
bool operator>= (long rhs) const;
- /// Atomically check if <value_> greater than rhs.
+ /// Atomically check if @c value_ greater than rhs.
bool operator> (long rhs) const;
- /// Atomically check if <value_> less than or equal to rhs.
+ /// Atomically check if @c value_ less than or equal to rhs.
bool operator<= (long rhs) const;
- /// Atomically check if <value_> less than rhs.
+ /// Atomically check if @c value_ less than rhs.
bool operator< (long rhs) const;
- /// Atomically assign rhs to <value_>.
+ /// Atomically assign rhs to @c value_.
ACE_Atomic_Op<ACE_Thread_Mutex, long> &operator= (long rhs);
- /// Atomically assign <rhs> to <value_>.
+ /// Atomically assign <rhs> to @c value_.
ACE_Atomic_Op<ACE_Thread_Mutex, long> &operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs);
- /// Explicitly return <value_>.
+ /// Explicitly return @c value_.
long value (void) const;
/// Dump the state of an object.
void dump (void) const;
- /// Explicitly return <value_> (by reference).
+ /// Explicitly return @c value_ (by reference).
volatile long &value_i (void);
// ACE_ALLOC_HOOK_DECLARE;
@@ -132,9 +142,9 @@ public:
private:
- // This function cannot be supported by this template specialization.
- // If you need access to an underlying lock, use the ACE_Atomic_Op_Ex
- // template instead.
+ /// This function cannot be supported by this template specialization.
+ /// If you need access to an underlying lock, use the ACE_Atomic_Op_Ex
+ /// template instead.
ACE_Thread_Mutex &mutex (void);
private:
@@ -142,7 +152,7 @@ private:
/// Current object decorated by the atomic op.
volatile long value_;
- // Pointers to selected atomic op implementations.
+ /// Pointers to selected atomic op implementations.
static long (*increment_fn_) (volatile long *);
static long (*decrement_fn_) (volatile long *);
static long (*exchange_fn_) (volatile long *, long);
@@ -150,8 +160,6 @@ private:
};
/**
- * @class ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>
- *
* @brief Specialization of ACE_Atomic_Op for platforms that
* support atomic integer operations.
*
@@ -162,64 +170,64 @@ template<>
class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>
{
public:
- /// Initialize <value_> to 0.
+ /// Initialize @c value_ to 0.
ACE_Atomic_Op (void);
- /// Initialize <value_> to c.
+ /// Initialize @c value_ to c.
ACE_Atomic_Op (unsigned long c);
/// Manage copying...
ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &c);
- /// Atomically pre-increment <value_>.
+ /// Atomically pre-increment @c value_.
unsigned long operator++ (void);
- /// Atomically post-increment <value_>.
+ /// Atomically post-increment @c value_.
unsigned long operator++ (int);
- /// Atomically increment <value_> by rhs.
+ /// Atomically increment @c value_ by rhs.
unsigned long operator+= (unsigned long rhs);
- /// Atomically pre-decrement <value_>.
+ /// Atomically pre-decrement @c value_.
unsigned long operator-- (void);
- /// Atomically post-decrement <value_>.
+ /// Atomically post-decrement @c value_.
unsigned long operator-- (int);
- /// Atomically decrement <value_> by rhs.
+ /// Atomically decrement @c value_ by rhs.
unsigned long operator-= (unsigned long rhs);
- /// Atomically compare <value_> with rhs.
+ /// Atomically compare @c value_ with rhs.
bool operator== (unsigned long rhs) const;
- /// Atomically compare <value_> with rhs.
+ /// Atomically compare @c value_ with rhs.
bool operator!= (unsigned long rhs) const;
- /// Atomically check if <value_> greater than or equal to rhs.
+ /// Atomically check if @c value_ greater than or equal to rhs.
bool operator>= (unsigned long rhs) const;
- /// Atomically check if <value_> greater than rhs.
+ /// Atomically check if @c value_ greater than rhs.
bool operator> (unsigned long rhs) const;
- /// Atomically check if <value_> less than or equal to rhs.
+ /// Atomically check if @c value_ less than or equal to rhs.
bool operator<= (unsigned long rhs) const;
- /// Atomically check if <value_> less than rhs.
+ /// Atomically check if @c value_ less than rhs.
bool operator< (unsigned long rhs) const;
- /// Atomically assign rhs to <value_>.
+ /// Atomically assign rhs to @c value_.
ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &operator= (unsigned long rhs);
- /// Atomically assign <rhs> to <value_>.
+ /// Atomically assign <rhs> to @c value_.
ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &rhs);
- /// Explicitly return <value_>.
+ /// Explicitly return @c value_.
unsigned long value (void) const;
/// Dump the state of an object.
void dump (void) const;
- /// Explicitly return <value_> (by reference).
+ /// Explicitly return @c value_ (by reference).
volatile unsigned long &value_i (void);
// ACE_ALLOC_HOOK_DECLARE;
@@ -231,9 +239,9 @@ public:
private:
- // This function cannot be supported by this template specialization.
- // If you need access to an underlying lock, use the ACE_Atomic_Op_Ex
- // template instead.
+ /// This function cannot be supported by this template specialization.
+ /// If you need access to an underlying lock, use the ACE_Atomic_Op_Ex
+ /// template instead.
ACE_Thread_Mutex &mutex (void);
private:
@@ -248,10 +256,97 @@ private:
static long (*exchange_add_fn_) (volatile long *, long);
};
-ACE_END_VERSIONED_NAMESPACE_DECL
+#endif /* !ACE_HAS_BUILTIN_ATOMIC_OP */
+
+#if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
+
+template<>
+class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, int>
+: public ACE_Atomic_Op_GCC<int>
+{
+public:
+ ACE_Atomic_Op (void);
+ ACE_Atomic_Op (int c);
+ ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, int> &c);
+ ACE_Atomic_Op<ACE_Thread_Mutex, int> &operator= (int rhs);
+};
+
+template<>
+class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>
+: public ACE_Atomic_Op_GCC<unsigned int>
+{
+public:
+ ACE_Atomic_Op (void);
+ ACE_Atomic_Op (unsigned int c);
+ ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned> &c);
+ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int> &operator= (unsigned int rhs);
+};
+
+// If we have built in atomic op, use that, the assignment operator
+// is faster for a long/unsinged long
+template<>
+class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, long>
+: public ACE_Atomic_Op_GCC<long>
+{
+public:
+ ACE_Atomic_Op (void);
+ ACE_Atomic_Op (long c);
+ ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &c);
+ ACE_Atomic_Op<ACE_Thread_Mutex, long> &operator= (long rhs);
+};
+
+template<>
+class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>
+: public ACE_Atomic_Op_GCC<unsigned long>
+{
+public:
+ ACE_Atomic_Op (void);
+ ACE_Atomic_Op (unsigned long c);
+ ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &c);
+ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &operator= (unsigned long rhs);
+};
+
+#if !defined (ACE_LACKS_GCC_ATOMIC_BUILTINS_2)
+template<>
+class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, short>
+: public ACE_Atomic_Op_GCC<short>
+{
+public:
+ ACE_Atomic_Op (void);
+ ACE_Atomic_Op (short c);
+ ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, short> &c);
+ ACE_Atomic_Op<ACE_Thread_Mutex, short> &operator= (short rhs);
+};
+
+template<>
+class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>
+: public ACE_Atomic_Op_GCC<unsigned short>
+{
+public:
+ ACE_Atomic_Op (void);
+ ACE_Atomic_Op (unsigned short c);
+ ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short> &c);
+ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short> &operator= (unsigned short rhs);
+};
+#endif
+
+#if !defined (ACE_LACKS_GCC_ATOMIC_BUILTINS_1)
+template<>
+class ACE_Export ACE_Atomic_Op<ACE_Thread_Mutex, bool>
+: public ACE_Atomic_Op_GCC<bool>
+{
+public:
+ ACE_Atomic_Op (void);
+ ACE_Atomic_Op (bool c);
+ ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, bool> &c);
+ ACE_Atomic_Op<ACE_Thread_Mutex, bool> &operator= (bool rhs);
+};
+#endif
#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
+ACE_END_VERSIONED_NAMESPACE_DECL
+
#if defined (__ACE_INLINE__)
#include "ace/Atomic_Op.inl"
#endif /* __ACE_INLINE__ */
diff --git a/ACE/ace/Atomic_Op.inl b/ACE/ace/Atomic_Op.inl
index 4d55f05b091..123df4dc505 100644
--- a/ACE/ace/Atomic_Op.inl
+++ b/ACE/ace/Atomic_Op.inl
@@ -1,17 +1,23 @@
// -*- C++ -*-
-//
// $Id$
-#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
-
#if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
-# include "ace/os_include/os_intrin.h"
-
-#pragma intrinsic (_InterlockedExchange, _InterlockedExchangeAdd, _InterlockedIncrement, _InterlockedDecrement)
+# include "ace/os_include/os_intrin.h"
+# pragma intrinsic (_InterlockedExchange, _InterlockedExchangeAdd, _InterlockedIncrement, _InterlockedDecrement)
#endif /* ACE_HAS_INTRINSIC_INTERLOCKED */
+#if defined (ACE_HAS_VXATOMICLIB)
+# include <vxAtomicLib.h>
+#endif
+
+#if defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+# include <atomic.h>
+#endif
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
+
ACE_INLINE
ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (void)
: value_ (0)
@@ -38,6 +44,10 @@ 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;
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_inc_ulong_nv (reinterpret_cast<volatile unsigned long*>(&this->value_));
#else /* WIN32 */
return (*increment_fn_) (&this->value_);
#endif /* WIN32 */
@@ -56,6 +66,10 @@ 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;
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_dec_ulong_nv (reinterpret_cast<volatile unsigned long*>(&this->value_));
#else /* WIN32 */
return (*decrement_fn_) (&this->value_);
#endif /* WIN32 */
@@ -76,6 +90,10 @@ 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;
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_add_long_nv (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs);
#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
return (*exchange_add_fn_) (&this->value_, rhs) + rhs;
#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
@@ -90,6 +108,10 @@ 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;
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_add_long_nv (reinterpret_cast<volatile unsigned long*>(&this->value_), -rhs);
#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
return (*exchange_add_fn_) (&this->value_, -rhs) - rhs;
#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
@@ -138,6 +160,10 @@ 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);
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs);
#else /* WIN32 */
(*exchange_fn_) (&this->value_, rhs);
#endif /* WIN32 */
@@ -152,6 +178,10 @@ 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_);
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs.value_);
#else /* WIN32 */
(*exchange_fn_) (&this->value_, rhs.value_);
#endif /* WIN32 */
@@ -197,6 +227,10 @@ 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;
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_inc_ulong_nv (&this->value_);
#else /* WIN32 */
return static_cast<unsigned long> ((*increment_fn_) (reinterpret_cast<volatile long *> (&this->value_)));
#endif /* WIN32 */
@@ -215,6 +249,10 @@ 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;
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_dec_ulong_nv (&this->value_);
#else /* WIN32 */
return static_cast<unsigned long> ((*decrement_fn_) (reinterpret_cast<volatile long *> (&this->value_)));
#endif /* WIN32 */
@@ -235,6 +273,10 @@ 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;
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_add_long_nv (&this->value_, 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 +291,10 @@ 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;
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_add_long_nv (&this->value_, -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 +344,10 @@ 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);
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ ::atomic_swap_ulong (&this->value_, rhs);
#else /* WIN32 */
(*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs);
#endif /* WIN32 */
@@ -312,6 +362,10 @@ 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_);
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ ::atomic_swap_ulong (&this->value_, rhs.value_);
#else /* WIN32 */
(*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs.value_);
#endif /* WIN32 */
@@ -330,6 +384,198 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::value_i (void)
return this->value_;
}
+#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
+
+#if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<int> ()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op (int c) :
+ ACE_Atomic_Op_GCC<int>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, int> &c) :
+ ACE_Atomic_Op_GCC<int>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, int>&
+ACE_Atomic_Op<ACE_Thread_Mutex, int>::operator= (int rhs)
+{
+ ACE_Atomic_Op_GCC<int>::operator= (rhs);
+ return *this;
+}
+
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<unsigned int>()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int> &c) :
+ ACE_Atomic_Op_GCC<unsigned int>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op (unsigned int c) :
+ ACE_Atomic_Op_GCC<unsigned int>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>&
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::operator= (unsigned int rhs)
+{
+ ACE_Atomic_Op_GCC<unsigned int>::operator= (rhs);
+ return *this;
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<long>()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (long c) :
+ ACE_Atomic_Op_GCC<long>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &c) :
+ ACE_Atomic_Op_GCC<long>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, long>&
+ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (long rhs)
+{
+ ACE_Atomic_Op_GCC<long>::operator= (rhs);
+ return *this;
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<unsigned long> ()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (unsigned long c) :
+ ACE_Atomic_Op_GCC<unsigned long>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &c) :
+ ACE_Atomic_Op_GCC<unsigned long>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>&
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (unsigned long rhs)
+{
+ ACE_Atomic_Op_GCC<unsigned long>::operator= (rhs);
+ return *this;
+}
+
+#if !defined (ACE_LACKS_GCC_ATOMIC_BUILTINS_2)
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<short>()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (short c) :
+ ACE_Atomic_Op_GCC<short>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, short> &c) :
+ ACE_Atomic_Op_GCC<short>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, short>&
+ACE_Atomic_Op<ACE_Thread_Mutex, short>::operator= (short rhs)
+{
+ ACE_Atomic_Op_GCC<short>::operator= (rhs);
+ return *this;
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<unsigned short> ()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (unsigned short c) :
+ ACE_Atomic_Op_GCC<unsigned short>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short> &c) :
+ ACE_Atomic_Op_GCC<unsigned short>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>&
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::operator= (unsigned short rhs)
+{
+ ACE_Atomic_Op_GCC<unsigned short>::operator= (rhs);
+ return *this;
+}
+#endif
+
+#if !defined (ACE_LACKS_GCC_ATOMIC_BUILTINS_1)
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<bool> ()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (bool c) :
+ ACE_Atomic_Op_GCC<bool>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, bool> &c) :
+ ACE_Atomic_Op_GCC<bool>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>&
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>::operator= (bool rhs)
+{
+ ACE_Atomic_Op_GCC<bool>::operator= (rhs);
+ return *this;
+}
+#endif
+
+#endif /* ACE_HAS_GCC_ATOMIC_BUILTINS==1 */
+
ACE_END_VERSIONED_NAMESPACE_DECL
-#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
diff --git a/ACE/ace/Atomic_Op_GCC_T.cpp b/ACE/ace/Atomic_Op_GCC_T.cpp
new file mode 100644
index 00000000000..0892dc5a5b7
--- /dev/null
+++ b/ACE/ace/Atomic_Op_GCC_T.cpp
@@ -0,0 +1,25 @@
+// $Id$
+
+#include "ace/OS_NS_unistd.h"
+
+#if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Atomic_Op_GCC_T.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <typename T>
+void
+ACE_Atomic_Op_GCC<T>::dump (void) const
+{
+#if defined (ACE_HAS_DUMP)
+ ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
+ ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
+#endif /* ACE_HAS_DUMP */
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_GCC_ATOMIC_BUILTINS */
diff --git a/ACE/ace/Atomic_Op_GCC_T.h b/ACE/ace/Atomic_Op_GCC_T.h
new file mode 100644
index 00000000000..348be5e95e0
--- /dev/null
+++ b/ACE/ace/Atomic_Op_GCC_T.h
@@ -0,0 +1,136 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Atomic_Op_GCC_T.h
+ *
+ * $Id$
+ *
+ * @author Johnny Willemsen <jwillemsen@remedy.nl
+ */
+//=============================================================================
+
+#ifndef ACE_ATOMIC_OP_GCC_T_H
+#define ACE_ATOMIC_OP_GCC_T_H
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Thread_Mutex.h"
+#include "ace/ACE_export.h"
+
+#if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @brief Specialization of ACE_Atomic_Op for platforms that
+ * support atomic integer operations.
+ *
+ * Specialization of ACE_Atomic_Op for platforms that support atomic
+ * integer operations.
+ */
+template<typename T>
+class ACE_Export ACE_Atomic_Op_GCC
+{
+public:
+ /// Atomically pre-increment @c value_.
+ T operator++ (void);
+
+ /// Atomically post-increment @c value_.
+ T operator++ (int);
+
+ /// Atomically increment @c value_ by rhs.
+ T operator+= (T rhs);
+
+ /// Atomically pre-decrement @c value_.
+ T operator-- (void);
+
+ /// Atomically post-decrement @c value_.
+ T operator-- (int);
+
+ /// Atomically decrement @c value_ by rhs.
+ T operator-= (T rhs);
+
+ /// Atomically compare @c value_ with rhs.
+ bool operator== (T rhs) const;
+
+ /// Atomically compare @c value_ with rhs.
+ bool operator!= (T rhs) const;
+
+ /// Atomically check if @c value_ greater than or equal to rhs.
+ bool operator>= (T rhs) const;
+
+ /// Atomically check if @c value_ greater than rhs.
+ bool operator> (T rhs) const;
+
+ /// Atomically check if @c value_ less than or equal to rhs.
+ bool operator<= (T rhs) const;
+
+ /// Atomically check if @c value_ less than rhs.
+ bool operator< (T rhs) const;
+
+ /// Explicitly return @c value_.
+ T value (void) const;
+
+ /// Dump the state of an object.
+ void dump (void) const;
+
+ /// Explicitly return @c value_ (by reference).
+ volatile T &value_i (void);
+
+ // ACE_ALLOC_HOOK_DECLARE;
+ // Declare the dynamic allocation hooks.
+
+protected:
+ /// Atomically assign rhs to @c value_.
+ ACE_Atomic_Op_GCC<T> &operator= (T rhs);
+
+ /// Atomically assign <rhs> to @c value_.
+ ACE_Atomic_Op_GCC<T> &operator= (const ACE_Atomic_Op_GCC<T> &rhs);
+
+ /// Initialize @c value_ to 0.
+ ACE_Atomic_Op_GCC (void);
+
+ /// Initialize @c value_ to c.
+ ACE_Atomic_Op_GCC (T c);
+
+ /// Manage copying...
+ ACE_Atomic_Op_GCC (const ACE_Atomic_Op_GCC<T> &c);
+
+private:
+
+ // This function cannot be supported by this template specialization.
+ // If you need access to an underlying lock, use the ACE_Atomic_Op_Ex
+ // template instead.
+ ACE_Thread_Mutex &mutex (void);
+
+private:
+
+ /// Current object decorated by the atomic op.
+ volatile T value_;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/Atomic_Op_GCC_T.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Atomic_Op_GCC_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Atomic_Op_GCC_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+
+#endif /* ACE_HAS_GCC_ATOMIC_BUILTINS */
+
+#include /**/ "ace/post.h"
+#endif /*ACE_ATOMIC_OP_GCC_T_H*/
diff --git a/ACE/ace/Atomic_Op_GCC_T.inl b/ACE/ace/Atomic_Op_GCC_T.inl
new file mode 100644
index 00000000000..de3bf1a1438
--- /dev/null
+++ b/ACE/ace/Atomic_Op_GCC_T.inl
@@ -0,0 +1,147 @@
+// -*- C++ -*-
+// $Id$
+
+#if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <typename T>
+ACE_INLINE
+ACE_Atomic_Op_GCC<T>::ACE_Atomic_Op_GCC (void)
+ : value_ (0)
+{
+}
+
+template <typename T>
+ACE_INLINE
+ACE_Atomic_Op_GCC<T>::ACE_Atomic_Op_GCC (T c)
+ : value_ (c)
+{
+}
+
+template <typename T>
+ACE_INLINE
+ACE_Atomic_Op_GCC<T>::ACE_Atomic_Op_GCC (
+ const ACE_Atomic_Op_GCC<T> &rhs)
+ : value_ (rhs.value_)
+{
+}
+
+template <typename T>
+ACE_INLINE T
+ACE_Atomic_Op_GCC<T>::operator++ (void)
+{
+ return __sync_add_and_fetch (&this->value_, 1);
+}
+
+template <typename T>
+ACE_INLINE T
+ACE_Atomic_Op_GCC<T>::operator++ (int)
+{
+ return __sync_fetch_and_add (&this->value_, 1);
+}
+
+template <typename T>
+ACE_INLINE T
+ACE_Atomic_Op_GCC<T>::operator-- (void)
+{
+ return __sync_sub_and_fetch (&this->value_, 1);
+}
+
+template <typename T>
+ACE_INLINE T
+ACE_Atomic_Op_GCC<T>::operator-- (int)
+{
+ return __sync_fetch_and_sub (&this->value_, 1);
+}
+
+template <typename T>
+ACE_INLINE T
+ACE_Atomic_Op_GCC<T>::operator+= (T rhs)
+{
+ return __sync_add_and_fetch (&this->value_, rhs);
+}
+
+template <typename T>
+ACE_INLINE T
+ACE_Atomic_Op_GCC<T>::operator-= (T rhs)
+{
+ return __sync_sub_and_fetch (&this->value_, rhs);
+}
+
+template <typename T>
+ACE_INLINE bool
+ACE_Atomic_Op_GCC<T>::operator== (T rhs) const
+{
+ return (this->value_ == rhs);
+}
+
+template <typename T>
+ACE_INLINE bool
+ACE_Atomic_Op_GCC<T>::operator!= (T rhs) const
+{
+ return (this->value_ != rhs);
+}
+
+template <typename T>
+ACE_INLINE bool
+ACE_Atomic_Op_GCC<T>::operator>= (T rhs) const
+{
+ return (this->value_ >= rhs);
+}
+
+template <typename T>
+ACE_INLINE bool
+ACE_Atomic_Op_GCC<T>::operator> (T rhs) const
+{
+ return (this->value_ > rhs);
+}
+
+template <typename T>
+ACE_INLINE bool
+ACE_Atomic_Op_GCC<T>::operator<= (T rhs) const
+{
+ return (this->value_ <= rhs);
+}
+
+template <typename T>
+ACE_INLINE bool
+ACE_Atomic_Op_GCC<T>::operator< (T rhs) const
+{
+ return (this->value_ < rhs);
+}
+
+template <typename T>
+ACE_INLINE ACE_Atomic_Op_GCC<T> &
+ACE_Atomic_Op_GCC<T>::operator= (T rhs)
+{
+ (void) __sync_lock_test_and_set (&this->value_, rhs);
+ return *this;
+}
+
+template <typename T>
+ACE_INLINE ACE_Atomic_Op_GCC<T> &
+ACE_Atomic_Op_GCC<T>::operator= (
+ const ACE_Atomic_Op_GCC<T> &rhs)
+{
+ (void) __sync_lock_test_and_set (&this->value_, rhs.value_);
+ return *this;
+}
+
+template <typename T>
+ACE_INLINE T
+ACE_Atomic_Op_GCC<T>::value (void) const
+{
+ return this->value_;
+}
+
+template <typename T>
+ACE_INLINE volatile T &
+ACE_Atomic_Op_GCC<T>::value_i (void)
+{
+ return this->value_;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_GCC_ATOMIC_BUILTINS */
diff --git a/ACE/ace/Atomic_Op_T.cpp b/ACE/ace/Atomic_Op_T.cpp
index ad8f6b01059..2163ac7f678 100644
--- a/ACE/ace/Atomic_Op_T.cpp
+++ b/ACE/ace/Atomic_Op_T.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#ifndef ACE_ATOMIC_OP_T_CPP
#define ACE_ATOMIC_OP_T_CPP
@@ -20,8 +22,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Atomic_Op_Ex)
ACE_ALLOC_HOOK_DEFINE(ACE_Atomic_Op)
-ACE_RCSID(ace, Atomic_Op_T, "$Id$")
-
// *************************************************
template <class ACE_LOCK, class TYPE> ACE_LOCK &
ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::mutex (void)
diff --git a/ACE/ace/Atomic_Op_T.h b/ACE/ace/Atomic_Op_T.h
index cf9fbda184d..75ca728351a 100644
--- a/ACE/ace/Atomic_Op_T.h
+++ b/ACE/ace/Atomic_Op_T.h
@@ -220,11 +220,12 @@ public:
ACE_Atomic_Op_Ex (ACE_Atomic_Op_Ex<ACE_LOCK, TYPE> const &);
/**
- * Returns a reference to the underlying <ACE_LOCK>. This makes it
+ * Returns a reference to the underlying ACE_LOCK. This makes it
* possible to acquire the lock explicitly, which can be useful in
- * some cases if you instantiate the <ACE_Atomic_Op_Ex> with an
- * ACE_Recursive_Mutex or ACE_Process_Mutex. @note the right
- * name would be lock_, but HP/C++ will choke on that!
+ * some cases if you instantiate the ACE_Atomic_Op_Ex with an
+ * ACE_Recursive_Mutex or ACE_Process_Mutex.
+ *
+ * @note The right name would be lock_, but HP/C++ will choke on that!
*/
ACE_LOCK & mutex (void);
@@ -274,10 +275,10 @@ public:
/// Manage copying...
ACE_Atomic_Op (ACE_Atomic_Op<ACE_LOCK, TYPE> const & c);
- /// Atomically assign rhs to @c value_.
+ /// Atomically assign @a rhs to @c value_.
ACE_Atomic_Op<ACE_LOCK, TYPE> & operator= (arg_type rhs);
- /// Atomically assign <rhs> to @c value_.
+ /// Atomically assign @a rhs to @c value_.
ACE_Atomic_Op<ACE_LOCK, TYPE> & operator= (
ACE_Atomic_Op<ACE_LOCK, TYPE> const & rhs);
@@ -296,25 +297,25 @@ public:
/// Atomically post-decrement @c value_.
TYPE operator-- (int);
- /// Atomically decrement @c value_ by rhs.
+ /// Atomically decrement @c value_ by @a rhs.
TYPE operator-= (arg_type rhs);
- /// Atomically compare @c value_ with rhs.
+ /// Atomically compare @c value_ with @a rhs.
bool operator== (arg_type rhs) const;
- /// Atomically compare @c value_ with rhs.
+ /// Atomically compare @c value_ with @a rhs.
bool operator!= (arg_type rhs) const;
- /// Atomically check if @c value_ greater than or equal to rhs.
+ /// Atomically check if @c value_ greater than or equal to @a rhs.
bool operator>= (arg_type rhs) const;
- /// Atomically check if @c value_ greater than rhs.
+ /// Atomically check if @c value_ greater than @a rhs.
bool operator> (arg_type rhs) const;
- /// Atomically check if @c value_ less than or equal to rhs.
+ /// Atomically check if @c value_ less than or equal to @a rhs.
bool operator<= (arg_type rhs) const;
- /// Atomically check if @c value_ less than rhs.
+ /// Atomically check if @c value_ less than @a rhs.
bool operator< (arg_type rhs) const;
/// Explicitly return @c value_.
@@ -324,18 +325,6 @@ public:
void dump (void) const;
/**
- * Returns a reference to the underlying <ACE_LOCK>. This makes it
- * possible to acquire the lock explicitly, which can be useful in
- * some cases if you instantiate the ACE_Atomic_Op with an
- * ACE_Recursive_Mutex or ACE_Process_Mutex.
- *
- * @deprecated This member function is deprecated and so may go away in
- * the future. If you need access to the underlying mutex, consider
- * using the ACE_Atomic_Op_Ex template instead.
- */
- ACE_LOCK & mutex (void);
-
- /**
* Explicitly return @c value_ (by reference). This gives the user
* full, unrestricted access to the underlying value. This method
* will usually be used in conjunction with explicit access to the
diff --git a/ACE/ace/Atomic_Op_T.inl b/ACE/ace/Atomic_Op_T.inl
index 3d09ba304fe..def9e9a435d 100644
--- a/ACE/ace/Atomic_Op_T.inl
+++ b/ACE/ace/Atomic_Op_T.inl
@@ -322,14 +322,6 @@ ACE_Atomic_Op<ACE_LOCK, TYPE>::dump (void) const
#endif /* ACE_HAS_DUMP */
return;
}
-
-template <class ACE_LOCK, class TYPE>
-ACE_INLINE ACE_LOCK &
-ACE_Atomic_Op<ACE_LOCK, TYPE>::mutex (void)
-{
- return this->own_mutex_;
-}
-
template <class ACE_LOCK, class TYPE>
ACE_INLINE TYPE &
ACE_Atomic_Op<ACE_LOCK, TYPE>::value_i (void)
diff --git a/ACE/ace/Auto_Event.cpp b/ACE/ace/Auto_Event.cpp
index 9e106ac8119..595e57142aa 100644
--- a/ACE/ace/Auto_Event.cpp
+++ b/ACE/ace/Auto_Event.cpp
@@ -6,10 +6,6 @@
#include "ace/Auto_Event.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Auto_Event,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Auto_Event::ACE_Auto_Event (int initial_state,
diff --git a/ACE/ace/Auto_Event.h b/ACE/ace/Auto_Event.h
index c4ee11509bb..64bc69e6d27 100644
--- a/ACE/ace/Auto_Event.h
+++ b/ACE/ace/Auto_Event.h
@@ -32,7 +32,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @brief Auto Events.
*
* Specialization of Event mechanism which wakes up one waiting
- * thread on <signal>. All platforms support process-scope locking
+ * thread on @c signal. All platforms support process-scope locking
* support. However, only Win32 platforms support global naming and
* system-scope locking support.
*/
diff --git a/ACE/ace/Auto_Functor.h b/ACE/ace/Auto_Functor.h
index 4ca55184b9a..e8bee680e37 100644
--- a/ACE/ace/Auto_Functor.h
+++ b/ACE/ace/Auto_Functor.h
@@ -69,13 +69,11 @@ public:
Auto_Functor<X,Functor>& operator= (Auto_Functor & rhs); // throw()
-#if !defined(ACE_LACKS_MEMBER_TEMPLATES)
template<typename Y>
Auto_Functor(Auto_Functor<Y,Functor>& rhs); // throw()
template<typename Y>
Auto_Functor<X,Functor>& operator= (Auto_Functor<Y,Functor>& rhs); // throw()
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
~Auto_Functor(); // throw()
@@ -97,13 +95,9 @@ public:
Auto_Functor<X,Functor> & operator=(Auto_Functor_Ref<X,Functor> rhs); // throw()
-#if !defined(ACE_LACKS_MEMBER_TEMPLATES)
template<typename Y> operator Auto_Functor_Ref<Y,Functor>(); // throw()
template<typename Y> operator Auto_Functor<Y,Functor>(); // throw()
-#else
- operator Auto_Functor_Ref<X,Functor>(); // throw()
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
private:
X * p_;
diff --git a/ACE/ace/Auto_Functor.inl b/ACE/ace/Auto_Functor.inl
index 01f35b87eb5..01dd208df1a 100644
--- a/ACE/ace/Auto_Functor.inl
+++ b/ACE/ace/Auto_Functor.inl
@@ -35,7 +35,6 @@ ACE_Utils::Auto_Functor<X,Functor>:: operator=(Auto_Functor & rhs)
return *this;
}
-#if !defined(ACE_LACKS_MEMBER_TEMPLATES)
template<typename X, typename Functor> template<typename Y> ACE_INLINE
ACE_Utils::Auto_Functor<X,Functor>::Auto_Functor(Auto_Functor<Y,Functor>& rhs)
: p_(rhs.release())
@@ -50,7 +49,6 @@ ACE_Utils::Auto_Functor<X,Functor>::operator=(Auto_Functor<Y,Functor>& rhs)
reset(rhs.release());
return *this;
}
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
template<typename X, typename Functor> ACE_INLINE X &
ACE_Utils::Auto_Functor<X,Functor>::operator*() const
@@ -107,8 +105,6 @@ ACE_Utils::Auto_Functor<X,Functor>::operator=(Auto_Functor_Ref<X,Functor> rhs)
return *this;
}
-#if !defined(ACE_LACKS_MEMBER_TEMPLATES)
-
template<typename X, typename Functor> template<typename Y> ACE_INLINE
ACE_Utils::Auto_Functor<X,Functor>::operator ACE_Utils::Auto_Functor_Ref<Y,Functor>()
{
@@ -121,14 +117,4 @@ ACE_Utils::Auto_Functor<X,Functor>::operator ACE_Utils::Auto_Functor<Y,Functor>(
return ACE_Utils::Auto_Functor<Y,Functor>(release(), f_);
}
-#else
-
-template<typename X, typename Functor>ACE_INLINE
-ACE_Utils::Auto_Functor<X,Functor>::operator ACE_Utils::Auto_Functor_Ref<X,Functor>()
-{
- return ACE_Utils::Auto_Functor_Ref<X,Functor>(release(), f_);
-}
-
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Auto_IncDec_T.h b/ACE/ace/Auto_IncDec_T.h
index 70619f28604..437b5fe4780 100644
--- a/ACE/ace/Auto_IncDec_T.h
+++ b/ACE/ace/Auto_IncDec_T.h
@@ -34,14 +34,13 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*
* This data structure is meant to be used within a method,
* function, or scope. The actual parameter given for the
- * <ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> template parameter
+ * @c ACE_SAFELY_INCREMENTABLE_DECREMENTABLE template parameter
* must provide at least operators ++ and --.
*/
template <class ACE_SAFELY_INCREMENTABLE_DECREMENTABLE>
-class ACE_Auto_IncDec
+class ACE_Auto_IncDec : private ACE_Copy_Disabled
{
public:
-
/// Implicitly increment the counter.
ACE_Auto_IncDec (ACE_SAFELY_INCREMENTABLE_DECREMENTABLE &counter);
@@ -52,16 +51,9 @@ public:
void dump (void) const;
protected:
- /// Reference to the <ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> counter
+ /// Reference to the @c ACE_SAFELY_INCREMENTABLE_DECREMENTABLE counter
/// we're incrementing/decrementing.
ACE_SAFELY_INCREMENTABLE_DECREMENTABLE &counter_;
-
-private:
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const
- ACE_Auto_IncDec<ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Auto_IncDec (const
- ACE_Auto_IncDec<ACE_SAFELY_INCREMENTABLE_DECREMENTABLE> &))
};
ACE_END_VERSIONED_NAMESPACE_DECL
@@ -72,14 +64,6 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
#include "ace/Auto_IncDec_T.cpp"
-// On Win32 platforms, this code will be included as template source
-// code and will not be inlined. Therefore, we first turn off
-// ACE_INLINE, set it to be nothing, include the code, and then turn
-// ACE_INLINE back to its original setting. All this nonsense is
-// necessary, since the generic template code that needs to be
-// specialized cannot be inlined, else the compiler will ignore the
-// specialization code. Also, the specialization code *must* be
-// inlined or the compiler will ignore the specializations.
#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
diff --git a/ACE/ace/Auto_Ptr.cpp b/ACE/ace/Auto_Ptr.cpp
index 081744ce316..29279ee3050 100644
--- a/ACE/ace/Auto_Ptr.cpp
+++ b/ACE/ace/Auto_Ptr.cpp
@@ -9,7 +9,7 @@
#include "ace/Auto_Ptr.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Auto_Ptr, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Auto_Ptr.h b/ACE/ace/Auto_Ptr.h
index ec955d30b21..e407bc44d42 100644
--- a/ACE/ace/Auto_Ptr.h
+++ b/ACE/ace/Auto_Ptr.h
@@ -106,9 +106,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @brief Implements the draft C++ standard auto_ptr abstraction.
- * This version can be used instead of auto_ptr<T>, and obviates
- * the need for the ACE_AUTO_PTR_RESET macro on platforms like
- * VC6 where the auto_ptr<T> is broken.
+ * This version can be used instead of auto_ptr<T>
*/
template <typename X>
class ACE_Auto_Ptr : public ACE_Auto_Basic_Ptr <X>
@@ -209,18 +207,6 @@ ACE_auto_ptr_reset (AUTO_PTR_TYPE & ap,
ACE_END_VERSIONED_NAMESPACE_DECL
-// Some platforms have an older version of auto_ptr
-// support, which lacks reset, and cannot be disabled
-// easily. Portability to these platforms requires
-// use of the following ACE_AUTO_PTR_RESET macro.
-//
-// The TYPE macro parameter is no longer necessary but we leave it
-// around for backward compatibility. This is also the reason why the
-// ACE_auto_ptr_reset function template is not called
-// ACE_AUTO_PTR_RESET.
-# define ACE_AUTO_PTR_RESET(AUTOPTR,NEWPTR,TYPE) \
- ACE_auto_ptr_reset (AUTOPTR, NEWPTR);
-
#if defined (__ACE_INLINE__)
#include "ace/Auto_Ptr.inl"
#endif /* __ACE_INLINE__ */
diff --git a/ACE/ace/Barrier.cpp b/ACE/ace/Barrier.cpp
index eac2da3179b..b5eb518a5d2 100644
--- a/ACE/ace/Barrier.cpp
+++ b/ACE/ace/Barrier.cpp
@@ -15,10 +15,6 @@
# include "ace/Log_Msg.h"
#endif /* ACE_HAS_DUMP */
-ACE_RCSID (ace,
- Barrier,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Sub_Barrier)
@@ -171,26 +167,6 @@ ACE_Thread_Barrier::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-#if 0
-ACE_ALLOC_HOOK_DEFINE(ACE_Process_Barrier)
-
-ACE_Process_Barrier::ACE_Process_Barrier (u_int count,
- const ACE_TCHAR *name)
- : ACE_Barrier (count, USYNC_PROCESS, name)
-{
-// ACE_TRACE ("ACE_Process_Barrier::ACE_Process_Barrier");
-}
-
-void
-ACE_Process_Barrier::dump (void) const
-{
-#if defined (ACE_HAS_DUMP)
-// ACE_TRACE ("ACE_Process_Barrier::dump");
- ACE_Barrier::dump ();
-#endif /* ACE_HAS_DUMP */
-}
-#endif /* 0 */
-
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_THREADS */
diff --git a/ACE/ace/Barrier.h b/ACE/ace/Barrier.h
index 00e22ec19f5..562d4467f11 100644
--- a/ACE/ace/Barrier.h
+++ b/ACE/ace/Barrier.h
@@ -101,7 +101,7 @@ public:
const ACE_TCHAR *name = 0,
void *arg = 0);
- /// Default dtor.
+ /// Default destructor.
~ACE_Barrier (void);
/// Block the caller until all @c count threads have called @c wait and
@@ -156,29 +156,6 @@ private:
ACE_Barrier (const ACE_Barrier &);
};
-#if 0
-/**
- * @class ACE_Process_Barrier
- *
- * @brief Implements "barrier synchronization" using ACE_Process_Mutexes!
- *
- * This class is just a simple wrapper for ACE_Barrier that
- * selects the USYNC_PROCESS variant for the locks.
- */
-class ACE_Export ACE_Process_Barrier : public ACE_Barrier
-{
-public:
- /// Create a Process_Barrier, passing in the optional @a name.
- ACE_Process_Barrier (unsigned int count, const ACE_TCHAR *name = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-};
-#endif /* 0 */
-
/**
* @class ACE_Thread_Barrier
*
@@ -193,7 +170,7 @@ public:
/// Create a Thread_Barrier, passing in the optional @a name.
ACE_Thread_Barrier (unsigned int count, const ACE_TCHAR *name = 0);
- /// Default dtor.
+ /// Default destructor.
~ACE_Thread_Barrier (void);
/// Dump the state of an object.
diff --git a/ACE/ace/Base_Thread_Adapter.cpp b/ACE/ace/Base_Thread_Adapter.cpp
index 9c9332c5fe8..3ff9f17fd32 100644
--- a/ACE/ace/Base_Thread_Adapter.cpp
+++ b/ACE/ace/Base_Thread_Adapter.cpp
@@ -2,10 +2,6 @@
#include "ace/Base_Thread_Adapter.h"
-ACE_RCSID (ace,
- Base_Thread_Adapter,
- "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/Base_Thread_Adapter.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -33,12 +29,14 @@ ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter (
, ACE_SEH_EXCEPT_HANDLER selector
, ACE_SEH_EXCEPT_HANDLER handler
#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags
)
: user_func_ (user_func)
, arg_ (arg)
, entry_point_ (entry_point)
, thr_desc_ (td)
, ctx_ (ACE_Service_Config::current())
+ , flags_ (cancel_flags)
{
ACE_OS_TRACE ("ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter");
diff --git a/ACE/ace/Base_Thread_Adapter.h b/ACE/ace/Base_Thread_Adapter.h
index 0109a4d4647..cf15ad75f84 100644
--- a/ACE/ace/Base_Thread_Adapter.h
+++ b/ACE/ace/Base_Thread_Adapter.h
@@ -33,9 +33,8 @@
# define ACE_THREAD_ADAPTER_NAME ace_thread_adapter
#endif /* ACE_HAS_VERSIONED_NAMESPACE == 1 */
-// Run the thread entry point for the ACE_Thread_Adapter. This must
-// be an extern "C" to make certain compilers happy...
-
+/// Run the thread entry point for the ACE_Thread_Adapter. This must
+/// be an extern "C" to make certain compilers happy...
extern "C" ACE_Export ACE_THR_FUNC_RETURN ACE_THREAD_ADAPTER_NAME (void *args);
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -61,17 +60,14 @@ protected:
/**
* Keeps track of whether this thread was created "detached" or not.
* If a thread is *not* created detached then if someone calls
- * <ACE_Thread_Manager::wait>, we need to join with that thread (and
+ * ACE_Thread_Manager::wait(), we need to join with that thread (and
* close down the handle).
*/
long flags_;
};
-
-
class ACE_Service_Gestalt;
-
/**
* @class ACE_Base_Thread_Adapter
*
@@ -126,6 +122,7 @@ protected:
, ACE_SEH_EXCEPT_HANDLER selector = 0
, ACE_SEH_EXCEPT_HANDLER handler = 0
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags = 0
);
/// Inherit the logging features if the parent thread has an
/// ACE_Log_Msg.
@@ -162,8 +159,8 @@ protected:
/**
* Optional thread descriptor. Passing this pointer in will force
- * the spawned thread to cache this location in <Log_Msg> and wait
- * until <Thread_Manager> fills in all information in thread
+ * the spawned thread to cache this location in Log_Msg and wait
+ * until Thread_Manager fills in all information in thread
* descriptor.
*/
ACE_OS_Thread_Descriptor *thr_desc_;
@@ -171,7 +168,7 @@ protected:
/// The ACE_Log_Msg attributes.
ACE_OS_Log_Msg_Attributes log_msg_attributes_;
- /// That is usefull for gprof, define itimerval
+ /// That is useful for gprof, define itimerval
#ifdef ACE_USES_GPROF
struct itimerval itimer_;
#endif // ACE_USES_GPROF
@@ -179,6 +176,11 @@ protected:
/// Keep a reference to the configuration context that spawns the
/// thread so the child can inherit it.
ACE_Service_Gestalt * const ctx_;
+
+ /// Pass through the thread-creation flags that can only be acted on by
+ /// the spawned thread. Currently this is only the cancellation-related
+ /// flags.
+ long flags_;
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Basic_Stats.cpp b/ACE/ace/Basic_Stats.cpp
index 9c0b2a7c2f5..0122fa36469 100644
--- a/ACE/ace/Basic_Stats.cpp
+++ b/ACE/ace/Basic_Stats.cpp
@@ -7,10 +7,6 @@
#include "ace/Basic_Stats.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace,
- Basic_Stats,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
void
diff --git a/ACE/ace/Basic_Types.cpp b/ACE/ace/Basic_Types.cpp
index f2e055b991e..7edb337d253 100644
--- a/ACE/ace/Basic_Types.cpp
+++ b/ACE/ace/Basic_Types.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Basic_Types.h"
#if !defined (__ACE_INLINE__)
@@ -5,11 +7,6 @@
#endif /* ! __ACE_INLINE__ */
-ACE_RCSID (ace,
- Basic_Types,
- "$Id$")
-
-
#if defined (ACE_LACKS_LONGLONG_T) && !defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
# include "ace/Log_Msg.h"
# include "ace/OS_NS_stdio.h"
diff --git a/ACE/ace/Basic_Types.h b/ACE/ace/Basic_Types.h
index 0643cac467e..7153552084d 100644
--- a/ACE/ace/Basic_Types.h
+++ b/ACE/ace/Basic_Types.h
@@ -25,7 +25,6 @@
* - ACE_SIZEOF_LONG_DOUBLE
*
* Wrappers for built-in types of specific sizes:
- * - ACE_USHORT16 (For backward compatibility. Use ACE_UINT16 instead.)
* - ACE_INT8
* - ACE_UINT8
* - ACE_INT16
@@ -327,10 +326,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
# endif /* defined (ACE_UINT64_TYPE) */
#endif /* !(ACE_LACKS_LONGLONG_T || ACE_LACKS_UNSIGNEDLONGLONG_T) */
-
-typedef ACE_UINT16 ACE_USHORT16; // @@ Backward compatibility.
-
-// Define a generic byte for use in codecs
+/// Define a generic byte for use in codecs
typedef unsigned char ACE_Byte;
// Define a pseudo wide character type when wchar is not supported so we
@@ -349,13 +345,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.
@@ -719,7 +708,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
# if defined (PRId8)
# define ACE_INT8_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRId8)
# else
-# define ACE_INT8_FORMAT_SPECIFIER ACE_TEXT (ACE_INT8_FORMAT_SPECIFIER)
+# define ACE_INT8_FORMAT_SPECIFIER ACE_TEXT (ACE_INT8_FORMAT_SPECIFIER_ASCII)
# endif /* defined (PRId8) */
#endif /* ACE_INT8_FORMAT_SPECIFIER */
@@ -908,13 +897,17 @@ ACE_END_VERSIONED_NAMESPACE_DECL
# if LDBL_MAX_EXP == 128
# define ACE_SIZEOF_LONG_DOUBLE 4
# elif LDBL_MAX_EXP == 1024
-# define ACE_SIZEOF_LONG_DOUBLE 8
+# if defined (__powerpc64__)
+# define ACE_SIZEOF_LONG_DOUBLE 16
+# else
+# define ACE_SIZEOF_LONG_DOUBLE 8
+# endif
# elif LDBL_MAX_EXP == 16384
# if defined (LDBL_DIG) && LDBL_DIG == 18
# if defined (__ia64) || defined (__x86_64)
# define ACE_SIZEOF_LONG_DOUBLE 16
-# else /* ! __ia64 */
-# define ACE_SIZEOF_LONG_DOUBLE 12
+# else /* ! __ia64 || __x86_64 */
+# define ACE_SIZEOF_LONG_DOUBLE 12
# endif /* __ia64 */
# else /* ! LDBL_DIG || LDBL_DIG != 18 */
# define ACE_SIZEOF_LONG_DOUBLE 16
diff --git a/ACE/ace/Bound_Ptr.inl b/ACE/ace/Bound_Ptr.inl
index 5f5af57d4e5..570404e8520 100644
--- a/ACE/ace/Bound_Ptr.inl
+++ b/ACE/ace/Bound_Ptr.inl
@@ -67,7 +67,7 @@ ACE_Bound_Ptr_Counter<ACE_LOCK>::detach_strong (ACE_Bound_Ptr_Counter<ACE_LOCK>*
counter->obj_ref_count_ = -1;
if (--counter->self_ref_count_ == 0)
- // Since counter contains the lock held by the ACE_Guard, the
+ // Since counter contains the lock held by the guard, the
// guard needs to be released before freeing the memory holding
// the lock. So save the pointer to free, then release, then
// free.
@@ -112,7 +112,7 @@ ACE_Bound_Ptr_Counter<ACE_LOCK>::detach_weak (ACE_Bound_Ptr_Counter<ACE_LOCK>* c
ACE_GUARD (ACE_LOCK, guard, counter->lock_);
if (--counter->self_ref_count_ == 0)
- // Since counter contains the lock held by the ACE_Guard, the
+ // Since counter contains the lock held by the guard, the
// guard needs to be released before freeing the memory holding
// the lock. So save the pointer to free, then release, then
// free.
diff --git a/ACE/ace/CDR_Base.cpp b/ACE/ace/CDR_Base.cpp
index eb6f0bb0514..ca32c9fc503 100644
--- a/ACE/ace/CDR_Base.cpp
+++ b/ACE/ace/CDR_Base.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/CDR_Base.h"
#if !defined (__ACE_INLINE__)
@@ -8,10 +10,6 @@
#include "ace/OS_Memory.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace,
- CDR_Base,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
#if defined (NONNATIVE_LONGDOUBLE)
@@ -549,20 +547,22 @@ ACE_CDR::total_length (const ACE_Message_Block* begin,
return l;
}
-void
+int
ACE_CDR::consolidate (ACE_Message_Block *dst,
const ACE_Message_Block *src)
{
if (src == 0)
- return;
+ return 0;
- size_t newsize =
+ size_t const newsize =
ACE_CDR::first_size (ACE_CDR::total_length (src, 0)
+ ACE_CDR::MAX_ALIGNMENT);
- dst->size (newsize);
+
+ if (dst->size (newsize) == -1)
+ return -1;
#if !defined (ACE_CDR_IGNORE_ALIGNMENT)
- // We must copy the contents of <src> into the new buffer, but
+ // We must copy the contents of src into the new buffer, but
// respecting the alignment.
ptrdiff_t srcalign =
ptrdiff_t(src->rd_ptr ()) % ACE_CDR::MAX_ALIGNMENT;
@@ -586,6 +586,7 @@ ACE_CDR::consolidate (ACE_Message_Block *dst,
else
dst->wr_ptr (i->length ());
}
+ return 0;
}
#if defined (NONNATIVE_LONGLONG)
@@ -773,27 +774,4 @@ ACE_CDR::LongDouble::operator ACE_CDR::LongDouble::NativeImpl () const
}
#endif /* NONNATIVE_LONGDOUBLE */
-#if defined(_UNICOS) && !defined(_CRAYMPP)
-// placeholders to get things compiling
-ACE_CDR::Float::Float (void)
-{
-}
-
-ACE_CDR::Float::Float (const float & /* init */)
-{
-}
-
-ACE_CDR::Float &
-ACE_CDR::Float::operator= (const float & /* rhs */)
-{
- return *this;
-}
-
-bool
-ACE_CDR::Float::operator!= (const ACE_CDR::Float & /* rhs */) const
-{
- return false;
-}
-#endif /* _UNICOS */
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/CDR_Base.h b/ACE/ace/CDR_Base.h
index 94d28a4dd86..d7bd2937be8 100644
--- a/ACE/ace/CDR_Base.h
+++ b/ACE/ace/CDR_Base.h
@@ -124,7 +124,7 @@ public:
/// Use whichever byte order is native to this machine.
BYTE_ORDER_NATIVE = ACE_CDR_BYTE_ORDER
};
-
+
/**
* Do byte swapping for each basic IDL type size. There exist only
* routines to put byte, halfword (2 bytes), word (4 bytes),
@@ -177,10 +177,14 @@ public:
*/
static int grow (ACE_Message_Block *mb, size_t minsize);
- /// Copy a message block chain into a single message block,
- /// preserving the alignment of the first message block of the
- /// original stream, not the following message blocks.
- static void consolidate (ACE_Message_Block *dst,
+ /**
+ * Copy a message block chain into a single message block,
+ * preserving the alignment of the first message block of the
+ * original stream, not the following message blocks.
+ * @retval -1 Failure
+ * @retval 0 Success.
+ */
+ static int consolidate (ACE_Message_Block *dst,
const ACE_Message_Block *src);
static size_t total_length (const ACE_Message_Block *begin,
@@ -205,7 +209,7 @@ public:
# if (defined (_MSC_VER)) || (defined (__BORLANDC__))
typedef __int64 LongLong;
-# elif ACE_SIZEOF_LONG == 8 && !defined(_CRAYMPP)
+# elif ACE_SIZEOF_LONG == 8
typedef long LongLong;
# elif defined(__TANDEM)
typedef long long LongLong;
@@ -216,7 +220,6 @@ public:
// complain about no ANSI C++ long long.
typedef longlong_t LongLong;
# else
- // LynxOS 2.5.0 and Linux don't have u_longlong_t.
typedef long long LongLong;
# endif /* sun */
# else /* no native 64 bit integer type */
@@ -260,12 +263,6 @@ public:
# else /* ACE_SIZEOF_INT != 4 */
// Applications will probably have trouble with this.
char f[4];
-# if defined(_UNICOS) && !defined(_CRAYMPP)
- Float (void);
- Float (const float &init);
- Float & operator= (const float &rhs);
- bool operator!= (const Float &rhs) const;
-# endif /* _UNICOS */
# endif /* ACE_SIZEOF_INT != 4 */
};
# endif /* ACE_SIZEOF_FLOAT != 4 */
diff --git a/ACE/ace/CDR_Size.cpp b/ACE/ace/CDR_Size.cpp
index d221eb23033..6573825bd5e 100644
--- a/ACE/ace/CDR_Size.cpp
+++ b/ACE/ace/CDR_Size.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/CDR_Size.h"
#include "ace/SString.h"
#include "ace/OS_Memory.h"
@@ -7,10 +9,6 @@
# include "ace/CDR_Size.inl"
#endif /* ! __ACE_INLINE__ */
-ACE_RCSID (ace,
- CDR_Size,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_CDR::Boolean
@@ -23,13 +21,13 @@ ACE_SizeCDR::write_wchar (ACE_CDR::WChar x)
errno = EACCES;
return (this->good_bit_ = false);
}
-
+
if (static_cast<ACE_CDR::Short> (major_version_) == 1
&& static_cast<ACE_CDR::Short> (minor_version_) == 2)
{
ACE_CDR::Octet len =
static_cast<ACE_CDR::Octet> (ACE_OutputCDR::wchar_maxbytes ());
-
+
if (this->write_1 (&len))
{
if (ACE_OutputCDR::wchar_maxbytes () == sizeof(ACE_CDR::WChar))
@@ -65,7 +63,7 @@ ACE_SizeCDR::write_wchar (ACE_CDR::WChar x)
errno = EINVAL;
return (this->good_bit_ = false);
}
-
+
if (ACE_OutputCDR::wchar_maxbytes () == sizeof (ACE_CDR::WChar))
{
const void *temp = &x;
@@ -76,7 +74,7 @@ ACE_SizeCDR::write_wchar (ACE_CDR::WChar x)
ACE_CDR::Short sx = static_cast<ACE_CDR::Short> (x);
return this->write_2 (reinterpret_cast<const ACE_CDR::UShort *> (&sx));
}
-
+
ACE_CDR::Octet ox = static_cast<ACE_CDR::Octet> (x);
return this->write_1 (reinterpret_cast<const ACE_CDR::Octet *> (&ox));
}
@@ -138,9 +136,9 @@ ACE_SizeCDR::write_wstring (ACE_CDR::ULong len,
this->write_ulong (
ACE_Utils::truncate_cast<ACE_CDR::ULong> (
ACE_OutputCDR::wchar_maxbytes () * len));
-
+
if (good_ulong)
- {
+ {
return this->write_wchar_array (x, len);
}
}
diff --git a/ACE/ace/CDR_Size.h b/ACE/ace/CDR_Size.h
index a7ff689479b..7ee009e0fdd 100644
--- a/ACE/ace/CDR_Size.h
+++ b/ACE/ace/CDR_Size.h
@@ -13,7 +13,7 @@
* The current implementation assumes that the host has 1-byte,
* 2-byte and 4-byte integral types, and that it has single
* precision and double precision IEEE floats.
- * Those assumptions are pretty good these days, with Crays beign
+ * Those assumptions are pretty good these days, with Crays being
* the only known exception.
*
*
diff --git a/ACE/ace/CDR_Stream.cpp b/ACE/ace/CDR_Stream.cpp
index f00a4c0c5b3..7307cba4759 100644
--- a/ACE/ace/CDR_Stream.cpp
+++ b/ACE/ace/CDR_Stream.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/CDR_Stream.h"
#include "ace/SString.h"
#include "ace/Auto_Ptr.h"
@@ -7,10 +9,6 @@
# include "ace/CDR_Stream.inl"
#endif /* ! __ACE_INLINE__ */
-ACE_RCSID (ace,
- CDR_Stream,
- "$Id$")
-
// ****************************************************************
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -533,7 +531,7 @@ ACE_OutputCDR::write_8 (const ACE_CDR::ULongLong *x)
if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0)
{
-#if defined (__arm__)
+#if defined (__arm__) && !defined (ACE_HAS_IPHONE)
// Convert to Intel format (12345678 => 56781234)
const char *orig = reinterpret_cast<const char *> (x);
char *target = buf;
@@ -1612,7 +1610,7 @@ ACE_InputCDR::read_8 (ACE_CDR::ULongLong *x)
if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0)
{
#if !defined (ACE_DISABLE_SWAP_ON_READ)
-# if defined (__arm__)
+# if defined (__arm__) && !defined (ACE_HAS_IPHONE)
if (!this->do_byte_swap_)
{
// Convert from Intel format (12345678 => 56781234)
diff --git a/ACE/ace/CE_Screen_Output.h b/ACE/ace/CE_Screen_Output.h
index e3ca13de295..7654e3a3c8a 100644
--- a/ACE/ace/CE_Screen_Output.h
+++ b/ACE/ace/CE_Screen_Output.h
@@ -39,7 +39,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*
* This class allows standard text output to be displayed on
* text window for Windows CE. Generally, all ACE output will
- * go through under CE if and only if user uses WindozeCE
+ * go through under CE if and only if user uses Windows CE
* implementation by using main_ce instead of main.
* Also, for the easier debugging purpose, object pointer of
* this class can be gotten from ACE_Log_Msg::msg_callback()
diff --git a/ACE/ace/CORBA_macros.h b/ACE/ace/CORBA_macros.h
index 22ded9a54b3..d30f4c6b354 100644
--- a/ACE/ace/CORBA_macros.h
+++ b/ACE/ace/CORBA_macros.h
@@ -30,10 +30,6 @@
# pragma once
# endif /* ACE_LACKS_PRAGMA_ONCE */
-#define ACE_ENV_POLLUTE_NAMES
-
-#include "ace/Exception_Macros.h"
-
// The Windows MFC exception mechanism requires that a caught CException
// (including the CMemoryException in use here) be freed using its Delete()
// method. Thus, when MFC is in use and we're catching exceptions as a result
@@ -47,369 +43,6 @@
# define ACE_del_bad_alloc
#endif
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
-
-// If you wish to you use these macros for emulating exceptions on
-// platforms which lack native exception support, you need to do the
-// following:
-// 1. Define a class Exception. You can name it as you please. This class
-// should be at the root of the inheritance hierarchy of all the
-// exceptions used in your application. It should define at a minimum
-// the following pure virtual methods:
-// a) _downcast () - Which allows narrowing of the base exception type to a
-// derived type.
-// b) _raise() - Which throws an exception of type Exception.
-//
-// Classes which derive from these should implement these operations.
-//
-// 2. Define a class Environment. You can name it as you please. This class
-// is an exception holder. This class is always on the stack. It should
-// support at a minimum the following methods:
-// a) exception() - Which returns the Exception held in the current
-// Environment.
-// b) exception (Exception* foo) - Which replaces/sets the Exception
-// held in the current Environment with foo.
-// b) clear() - Which resets a particular instance of Environment.
-// c) A copy constructor and an assignment operator.
-//
-// Note that the above description assumes that you use the following
-// macros only within a particular domain. For example, if your
-// application has to interoperate across domains, then you need to define
-// an exception adapter to translate exceptions from one domain to
-// exceptions in the other. Please refer to Stroustrup's book on how to do
-// this. If your use case is this complex, you would be better off with
-// going with native exceptions rather than emulated exceptions, though
-// the macros should still work if you defined your adapter class as
-// ACE_EXCEPTION_TYPE.
-
-
-// The following macros assume that an environment variable is passed
-// in/out of each function that can throw an exception. The type of the
-// environment variable is defined by ACE_ENV_TYPE.
-
-#if !defined (ACE_ENV_TYPE)
-# define ACE_ENV_TYPE CORBA::Environment
-#endif /* ACE_ENV_TYPE */
-
-// The name of the variable is defined by ACE_TRY_ENV. Below is the name
-// that we use by default. If you wish to change it you can redefine
-// ACE_TRY_ENV to change the default name. Also ACE_ADOPT_ENV allows the
-// use of non-standard name within a scope.
-
-#if !defined (ACE_TRY_ENV)
-# define ACE_TRY_ENV _ACE_CORBA_Environment_variable
-#endif /* ACE_TRY_ENV */
-
-// The base type of Exception from which all the other exception types are
-// derived. You can set this to any type as you please. By default, it is
-// set to CORBA::Exception.
-
-#if !defined (ACE_EXCEPTION_TYPE)
-# define ACE_EXCEPTION_TYPE CORBA::Exception
-#endif /* ACE_EXCEPTION_TYPE */
-
-// This method is used to get the default value of the Environment
-// variable. In the case of TAO, this variable is part of the TSS ORB
-// resources and the method TAO_default_environment() returns the
-// Environment variable.
-
-#if !defined (ACE_DEFAULT_GET_ENV_METHOD)
-# define ACE_DEFAULT_GET_ENV_METHOD TAO_default_environment
-#endif /* ACE_DEFAULT_GET_ENV_METHOD */
-
-// This is the exception caught by ACE_CATCHANY.
-#if !defined (ACE_ANY_EXCEPTION)
-# define ACE_ANY_EXCEPTION ex
-#endif /* ACE_ANY_EXCEPTION */
-
-// Declare a new environment variable on the stack. The type of the
-// environment variable is determined by ACE_ENV_TYPE.
-#if defined (ACE_USES_NATIVE_EXCEPTIONS)
-// Don't instantiate an emulated exception environment at all when
-// using native C++ exception support. It won't be used.
-# define ACE_DECLARE_NEW_ENV
-#else
-# define ACE_DECLARE_NEW_ENV \
- ACE_ENV_TYPE ACE_TRY_ENV
-#endif /* ACE_USES_NATIVE_EXCEPTIONS */
-
-// Provided for backward compatibility purposes. Don't use it in new code.
-// Use the definition above along with defining ACE_ENV_TYPE.
-
-#if defined (ACE_ENV_POLLUTE_NAMES)
-# define ACE_DECLARE_NEW_CORBA_ENV ACE_DECLARE_NEW_ENV
-#endif /* ACE_ENV_POLLUTE_NAMES */
-
-#if defined (ACE_USES_NATIVE_EXCEPTIONS)
-// -----------------------------------------------------------------
-
-// Provided for backward compatibility purposes. Don't use it in new code.
-#if defined (ACE_ENV_POLLUTE_NAMES)
-# define ACE_ADOPT_CORBA_ENV(ENV)
-#endif /* ACE_ENV_POLLUTE_NAMES */
-
-#define ACE_ADOPT_ENV (ENV)
-
-// No need to check. Native exceptions handle the control flow
-// automatically when an exception occurs.
-# define ACE_CHECK
-
-// Used when the function requires a return value.
-# define ACE_CHECK_RETURN(RETV)
-
-// ACE_THROW_INT should not be used by the user.
-# define ACE_THROW_INT(EXCEPTION) \
- throw EXCEPTION
-
-// Throwing an exception is easy. These two macros should _NOT_ be
-// used within try blocks.
-# define ACE_THROW(EXCEPTION) \
- throw EXCEPTION
-
-// Throwing an exception when the function requires a return value.
-# define ACE_THROW_RETURN(EXCEPTION,RETV) \
- throw EXCEPTION
-
-// For compilers with native exceptions, we can simply use try to try. ;-)
-// do {} while (0) is required to avoid compilation warnings.
-# define ACE_TRY \
- do \
- { \
- try \
- {
-# define ACE_TRY_NEW_ENV \
- do \
- { \
- try \
- {
-# define ACE_TRY_EX(LABEL) \
- do \
- { \
- try \
- {
-
-// No need to check for exceptions within try block for compilers with
-// native exceptions.
-# define ACE_TRY_CHECK
-# define ACE_TRY_CHECK_EX(LABEL)
-
-// Likewise, throwing exceptions within try blocks is easy.
-# define ACE_TRY_THROW(EXCEPTION) throw EXCEPTION
-# define ACE_TRY_THROW_EX(EXCEPTION,LABEL) throw EXCEPTION
-
-// Same thing for catch.
-# define ACE_CATCH(EXCEPTION,VAR) \
- } \
- catch (EXCEPTION & VAR) \
- { \
- ACE_UNUSED_ARG (VAR);
-
-# define ACE_CATCHANY \
- ACE_CATCH(ACE_EXCEPTION_TYPE, ACE_ANY_EXCEPTION)
-
-# define ACE_CATCHALL \
- } \
- catch (...) \
- {
-
-# if defined (ACE_HAS_DEPRECATED_ACE_RETHROW)
-# define ACE_RETHROW throw
-# endif /* ACE_HAS_DEPRECATED_ACE_RETHROW */
-
-// Rethrowing the exception from catch blocks.
-# define ACE_RE_THROW throw
-# define ACE_RE_THROW_EX(LABEL) throw
-
-// Close the catch block.
-# define ACE_ENDTRY \
- } \
- } while (0)
-
-#else /* ! ACE_USES_NATIVE_EXCEPTIONS */
-// -----------------------------------------------------------------
-
-// When handling compilers without native exceptions, things get a bit
-// hairy. Exceptions are simulated using ACE_ENV_TYPE. The trick here is to
-// make sure the flow-of-control can simulate the case when native
-// exceptions occur...
-
-#if defined (ACE_ENV_POLLUTE_NAMES)
-# define ACE_ADOPT_CORBA_ENV(ENV) ACE_ENV_TYPE &ACE_TRY_ENV = ENV
-#endif /* ACE_ENV_POLLUTE_NAMES */
-
-# define ACE_ADOPT_ENV(ENV) ACE_ENV_TYPE &ACE_TRY_ENV = ENV
-
-// Follow every statement that could throw exceptions with ACE_CHECK or
-// ACE_CHECK_RETURN. These two macros should _NOT_ be used within try
-// blocks. Use ACE_TRY_CHECK or ACE_TRY_CHECK_EX instead.
-# define ACE_CHECK \
- if (ACE_TRY_ENV . exception () != 0) \
- return
-// When function requires a return value
-# define ACE_CHECK_RETURN(RETV) \
- if (ACE_TRY_ENV . exception () != 0) \
- return RETV
-
-// ACE_THROW_INT should not be used by the user.
-# define ACE_THROW_INT(EXCEPTION) ACE_TRY_ENV.exception (new EXCEPTION)
-
-// Throwing exceptions will inevitably cause a return from the current
-// function. These two macros should _NOT_ be used within try blocks. Use
-// ACE_TRY_THROW or ACE_TRY_THROW_EX instead.
-# define ACE_THROW(EXCEPTION) \
- do \
- { \
- ACE_TRY_ENV.exception (new EXCEPTION); \
- return; \
- } while (0)
-
-# define ACE_THROW_RETURN(EXCEPTION,RETV) \
- do \
- { \
- ACE_TRY_ENV.exception (new EXCEPTION); \
- return RETV; \
- } while (0)
-
-// ACE_TRY sets up flags to control program flow. ACE_TRY_FLAG acts like a
-// one-shot flip-flop. When an exception occurs (detected using
-// ACE_TRY_CHECK,) ACE_TRY_FLAG will be reset and the control goes back
-// into ACE_TRY_LABEL. Since ACE_TRY_FLAG is reset, the try block won't get
-// executed again and the control proceeds to the following catch blocks.
-// ACE_EXCEPTION_NOT_CAUGHT flag is used to prevent catching an exception
-// twice. This macro assumes there's already an ACE_ENV_TYPE variable
-// ACE_TRY_ENV defined (which should be the case normally)
-# define ACE_TRY \
- do { \
- int ACE_TRY_FLAG = 1; \
- int ACE_EXCEPTION_NOT_CAUGHT = 1; \
- ACE_TRY_LABEL: \
- if (ACE_TRY_FLAG) \
- do {
-
-// ACE_TRY_NEW_ENV functions like the macro ACE_TRY but defines a new
-// ACE_ENV_TYPE variable ACE_TRY_ENV. It is most often used in the outer
-// most function where no ACE_TRY_ENV is available.
-# define ACE_TRY_NEW_ENV \
- do { \
- ACE_DECLARE_NEW_ENV;\
- int ACE_TRY_FLAG = 1; \
- int ACE_EXCEPTION_NOT_CAUGHT = 1; \
- ACE_TRY_LABEL: \
- if (ACE_TRY_FLAG) \
- do {
-
-// ACE_TRY_EX works exactly like ACE_TRY macro except the label used in the
-// try block is customizable to avoid name clashing. It should be used when
-// nested try blocks or multiple try blocks are required, in the same
-// function.
-# define ACE_TRY_EX(LABEL) \
- do { \
- int ACE_TRY_FLAG = 1; \
- int ACE_EXCEPTION_NOT_CAUGHT = 1; \
- ACE_TRY_LABEL ## LABEL: \
- if (ACE_TRY_FLAG) \
- do {
-
-// Check for exceptions within try blocks.
-# define ACE_TRY_CHECK \
- { \
- if (ACE_TRY_ENV.exception () != 0) \
- { \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL; \
- } \
- }
-
-// Checking exception within EX try blocks.
-# define ACE_TRY_CHECK_EX(LABEL) \
- { \
- if (ACE_TRY_ENV.exception () != 0) \
- { \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL ## LABEL; \
- } \
- }
-
-// Throwing exception within TRY blocks.
-# define ACE_TRY_THROW(EXCEPTION) \
- { \
- ACE_TRY_ENV.exception (new EXCEPTION); \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL; \
- }
-
-# define ACE_TRY_THROW_EX(EXCEPTION,LABEL) \
- { \
- ACE_TRY_ENV.exception (new EXCEPTION); \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL ## LABEL; \
- }
-
-// When exceptions occur or try block finishes execution without exception,
-// control will continue in the catch block. This macro first checks if
-// there's any uncaught exception left. If all the conditions are met, we
-// have caught an exception. It then resets ACE_EXCEPTION_NOT_CAUGHT to
-// prevent subsequent catch blocks from catching the same exception again,
-// and extracts out the underlying exception in ACE_TRY_ENV. We also make a
-// copy of ACE_TRY_ENV in ACE_CAUGHT_ENV, in case we want to rethrow the
-// exception. ACE_TRY_ENV is cleared out after the exception is caught so
-// you should not use ACE_TRY_ENV within the catch block(You should use the
-// exception directly).
-# define ACE_CATCH(TYPE,VAR) \
- } while (0); \
- do \
- if (ACE_TRY_ENV.exception () != 0 && ACE_EXCEPTION_NOT_CAUGHT && \
- TYPE::_downcast(ACE_TRY_ENV.exception ()) != 0) \
- { \
- ACE_ENV_TYPE ACE_CAUGHT_ENV = ACE_TRY_ENV;\
- ACE_EXCEPTION_NOT_CAUGHT = 0; \
- TYPE &VAR = *TYPE::_downcast (ACE_CAUGHT_ENV.exception ()); \
- ACE_UNUSED_ARG (VAR); \
- ACE_TRY_ENV.clear ();
-
-// ACE_CATCHANY uses ACE_CATCH to catch all exceptions derived from
-// ACE_EXCEPTION_TYPE
-# define ACE_CATCHANY ACE_CATCH (ACE_EXCEPTION_TYPE, ACE_ANY_EXCEPTION)
-
-// Since there's no other exception for compilers without exception
-// support, we simply catch all ACE_EXCEPTION_TYPE exceptions for
-// ACE_CATCHALL.
-# define ACE_CATCHALL ACE_CATCHANY
-
-# if defined (ACE_HAS_DEPRECATED_ACE_RETHROW)
-# define ACE_RETHROW \
- do \
- ACE_TRY_ENV = ACE_CAUGHT_ENV; \
- while (0)
-# endif /* ACE_HAS_DEPRECATED_ACE_RETHROW */
-
-// Rethrowing exception within catch blocks. Notice that we depend on the
-// ACE_CHECK/ACE_CHECK_RETURN following the ACE_ENDTRY, or ACE_TRY_CHECK/
-// ACE_TRY_CHECK_EX following the ACE_ENDTRY when the catch block is within
-// another try block, to do the "Right Thing[TM]."
-# define ACE_RE_THROW \
- do {\
- ACE_TRY_ENV = ACE_CAUGHT_ENV; \
- goto ACE_TRY_LABEL; \
- } while (0)
-# define ACE_RE_THROW_EX(LABEL) \
- do {\
- ACE_TRY_ENV = ACE_CAUGHT_ENV; \
- goto ACE_TRY_LABEL ## LABEL; \
- } while (0)
-
-// Close the try block. Since exceptions may not get caught, and exceptions
-// can also be rethrown from the catch block, it's always a good idea to
-// follow ACE_ENDTRY with ACE_CHECK or ACE_TRY_CHECK (depending on the
-// context.)
-# define ACE_ENDTRY \
- } while (0); \
- } while (0)
-
-#endif /* ! ACE_USES_NATIVE_EXCEPTIONS */
-
-#endif /* !ACE_LACKS_DEPRECATED_MACROS */
-
// ACE_HAS_EXCEPTIONS is not the same as ACE_NEW_THROWS_EXCEPTIONS.
#if defined(ACE_NEW_THROWS_EXCEPTIONS)
@@ -438,6 +71,7 @@
#endif /* ACE_NEW_THROWS_EXCEPTIONS */
+// FUZZ: disable check_for_ACE_Guard
# define ACE_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \
ACE_Guard< MUTEX > OBJ (LOCK); \
if (OBJ.locked () == 0) throw EXCEPTION;
@@ -449,126 +83,7 @@
# define ACE_WRITE_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \
ACE_Write_Guard< MUTEX > OBJ (LOCK); \
if (OBJ.locked () == 0) throw EXCEPTION;
-
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
-
-//@{
-/**
- * @name Native C++ exceptions portability macros.
- *
- * The following macros are used to write code portable between platforms
- * with and without native C++ exception support. Their main goal is to
- * hide the presence of the ACE_ENV_TYPE argument, but they collaborate
- * with the ACE_TRY_* macros to emulate the try/catch blocks.
- */
-
-/// Define a macro to emit code only when ACE_ENV_TYPE is used
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT)
-# define ACE_ENV_EMIT_CODE(X) X
-#else
-# define ACE_ENV_EMIT_CODE(X)
-#endif /* ACE_USES_NATIVE_EXCEPTIONS && ! ACE_ENV_BKWD_COMPAT */
-
-/// Another macro to emit code only when ACE_ENV_TYPE is used
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT)
-# define ACE_ENV_EMIT_CODE2(X,Y) X,Y
-#else
-# define ACE_ENV_EMIT_CODE2(X,Y)
-#endif /* ACE_USES_NATIVE_EXCEPTIONS && ! ACE_ENV_BKWD_COMPAT */
-
-/// Helper macro
-#define ACE_ENV_EMIT_DUMMY
-
-/// Declare a ACE_ENV_TYPE argument as the last argument of a
-/// function
-/**
- * Normally this macro is used as follows:
- *
- * <CODE>void my_funct (int x, int y ACE_ENV_ARG_DECL);</CODE>
- *
- * Its purpose is to provide developers (and users) with a mechanism to
- * write code that is portable to platforms with and without native C++
- * exceptions.
- */
-#define ACE_ENV_ARG_DECL \
- ACE_ENV_EMIT_CODE2(ACE_ENV_EMIT_DUMMY, \
- ACE_ENV_TYPE &ACE_TRY_ENV)
-
-/// Declare a ACE_ENV_TYPE argument with the default value obtained from
-/// the ORB/application.
-/**
- * It is similar to ACE_ENV_ARG_DECL. The name of the default environment
- * getter method needs to be changed when switching ORBs or when used with
- * another application.
- */
-#define ACE_ENV_ARG_DECL_WITH_DEFAULTS \
- ACE_ENV_EMIT_CODE2(ACE_ENV_EMIT_DUMMY, \
- ACE_ENV_TYPE &ACE_TRY_ENV = \
- ACE_DEFAULT_GET_ENV_METHOD ())
-
-/// Declare a ACE_ENV_TYPE argument that is not used by the
-/// function definition.
-/**
- * Similar to ACE_ENV_ARG_DECL, but the formal parameter name is dropped to
- * avoid warnings about unused parameters
- */
-#define ACE_ENV_ARG_DECL_NOT_USED \
- ACE_ENV_EMIT_CODE2(ACE_ENV_EMIT_DUMMY, \
- ACE_ENV_TYPE &)
-
-/// Declare a ACE_ENV_TYPE argument for methods that do not take any other
-/// parameters
-#define ACE_ENV_SINGLE_ARG_DECL \
- ACE_ENV_EMIT_CODE(ACE_ENV_TYPE &ACE_TRY_ENV)
-
-/// Declare a ACE_ENV_TYPE argument with a default value for methods that
-/// do not take any other parameters. The name of the default environment
-/// getter method needs to be changed when switching ORBs or when used in
-/// another application.
-#define ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS \
- ACE_ENV_EMIT_CODE(ACE_ENV_TYPE &ACE_TRY_ENV = \
- ACE_DEFAULT_GET_ENV_METHOD ())
-
-/// Declare a ACE_ENV_TYPE argument for methods which don't use it.
-#define ACE_ENV_SINGLE_ARG_DECL_NOT_USED \
- ACE_ENV_EMIT_CODE(ACE_ENV_TYPE &)
-
-/// Use the ACE_ENV_TYPE argument in a nested call
-#define ACE_ENV_ARG_PARAMETER \
- ACE_ENV_EMIT_CODE2(ACE_ENV_EMIT_DUMMY, \
- ACE_TRY_ENV)
-
-/// Use the ACE_ENV_TYPE argument in a nested call, assuming that the
-/// called function takes only the ACE_TRY_ENV argument.
-#define ACE_ENV_SINGLE_ARG_PARAMETER \
- ACE_ENV_EMIT_CODE(ACE_TRY_ENV)
-
-/// Eliminate unused argument warnings about ACE_TRY_ENV
-#define ACE_ENV_ARG_NOT_USED \
- ACE_ENV_EMIT_CODE(ACE_UNUSED_ARG(ACE_TRY_ENV))
-//@}
-
-#if !defined (ACE_USES_NATIVE_EXCEPTIONS)
-// This thing can be moved above when we drop ACE_ENV_BKWD_COMPAT.
-# define ACE_ENV_RAISE(ex) ACE_TRY_ENV.exception (ex)
-#else
-# define ACE_ENV_RAISE(ex) (ex)->_raise ()
-#endif /* ACE_USES_NATIVE_EXCEPTIONS */
-
-// ============================================================
-
-// Print out a TAO exception. This is not CORBA compliant.
-# define ACE_PRINT_TAO_EXCEPTION(EX,INFO) \
- EX._tao_print_exception (INFO)
-
-// Print out a CORBA exception. There is not portable way to
-// dump a CORBA exception. If you are using other ORB implementation,
-// redefine the macro to get what you want.
-# if !defined ACE_PRINT_EXCEPTION
-# define ACE_PRINT_EXCEPTION(EX,INFO) ACE_PRINT_TAO_EXCEPTION(EX,INFO)
-# endif /* ACE_PRINT_EXCEPTION */
-
-#endif /* !ACE_LACKS_DEPRECATED_MACROS */
+// FUZZ: enable check_for_ACE_Guard
#include /**/ "ace/post.h"
diff --git a/ACE/ace/Cache_Map_Manager_T.cpp b/ACE/ace/Cache_Map_Manager_T.cpp
index b2526fcfa99..fa9caf53041 100644
--- a/ACE/ace/Cache_Map_Manager_T.cpp
+++ b/ACE/ace/Cache_Map_Manager_T.cpp
@@ -24,11 +24,8 @@ ACE_ALLOC_HOOK_DEFINE(ACE_Cache_Map_Iterator)
ACE_ALLOC_HOOK_DEFINE(ACE_Cache_Map_Reverse_Iterator)
-#define ACE_T1 class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES
-
-template <ACE_T1>
-ACE_Cache_Map_Manager<ACE_T2>::ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
size_t size,
ACE_Allocator *alloc)
: caching_strategy_ (caching_s)
@@ -40,28 +37,28 @@ ACE_Cache_Map_Manager<ACE_T2>::ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_
}
-template <ACE_T1>
-ACE_Cache_Map_Manager<ACE_T2>::~ACE_Cache_Map_Manager (void)
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::~ACE_Cache_Map_Manager (void)
{
this->close ();
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::open (size_t length,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::open (size_t length,
ACE_Allocator *alloc)
{
return this->map_.open (length,
alloc);
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::close (void)
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::close (void)
{
return this->map_.close ();
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::bind (const KEY &key,
const VALUE &value)
{
// Insert an entry which has the <key> and the <cache_value> which
@@ -77,7 +74,7 @@ ACE_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
{
int result = this->caching_strategy_.notify_bind (bind_result,
- cache_value.second ());
+ cache_value.second);
if (result == -1)
{
@@ -96,8 +93,8 @@ ACE_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::rebind (const KEY &key,
const VALUE &value)
{
CACHE_VALUE cache_value (value,
@@ -133,8 +130,8 @@ ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::rebind (const KEY &key,
const VALUE &value,
VALUE &old_value)
{
@@ -180,8 +177,8 @@ ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
return rebind_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::rebind (const KEY &key,
const VALUE &value,
KEY &old_key,
VALUE &old_value)
@@ -229,8 +226,8 @@ ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
return rebind_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::trybind (const KEY &key,
VALUE &value)
{
CACHE_VALUE cache_value (value,
@@ -271,8 +268,8 @@ ACE_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
return trybind_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key,
VALUE &value)
{
// Lookup the key and populate the <value>.
@@ -285,7 +282,7 @@ ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
{
int result = this->caching_strategy_.notify_find (find_result,
- cache_value.second ());
+ cache_value.second);
// Unless the find and notification operations go thru, this
// method is not successful.
@@ -301,7 +298,7 @@ ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
if (rebind_result == -1)
find_result = -1;
else
- value = cache_value.first ();
+ value = cache_value.first;
}
@@ -310,8 +307,8 @@ ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
return find_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key)
{
// Lookup the key and populate the <value>.
CACHE_VALUE cache_value;
@@ -348,8 +345,8 @@ ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key)
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::unbind (const KEY &key)
{
// Remove the entry from the cache.
CACHE_VALUE cache_value;
@@ -361,7 +358,7 @@ ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key)
{
int result = this->caching_strategy_.notify_unbind (unbind_result,
- cache_value.second ());
+ cache_value.second);
if (result == -1)
unbind_result = -1;
@@ -371,8 +368,8 @@ ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key)
return unbind_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::unbind (const KEY &key,
VALUE &value)
{
// Remove the entry from the cache.
@@ -397,8 +394,8 @@ ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key,
return unbind_result;
}
-template <ACE_T1> void
-ACE_Cache_Map_Manager<ACE_T2>::dump (void) const
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> void
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
this->map_.dump ();
@@ -407,9 +404,6 @@ ACE_Cache_Map_Manager<ACE_T2>::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-#undef ACE_T1
-#undef ACE_T2
-
template <class KEY, class VALUE, class IMPLEMENTATION, class CACHING_STRATEGY, class ATTRIBUTES>
ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>::~ACE_Cache_Map_Iterator (void)
{
diff --git a/ACE/ace/Cache_Map_Manager_T.h b/ACE/ace/Cache_Map_Manager_T.h
index 0c533f7a0ae..ce645469392 100644
--- a/ACE/ace/Cache_Map_Manager_T.h
+++ b/ACE/ace/Cache_Map_Manager_T.h
@@ -91,7 +91,7 @@ public:
* are used by the strategy and is transparent to the user of this
* class.
*/
- typedef ACE_Pair<VALUE, ATTRIBUTES> CACHE_VALUE;
+ typedef std::pair<VALUE, ATTRIBUTES> CACHE_VALUE;
// = Initialization and termination methods.
@@ -251,10 +251,10 @@ public:
// = Traits.
/// The actual value mapped to the key in the cache. The <attributes>
- /// are used by the strategy and is transperant to the cache user.
+ /// are used by the strategy and is transparent to the cache user.
typedef ACE_Reference_Pair<KEY, VALUE>
value_type;
- typedef ACE_Pair <VALUE, ATTRIBUTES>
+ typedef std::pair <VALUE, ATTRIBUTES>
CACHE_VALUE;
// = Initialisation and termination methods.
@@ -274,7 +274,7 @@ public:
(const ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION,
CACHING_STRATEGY, ATTRIBUTES> &rhs);
- /// Comparision operators.
+ /// Comparison operators.
bool operator== (const ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs) const;
bool operator!= (const ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs) const;
@@ -327,9 +327,9 @@ public:
// = Traits.
/// The actual value mapped to the key in the cache. The <attributes>
- /// are used by the strategy and is transperant to the cache user.
+ /// are used by the strategy and is transparent to the cache user.
typedef ACE_Reference_Pair<KEY, VALUE> value_type;
- typedef ACE_Pair <VALUE, ATTRIBUTES> CACHE_VALUE;
+ typedef std::pair <VALUE, ATTRIBUTES> CACHE_VALUE;
// = Initialisation and termination methods.
@@ -348,7 +348,7 @@ public:
(const ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION,
CACHING_STRATEGY, ATTRIBUTES> &rhs);
- /// Comparision operators.
+ /// Comparison operators.
bool operator== (const ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs) const;
bool operator!= (const ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs) const;
diff --git a/ACE/ace/Cache_Map_Manager_T.inl b/ACE/ace/Cache_Map_Manager_T.inl
index ba30c528dd6..a4a94f7ee24 100644
--- a/ACE/ace/Cache_Map_Manager_T.inl
+++ b/ACE/ace/Cache_Map_Manager_T.inl
@@ -89,7 +89,7 @@ template <class KEY, class VALUE, class IMPLEMENTATION, class CACHING_STRATEGY,
ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>::operator* (void) const
{
value_type retn ((*this->iterator_implementation_).ext_id_,
- (*this->iterator_implementation_).int_id_.first ());
+ (*this->iterator_implementation_).int_id_.first);
return retn;
}
@@ -183,7 +183,7 @@ template <class KEY, class VALUE, class REVERSE_IMPLEMENTATION, class CACHING_ST
ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>::operator* (void) const
{
value_type retv ((*this->reverse_iterator_implementation_).ext_id_,
- (*this->reverse_iterator_implementation_).int_id_.first ());
+ (*this->reverse_iterator_implementation_).int_id_.first);
return retv;
}
diff --git a/ACE/ace/Cached_Connect_Strategy_T.cpp b/ACE/ace/Cached_Connect_Strategy_T.cpp
index cdf68980ad3..bf587cee5fb 100644
--- a/ACE/ace/Cached_Connect_Strategy_T.cpp
+++ b/ACE/ace/Cached_Connect_Strategy_T.cpp
@@ -14,15 +14,11 @@
#include "ace/Service_Types.h"
#include "ace/Thread_Manager.h"
#include "ace/WFMO_Reactor.h"
-#include "ace/Pair_T.h"
-
-#define ACE_T1 class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX
-#define ACE_T2 SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_T1>
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::ACE_Cached_Connect_Strategy_Ex
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::ACE_Cached_Connect_Strategy_Ex
(CACHING_STRATEGY &caching_s,
ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
@@ -35,18 +31,18 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::ACE_Cached_Connect_Strategy_Ex
if (this->open (cre_s, con_s, rec_s) == -1)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Cached_Connect_Strategy_Ex<ACE_T2>\n")));
+ ACE_TEXT ("ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>\n")));
}
-template <ACE_T1>
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::~ACE_Cached_Connect_Strategy_Ex (void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::~ACE_Cached_Connect_Strategy_Ex (void)
{
cleanup ();
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::check_hint_i
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::check_hint_i
(SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
@@ -54,7 +50,7 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::check_hint_i
bool reuse_addr,
int flags,
int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
+ ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
int &found)
{
ACE_UNUSED_ARG (remote_addr);
@@ -77,8 +73,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::check_hint_i
if (possible_entry->ext_id_.decrement () == 0)
{
// If refcount goes to zero, close down the svc_handler
- possible_entry->int_id_.first ()->recycler (0, 0);
- possible_entry->int_id_.first ()->close ();
+ possible_entry->int_id_.first->recycler (0, 0);
+ possible_entry->int_id_.first->close ();
this->purge_i (possible_entry);
}
@@ -111,7 +107,7 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::check_hint_i
int find_result = 0;
int result = this->caching_strategy ().notify_find (find_result,
- possible_entry->int_id_.second ());
+ possible_entry->int_id_.second);
if (result == -1)
return result;
@@ -135,8 +131,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::check_hint_i
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find_or_create_svc_handler_i
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::find_or_create_svc_handler_i
(SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
@@ -144,7 +140,7 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find_or_create_svc_handler_i
bool reuse_addr,
int flags,
int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
+ ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
int &found)
{
REFCOUNTED_HASH_RECYCLABLE_ADDRESS search_addr (remote_addr);
@@ -155,7 +151,7 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find_or_create_svc_handler_i
{
// We found a cached svc_handler.
// Get the cached <svc_handler>
- sh = entry->int_id_.first ();
+ sh = entry->int_id_.first;
// Is the connection clean?
int state_result =
@@ -251,8 +247,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find_or_create_svc_handler_i
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cached_connect (SVC_HANDLER *&sh,
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::cached_connect (SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
const ACE_PEER_CONNECTOR_ADDR &local_addr,
@@ -313,8 +309,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cached_connect (SVC_HANDLER *&sh,
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::connect_svc_handler_i
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::connect_svc_handler_i
(SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
@@ -370,8 +366,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::connect_svc_handler_i
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cache_i (const void *recycling_act)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::cache_i (const void *recycling_act)
{
// The wonders and perils of ACT
CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
@@ -383,8 +379,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cache_i (const void *recycling_act)
return 0;
}
-template<ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_act,
+template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::recycle_state_i (const void *recycling_act,
ACE_Recyclable_State new_state)
{
// The wonders and perils of ACT
@@ -397,8 +393,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_a
return 0;
}
-template<ACE_T1> ACE_Recyclable_State
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_act) const
+template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> ACE_Recyclable_State
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::recycle_state_i (const void *recycling_act) const
{
// The wonders and perils of ACT
CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
@@ -408,8 +404,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_a
return entry->ext_id_.recycle_state ();
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::purge_i (const void *recycling_act)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::purge_i (const void *recycling_act)
{
// The wonders and perils of ACT
CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
@@ -418,8 +414,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::purge_i (const void *recycling_act)
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::mark_as_closed_i (const void *recycling_act)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::mark_as_closed_i (const void *recycling_act)
{
// The wonders and perils of ACT
CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
@@ -430,8 +426,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::mark_as_closed_i (const void *recycling_
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup_hint_i (const void *recycling_act,
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::cleanup_hint_i (const void *recycling_act,
void **act_holder)
{
// Reset the <*act_holder> in the confines and protection of the
@@ -450,32 +446,32 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup_hint_i (const void *recycling_ac
if (entry->ext_id_.recycle_state () == ACE_RECYCLABLE_CLOSED &&
refcount == 0)
{
- entry->int_id_.first ()->recycler (0, 0);
- entry->int_id_.first ()->close ();
+ entry->int_id_.first->recycler (0, 0);
+ entry->int_id_.first->close ();
this->purge_i (entry);
}
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::purge_connections (void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::purge_connections (void)
{
return this->connection_cache_.purge ();
}
-template <ACE_T1> CACHING_STRATEGY &
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::caching_strategy (void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> CACHING_STRATEGY &
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::caching_strategy (void)
{
return this->connection_cache_.caching_strategy ();
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find (ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR> &search_addr,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::find (ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR> &search_addr,
+ ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry)
{
typedef ACE_Hash_Map_Bucket_Iterator<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES>,
+ std::pair<SVC_HANDLER *, ATTRIBUTES>,
ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
ACE_Null_Mutex>
@@ -512,7 +508,7 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find (ACE_Refcounted_Hash_Recyclable<ACE
int find_result = 0;
int result = this->caching_strategy ().notify_find (find_result,
- entry->int_id_.second ());
+ entry->int_id_.second);
if (result == -1)
return result;
@@ -523,8 +519,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find (ACE_Refcounted_Hash_Recyclable<ACE
return -1;
}
-template <ACE_T1> void
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup (void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> void
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::cleanup (void)
{
// Excluded other threads from changing the cache while we cleanup
ACE_GUARD (MUTEX, ace_mon, *this->lock_);
@@ -561,8 +557,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup (void)
ACE_ALLOC_HOOK_DEFINE(ACE_Cached_Connect_Strategy_Ex)
/////////////////////////////////////////////////////////////////////////
-template <ACE_T1>
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::ACE_Bounded_Cached_Connect_Strategy
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
+ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::ACE_Bounded_Cached_Connect_Strategy
(size_t max_size,
CACHING_STRATEGY &caching_s,
ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
@@ -575,14 +571,14 @@ ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::ACE_Bounded_Cached_Connect_Strategy
{
}
-template <ACE_T1>
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::~ACE_Bounded_Cached_Connect_Strategy(void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
+ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::~ACE_Bounded_Cached_Connect_Strategy(void)
{
}
-template <ACE_T1>
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
int
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::find_or_create_svc_handler_i
+ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::find_or_create_svc_handler_i
(SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
@@ -591,7 +587,7 @@ ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::find_or_create_svc_handler_i
int flags,
int perms,
ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
+ std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
int &found)
{
@@ -728,7 +724,4 @@ ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Cached_Connect_Strategy)
ACE_END_VERSIONED_NAMESPACE_DECL
-#undef ACE_T1
-#undef ACE_T2
-
#endif /* ACE_CACHED_CONNECT_STRATEGY_T_CPP */
diff --git a/ACE/ace/Cached_Connect_Strategy_T.h b/ACE/ace/Cached_Connect_Strategy_T.h
index 2ca4cf3cd31..a730c1a8010 100644
--- a/ACE/ace/Cached_Connect_Strategy_T.h
+++ b/ACE/ace/Cached_Connect_Strategy_T.h
@@ -90,9 +90,9 @@ public:
typedef typename CONNECTION_CACHE::mapped_type VALUE;
typedef ACE_Recyclable_Handler_Cleanup_Strategy<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES>,
+ std::pair<SVC_HANDLER *, ATTRIBUTES>,
ACE_Hash_Map_Manager_Ex<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES>,
+ std::pair<SVC_HANDLER *, ATTRIBUTES>,
ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,
MUTEX> >
@@ -108,7 +108,7 @@ protected:
/// Find an idle handle.
int find (ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR> &search_addr,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry);
+ ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry);
/// Remove from cache (non-locking version).
virtual int purge_i (const void *recycling_act);
@@ -116,12 +116,12 @@ protected:
/// Add to cache (non-locking version).
virtual int cache_i (const void *recycling_act);
- /// Get/Set <recycle_state> (non-locking version).
+ /// Get/Set recycle_state (non-locking version).
virtual int recycle_state_i (const void *recycling_act,
ACE_Recyclable_State new_state);
virtual ACE_Recyclable_State recycle_state_i (const void *recycling_act) const;
- /// Cleanup hint and reset <*act_holder> to zero if <act_holder != 0>.
+ /// Cleanup hint and reset @c *act_holder to zero if @a act_holder != 0.
virtual int cleanup_hint_i (const void *recycling_act,
void **act_holder);
@@ -133,7 +133,7 @@ protected:
bool reuse_addr,
int flags,
int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
+ ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
int &found);
virtual int find_or_create_svc_handler_i (SVC_HANDLER *&sh,
@@ -143,7 +143,7 @@ protected:
bool reuse_addr,
int flags,
int perms,
- ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
+ ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
int &found);
virtual int connect_svc_handler_i (SVC_HANDLER *&sh,
@@ -184,19 +184,20 @@ protected:
/**
* @class ACE_Bounded_Cached_Connect_Strategy
*
- * @brief A connection strategy which caches connections to peers
- * (represented by SVC_HANDLER instances), thereby allowing
- * subsequent re-use of unused, but available, connections.
- * This strategy should be used when the cache is bounded by
- * maximum size.
+ * @brief
+ * A connection strategy which caches connections to peers
+ * (represented by SVC_HANDLER instances), thereby allowing
+ * subsequent re-use of unused, but available, connections.
+ * This strategy should be used when the cache is bounded by
+ * maximum size.
*
- * <Bounded_Cached_Connect_Strategy> is intended to be used as a
- * plug-in connection strategy for ACE_Strategy_Connector.
- * It's added value is re-use of established connections and
- * tweaking the role of the cache as per the caching strategy.
- * Thanks to Edan Ayal <edana@bandwiz.com> for contributing this
- * class and Susan Liebeskind <shl@janis.gtri.gatech.edu> for
- * brainstorming about it.
+ * Bounded_Cached_Connect_Strategy is intended to be used as a
+ * plug-in connection strategy for ACE_Strategy_Connector.
+ * It's added value is re-use of established connections and
+ * tweaking the role of the cache as per the caching strategy.
+ * Thanks to Edan Ayal <edana@bandwiz.com> for contributing this
+ * class and Susan Liebeskind <shl@janis.gtri.gatech.edu> for
+ * brainstorming about it.
*/
template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1,
class CACHING_STRATEGY, class ATTRIBUTES,
@@ -239,12 +240,12 @@ protected:
int flags,
int perms,
ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>,
- ACE_Pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
+ std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry,
int &found);
protected:
- /// max items in the cache, used as a bound for the creation of svc_handlers.
+ /// Max items in the cache, used as a bound for the creation of svc_handlers.
size_t max_size_;
};
diff --git a/ACE/ace/Caching_Strategies_T.h b/ACE/ace/Caching_Strategies_T.h
index 6d23824ba31..371d7c67753 100644
--- a/ACE/ace/Caching_Strategies_T.h
+++ b/ACE/ace/Caching_Strategies_T.h
@@ -191,7 +191,7 @@ private:
* The ATTRIBUTES are the deciding factor for purging of entries
* and should logically be included with the VALUE. Some ways of
* doing this are: As being a member of the VALUE or VALUE being
- * ACE_Pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
+ * std::pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
* class which can be plugged in and which decides the entries
* to purge.
*/
@@ -291,7 +291,7 @@ private:
* The ATTRIBUTES are the deciding factor for purging of entries
* and should logically be included with the VALUE. Some ways of
* doing this are: As being a member of the VALUE or VALUE being
- * ACE_Pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
+ * std::pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
* class which can be plugged in and which decides the entries
* to purge.
*/
@@ -384,7 +384,7 @@ private:
* The ATTRIBUTES are the deciding factor for purging of entries
* and should logically be included with the VALUE. Some ways of
* doing this are: As being a member of the VALUE or VALUE being
- * ACE_Pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
+ * std::pair<x, ATTRIBUTES>. The CACHING_UTILITY is the
* class which can be plugged in and which decides the entries
* to purge.
*/
diff --git a/ACE/ace/Caching_Utility_T.cpp b/ACE/ace/Caching_Utility_T.cpp
index c8b7a48e807..8a0b586ef1f 100644
--- a/ACE/ace/Caching_Utility_T.cpp
+++ b/ACE/ace/Caching_Utility_T.cpp
@@ -9,6 +9,7 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "ace/ACE.h"
#include "ace/Min_Max.h"
#include "ace/OS_Memory.h"
#include "ace/Recyclable.h"
@@ -19,7 +20,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Pair_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
+ bool delete_cleanup_strategy)
: cleanup_strategy_ (cleanup_strategy),
delete_cleanup_strategy_ (delete_cleanup_strategy)
{
@@ -27,7 +28,7 @@ ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Pair_
{
ACE_NEW (this->cleanup_strategy_,
CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
+ this->delete_cleanup_strategy_ = true;
}
}
@@ -43,7 +44,7 @@ ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cac
double purge_percent)
{
// Check that the purge_percent is non-zero.
- if (purge_percent == 0)
+ if (ACE::is_equal (purge_percent, 0.0))
return 0;
// Get the number of entries in the container.
@@ -94,7 +95,7 @@ ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (
// Starting values.
ITERATOR iter = container.begin ();
ITERATOR end = container.end ();
- ATTRIBUTES min = (*iter).int_id_.second ();
+ ATTRIBUTES min = (*iter).int_id_.second;
key_to_remove = &(*iter).ext_id_;
value_to_remove = &(*iter).int_id_;
@@ -104,10 +105,10 @@ ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (
iter != end;
++iter)
{
- if (min > (*iter).int_id_.second ())
+ if (min > (*iter).int_id_.second)
{
// Ah! an item with lower ATTTRIBUTES...
- min = (*iter).int_id_.second ();
+ min = (*iter).int_id_.second;
key_to_remove = &(*iter).ext_id_;
value_to_remove = &(*iter).int_id_;
}
@@ -118,7 +119,7 @@ ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
+ bool delete_cleanup_strategy)
: cleanup_strategy_ (cleanup_strategy),
delete_cleanup_strategy_ (delete_cleanup_strategy)
{
@@ -126,7 +127,7 @@ ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUT
{
ACE_NEW (this->cleanup_strategy_,
CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
+ this->delete_cleanup_strategy_ = true;
}
}
@@ -142,7 +143,7 @@ ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUT
double purge_percent)
{
// Check that the purge_percent is non-zero.
- if (purge_percent == 0)
+ if (ACE::is_equal (purge_percent, 0.0))
return 0;
// Get the number of entries in the container.
@@ -194,7 +195,7 @@ ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUT
// Starting values.
ITERATOR end = container.end ();
ITERATOR iter = container.begin ();
- ATTRIBUTES min = (*iter).int_id_.second ();
+ ATTRIBUTES min = (*iter).int_id_.second;
key_to_remove = 0;
value_to_remove = 0;
// Found the minimum entry to be purged?
@@ -214,7 +215,7 @@ ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUT
{
if (found == 0)
{
- min = (*iter).int_id_.second ();
+ min = (*iter).int_id_.second;
key_to_remove = &(*iter).ext_id_;
value_to_remove = &(*iter).int_id_;
found = 1;
@@ -222,9 +223,9 @@ ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUT
else
{
// Ah! an entry with lower ATTTRIBUTES...
- if (min > (*iter).int_id_.second ())
+ if (min > (*iter).int_id_.second)
{
- min = (*iter).int_id_.second ();
+ min = (*iter).int_id_.second;
key_to_remove = &(*iter).ext_id_;
value_to_remove = &(*iter).int_id_;
}
@@ -237,7 +238,7 @@ ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUT
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Refcounted_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
+ bool delete_cleanup_strategy)
: cleanup_strategy_ (cleanup_strategy),
delete_cleanup_strategy_ (delete_cleanup_strategy),
marked_as_closed_entries_ (0)
@@ -246,7 +247,7 @@ ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATO
{
ACE_NEW (this->cleanup_strategy_,
CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
+ this->delete_cleanup_strategy_ = true;
}
}
@@ -262,7 +263,7 @@ ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATO
double purge_percent)
{
// Check that the purge_percent is non-zero.
- if (purge_percent == 0)
+ if (ACE::is_equal (purge_percent, 0.0))
return 0;
// Get the number of entries in the container which can be considered for purging.
@@ -362,7 +363,7 @@ ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATO
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
+ bool delete_cleanup_strategy)
: cleanup_strategy_ (cleanup_strategy),
delete_cleanup_strategy_ (delete_cleanup_strategy)
{
@@ -370,7 +371,7 @@ ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Ha
{
ACE_NEW (this->cleanup_strategy_,
CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
+ this->delete_cleanup_strategy_ = true;
}
}
@@ -386,7 +387,7 @@ ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_
double purge_percent)
{
// Check that the purge_percent is non-zero.
- if (purge_percent == 0)
+ if (ACE::is_equal (purge_percent, 0.0))
return 0;
// Get the number of entries in the container.
@@ -455,7 +456,7 @@ ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimu
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
ACE_Null_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Null_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy,
- int delete_cleanup_strategy)
+ bool delete_cleanup_strategy)
: cleanup_strategy_ (cleanup_strategy),
delete_cleanup_strategy_ (delete_cleanup_strategy)
{
@@ -463,7 +464,7 @@ ACE_Null_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::ACE_Null_
{
ACE_NEW (this->cleanup_strategy_,
CLEANUP_STRATEGY);
- this->delete_cleanup_strategy_ = 1;
+ this->delete_cleanup_strategy_ = true;
}
}
diff --git a/ACE/ace/Caching_Utility_T.h b/ACE/ace/Caching_Utility_T.h
index 1c1ce48894a..0afcb01bf80 100644
--- a/ACE/ace/Caching_Utility_T.h
+++ b/ACE/ace/Caching_Utility_T.h
@@ -23,9 +23,7 @@
#include "ace/Global_Macros.h"
#include "ace/Cleanup_Strategies_T.h"
-
-// For linkers that cant grok long names.
-#define ACE_Pair_Caching_Utility APUTIL
+#include "ace/Copy_Disabled.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -44,7 +42,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* entries to be cleaned up will be delegated.
*/
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Pair_Caching_Utility
+class ACE_Pair_Caching_Utility : private ACE_Copy_Disabled
{
public:
@@ -52,7 +50,7 @@ public:
/// Constructor.
ACE_Pair_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
+ bool delete_cleanup_strategy = false);
/// Destructor.
~ACE_Pair_Caching_Utility (void);
@@ -61,8 +59,7 @@ public:
* Purge entries from the @a container. The Cleanup_Strategy will do the
* actual job of cleanup once the entries to be cleaned up are decided.
*/
- int clear_cache (CONTAINER &container,
- double purge_percent);
+ int clear_cache (CONTAINER &container, double purge_percent);
protected:
@@ -76,15 +73,9 @@ protected:
CLEANUP_STRATEGY *cleanup_strategy_;
/// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Pair_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Pair_Caching_Utility (const ACE_Pair_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
+ bool delete_cleanup_strategy_;
};
-////////////////////////////////////////////////////////////////////////////////
-#define ACE_Recyclable_Handler_Caching_Utility ARHUTIL
-
/**
* @class ACE_Recyclable_Handler_Caching_Utility
*
@@ -100,7 +91,7 @@ protected:
* be cleaned up will be delegated.
*/
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Recyclable_Handler_Caching_Utility
+class ACE_Recyclable_Handler_Caching_Utility : private ACE_Copy_Disabled
{
public:
@@ -110,7 +101,7 @@ public:
/// Constructor.
ACE_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
+ bool delete_cleanup_strategy = false);
/// Destructor.
~ACE_Recyclable_Handler_Caching_Utility (void);
@@ -134,16 +125,9 @@ protected:
CLEANUP_STRATEGY_BASE *cleanup_strategy_;
/// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Recyclable_Handler_Caching_Utility (const ACE_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
+ bool delete_cleanup_strategy_;
};
-///////////////////////////////////////////////////////////////////////////
-#define ACE_Refcounted_Recyclable_Handler_Caching_Utility ARRHUTIL
-
/**
* @class ACE_Refcounted_Recyclable_Handler_Caching_Utility
*
@@ -160,17 +144,15 @@ private:
* delegated.
*/
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Refcounted_Recyclable_Handler_Caching_Utility
+class ACE_Refcounted_Recyclable_Handler_Caching_Utility : private ACE_Copy_Disabled
{
-
public:
-
typedef ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;
typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY_BASE;
/// Constructor.
ACE_Refcounted_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
+ bool delete_cleanup_strategy = false);
/// Destructor.
~ACE_Refcounted_Recyclable_Handler_Caching_Utility (void);
@@ -194,7 +176,7 @@ protected:
CLEANUP_STRATEGY_BASE *cleanup_strategy_;
/// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
+ bool delete_cleanup_strategy_;
/**
* This figure denotes the number of entries are there in the
@@ -202,14 +184,8 @@ protected:
* not have been unbound from the container.
*/
size_t marked_as_closed_entries_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Refcounted_Recyclable_Handler_Caching_Utility (const ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
};
-////////////////////////////////////////////////////////////////////////////////////////
-
/**
* @class ACE_Handler_Caching_Utility
*
@@ -225,7 +201,7 @@ private:
* class to which the entries to be cleaned up will be delegated.
*/
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Handler_Caching_Utility
+class ACE_Handler_Caching_Utility : private ACE_Copy_Disabled
{
public:
@@ -234,7 +210,7 @@ public:
/// Constructor.
ACE_Handler_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
+ bool delete_cleanup_strategy = false);
/// Destructor.
~ACE_Handler_Caching_Utility (void);
@@ -264,15 +240,9 @@ protected:
CLEANUP_STRATEGY_BASE *cleanup_strategy_;
/// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Handler_Caching_Utility (const ACE_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
+ bool delete_cleanup_strategy_;
};
-///////////////////////////////////////////////////////////////////////////
-#define ACE_Null_Caching_Utility ANUTIL
/**
* @class ACE_Null_Caching_Utility
*
@@ -286,7 +256,7 @@ private:
* be cleaned up will be delegated.
*/
template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
-class ACE_Null_Caching_Utility
+class ACE_Null_Caching_Utility : private ACE_Copy_Disabled
{
public:
@@ -295,7 +265,7 @@ public:
/// Constructor.
ACE_Null_Caching_Utility (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
- int delete_cleanup_strategy = 0);
+ bool delete_cleanup_strategy = false);
/// Destructor.
~ACE_Null_Caching_Utility (void);
@@ -325,11 +295,7 @@ protected:
CLEANUP_STRATEGY_BASE *cleanup_strategy_;
/// Whether the cleanup_strategy should be destroyed or not.
- int delete_cleanup_strategy_;
-
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Null_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Null_Caching_Utility (const ACE_Null_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &))
+ bool delete_cleanup_strategy_;
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Capabilities.cpp b/ACE/ace/Capabilities.cpp
index 04587194a77..46d45204a39 100644
--- a/ACE/ace/Capabilities.cpp
+++ b/ACE/ace/Capabilities.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Capabilities.h"
#include "ace/OS_NS_ctype.h"
#include "ace/OS_Memory.h"
@@ -9,11 +11,6 @@
#include "ace/OS_NS_stdio.h"
-ACE_RCSID (ace,
- Capabilities,
- "$Id$")
-
-
#define ACE_ESC ((ACE_TCHAR)0x1b)
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Capabilities.h b/ACE/ace/Capabilities.h
index 4c26b9cb83a..38670162ea1 100644
--- a/ACE/ace/Capabilities.h
+++ b/ACE/ace/Capabilities.h
@@ -124,16 +124,17 @@ protected:
/**
* @class ACE_Capabilities
*
- * @brief This class implement the ACE Capabilities.
+ * @brief
+ * This class implement the ACE Capabilities.
*
* This is a container class for ACE Capabilities
* values. Currently exist three different capability values:
- * <ACE_IntCapEntry> (integer), <ACE_BoolCapEntry> (bool) and
- * <ACE_StringCapEntry> (String). An ACE_Capabilities is a
- * unordered set of pair = (<String>, <ACE_CapEntry> *). Where
+ * ACE_IntCapEntry (integer), ACE_BoolCapEntry (bool) and
+ * ACE_StringCapEntry (String). An ACE_Capabilities is a
+ * unordered set of pair = (String, ACE_CapEntry *). Where
* the first component is the name of capability and the second
* component is a pointer to the capability value container. A
- * <FILE> is a container for ACE_Capabilities, the
+ * FILE is a container for ACE_Capabilities, the
* ACE_Capabilities has a name in the file, as a termcap file.
*/
class ACE_Export ACE_Capabilities
@@ -188,7 +189,6 @@ private:
/// This is the set of ACE_CapEntry.
CAPABILITIES_MAP caps_;
-
};
#if defined (ACE_IS_SPLITTING)
diff --git a/ACE/ace/Cleanup.cpp b/ACE/ace/Cleanup.cpp
index 665c4ba5674..3490792cb7f 100644
--- a/ACE/ace/Cleanup.cpp
+++ b/ACE/ace/Cleanup.cpp
@@ -2,10 +2,6 @@
#include "ace/Cleanup.h"
-ACE_RCSID (ace,
- Cleanup,
- "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/Cleanup.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/Cleanup_Strategies_T.cpp b/ACE/ace/Cleanup_Strategies_T.cpp
index 10804ba21ca..2bc7bd6fe53 100644
--- a/ACE/ace/Cleanup_Strategies_T.cpp
+++ b/ACE/ace/Cleanup_Strategies_T.cpp
@@ -39,9 +39,9 @@ ACE_Recyclable_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER>::cleanup (
if (container.unbind (*key, value) == -1)
return -1;
- value.first ()->recycler (0, 0);
+ value.first->recycler (0, 0);
- value.first ()->close ();
+ value.first->close ();
return 0;
}
diff --git a/ACE/ace/Codecs.cpp b/ACE/ace/Codecs.cpp
index 505c5fc9916..19718c03aff 100644
--- a/ACE/ace/Codecs.cpp
+++ b/ACE/ace/Codecs.cpp
@@ -1,12 +1,10 @@
+// $Id$
+
#include "ace/Codecs.h"
#include "ace/Log_Msg.h"
#include "ace/OS_Memory.h"
#include "ace/OS_NS_ctype.h"
-ACE_RCSID (ace,
- Codecs,
- "$Id$")
-
namespace
{
// Just in case ...
@@ -71,7 +69,7 @@ ACE_Base64::encode (const ACE_Byte* input,
result[pos++] = alphabet[bits & 0x3f];
cols += 4;
if (cols == max_columns) {
- if (is_chunked)
+ if (is_chunked)
result[pos++] = '\n';
cols = 0;
}
diff --git a/ACE/ace/Codeset_IBM1047.cpp b/ACE/ace/Codeset_IBM1047.cpp
index d1b21be3cd5..7efae752dea 100644
--- a/ACE/ace/Codeset_IBM1047.cpp
+++ b/ACE/ace/Codeset_IBM1047.cpp
@@ -18,10 +18,6 @@
#if defined (ACE_HAS_EBCDIC)
-ACE_RCSID (ace,
- Codeset_IBM1047,
- "$Id$")
-
#include "ace/OS_Memory.h"
#include "ace/OS_NS_string.h"
diff --git a/ACE/ace/Codeset_Registry.cpp b/ACE/ace/Codeset_Registry.cpp
index b98a1dd7e89..77c134adc84 100644
--- a/ACE/ace/Codeset_Registry.cpp
+++ b/ACE/ace/Codeset_Registry.cpp
@@ -21,10 +21,6 @@
#include "ace/Codeset_Registry.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Codeset_Registry,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
int
diff --git a/ACE/ace/Codeset_Registry.h b/ACE/ace/Codeset_Registry.h
index 331fcff37da..49b01e235a0 100644
--- a/ACE/ace/Codeset_Registry.h
+++ b/ACE/ace/Codeset_Registry.h
@@ -33,10 +33,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
-#include /**/ <dce/rpc.h>
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Codeset_Registry
diff --git a/ACE/ace/Codeset_Registry.inl b/ACE/ace/Codeset_Registry.inl
index d24e07cc83b..95bd13a8642 100644
--- a/ACE/ace/Codeset_Registry.inl
+++ b/ACE/ace/Codeset_Registry.inl
@@ -23,20 +23,10 @@ ACE_Codeset_Registry::locale_to_registry(const ACE_CString &locale,
ACE_CDR::UShort *num_sets,
ACE_CDR::UShort **char_sets)
{
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
- error_status_t result;
- dce_cs_loc_to_rgy (locale.c_str(),
- &codeset_id,
- num_sets,
- char_sets,
- &result);
- return (result == dce_cs_c_ok) ? 1 : 0;
-#else
return ACE_Codeset_Registry::locale_to_registry_i (locale,
codeset_id,
num_sets,
char_sets);
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
}
// based on a registry value, find the locale string and optional codeset
@@ -48,23 +38,10 @@ ACE_Codeset_Registry::registry_to_locale(ACE_CDR::ULong codeset_id,
ACE_CDR::UShort *num_sets,
ACE_CDR::UShort **char_sets)
{
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
- error_status_t result;
- char *buffer;
- dce_cs_rgy_to_loc (codeset_id,
- &buffer,
- num_sets,
- char_sets,
- &result);
- locale.set(buffer); // does a copy :-(
- free (buffer);
- return (result == dce_cs_c_ok) ? 1 : 0;
-#else
return ACE_Codeset_Registry::registry_to_locale_i (codeset_id,
locale,
num_sets,
char_sets);
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
}
// Tell if two codesets are compatible. This wraps the
@@ -74,13 +51,7 @@ int
ACE_Codeset_Registry::is_compatible (ACE_CDR::ULong codeset_id,
ACE_CDR::ULong other)
{
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
- error_status_t result;
- rpc_cs_char_set_compat_check(codeset_id,other,&result);
- return (result == rpc_s_ok) ? 1 : 0;
-#else
return ACE_Codeset_Registry::is_compatible_i (codeset_id,other);
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
}
// Return the max number of bytes required to represent a single character.
@@ -89,14 +60,7 @@ ACE_INLINE
ACE_CDR::Short
ACE_Codeset_Registry::get_max_bytes (ACE_CDR::ULong codeset_id)
{
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
- error_status_t result;
- short max_bytes;
- rpc_rgy_get_max_bytes(codeset_id,&max_bytes,&result);
- return (result == rpc_s_ok) ? (short)max_bytes : 0;
-#else
return ACE_Codeset_Registry::get_max_bytes_i (codeset_id);
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Condition_Recursive_Thread_Mutex.cpp b/ACE/ace/Condition_Recursive_Thread_Mutex.cpp
index af80f4bfbfd..01607d8c52c 100644
--- a/ACE/ace/Condition_Recursive_Thread_Mutex.cpp
+++ b/ACE/ace/Condition_Recursive_Thread_Mutex.cpp
@@ -63,7 +63,7 @@ ACE_Condition<ACE_Recursive_Thread_Mutex>::wait (ACE_Recursive_Thread_Mutex &mut
const ACE_Time_Value *abstime)
{
ACE_recursive_mutex_state mutex_state_holder;
- ACE_recursive_thread_mutex_t &recursive_mutex = mutex.mutex ();
+ ACE_recursive_thread_mutex_t &recursive_mutex = mutex.lock ();
if (ACE_OS::recursive_mutex_cond_unlock (&recursive_mutex,
mutex_state_holder) == -1)
@@ -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..5bf34b87f7e 100644
--- a/ACE/ace/Condition_Recursive_Thread_Mutex.h
+++ b/ACE/ace/Condition_Recursive_Thread_Mutex.h
@@ -32,8 +32,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <class ACE_LOCK> class ACE_Condition;
/**
- * @class ACE_Condition<ACE_Recursive_Thread_Mutex>
- *
* @brief ACE_Condition template specialization written using
* @a ACE_Recursive_Thread_Mutex. This allows threads to block until
* shared data changes state using recursive mutexes.
@@ -57,7 +55,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/Condition_T.cpp b/ACE/ace/Condition_T.cpp
index e4931ce442e..0e2c465f75f 100644
--- a/ACE/ace/Condition_T.cpp
+++ b/ACE/ace/Condition_T.cpp
@@ -87,7 +87,7 @@ ACE_Condition<MUTEX>::wait (void)
{
// ACE_TRACE ("ACE_Condition<MUTEX>::wait");
return ACE_OS::cond_wait (&this->cond_,
- &this->mutex_.lock_);
+ &this->mutex_.lock ());
}
template <class MUTEX> int
@@ -96,12 +96,17 @@ ACE_Condition<MUTEX>::wait (MUTEX &mutex,
{
// ACE_TRACE ("ACE_Condition<MUTEX>::wait");
if (abstime == 0)
+ {
return ACE_OS::cond_wait (&this->cond_,
- &mutex.lock_);
+ &mutex.lock ());
+ }
else
- return ACE_OS::cond_timedwait (&this->cond_,
- &mutex.lock_,
- (ACE_Time_Value *) abstime);
+ {
+ ACE_Time_Value tv = *abstime;
+ return ACE_OS::cond_timedwait (&this->cond_,
+ &mutex.lock (),
+ &tv);
+ }
}
// Peform an "alertable" timed wait. If the argument ABSTIME == 0
diff --git a/ACE/ace/Condition_T.h b/ACE/ace/Condition_T.h
index edcf72c4931..44a1f55fb91 100644
--- a/ACE/ace/Condition_T.h
+++ b/ACE/ace/Condition_T.h
@@ -37,8 +37,8 @@ class ACE_Time_Value;
* until shared data changes state.
*
* A condition variable enables threads to atomically block and
- * test the condition under the protection of a mutual exclu-
- * sion lock (mutex) until the condition is satisfied. That is,
+ * test the condition under the protection of a mutual exclusion
+ * lock (mutex) until the condition is satisfied. That is,
* the mutex must have been held by the thread before calling
* wait or signal on the condition. If the condition is false,
* a thread blocks on a condition variable and atomically
@@ -54,7 +54,6 @@ template <class MUTEX>
class ACE_Condition
{
public:
- // = Initialiation and termination methods.
/// Initialize the condition variable.
ACE_Condition (MUTEX &m, int type = USYNC_THREAD,
const ACE_TCHAR *name = 0, void *arg = 0);
@@ -67,7 +66,7 @@ public:
* Block on condition, or until absolute time-of-day has passed. If
* @a 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.
+ * wait() returns -1 and sets errno to ETIME.
*/
int wait (const ACE_Time_Value *abstime);
@@ -76,10 +75,10 @@ public:
/**
* Block on condition or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" wait() semantics on the <mutex>
+ * @a abstime == 0 use "blocking" wait() semantics on the @a mutex
* passed as a parameter (this is useful if you need to store the
- * <Condition> in shared memory). Else, if <abstime> != 0 and the
- * call times out before the condition is signaled <wait> returns -1
+ * <Condition> in shared memory). Else, if @a abstime != 0 and the
+ * call times out before the condition is signaled wait() returns -1
* and sets errno to ETIME.
*/
int wait (MUTEX &mutex, const ACE_Time_Value *abstime = 0);
diff --git a/ACE/ace/Condition_Thread_Mutex.cpp b/ACE/ace/Condition_Thread_Mutex.cpp
index 1535b4c87f3..dc727fbd5dd 100644
--- a/ACE/ace/Condition_Thread_Mutex.cpp
+++ b/ACE/ace/Condition_Thread_Mutex.cpp
@@ -19,7 +19,7 @@
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Condition_Thread_Mutex, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Condition_Thread_Mutex.h b/ACE/ace/Condition_Thread_Mutex.h
index 2806f03691e..89444dd31c1 100644
--- a/ACE/ace/Condition_Thread_Mutex.h
+++ b/ACE/ace/Condition_Thread_Mutex.h
@@ -154,30 +154,6 @@ private:
ACE_Condition_Thread_Mutex (const ACE_Condition_Thread_Mutex &);
};
-#if 0
-// The following class is commented out since there doesn't
-// appear to be a portable and robust means of implementing this
-// functionality across platforms. If you know of a portable and
-// robust way to implement this functionality please let us know.
-
-/**
- * @class ACE_Process_Condition
- *
- * @brief ACE_Condition variable wrapper that works across processes.
- */
-class ACE_Export ACE_Process_Condition
-{
-public:
- ACE_Process_Condition (MUTEX &m, const ACE_TCHAR *name = 0, void *arg = 0);
-
- /// Dump the state of an object.
- void dump (void) const;
-
- // ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-};
-#endif /* 0 */
-
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
diff --git a/ACE/ace/Condition_Thread_Mutex.inl b/ACE/ace/Condition_Thread_Mutex.inl
index 12cc18a1bad..c49df62b753 100644
--- a/ACE/ace/Condition_Thread_Mutex.inl
+++ b/ACE/ace/Condition_Thread_Mutex.inl
@@ -50,25 +50,4 @@ ACE_Condition_Thread_Mutex::mutex (void)
return this->mutex_;
}
-#if 0
-template <class MUTEX> void
-ACE_Process_Condition<MUTEX>::dump (void) const
-{
-#if defined (ACE_HAS_DUMP)
-// ACE_TRACE ("ACE_Process_Condition<MUTEX>::dump");
-
- ACE_Condition<MUTEX>::dump ();
-#endif /* ACE_HAS_DUMP */
-}
-
-template <class MUTEX>
-ACE_Process_Condition<MUTEX>::ACE_Process_Condition (MUTEX &m,
- const ACE_TCHAR *name,
- void *arg)
- : ACE_Condition<MUTEX> (m, USYNC_PROCESS, name, arg)
-{
-// ACE_TRACE ("ACE_Process_Condition<MUTEX>::ACE_Process_Condition");
-}
-#endif /* 0 */
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Configuration.cpp b/ACE/ace/Configuration.cpp
index 823a2356a8a..b6a0875e4ae 100644
--- a/ACE/ace/Configuration.cpp
+++ b/ACE/ace/Configuration.cpp
@@ -4,10 +4,7 @@
#include "ace/SString.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_strings.h"
-
-// Can remove this when import_config and export_config are removed from
-// ACE_Configuration. They're deprecated at ACE 5.2.
-#include "ace/Configuration_Import_Export.h"
+#include "ace/Tokenizer_T.h"
#if !defined (ACE_LACKS_ACCESS)
# include "ace/OS_NS_unistd.h"
@@ -134,22 +131,6 @@ ACE_Configuration::expand_path (const ACE_Configuration_Section_Key& key,
}
-// import_config and export_config are here for backward compatibility,
-// and have been deprecated.
-int
-ACE_Configuration::export_config (const ACE_TCHAR* filename)
-{
- ACE_Registry_ImpExp exporter (*this);
- return exporter.export_config (filename);
-}
-
-int
-ACE_Configuration::import_config (const ACE_TCHAR* filename)
-{
- ACE_Registry_ImpExp importer (*this);
- return importer.import_config (filename);
-}
-
int
ACE_Configuration::validate_name (const ACE_TCHAR* name, int allow_path)
{
@@ -518,11 +499,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 +517,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 +551,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 +1025,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;
@@ -1267,6 +1239,12 @@ ACE_Configuration_Heap::~ACE_Configuration_Heap (void)
int
ACE_Configuration_Heap::open (size_t default_map_size)
{
+ if (this->allocator_ != 0)
+ {
+ errno = EBUSY;
+ return -1;
+ }
+
default_map_size_ = default_map_size;
// Create the allocator with the appropriate options.
// The name used for the lock is the same as one used
@@ -1283,6 +1261,12 @@ ACE_Configuration_Heap::open (const ACE_TCHAR* file_name,
void* base_address,
size_t default_map_size)
{
+ if (this->allocator_ != 0)
+ {
+ errno = EBUSY;
+ return -1;
+ }
+
default_map_size_ = default_map_size;
// Make sure that the file name is of the legal length.
@@ -1595,7 +1579,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 +1616,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;
@@ -1648,7 +1632,7 @@ ACE_Configuration_Heap::remove_section (const ACE_Configuration_Section_Key& key
// Now remove subkey from parent key
ACE_Configuration_ExtId SubSExtId (sub_section);
- SUBSECTION_HASH::ENTRY* subsection_entry;
+ SUBSECTION_HASH::ENTRY* subsection_entry = 0;
if (((SUBSECTION_HASH*)ParentIntId.section_hash_map_)->
find (SubSExtId, subsection_entry))
return -1;
diff --git a/ACE/ace/Configuration.h b/ACE/ace/Configuration.h
index 5126aeed622..8bcc926dc65 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.
@@ -360,22 +360,6 @@ public:
int create = 1);
/**
- * @deprecated Exports the configuration database to filename.
- * If @a filename is already present, it is overwritten. This function is
- * deprecated and will be removed in a future version of ACE. Please use
- * either ACE_Registry_ImpExp or ACE_Ini_ImpExp instead.
- */
- int export_config (const ACE_TCHAR* filename);
-
- /**
- * @deprecated Imports the configuration database from filename. Any
- * existing data is not removed. This function is deprecated and will be
- * removed in a future version of ACE. Please use ACE_Registry_ImpExp
- * or ACE_Ini_ImpExp instead.
- */
- int import_config (const ACE_TCHAR* filename);
-
- /**
* Determine if the contents of this object is the same as the
* contents of the object on the right hand side.
* Returns true if they are equal and false if they are not equal
@@ -483,7 +467,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,
@@ -619,9 +603,6 @@ typedef ACE_Hash_Map_Manager_Ex<ACE_Configuration_ExtId,
ACE_Null_Mutex>
SUBSECTION_HASH;
-/// @deprecated Deprecated typedef. Use the SUBSECTION_HASH::ENTRY trait instead.
-typedef SUBSECTION_HASH::ENTRY SUBSECTION_ENTRY;
-
/**
* @class ACE_Configuration_Value_IntId
*
@@ -791,12 +772,37 @@ public:
/// Destructor
virtual ~ACE_Configuration_Heap (void);
- /// Opens a configuration based on a file name
+ /**
+ * Opens a configuration that allocates its memory from a memory-mapped file.
+ * This makes it possible to persist a configuration to permanent storage.
+ * This is not the same as exporting the configuration to a file; the
+ * memory-mapped file is not likely to be very readable by humans.
+ *
+ * @param file_name Name of the file to map into memory.
+ *
+ * @param base_address Address to map the base of @a file_name to.
+ *
+ * @param default_map_size Starting size for the internal hash tables that
+ * contain configuration information.
+ *
+ * @retval 0 for success.
+ * @retval -1 for error, with errno set to indicate the cause. If open()
+ * is called multiple times, errno will be @c EBUSY.
+ */
int open (const ACE_TCHAR* file_name,
void* base_address = ACE_DEFAULT_BASE_ADDR,
size_t default_map_size = ACE_DEFAULT_CONFIG_SECTION_SIZE);
- /// Opens a heap based configuration
+ /**
+ * Opens a configuration that allocates memory from the heap.
+ *
+ * @param default_map_size Starting size for the internal hash tables that
+ * contain configuration information.
+ *
+ * @retval 0 for success.
+ * @retval -1 for error, with errno set to indicate the cause. If open()
+ * is called multiple times, errno will be @c EBUSY.
+ */
int open (size_t default_map_size = ACE_DEFAULT_CONFIG_SECTION_SIZE);
virtual int open_section (const ACE_Configuration_Section_Key& base,
@@ -805,7 +811,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/Configuration_Import_Export.h b/ACE/ace/Configuration_Import_Export.h
index 41dc401e0c7..e3b9cde0457 100644
--- a/ACE/ace/Configuration_Import_Export.h
+++ b/ACE/ace/Configuration_Import_Export.h
@@ -83,12 +83,12 @@ private:
* using the Win32 Registry file export format. This format looks like
* [Section]
* "key"="String Data"
- * "key"=dword: numeric data in hexidecimal format
+ * "key"=dword: numeric data in hexadecimal format
* "key"=hex: binary data
*
* @todo
* - Add dynamic buffer when importing. currently it will not allow
- * importing of values greater than a fixed ammount (4096 bytes)
+ * importing of values greater than a fixed amount (4096 bytes)
*
*/
class ACE_Export ACE_Registry_ImpExp : public ACE_Config_ImpExp_Base
@@ -101,7 +101,7 @@ public:
virtual ~ACE_Registry_ImpExp (void);
/**
- * Imports the configuration database from filename.
+ * Imports the configuration database from @a filename.
* No existing data is removed.
*/
virtual int import_config (const ACE_TCHAR* filename);
@@ -149,7 +149,7 @@ private:
* Justification = left_justified
*
* The caller can then retrieve the string with the regular
- * <get_string_value> function and convert the string to the
+ * get_string_value() function and convert the string to the
* desired data type.
*
* @todo
@@ -157,7 +157,7 @@ private:
* - Strings with embedded quotes " cause the import to fail
* - Importing/exporting for values in the root section does not work
* - Add dynamic buffer when importing. currently it will not allow
- * importing of values greater than a fixed ammount (4096 bytes)
+ * importing of values greater than a fixed amount (4096 bytes)
*/
class ACE_Export ACE_Ini_ImpExp : public ACE_Config_ImpExp_Base
{
@@ -173,7 +173,7 @@ public:
virtual ~ACE_Ini_ImpExp (void);
/**
- * Imports the configuration database from filename.
+ * Imports the configuration database from @a filename.
* No existing data is removed.
*/
virtual int import_config (const ACE_TCHAR* filename);
diff --git a/ACE/ace/Connection_Recycling_Strategy.cpp b/ACE/ace/Connection_Recycling_Strategy.cpp
index c5bc6910d21..0705c8a04be 100644
--- a/ACE/ace/Connection_Recycling_Strategy.cpp
+++ b/ACE/ace/Connection_Recycling_Strategy.cpp
@@ -1,8 +1,6 @@
-#include "ace/Connection_Recycling_Strategy.h"
-
-
-ACE_RCSID(ace, Connection_Recycling_Strategy, "$Id$")
+// $Id$
+#include "ace/Connection_Recycling_Strategy.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Connector.cpp b/ACE/ace/Connector.cpp
index 842bc9599f4..66f60da3044 100644
--- a/ACE/ace/Connector.cpp
+++ b/ACE/ace/Connector.cpp
@@ -24,12 +24,33 @@ ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::ACE_NonBlocking_Connect_Handler
long id)
: connector_ (connector)
, svc_handler_ (sh)
+ , cleanup_svc_handler_ (0)
, timer_id_ (id)
{
ACE_TRACE ("ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::ACE_NonBlocking_Connect_Handler");
this->reference_counting_policy ().value
(ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+
+ if (this->svc_handler_ != 0 &&
+ this->svc_handler_->reference_counting_policy ().value () ==
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED)
+ {
+ // If SVC_HANDLER is reference counted then NBCH holds a reference
+ // in cleanup_svc_handle_ which is both a pointer to SVC_HANDLER
+ // and a flag that triggers remove_reference in NBCH destructor.
+ this->cleanup_svc_handler_ = sh;
+ this->cleanup_svc_handler_->add_reference ();
+ }
+}
+
+template <class SVC_HANDLER>
+ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::~ACE_NonBlocking_Connect_Handler (void)
+{
+ if (this->cleanup_svc_handler_)
+ {
+ this->cleanup_svc_handler_->remove_reference ();
+ }
}
template <class SVC_HANDLER> SVC_HANDLER *
@@ -100,9 +121,9 @@ ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::close (SVC_HANDLER *&sh)
return false;
// Remove from Reactor.
- if (this->reactor ()->remove_handler (
+ if (-1 == this->reactor ()->remove_handler (
h,
- ACE_Event_Handler::ALL_EVENTS_MASK) == -1)
+ ACE_Event_Handler::ALL_EVENTS_MASK | ACE_Event_Handler::DONT_CALL))
return false;
}
@@ -119,7 +140,7 @@ ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::handle_timeout
ACE_TRACE ("ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::handle_timeout");
SVC_HANDLER *svc_handler = 0;
- int retval = this->close (svc_handler) ? 0 : -1;
+ int const retval = this->close (svc_handler) ? 0 : -1;
// Forward to the SVC_HANDLER the <arg> that was passed in as a
// magic cookie during ACE_Connector::connect(). This gives the
@@ -145,12 +166,28 @@ ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::handle_input (ACE_HANDLE)
// Close Svc_Handler.
if (svc_handler != 0)
- svc_handler->close (NORMAL_CLOSE_OPERATION);
+ {
+ svc_handler->close (NORMAL_CLOSE_OPERATION);
+ }
return retval;
}
template <class SVC_HANDLER> int
+ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask m)
+{
+ // epoll on Linux will, at least sometimes, return EPOLLERR when a connect
+ // fails, triggering a total removal from the reactor. This is different from
+ // select()-based systems which select the fd for read on a connect failure.
+ // So just call handle_input() to rejoin common handling for a failed
+ // connect.
+ if (m == ACE_Event_Handler::ALL_EVENTS_MASK)
+ return this->handle_input (handle);
+ return -1;
+}
+
+template <class SVC_HANDLER> int
ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::handle_output (ACE_HANDLE handle)
{
// Called when a connection is establishment asynchronous.
@@ -162,7 +199,9 @@ ACE_NonBlocking_Connect_Handler<SVC_HANDLER>::handle_output (ACE_HANDLE handle)
int const retval = this->close (svc_handler) ? 0 : -1;
if (svc_handler != 0)
- connector.initialize_svc_handler (handle, svc_handler);
+ {
+ connector.initialize_svc_handler (handle, svc_handler);
+ }
return retval;
}
@@ -790,7 +829,7 @@ ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::open
else if (this->creation_strategy_ == 0)
{
ACE_NEW_RETURN (this->creation_strategy_,
- CREATION_STRATEGY,
+ CREATION_STRATEGY (0, r),
-1);
this->delete_creation_strategy_ = true;
}
@@ -848,7 +887,8 @@ ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::ACE_Strategy_Connecto
ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> *conn_s,
ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
int flags)
- : creation_strategy_ (0),
+ : base_type (reactor),
+ creation_strategy_ (0),
delete_creation_strategy_ (false),
connect_strategy_ (0),
delete_connect_strategy_ (false),
diff --git a/ACE/ace/Connector.h b/ACE/ace/Connector.h
index 4ba8c7ce3dd..0063d9498b8 100644
--- a/ACE/ace/Connector.h
+++ b/ACE/ace/Connector.h
@@ -67,6 +67,9 @@ public:
SVC_HANDLER *,
long timer_id);
+ /// Destructor.
+ ~ACE_NonBlocking_Connect_Handler (void);
+
/// Close up and return underlying SVC_HANDLER through @c sh.
/**
* If the return value is true the close was performed succesfully,
@@ -99,6 +102,9 @@ public:
/// Called by ACE_Reactor when asynchronous connections fail.
virtual int handle_input (ACE_HANDLE);
+ /// Called by ACE_Dev_Poll_Reactor when asynchronous connections fail.
+ virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
+
/// Called by ACE_Reactor when asynchronous connections succeed.
virtual int handle_output (ACE_HANDLE);
@@ -127,6 +133,9 @@ private:
/// Associated SVC_HANDLER.
SVC_HANDLER *svc_handler_;
+ /// Same as svc_handler_ if svc_handler_ is reference counted.
+ SVC_HANDLER *cleanup_svc_handler_;
+
/// Associated timer id.
long timer_id_;
};
@@ -418,7 +427,7 @@ public:
SUPER;
/**
- * Initialize a connector. @a flags indicates how <SVC_HANDLER>'s
+ * Initialize a connector. @a flags indicates how SVC_HANDLER's
* should be initialized prior to being activated. Right now, the
* only flag that is processed is ACE_NONBLOCK, which enabled
* non-blocking I/O on the SVC_HANDLER when it is opened.
@@ -529,21 +538,21 @@ protected:
/// Creation strategy for an Connector.
CREATION_STRATEGY *creation_strategy_;
- /// true if Connector created the creation strategy and thus should
+ /// True if Connector created the creation strategy and thus should
/// delete it, else false.
bool delete_creation_strategy_;
/// Connect strategy for a Connector.
CONNECT_STRATEGY *connect_strategy_;
- /// true if Connector created the connect strategy and thus should
+ /// True if Connector created the connect strategy and thus should
/// delete it, else false.
bool delete_connect_strategy_;
- /// Concurrency strategy for an <Connector>.
+ /// Concurrency strategy for a Connector.
CONCURRENCY_STRATEGY *concurrency_strategy_;
- /// true if Connector created the concurrency strategy and thus should
+ /// True if Connector created the concurrency strategy and thus should
/// delete it, else false.
bool delete_concurrency_strategy_;
};
diff --git a/ACE/ace/Containers.cpp b/ACE/ace/Containers.cpp
index 2904225a3c9..296a4494322 100644
--- a/ACE/ace/Containers.cpp
+++ b/ACE/ace/Containers.cpp
@@ -2,10 +2,6 @@
#include "ace/Containers.h"
-ACE_RCSID (ace,
- Containers,
- "$Id$")
-
#if !defined (__ACE_INLINE__)
#include "ace/Containers.inl"
#endif /* __ACE_INLINE__ */
diff --git a/ACE/ace/Containers_T.cpp b/ACE/ace/Containers_T.cpp
index acb21bed337..6f2bd86b23f 100644
--- a/ACE/ace/Containers_T.cpp
+++ b/ACE/ace/Containers_T.cpp
@@ -796,35 +796,6 @@ ACE_Double_Linked_List<T>::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-#if 0
-template <class T> T *
-ACE_Double_Linked_List<T>::find (const T &item)
-{
- for (ACE_Double_Linked_List_Iterator<T> iter (*this);
- !iter.done ();
- iter.advance ())
- {
- T *temp = iter.next ();
-
- if (*temp == item)
- return temp;
- }
-
- return 0;
-}
-
-template <class T> int
-ACE_Double_Linked_List<T>::remove (const T &item)
-{
- T *temp = this->find (item);
-
- if (temp != 0)
- return this->remove (temp);
- else
- return -1;
-}
-#endif /* 0 */
-
template <class T> int
ACE_Double_Linked_List<T>::remove (T *n)
{
@@ -1621,7 +1592,7 @@ template <class T> int
ACE_Ordered_MultiSet<T>::find (const T &item,
ITERATOR &iter) const
{
- // search an occurance of item, using iterator's current position as a hint
+ // search an occurrence of item, using iterator's current position as a hint
ACE_DNode<T> *node = iter.current_;
int const result = locate (item, node, node);
@@ -1779,7 +1750,7 @@ ACE_Ordered_MultiSet<T>::locate (const T &item, ACE_DNode<T> *start_position,
return 0;
}
-// Looks for first occurance of <item> in the ordered set, using the
+// Looks for first occurrence of <item> in the ordered set, using the
// passed starting position as a hint: if there is such an instance,
// it updates the new_position pointer to point to one such node and
// returns 0; if there is no such node, then if there is a node before
diff --git a/ACE/ace/Containers_T.h b/ACE/ace/Containers_T.h
index 25a46450abd..fe1d6de5789 100644
--- a/ACE/ace/Containers_T.h
+++ b/ACE/ace/Containers_T.h
@@ -1920,7 +1920,7 @@ private:
ACE_DNode<T> **new_position);
/**
- * Looks for first occurance of @a item in the ordered set, using the
+ * Looks for first occurrence of @a item in the ordered set, using the
* passed starting position as a hint: if there is such an instance, it
* updates the new_position pointer to point to this node and returns 0;
* if there is no such node, then if there is a node before where the
@@ -1993,13 +1993,8 @@ class ACE_Array : public ACE_Array_Base<T>
public:
// Define a "trait"
typedef T TYPE;
-
typedef ACE_Array_Iterator<T> ITERATOR;
- // = Exceptions.
-
- // = Initialization and termination methods.
-
/// Dynamically create an uninitialized array.
/**
* Initialize an empty array of the specified size using the provided
diff --git a/ACE/ace/Copy_Disabled.cpp b/ACE/ace/Copy_Disabled.cpp
index d2fb124a182..5efcd7d7152 100644
--- a/ACE/ace/Copy_Disabled.cpp
+++ b/ACE/ace/Copy_Disabled.cpp
@@ -8,12 +8,6 @@
#include "ace/Copy_Disabled.h"
-
-ACE_RCSID (ace,
- Copy_Disabled,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Copy_Disabled::ACE_Copy_Disabled (void)
diff --git a/ACE/ace/Countdown_Time.cpp b/ACE/ace/Countdown_Time.cpp
index 4c95e2acfa1..335931514e4 100644
--- a/ACE/ace/Countdown_Time.cpp
+++ b/ACE/ace/Countdown_Time.cpp
@@ -1,9 +1,11 @@
+// $Id$
+
#include "ace/Countdown_Time.h"
#include "ace/OS_NS_sys_time.h"
-ACE_RCSID (ace,
- Countdown_Time,
- "$Id$")
+#if !defined (__ACE_INLINE__)
+#include "ace/Countdown_Time.inl"
+#endif /* __ACE_INLINE__ */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -29,20 +31,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 +54,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/DEV.cpp b/ACE/ace/DEV.cpp
index 1ae27fc558e..8752e21738d 100644
--- a/ACE/ace/DEV.cpp
+++ b/ACE/ace/DEV.cpp
@@ -8,7 +8,7 @@
#include "ace/DEV.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, DEV, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/DEV.h b/ACE/ace/DEV.h
index 8b0c585ddf7..bfc3d36c7a2 100644
--- a/ACE/ace/DEV.h
+++ b/ACE/ace/DEV.h
@@ -23,19 +23,6 @@
#include "ace/DEV_Addr.h"
-// The following is necessary since many C++ compilers don't support
-// typedef'd types inside of classes used as formal template
-// arguments... ;-(. Luckily, using the C++ preprocessor I can hide
-// most of this nastiness!
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-#define ACE_DEV_CONNECTOR ACE_DEV_Connector
-#define ACE_DEV_STREAM ACE_DEV_IO
-#else /* TEMPLATES are broken (must be a cfront-based compiler...) */
-#define ACE_DEV_CONNECTOR ACE_DEV_Connector, ACE_DEV_Addr
-#define ACE_DEV_STREAM ACE_DEV_IO, ACE_DEV_Addr
-#endif /* ACE_TEMPLATE_TYPEDEFS */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
diff --git a/ACE/ace/DEV_Addr.cpp b/ACE/ace/DEV_Addr.cpp
index 39d1768051f..2b0a4f7cd7b 100644
--- a/ACE/ace/DEV_Addr.cpp
+++ b/ACE/ace/DEV_Addr.cpp
@@ -8,10 +8,6 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace,
- DEV_Addr,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_DEV_Addr)
diff --git a/ACE/ace/DEV_Connector.cpp b/ACE/ace/DEV_Connector.cpp
index a1fef807057..9b88afbc342 100644
--- a/ACE/ace/DEV_Connector.cpp
+++ b/ACE/ace/DEV_Connector.cpp
@@ -8,12 +8,6 @@
#include "ace/DEV_Connector.inl"
#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- DEV_Connector,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_DEV_Connector)
diff --git a/ACE/ace/DEV_IO.cpp b/ACE/ace/DEV_IO.cpp
index f5367d1d5cd..24e6f64a155 100644
--- a/ACE/ace/DEV_IO.cpp
+++ b/ACE/ace/DEV_IO.cpp
@@ -7,7 +7,7 @@
#include "ace/DEV_IO.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, DEV_IO, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/DLL.cpp b/ACE/ace/DLL.cpp
index cdee3c6bd24..f5b3a5edc6e 100644
--- a/ACE/ace/DLL.cpp
+++ b/ACE/ace/DLL.cpp
@@ -11,7 +11,7 @@
#include <algorithm>
-ACE_RCSID(ace, DLL, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/DLL.h b/ACE/ace/DLL.h
index 64cb646576a..af92d842d51 100644
--- a/ACE/ace/DLL.h
+++ b/ACE/ace/DLL.h
@@ -151,12 +151,12 @@ public:
* Return the handle to the caller. If @a become_owner is non-0 then
* caller assumes ownership of the handle and the ACE_DLL object
* won't call close() when it goes out of scope, even if
- * <close_handle_on_destruction> is set.
+ * @c close_handle_on_destruction is set.
*/
ACE_SHLIB_HANDLE get_handle (int become_owner = 0) const;
/// Set the handle for the DLL object. By default, the close()
- //operation on / the object will be invoked before it is destroyed.
+ /// operation on / the object will be invoked before it is destroyed.
int set_handle (ACE_SHLIB_HANDLE handle,
bool close_handle_on_destruction = true);
diff --git a/ACE/ace/DLL_Manager.cpp b/ACE/ace/DLL_Manager.cpp
index e161e2fd791..7639a243f24 100644
--- a/ACE/ace/DLL_Manager.cpp
+++ b/ACE/ace/DLL_Manager.cpp
@@ -14,13 +14,7 @@
#include "ace/OS_NS_dlfcn.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace,
- DLL_Manager,
- "DLL_Manager.cpp,v 4.23 2003/11/05 23:30:46 shuston Exp")
-
-/******************************************************************/
-
- ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
sig_atomic_t ACE_DLL_Handle::open_called_ = 0;
@@ -61,7 +55,7 @@ ACE_DLL_Handle::open (const ACE_TCHAR *dll_name,
{
if (ACE::debug ())
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("(%P|%t) DLL_Handle::open: error, ")
+ ACE_TEXT ("ACE (%P|%t) DLL_Handle::open: error, ")
ACE_TEXT ("tried to reopen %s with name %s\n"),
this->dll_name_,
dll_name));
@@ -151,9 +145,9 @@ ACE_DLL_Handle::open (const ACE_TCHAR *dll_name,
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("ACE (%P|%t) DLL_Handle::open ")
ACE_TEXT ("(\'%s\') failed, errno=")
- ACE_TEXT ("%d: %s\n"),
+ ACE_TEXT ("%d: <%s>\n"),
name->c_str (),
- errno,
+ ACE_ERRNO_GET,
this->error ()->c_str ()));
#if defined (AIX)
@@ -370,7 +364,7 @@ ACE_DLL_Handle::get_handle (int become_owner)
if (ACE::debug ())
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ACE (%P|%t) ACE_DLL_Handle::get_handle: ")
+ ACE_TEXT ("ACE (%P|%t) DLL_Handle::get_handle: ")
ACE_TEXT ("post call: handle %s, refcount %d\n"),
this->handle_ == ACE_SHLIB_INVALID_HANDLE ?
ACE_TEXT ("invalid") : ACE_TEXT ("valid"),
@@ -537,7 +531,7 @@ ACE_DLL_Manager::ACE_DLL_Manager (int size)
if (this->open (size) != 0 && ACE::debug ())
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("ACE_DLL_Manager ctor failed to allocate ")
+ ACE_TEXT ("ACE (%P|%t) DLL_Manager ctor failed to allocate ")
ACE_TEXT ("handle_vector_.\n")));
}
@@ -547,7 +541,7 @@ ACE_DLL_Manager::~ACE_DLL_Manager (void)
if (this->close () != 0 && ACE::debug ())
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("ACE_DLL_Manager dtor failed to close ")
+ ACE_TEXT ("ACE (%P|%t) DLL_Manager dtor failed to close ")
ACE_TEXT ("properly.\n")));
}
@@ -583,7 +577,7 @@ ACE_DLL_Manager::open_dll (const ACE_TCHAR *dll_name,
// Error while opening dll. Free temp handle
if (ACE::debug ())
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("ACE_DLL_Manager::open_dll: Could not ")
+ ACE_TEXT ("ACE (%P|%t) DLL_Manager::open_dll: Could not ")
ACE_TEXT ("open dll %s.\n"),
dll_name));
@@ -766,7 +760,7 @@ ACE_DLL_Manager::unload_dll (ACE_DLL_Handle *dll_handle, int force_unload)
{
if (ACE::debug ())
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("ACE_DLL_Manager::unload error.\n")));
+ ACE_TEXT ("ACE (%P|%t) DLL_Manager::unload error.\n")));
return -1;
}
@@ -775,7 +769,7 @@ ACE_DLL_Manager::unload_dll (ACE_DLL_Handle *dll_handle, int force_unload)
{
if (ACE::debug ())
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("ACE_DLL_Manager::unload_dll called with ")
+ ACE_TEXT ("ACE (%P|%t) DLL_Manager::unload_dll called with ")
ACE_TEXT ("null pointer.\n")));
return -1;
diff --git a/ACE/ace/DLL_Manager.h b/ACE/ace/DLL_Manager.h
index a59636696ba..279d48cf9d4 100644
--- a/ACE/ace/DLL_Manager.h
+++ b/ACE/ace/DLL_Manager.h
@@ -45,7 +45,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* on some platforms. It is refcounted and managed by
* ACE_DLL_Manager, so there will only be a single instance of this
* class for each dll loaded, no matter how many instances of ACE_DLL
- * an application has open. Operations <open>, <close>, and <symbol>
+ * an application has open. Operations open(), close(), and symbol()
* have been implemented to help opening/closing and extracting symbol
* information from a DLL, respectively.
*
@@ -69,11 +69,11 @@ public:
/**
* This method opens and dynamically links @a dll_name. The default
- * mode is <RTLD_LAZY>, which loads identifier symbols but not the
+ * mode is @c RTLD_LAZY, which loads identifier symbols but not the
* symbols for functions, which are loaded dynamically on-demand.
- * Other supported modes include: <RTLD_NOW>, which performs all
+ * Other supported modes include: @c RTLD_NOW, which performs all
* necessary relocations when @a dll_name is first loaded and
- * <RTLD_GLOBAL>, which makes symbols available for relocation
+ * @c RTLD_GLOBAL, which makes symbols available for relocation
* processing of any other DLLs. Returns -1 on failure and 0 on
* success.
*/
@@ -110,20 +110,20 @@ private:
/// to the caller.
auto_ptr <ACE_TString> error (void);
- // Builds array of DLL names to try to dlopen, based on platform
- // and configured DLL prefixes/suffixes.
- // Returns the array of names to try in try_names.
+ /// Builds array of DLL names to try to dlopen, based on platform
+ /// and configured DLL prefixes/suffixes.
+ /// Returns the array of names to try in try_names.
void get_dll_names (const ACE_TCHAR *dll_name,
ACE_Array<ACE_TString> &try_names);
- // Disallow copying and assignment since we don't handle them.
+ /// Disallow copying and assignment since we don't handle them.
ACE_DLL_Handle (const ACE_DLL_Handle &);
void operator= (const ACE_DLL_Handle &);
private:
- // Keep track of how many ACE_DLL objects have a reference to this
- // dll.
+ /// Keep track of how many ACE_DLL objects have a reference to this
+ /// dll.
sig_atomic_t refcount_;
/// Name of the shared library.
@@ -218,16 +218,16 @@ protected:
/// Destructor.
~ACE_DLL_Manager (void);
- // Allocate handle_vector_.
+ /// Allocate handle_vector_.
int open (int size);
- // Close all open dlls and deallocate memory.
+ /// Close all open dlls and deallocate memory.
int close (void);
- // Find dll in handle_vector_.
+ /// Find dll in handle_vector_.
ACE_DLL_Handle *find_dll (const ACE_TCHAR *dll_name) const;
- // Applies strategy for unloading dll.
+ /// Applies strategy for unloading dll.
int unload_dll (ACE_DLL_Handle *dll_handle, int force_unload = 0);
private:
@@ -235,7 +235,7 @@ private:
/// Close the singleton instance.
static void close_singleton (void);
- // Disallow copying and assignment since we don't handle these.
+ /// Disallow copying and assignment since we don't handle these.
ACE_DLL_Manager (const ACE_DLL_Manager &);
void operator= (const ACE_DLL_Manager &);
diff --git a/ACE/ace/Date_Time.cpp b/ACE/ace/Date_Time.cpp
index 85abf562c47..493c992c981 100644
--- a/ACE/ace/Date_Time.cpp
+++ b/ACE/ace/Date_Time.cpp
@@ -7,4 +7,4 @@
#include "ace/Date_Time.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Date_Time, "$Id$")
+
diff --git a/ACE/ace/Default_Constants.h b/ACE/ace/Default_Constants.h
index 95da65760e3..446fc1214b0 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")
@@ -547,21 +556,6 @@
# define ACE_DEFAULT_GLOBALNAME_A "globalnames"
#endif /* ACE_DEFAULT_GLOBALNAME_A */
-// ACE_DEFAULT_NAMESPACE_DIR is for legacy mode apps. A better
-// way of doing this is something like ACE_Lib_Find::get_temp_dir, since
-// this directory may not exist
-#if defined (ACE_LEGACY_MODE)
-# if defined (ACE_WIN32)
-# define ACE_DEFAULT_NAMESPACE_DIR_A "C:\\temp"
-# else /* ACE_WIN32 */
-# define ACE_DEFAULT_NAMESPACE_DIR_A "/tmp"
-# endif /* ACE_WIN32 */
-# if defined (ACE_HAS_WCHAR)
-# define ACE_DEFAULT_NAMESPACE_DIR_W ACE_TEXT_WIDE(ACE_DEFAULT_NAMESPACE_DIR_A)
-# endif /* ACE_HAS_WCHAR */
-# define ACE_DEFAULT_NAMESPACE_DIR ACE_TEXT(ACE_DEFAULT_NAMESPACE_DIR_A)
-#endif /* ACE_LEGACY_MODE */
-
#if defined (ACE_HAS_WCHAR)
# define ACE_DEFAULT_LOCALNAME_W ACE_TEXT_WIDE(ACE_DEFAULT_LOCALNAME_A)
# define ACE_DEFAULT_GLOBALNAME_W ACE_TEXT_WIDE(ACE_DEFAULT_GLOBALNAME_A)
@@ -570,6 +564,18 @@
#define ACE_DEFAULT_LOCALNAME ACE_TEXT (ACE_DEFAULT_LOCALNAME_A)
#define ACE_DEFAULT_GLOBALNAME ACE_TEXT (ACE_DEFAULT_GLOBALNAME_A)
+#if !defined (ACE_DEFAULT_OPEN_PERMS)
+# define ACE_DEFAULT_OPEN_PERMS ACE_DEFAULT_FILE_PERMS
+#endif /* ACE_DEFAULT_OPEN_PERMS */
+
+#if !defined (ACE_DEFAULT_RW_PROCESS_MUTEX_PERMS)
+# if defined (ACE_WIN32)
+# define ACE_DEFAULT_RW_PROCESS_MUTEX_PERMS ACE_DEFAULT_OPEN_PERMS
+# else
+# define ACE_DEFAULT_RW_PROCESS_MUTEX_PERMS (S_IRUSR | S_IWUSR)
+# endif /* ACE_WIN32 */
+#endif /* ACE_DEFAULT_RW_PROCESS_MUTEX_PERMS */
+
# if defined (ACE_WIN32)
// The "null" device on Win32.
# define ACE_DEV_NULL "nul"
diff --git a/ACE/ace/Dev_Poll_Reactor.cpp b/ACE/ace/Dev_Poll_Reactor.cpp
index 7697bc48383..318c1c62579 100644
--- a/ACE/ace/Dev_Poll_Reactor.cpp
+++ b/ACE/ace/Dev_Poll_Reactor.cpp
@@ -5,19 +5,13 @@
#include "ace/Signal.h"
#include "ace/Sig_Handler.h"
-ACE_RCSID (ace,
- Dev_Poll_Reactor,
- "$Id$")
-
#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL)
# include "ace/OS_NS_unistd.h"
# 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,27 +130,25 @@ 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.
+ // Note that we don't need a timeout since the pipe is already in
+ // nonblocking mode and all we want is one attempt.
ssize_t n = ACE::send (this->notification_pipe_.write_handle (),
(char *) &buffer,
- 1, // Only need one byte to pop the pipe
- &ACE_Time_Value::zero);
- if (n == -1 && (errno != ETIME && errno != EAGAIN))
+ 1); // Only need one byte to pop the pipe
+ if (n == -1 && (errno != EAGAIN))
return -1;
return 0;
@@ -210,46 +202,48 @@ ACE_Dev_Poll_Reactor_Notify::read_notify_pipe (ACE_HANDLE handle,
// expensive than simply checking for an EWOULDBLOCK.
size_t to_read;
char *read_p;
- bool have_one = false;
#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
- // For the queued case, we'll try to read one byte (since that's what
- // the notify () tried to put in) but we don't need it - notifications can
- // be queued even if the pipe fills, so there may be more notifications
- // queued than there are bytes in the pipe.
- char b;
- read_p = &b;
- to_read = 1;
-
- // Before reading the byte, pop a message from the queue and queue a
- // new message unless the queue is now empty. The protocol is to
- // keep a byte in the pipe as long as the queue is not empty.
+ // The idea in the queued case is to be sure we never end up with a notify
+ // queued but no byte in the pipe. If that happens, the notify won't be
+ // dispatched. So always try to empty the pipe, read the queue, then put
+ // a byte in if needed. The notify() method is enqueueing then writing the
+ // pipe, so be sure to do it in the reverse order here to avoid a race
+ // between removing the last notification from the queue and the notify
+ // side writing its byte.
+ char b[1024];
+ read_p = b;
+ to_read = sizeof(b);
+ (void)ACE::recv (handle, read_p, to_read);
+
bool more_messages_queued = false;
ACE_Notification_Buffer next;
-
- int result = notification_queue_.pop_next_notification (buffer,
+ int result = 1;
+ while (result == 1)
+ {
+ result = notification_queue_.pop_next_notification (buffer,
more_messages_queued,
next);
- if (result == 0)
- {
- // remove the notification byte from the pipe, avoiding notification loop
- ACE::recv (handle, read_p, to_read);
- return 0;
- }
+ if (result <= 0) // Nothing dequeued or error
+ return result;
- if (result == -1)
- return -1;
+ // If it's just a wake-up, toss it and see if there's anything else.
+ if (buffer.eh_ != 0)
+ break;
+ }
+ // If there are more messages, ensure there's a byte in the pipe
+ // in case the notification limit stops dequeuing notifies before
+ // emptying the queue.
if (more_messages_queued)
(void) ACE::send (this->notification_pipe_.write_handle (),
(char *)&next,
- 1 /* one byte is enough */,
- &ACE_Time_Value::zero);
+ 1); /* one byte is enough */
+ return 1;
#else
to_read = sizeof buffer;
read_p = (char *)&buffer;
-#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
ssize_t n = ACE::recv (handle, read_p, to_read);
@@ -275,54 +269,16 @@ ACE_Dev_Poll_Reactor_Notify::read_notify_pipe (ACE_HANDLE handle,
if (n <= 0 && (errno != EWOULDBLOCK && errno != EAGAIN))
return -1;
- return have_one ? 1 : 0;
+ return 0;
+#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
}
int
-ACE_Dev_Poll_Reactor_Notify::handle_input (ACE_HANDLE handle)
+ACE_Dev_Poll_Reactor_Notify::handle_input (ACE_HANDLE /*handle*/)
{
ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::handle_input");
-
- // @@ We may end up dispatching this event handler twice: once when
- // performing the speculative read on the notification pipe
- // handle, and once more when dispatching the IO events.
-
- // Precondition: this->select_reactor_.token_.current_owner () ==
- // ACE_Thread::self ();
-
- int number_dispatched = 0;
- int result = 0;
- ACE_Notification_Buffer buffer;
-
- while ((result = this->read_notify_pipe (handle, buffer)) > 0)
- {
- // Dispatch the buffer
- // NOTE: We count only if we made any dispatches ie. upcalls.
- if (this->dispatch_notify (buffer) > 0)
- ++number_dispatched;
-
- // Bail out if we've reached the <notify_threshold_>. Note that
- // by default <notify_threshold_> is -1, so we'll loop until all
- // the available notifications have been dispatched.
- if (number_dispatched == this->max_notify_iterations_)
- break;
- }
-
- if (result == -1)
- {
- // Reassign number_dispatched to -1 if things have gone
- // seriously wrong.
- number_dispatched = -1;
- }
-
- // Enqueue ourselves into the list of waiting threads. When we
- // reacquire the token we'll be off and running again with ownership
- // of the token. The postcondition of this call is that
- // <select_reactor_.token_.current_owner> == <ACE_Thread::self>.
- //this->select_reactor_->renew ();
-
- return number_dispatched;
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("SHOULD NOT BE HERE.\n")), -1);
}
ACE_HANDLE
@@ -438,57 +394,64 @@ ACE_Dev_Poll_Reactor_Notify::dump (void) const
#endif /* ACE_HAS_DUMP */
}
+int
+ACE_Dev_Poll_Reactor_Notify::dequeue_one (ACE_Notification_Buffer &nb)
+{
+ nb.eh_ = 0;
+ nb.mask_ = 0;
+ return this->read_notify_pipe (this->notify_handle (), nb);
+}
+
+
// -----------------------------------------------------------------
-ACE_Dev_Poll_Reactor_Handler_Repository::
-ACE_Dev_Poll_Reactor_Handler_Repository (void)
- : max_size_ (0),
+ACE_Dev_Poll_Reactor::Handler_Repository::Handler_Repository (void)
+ : size_ (0),
+ 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,23 +459,35 @@ 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.
+ // Unbind all of the event handlers; similar to remove_handler() on all.
for (int handle = 0;
handle < this->max_size_;
++handle)
- this->unbind (handle);
+ {
+ Event_Tuple *entry = this->find (handle);
+ if (entry == 0)
+ continue;
+
+ // Check for ref counting now - handle_close () may delete eh.
+ bool const requires_reference_counting =
+ entry->event_handler->reference_counting_policy ().value () ==
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
+
+ (void) entry->event_handler->handle_close (handle, entry->mask);
+ this->unbind (handle, requires_reference_counting);
+ }
return 0;
}
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 +500,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;
@@ -569,25 +544,29 @@ ACE_Dev_Poll_Reactor_Handler_Repository::bind (
this->handlers_[handle].event_handler = event_handler;
this->handlers_[handle].mask = mask;
event_handler->add_reference ();
+ ++this->size_;
return 0;
}
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;
+ --this->size_;
return 0;
}
@@ -601,17 +580,15 @@ ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor (ACE_Sig_Handler *sh,
int s_queue)
: initialized_ (false)
, poll_fd_ (ACE_INVALID_HANDLE)
- , size_ (0)
// , ready_set_ ()
#if defined (ACE_HAS_EVENT_POLL)
- , events_ (0)
- , start_pevents_ (0)
- , end_pevents_ (0)
-#else
+ , epoll_wait_in_progress_ (false)
+#endif /* ACE_HAS_EVENT_POLL */
+#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_)
@@ -649,17 +626,12 @@ ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor (size_t size,
int s_queue)
: initialized_ (false)
, 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 +679,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 +732,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;
@@ -793,14 +767,12 @@ ACE_Dev_Poll_Reactor::open (size_t size,
ACE_Event_Handler::READ_MASK) == -1))
result = -1;
- this->size_ = size;
-
if (result != -1)
// We're all set to go.
this->initialized_ = true;
else
// This will close down all the allocated resources properly.
- (void) this->close ();
+ (void) this->close ();
return result;
}
@@ -859,13 +831,15 @@ 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
delete [] this->dp_fds_;
this->dp_fds_ = 0;
+ this->start_pfds_ = 0;
+ this->end_pfds_ = 0;
#endif /* ACE_HAS_EVENT_POLL */
@@ -876,7 +850,7 @@ ACE_Dev_Poll_Reactor::close (void)
this->delete_signal_handler_ = false;
}
- (void) this->handler_rep_.close ();
+ (void) this->handler_rep_.close ();
if (this->delete_timer_queue_)
{
@@ -897,14 +871,6 @@ 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
- this->start_pfds_ = 0;
- this->end_pfds_ = 0;
-#endif /* ACE_HAS_EVENT_POLL */
-
this->initialized_ = false;
return result;
@@ -944,7 +910,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 */
@@ -957,35 +923,51 @@ ACE_Dev_Poll_Reactor::work_pending_i (ACE_Time_Value * max_wait_time)
// Check if we have timers to fire.
int const timers_pending =
- ((this_timeout != 0 && max_wait_time == 0)
+ ((this_timeout != 0 && max_wait_time == 0)
|| (this_timeout != 0 && max_wait_time != 0
&& *this_timeout != *max_wait_time) ? 1 : 0);
long const timeout =
- (this_timeout == 0
+ (this_timeout == 0
? -1 /* Infinity */
: static_cast<long> (this_timeout->msec ()));
#if defined (ACE_HAS_EVENT_POLL)
- // Wait for events.
- int const nfds = ::epoll_wait (this->poll_fd_,
- this->events_,
- this->size_,
- static_cast<int> (timeout));
-
- if (nfds > 0)
- {
- this->start_pevents_ = this->events_;
- this->end_pevents_ = this->start_pevents_ + nfds;
- }
+ // See if there are handlers that have to be resumed before waiting.
+ {
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, grd, this->to_be_resumed_lock_, -1);
+ this->epoll_wait_in_progress_ = true;
+ for (Resume_Map::iterator i = this->to_be_resumed_.begin ();
+ i != this->to_be_resumed_.end ();
+ ++i)
+ {
+ // Make sure that 1) the handle is still registered,
+ // 2) the registered handler is the one we're waiting to resume.
+ Event_Tuple *info = this->handler_rep_.find (i->first);
+ if (info != 0 && info->event_handler == i->second)
+ {
+ this->resume_handler_i (i->first);
+ }
+ }
+ this->to_be_resumed_.clear ();
+ }
+
+ // Wait for an event.
+ int const nfds = ::epoll_wait (this->poll_fd_,
+ &this->event_,
+ 1,
+ static_cast<int> (timeout));
+ // Count on this being an atomic update; at worst, we may get an
+ // extraneous notify() from dispatch_io_event.
+ this->epoll_wait_in_progress_ = false;
#else
struct dvpoll dvp;
dvp.dp_fds = this->dp_fds_;
- dvp.dp_nfds = this->size_;
+ dvp.dp_nfds = this->handler_rep_.size ();
dvp.dp_timeout = timeout; // Milliseconds
// Poll for events
@@ -1015,7 +997,7 @@ ACE_Dev_Poll_Reactor::handle_events (ACE_Time_Value *max_wait_time)
//
// The destructor of this object will automatically compute how much
// time elapsed since this method was called.
- ACE_MT (ACE_Countdown_Time countdown (max_wait_time));
+ ACE_Countdown_Time countdown (max_wait_time);
Token_Guard guard (this->token_);
int const result = guard.acquire_quietly (max_wait_time);
@@ -1025,7 +1007,10 @@ ACE_Dev_Poll_Reactor::handle_events (ACE_Time_Value *max_wait_time)
return result;
if (this->deactivated_)
- return -1;
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
// Update the countdown to reflect time waiting for the mutex.
ACE_MT (countdown.update ());
@@ -1040,17 +1025,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 +1081,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 +1154,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 +1169,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 +1187,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 +1195,27 @@ 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_;
+ const ACE_HANDLE handle = pfds->fd;
+ short &revents = pfds->revents;
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
- const ACE_HANDLE handle = pfds->fd;
- short &revents = pfds->revents;
+ /* 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 +1223,152 @@ 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 is always registered
+ // WITHOUT oneshot and is never suspended/resumed. This avoids endless
+ // notify loops caused by the notify handler requiring a resumption
+ // which requires the token, which requires a notify, etc. described
+ // in Bugzilla 3714. So, never suspend the notify handler.
+
+ bool reactor_resumes_eh = false;
+ if (eh != this->notify_handler_)
+ {
+ info->suspended = true;
- /* 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);
+ reactor_resumes_eh =
+ eh->resume_handler () ==
+ ACE_Event_Handler::ACE_REACTOR_RESUMES_HANDLER;
+ }
+#endif /* ACE_HAS_DEV_POLL */
- if (eh)
+ int status = 0; // gets callback status, below.
+
+ // Dispatch notifies directly. The notify dispatcher locates a
+ // notification then releases the token prior to dispatching it.
+ // NOTE: If notify_handler_->dispatch_one() returns a fail condition
+ // it has not releases the guard. Else, it has.
+ if (eh == this->notify_handler_)
{
- // 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.
+ ACE_Notification_Buffer b;
+ status =
+ dynamic_cast<ACE_Dev_Poll_Reactor_Notify *>(notify_handler_)->dequeue_one (b);
+ if (status == -1)
+ return status;
guard.release_token ();
+ return notify_handler_->dispatch_notify (b);
+ }
- // 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.
+ {
+ // 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, unless it's the notify handler (which
+ // returns the number of notfies dispatched, not an indication of
+ // re-callback requested). If anything other than the notify, come
+ // back with either 0 or < 0.
+ status = this->upcall (eh, callback, handle);
+
+ // If the callback returned 0, epoll-based needs to resume the
+ // suspended handler but dev/poll doesn't.
+ // The epoll case is optimized to not acquire the token in order
+ // to resume the handler; the handler is added to a list of those
+ // that need to be resumed and is handled by the next leader
+ // that does an epoll_wait().
+ // In both epoll and dev/poll cases, if the callback returns <0,
+ // the token needs to be acquired and the handler checked and
+ // removed if it hasn't already been.
+ if (status == 0)
+ {
+#ifdef ACE_HAS_EVENT_POLL
+ // epoll-based effectively suspends handlers around the upcall.
+ // If the handler must be resumed, add it to the list.
+ if (reactor_resumes_eh)
+ {
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ grd,
+ this->to_be_resumed_lock_,
+ -1);
+ bool map_was_empty = this->to_be_resumed_.empty();
+ this->to_be_resumed_.insert
+ (Resume_Map::value_type (handle, eh));
+ if (this->epoll_wait_in_progress_ && map_was_empty)
+ this->notify();
+ }
+#endif /* ACE_HAS_EVENT_POLL */
+ return 1;
+ }
+
+ // 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);
+ }
+ }
+ // Scope close handles eh ref count decrement, if needed.
+
+ return 1;
}
return 0;
@@ -1406,19 +1460,27 @@ 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.data.fd = handle;
+ epev.events = this->reactor_mask_to_poll_event (mask);
+ // All but the notify handler get registered with oneshot to facilitate
+ // auto suspend before the upcall. See dispatch_io_event for more
+ // information.
+ if (event_handler != this->notify_handler_)
+ epev.events |= EPOLLONESHOT;
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 +1490,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;
@@ -1442,10 +1505,10 @@ ACE_Dev_Poll_Reactor::register_handler_i (ACE_HANDLE handle,
// Add file descriptor to the "interest set."
if (ACE_OS::write (this->poll_fd_, &pfd, sizeof (pfd)) != sizeof (pfd))
{
- (void) this->handler_rep_.unbind (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 +1622,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,19 +1647,13 @@ 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,
- // i.e. the "interest set," which is used by the dispatching loop to
- // determine whether it can keep going or if it needs to reconsult
- // /dev/poll or /dev/epoll.
- // this->state_changed_ = 1;
-
return 0;
}
@@ -1704,13 +1770,14 @@ ACE_Dev_Poll_Reactor::suspend_handlers (void)
ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1));
- size_t const len = this->handler_rep_.size ();
+ size_t const len = this->handler_rep_.max_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 +1786,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 +1810,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 +1824,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;
}
@@ -1813,12 +1881,14 @@ ACE_Dev_Poll_Reactor::resume_handlers (void)
ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1));
- size_t const len = this->handler_rep_.size ();
+ size_t const len = this->handler_rep_.max_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,14 +1898,19 @@ 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)
return -1;
- ACE_Reactor_Mask mask = this->handler_rep_.mask (handle);
+ if (!info->suspended)
+ return 0;
+ ACE_Reactor_Mask mask = info->mask;
if (mask == ACE_Event_Handler::NULL_MASK)
- return -1;
+ {
+ info->suspended = false;
+ return 0;
+ }
// Place the handle back in to the "interest set."
//
@@ -1845,13 +1920,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 +1943,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 +2119,16 @@ 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;
+ }
+ else
+ {
+ return 0;
+ }
}
int
@@ -2057,15 +2140,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;
}
@@ -2102,7 +2185,7 @@ ACE_Dev_Poll_Reactor::initialized (void)
size_t
ACE_Dev_Poll_Reactor::size (void) const
{
- return this->size_;
+ return this->handler_rep_.size ();
}
ACE_Lock &
@@ -2215,13 +2298,14 @@ 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)
+ Event_Tuple *info = this->handler_rep_.find (handle);
+ if (info == 0)
return -1;
// Block out all signals until method returns.
ACE_Sig_Guard sb;
- ACE_Reactor_Mask const old_mask = this->handler_rep_.mask (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 +2344,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 +2388,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 +2403,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];
@@ -2373,7 +2460,7 @@ ACE_Dev_Poll_Reactor::dump (void) const
ACE_TEXT ("initialized_ = %d"),
this->initialized_));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("poll_fd_ = %d"), this->poll_fd_));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("size_ = %u"), this->size_));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("size_ = %u"), this->handler_rep_.size ()));
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("deactivated_ = %d"),
this->deactivated_));
diff --git a/ACE/ace/Dev_Poll_Reactor.h b/ACE/ace/Dev_Poll_Reactor.h
index f991111642d..e2dc68961ab 100644
--- a/ACE/ace/Dev_Poll_Reactor.h
+++ b/ACE/ace/Dev_Poll_Reactor.h
@@ -43,7 +43,8 @@
#if defined (ACE_HAS_DEV_POLL)
struct pollfd;
#elif defined (ACE_HAS_EVENT_POLL)
-struct epoll_event;
+# include "ace/Array_Map.h"
+# include /**/ <sys/epoll.h>
#endif
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -52,87 +53,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;
-};
-
-// ---------------------------------------------------------------------
-
-#if 0
-/**
- * @class ACE_Dev_Poll_Ready_Set
- *
- * @brief Class that contains the list of "ready" file descriptors.
- *
- * This class points to an array of pollfd structures corresponding to
- * "ready" file descriptors, such as those corresponding to event
- * handlers that request an additional callback after being initially
- * dispatched (i.e. return a value greater than zero).
- * @par
- * The idea is to store the "ready" set in an existing area of memory
- * that already contains pollfd instances. Doing so is safe since the
- * "ready" set is dispatched before polling for additional events,
- * thus avoiding being potentially overwritten during the event poll.
- * @par
- * When the "ready" set is dispatched, all that needs to be done is to
- * iterate over the contents of the array. There is no need to "walk"
- * the array in search of ready file descriptors since the array by
- * design only contains ready file descriptors. As such, this
- * implementation of a ready set is much more efficient in the
- * presence of a large number of file descriptors in terms of both
- * time and space than the one used in the Select_Reactor, for
- * example.
- */
-class ACE_Dev_Poll_Ready_Set
-{
-public:
-
- /// Constructor.
- ACE_Dev_Poll_Ready_Set (void);
-
-public:
-
- /// The array containing the pollfd structures corresponding to the
- /// "ready" file descriptors.
- struct pollfd *pfds;
-
- /// The number of "ready" file descriptors in the above array.
- int nfds;
-
-};
-#endif /* 0 */
// ---------------------------------------------------------------------
@@ -240,6 +160,14 @@ public:
/// Dump the state of an object.
virtual void dump (void) const;
+ /// Method called by ACE_Dev_Poll_Reactor to obtain one notification.
+ /// THIS METHOD MUST BE CALLED WITH THE REACTOR TOKEN HELD!
+ ///
+ /// @return -1 on error, else 0 and @arg nb has the notify to
+ /// dispatch. Note that the contained event handler may be
+ /// 0 if there were only wake-ups (no handlers to dispatch).
+ int dequeue_one (ACE_Notification_Buffer &nb);
+
protected:
/**
@@ -279,124 +207,6 @@ protected:
*/
ACE_Notification_Queue notification_queue_;
#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
-
-};
-
-// ---------------------------------------------------------------------
-
-/**
- * @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_;
-
};
// ---------------------------------------------------------------------
@@ -444,6 +254,155 @@ 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;
+
+ /// Returns the current table size.
+ size_t max_size (void) const;
+
+ /// Dump the state of an object.
+ void dump (void) const;
+
+ /// Declare the dynamic allocation hooks.
+ ACE_ALLOC_HOOK_DECLARE;
+
+ private:
+
+ /// Current number of handles.
+ int size_;
+
+ /// 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 +967,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);
@@ -1044,29 +1007,25 @@ protected:
*/
ACE_HANDLE poll_fd_;
- /// The maximum number of file descriptors over which demultiplexing
- /// will occur.
- size_t size_;
-
- /// Track HANDLES we are interested in for various events that must
- /// be dispatched *without* polling.
- /// 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_;
+
+ /// Event handlers that are suspended/resumed around upcalls are not
+ /// immediately resumed; they're added to this list for resumption at
+ /// the next epoll_wait() call. This avoids always needing to acquire the
+ /// token just to resume a handler. Of course, if there are no other
+ /// handlers in the to-be-resumed list and an epoll_wait is already in
+ /// progress, the reactor needs to be notified to force another run around
+ /// the epoll_wait() call.
+ typedef ACE_Array_Map<ACE_HANDLE, ACE_Event_Handler *> Resume_Map;
+ Resume_Map to_be_resumed_;
+ volatile bool epoll_wait_in_progress_;
+ ACE_SYNCH_MUTEX to_be_resumed_lock_;
#else
/// The pollfd array that `/dev/poll' will feed its results to.
struct pollfd *dp_fds_;
@@ -1095,7 +1054,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..391de5c290d 100644
--- a/ACE/ace/Dev_Poll_Reactor.inl
+++ b/ACE/ace/Dev_Poll_Reactor.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
#include "ace/Log_Msg.h"
@@ -7,89 +6,31 @@
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)
{
}
// ---------------------------------------------------------------------
-#if 0
-ACE_INLINE
-ACE_Dev_Poll_Ready_Set::ACE_Dev_Poll_Ready_Set (void)
- : pfds (0),
- nfds (0)
-{
-}
-#endif /* 0 */
-
-// ---------------------------------------------------------------------
-
-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_INLINE size_t
+ACE_Dev_Poll_Reactor::Handler_Repository::size (void) const
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::suspended");
-
- if (this->handle_in_range (handle))
- return this->handlers_[handle].suspended;
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::size");
- return -1;
+ return this->size_;
}
ACE_INLINE size_t
-ACE_Dev_Poll_Reactor_Handler_Repository::size (void) const
+ACE_Dev_Poll_Reactor::Handler_Repository::max_size (void) const
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::size");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::max_size");
return this->max_size_;
}
@@ -112,33 +53,6 @@ ACE_Dev_Poll_Handler_Guard::ACE_Dev_Poll_Handler_Guard
if (do_incr && this->refcounted_)
eh->add_reference ();
-
- /**
- * The below comments were here when I replaced the old refcount
- * scheme was replaced. They may still need addressing. -Steve Huston
- */
-
- /**
- * @todo Suspend the handler so that other threads will not cause
- * an event that is already in an upcall from being dispatched
- * again.
- *
- * @note The naive approach would be to simply call
- * suspend_handler_i() on the reactor. However, that would
- * cause a system call (write()) to occur. Obviously this
- * can potentially have an adverse affect on performance.
- * Ideally, the handler would only be marked as "suspended" in
- * the handler repository. If an event arrives for a
- * suspended handler that event can be "queued" in a
- * "handle readiness queue." "Queued" is quoted since a real
- * queue need not be used since duplicate events can be
- * coalesced, thus avoiding unbounded queue growth. Event
- * coalescing is already done by Linux's event poll driver
- * (/dev/epoll) so Solaris' poll driver (/dev/poll) is the
- * main concern here. The largest the queue can be is the
- * same size as the number of handlers stored in the handler
- * repository.
- */
}
ACE_INLINE
@@ -146,15 +60,6 @@ ACE_Dev_Poll_Handler_Guard::~ACE_Dev_Poll_Handler_Guard (void)
{
if (this->refcounted_ && this->eh_ != 0)
this->eh_->remove_reference ();
-
- /**
- * The below comments were here when I replaced the old refcount
- * scheme was replaced. They may still need addressing. -Steve Huston
- */
- /**
- * @todo Resume the handler so that other threads will be allowed to
- * dispatch the handler.
- */
}
ACE_INLINE void
@@ -172,14 +77,15 @@ 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
{
status = (event_handler->*callback) (handle);
}
- while (status > 0);
+ while (status > 0 && event_handler != this->notify_handler_);
return status;
}
diff --git a/ACE/ace/Dirent.h b/ACE/ace/Dirent.h
index 17557f46fc5..cd012e0926d 100644
--- a/ACE/ace/Dirent.h
+++ b/ACE/ace/Dirent.h
@@ -59,21 +59,21 @@ public:
* refers, and positions the directory stream at the next entry,
* except on read-only filesystems. It returns a NULL pointer upon
* reaching the end of the directory stream, or upon detecting an
- * invalid location in the directory. <readdir> shall not return
+ * invalid location in the directory. @c read() shall not return
* directory entries containing empty names. It is unspecified
* whether entries are returned for dot or dot-dot. The pointer
- * returned by <readdir> points to data that may be overwritten by
- * another call to <readdir> on the same directory stream. This
- * data shall not be overwritten by another call to <readdir> on a
- * different directory stream. <readdir> may buffer several
- * directory entries per actual read operation; <readdir> marks for
+ * returned by @c read() points to data that may be overwritten by
+ * another call to @c read() on the same directory stream. This
+ * data shall not be overwritten by another call to @c read() on a
+ * different directory stream. @c read() may buffer several
+ * directory entries per actual read operation; @c read() marks for
* update the st_atime field of the directory each time the
* directory is actually read.
*/
ACE_DIRENT *read (void);
/**
- * Has the equivalent functionality as <readdir> except that an
+ * Has the equivalent functionality as @c read() except that an
* @a entry and @a result buffer must be supplied by the caller to
* store the result.
*/
@@ -86,15 +86,15 @@ public:
long tell (void);
/**
- * Sets the position of the next <readdir> operation on the
+ * Sets the position of the next @c read() operation on the
* directory stream. The new position reverts to the position
- * associated with the directory stream at the time the <telldir>
+ * associated with the directory stream at the time the @c tell()
* operation that provides loc was performed. Values returned by
- * <telldir> are good only for the lifetime of the <ACE_DIR> pointer from
+ * @c tell() are good only for the lifetime of the ACE_DIR pointer from
* which they are derived. If the directory is closed and then
- * reopened, the <telldir> value may be invalidated due to
+ * reopened, the @c telldir() value may be invalidated due to
* undetected directory compaction. It is safe to use a previous
- * <telldir> value immediately after a call to <opendir> and before
+ * @c telldir() value immediately after a call to @c opendir() and before
* any calls to readdir.
*/
void seek (long loc);
@@ -103,7 +103,7 @@ public:
* Resets the position of the directory stream to the beginning of
* the directory. It also causes the directory stream to refer to
* the current state of the corresponding directory, as a call to
- * <opendir> would.
+ * @c opendir() would.
*/
void rewind (void);
diff --git a/ACE/ace/Dirent_Selector.cpp b/ACE/ace/Dirent_Selector.cpp
index 288fc6deacf..b4bd8cceffd 100644
--- a/ACE/ace/Dirent_Selector.cpp
+++ b/ACE/ace/Dirent_Selector.cpp
@@ -9,10 +9,6 @@
#include "ace/OS_NS_dirent.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID (ace,
- Dirent_Selector,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Construction/Destruction
diff --git a/ACE/ace/Dump.cpp b/ACE/ace/Dump.cpp
index b601496f3b6..6cd2c20e4bb 100644
--- a/ACE/ace/Dump.cpp
+++ b/ACE/ace/Dump.cpp
@@ -6,7 +6,7 @@
#include "ace/Object_Manager.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Dump, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Dump.h b/ACE/ace/Dump.h
index 97f0bac7966..8fc7d52a24f 100644
--- a/ACE/ace/Dump.h
+++ b/ACE/ace/Dump.h
@@ -149,7 +149,7 @@ private:
/// and we'll have to check for that).
const ACE_Dumpable_Ptr dumper_;
- Tuple (void) : dumper_(0) {}
+ Tuple (void) : this_ (0), dumper_(0) {}
};
/// Singleton instance of this class.
diff --git a/ACE/ace/Dump_T.h b/ACE/ace/Dump_T.h
index 33249fb1fa9..ed84abec881 100644
--- a/ACE/ace/Dump_T.h
+++ b/ACE/ace/Dump_T.h
@@ -26,7 +26,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_Dumpable_Adapter
*
- * @brief This class inherits the interface of the abstract ACE_Dumpable
+ * @brief
+ * This class inherits the interface of the abstract ACE_Dumpable
* class and is instantiated with the implementation of the
* concrete component class <class Concrete>.
*
@@ -43,7 +44,7 @@ public:
ACE_Dumpable_Adapter (const Concrete *t);
~ACE_Dumpable_Adapter (void);
- /// Concrete dump method (simply delegates to the <dump> method of
+ /// Concrete dump method (simply delegates to the dump() method of
/// <class Concrete>).
virtual void dump (void) const;
diff --git a/ACE/ace/Dynamic.cpp b/ACE/ace/Dynamic.cpp
index adeae242579..0b8cc2df163 100644
--- a/ACE/ace/Dynamic.cpp
+++ b/ACE/ace/Dynamic.cpp
@@ -10,7 +10,7 @@
#include "ace/Dynamic.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Dynamic, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Dynamic_Message_Strategy.cpp b/ACE/ace/Dynamic_Message_Strategy.cpp
index 201052c2acd..3a9b3ed385c 100644
--- a/ACE/ace/Dynamic_Message_Strategy.cpp
+++ b/ACE/ace/Dynamic_Message_Strategy.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Dynamic_Message_Strategy.h"
#if !defined (__ACE_INLINE__)
@@ -9,10 +11,6 @@
#include "ace/Malloc_Base.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace,
- Dynamic_Message_Strategy,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// ctor
diff --git a/ACE/ace/Dynamic_Service_Base.cpp b/ACE/ace/Dynamic_Service_Base.cpp
index 6f3d3225e95..fa4bda1d03b 100644
--- a/ACE/ace/Dynamic_Service_Base.cpp
+++ b/ACE/ace/Dynamic_Service_Base.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Dynamic_Service_Base.h"
#include "ace/ACE.h"
#include "ace/Service_Config.h"
@@ -6,11 +8,7 @@
#include "ace/Log_Msg.h"
-ACE_RCSID (ace,
- Dynamic_Service_Base,
- "$Id$")
-
- ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
void
@@ -80,7 +78,7 @@ ACE_Dynamic_Service_Base::instance (const ACE_Service_Gestalt* repo,
if (ACE::debug ())
{
- ACE_Guard <ACE_Log_Msg> log_guard (*ACE_Log_Msg::instance ());
+ ACE_GUARD_RETURN (ACE_Log_Msg, log_guard, *ACE_Log_Msg::instance (), 0);
if (repo->repo_ != repo_found->repo_)
{
@@ -88,7 +86,7 @@ ACE_Dynamic_Service_Base::instance (const ACE_Service_Gestalt* repo,
ACE_TEXT ("ACE (%P|%t) DSB::instance, repo=%@, name=%s")
ACE_TEXT (" type=%@ => %@")
ACE_TEXT (" [in repo=%@]\n"),
- repo->repo_, name, type, obj,
+ repo->repo_, name, type, obj,
repo_found->repo_));
}
else
diff --git a/ACE/ace/Dynamic_Service_Base.h b/ACE/ace/Dynamic_Service_Base.h
index 7a039a1a6b2..e8daa502181 100644
--- a/ACE/ace/Dynamic_Service_Base.h
+++ b/ACE/ace/Dynamic_Service_Base.h
@@ -37,7 +37,6 @@ class ACE_Service_Type;
*/
class ACE_Export ACE_Dynamic_Service_Base
{
-
public:
/// Dump the current static of the object
void dump (void) const;
diff --git a/ACE/ace/Dynamic_Service_Dependency.cpp b/ACE/ace/Dynamic_Service_Dependency.cpp
index f2a9b45d61c..768460912e9 100644
--- a/ACE/ace/Dynamic_Service_Dependency.cpp
+++ b/ACE/ace/Dynamic_Service_Dependency.cpp
@@ -1,16 +1,12 @@
+// $Id$
+
#include "ace/ACE.h"
#include "ace/DLL_Manager.h"
#include "ace/Dynamic_Service_Dependency.h"
#include "ace/Service_Config.h"
#include "ace/Log_Msg.h"
-ACE_RCSID (ace,
- Dynamic_Service_Dependency,
- "$Id$")
-
-
- ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Dynamic_Service_Dependency::ACE_Dynamic_Service_Dependency (const ACE_TCHAR *principal)
{
diff --git a/ACE/ace/ETCL/ETCL.mpc b/ACE/ace/ETCL/ETCL.mpc
index 34449f00d89..8f46b28dba6 100644
--- a/ACE/ace/ETCL/ETCL.mpc
+++ b/ACE/ace/ETCL/ETCL.mpc
@@ -3,7 +3,7 @@
project(ACE_ETCL) : acelib, install, ace_output {
sharedname = ACE_ETCL
- dynamicflags = ACE_ETCL_BUILD_DLL
+ dynamicflags += ACE_ETCL_BUILD_DLL
Source_Files {
ETCL_Constraint.cpp
@@ -26,11 +26,15 @@ project(ACE_ETCL) : acelib, install, ace_output {
Pkgconfig_Files {
ACE_ETCL.pc.in
}
+
+ specific {
+ install_dir = ace/ETCL
+ }
}
project(ACE_ETCL_Parser) : acelib, ace_etcl, install, ace_output {
sharedname = ACE_ETCL_Parser
- dynamicflags = ETCL_PARSER_BUILD_DLL
+ dynamicflags += ETCL_PARSER_BUILD_DLL
Source_Files {
ETCL_Interpreter.cpp
@@ -53,4 +57,8 @@ project(ACE_ETCL_Parser) : acelib, ace_etcl, install, ace_output {
Pkgconfig_Files {
ACE_ETCL_Parser.pc.in
}
+
+ specific {
+ install_dir = ace/ETCL
+ }
}
diff --git a/ACE/ace/ETCL/ETCL_Constraint.cpp b/ACE/ace/ETCL/ETCL_Constraint.cpp
index ff711a9849d..6d1ba576eaf 100644
--- a/ACE/ace/ETCL/ETCL_Constraint.cpp
+++ b/ACE/ace/ETCL/ETCL_Constraint.cpp
@@ -38,17 +38,13 @@ ETCL_Literal_Constraint::ETCL_Literal_Constraint (
}
ETCL_Literal_Constraint::ETCL_Literal_Constraint (
- ACE_CDR::ULong uinteger
- )
- : type_ (ACE_ETCL_UNSIGNED)
+ ACE_CDR::ULong uinteger) : type_ (ACE_ETCL_UNSIGNED)
{
this->op_.uinteger_ = uinteger;
}
ETCL_Literal_Constraint::ETCL_Literal_Constraint (
- ACE_CDR::Long integer
- )
- : type_ (ACE_ETCL_SIGNED)
+ ACE_CDR::Long integer) : type_ (ACE_ETCL_SIGNED)
{
this->op_.integer_ = integer;
}
@@ -62,17 +58,13 @@ ETCL_Literal_Constraint::ETCL_Literal_Constraint (
}
ETCL_Literal_Constraint::ETCL_Literal_Constraint (
- ACE_CDR::Double doub
- )
- : type_ (ACE_ETCL_DOUBLE)
+ ACE_CDR::Double doub) : type_ (ACE_ETCL_DOUBLE)
{
this->op_.double_ = doub;
}
ETCL_Literal_Constraint::ETCL_Literal_Constraint (
- const char* str
- )
- : type_ (ACE_ETCL_STRING)
+ const char* str) : type_ (ACE_ETCL_STRING)
{
this->op_.str_ = ACE::strnew (str);
}
@@ -194,7 +186,7 @@ ETCL_Literal_Constraint::operator== (const ETCL_Literal_Constraint & rhs)
return_value = (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) == 0);
break;
case ACE_ETCL_DOUBLE:
- return_value = (ACE_CDR::Double) *this == (ACE_CDR::Double) rhs;
+ return_value = ACE::is_equal ((ACE_CDR::Double) *this, (ACE_CDR::Double) rhs);
break;
case ACE_ETCL_INTEGER:
case ACE_ETCL_SIGNED:
@@ -365,9 +357,9 @@ ETCL_Literal_Constraint::operator/ (const ETCL_Literal_Constraint & rhs)
{
case ACE_ETCL_DOUBLE:
{
- if ((ACE_CDR::Double) rhs == 0.0)
+ if (ACE::is_equal ((ACE_CDR::Double) rhs, 0.0))
return ETCL_Literal_Constraint ((ACE_CDR::Double) 0.0);
-
+
ACE_CDR::Double result = (ACE_CDR::Double) *this / (ACE_CDR::Double) rhs;
return ETCL_Literal_Constraint ((ACE_CDR::Double) result);
}
diff --git a/ACE/ace/ETCL/ETCL_Constraint.h b/ACE/ace/ETCL/ETCL_Constraint.h
index 747ae99102f..f54687da2a7 100644
--- a/ACE/ace/ETCL/ETCL_Constraint.h
+++ b/ACE/ace/ETCL/ETCL_Constraint.h
@@ -177,10 +177,9 @@ private:
class ACE_ETCL_Export ETCL_Union_Value : public ETCL_Constraint
{
public:
- ETCL_Union_Value (void);
ETCL_Union_Value (int sign,
ETCL_Constraint *integer);
- ETCL_Union_Value (ETCL_Constraint *string);
+ explicit ETCL_Union_Value (ETCL_Constraint *string = 0);
virtual ~ETCL_Union_Value (void);
int sign (void) const;
@@ -198,9 +197,8 @@ private:
class ACE_ETCL_Export ETCL_Union_Pos : public ETCL_Constraint
{
public:
- ETCL_Union_Pos (void);
- ETCL_Union_Pos (ETCL_Constraint *union_value,
- ETCL_Constraint *component);
+ ETCL_Union_Pos (ETCL_Constraint *union_value = 0,
+ ETCL_Constraint *component = 0);
virtual ~ETCL_Union_Pos (void);
ETCL_Union_Value *union_value (void) const;
@@ -216,9 +214,8 @@ private:
class ACE_ETCL_Export ETCL_Component_Pos : public ETCL_Constraint
{
public:
- ETCL_Component_Pos (void);
- ETCL_Component_Pos (ETCL_Constraint *integer,
- ETCL_Constraint *component);
+ ETCL_Component_Pos (ETCL_Constraint *integer = 0,
+ ETCL_Constraint *component = 0);
virtual ~ETCL_Component_Pos (void);
ETCL_Literal_Constraint *integer (void) const;
@@ -234,9 +231,8 @@ private:
class ACE_ETCL_Export ETCL_Component_Assoc : public ETCL_Constraint
{
public:
- ETCL_Component_Assoc (void);
- ETCL_Component_Assoc (ETCL_Constraint *identifier,
- ETCL_Constraint *component);
+ ETCL_Component_Assoc (ETCL_Constraint *identifier = 0,
+ ETCL_Constraint *component = 0);
virtual ~ETCL_Component_Assoc (void);
ETCL_Identifier *identifier (void) const;
@@ -252,9 +248,8 @@ private:
class ACE_ETCL_Export ETCL_Component_Array : public ETCL_Constraint
{
public:
- ETCL_Component_Array (void);
- ETCL_Component_Array (ETCL_Constraint *integer,
- ETCL_Constraint *component);
+ ETCL_Component_Array (ETCL_Constraint *integer = 0,
+ ETCL_Constraint *component = 0);
virtual ~ETCL_Component_Array (void);
ETCL_Literal_Constraint *integer (void) const;
@@ -285,9 +280,8 @@ private:
class ACE_ETCL_Export ETCL_Component : public ETCL_Constraint
{
public:
- ETCL_Component (void);
- ETCL_Component (ETCL_Constraint *identifier,
- ETCL_Constraint *component);
+ ETCL_Component (ETCL_Constraint *identifier = 0,
+ ETCL_Constraint *component = 0);
virtual ~ETCL_Component (void);
ETCL_Identifier *identifier (void) const;
@@ -303,8 +297,7 @@ private:
class ACE_ETCL_Export ETCL_Dot : public ETCL_Constraint
{
public:
- ETCL_Dot (void);
- ETCL_Dot (ETCL_Constraint *component);
+ explicit ETCL_Dot (ETCL_Constraint *component = 0);
virtual ~ETCL_Dot (void);
ETCL_Constraint *component (void) const;
@@ -318,8 +311,7 @@ private:
class ACE_ETCL_Export ETCL_Eval : public ETCL_Constraint
{
public:
- ETCL_Eval (void);
- ETCL_Eval (ETCL_Constraint *component);
+ explicit ETCL_Eval (ETCL_Constraint *component = 0);
virtual ~ETCL_Eval (void);
ETCL_Constraint *component (void) const;
@@ -333,8 +325,7 @@ private:
class ACE_ETCL_Export ETCL_Default : public ETCL_Constraint
{
public:
- ETCL_Default (void);
- ETCL_Default (ETCL_Constraint *component);
+ explicit ETCL_Default (ETCL_Constraint *component = 0);
virtual ~ETCL_Default (void);
ETCL_Constraint *component (void) const;
@@ -348,8 +339,7 @@ private:
class ACE_ETCL_Export ETCL_Exist : public ETCL_Constraint
{
public:
- ETCL_Exist (void);
- ETCL_Exist (ETCL_Constraint *component);
+ explicit ETCL_Exist (ETCL_Constraint *component = 0);
virtual ~ETCL_Exist (void);
ETCL_Constraint *component (void) const;
diff --git a/ACE/ace/ETCL/ETCL_Constraint.inl b/ACE/ace/ETCL/ETCL_Constraint.inl
index e01cf43da40..02fb68014dd 100644
--- a/ACE/ace/ETCL/ETCL_Constraint.inl
+++ b/ACE/ace/ETCL/ETCL_Constraint.inl
@@ -27,10 +27,6 @@ ETCL_Identifier::value (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Union_Value::ETCL_Union_Value (void)
-{}
-
-ACE_INLINE
ETCL_Union_Value::ETCL_Union_Value (int sign,
ETCL_Constraint *integer)
: sign_ (sign),
@@ -70,10 +66,6 @@ ETCL_Union_Value::string (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Union_Pos::ETCL_Union_Pos (void)
-{}
-
-ACE_INLINE
ETCL_Union_Pos::ETCL_Union_Pos (ETCL_Constraint *union_value,
ETCL_Constraint *component)
: component_ (component)
@@ -81,7 +73,7 @@ ETCL_Union_Pos::ETCL_Union_Pos (ETCL_Constraint *union_value,
this->union_value_ =
dynamic_cast<ETCL_Union_Value*> (union_value);
}
-
+
ACE_INLINE ETCL_Union_Value *
ETCL_Union_Pos::union_value (void) const
{
@@ -97,14 +89,9 @@ ETCL_Union_Pos::component (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Component_Pos::ETCL_Component_Pos (void)
-{}
-
-ACE_INLINE
ETCL_Component_Pos::ETCL_Component_Pos (
ETCL_Constraint *integer,
- ETCL_Constraint *component
- )
+ ETCL_Constraint *component)
: component_ (component)
{
this->integer_ =
@@ -126,14 +113,9 @@ ETCL_Component_Pos::component (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Component_Assoc::ETCL_Component_Assoc (void)
-{}
-
-ACE_INLINE
ETCL_Component_Assoc::ETCL_Component_Assoc (
ETCL_Constraint *identifier,
- ETCL_Constraint *component
- )
+ ETCL_Constraint *component)
: component_ (component)
{
this->identifier_ =
@@ -155,14 +137,9 @@ ETCL_Component_Assoc::component (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Component_Array::ETCL_Component_Array (void)
-{}
-
-ACE_INLINE
ETCL_Component_Array::ETCL_Component_Array (
ETCL_Constraint *integer,
- ETCL_Constraint *component
- )
+ ETCL_Constraint *component)
: component_ (component)
{
this->integer_ =
@@ -201,10 +178,6 @@ ETCL_Special::type (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Component::ETCL_Component (void)
-{}
-
-ACE_INLINE
ETCL_Component::ETCL_Component (ETCL_Constraint *identifier,
ETCL_Constraint *component)
: component_ (component)
@@ -228,10 +201,6 @@ ETCL_Component::component (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Dot::ETCL_Dot (void)
-{}
-
-ACE_INLINE
ETCL_Dot::ETCL_Dot (ETCL_Constraint *component)
: component_ (component)
{
@@ -246,10 +215,6 @@ ETCL_Dot::component (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Eval::ETCL_Eval (void)
-{}
-
-ACE_INLINE
ETCL_Eval::ETCL_Eval (ETCL_Constraint *component)
: component_ (component)
{
@@ -264,10 +229,6 @@ ETCL_Eval::component (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Default::ETCL_Default (void)
-{}
-
-ACE_INLINE
ETCL_Default::ETCL_Default (ETCL_Constraint *component)
: component_ (component)
{
@@ -282,10 +243,6 @@ ETCL_Default::component (void) const
// ****************************************************************
ACE_INLINE
-ETCL_Exist::ETCL_Exist (void)
-{}
-
-ACE_INLINE
ETCL_Exist::ETCL_Exist (ETCL_Constraint *component)
: component_ (component)
{
diff --git a/ACE/ace/ETCL/ETCL_Interpreter.cpp b/ACE/ace/ETCL/ETCL_Interpreter.cpp
index e7ae9a7d016..3c3e4405d07 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')
@@ -81,14 +81,14 @@ char* Lex_String_Input::end_ = 0;
// Routine to have Lex read its input from the constraint string.
int
-Lex_String_Input::copy_into (char* buf,
+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)
{
@@ -106,7 +106,7 @@ Lex_String_Input::reset (char* input_string)
{
Lex_String_Input::string_ = input_string;
Lex_String_Input::current_ = input_string;
- Lex_String_Input::end_ =
+ Lex_String_Input::end_ =
input_string + ACE_OS::strlen (Lex_String_Input::string_);
}
diff --git a/ACE/ace/ETCL/ETCL_l.cpp b/ACE/ace/ETCL/ETCL_l.cpp
index 9ebb522747c..8ed7a01645a 100644
--- a/ACE/ace/ETCL/ETCL_l.cpp
+++ b/ACE/ace/ETCL/ETCL_l.cpp
@@ -2,7 +2,6 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Id$
*/
#define FLEX_SCANNER
@@ -17,12 +16,13 @@
#endif
#endif
-#include "ace/OS.h"
-
#include "ace/ETCL/ETCL_Constraint.h"
#ifdef __cplusplus
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_stdio.h"
+
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
@@ -263,8 +263,6 @@ static void yy_flex_free YY_PROTO(( void * ));
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-//#define yywrap() 1
-//#define YY_SKIP_YYWRAP
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;
@@ -445,26 +443,20 @@ static char *yy_last_accepting_cpos;
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
-//#line 1 "ETCL/ETCL.ll"
#define INITIAL 0
ACE_END_VERSIONED_NAMESPACE_DECL
-//#line 4 "ETCL/ETCL.ll"
-// $Id$
-// ========================================================================
-//
-// = LIBRARY
-// orbsvcs/ECTL
-//
-// = FILENAME
-// ETCL.ll
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu> based on previous work by
-// Seth Widoff <sbw1@cs.wustl.edu>
-//
-// ========================================================================
+//=============================================================================
+/**
+ * @file ETCL_l.cpp
+ *
+ * $Id$
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu> based on previous work by Seth Widoff <sbw1@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/ETCL/ETCL_Interpreter.h"
#include "ace/ETCL/ETCL_y.h"
@@ -563,7 +555,7 @@ YY_MALLOC_DECL
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ETCL_ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#define ETCL_ECHO { size_t __dum_ret = fwrite( yytext, yyleng, 1, yyout ); (void) __dum_ret; }
#endif
//FUZZ: enable check_for_lack_ACE_OS
@@ -1542,14 +1534,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..2365305100d 100644
--- a/ACE/ace/ETCL/ETCL_l.cpp.diff
+++ b/ACE/ace/ETCL/ETCL_l.cpp.diff
@@ -3,35 +3,36 @@
@@ -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"
-
++#include "ace/OS_NS_unistd.h"
++#include "ace/OS_NS_stdio.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 +54,7 @@
//
// = LIBRARY
// orbsvcs/ECTL
--//
+-//
+//
// = FILENAME
// ETCL.ll
@@ -61,37 +62,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 +101,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 +112,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 +122,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 +328,8 @@
case 33:
YY_RULE_SETUP
-#line 84 "ETCL.ll"
--{
-- lvalp->constraint =
+-{
+- lvalp->constraint =
+//#line 84 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
@@ -339,8 +340,8 @@
case 34:
YY_RULE_SETUP
-#line 89 "ETCL.ll"
--{
-- lvalp->constraint =
+-{
+- lvalp->constraint =
+//#line 89 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
@@ -351,13 +352,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 +368,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 +394,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 +416,7 @@
case 40:
YY_RULE_SETUP
-#line 119 "ETCL.ll"
--{
+-{
+//#line 119 "ETCL/ETCL.ll"
+{
TAO_YY_LEX_DEBUG; break; // @@ TODO
@@ -431,11 +432,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 +448,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 +486,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/ETCL/ETCL_y.cpp b/ACE/ace/ETCL/ETCL_y.cpp
index 00f2e989115..c669a621017 100644
--- a/ACE/ace/ETCL/ETCL_y.cpp
+++ b/ACE/ace/ETCL/ETCL_y.cpp
@@ -1,4 +1,3 @@
-// $Id$
/* A Bison parser, made from ETCL/ETCL.yy
by GNU Bison version 1.28 */
@@ -49,22 +48,17 @@
#define ETCL_TYPE_ID 298
#define ETCL_REPOS_ID 299
-//#line 1 "ETCL/ETCL.yy"
-
-// $Id$
-// ========================================================================
-//
-// = LIBRARY
-// ace/ETCL / Extended Trader Constraint Language parser.
-//
-// = FILENAME
-// ETCL.yy
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@uci.edu> based on previous work by
-// Seth Widoff <sbw1@cs.wustl.edu>
-//
-// ========================================================================
+
+//=============================================================================
+/**
+ * @file ETCL_y.cpp
+ *
+ * $Id$
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu> based on previous work by Seth Widoff <sbw1@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/ETCL/ETCL_y.h"
#include "ace/ETCL/ETCL_Constraint.h"
@@ -340,7 +334,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else /* not GNU C. */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || (defined (__sun) && defined (__i386))
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else /* not sparc */
diff --git a/ACE/ace/Env_Value_T.h b/ACE/ace/Env_Value_T.h
index 01f4fcc5e8d..33a66064746 100644
--- a/ACE/ace/Env_Value_T.h
+++ b/ACE/ace/Env_Value_T.h
@@ -22,6 +22,7 @@
#include /**/ "ace/config-all.h"
#include "ace/Global_Macros.h"
#include "ace/OS_NS_stdlib.h"
+#include "ace/Copy_Disabled.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -38,19 +39,18 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* value.
*/
template <class T>
-class ACE_Env_Value
+class ACE_Env_Value : private ACE_Copy_Disabled
{
public:
/**
* Default constructor which isn't bound to a specific environment
* variable name or a default value. Before being useful it must
- * <open>'d.
+ * open()'d.
*/
ACE_Env_Value (void);
- /// Constructor that calls <open>.
- ACE_Env_Value (const ACE_TCHAR *varname,
- const T &vardefault);
+ /// Constructor that calls open().
+ ACE_Env_Value (const ACE_TCHAR *varname, const T &vardefault);
/// Destroy the value.
~ACE_Env_Value (void);
@@ -66,10 +66,6 @@ public:
const ACE_TCHAR *varname (void) const;
private:
- /// Disallow copying and assignment.
- ACE_UNIMPLEMENTED_FUNC (ACE_Env_Value(const ACE_Env_Value<T> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Env_Value<T> operator=(const ACE_Env_Value<T> &))
-
void fetch_value (void);
const ACE_TCHAR *varname_;
diff --git a/ACE/ace/Event.cpp b/ACE/ace/Event.cpp
index e185ec37117..80a37043983 100644
--- a/ACE/ace/Event.cpp
+++ b/ACE/ace/Event.cpp
@@ -8,7 +8,7 @@
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Event, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Event_Handler.cpp b/ACE/ace/Event_Handler.cpp
index 42c8b36cd8e..445f97484c3 100644
--- a/ACE/ace/Event_Handler.cpp
+++ b/ACE/ace/Event_Handler.cpp
@@ -14,7 +14,7 @@
#include <algorithm>
-ACE_RCSID(ace, Event_Handler, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -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/Event_Handler.h b/ACE/ace/Event_Handler.h
index 1cbd19992fd..7f2a26f5db5 100644
--- a/ACE/ace/Event_Handler.h
+++ b/ACE/ace/Event_Handler.h
@@ -38,7 +38,8 @@ typedef unsigned long ACE_Reactor_Mask;
/**
* @class ACE_Event_Handler
*
- * @brief Provides an abstract interface for handling various types of
+ * @brief
+ * Provides an abstract interface for handling various types of
* I/O, timer, and signal events.
*
* Subclasses read/write input/output on an I/O descriptor,
@@ -94,9 +95,9 @@ public:
// = Get/set priority
- // Priorities run from MIN_PRIORITY (which is the "lowest priority")
- // to MAX_PRIORITY (which is the "highest priority").
/// Get the priority of the Event_Handler.
+ /// @note Priorities run from MIN_PRIORITY (which is the "lowest priority")
+ /// to MAX_PRIORITY (which is the "highest priority").
virtual int priority (void) const;
/// Set the priority of the Event_Handler.
@@ -124,10 +125,10 @@ public:
/// Called when a process exits.
virtual int handle_exit (ACE_Process *);
- /// Called when a <handle_*()> method returns -1 or when the
- /// <remove_handler> method is called on an ACE_Reactor. The
+ /// Called when a handle_*() method returns -1 or when the
+ /// remove_handler() method is called on an ACE_Reactor. The
/// @a close_mask indicates which event has triggered the
- /// <handle_close> method callback on a particular @a handle.
+ /// handle_close() method callback on a particular @a handle.
virtual int handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask close_mask);
@@ -145,17 +146,17 @@ public:
/// The application takes responsibility of resuming the handler
ACE_APPLICATION_RESUMES_HANDLER
};
+
/**
* Called to figure out whether the handler needs to resumed by the
* reactor or the application can take care of it. The default
* value of 0 would be returned which would allow the reactor to
* take care of resumption of the handler. The application can
* return a value more than zero and decide to resume the handler
- * themseleves.
+ * themselves.
*
- * @note This method is only useful for the ACE_TP_Reactor. Sad
- * that we have to have this method in a class that is supposed to
- * be used across different components in ACE.
+ * @note This method has an affect only when used with the
+ * ACE_Dev_Poll_Reactor (and then, only on Linux) or the ACE_TP_Reactor.
*/
virtual int resume_handler (void);
@@ -178,8 +179,8 @@ public:
* non-sockets (such as ACE_STDIN). This is commonly used in
* situations where the Reactor is used to demultiplex read events
* on ACE_STDIN on UNIX. Note that @a event_handler must be a
- * subclass of ACE_Event_Handler. If the <get_handle> method of
- * this event handler returns <ACE_INVALID_HANDLE> we default to
+ * subclass of ACE_Event_Handler. If the get_handle() method of
+ * this event handler returns ACE_INVALID_HANDLE we default to
* reading from ACE_STDIN.
*/
static ACE_THR_FUNC_RETURN read_adapter (void *event_handler);
@@ -194,7 +195,7 @@ public:
ACE_Thread_Manager *thr_mgr,
int flags = THR_DETACHED);
- /// Performs the inverse of the <register_stdin_handler> method.
+ /// Performs the inverse of the register_stdin_handler() method.
static int remove_stdin_handler (ACE_Reactor *reactor,
ACE_Thread_Manager *thr_mgr);
@@ -239,7 +240,8 @@ public:
/**
* @class Reference_Counting_Policy
*
- * @brief This policy dictates the reference counting requirements
+ * @brief
+ * This policy dictates the reference counting requirements
* for the handler.
*
* This policy allows applications to configure whether it wants the
@@ -367,7 +369,7 @@ public:
ACE_Notification_Buffer (ACE_Event_Handler *eh,
ACE_Reactor_Mask mask);
- /// Default dtor.
+ /// Default destructor.
~ACE_Notification_Buffer (void);
/// Pointer to the Event_Handler that will be dispatched
diff --git a/ACE/ace/Event_Handler_T.cpp b/ACE/ace/Event_Handler_T.cpp
index 51a03f62310..3911da07853 100644
--- a/ACE/ace/Event_Handler_T.cpp
+++ b/ACE/ace/Event_Handler_T.cpp
@@ -11,8 +11,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
#if !defined (__ACE_INLINE__)
#include "ace/Event_Handler_T.inl"
#endif /* __ACE_INLINE__ */
@@ -120,6 +118,4 @@ ACE_Event_Handler_T<T>::handle_signal (int signum, siginfo_t *s, ucontext_t *u)
ACE_END_VERSIONED_NAMESPACE_DECL
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
#endif /* ACE_EVENT_HANDLER_T_CPP */
diff --git a/ACE/ace/Event_Handler_T.h b/ACE/ace/Event_Handler_T.h
index ff91cd4480d..d6726d703be 100644
--- a/ACE/ace/Event_Handler_T.h
+++ b/ACE/ace/Event_Handler_T.h
@@ -20,8 +20,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
@@ -186,6 +184,5 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#pragma implementation ("Event_Handler_T.cpp")
#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
#include /**/ "ace/post.h"
#endif /* ACE_EVENT_HANDLER_H */
diff --git a/ACE/ace/Event_Handler_T.inl b/ACE/ace/Event_Handler_T.inl
index c3facd7e25f..fc99e5d1c48 100644
--- a/ACE/ace/Event_Handler_T.inl
+++ b/ACE/ace/Event_Handler_T.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
#include "ace/Global_Macros.h"
diff --git a/ACE/ace/Exception_Macros.h b/ACE/ace/Exception_Macros.h
deleted file mode 100644
index 7efc532f93a..00000000000
--- a/ACE/ace/Exception_Macros.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-
-// ============================================================================
-/**
- * @file Exception_Macros.h
- *
- * $Id$
- *
- * Writing code that is portable between platforms with or without
- * native C++ exceptions is hard. The following macros offer some
- * help on this task.
- *
- * @author Nanbor Wang <nanbor@cs.wustl.edu>
- * @author Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author Krishnakumar B <kitty@cs.wustl.edu>, et al.
- */
-// ============================================================================
-
-// Macros for handling exceptions.
-
-#ifndef ACE_EXCEPTION_MACROS_H
-#define ACE_EXCEPTION_MACROS_H
-
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/config-all.h"
-
-# if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-# endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// By default, if the compiler supports native exception handling, assume
-// CORBA also support native exception handling. But it can be disabled by
-// defining ACE_CORBA_HAS_EXCEPTIONS=0. If the compiler does not support
-// exceptions handling, make sure native exception handling is disabled.
-#if defined (ACE_HAS_EXCEPTIONS)
-# if defined (ACE_CORBA_HAS_EXCEPTIONS)
-# if (ACE_CORBA_HAS_EXCEPTIONS == 0)
-# undef ACE_USES_NATIVE_EXCEPTIONS
-# else /* ACE_CORBA_HAS_EXCEPTIONS != 0 */
-# define ACE_USES_NATIVE_EXCEPTIONS
-# endif /* ACE_CORBA_HAS_EXCEPTIONS == 0 */
-# else
-# define ACE_USES_NATIVE_EXCEPTIONS
-# define ACE_CORBA_HAS_EXCEPTIONS
-# endif /* ACE_CORBA_HAS_EXCEPTIONS */
-#else /* ! ACE_HAS_EXCEPTIONS */
-# undef ACE_CORBA_HAS_EXCEPTIONS
-# undef ACE_USES_NATIVE_EXCEPTIONS
-#endif /* ACE_HAS_EXCEPTIONS */
-
-#include /**/ "ace/post.h"
-
-#endif /* ACE_EXCEPTION_MACROS_H */
diff --git a/ACE/ace/FIFO.cpp b/ACE/ace/FIFO.cpp
index 22172e376f7..a1f79c24c91 100644
--- a/ACE/ace/FIFO.cpp
+++ b/ACE/ace/FIFO.cpp
@@ -12,8 +12,6 @@
#include "ace/OS_NS_sys_stat.h"
#include "ace/OS_NS_fcntl.h"
-ACE_RCSID(ace, FIFO, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_FIFO)
diff --git a/ACE/ace/FIFO.h b/ACE/ace/FIFO.h
index 3866b0e4eb8..9dc5e7feb92 100644
--- a/ACE/ace/FIFO.h
+++ b/ACE/ace/FIFO.h
@@ -32,15 +32,24 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @brief Abstract base class for UNIX FIFOs
*
* UNIX FIFOs are also known Named Pipes, which are totally
- * unrelated to Win32 Named Pipes. If you want to use a local
- * IPC mechanism that will be portable to both UNIX and Win32,
- * take a look at the <ACE_SPIPE_*> classes.
+ * unrelated to Windows Named Pipes. If you want to use a local
+ * IPC mechanism that will be portable to both UNIX and Windows,
+ * take a look at the ACE_Pipe or ACE_SPIPE_Stream classes.
*/
class ACE_Export ACE_FIFO : public ACE_IPC_SAP
{
public:
- /// Open up the named pipe on the <rendezvous> in accordance with the
- /// flags.
+ /**
+ * Open up the named pipe (FIFO) on the @a rendezvous point in accordance
+ * with the @a flags.
+ *
+ * If @a flags contains @c O_CREAT open() will attempt to call mkfifo()
+ * to create the FIFO before opening it. In this case, this method
+ * will not fail simply because the fifo already exists.
+ *
+ * @retval 0 for success
+ * @retval -1 for error; errno contains the error code.
+ */
int open (const ACE_TCHAR *rendezvous, int flags, mode_t perms,
LPSECURITY_ATTRIBUTES sa = 0);
@@ -61,14 +70,19 @@ public:
ACE_ALLOC_HOOK_DECLARE;
protected:
- // = Make these protected to ensure that the class is "abstract."
+ /**
+ * Protected constructors ensure this class cannot be used directly.
+ * User code must use ACE_FIFO_Send and/or ACE_FIFO_Recv.
+ */
+ //@{
/// Default constructor.
ACE_FIFO (void);
- /// Open up the named pipe on the <rendezvous> in accordance with the
+ /// Open up the named pipe on the @a rendezvous in accordance with the
/// flags.
ACE_FIFO (const ACE_TCHAR *rendezvous, int flags, mode_t perms,
LPSECURITY_ATTRIBUTES sa = 0);
+ //@}
private:
/// Rendezvous point in the file system.
diff --git a/ACE/ace/FIFO_Recv.cpp b/ACE/ace/FIFO_Recv.cpp
index ca1305cf71a..fc29407d4ca 100644
--- a/ACE/ace/FIFO_Recv.cpp
+++ b/ACE/ace/FIFO_Recv.cpp
@@ -8,7 +8,7 @@
#include "ace/FIFO_Recv.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, FIFO_Recv, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/FIFO_Recv.h b/ACE/ace/FIFO_Recv.h
index fa18cf291a5..232d3840825 100644
--- a/ACE/ace/FIFO_Recv.h
+++ b/ACE/ace/FIFO_Recv.h
@@ -36,7 +36,17 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_FIFO_Recv : public ACE_FIFO
{
public:
- // = Initialization methods.
+ /// @name Initialization methods.
+ ///
+ /// Note that @c ACE_NONBLOCK will be added to any @a flags value passed.
+ /// This causes the open to succeed even if no writer has yet opened the
+ /// fifo. There is no way to disable this behavior.
+ ///
+ /// @arg persistent Means "open fifo for writing, as well as
+ /// reading." This ensures that the fifo never gets EOF, even if there
+ /// aren't any writers at the moment!
+ //@{
+
/// Default constructor.
ACE_FIFO_Recv (void);
@@ -53,8 +63,9 @@ public:
mode_t perms = ACE_DEFAULT_FILE_PERMS,
int persistent = 1,
LPSECURITY_ATTRIBUTES sa = 0);
+ //@}
- /// Close down the named pipe.
+ /// Close down the fifo.
int close (void);
/// Recv @a buf of up to @a len bytes.
diff --git a/ACE/ace/FIFO_Recv_Msg.cpp b/ACE/ace/FIFO_Recv_Msg.cpp
index 68d77af8a78..4755e41981c 100644
--- a/ACE/ace/FIFO_Recv_Msg.cpp
+++ b/ACE/ace/FIFO_Recv_Msg.cpp
@@ -8,8 +8,6 @@
#include "ace/FIFO_Recv_Msg.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, FIFO_Recv_Msg, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Recv_Msg)
diff --git a/ACE/ace/FIFO_Recv_Msg.inl b/ACE/ace/FIFO_Recv_Msg.inl
index 13b0f05ac94..4a7ce576e38 100644
--- a/ACE/ace/FIFO_Recv_Msg.inl
+++ b/ACE/ace/FIFO_Recv_Msg.inl
@@ -43,12 +43,12 @@ ACE_FIFO_Recv_Msg::recv (ACE_Str_Buf &recv_msg)
ssize_t recv_len = ACE_OS::read (this->get_handle (),
(char *) recv_msg.buf,
ACE_MIN (remaining, requested));
-
+
if (recv_len == -1)
{
return -1;
}
-
+
// Tell caller what's really in the buffer.
recv_msg.len = static_cast<int> (recv_len);
@@ -60,7 +60,7 @@ ACE_FIFO_Recv_Msg::recv (ACE_Str_Buf &recv_msg)
// saving the indication here either to read the remainder later.
size_t total_msg_size = remaining;
remaining -= recv_len;
-
+
while (remaining > 0)
{
const size_t throw_away = 1024;
@@ -68,15 +68,15 @@ ACE_FIFO_Recv_Msg::recv (ACE_Str_Buf &recv_msg)
recv_len = ACE_OS::read (this->get_handle (),
dev_null,
ACE_MIN (remaining, throw_away));
-
+
if (recv_len == -1)
{
break;
}
-
+
remaining -= recv_len;
}
-
+
return ACE_Utils::truncate_cast<ssize_t> (total_msg_size);
}
#endif /* ACE_HAS_STREAM_PIPES */
@@ -118,7 +118,7 @@ ACE_FIFO_Recv_Msg::recv (int *band,
int *flags)
{
ACE_TRACE ("ACE_FIFO_Recv_Msg::recv");
-
+
if (ACE_OS::getpmsg (this->get_handle (),
(strbuf *) cntl,
(strbuf *) data,
diff --git a/ACE/ace/FIFO_Send.cpp b/ACE/ace/FIFO_Send.cpp
index 47a3c90e814..3245e2e3d99 100644
--- a/ACE/ace/FIFO_Send.cpp
+++ b/ACE/ace/FIFO_Send.cpp
@@ -7,7 +7,7 @@
#include "ace/FIFO_Send.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, FIFO_Send, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/FIFO_Send.h b/ACE/ace/FIFO_Send.h
index 51a14508114..ae1576bd4f2 100644
--- a/ACE/ace/FIFO_Send.h
+++ b/ACE/ace/FIFO_Send.h
@@ -35,7 +35,12 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_FIFO_Send : public ACE_FIFO
{
public:
- // = Initialization methods.
+ /// @name Initialization methods.
+ ///
+ /// Note that @c O_WRONLY will be added to any @a flags value passed.
+ /// Default behavior is to block until a receiver also opens the fifo.
+ /// To use non-blocking behavior include ACE_NONBLOCK in @a flags.
+ //@{
/// Default constructor.
ACE_FIFO_Send (void);
@@ -50,6 +55,7 @@ public:
int flags = O_WRONLY,
mode_t perms = ACE_DEFAULT_FILE_PERMS,
LPSECURITY_ATTRIBUTES sa = 0);
+ //@}
/// Send @a buf of up to @a len bytes.
ssize_t send (const void *buf, size_t len);
diff --git a/ACE/ace/FIFO_Send_Msg.cpp b/ACE/ace/FIFO_Send_Msg.cpp
index c06b737a6bb..63ea992021e 100644
--- a/ACE/ace/FIFO_Send_Msg.cpp
+++ b/ACE/ace/FIFO_Send_Msg.cpp
@@ -9,7 +9,7 @@
#include "ace/FIFO_Send_Msg.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, FIFO_Send_Msg, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/FILE.cpp b/ACE/ace/FILE.cpp
index 8b3015524e3..732b791cfeb 100644
--- a/ACE/ace/FILE.cpp
+++ b/ACE/ace/FILE.cpp
@@ -12,7 +12,7 @@
#include "ace/FILE.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, FILE, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/FILE.h b/ACE/ace/FILE.h
index bf8f4561d4f..a88722b31d2 100644
--- a/ACE/ace/FILE.h
+++ b/ACE/ace/FILE.h
@@ -22,19 +22,6 @@
#include "ace/FILE_Addr.h"
-// The following is necessary since many C++ compilers don't support
-// typedef'd types inside of classes used as formal template
-// arguments... ;-(. Luckily, using the C++ preprocessor I can hide
-// most of this nastiness!
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-#define ACE_FILE_CONNECTOR ACE_FILE_Connector
-#define ACE_FILE_STREAM ACE_FILE_IO
-#else /* TEMPLATES are broken (must be a cfront-based compiler...) */
-#define ACE_FILE_CONNECTOR ACE_FILE_Connector, ACE_FILE_Addr
-#define ACE_FILE_STREAM ACE_FILE_IO, ACE_FILE_Addr
-#endif /* ACE_TEMPLATE_TYPEDEFS */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
@@ -85,13 +72,13 @@ public:
/**
* Sets the file pointer as follows:
- * o If <whence> is <SEEK_SET>, the pointer is set to @a offset
+ * o If @ whence is @c SEEK_SET, the pointer is set to @a offset
* bytes.
*
- * o If <whence> is <SEEK_CUR>, the pointer is set to its
- * current location plus @a offset.
+ * o If @a whence> is @c SEEK_CUR, the pointer is set to its
+ * current location plus @a offset.
*
- * o If <whence> is <SEEK_END>, the pointer is set to the size
+ * o If @a whence is @c SEEK_END, the pointer is set to the size
* of the file plus offset.
*/
ACE_OFF_T seek (ACE_OFF_T offset,
diff --git a/ACE/ace/FILE_Addr.cpp b/ACE/ace/FILE_Addr.cpp
index 79d9db6e296..0d359c1dea7 100644
--- a/ACE/ace/FILE_Addr.cpp
+++ b/ACE/ace/FILE_Addr.cpp
@@ -11,7 +11,7 @@
#include "ace/FILE_Addr.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, FILE_Addr, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/FILE_Connector.cpp b/ACE/ace/FILE_Connector.cpp
index c136b0b47eb..c341a6fa4c4 100644
--- a/ACE/ace/FILE_Connector.cpp
+++ b/ACE/ace/FILE_Connector.cpp
@@ -8,7 +8,7 @@
#include "ace/FILE_Connector.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, FILE_Connector, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/FILE_IO.cpp b/ACE/ace/FILE_IO.cpp
index c3515e178a9..d8890eecb68 100644
--- a/ACE/ace/FILE_IO.cpp
+++ b/ACE/ace/FILE_IO.cpp
@@ -11,7 +11,7 @@
#include "ace/FILE_IO.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, FILE_IO, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/FILE_IO.h b/ACE/ace/FILE_IO.h
index e975c0cc2c9..c1f214efdd7 100644
--- a/ACE/ace/FILE_IO.h
+++ b/ACE/ace/FILE_IO.h
@@ -59,8 +59,8 @@ public:
/// Send n bytes, keep trying until n are sent.
ssize_t send_n (const void *buf, size_t n) const;
- /// Send all the @a message_blocks chained through their <next> and
- /// <cont> pointers. This call uses the underlying OS gather-write
+ /// Send all the @a message_blocks chained through their next and
+ /// cont pointers. This call uses the underlying OS gather-write
/// operation to reduce the domain-crossing penalty.
ssize_t send_n (const ACE_Message_Block *message_block,
const ACE_Time_Value *timeout = 0,
diff --git a/ACE/ace/File_Lock.cpp b/ACE/ace/File_Lock.cpp
index 88935c3a5d7..619876f72a4 100644
--- a/ACE/ace/File_Lock.cpp
+++ b/ACE/ace/File_Lock.cpp
@@ -7,7 +7,7 @@
#include "ace/File_Lock.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, File_Lock, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -26,8 +26,8 @@ ACE_File_Lock::dump (void) const
}
ACE_File_Lock::ACE_File_Lock (ACE_HANDLE h,
- int unlink_in_destructor)
- : removed_ (0),
+ bool unlink_in_destructor)
+ : removed_ (false),
unlink_in_destructor_ (unlink_in_destructor)
{
// ACE_TRACE ("ACE_File_Lock::ACE_File_Lock");
@@ -41,7 +41,7 @@ ACE_File_Lock::ACE_File_Lock (ACE_HANDLE h,
ACE_File_Lock::ACE_File_Lock (const ACE_TCHAR *name,
int flags,
mode_t perms,
- int unlink_in_destructor)
+ bool unlink_in_destructor)
: unlink_in_destructor_ (unlink_in_destructor)
{
// ACE_TRACE ("ACE_File_Lock::ACE_File_Lock");
@@ -59,7 +59,7 @@ ACE_File_Lock::open (const ACE_TCHAR *name,
mode_t perms)
{
// ACE_TRACE ("ACE_File_Lock::open");
- this->removed_ = 0;
+ this->removed_ = false;
return ACE_OS::flock_init (&this->lock_, flags, name, perms);
}
diff --git a/ACE/ace/File_Lock.h b/ACE/ace/File_Lock.h
index 0e1c9612e96..c7b12a6c302 100644
--- a/ACE/ace/File_Lock.h
+++ b/ACE/ace/File_Lock.h
@@ -44,15 +44,15 @@ public:
* zero value for <unlink_in_destructor>.
*/
ACE_File_Lock (ACE_HANDLE handle = ACE_INVALID_HANDLE,
- int unlink_in_destructor = 1);
+ bool unlink_in_destructor = true);
/// Open the @a filename with @a flags and @a mode and set the result
/// to <handle_>. If you don't want the file unlinked in the
- /// destructor pass a zero value for <unlink_in_destructor>.
+ /// destructor pass a false value for @a unlink_in_destructor.
ACE_File_Lock (const ACE_TCHAR *filename,
int flags,
mode_t mode = 0,
- int unlink_in_destructor = 1);
+ bool unlink_in_destructor = true);
/// Open the @a filename with @a flags and @a mode and set the result to
/// <handle_>.
@@ -64,12 +64,12 @@ public:
~ACE_File_Lock (void);
/// Remove a File lock by releasing it and closing down the
- /// <handle_>. If <unlink_file> is non-0 then we unlink the file.
- int remove (int unlink_file = 1);
+ /// <handle_>. If @a unlink_file is true then we unlink the file.
+ int remove (bool unlink_file = true);
/**
* Note, for interface uniformity with other synchronization
- * wrappers we include the <acquire> method. This is implemented as
+ * wrappers we include the acquire() method. This is implemented as
* a write-lock to be on the safe-side...
*/
int acquire (short whence = 0, ACE_OFF_T start = 0, ACE_OFF_T len = 1);
@@ -148,11 +148,11 @@ protected:
/// destructor. This flag isn't protected by a lock, so make sure
/// that you don't have multiple threads simultaneously calling
/// <remove> on the same object, which is a bad idea anyway...
- int removed_;
+ bool removed_;
/// Keeps track of whether to unlink the underlying file in the
/// destructor.
- int unlink_in_destructor_;
+ bool const unlink_in_destructor_;
private:
// = Prevent assignment and initialization.
diff --git a/ACE/ace/File_Lock.inl b/ACE/ace/File_Lock.inl
index bef9de9d063..46ac7015903 100644
--- a/ACE/ace/File_Lock.inl
+++ b/ACE/ace/File_Lock.inl
@@ -63,15 +63,15 @@ ACE_File_Lock::release (short whence, ACE_OFF_T start, ACE_OFF_T len)
}
ACE_INLINE int
-ACE_File_Lock::remove (int unlink_file)
+ACE_File_Lock::remove (bool unlink_file)
{
// ACE_TRACE ("ACE_File_Lock::remove");
int result = 0;
- if (this->removed_ == 0)
+ if (!this->removed_)
{
- this->removed_ = 1;
+ this->removed_ = true;
result = ACE_OS::flock_destroy (&this->lock_,
unlink_file);
}
@@ -90,7 +90,7 @@ ACE_File_Lock::set_handle (ACE_HANDLE h)
{
// ACE_TRACE ("ACE_File_Lock::set_handle");
this->lock_.handle_ = h;
- this->removed_ = 0;
+ this->removed_ = false;
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Filecache.cpp b/ACE/ace/Filecache.cpp
index 72601d8d1d3..9b70a7d3203 100644
--- a/ACE/ace/Filecache.cpp
+++ b/ACE/ace/Filecache.cpp
@@ -11,10 +11,6 @@
#include "ace/OS_NS_fcntl.h"
#include "ace/Truncate.h"
-ACE_RCSID (ace,
- Filecache,
- "$Id$")
-
#if defined (ACE_WIN32)
// Specifies no sharing flags.
#define R_MASK ACE_DEFAULT_OPEN_PERMS
@@ -168,6 +164,7 @@ template <>
ACE_Filecache_Hash_Entry::ACE_Hash_Map_Entry (ACE_Filecache_Hash_Entry *next,
ACE_Filecache_Hash_Entry *prev)
: ext_id_ (0),
+ int_id_ (0),
next_ (next),
prev_ (prev)
{
diff --git a/ACE/ace/Filecache.h b/ACE/ace/Filecache.h
index df1835b9372..f43f6ed1f76 100644
--- a/ACE/ace/Filecache.h
+++ b/ACE/ace/Filecache.h
@@ -41,7 +41,8 @@ class ACE_Filecache_Object;
/**
* @class ACE_Filecache_Handle
*
- * @brief Abstraction over a real file. This is meant to be the entry
+ * @brief
+ * Abstraction over a real file. This is meant to be the entry
* point into the Cached Virtual Filesystem.
*
* This is a cached filesystem implementation based loosely on the
@@ -143,7 +144,7 @@ private:
/// A reference to the low level instance.
ACE_Filecache_Object *file_;
- /// A <dup>'d version of the one from <file_>.
+ /// A dup'd version of the one from file_.
ACE_HANDLE handle_;
int mapit_;
@@ -157,7 +158,8 @@ typedef ACE_Hash_Map_Entry<const ACE_TCHAR *, ACE_Filecache_Object *> ACE_Fileca
/**
* @class ACE_Filecache
*
- * @brief A hash table holding the information about entry point into
+ * @brief
+ * A hash table holding the information about entry point into
* the Cached Virtual Filesystem. On insertion, the reference
* count is incremented. On destruction, reference count is
* decremented.
@@ -231,7 +233,8 @@ private:
/**
* @class ACE_Filecache_Object
*
- * @brief Abstraction over a real file. This is what the Virtual
+ * @brief
+ * Abstraction over a real file. This is what the Virtual
* Filesystem contains. This class is not intended for general
* consumption. Please consult a physician before attempting to
* use this class.
diff --git a/ACE/ace/FlReactor/FlReactor.cpp b/ACE/ace/FlReactor/FlReactor.cpp
index 8d5003b66d6..5dd1ec05492 100644
--- a/ACE/ace/FlReactor/FlReactor.cpp
+++ b/ACE/ace/FlReactor/FlReactor.cpp
@@ -2,8 +2,6 @@
#include "ace/FlReactor/FlReactor.h"
-ACE_RCSID(ace, FlReactor, "$Id$")
-
#include /**/ <FL/Fl.H>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/FlReactor/ace_flreactor.mpc b/ACE/ace/FlReactor/ace_flreactor.mpc
new file mode 100644
index 00000000000..902cb787050
--- /dev/null
+++ b/ACE/ace/FlReactor/ace_flreactor.mpc
@@ -0,0 +1,11 @@
+// -*- MPC -*- now wouldn't this be cool...
+// $Id$
+
+project(ACE_FlReactor) : acedefaults, install, acelib, ace_output, ace_fl{
+ sharedname = ACE_FlReactor
+ dynamicflags += ACE_FLREACTOR_BUILD_DLL
+
+ specific {
+ install_dir = ace/FlReactor
+ }
+}
diff --git a/ACE/ace/Flag_Manip.cpp b/ACE/ace/Flag_Manip.cpp
index ee074a2d10d..3f7b39da96a 100644
--- a/ACE/ace/Flag_Manip.cpp
+++ b/ACE/ace/Flag_Manip.cpp
@@ -15,10 +15,6 @@
# include "ace/os_include/os_termios.h"
#endif /* CYGWIN32 */
-ACE_RCSID (ace,
- Flag_Manip,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Flags are file status flags to turn on.
diff --git a/ACE/ace/FoxReactor/FoxReactor.cpp b/ACE/ace/FoxReactor/FoxReactor.cpp
index d2aaaa1cce1..8d76a75f323 100644
--- a/ACE/ace/FoxReactor/FoxReactor.cpp
+++ b/ACE/ace/FoxReactor/FoxReactor.cpp
@@ -2,10 +2,6 @@
#include "ace/FoxReactor/FoxReactor.h"
-ACE_RCSID(ace, FoxReactor, "$Id$")
-
-#include "ace/Synch_T.h"
-
FXDEFMAP(ACE_FoxReactor) ACE_FoxReactorMap[]={
FXMAPFUNCS(SEL_IO_READ,0,MAXKEY,ACE_FoxReactor::onFileEvents),
FXMAPFUNCS(SEL_IO_WRITE,0,MAXKEY,ACE_FoxReactor::onFileEvents),
@@ -137,6 +133,8 @@ long ACE_FoxReactor::onFileEvents(FXObject* /* ob */, FXSelector se, void* handl
f=true;
};
if(f) dispatch (1, dispatch_set);
+
+ return 1;
}
long ACE_FoxReactor::onTimerEvents(FXObject* /* ob */, FXSelector /* sel */, void* /* handle */)
@@ -147,19 +145,19 @@ long ACE_FoxReactor::onTimerEvents(FXObject* /* ob */, FXSelector /* sel */, voi
// Set next timeout signal
this->reset_timeout ();
-
+
return 0;
}
int
ACE_FoxReactor::register_handler_i (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
+ ACE_Event_Handler *handler,
+ ACE_Reactor_Mask mask)
{
ACE_TRACE ("ACE_FoxReactor::register_handler_i");
- int result = ACE_Select_Reactor::register_handler_i (handle,
- handler, mask);
+ int const result = ACE_Select_Reactor::register_handler_i (handle,
+ handler, mask);
if (result == -1)
return -1;
@@ -181,15 +179,15 @@ ACE_FoxReactor::register_handler_i (ACE_HANDLE handle,
if (condition != 0)
{
- fxapp->addInput(handle,condition,this,0);
+ fxapp->addInput(handle, condition, this, 0);
}
return 0;
}
int
ACE_FoxReactor::register_handler_i (const ACE_Handle_Set &handles,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask)
+ ACE_Event_Handler *handler,
+ ACE_Reactor_Mask mask)
{
return ACE_Select_Reactor::register_handler_i (handles, handler, mask);
}
diff --git a/ACE/ace/FoxReactor/FoxReactor.h b/ACE/ace/FoxReactor/FoxReactor.h
index 94ffd92508b..f2d229bf706 100644
--- a/ACE/ace/FoxReactor/FoxReactor.h
+++ b/ACE/ace/FoxReactor/FoxReactor.h
@@ -28,7 +28,7 @@
#include "ace/Select_Reactor.h"
#include "ace/FoxReactor/ACE_FoxReactor_export.h"
-#include <fox/fx.h>
+#include <fx.h>
/**
* @class ACE_FoxReactor
@@ -38,7 +38,7 @@
* toolkit with ACE and/or TAO.
*
*/
-class ACE_FoxReactor_Export ACE_FoxReactor : public FXObject , public ACE_Select_Reactor
+class ACE_FoxReactor_Export ACE_FoxReactor : public FXObject, public ACE_Select_Reactor
{
FXDECLARE(ACE_FoxReactor)
public:
diff --git a/ACE/ace/FoxReactor/ace_foxreactor.mpc b/ACE/ace/FoxReactor/ace_foxreactor.mpc
new file mode 100644
index 00000000000..451ac971779
--- /dev/null
+++ b/ACE/ace/FoxReactor/ace_foxreactor.mpc
@@ -0,0 +1,11 @@
+// -*- MPC -*- now wouldn't this be cool...
+// $Id$
+
+project(ACE_FoxReactor) : acedefaults, install, acelib, ace_output, ace_fox {
+ sharedname = ACE_FoxReactor
+ dynamicflags += ACE_FOXREACTOR_BUILD_DLL
+
+ specific {
+ install_dir = ace/FoxReactor
+ }
+}
diff --git a/ACE/ace/Framework_Component.cpp b/ACE/ace/Framework_Component.cpp
index 7c23fd70407..be7af61ecca 100644
--- a/ACE/ace/Framework_Component.cpp
+++ b/ACE/ace/Framework_Component.cpp
@@ -1,4 +1,3 @@
-// Framework_Component.cpp
// $Id$
#include "ace/Framework_Component.h"
@@ -13,8 +12,6 @@
#include "ace/Recursive_Thread_Mutex.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(ace, Framework_Component, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Framework_Component::~ACE_Framework_Component (void)
@@ -60,7 +57,7 @@ int
ACE_Framework_Repository::close (void)
{
ACE_TRACE ("ACE_Framework_Repository::close");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1);
this->shutting_down_ = 1;
@@ -128,7 +125,7 @@ int
ACE_Framework_Repository::register_component (ACE_Framework_Component *fc)
{
ACE_TRACE ("ACE_Framework_Repository::register_component");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1);
int i;
// Check to see if it's already registered
@@ -155,7 +152,7 @@ int
ACE_Framework_Repository::remove_component (const ACE_TCHAR *name)
{
ACE_TRACE ("ACE_Framework_Repository::remove_component");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1);
int i;
for (i = 0; i < this->current_size_; i++)
@@ -178,7 +175,7 @@ ACE_Framework_Repository::remove_dll_components (const ACE_TCHAR *dll_name)
if (this->shutting_down_)
return this->remove_dll_components_i (dll_name);
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1);
return this->remove_dll_components_i (dll_name);
}
diff --git a/ACE/ace/Framework_Component.h b/ACE/ace/Framework_Component.h
index 0541626ad31..e9b7139d299 100644
--- a/ACE/ace/Framework_Component.h
+++ b/ACE/ace/Framework_Component.h
@@ -45,6 +45,8 @@
#include "ace/os_include/os_signal.h"
#include "ace/Thread_Mutex.h"
+#include "ace/Copy_Disabled.h"
+#include "ace/Synch_Traits.h"
#define ACE_DEFAULT_FRAMEWORK_REPOSITORY_SIZE 1024
@@ -56,7 +58,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @brief Base class that defines a uniform interface for all managed
* framework components.
*/
-class ACE_Export ACE_Framework_Component
+class ACE_Export ACE_Framework_Component : private ACE_Copy_Disabled
{
public:
friend class ACE_Framework_Repository;
@@ -74,11 +76,6 @@ protected:
virtual ~ACE_Framework_Component (void);
private:
- // No copy possible
- ACE_Framework_Component (const ACE_Framework_Component &);
- void operator= (const ACE_Framework_Component &);
-
-private:
/// Pointer to the actual component.
const void *this_;
@@ -98,7 +95,7 @@ private:
* destruction, framework components are destroyed in the reverse order
* that they were added originally.
*/
-class ACE_Export ACE_Framework_Repository
+class ACE_Export ACE_Framework_Repository : private ACE_Copy_Disabled
{
public:
// This is just to silence a compiler warning about no public ctors
@@ -166,10 +163,6 @@ private:
/// order.
void compact (void);
- /// Disallow copying and assignment.
- ACE_Framework_Repository (const ACE_Framework_Repository &);
- ACE_Framework_Repository &operator= (const ACE_Framework_Repository &);
-
private:
/// Contains all the framework components.
@@ -190,11 +183,8 @@ private:
/// unload their components, e.g., ACE_DLL_Manager.
static sig_atomic_t shutting_down_;
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- /// Synchronization variable for the MT_SAFE Repository
- ACE_Thread_Mutex lock_;
-#endif /* ACE_MT_SAFE */
-
+ /// Synchronization variable for the repository
+ ACE_SYNCH_MUTEX lock_;
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Framework_Component.inl b/ACE/ace/Framework_Component.inl
index 2c3c2130a53..0d3384fcaa1 100644
--- a/ACE/ace/Framework_Component.inl
+++ b/ACE/ace/Framework_Component.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
#include "ace/ACE.h"
@@ -24,7 +23,7 @@ ACE_INLINE int
ACE_Framework_Repository::current_size (void) const
{
ACE_TRACE ("ACE_Framework_Repository::current_size");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->lock_, -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, const_cast <ACE_SYNCH_MUTEX&>(this->lock_), -1);
return this->current_size_;
}
@@ -32,7 +31,7 @@ ACE_INLINE int
ACE_Framework_Repository::total_size (void) const
{
ACE_TRACE ("ACE_Framework_Repository::total_size");
- ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->lock_, -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, const_cast <ACE_SYNCH_MUTEX&>(this->lock_), -1);
return this->total_size_;
}
diff --git a/ACE/ace/Framework_Component_T.h b/ACE/ace/Framework_Component_T.h
index 4dacfe77dd9..27274e2673d 100644
--- a/ACE/ace/Framework_Component_T.h
+++ b/ACE/ace/Framework_Component_T.h
@@ -52,9 +52,9 @@ public:
ACE_END_VERSIONED_NAMESPACE_DECL
-// This macro should be called in the instance() method
-// of the Concrete class that will be managed. Along
-// with the appropriate template instantiation.
+/// This macro should be called in the instance() method
+/// of the Concrete class that will be managed. Along
+/// with the appropriate template instantiation.
#define ACE_REGISTER_FRAMEWORK_COMPONENT(CLASS, INSTANCE) \
ACE_Framework_Repository::instance ()->register_component \
(new ACE_Framework_Component_T<CLASS> (INSTANCE));
diff --git a/ACE/ace/Free_List.h b/ACE/ace/Free_List.h
index 78c6042512c..bbfe7b12cb9 100644
--- a/ACE/ace/Free_List.h
+++ b/ACE/ace/Free_List.h
@@ -61,7 +61,7 @@ public:
* @brief Implements a free list.
*
* This class maintains a free list of nodes of type T. It
- * depends on the type T having a <get_next> and <set_next>
+ * depends on the type T having a get_next() and set_next()
* method. It maintains a mutex so the freelist can be used in
* a multithreaded program .
*/
diff --git a/ACE/ace/Functor.cpp b/ACE/ace/Functor.cpp
index 9fc3b3400c0..f6bd6e0d1a4 100644
--- a/ACE/ace/Functor.cpp
+++ b/ACE/ace/Functor.cpp
@@ -32,7 +32,7 @@
#include "ace/Functor.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Functor, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Functor.h b/ACE/ace/Functor.h
index f303bc09c97..dda37360a9f 100644
--- a/ACE/ace/Functor.h
+++ b/ACE/ace/Functor.h
@@ -89,8 +89,6 @@ template <class TYPE> class ACE_Equal_To;
template <class TYPE> class ACE_Less_Than;
/**
- * @class ACE_Hash<char>
- *
* @brief Function object for hashing a char
*/
template<>
@@ -102,8 +100,6 @@ public:
};
/**
- * @class ACE_Hash<signed char>
- *
* @brief Function object for hashing a signed char
*/
template<>
@@ -115,8 +111,6 @@ public:
};
/**
- * @class ACE_Hash<unsigned char>
- *
* @brief Function object for hashing an unsigned char
*/
template<>
@@ -127,80 +121,7 @@ public:
unsigned long operator () (unsigned char t) const;
};
-#if 0
-// @@ ADD HASHES FOR ACE TYPES
-
-/**
- * @class ACE_Hash<ACE_INT16>
- *
- * @brief Function object for hashing a 16-bit signed number
- */
-template<>
-class ACE_Export ACE_Hash<ACE_INT16>
-{
-public:
- /// Simply returns t
- unsigned long operator () (ACE_INT16 t) const;
-};
-
-/**
- * @class ACE_Hash<ACE_UINT16>
- *
- * @brief Function object for hashing a 16-bit unsigned number
- */
-template<>
-class ACE_Export ACE_Hash<ACE_UINT16>
-{
-public:
- /// Simply returns t
- unsigned long operator () (ACE_UINT16 t) const;
-};
-
-/**
- * @class ACE_Hash<ACE_INT32>
- *
- * @brief Function object for hashing a 32-bit signed number
- */
-template<>
-class ACE_Export ACE_Hash<ACE_INT32>
-{
-public:
- /// Simply returns t
- unsigned long operator () (ACE_INT32 t) const;
-};
-
-/**
- * @class ACE_Hash<ACE_UINT32>
- *
- * @brief Function object for hashing a 32-bit unsigned number
- */
-template<>
-class ACE_Export ACE_Hash<ACE_UINT32>
-{
-public:
- /// Simply returns t
- unsigned long operator () (ACE_UINT32 t) const;
-};
-
-/**
- * @class ACE_Hash<ACE_UINT64>
- *
- * @brief Function object for hashing a 64-bit unsigned number
- */
-template<>
-class ACE_Export ACE_Hash<ACE_UINT64>
-{
-public:
- /// Simply returns t
- unsigned long operator () (ACE_UINT64 t) const;
-};
-
-// @@ DONE ADDING HASHES FOR ACE TYPES
-#endif
-
/**
- * @class ACE_Hash<short>
- *
* @brief Function object for hashing a short number
*/
template<>
@@ -212,8 +133,6 @@ public:
};
/**
- * @class ACE_Hash<unsigned short>
- *
* @brief Function object for hashing an unsigned short number
*/
template<>
@@ -225,8 +144,6 @@ public:
};
/**
- * @class ACE_Hash<int>
- *
* @brief Function object for hashing an int number
*/
template<>
@@ -238,8 +155,6 @@ public:
};
/**
- * @class ACE_Hash<unsigned int>
- *
* @brief Function object for hashing an unsigned int number
*/
template<>
@@ -251,8 +166,6 @@ public:
};
/**
- * @class ACE_Hash<long>
- *
* @brief Function object for hashing a long number
*/
template<>
@@ -264,8 +177,6 @@ public:
};
/**
- * @class ACE_Hash<unsigned long>
- *
* @brief Function object for hashing an unsigned long number
*/
template<>
@@ -278,8 +189,6 @@ public:
#if !defined (ACE_LACKS_LONGLONG_T) && (ACE_SIZEOF_LONG < 8)
/**
- * @class ACE_Hash<ACE_INT64>
- *
* @brief Function object for hashing a signed 64-bit number
*/
template<>
@@ -295,8 +204,6 @@ public:
// emulation for it in ACE_U_LongLong.
#if (ACE_SIZEOF_LONG < 8)
/**
- * @class ACE_Hash<ACE_UINT64>
- *
* @brief Function object for hashing an unsigned 64-bit number
*/
template<>
@@ -309,8 +216,6 @@ public:
#endif /* ACE_SIZEOF_LONG < 8 */
/**
- * @class ACE_Hash<const char *>
- *
* @brief Function object for hashing a const string
*/
template<>
@@ -322,8 +227,6 @@ public:
};
/**
- * @class ACE_Hash<char *>
- *
* @brief Function object for hashing a string
*/
template<>
@@ -335,8 +238,6 @@ public:
};
/**
- * @class ACE_Hash<void *>
- *
* @brief Function object for hashing a void *
*/
template<>
@@ -347,8 +248,6 @@ public:
};
/**
- * @class ACE_Equal_To<const char *>
- *
* @brief Function object for determining whether two const strings are equal.
*/
template<>
@@ -361,8 +260,6 @@ public:
};
/**
- * @class ACE_Equal_To<char *>
- *
* @brief Function object for determining whether two non-const
* strings are equal.
*/
@@ -376,8 +273,6 @@ public:
};
/**
- * @class ACE_Equal_To<ACE_UINT16>
- *
* @brief Function object for determining whether two unsigned
* 16 bit ints are equal.
*/
@@ -391,8 +286,6 @@ public:
};
/**
- * @class ACE_Equal_To<ACE_INT16>
- *
* @brief Function object for determining whether two
* 16 bit ints are equal.
*/
@@ -406,8 +299,6 @@ public:
};
/**
- * @class ACE_Equal_To<ACE_UINT32>
- *
* @brief Function object for determining whether two unsigned
* 32 bit ints are equal.
*/
@@ -421,8 +312,6 @@ public:
};
/**
- * @class ACE_Equal_To<ACE_INT32>
- *
* @brief Function object for determining whether two
* 32 bit ints are equal.
*/
@@ -436,8 +325,6 @@ public:
};
/**
- * @class ACE_Equal_To<ACE_UINT64>
- *
* @brief Function object for determining whether two unsigned
* 64 bit ints are equal.
*/
@@ -451,8 +338,6 @@ public:
};
/**
- * @class ACE_Less_Than<const char*>
- *
* @brief Function object for determining whether the first const string
* is less than the second const string.
*/
@@ -466,8 +351,6 @@ public:
};
/**
- * @class ACE_Less_Than<char *>
- *
* @brief Function object for determining whether the first string
* is less than the second string.
*/
@@ -484,8 +367,6 @@ public:
# if ! defined (ACE_LACKS_NATIVE_WCHAR_T)
/**
- * @class ACE_Hash<wchar_t>
- *
* @brief Function object for hashing a wchar_t
*/
template<>
@@ -497,8 +378,6 @@ public:
};
# endif /* ACE_LACKS_NATIVE_WCHAR_T */
/**
- * @class ACE_Hash<const wchar_t *>
- *
* @brief Function object for hashing a const string
*/
template<>
@@ -510,8 +389,6 @@ public:
};
/**
- * @class ACE_Hash<wchar_t *>
- *
* @brief Function object for hashing a string
*/
template<>
@@ -523,8 +400,6 @@ public:
};
/**
- * @class ACE_Equal_To<const wchar_t *>
- *
* @brief Function object for determining whether two const strings are equal.
*/
template<>
@@ -537,8 +412,6 @@ public:
};
/**
- * @class ACE_Equal_To<wchar_t *>
- *
* @brief Function object for determining whether two non-const
* strings are equal.
*/
@@ -552,8 +425,6 @@ public:
};
/**
- * @class ACE_Less_Than<const wchar_t *>
- *
* @brief Function object for determining whether the first const string
* is less than the second const string.
*/
@@ -567,8 +438,6 @@ public:
};
/**
- * @class ACE_Less_Than<wchar_t *>
- *
* @brief Function object for determining whether the first string
* is less than the second string.
*/
diff --git a/ACE/ace/Functor.inl b/ACE/ace/Functor.inl
index 65da8feec6d..86d0f8f45a6 100644
--- a/ACE/ace/Functor.inl
+++ b/ACE/ace/Functor.inl
@@ -71,42 +71,6 @@ ACE_Hash<unsigned char>::operator () (unsigned char t) const
return t;
}
-#if 0
-ACE_INLINE unsigned long
-ACE_Hash<ACE_INT16>::operator () (ACE_INT16 t) const
-{
- return t;
-}
-
-ACE_INLINE unsigned long
-ACE_Hash<ACE_UINT16>::operator () (ACE_UINT16 t) const
-{
- return t;
-}
-
-ACE_INLINE unsigned long
-ACE_Hash<ACE_INT32>::operator () (ACE_INT32 t) const
-{
- return static_cast<unsigned long> (t);
-}
-
-ACE_INLINE unsigned long
-ACE_Hash<ACE_UINT32>::operator () (ACE_UINT32 t) const
-{
- return t;
-}
-
-ACE_INLINE unsigned long
-ACE_Hash<ACE_UINT64>::operator () (ACE_UINT64 t) const
-{
-#if (ACE_SIZEOF_LONG == 4)
- return ACE_U64_TO_U32 (t);
-#else
- return static_cast<unsigned long> (t);
-#endif /* ACE_SIZEOF_LONG */
-}
-#endif
-
ACE_INLINE unsigned long
ACE_Hash<short>::operator () (short t) const
{
diff --git a/ACE/ace/Functor_String.cpp b/ACE/ace/Functor_String.cpp
index 5ba0fb8f4eb..54a632c6cf7 100644
--- a/ACE/ace/Functor_String.cpp
+++ b/ACE/ace/Functor_String.cpp
@@ -1,7 +1,9 @@
+// $Id$
+
#include "ace/Functor_String.h"
#if !defined (__ACE_INLINE__)
#include "ace/Functor_String.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Functor, "$Id$")
+
diff --git a/ACE/ace/Functor_String.h b/ACE/ace/Functor_String.h
index 1e742251a98..5a35e68d9d7 100644
--- a/ACE/ace/Functor_String.h
+++ b/ACE/ace/Functor_String.h
@@ -25,6 +25,7 @@
#include /**/ "ace/ACE_export.h"
#include "ace/SStringfwd.h"
+#include <string>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -40,8 +41,6 @@ template <class TYPE> class ACE_Equal_To;
template <class TYPE> class ACE_Less_Than;
/**
- * @class ACE_Equal_To<ACE_CString>
- *
* @brief Function object for determining whether two ACE_CStrings are
* equal.
*/
@@ -55,8 +54,6 @@ public:
/**
- * @class ACE_Hash<ACE_CString>
- *
* @brief Function object for hashing a ACE_CString
*/
template<>
@@ -69,8 +66,6 @@ public:
/**
- * @class ACE_Less_Than<ACE_CString>
- *
* @brief Function object for determining whether the first const string
* is less than the second const string.
*/
@@ -83,13 +78,49 @@ public:
const ACE_CString &rhs) const;
};
+/**
+ * @brief Function object for determining whether two std::strings are
+ * equal.
+ */
+template<>
+class ACE_Export ACE_Equal_To<std::string>
+{
+public:
+ int operator () (const std::string &lhs,
+ const std::string &rhs) const;
+};
+
+
+/**
+ * @brief Function object for hashing a std::string
+ */
+template<>
+class ACE_Export ACE_Hash<std::string>
+{
+public:
+ /// Calls ACE::hash_pjw
+ unsigned long operator () (const std::string &lhs) const;
+};
+
+
+/**
+ * @brief Function object for determining whether the first const string
+ * is less than the second const string.
+ */
+template<>
+class ACE_Export ACE_Less_Than<std::string>
+{
+public:
+ /// Simply calls std::string::compare
+ int operator () (const std::string &lhs,
+ const std::string &rhs) const;
+};
+
#if defined (ACE_USES_WCHAR)
/**
- * @class ACE_Equal_To<ACE_WString>
- *
- * @brief Function object for determining whether two ACE_CStrings are
+ * @brief Function object for determining whether two ACE_WStrings are
* equal.
*/
template<>
@@ -102,8 +133,6 @@ public:
/**
- * @class ACE_Hash<ACE_WString>
- *
* @brief Function object for hashing a ACE_WString
*/
template<>
@@ -115,10 +144,8 @@ public:
};
/**
- * @class ACE_Less_Than<ACE_WString>
- *
- * @brief Function object for determining whether the first const string
- * is less than the second const string.
+ * @brief Function object for determining whether the first const wstring
+ * is less than the second const wstring.
*/
template<>
class ACE_Export ACE_Less_Than<ACE_WString>
diff --git a/ACE/ace/Functor_String.inl b/ACE/ace/Functor_String.inl
index 82e8775a718..34eedd8613d 100644
--- a/ACE/ace/Functor_String.inl
+++ b/ACE/ace/Functor_String.inl
@@ -28,6 +28,26 @@ ACE_Less_Than<ACE_CString>::operator () (const ACE_CString &lhs,
return (lhs < rhs);
}
+ACE_INLINE unsigned long
+ACE_Hash<std::string>::operator () (const std::string &t) const
+{
+ return ACE::hash_pjw (t.c_str (), t.length ());
+}
+
+
+ACE_INLINE int
+ACE_Equal_To<std::string>::operator () (const std::string &lhs,
+ const std::string &rhs) const
+{
+ return lhs == rhs;
+}
+
+ACE_INLINE int
+ACE_Less_Than<std::string>::operator () (const std::string &lhs,
+ const std::string &rhs) const
+{
+ return (lhs < rhs);
+}
#if defined (ACE_USES_WCHAR)
ACE_INLINE unsigned long
diff --git a/ACE/ace/Functor_T.h b/ACE/ace/Functor_T.h
index 554820e3c0b..53c06261acd 100644
--- a/ACE/ace/Functor_T.h
+++ b/ACE/ace/Functor_T.h
@@ -47,7 +47,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_Command_Callback
*
- * @brief Defines a class template that allows us to invoke a GOF
+ * @brief
+ * Defines a class template that allows us to invoke a GOF
* command style callback to an object without knowing anything
* about the object except its type.
*
@@ -60,14 +61,14 @@ template <class RECEIVER, class ACTION>
class ACE_Command_Callback : public ACE_Command_Base
{
public:
- /// Constructor: sets the <receiver_> of the Command to recvr, and the
- /// <action_> of the Command to <action>.
+ /// Constructor: sets the @c receiver_ of the Command to @a recvr, and the
+ /// @c action_ of the Command to @a action.
ACE_Command_Callback (RECEIVER &recvr, ACTION action);
/// Virtual destructor.
virtual ~ACE_Command_Callback (void);
- /// Invokes the method <action_> from the object <receiver_>.
+ /// Invokes the method @c action_ from the object @c receiver_.
virtual int execute (void *arg = 0);
private:
@@ -98,7 +99,8 @@ public:
/**
* @class ACE_Pointer_Hash
*
- * @brief Function object for hashing pointers
+ * @brief
+ * Function object for hashing pointers
*/
template <class TYPE>
class ACE_Pointer_Hash
@@ -111,7 +113,8 @@ public:
/**
* @class ACE_Equal_To
*
- * @brief Function object for comparing two objects of
+ * @brief
+ * Function object for comparing two objects of
* the given type for equality.
*/
template <class TYPE>
@@ -126,7 +129,8 @@ public:
/**
* @class ACE_Less_Than
*
- * @brief Function object for determining whether the first object of
+ * @brief
+ * Function object for determining whether the first object of
* the given type is less than the second object of the same
* type.
*/
diff --git a/ACE/ace/Future.cpp b/ACE/ace/Future.cpp
index 9945827c09c..88ad62502e1 100644
--- a/ACE/ace/Future.cpp
+++ b/ACE/ace/Future.cpp
@@ -9,8 +9,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-ACE_RCSID (ace, Future, "$Id$")
-
#if defined (ACE_HAS_THREADS)
# include "ace/Guard_T.h"
@@ -100,7 +98,7 @@ ACE_Future_Rep<T>::attach (ACE_Future_Rep<T>*& rep)
{
ACE_ASSERT (rep != 0);
// Use value_ready_mutex_ for both condition and ref count management
- ACE_MT (ACE_Guard<ACE_Recursive_Thread_Mutex> r_mon (rep->value_ready_mutex_));
+// ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, r_mon, rep->value_ready_mutex_, 0);
++rep->ref_count_;
return rep;
}
@@ -110,7 +108,7 @@ ACE_Future_Rep<T>::detach (ACE_Future_Rep<T>*& rep)
{
ACE_ASSERT (rep != 0);
// Use value_ready_mutex_ for both condition and ref count management
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, r_mon, rep->value_ready_mutex_));
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, r_mon, rep->value_ready_mutex_);
if (rep->ref_count_-- == 0)
{
@@ -128,7 +126,7 @@ ACE_Future_Rep<T>::assign (ACE_Future_Rep<T>*& rep, ACE_Future_Rep<T>* new_rep)
ACE_ASSERT (rep != 0);
ACE_ASSERT (new_rep != 0);
// Use value_ready_mutex_ for both condition and ref count management
- ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, r_mon, rep->value_ready_mutex_));
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, r_mon, rep->value_ready_mutex_);
ACE_Future_Rep<T>* old = rep;
rep = new_rep;
@@ -171,10 +169,10 @@ ACE_Future_Rep<T>::set (const T &r,
// If the value is already produced, ignore it...
if (this->value_ == 0)
{
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex,
- ace_mon,
- this->value_ready_mutex_,
- -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX,
+ ace_mon,
+ this->value_ready_mutex_,
+ -1);
// Otherwise, create a new result value. Note the use of the
// Double-checked locking pattern to avoid multiple allocations.
@@ -212,9 +210,9 @@ ACE_Future_Rep<T>::get (T &value,
// If the value is already produced, return it.
if (this->value_ == 0)
{
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- this->value_ready_mutex_,
- -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, ace_mon,
+ this->value_ready_mutex_,
+ -1);
// If the value is not yet defined we must block until the
// producer writes to it.
@@ -234,7 +232,7 @@ template <class T> int
ACE_Future_Rep<T>::attach (ACE_Future_Observer<T> *observer,
ACE_Future<T> &caller)
{
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->value_ready_mutex_, -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, ace_mon, this->value_ready_mutex_, -1);
// Otherwise, create a new result value. Note the use of the
// Double-checked locking pattern to avoid corrupting the list.
@@ -253,7 +251,7 @@ ACE_Future_Rep<T>::attach (ACE_Future_Observer<T> *observer,
template <class T> int
ACE_Future_Rep<T>::detach (ACE_Future_Observer<T> *observer)
{
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->value_ready_mutex_, -1));
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, ace_mon, this->value_ready_mutex_, -1);
// Remove all occurrences of the specified observer from this
// objects hash map.
@@ -267,7 +265,7 @@ ACE_Future_Rep<T>::operator T ()
if (this->value_ == 0)
{
// Constructor of ace_mon acquires the mutex.
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->value_ready_mutex_, 0));
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, ace_mon, this->value_ready_mutex_, 0);
// If the value is not yet defined we must block until the
// producer writes to it.
@@ -328,8 +326,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 +343,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/Future.h b/ACE/ace/Future.h
index c172b0fd9ac..558bcb134fa 100644
--- a/ACE/ace/Future.h
+++ b/ACE/ace/Future.h
@@ -27,6 +27,7 @@
#if defined (ACE_HAS_THREADS)
+#include "ace/Synch_Traits.h"
#include "ace/Recursive_Thread_Mutex.h"
#include "ace/Condition_Recursive_Thread_Mutex.h"
@@ -107,7 +108,7 @@ private:
friend class ACE_Future<T>;
/**
- * Set the result value. The specified <caller> represents the
+ * Set the result value. The specified @a caller represents the
* future that invoked this <set> method, which is used to notify
* the list of future observers. Returns 0 for success, -1 on error.
* This function only has an effect the first time it is called for
@@ -214,8 +215,8 @@ private:
OBSERVER_COLLECTION observer_collection_;
// = Condition variable and mutex that protect the <value_>.
- mutable ACE_Recursive_Thread_Mutex value_ready_mutex_;
- mutable ACE_Condition_Recursive_Thread_Mutex value_ready_;
+ mutable ACE_SYNCH_RECURSIVE_MUTEX value_ready_mutex_;
+ mutable ACE_SYNCH_RECURSIVE_CONDITION value_ready_;
private:
@@ -303,8 +304,7 @@ public:
* @retval 0 Success; @a value contains the value of the ACE_Future.
* @retval -1 Error; check ACE_OS::last_error() for an error code.
*/
- int get (T &value,
- ACE_Time_Value *tv = 0) const;
+ int get (T &value, ACE_Time_Value *tv = 0) const;
/**
* @deprecated Note that this method is going away in a subsequent
@@ -364,7 +364,7 @@ public:
private:
- // the ACE_Future_Rep
+ /// The ACE_Future_Rep
/// Protect operations on the <Future>.
typedef ACE_Future_Rep<T> FUTURE_REP;
FUTURE_REP *future_rep_;
diff --git a/ACE/ace/Future_Set.cpp b/ACE/ace/Future_Set.cpp
index 3d04fe9ed5d..9baf208e79c 100644
--- a/ACE/ace/Future_Set.cpp
+++ b/ACE/ace/Future_Set.cpp
@@ -71,7 +71,7 @@ ACE_Future_Set<T>::insert (ACE_Future<T> &future)
// If a new map entry was created, then attach to the future,
// otherwise we were already attached to the future or some error
// occurred so just delete the future holder.
- if ( result == 0 )
+ if (result == 0)
// Attach ourself to the ACE_Futures list of observer
future.attach (this);
else
@@ -83,7 +83,7 @@ ACE_Future_Set<T>::insert (ACE_Future<T> &future)
template <class T> void
ACE_Future_Set<T>::update (const ACE_Future<T> &future)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
FUTURE &local_future = const_cast<ACE_Future<T> &> (future);
ACE_NEW (mb,
@@ -117,7 +117,7 @@ ACE_Future_Set<T>::next_readable (ACE_Future<T> &future,
return 0;
// Remove the hash map entry with the specified future rep from our map.
- FUTURE_HOLDER *future_holder;
+ FUTURE_HOLDER *future_holder = 0;
if (this->future_map_.find (future_rep,
future_holder) != -1)
{
diff --git a/ACE/ace/Future_Set.h b/ACE/ace/Future_Set.h
index 6e804248021..aec779f7ead 100644
--- a/ACE/ace/Future_Set.h
+++ b/ACE/ace/Future_Set.h
@@ -31,17 +31,18 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_Future_Set
*
- * @brief This class implements a mechanism which allows the values of
+ * @brief This class implements a mechanism that allows the values of
* a collection of ACE_Future objects to be accessed by reader threads
* as they become available. The caller(s) provide the ACE_Future_Set
* (i.e. the observer...) with the collection of ACE_Future objects
- * (i.e. the subjects...) that are to be observed using the
- * the ACE_Future_Set::insert() method. The caller(s) may then iterate
- * over the collection in the order in which they become readable using
- * the ACE_Future_Set::next_readable() method.
+ * (i.e. the subjects...) that are to be observed using the the
+ * ACE_Future_Set::insert() method. The caller(s) may then iterate
+ * over the collection in the order in which they become readable
+ * using the ACE_Future_Set::next_readable() method.
*/
template <class T>
-class ACE_Future_Set : public ACE_Future_Observer<T>
+class ACE_Future_Set : public ACE_Future_Observer<T>,
+ private ACE_Copy_Disabled
{
public:
// = Initialization and termination methods.
@@ -99,10 +100,6 @@ public:
ACE_ALLOC_HOOK_DECLARE;
private:
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Future_Set<T> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Future_Set (const ACE_Future_Set<T> &))
-
typedef ACE_Future<T> FUTURE;
typedef ACE_Future_Rep<T> FUTURE_REP;
diff --git a/ACE/ace/Get_Opt.cpp b/ACE/ace/Get_Opt.cpp
index 6c354287a4d..b70e3d18248 100644
--- a/ACE/ace/Get_Opt.cpp
+++ b/ACE/ace/Get_Opt.cpp
@@ -14,10 +14,6 @@
#include "ace/OS_NS_ctype.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID (ace,
- Get_Opt,
- "$Id$")
-
/*
* Copyright (c) 1987, 1993, 1994
* The Regents of the University of California. All rights reserved.
diff --git a/ACE/ace/Get_Opt.h b/ACE/ace/Get_Opt.h
index 5c8e9c62888..bb6636b02fd 100644
--- a/ACE/ace/Get_Opt.h
+++ b/ACE/ace/Get_Opt.h
@@ -182,14 +182,14 @@ public:
private:
void ACE_Get_Opt_Init (const ACE_TCHAR *optstring);
public:
- ACE_INLINE ACE_Get_Opt (int argc,
+ ACE_Get_Opt (int argc,
ACE_TCHAR **argv,
const ACE_TCHAR *optstring = ACE_TEXT (""),
int skip_args = 1,
int report_errors = 0,
int ordering = PERMUTE_ARGS,
int long_only = 0);
- ACE_INLINE ACE_Get_Opt (int argc,
+ ACE_Get_Opt (int argc,
ACE_TCHAR **argv,
const char *optstring,
int skip_args = 1,
diff --git a/ACE/ace/Get_Opt.inl b/ACE/ace/Get_Opt.inl
index f4d95eba486..a022770b70e 100644
--- a/ACE/ace/Get_Opt.inl
+++ b/ACE/ace/Get_Opt.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Global_Macros.h b/ACE/ace/Global_Macros.h
index 458c909a9ff..5d11f24ae0a 100644
--- a/ACE/ace/Global_Macros.h
+++ b/ACE/ace/Global_Macros.h
@@ -104,90 +104,92 @@ ACE_END_VERSIONED_NAMESPACE_DECL
# define ACE_UNIMPLEMENTED_FUNC(f) f;
# endif /* ACE_NEEDS_FUNC_DEFINITIONS */
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
- // Easy way to designate that a class is used as a pseudo-namespace.
- // Insures that g++ "friendship" anamolies are properly handled.
- # define ACE_CLASS_IS_NAMESPACE(CLASSNAME) \
- private: \
- CLASSNAME (void); \
- CLASSNAME (const CLASSNAME&); \
- friend class ace_dewarn_gplusplus
-#endif /* ACE_LACKS_DEPRECATED_MACROS */
-
-// ----------------------------------------------------------------
-
-//FUZZ: disable check_for_exception_sepc
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
- #if defined (ACE_HAS_NO_THROW_SPEC)
- # define ACE_THROW_SPEC(X)
- #else
- # if defined (ACE_HAS_EXCEPTIONS)
- # if defined (ACE_WIN32) && defined (_MSC_VER) && \
- (_MSC_VER >= 1400) && (_MSC_VER <= 1500)
- # define ACE_THROW_SPEC(X) throw(...)
- # else
- # define ACE_THROW_SPEC(X) throw X
- # endif /* ACE_WIN32 && VC8 */
- # else /* ! ACE_HAS_EXCEPTIONS */
- # define ACE_THROW_SPEC(X)
- # endif /* ! ACE_HAS_EXCEPTIONS */
- #endif /*ACE_HAS_NO_THROW_SPEC*/
-#endif /* ACE_LACKS_DEPRECATED_MACROS */
-//FUZZ: enable check_for_exception_sepc
-
// ----------------------------------------------------------------
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
- /**
- * This macro is deprecated
- */
- #define ACE_NESTED_CLASS(TYPE, NAME) TYPE::NAME
-#endif /* ACE_LACKS_DEPRECATED_MACROS */
-
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
- /**
- * @name CORBA namespace macros.
- *
- * CORBA namespace macros.
- *
- * @deprecated These macros were formerly used by TAO but are now
- * deprecated, and only remain to retain some backward
- * compatibility. They will be removed in a future ACE
- * release.
- */
- //@{
- #define ACE_CORBA_1(NAME) CORBA::NAME
- #define ACE_CORBA_2(TYPE, NAME) CORBA::TYPE::NAME
- #define ACE_CORBA_3(TYPE, NAME) CORBA::TYPE::NAME
- //@}
-#endif /* ACE_LACKS_DEPRECATED_MACROS */
-
-// ----------------------------------------------------------------
+// FUZZ: disable check_for_ACE_Guard
// Convenient macro for testing for deadlock, as well as for detecting
// when mutexes fail.
+/* @warning
+ * Use of ACE_GUARD() is rarely correct. ACE_GUARD() causes the current
+ * function to return if the lock is not acquired. Since merely returning
+ * (no value) almost certainly fails to handle the acquisition failure
+ * and almost certainly fails to communicate the failure to the caller
+ * for the caller to handle, ACE_GUARD() is almost always the wrong
+ * thing to do. The same goes for ACE_WRITE_GUARD() and ACE_READ_GUARD() .
+ * ACE_GUARD_REACTION() is better because it lets you specify error
+ * handling code.
+ */
+#if !defined (ACE_GUARD_ACTION)
#define ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ACTION, REACTION) \
ACE_Guard< MUTEX > OBJ (LOCK); \
if (OBJ.locked () != 0) { ACTION; } \
else { REACTION; }
+#endif /* !ACE_GUARD_ACTION */
+#if !defined (ACE_GUARD_REACTION)
#define ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, REACTION) \
ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ;, REACTION)
+#endif /* !ACE_GUARD_REACTION */
+#if !defined (ACE_GUARD)
#define ACE_GUARD(MUTEX, OBJ, LOCK) \
ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, return)
+#endif /* !ACE_GUARD */
+#if !defined (ACE_GUARD_RETURN)
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN) \
ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, return RETURN)
+#endif /* !ACE_GUARD_RETURN */
+#if !defined (ACE_WRITE_GUARD)
# define ACE_WRITE_GUARD(MUTEX,OBJ,LOCK) \
ACE_Write_Guard< MUTEX > OBJ (LOCK); \
if (OBJ.locked () == 0) return;
+#endif /* !ACE_WRITE_GUARD */
+#if !defined (ACE_WRITE_GUARD_RETURN)
# define ACE_WRITE_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \
ACE_Write_Guard< MUTEX > OBJ (LOCK); \
if (OBJ.locked () == 0) return RETURN;
+#endif /* ACE_WRITE_GUARD_RETURN */
+#if !defined (ACE_READ_GUARD)
# define ACE_READ_GUARD(MUTEX,OBJ,LOCK) \
ACE_Read_Guard< MUTEX > OBJ (LOCK); \
if (OBJ.locked () == 0) return;
+#endif /* !ACE_READ_GUARD */
+#if !defined (ACE_READ_GUARD_RETURN)
# define ACE_READ_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \
ACE_Read_Guard< MUTEX > OBJ (LOCK); \
if (OBJ.locked () == 0) return RETURN;
+#endif /* !ACE_READ_GUARD_RETURN */
+// FUZZ: enable check_for_ACE_Guard
+
+// ----------------------------------------------------------------
+
+#if defined(ACE_UNEXPECTED_RETURNS)
+
+/* Using ACE_UNEXPECTED_RETURNS is ill-advised because, in many cases,
+ * it fails to inform callers of the error condition.
+ * It exists mainly to provide back-compatibility with old, dangerous,
+ * incorrect behavior.
+ * Code that previously used ACE_GUARD() or ACE_GUARD_RETURN() to return
+ * upon failure to acquire a lock can now use:
+ * ACE_GUARD_REACTION(..., ACE_UNEXPECTED(...))
+ * The behavior of this depends on whether or not ACE_UNEXPECTED_RETURNS
+ * is defined. If so, it just returns upon failure (as in the original),
+ * which is usually dangerous because it usually fails to handle the
+ * error. If not, it calls std::unexpected(), which does whatever the
+ * std::unexpected handler does (which is to abort, by default).
+ */
+# define ACE_UNEXPECTED(RETVAL) \
+ do { \
+ return RETVAL; \
+ } while (0)
+
+#else
+
+# define ACE_UNEXPECTED(RETVAL) \
+ do { \
+ std::unexpected(); \
+ } while (0)
+
+#endif
// ----------------------------------------------------------------
@@ -925,15 +927,6 @@ ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (AC
# define ACE_SEH_FINALLY if (1)
#endif /* ACE_WIN32 */
-// These should probably be put into a seperate header.
-
-// The following is necessary since many C++ compilers don't support
-// typedef'd types inside of classes used as formal template
-// arguments... ;-(. Luckily, using the C++ preprocessor I can hide
-// most of this nastiness!
-
-# if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
// Handle ACE_Message_Queue.
# define ACE_SYNCH_DECL class _ACE_SYNCH
# define ACE_SYNCH_USE _ACE_SYNCH
@@ -1004,10 +997,6 @@ ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (AC
# define ACE_UPIPE_CONNECTOR ACE_UPIPE_Connector
# define ACE_UPIPE_STREAM ACE_UPIPE_Stream
-// Handle ACE_FILE_*
-# define ACE_FILE_CONNECTOR ACE_FILE_Connector
-# define ACE_FILE_STREAM ACE_FILE_IO
-
// Handle ACE_*_Memory_Pool.
# define ACE_MMAP_MEMORY_POOL ACE_MMAP_Memory_Pool
# define ACE_LITE_MMAP_MEMORY_POOL ACE_Lite_MMAP_Memory_Pool
@@ -1016,96 +1005,6 @@ ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (AC
# define ACE_LOCAL_MEMORY_POOL ACE_Local_Memory_Pool
# define ACE_PAGEFILE_MEMORY_POOL ACE_Pagefile_Memory_Pool
-# else /* TEMPLATES are broken in some form or another (i.e., most C++ compilers) */
-
-// Handle ACE_Message_Queue.
-# if defined (ACE_HAS_OPTIMIZED_MESSAGE_QUEUE)
-# define ACE_SYNCH_DECL class _ACE_SYNCH_MUTEX_T, class _ACE_SYNCH_CONDITION_T, class _ACE_SYNCH_SEMAPHORE_T
-# define ACE_SYNCH_USE _ACE_SYNCH_MUTEX_T, _ACE_SYNCH_CONDITION_T, _ACE_SYNCH_SEMAPHORE_T
-# else
-# define ACE_SYNCH_DECL class _ACE_SYNCH_MUTEX_T, class _ACE_SYNCH_CONDITION_T
-# define ACE_SYNCH_USE _ACE_SYNCH_MUTEX_T, _ACE_SYNCH_CONDITION_T
-# endif /* ACE_HAS_OPTIMIZED_MESSAGE_QUEUE */
-# define ACE_SYNCH_MUTEX_T _ACE_SYNCH_MUTEX_T
-# define ACE_SYNCH_CONDITION_T _ACE_SYNCH_CONDITION_T
-# define ACE_SYNCH_SEMAPHORE_T _ACE_SYNCH_SEMAPHORE_T
-
-// Handle ACE_Malloc*
-# define ACE_MEM_POOL_1 class _ACE_MEM_POOL, class _ACE_MEM_POOL_OPTIONS
-# define ACE_MEM_POOL_2 _ACE_MEM_POOL, _ACE_MEM_POOL_OPTIONS
-# define ACE_MEM_POOL _ACE_MEM_POOL
-# define ACE_MEM_POOL_OPTIONS _ACE_MEM_POOL_OPTIONS
-
-// Handle ACE_Svc_Handler
-# define ACE_PEER_STREAM_1 class _ACE_PEER_STREAM, class _ACE_PEER_ADDR
-# define ACE_PEER_STREAM_2 _ACE_PEER_STREAM, _ACE_PEER_ADDR
-# define ACE_PEER_STREAM _ACE_PEER_STREAM
-# define ACE_PEER_STREAM_ADDR _ACE_PEER_ADDR
-
-// Handle ACE_Acceptor
-# define ACE_PEER_ACCEPTOR_1 class _ACE_PEER_ACCEPTOR, class _ACE_PEER_ADDR
-# define ACE_PEER_ACCEPTOR_2 _ACE_PEER_ACCEPTOR, _ACE_PEER_ADDR
-# define ACE_PEER_ACCEPTOR _ACE_PEER_ACCEPTOR
-# define ACE_PEER_ACCEPTOR_ADDR _ACE_PEER_ADDR
-
-// Handle ACE_Connector
-# define ACE_PEER_CONNECTOR_1 class _ACE_PEER_CONNECTOR, class _ACE_PEER_ADDR
-# define ACE_PEER_CONNECTOR_2 _ACE_PEER_CONNECTOR, _ACE_PEER_ADDR
-# define ACE_PEER_CONNECTOR _ACE_PEER_CONNECTOR
-# define ACE_PEER_CONNECTOR_ADDR _ACE_PEER_ADDR
-# define ACE_PEER_CONNECTOR_ADDR_ANY ACE_PEER_CONNECTOR_ADDR::sap_any
-
-// Handle ACE_SOCK_*
-# define ACE_SOCK_ACCEPTOR ACE_SOCK_Acceptor, ACE_INET_Addr
-# define ACE_SOCK_CONNECTOR ACE_SOCK_Connector, ACE_INET_Addr
-# define ACE_SOCK_STREAM ACE_SOCK_Stream, ACE_INET_Addr
-# define ACE_SOCK_DGRAM ACE_SOCK_Dgram, ACE_INET_Addr
-# define ACE_SOCK_DGRAM_BCAST ACE_SOCK_Dgram_Bcast, ACE_INET_Addr
-# define ACE_SOCK_DGRAM_MCAST ACE_SOCK_Dgram_Mcast, ACE_INET_Addr
-
-// Handle ACE_SOCK_SEQPACK_*
-# define ACE_SOCK_SEQPACK_ACCEPTOR ACE_SOCK_SEQPACK_Acceptor, ACE_Multihomed_INET_Addr
-# define ACE_SOCK_SEQPACK_CONNECTOR ACE_SOCK_SEQPACK_Connector, ACE_Multihomed_INET_Addr
-# define ACE_SOCK_SEQPACK_ASSOCIATION ACE_SOCK_SEQPACK_Association, ACE_Multihomed_INET_Addr
-
-// Handle ACE_MEM_*
-# define ACE_MEM_ACCEPTOR ACE_MEM_Acceptor, ACE_MEM_Addr
-# define ACE_MEM_CONNECTOR ACE_MEM_Connector, ACE_INET_Addr
-# define ACE_MEM_STREAM ACE_MEM_Stream, ACE_INET_Addr
-
-// Handle ACE_LSOCK_*
-# define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor, ACE_UNIX_Addr
-# define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector, ACE_UNIX_Addr
-# define ACE_LSOCK_STREAM ACE_LSOCK_Stream, ACE_UNIX_Addr
-
-// Handle ACE_TLI_*
-# define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor, ACE_INET_Addr
-# define ACE_TLI_CONNECTOR ACE_TLI_Connector, ACE_INET_Addr
-# define ACE_TLI_STREAM ACE_TLI_Stream, ACE_INET_Addr
-
-// Handle ACE_SPIPE_*
-# define ACE_SPIPE_ACCEPTOR ACE_SPIPE_Acceptor, ACE_SPIPE_Addr
-# define ACE_SPIPE_CONNECTOR ACE_SPIPE_Connector, ACE_SPIPE_Addr
-# define ACE_SPIPE_STREAM ACE_SPIPE_Stream, ACE_SPIPE_Addr
-
-// Handle ACE_UPIPE_*
-# define ACE_UPIPE_ACCEPTOR ACE_UPIPE_Acceptor, ACE_SPIPE_Addr
-# define ACE_UPIPE_CONNECTOR ACE_UPIPE_Connector, ACE_SPIPE_Addr
-# define ACE_UPIPE_STREAM ACE_UPIPE_Stream, ACE_SPIPE_Addr
-
-// Handle ACE_FILE_*
-# define ACE_FILE_CONNECTOR ACE_FILE_Connector, ACE_FILE_Addr
-# define ACE_FILE_STREAM ACE_FILE_IO, ACE_FILE_Addr
-
-// Handle ACE_*_Memory_Pool.
-# define ACE_MMAP_MEMORY_POOL ACE_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options
-# define ACE_LITE_MMAP_MEMORY_POOL ACE_Lite_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options
-# define ACE_SBRK_MEMORY_POOL ACE_Sbrk_Memory_Pool, ACE_Sbrk_Memory_Pool_Options
-# define ACE_SHARED_MEMORY_POOL ACE_Shared_Memory_Pool, ACE_Shared_Memory_Pool_Options
-# define ACE_LOCAL_MEMORY_POOL ACE_Local_Memory_Pool, ACE_Local_Memory_Pool_Options
-# define ACE_PAGEFILE_MEMORY_POOL ACE_Pagefile_Memory_Pool, ACE_Pagefile_Memory_Pool_Options
-# endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
// Work around compilers that don't like in-class static integral
// constants. Constants in this case are meant to be compile-time
// constants so that they may be used as template arguments, for
diff --git a/ACE/ace/Guard_T.cpp b/ACE/ace/Guard_T.cpp
index d9c72e30be1..cabdf3c0d37 100644
--- a/ACE/ace/Guard_T.cpp
+++ b/ACE/ace/Guard_T.cpp
@@ -3,6 +3,7 @@
#ifndef ACE_GUARD_T_CPP
#define ACE_GUARD_T_CPP
+// FUZZ: disable check_for_ACE_Guard
#include "ace/Guard_T.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
diff --git a/ACE/ace/Guard_T.h b/ACE/ace/Guard_T.h
index 1780f8fd1bf..cc46950251b 100644
--- a/ACE/ace/Guard_T.h
+++ b/ACE/ace/Guard_T.h
@@ -25,18 +25,43 @@
#include "ace/Global_Macros.h"
#include "ace/OS_NS_Thread.h"
+// FUZZ: disable check_for_ACE_Guard
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_Guard
*
* @brief This data structure is meant to be used within a method or
- * function... It performs automatic aquisition and release of
+ * function... It performs automatic acquisition and release of
* a parameterized synchronization object ACE_LOCK.
*
- * The <ACE_LOCK> class given as an actual parameter must provide at
- * the very least the <acquire>, <tryacquire>, <release>, and
- * <remove> methods.
+ * The ACE_LOCK class given as an actual parameter must provide, at
+ * the very least the acquire(), tryacquire(), release(), and
+ * remove() methods.
+ *
+ * @warning A successfully constructed ACE_Guard does NOT mean that the
+ * lock was acquired! It is the caller's responsibility, after
+ * constructing an ACE_Guard, to check whether the lock was successfully
+ * acquired. Code like this is dangerous:
+ * {
+ * ACE_Guard<ACE_Lock> g(lock);
+ * ... perform critical operation requiring lock to be held ...
+ * }
+ * Instead, one must do something like this:
+ * {
+ * ACE_Guard<ACE_Lock> g(lock);
+ * if (! g.locked())
+ * {
+ * ... handle error ...
+ * }
+ * else
+ * {
+ * ... perform critical operation requiring lock to be held ...
+ * }
+ * }
+ * The ACE_GUARD_RETURN() and ACE_GUARD_REACTION() macros are designed to
+ * to help with this.
*/
template <class ACE_LOCK>
class ACE_Guard
@@ -47,11 +72,11 @@ public:
ACE_Guard (ACE_LOCK &l);
/// Implicitly and automatically acquire (or try to acquire) the
- /// lock. If @a block is non-0 then <acquire> the <ACE_LOCK>, else
- /// <tryacquire> it.
+ /// lock. If @a block is non-0 then acquire() the ACE_LOCK, else
+ /// tryacquire() it.
ACE_Guard (ACE_LOCK &l, bool block);
- /// Initialise the guard without implicitly acquiring the lock. The
+ /// Initialize the guard without implicitly acquiring the lock. The
/// @a become_owner parameter indicates whether the guard should release
/// the lock implicitly on destruction. The @a block parameter is
/// ignored and is used here to disambiguate with the preceding
@@ -114,6 +139,8 @@ private:
* acquires/releases a write lock automatically (naturally, the
* <ACE_LOCK> it is instantiated with must support the appropriate
* API).
+ *
+ * @warning See important "WARNING" in comments at top of ACE_Guard.
*/
template <class ACE_LOCK>
class ACE_Write_Guard : public ACE_Guard<ACE_LOCK>
@@ -158,6 +185,8 @@ public:
* acquires/releases a read lock automatically (naturally, the
* <ACE_LOCK> it is instantiated with must support the appropriate
* API).
+ *
+ * @warning See important "WARNING" in comments at top of ACE_Guard.
*/
template <class ACE_LOCK>
class ACE_Read_Guard : public ACE_Guard<ACE_LOCK>
@@ -214,7 +243,7 @@ public:
* is released even if a thread exits via <thr_exit>!
*/
template <class ACE_LOCK>
-class ACE_TSS_Guard
+class ACE_TSS_Guard : private ACE_Copy_Disabled
{
public:
// = Initialization and termination methods.
@@ -261,9 +290,9 @@ protected:
ACE_thread_key_t key_;
private:
- // = Prevent assignment and initialization.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_TSS_Guard<ACE_LOCK> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_TSS_Guard (const ACE_TSS_Guard<ACE_LOCK> &))
+ // FUZZ: disable check_for_ACE_Guard
+ typedef ACE_Guard<ACE_LOCK> Guard_Type;
+ // FUZZ: enable check_for_ACE_Guard
};
/**
@@ -304,6 +333,11 @@ public:
// ACE_ALLOC_HOOK_DECLARE;
// Declare the dynamic allocation hooks.
+private:
+ // FUZZ: disable check_for_ACE_Guard
+ typedef ACE_Guard<ACE_LOCK> Guard_Type;
+ typedef ACE_Write_Guard<ACE_LOCK> Write_Guard_Type;
+ // FUZZ: enable check_for_ACE_Guard
};
/**
@@ -343,6 +377,11 @@ public:
// ACE_ALLOC_HOOK_DECLARE;
// Declare the dynamic allocation hooks.
+private:
+ // FUZZ: disable check_for_ACE_Guard
+ typedef ACE_Guard<ACE_LOCK> Guard_Type;
+ typedef ACE_Read_Guard<ACE_LOCK> Read_Guard_Type;
+ // FUZZ: enable check_for_ACE_Guard
};
#endif /* !(defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))) */
diff --git a/ACE/ace/Guard_T.inl b/ACE/ace/Guard_T.inl
index e37ac76bb6c..93ff69d9133 100644
--- a/ACE/ace/Guard_T.inl
+++ b/ACE/ace/Guard_T.inl
@@ -1,7 +1,8 @@
// -*- C++ -*-
-//
// $Id$
+// FUZZ: disable check_for_ACE_Guard
+
#include "ace/RW_Thread_Mutex.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Handle_Gobbler.inl b/ACE/ace/Handle_Gobbler.inl
index e44035a7aed..2646da9ed6c 100644
--- a/ACE/ace/Handle_Gobbler.inl
+++ b/ACE/ace/Handle_Gobbler.inl
@@ -6,6 +6,7 @@
// inline, not ACE_INLINE.
// FUZZ: disable check_for_inline
+#include "ace/ACE.h"
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_fcntl.h"
@@ -65,7 +66,7 @@ ACE_Handle_Gobbler::consume_handles (size_t n_handles_to_keep_available)
break;
}
}
- if (handle >= FD_SETSIZE)
+ if (handle >= static_cast<ACE_HANDLE>(FD_SETSIZE))
break;
this->handle_set_.set_bit (handle);
}
diff --git a/ACE/ace/Handle_Ops.cpp b/ACE/ace/Handle_Ops.cpp
index 2b9db431aef..7705d4c05d5 100644
--- a/ACE/ace/Handle_Ops.cpp
+++ b/ACE/ace/Handle_Ops.cpp
@@ -6,10 +6,6 @@
#include "ace/OS_NS_fcntl.h"
#include "ace/Time_Value.h"
-ACE_RCSID (ace,
- Handle_Ops,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Handle_Set.cpp b/ACE/ace/Handle_Set.cpp
index 6bf09c355ee..9544a2bc535 100644
--- a/ACE/ace/Handle_Set.cpp
+++ b/ACE/ace/Handle_Set.cpp
@@ -9,8 +9,6 @@
#include "ace/OS_NS_string.h"
-ACE_RCSID(ace, Handle_Set, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Handle_Set)
diff --git a/ACE/ace/Handle_Set.h b/ACE/ace/Handle_Set.h
index 2d020fb572a..9e65f51320e 100644
--- a/ACE/ace/Handle_Set.h
+++ b/ACE/ace/Handle_Set.h
@@ -58,7 +58,6 @@ public:
MAXSIZE = ACE_DEFAULT_SELECT_REACTOR_SIZE
};
- // = Initialization methods.
/// Constructor, initializes the bitmask to all 0s.
ACE_Handle_Set (void);
@@ -196,10 +195,10 @@ public:
ACE_ALLOC_HOOK_DECLARE;
private:
- /// The <Handle_Set> we are iterating through.
+ /// The Handle_Set we are iterating through.
const ACE_Handle_Set &handles_;
- /// Index of the bit we're examining in the current <word_num_> word.
+ /// Index of the bit we're examining in the current word_num_() word.
#if defined (ACE_WIN32)
u_int handle_index_;
#elif !defined (ACE_HAS_BIG_FD_SET)
diff --git a/ACE/ace/Handle_Set.inl b/ACE/ace/Handle_Set.inl
index a4b1fccaebb..660c5abd18c 100644
--- a/ACE/ace/Handle_Set.inl
+++ b/ACE/ace/Handle_Set.inl
@@ -4,18 +4,6 @@
#include "ace/Log_Msg.h"
-// todo: This should be cleaned up a bit.
-// memset for FD_ZERO on OpenBSD and Solaris w/ gcc 2.95.3
-#include "ace/os_include/os_string.h"
-
-// FreeBSD 4.8-RC? for bzero() used by FD_ZERO
-#include "ace/os_include/os_strings.h"
-
-// IRIX5 defines bzero() in this odd file... used by FD_ZERO
-#if defined (ACE_HAS_BSTRING)
-# include /**/ <bstring.h>
-#endif /* ACE_HAS_BSTRING */
-
// AIX defines bzero() in this odd file... used by FD_ZERO
#if defined (ACE_HAS_STRINGS)
# include "ace/os_include/os_strings.h"
diff --git a/ACE/ace/Hash_Cache_Map_Manager_T.cpp b/ACE/ace/Hash_Cache_Map_Manager_T.cpp
index 86af4960a85..ad00ac797a3 100644
--- a/ACE/ace/Hash_Cache_Map_Manager_T.cpp
+++ b/ACE/ace/Hash_Cache_Map_Manager_T.cpp
@@ -17,11 +17,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Cache_Map_Manager)
-#define ACE_T1 class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES
-
-template <ACE_T1>
-ACE_Hash_Cache_Map_Manager<ACE_T2>::ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
size_t size,
ACE_Allocator *alloc)
: ACE_HCMM_BASE (caching_s,
@@ -30,13 +27,13 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY
{
}
-template <ACE_T1>
-ACE_Hash_Cache_Map_Manager<ACE_T2>::~ACE_Hash_Cache_Map_Manager (void)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::~ACE_Hash_Cache_Map_Manager (void)
{
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::bind (const KEY &key,
const VALUE &value,
CACHE_ENTRY *&entry)
{
@@ -54,7 +51,7 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
{
int result = this->caching_strategy_.notify_bind (bind_result,
- cache_value.second ());
+ cache_value.second);
if (result == -1)
{
@@ -71,8 +68,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
return bind_result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::rebind (const KEY &key,
const VALUE &value,
CACHE_ENTRY *&entry)
{
@@ -109,8 +106,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
return rebind_result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::trybind (const KEY &key,
VALUE &value,
CACHE_ENTRY *&entry)
{
@@ -152,8 +149,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
return trybind_result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key,
CACHE_ENTRY *&entry)
{
// Lookup the key and populate the <value>.
@@ -164,7 +161,7 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
{
int result = this->caching_strategy_.notify_find (find_result,
- entry->int_id_.second ());
+ entry->int_id_.second);
// Unless the find and notification operations go thru, this
// method is not successful.
@@ -178,8 +175,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
return find_result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key,
VALUE &value)
{
CACHE_ENTRY *entry = 0;
@@ -189,14 +186,14 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
if (result != -1)
{
- value = entry->int_id_.first ();
+ value = entry->int_id_.first;
}
return result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key)
{
CACHE_ENTRY *entry = 0;
@@ -204,8 +201,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
entry);
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (CACHE_ENTRY *entry)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::unbind (CACHE_ENTRY *entry)
{
// Remove the entry from the cache.
int unbind_result = this->map_.unbind (entry);
@@ -214,7 +211,7 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (CACHE_ENTRY *entry)
{
int result = this->caching_strategy_.notify_unbind (unbind_result,
- entry->int_id_.second ());
+ entry->int_id_.second);
if (result == -1)
unbind_result = -1;
@@ -226,7 +223,4 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (CACHE_ENTRY *entry)
ACE_END_VERSIONED_NAMESPACE_DECL
-#undef ACE_T1
-#undef ACE_T2
-
#endif /* ACE_HASH_CACHE_MAP_MANAGER_T_CPP */
diff --git a/ACE/ace/Hash_Cache_Map_Manager_T.h b/ACE/ace/Hash_Cache_Map_Manager_T.h
index 66cc3b83b53..da9c68a0235 100644
--- a/ACE/ace/Hash_Cache_Map_Manager_T.h
+++ b/ACE/ace/Hash_Cache_Map_Manager_T.h
@@ -33,15 +33,12 @@ class ACE_Allocator;
#define ACE_CACHE_MAP_MANAGER \
ACE_Cache_Map_Manager<KEY, \
VALUE, \
- ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
- ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
- ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
+ ACE_Hash_Map_Manager_Ex<KEY, std::pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
+ ACE_Hash_Map_Iterator_Ex<KEY, std::pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
+ ACE_Hash_Map_Reverse_Iterator_Ex<KEY, std::pair<VALUE, ATTRIBUTES>, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \
CACHING_STRATEGY, \
ATTRIBUTES>
-// For linkers that cant grok long names.
-#define ACE_Hash_Cache_Map_Manager AHCMM
-
/**
* @class ACE_Hash_Cache_Map_Manager
*
@@ -58,7 +55,7 @@ class ACE_Allocator;
* Hash_Cache_Map_Manager provides extra functionality on top
* of the Cache_Map_Manager.
* No locking mechanism provided since locking at this level
- * isnt efficient. Locking has to be provided by the
+ * isn't efficient. Locking has to be provided by the
* application.
*/
template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
@@ -71,7 +68,7 @@ class ACE_Hash_Cache_Map_Manager : public ACE_CACHE_MAP_MANAGER
* are used by the strategy and is transparent to the user of this
* class.
*/
- typedef ACE_Pair<VALUE, ATTRIBUTES> CACHE_VALUE;
+ typedef std::pair<VALUE, ATTRIBUTES> CACHE_VALUE;
typedef ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex> HASH_MAP;
typedef ACE_Hash_Map_Entry<KEY, CACHE_VALUE> CACHE_ENTRY;
typedef KEY key_type;
@@ -189,7 +186,6 @@ class ACE_Hash_Cache_Map_Manager : public ACE_CACHE_MAP_MANAGER
int unbind (CACHE_ENTRY *entry);
protected:
-
/// Base class.
typedef ACE_CACHE_MAP_MANAGER ACE_HCMM_BASE;
};
diff --git a/ACE/ace/Hash_Cache_Map_Manager_T.inl b/ACE/ace/Hash_Cache_Map_Manager_T.inl
index 0388abd6c6e..ba320285dd4 100644
--- a/ACE/ace/Hash_Cache_Map_Manager_T.inl
+++ b/ACE/ace/Hash_Cache_Map_Manager_T.inl
@@ -1,43 +1,43 @@
// -*- C++ -*-
-//
// $Id$
-#define ACE_T1 class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
- const VALUE &value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::bind (
+ const KEY &key,
+ const VALUE &value)
{
- return ACE_HCMM_BASE::bind (key,
- value);
+ return ACE_HCMM_BASE::bind (key, value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::rebind (
+ const KEY &key,
+ const VALUE &value)
{
- return ACE_HCMM_BASE::rebind (key,
- value);
+ return ACE_HCMM_BASE::rebind (key, value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::rebind (
+ const KEY &key,
+ const VALUE &value,
+ VALUE &old_value)
{
- return ACE_HCMM_BASE::rebind (key,
- value,
- old_value);
+ return ACE_HCMM_BASE::rebind (key, value, old_value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::rebind (
+ const KEY &key,
+ const VALUE &value,
+ KEY &old_key,
+ VALUE &old_value)
{
return ACE_HCMM_BASE::rebind (key,
value,
@@ -45,29 +45,28 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
old_value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
- VALUE &value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::trybind (
+ const KEY &key,
+ VALUE &value)
{
- return ACE_HCMM_BASE::trybind (key,
- value);
+ return ACE_HCMM_BASE::trybind (key, value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::unbind (const KEY &key)
{
return ACE_HCMM_BASE::unbind (key);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::unbind (const KEY &key,
VALUE &value)
{
- return ACE_HCMM_BASE::unbind (key,
- value);
+ return ACE_HCMM_BASE::unbind (key, value);
}
ACE_END_VERSIONED_NAMESPACE_DECL
-
-#undef ACE_T1
-#undef ACE_T2
diff --git a/ACE/ace/Hash_Map_Manager_T.h b/ACE/ace/Hash_Map_Manager_T.h
index aaf0bcdf7c7..5e33720753c 100644
--- a/ACE/ace/Hash_Map_Manager_T.h
+++ b/ACE/ace/Hash_Map_Manager_T.h
@@ -1,4 +1,4 @@
-// -*- C++ -*-
+// // -*- C++ -*-
//=============================================================================
/**
@@ -765,8 +765,8 @@ protected:
* ACE_Hash_Map_Manager_Ex it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * ACE_Guard or ACE_Read_Guard on the ACE_Hash_Map_Manager_Ex's
- * internal lock, which is accessible via its <mutex> method.
+ * ACE_GUARD or ACE_READ_GUARD on the ACE_Hash_Map_Manager_Ex's
+ * internal lock, which is accessible via its mutex() method.
*/
template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
class ACE_Hash_Map_Iterator_Ex : public ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
@@ -835,8 +835,8 @@ public:
* ACE_Hash_Map_Manager_Ex it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * ACE_Guard or ACE_Read_Guard on the ACE_Hash_Map_Manager_Ex's
- * internal lock, which is accessible via its <mutex> method.
+ * ACE_GUARD or ACE_READ_GUARD on the ACE_Hash_Map_Manager_Ex's
+ * internal lock, which is accessible via its mutex() method.
*/
template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
class ACE_Hash_Map_Const_Iterator_Ex : public ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
@@ -894,8 +894,8 @@ public:
* ACE_Hash_Map_Manager_Ex it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * ACE_Guard or ACE_Read_Guard on the ACE_Hash_Map_Manager_Ex's
- * internal lock, which is accessible via its <mutex> method.
+ * ACE_GUARD or ACE_READ_GUARD on the ACE_Hash_Map_Manager_Ex's
+ * internal lock, which is accessible via its mutex() method.
*
* Note that a creation method for this new iterator cannot be added
* to the hash map, since this would require adding explicit template
@@ -979,8 +979,8 @@ protected:
* ACE_Hash_Map_Manager_Ex it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * ACE_Guard or ACE_Read_Guard on the ACE_Hash_Map_Manager_Ex's
- * internal lock, which is accessible via its <mutex> method.
+ * ACE_GUARD or ACE_READ_GUARD on the ACE_Hash_Map_Manager_Ex's
+ * internal lock, which is accessible via its mutex() method.
*/
template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
class ACE_Hash_Map_Reverse_Iterator_Ex : public ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
@@ -1036,7 +1036,7 @@ public:
* ACE_Hash_Map_Manager_Ex it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * ACE_Guard or ACE_Read_Guard on the ACE_Hash_Map_Manager_Ex's
+ * ACE_GUARD or ACE_READ_GUARD on the ACE_Hash_Map_Manager_Ex's
* internal lock, which is accessible via its <mutex> method.
*/
template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
diff --git a/ACE/ace/Hash_Map_With_Allocator_T.h b/ACE/ace/Hash_Map_With_Allocator_T.h
index 1c2413ba3f2..c9559e5c9b5 100644
--- a/ACE/ace/Hash_Map_With_Allocator_T.h
+++ b/ACE/ace/Hash_Map_With_Allocator_T.h
@@ -42,7 +42,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* is meaningful! That is why we need this wrapper, which
* insures that appropriate allocator pointer is in place for
* each call.
- *
+ *
* At some point it would be a good idea to update this class to
* use the new "two allocator" technique provided by @c
* ACE_Hash_Map_Manager_Ex.
diff --git a/ACE/ace/Hash_Multi_Map_Manager_T.cpp b/ACE/ace/Hash_Multi_Map_Manager_T.cpp
index 34e8b0406be..19f9dc8929e 100644
--- a/ACE/ace/Hash_Multi_Map_Manager_T.cpp
+++ b/ACE/ace/Hash_Multi_Map_Manager_T.cpp
@@ -9,7 +9,6 @@
*/
//=============================================================================
-
#ifndef ACE_Hash_Multi_Map_Manager_T_CPP
#define ACE_Hash_Multi_Map_Manager_T_CPP
@@ -27,7 +26,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
template <class EXT_ID, class INT_ID>
ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::ACE_Hash_Multi_Map_Entry (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next,
ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *prev)
@@ -48,12 +46,10 @@ ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::ACE_Hash_Multi_Map_Entry (const EXT_ID
{
}
-# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
template <class EXT_ID, class INT_ID>
ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::~ACE_Hash_Multi_Map_Entry (void)
{
}
-# endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
template <class EXT_ID, class INT_ID> EXT_ID &
ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::key ()
diff --git a/ACE/ace/Hash_Multi_Map_Manager_T.h b/ACE/ace/Hash_Multi_Map_Manager_T.h
index 11e54292477..4ed756af841 100644
--- a/ACE/ace/Hash_Multi_Map_Manager_T.h
+++ b/ACE/ace/Hash_Multi_Map_Manager_T.h
@@ -65,10 +65,8 @@ public:
ACE_Hash_Multi_Map_Entry (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next,
ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *prev);
- # if ! defined (ACE_HAS_BROKEN_NOOP_DTORS)
/// Destructor.
~ACE_Hash_Multi_Map_Entry (void);
- #endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */
/// Key accessor.
EXT_ID& key (void);
@@ -76,12 +74,13 @@ public:
/// Item accessor.
ACE_Unbounded_Set<INT_ID>& item (void);
+public:
/// Key used to look up an entry.
- /// @deprecated Use key()
+ /// @todo Should be private
EXT_ID ext_id_;
/// The contents of the entry itself.
- /// @deprecated Use item()
+ /// @todo Should be private
ACE_Unbounded_Set<INT_ID> int_id_set_;
/// Pointer to the next item in the bucket of overflow nodes.
@@ -553,7 +552,7 @@ protected:
ACE_Allocator *table_allocator_;
/// Addidtional allocator for entries, so it should be able to
- /// allocate 'size' / chunks of sizeof
+ /// allocate 'size' / chunks of sizeof
/// (@c ACE_Hash_Multi_Map_Entry<@c EXT_ID, @c INT_ID>) bytes each.
ACE_Allocator *entry_allocator_;
@@ -744,7 +743,7 @@ protected:
* @c ACE_Hash_Multi_Map_Manager it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * @c ACE_Guard or @c ACE_Read_Guard on the @c ACE_Hash_Multi_Map_Manager's
+ * @c ACE_GUARD or @c ACE_READ_GUARD on the @c ACE_Hash_Multi_Map_Manager's
* internal lock, which is accessible via its @c mutex method.
*/
template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
@@ -790,8 +789,8 @@ public:
* @c ACE_Hash_Multi_Map_Manager it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * @c ACE_Guard or @c ACE_Read_Guard on the @c ACE_Hash_Multi_Map_Manager's
- * internal lock, which is accessible via its @c mutex method.
+ * @c ACE_GUARD or @c ACE_READ_GUARD on the @c ACE_Hash_Multi_Map_Manager's
+ * internal lock, which is accessible via its @c mutex() method.
*/
template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
class ACE_Hash_Multi_Map_Const_Iterator : public ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>
@@ -838,7 +837,7 @@ public:
* @c ACE_Hash_Multi_Map_Manager it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * @c ACE_Guard or @c ACE_Read_Guard on the @c ACE_Hash_Multi_Map_Manager's
+ * @c ACE_GUARD or @c ACE_READ_GUARD on the @c ACE_Hash_Multi_Map_Manager's
* internal lock, which is accessible via its @c mutex method.
*
* Note that a creation method for this new iterator cannot be added
@@ -912,7 +911,7 @@ protected:
* @c ACE_Hash_Multi_Map_Manager it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * @c ACE_Guard or @c ACE_Read_Guard on the @c ACE_Hash_Multi_Map_Manager's
+ * @c ACE_GUARD or @c ACE_READ_GUARD on the @c ACE_Hash_Multi_Map_Manager's
* internal lock, which is accessible via its @c mutex method.
*/
template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK>
diff --git a/ACE/ace/Hashable.cpp b/ACE/ace/Hashable.cpp
index cab51f7aa26..60f4ae35bc9 100644
--- a/ACE/ace/Hashable.cpp
+++ b/ACE/ace/Hashable.cpp
@@ -6,12 +6,6 @@
#include "ace/Hashable.inl"
#endif /* __ACE_INLINE __ */
-
-ACE_RCSID (ace,
- Hashable,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Hashable::~ACE_Hashable (void)
diff --git a/ACE/ace/Hashable.inl b/ACE/ace/Hashable.inl
index 7ec54ea1337..2c28a18d455 100644
--- a/ACE/ace/Hashable.inl
+++ b/ACE/ace/Hashable.inl
@@ -1,8 +1,6 @@
// -*- C++ -*-
-//
// $Id$
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE
diff --git a/ACE/ace/High_Res_Timer.cpp b/ACE/ace/High_Res_Timer.cpp
index f4eee00cbbd..21fb966f4ad 100644
--- a/ACE/ace/High_Res_Timer.cpp
+++ b/ACE/ace/High_Res_Timer.cpp
@@ -22,7 +22,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/Truncate.h"
-ACE_RCSID(ace, High_Res_Timer, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -152,9 +152,12 @@ ACE_High_Res_Timer::get_cpuinfo (void)
{
// If the line "cpu MHz : xxx" is present, then it's a
// reliable measure of the CPU speed - according to the
- // kernel-source.
- scale_factor = (ACE_UINT32) (mhertz + 0.5);
- break;
+ // kernel-source. It's possible to see a 0 value reported.
+ if (mhertz > 0.0)
+ {
+ scale_factor = (ACE_UINT32) (mhertz + 0.5);
+ break;
+ }
}
else if (::sscanf (buf, "bogomips : %lf\n", &bmips) == 1
|| ::sscanf (buf, "BogoMIPS : %lf\n", &bmips) == 1)
@@ -273,14 +276,11 @@ ACE_High_Res_Timer::calibrate (const ACE_UINT32 usec,
i < iterations;
++i)
{
- const ACE_Time_Value actual_start =
- ACE_OS::gettimeofday ();
- const ACE_hrtime_t start =
- ACE_OS::gethrtime ();
+ ACE_Time_Value const actual_start = ACE_OS::gettimeofday ();
+ ACE_hrtime_t const start = ACE_OS::gethrtime ();
ACE_OS::sleep (sleep_time);
- const ACE_hrtime_t stop =
- ACE_OS::gethrtime ();
- const ACE_Time_Value actual_delta =
+ ACE_hrtime_t const stop = ACE_OS::gethrtime ();
+ ACE_Time_Value const actual_delta =
ACE_OS::gettimeofday () - actual_start;
// Store the sample.
@@ -477,9 +477,9 @@ ACE_High_Res_Timer::print_total (const ACE_TCHAR *str,
// Separate to seconds and nanoseconds.
u_long total_secs =
- (u_long) (total_nanoseconds / (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS);
+ static_cast<u_long> (total_nanoseconds / (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS);
ACE_UINT32 extra_nsecs =
- (ACE_UINT32) (total_nanoseconds % (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS);
+ static_cast<ACE_UINT32> (total_nanoseconds % (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS);
ACE_TCHAR buf[100];
if (count > 1)
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/ICMP_Socket.cpp b/ACE/ace/ICMP_Socket.cpp
index d3d07c80f36..eff3d456c8e 100644
--- a/ACE/ace/ICMP_Socket.cpp
+++ b/ACE/ace/ICMP_Socket.cpp
@@ -9,12 +9,6 @@
#include "ace/OS_NS_netdb.h"
#include "ace/OS_NS_sys_socket.h"
-
-ACE_RCSID (ace,
- ICMP_Socket,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_ICMP_Socket)
@@ -91,9 +85,9 @@ ACE_ICMP_Socket::open (ACE_Addr const & local,
// Check if icmp protocol is supported on this host
int proto_number = -1;
- protoent *proto;
+ protoent *proto = 0;
- if (! (proto = getprotobyname ("icmp")))
+ if (! (proto = ACE_OS::getprotobyname ("icmp")))
{
ACE_ERROR_RETURN
((LM_ERROR,
diff --git a/ACE/ace/INET_Addr.cpp b/ACE/ace/INET_Addr.cpp
index 229dcaebf6e..d6cfcce05c5 100644
--- a/ACE/ace/INET_Addr.cpp
+++ b/ACE/ace/INET_Addr.cpp
@@ -18,10 +18,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_sys_socket.h"
-ACE_RCSID (ace,
- INET_Addr,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_INET_Addr)
@@ -338,48 +334,67 @@ ACE_INET_Addr::set (u_short port_number,
sizeof this->inet_addr_);
#if defined (ACE_HAS_IPV6)
- struct addrinfo hints;
- struct addrinfo *res = 0;
- int error = 0;
- ACE_OS::memset (&hints, 0, sizeof (hints));
-# if defined (ACE_USES_IPV4_IPV6_MIGRATION)
- if (address_family == AF_UNSPEC && !ACE::ipv6_enabled())
+ // Let the IPv4 case fall through to the non-IPv6-capable section.
+ // We don't need the additional getaddrinfo() capability and the Linux
+ // getaddrinfo() is substantially slower than gethostbyname() w/
+ // large vlans.
+# if defined (ACE_USES_IPV4_IPV6_MIGRATION)
+ if (address_family == AF_UNSPEC && !ACE::ipv6_enabled ())
address_family = AF_INET;
-# endif /* ACE_USES_IPV4_IPV6_MIGRATION */
- if (address_family == AF_UNSPEC || address_family == AF_INET6)
+# endif /* ACE_USES_IPV4_IPV6_MIGRATION */
+ if (address_family != AF_INET)
{
- hints.ai_family = AF_INET6;
- error = ::getaddrinfo (host_name, 0, &hints, &res);
- if (error)
+# if defined (ACE_HAS_GETHOSTBYNAME2)
+ hostent hentry;
+ hostent *hp;
+ ACE_HOSTENT_DATA buf;
+ int h_error = 0; // Not the same as errno!
+
+ if (0 == ::gethostbyname2_r (host_name, AF_INET6, &hentry,
+ buf, sizeof(buf), &hp, &h_error))
{
- if (address_family == AF_INET6)
+ if (hp != 0)
{
- if (res)
- ::freeaddrinfo(res);
- errno = error;
- return -1;
+ struct sockaddr_in6 v6;
+ ACE_OS::memset (&v6, 0, sizeof (v6));
+ v6.sin6_family = AF_INET6;
+ (void) ACE_OS::memcpy ((void *) &v6.sin6_addr,
+ hp->h_addr,
+ hp->h_length);
+ this->set_type (hp->h_addrtype);
+ this->set_addr (&v6, hp->h_length);
+ this->set_port_number (port_number, encode);
+ return 0;
}
- address_family = AF_INET;
}
- }
- if (address_family == AF_INET)
- {
- hints.ai_family = AF_INET;
- error = ::getaddrinfo (host_name, 0, &hints, &res);
- if (error)
+ errno = h_error;
+ if (address_family == AF_INET6)
+ return -1;
+# else
+ struct addrinfo hints;
+ struct addrinfo *res = 0;
+ int error = 0;
+ ACE_OS::memset (&hints, 0, sizeof (hints));
+ hints.ai_family = AF_INET6;
+ if ((error = ::getaddrinfo (host_name, 0, &hints, &res)) == 0)
+ {
+ this->set_type (res->ai_family);
+ this->set_addr (res->ai_addr, res->ai_addrlen);
+ this->set_port_number (port_number, encode);
+ ::freeaddrinfo (res);
+ return 0;
+ }
+ if (address_family == AF_INET6)
{
if (res)
::freeaddrinfo(res);
errno = error;
return -1;
}
+# endif /* ACE_HAS_GETHOSTBYNAME2 */
+ // Let AF_UNSPEC try again w/ IPv4.
}
- this->set_type (res->ai_family);
- this->set_addr (res->ai_addr, res->ai_addrlen);
- this->set_port_number (port_number, encode);
- ::freeaddrinfo (res);
- return 0;
-#else /* ACE_HAS_IPV6 */
+#endif /* ACE_HAS_IPV6 */
// IPv6 not supported... insure the family is set to IPv4
address_family = AF_INET;
@@ -396,9 +411,6 @@ ACE_INET_Addr::set (u_short port_number,
encode);
else
{
-# if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
- hostent *hp = ACE_OS::gethostbyname (host_name);
-# else
hostent hentry;
ACE_HOSTENT_DATA buf;
int h_error = 0; // Not the same as errno!
@@ -407,7 +419,6 @@ ACE_INET_Addr::set (u_short port_number,
buf, &h_error);
if (hp == 0)
errno = h_error;
-# endif /* ACE_VXWORKS */
if (hp == 0)
{
@@ -423,7 +434,6 @@ ACE_INET_Addr::set (u_short port_number,
encode);
}
}
-#endif /* ACE_HAS_IPV6 */
}
// Helper function to get a port number from a port name.
@@ -843,19 +853,6 @@ ACE_INET_Addr::get_host_name_i (char hostname[], size_t len) const
}
else
{
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
- ACE_UNUSED_ARG (len);
- int error =
- ::hostGetByAddr ((int) this->inet_addr_.in4_.sin_addr.s_addr,
- hostname);
- if (error == OK)
- return 0;
- else
- {
- errno = error;
- return -1;
- }
-#else
void* addr = this->ip_addr_pointer ();
int size = this->ip_addr_size ();
int type = this->get_type ();
@@ -875,10 +872,6 @@ ACE_INET_Addr::get_host_name_i (char hostname[], size_t len) const
}
# endif /* ACE_HAS_IPV6 */
-# if defined (DIGITAL_UNIX) && defined (__GNUC__)
- hostent * const hp =
- ACE_OS::gethostbyaddr (static_cast <char *> (addr), size, type);
-# else
int h_error; // Not the same as errno!
hostent hentry;
ACE_HOSTENT_DATA buf;
@@ -889,7 +882,6 @@ ACE_INET_Addr::get_host_name_i (char hostname[], size_t len) const
&hentry,
buf,
&h_error);
-# endif /* DIGITAL_UNIX */
if (hp == 0 || hp->h_name == 0)
return -1;
@@ -910,7 +902,6 @@ ACE_INET_Addr::get_host_name_i (char hostname[], size_t len) const
ACE_OS::strcpy (hostname, hp->h_name);
return 0;
-#endif /* ACE_VXWORKS */
}
}
diff --git a/ACE/ace/INET_Addr.h b/ACE/ace/INET_Addr.h
index 707260347e9..b8ce15be27f 100644
--- a/ACE/ace/INET_Addr.h
+++ b/ACE/ace/INET_Addr.h
@@ -71,15 +71,15 @@ public:
explicit ACE_INET_Addr (u_short port_number,
ACE_UINT32 ip_addr = INADDR_ANY);
- /// Uses <getservbyname> to create an ACE_INET_Addr from a
- /// <port_name>, the remote @a host_name, and the @a protocol.
+ /// Uses getservbyname() to create an ACE_INET_Addr from a
+ /// @a port_name, the remote @a host_name, and the @a protocol.
ACE_INET_Addr (const char port_name[],
const char host_name[],
const char protocol[] = "tcp");
/**
- * Uses <getservbyname> to create an ACE_INET_Addr from a
- * <port_name>, an Internet @a ip_addr, and the @a protocol. This
+ * Uses getservbyname() to create an ACE_INET_Addr from a
+ * @a port_name, an Internet @a ip_addr, and the @a protocol. This
* method assumes that @a ip_addr is in host byte order.
*/
ACE_INET_Addr (const char port_name[],
@@ -133,7 +133,7 @@ public:
* are converted into network byte order, otherwise they are assumed to be
* in network byte order already and are passed straight through.
*
- * If <map> is non-zero and IPv6 support has been compiled in,
+ * If @a map is non-zero and IPv6 support has been compiled in,
* then this address will be set to the IPv4-mapped IPv6 address of it.
*/
int set (u_short port_number,
@@ -141,15 +141,15 @@ public:
int encode = 1,
int map = 0);
- /// Uses <getservbyname> to initialize an ACE_INET_Addr from a
- /// <port_name>, the remote @a host_name, and the @a protocol.
+ /// Uses getservbyname() to initialize an ACE_INET_Addr from a
+ /// @a port_name, the remote @a host_name, and the @a protocol.
int set (const char port_name[],
const char host_name[],
const char protocol[] = "tcp");
/**
- * Uses <getservbyname> to initialize an ACE_INET_Addr from a
- * <port_name>, an @a ip_addr, and the @a protocol. This assumes that
+ * Uses getservbyname() to initialize an ACE_INET_Addr from a
+ * @a port_name, an @a ip_addr, and the @a protocol. This assumes that
* @a ip_addr is already in network byte order.
*/
int set (const char port_name[],
diff --git a/ACE/ace/INET_Addr.inl b/ACE/ace/INET_Addr.inl
index 21d053b7bc5..ff7d43e8691 100644
--- a/ACE/ace/INET_Addr.inl
+++ b/ACE/ace/INET_Addr.inl
@@ -71,14 +71,7 @@ ACE_INET_Addr::ip_addr_size (void) const
else
return static_cast<int> (sizeof this->inet_addr_.in6_.sin6_addr);
#else
- // These _UNICOS changes were picked up from pre-IPv6 code in
- // get_host_name_i... the IPv6 section above may need something
- // similar, so keep an eye out for it.
-# if !defined(_UNICOS)
return static_cast<int> (sizeof this->inet_addr_.in4_.sin_addr.s_addr);
-# else /* _UNICOS */
- return static_cast<int> (sizeof this->inet_addr_.in4_.sin_addr);
-# endif /* ! _UNICOS */
#endif /* ACE_HAS_IPV6 */
}
@@ -216,8 +209,8 @@ ACE_INET_Addr::is_multicast (void) const
return this->inet_addr_.in6_.sin6_addr.s6_addr[0] == 0xFF;
#endif /* ACE_HAS_IPV6 */
return
- this->inet_addr_.in4_.sin_addr.s_addr >= 0xE0000000 && // 224.0.0.0
- this->inet_addr_.in4_.sin_addr.s_addr <= 0xEFFFFFFF; // 239.255.255.255
+ (*static_cast<const unsigned char*> (
+ static_cast<const void*> (&this->inet_addr_.in4_.sin_addr.s_addr)) & 0xf0) == 0xe0;
}
#if defined (ACE_HAS_IPV6)
diff --git a/ACE/ace/IOStream.cpp b/ACE/ace/IOStream.cpp
index 23790425eeb..f0ab6f5098d 100644
--- a/ACE/ace/IOStream.cpp
+++ b/ACE/ace/IOStream.cpp
@@ -5,8 +5,6 @@
#include "ace/IOStream.h"
-ACE_RCSID(ace, IOStream, "$Id$")
-
#if !defined (ACE_LACKS_ACE_IOSTREAM)
# include "ace/OS_NS_errno.h"
diff --git a/ACE/ace/IOStream.h b/ACE/ace/IOStream.h
index c8b3f00c541..864883f0df8 100644
--- a/ACE/ace/IOStream.h
+++ b/ACE/ace/IOStream.h
@@ -64,14 +64,6 @@ ACE_END_VERSIONED_NAMESPACE_DECL
# endif /* ! ACE_HAS_STDCPP_STL_INCLUDES */
# endif /* ACE_WIN32 && defined (_MSC_VER) */
-# if defined (__DECCXX_VER)
-# if __DECCXX_VER < 50700000
-# include /**/ <stl_macros>
-# else
-# include /**/ <stdcomp>
-# endif /* __DECCXX_VER < 50700000 */
-# endif /* __DECCXX_VER */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Quoted_String : public ACE_IOStream_String
@@ -164,7 +156,7 @@ class ACE_Export ACE_Streambuf : public streambuf
public:
/**
- * If the default allocation strategey were used the common buffer
+ * If the default allocation strategy were used the common buffer
* would be deleted when the object destructs. Since we are
* providing separate read/write buffers, it is up to us to manage
* their memory.
@@ -282,11 +274,11 @@ protected:
*/
int syncin (void);
- /// syncout is called when the output needs to be flushed. This is
+ /// syncout() is called when the output needs to be flushed. This is
/// easily done by calling the peer's send_n function.
int syncout (void);
- /// flushbuf is the worker of syncout. It is a separate function
+ /// flushbuf() is the worker of syncout. It is a separate function
/// because it gets used sometimes in different context.
int flushbuf (void);
diff --git a/ACE/ace/IOStream_T.h b/ACE/ace/IOStream_T.h
index 9bf90cee122..3201938f636 100644
--- a/ACE/ace/IOStream_T.h
+++ b/ACE/ace/IOStream_T.h
@@ -116,7 +116,7 @@ public:
u_int streambuf_size = ACE_STREAMBUF_SIZE);
/**
- * The default constructor. This will initiailze your STREAM and
+ * The default constructor. This will initialize your STREAM and
* then setup the iostream baseclass to use a custom streambuf based
* on STREAM.
*/
@@ -126,7 +126,7 @@ public:
/// to the <iostream> base class;
virtual ~ACE_IOStream (void);
- /// The only ambituity in the multiple inheritance is the <close>
+ /// The only ambiguity in the multiple inheritance is the <close>
/// function.
virtual int close (void);
diff --git a/ACE/ace/IO_Cntl_Msg.cpp b/ACE/ace/IO_Cntl_Msg.cpp
index 9d64f05dd66..85a08a7cae6 100644
--- a/ACE/ace/IO_Cntl_Msg.cpp
+++ b/ACE/ace/IO_Cntl_Msg.cpp
@@ -5,47 +5,3 @@
#if !defined (__ACE_INLINE__)
#include "ace/IO_Cntl_Msg.inl"
#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, IO_Cntl_Msg, "$Id$")
-
-#if 0
-// This is not meant to be used, it's just a place holder...
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Intrusive_List.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-// Forward decl
-template <class SYNCH> class ACE_Module;
-
-/**
- * @class ACE_Module_Link
- *
- * @brief Data structure used to link two modules together
- */
-class ACE_Module_Link
-{
-public:
- ACE_Module_Link (ACE_Module *m1, ACE_Module *m2): mod_upper_ (m1), mod_lower_ (m2), count_ (0) {}
-
- ACE_Module *upper (void) { return this->mod_upper_; }
- void upper (ACE_Module *u) { this->mod_upper_ = u; }
-
- ACE_Module *lower (void) { return this->mod_lower_; }
- void lower (ACE_Module *l) { this->mod_lower_ = l; }
-
- int count (void) const { return this->count_; }
- void count (int c) { this->count_ = c; }
-
-private:
- ACE_Module *mod_upper_;
- ACE_Module *mod_lower_;
- int count_;
-};
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-#endif
-
diff --git a/ACE/ace/IO_SAP.cpp b/ACE/ace/IO_SAP.cpp
index 0e3e2ea73dc..ac6a9cc7466 100644
--- a/ACE/ace/IO_SAP.cpp
+++ b/ACE/ace/IO_SAP.cpp
@@ -12,8 +12,6 @@
#include "ace/IO_SAP.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, IO_SAP, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_IO_SAP)
diff --git a/ACE/ace/IO_SAP.inl b/ACE/ace/IO_SAP.inl
index 9d7d244e4db..02386927aa4 100644
--- a/ACE/ace/IO_SAP.inl
+++ b/ACE/ace/IO_SAP.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
#include "ace/OS_NS_stropts.h"
diff --git a/ACE/ace/IPC_SAP.cpp b/ACE/ace/IPC_SAP.cpp
index b9ef15c6002..dbcdaf41977 100644
--- a/ACE/ace/IPC_SAP.cpp
+++ b/ACE/ace/IPC_SAP.cpp
@@ -12,7 +12,7 @@
#include "ace/IPC_SAP.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, IPC_SAP, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Init_ACE.cpp b/ACE/ace/Init_ACE.cpp
index f997c09d4f8..b024aa3cf4e 100644
--- a/ACE/ace/Init_ACE.cpp
+++ b/ACE/ace/Init_ACE.cpp
@@ -1,12 +1,8 @@
+// $Id$
#include "ace/Init_ACE.h"
#include "ace/Object_Manager.h"
-ACE_RCSID (ace,
- Init_ACE,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
unsigned int ACE::init_fini_count_ = 0;
diff --git a/ACE/ace/Init_ACE.h b/ACE/ace/Init_ACE.h
index 164f61e1d70..596e2b5f591 100644
--- a/ACE/ace/Init_ACE.h
+++ b/ACE/ace/Init_ACE.h
@@ -6,8 +6,11 @@
*
* $Id$
*
- * Initialize ACE library services. Can be called only once per
- * program invocation.
+ * Initialize and finalize the ACE library services. You can
+ * generally execute the @a ACE::init() and @a ACE::fini() sequence
+ * multiple times, but be aware that nothing that ACE controls (e.g.,
+ * singletons, thread-specific services, loaded services, etc.) will
+ * survive the @a ACE::fini().
*/
//=============================================================================
@@ -28,17 +31,22 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE
{
/**
- * This class implements the functions for the initialization and
- * shutting down ACE. These functions are called only once per ACE
- * invokation.
- * @return Returns 0 on success, -1 on failure, and 1 if it had already been
- * called.
+ * This method initializes the ACE library services and initializes
+ * ACE's internal resources. Applications should not instantiate
+ * ACE classes or call methods on objects of these classes until @a
+ * ACE::init() returns successfully.
+
+ * @return Returns 0 on success, -1 on failure, and 1 if it had
+ * already been called.
*/
extern ACE_Export int init (void);
/**
- * Shut down ACE library services. Can be called only once per
- * program invocation.
+ * Finalize the ACE library services and releases ACE's internal
+ * resources. In general, do not instantiate ACE classes or call
+ * methods on objects of these classes after @a ACE::fini() has been
+ * called.
+ *
* @return Returns 0 on success, -1 on failure, and 1 if it had already been
* called.
*/
diff --git a/ACE/ace/Intrusive_List.cpp b/ACE/ace/Intrusive_List.cpp
index 346bfa07562..4a1baf56992 100644
--- a/ACE/ace/Intrusive_List.cpp
+++ b/ACE/ace/Intrusive_List.cpp
@@ -117,41 +117,6 @@ ACE_Intrusive_List<T>::unsafe_remove (T *node)
node->prev (0);
}
-#if 0
-template<class T> void
-ACE_Intrusive_List_Node<T>::check_invariants (void)
-{
- ACE_ASSERT ((this->next () == 0) || (this->next ()->prev () == this));
- ACE_ASSERT ((this->prev () == 0) || (this->prev ()->next () == this));
-}
-
-template<class T> void
-ACE_Intrusive_List<T>::check_invariants (void)
-{
- ACE_ASSERT ((this->tail_ == 0) || (this->tail_->next () == 0));
- ACE_ASSERT ((this->head_ == 0) || (this->head_->prev () == 0));
- ACE_ASSERT (!((this->head_ == 0) ^ (this->tail_ == 0)));
-
- int found_tail = 0;
- for (T *i = this->head_; i != 0; i = i->next ())
- {
- if (i == this->tail_)
- found_tail = 1;
- i->check_invariants ();
- }
- ACE_ASSERT (this->tail_ == 0 || found_tail == 1);
-
- int found_head = 0;
- for (T *j = this->tail_; j != 0; j = j->prev ())
- {
- if (j == this->head_)
- found_head = 1;
- j->check_invariants ();
- }
- ACE_ASSERT (this->head_ == 0 || found_head == 1);
-}
-#endif /* 0 */
-
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_INTRUSIVE_LIST_CPP */
diff --git a/ACE/ace/Intrusive_List.h b/ACE/ace/Intrusive_List.h
index a7952e367dc..26286594202 100644
--- a/ACE/ace/Intrusive_List.h
+++ b/ACE/ace/Intrusive_List.h
@@ -71,10 +71,6 @@ public:
/// Returns true if the container is empty, otherwise returns false.
bool is_empty (void) const;
- /// Returns true if the container is empty, otherwise returns false.
- /// @deprecated Use is_empty() instead.
- bool empty (void) const;
-
/// Insert an element at the beginning of the list
void push_front (T *node);
diff --git a/ACE/ace/Intrusive_List.inl b/ACE/ace/Intrusive_List.inl
index 23d0095a948..ce38cfd0186 100644
--- a/ACE/ace/Intrusive_List.inl
+++ b/ACE/ace/Intrusive_List.inl
@@ -12,12 +12,6 @@ ACE_Intrusive_List<T>::is_empty (void) const
return this->head_ == 0;
}
-template<class T> ACE_INLINE bool
-ACE_Intrusive_List<T>::empty (void) const
-{
- return this->is_empty ();
-}
-
template<class T> ACE_INLINE T *
ACE_Intrusive_List<T>::head (void) const
{
diff --git a/ACE/ace/LSOCK.cpp b/ACE/ace/LSOCK.cpp
index 71f93fdde9c..1a57b61ab9b 100644
--- a/ACE/ace/LSOCK.cpp
+++ b/ACE/ace/LSOCK.cpp
@@ -2,7 +2,7 @@
#include "ace/LSOCK.h"
-ACE_RCSID(ace, LSOCK, "$Id$")
+
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
@@ -59,7 +59,8 @@ ACE_LSOCK::send_handle (const ACE_HANDLE handle) const
cmsgptr->cmsg_len = sizeof cmsgbuf;
send_msg.msg_control = cmsgbuf;
send_msg.msg_controllen = sizeof cmsgbuf;
- *(ACE_HANDLE *) CMSG_DATA (cmsgptr) = handle;
+ ACE_HANDLE *ph = (ACE_HANDLE *) CMSG_DATA (cmsgptr);
+ *ph = handle;
send_msg.msg_flags = 0;
#else
send_msg.msg_accrights = (char *) &handle;
@@ -143,7 +144,9 @@ ACE_LSOCK::recv_handle (ACE_HANDLE &handle, char *pbuf, ssize_t *len) const
{
#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
// Close down the socket that was returned by the MSG_PEEK.
- ACE_OS::closesocket (*(ACE_HANDLE *) CMSG_DATA ((cmsghdr *) cmsgbuf));
+ cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
+ ACE_HANDLE * ph = (ACE_HANDLE *) CMSG_DATA (cmsgptr);
+ ACE_OS::closesocket (*ph);
recv_msg.msg_control = cmsgbuf;
recv_msg.msg_controllen = sizeof cmsgbuf;
#else
@@ -158,7 +161,8 @@ ACE_LSOCK::recv_handle (ACE_HANDLE &handle, char *pbuf, ssize_t *len) const
{
#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
- handle = *(ACE_HANDLE *) CMSG_DATA (cmsgptr);
+ ACE_HANDLE * ph = (ACE_HANDLE *) CMSG_DATA (cmsgptr);
+ handle = *ph;
#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
return 1;
}
diff --git a/ACE/ace/LSOCK_Acceptor.cpp b/ACE/ace/LSOCK_Acceptor.cpp
index d192c5003e8..9239f631327 100644
--- a/ACE/ace/LSOCK_Acceptor.cpp
+++ b/ACE/ace/LSOCK_Acceptor.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_sys_socket.h"
-ACE_RCSID(ace, LSOCK_Acceptor, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/LSOCK_CODgram.cpp b/ACE/ace/LSOCK_CODgram.cpp
index e89607e06ac..d5aa1938736 100644
--- a/ACE/ace/LSOCK_CODgram.cpp
+++ b/ACE/ace/LSOCK_CODgram.cpp
@@ -5,7 +5,7 @@
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, LSOCK_CODgram, "$Id$")
+
#if !defined (__ACE_INLINE__)
#include "ace/LSOCK_CODgram.inl"
diff --git a/ACE/ace/LSOCK_Connector.cpp b/ACE/ace/LSOCK_Connector.cpp
index 319670f903f..2f0fc2ef0dc 100644
--- a/ACE/ace/LSOCK_Connector.cpp
+++ b/ACE/ace/LSOCK_Connector.cpp
@@ -5,7 +5,7 @@
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, LSOCK_Connector, "$Id$")
+
#if !defined (__ACE_INLINE__)
#include "ace/LSOCK_Connector.inl"
diff --git a/ACE/ace/LSOCK_Dgram.cpp b/ACE/ace/LSOCK_Dgram.cpp
index 268ce44eb36..a6c41e8b11b 100644
--- a/ACE/ace/LSOCK_Dgram.cpp
+++ b/ACE/ace/LSOCK_Dgram.cpp
@@ -5,7 +5,7 @@
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, LSOCK_Dgram, "$Id$")
+
#if !defined (__ACE_INLINE__)
#include "ace/LSOCK_Dgram.inl"
diff --git a/ACE/ace/LSOCK_Stream.cpp b/ACE/ace/LSOCK_Stream.cpp
index 6ac123661cf..2418cd398a3 100644
--- a/ACE/ace/LSOCK_Stream.cpp
+++ b/ACE/ace/LSOCK_Stream.cpp
@@ -6,7 +6,7 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_sys_socket.h"
-ACE_RCSID(ace, LSOCK_Stream, "$Id$")
+
#if !defined (__ACE_INLINE__)
#include "ace/LSOCK_Stream.inl"
diff --git a/ACE/ace/LSOCK_Stream.h b/ACE/ace/LSOCK_Stream.h
index 99d50e6dbaf..8b19a55ad59 100644
--- a/ACE/ace/LSOCK_Stream.h
+++ b/ACE/ace/LSOCK_Stream.h
@@ -38,12 +38,12 @@ class ACE_Export ACE_LSOCK_Stream : public ACE_SOCK_Stream, public ACE_LSOCK
{
public:
// = Send/recv methods.
- /// Send iovecs via <::writev>.
+ /// Send iovecs via ::writev().
ssize_t send_msg (const iovec iov[],
size_t n,
ACE_HANDLE handle);
- /// Send iovecs via <::writev>.
+ /// Send iovecs via ::writev().
ssize_t recv_msg (iovec iov[],
size_t n,
ACE_HANDLE &handle);
@@ -51,7 +51,7 @@ public:
/// Get handle.
ACE_HANDLE get_handle (void) const;
- /// Overrides set_handle from the base classes.
+ /// Overrides set_handle() from the base classes.
void set_handle (ACE_HANDLE fd);
// = Meta-type info
diff --git a/ACE/ace/Lib_Find.cpp b/ACE/ace/Lib_Find.cpp
index 3caa58bf19e..4c2dd54bcf8 100644
--- a/ACE/ace/Lib_Find.cpp
+++ b/ACE/ace/Lib_Find.cpp
@@ -110,7 +110,7 @@ template ACE_Singleton<ACE_LD_Symbol_Registry, ACE_Thread_Mutex> *
#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
#endif
-ACE_RCSID(ace, Lib_Find, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -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/Lib_Find.h b/ACE/ace/Lib_Find.h
index ef146bb337d..e43259e58ca 100644
--- a/ACE/ace/Lib_Find.h
+++ b/ACE/ace/Lib_Find.h
@@ -101,10 +101,10 @@ namespace ACE
extern ACE_Export size_t strrepl (char *s, char search, char replace);
/**
- * Splits string <s> into pieces separated by the string <token>.
- * <next_start> is an opaque cookie handed back by the call to store
+ * Splits string @a s into pieces separated by the string @a token.
+ * @a next_start is an opaque cookie handed back by the call to store
* its state for the next invocation, thus making it re-entrant.
- * This operates very similar to Perl's <split> function except that
+ * This operates very similar to Perl's @c split function except that
* it returns pieces one at a time instead of into an array.
*/
extern ACE_Export char *strsplit_r (char *s,
diff --git a/ACE/ace/Local_Memory_Pool.cpp b/ACE/ace/Local_Memory_Pool.cpp
index 09dbb19000d..65bd7bc14a9 100644
--- a/ACE/ace/Local_Memory_Pool.cpp
+++ b/ACE/ace/Local_Memory_Pool.cpp
@@ -6,7 +6,7 @@
#include "ace/OS_Memory.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Local_Memory_Pool, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Local_Name_Space.cpp b/ACE/ace/Local_Name_Space.cpp
index 7047c234095..6b0430d7566 100644
--- a/ACE/ace/Local_Name_Space.cpp
+++ b/ACE/ace/Local_Name_Space.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Local_Name_Space.h"
#include "ace/ACE.h"
#include "ace/RW_Process_Mutex.h"
@@ -5,10 +7,6 @@
#include "ace/OS_NS_string.h"
#include "ace/Truncate.h"
-ACE_RCSID (ace,
- Local_Name_Space,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_NS_String::~ACE_NS_String (void)
diff --git a/ACE/ace/Local_Name_Space_T.h b/ACE/ace/Local_Name_Space_T.h
index 14ed9377b30..829346b644c 100644
--- a/ACE/ace/Local_Name_Space_T.h
+++ b/ACE/ace/Local_Name_Space_T.h
@@ -35,26 +35,13 @@ typedef ACE_Unbounded_Set<ACE_NS_WString> ACE_WSTRING_SET;
ACE_END_VERSIONED_NAMESPACE_DECL
-// Simplify later usage by defining typedefs.
-#if (1)
# include "ace/Hash_Map_Manager_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
typedef ACE_Hash_Map_Manager_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex> MAP_MANAGER;
ACE_END_VERSIONED_NAMESPACE_DECL
-#else
-# include "ace/Map_Manager.h"
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-typedef ACE_Map_Manager<ACE_NS_String, ACE_NS_Internal, ACE_Null_Mutex> MAP_MANAGER;
-ACE_END_VERSIONED_NAMESPACE_DECL
-#endif /* 0 */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-/// @deprecated Deprecated typedefs. Use the map's traits instead.
-typedef MAP_MANAGER::ITERATOR MAP_ITERATOR;
-typedef MAP_MANAGER::ENTRY MAP_ENTRY;
-
-
/**
* @class ACE_Name_Space_Map
*
@@ -148,13 +135,13 @@ public:
/**
* Overwrite the value or type of an existing name in a
* ACE_Local_Name_Space or bind a new name to the context, if it
- * didn't exist yet. (Wide charcter strings interface).
+ * didn't exist yet. (Wide character strings interface).
*/
virtual int rebind (const ACE_NS_WString &name,
const ACE_NS_WString &value,
const char *type = "");
- /// Delete a name from a ACE_Local_Name_Space (Wide charcter strings
+ /// Delete a name from a ACE_Local_Name_Space (Wide character strings
/// Interface).
virtual int unbind (const ACE_NS_WString &name);
virtual int unbind_i (const ACE_NS_WString &name);
diff --git a/ACE/ace/Local_Tokens.cpp b/ACE/ace/Local_Tokens.cpp
index 17330fe79dd..8f9611a18c8 100644
--- a/ACE/ace/Local_Tokens.cpp
+++ b/ACE/ace/Local_Tokens.cpp
@@ -13,10 +13,6 @@
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Local_Tokens,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
void
diff --git a/ACE/ace/Local_Tokens.h b/ACE/ace/Local_Tokens.h
index 4f46f43fdab..30ecf4fa877 100644
--- a/ACE/ace/Local_Tokens.h
+++ b/ACE/ace/Local_Tokens.h
@@ -34,7 +34,7 @@
* mechanisms, such as mutexes or semaphores. Instead, you should
* use the ACE_Recursive_Thread_Mutex, ACE_Thread_Mutex,
* ACE_Thread_Semaphore, etc., that are defined in
- * $ACE_ROOT/ace/Synch.h and $ACE_ROOT/ace/Synch_T.h or the
+ * $ACE_ROOT/ace/Synch.h or the
* ACE_Token that's defined in $ACE_ROOT/ace/Token.h.
*
*
@@ -79,6 +79,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* this class is necessary to fight the compiler with order of
* declaration errors.
*/
+// FUZZ: disable check_for_ACE_Guard
namespace ACE_TOKEN_CONST
{
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
@@ -92,6 +93,7 @@ namespace ACE_TOKEN_CONST
typedef ACE_Guard<ACE_Null_Mutex> GUARD;
#endif /* ACE_HAS_THREADS */
}
+// FUZZ: enable check_for_ACE_Guard
// Forward decl.
class ACE_Token_Proxy;
@@ -406,13 +408,13 @@ public:
typedef ACE_Unbounded_Stack<ACE_TPQ_Entry *> OWNER_STACK;
/// Returns a stack of the current owners. Returns -1 on error, 0 on
- /// success. If <id> is non-zero, returns 1 if id is an owner.
+ /// success. If @a id is non-zero, returns 1 if id is an owner.
virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id) = 0;
- /// Returns 1 if <id> is waiting for this token. 0 otherwise.
+ /// Returns 1 if @a id is waiting for this token. 0 otherwise.
virtual int is_waiting_for (const ACE_TCHAR *id) = 0;
- /// Returns 1 if <id> is an owner of this token. 0 otherwise.
+ /// Returns 1 if @a id is an owner of this token. 0 otherwise.
virtual int is_owner (const ACE_TCHAR *id) = 0;
/// Return the queue of waiters.
@@ -560,13 +562,13 @@ public:
virtual int type (void) const;
/// Returns a stack of the current owners. Returns -1 on error, 0 on
- /// success. If <id> is non-zero, returns 1 if id is an owner.
+ /// success. If @a id is non-zero, returns 1 if id is an owner.
virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id);
- /// Returns 1 if <id> is waiting for this token. 0 otherwise.
+ /// Returns 1 if @a id is waiting for this token. 0 otherwise.
virtual int is_waiting_for (const ACE_TCHAR *id);
- /// Returns 1 if <id> is an owner of this token. 0 otherwise.
+ /// Returns 1 if @a id is an owner of this token. 0 otherwise.
virtual int is_owner (const ACE_TCHAR *id);
private:
@@ -658,13 +660,13 @@ public:
virtual int type (void) const;
/// Returns a stack of the current owners. Returns -1 on error, 0 on
- /// success. If <id> is non-zero, returns 1 if id is an owner.
+ /// success. If @a id is non-zero, returns 1 if id is an owner.
virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id);
- /// Returns 1 if <id> is waiting for this token. 0 otherwise.
+ /// Returns 1 if @a id is waiting for this token. 0 otherwise.
virtual int is_waiting_for (const ACE_TCHAR *id);
- /// Returns 1 if <id> is an owner of this token. 0 otherwise.
+ /// Returns 1 if @a id is an owner of this token. 0 otherwise.
virtual int is_owner (const ACE_TCHAR *id);
protected:
diff --git a/ACE/ace/Local_Tokens.inl b/ACE/ace/Local_Tokens.inl
index 2e27ce4af04..17c015c4c91 100644
--- a/ACE/ace/Local_Tokens.inl
+++ b/ACE/ace/Local_Tokens.inl
@@ -140,20 +140,6 @@ ACE_Tokens::name (void)
return this->token_name_;
}
-#if 0
-ACE_INLINE ACE_Token_Proxy *
-ACE_Tokens::current_owner (void)
-{
- ACE_TRACE ("ACE_Tokens::current_owner");
- // ACE_GUARD_RETURN ???
-
- if (this->owner () == 0)
- return 0;
- else
- return this->owner ()->proxy ();
-}
-#endif /* 0 */
-
// ************************************************************
ACE_INLINE int
diff --git a/ACE/ace/Lock.cpp b/ACE/ace/Lock.cpp
index dca934b8067..be167deb878 100644
--- a/ACE/ace/Lock.cpp
+++ b/ACE/ace/Lock.cpp
@@ -6,7 +6,7 @@
#include "ace/Lock.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Lock, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Lock.h b/ACE/ace/Lock.h
index 2b95c1962da..5cc3a37a823 100644
--- a/ACE/ace/Lock.h
+++ b/ACE/ace/Lock.h
@@ -43,7 +43,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Lock
{
public:
- /// CE needs a default ctor here.
+ /// CE needs a default constructor here.
ACE_Lock (void);
/// Noop virtual destructor
@@ -73,20 +73,20 @@ public:
/**
* Block until the thread acquires a read lock. If the locking
* mechanism doesn't support read locks then this just calls
- * <acquire>. Returns -1 on failure.
+ * acquire(). Returns -1 on failure.
*/
virtual int acquire_read (void) = 0;
/**
* Block until the thread acquires a write lock. If the locking
* mechanism doesn't support read locks then this just calls
- * <acquire>. Returns -1 on failure.
+ * acquire(). Returns -1 on failure.
*/
virtual int acquire_write (void) = 0;
/**
* Conditionally acquire a read lock. If the locking mechanism
- * doesn't support read locks then this just calls <acquire>.
+ * doesn't support read locks then this just calls acquire().
* Returns -1 on failure. If we "failed" because someone else
* already had the lock, @c errno is set to @c EBUSY.
*/
@@ -94,7 +94,7 @@ public:
/**
* Conditionally acquire a write lock. If the locking mechanism
- * doesn't support read locks then this just calls <acquire>.
+ * doesn't support read locks then this just calls acquire().
* Returns -1 on failure. If we "failed" because someone else
* already had the lock, @c errno is set to @c EBUSY.
*/
@@ -103,7 +103,7 @@ public:
/**
* Conditionally try to upgrade a lock held for read to a write lock.
* If the locking mechanism doesn't support read locks then this just
- * calls <acquire>. Returns 0 on success, -1 on failure.
+ * calls acquire(). Returns 0 on success, -1 on failure.
*/
virtual int tryacquire_write_upgrade (void) = 0;
};
@@ -118,13 +118,13 @@ public:
* However, it defers our decision of what kind of lock to use
* to the run time and delegates all locking operations to the actual
* lock. Users must define a constructor in their subclass to
- * initialize <lock_>.
+ * initialize @c lock_.
*/
class ACE_Export ACE_Adaptive_Lock : public ACE_Lock
{
public:
/// You must also override the destructor function to match with how
- /// you construct the underneath <lock_>.
+ /// you construct the underneath @c lock_.
virtual ~ACE_Adaptive_Lock (void);
// = Lock/unlock operations.
@@ -142,8 +142,8 @@ public:
protected:
/**
- * Create and initialize create the actual lcok used in the class.
- * The default constructor simply set the <lock_> to 0 (null). You
+ * Create and initialize create the actual lock used in the class.
+ * The default constructor simply set the @c lock_ to 0 (null). You
* must overwrite this method for this class to work.
*/
ACE_Adaptive_Lock (void);
diff --git a/ACE/ace/Lock_Adapter_T.cpp b/ACE/ace/Lock_Adapter_T.cpp
index f26a79fdd4c..04c1e00ce06 100644
--- a/ACE/ace/Lock_Adapter_T.cpp
+++ b/ACE/ace/Lock_Adapter_T.cpp
@@ -16,17 +16,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-// This constructor isn't inlined, because SunPRO C++ 4.2 + patch
-// 104631-07 has trouble compiling TAO with it inline.
-template <class ACE_LOCKING_MECHANISM>
-ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (void)
- : lock_ (0),
- delete_lock_ (true)
-{
- ACE_NEW (this->lock_,
- ACE_LOCKING_MECHANISM);
-}
-
template <class ACE_LOCKING_MECHANISM>
ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::~ACE_Lock_Adapter (void)
{
diff --git a/ACE/ace/Lock_Adapter_T.h b/ACE/ace/Lock_Adapter_T.h
index 866616d1bb1..089b14965ab 100644
--- a/ACE/ace/Lock_Adapter_T.h
+++ b/ACE/ace/Lock_Adapter_T.h
@@ -28,7 +28,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @class ACE_Lock_Adapter
*
* @brief This is an adapter that allows applications to transparently
- * combine the <ACE_Lock> abstract base class (which contains
+ * combine the ACE_Lock abstract base class (which contains
* pure virtual methods) with any of the other concrete ACE
* synchronization classes (e.g., ACE_Mutex, ACE_Semaphore,
* ACE_RW_Mutex, etc.).
@@ -50,7 +50,7 @@ public:
/// created internally.
ACE_Lock_Adapter (void);
- /// Destructor. If <lock_> was not passed in by the user, it will be
+ /// Destructor. If @c lock_ was not passed in by the user, it will be
/// deleted.
virtual ~ACE_Lock_Adapter (void);
@@ -67,29 +67,29 @@ public:
/**
* Block until the thread acquires a read lock. If the locking
* mechanism doesn't support read locks then this just calls
- * <acquire>.
+ * acquire().
*/
virtual int acquire_read (void);
/**
* Block until the thread acquires a write lock. If the locking
* mechanism doesn't support read locks then this just calls
- * <acquire>.
+ * acquire().
*/
virtual int acquire_write (void);
/// Conditionally acquire a read lock. If the locking mechanism
- /// doesn't support read locks then this just calls <acquire>.
+ /// doesn't support read locks then this just calls acquire().
virtual int tryacquire_read (void);
/// Conditionally acquire a write lock. If the locking mechanism
- /// doesn't support read locks then this just calls <acquire>.
+ /// doesn't support read locks then this just calls acquire().
virtual int tryacquire_write (void);
/**
* Conditionally try to upgrade a lock held for read to a write lock.
* If the locking mechanism doesn't support read locks then this just
- * calls <acquire>. Returns 0 on success, -1 on failure.
+ * calls acquire(). Returns 0 on success, -1 on failure.
*/
virtual int tryacquire_write_upgrade (void);
diff --git a/ACE/ace/Lock_Adapter_T.inl b/ACE/ace/Lock_Adapter_T.inl
index bc7899bffb3..99ccf5c8e32 100644
--- a/ACE/ace/Lock_Adapter_T.inl
+++ b/ACE/ace/Lock_Adapter_T.inl
@@ -2,6 +2,8 @@
//
// $Id$
+#include "ace/OS_Memory.h"
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <class ACE_LOCKING_MECHANISM>
@@ -13,4 +15,14 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (
{
}
+template <class ACE_LOCKING_MECHANISM>
+ACE_INLINE
+ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (void)
+ : lock_ (0),
+ delete_lock_ (true)
+{
+ ACE_NEW (this->lock_,
+ ACE_LOCKING_MECHANISM);
+}
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Log_Msg.cpp b/ACE/ace/Log_Msg.cpp
index ce445120de9..72499eccb0d 100644
--- a/ACE/ace/Log_Msg.cpp
+++ b/ACE/ace/Log_Msg.cpp
@@ -40,40 +40,24 @@
#include "ace/Log_Record.h"
#include "ace/Recursive_Thread_Mutex.h"
#include "ace/Stack_Trace.h"
+#include "ace/Atomic_Op.h"
#if !defined (__ACE_INLINE__)
#include "ace/Log_Msg.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Log_Msg, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Log_Msg)
-// only used here... dhinton
-#if defined (ACE_HAS_SYS_SIGLIST)
-# if !defined (_sys_siglist)
-# define _sys_siglist sys_siglist
-# endif /* !defined (sys_siglist) */
-//extern char **_sys_siglist;
-#endif /* ACE_HAS_SYS_SIGLIST */
-
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
bool ACE_Log_Msg::key_created_ = 0;
# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
defined (ACE_HAS_TSS_EMULATION)
-#if defined (ACE_MVS)
- static ACE_thread_key_t the_log_msg_tss_key =
- #if !defined(_LP64)
- { '\0','\0','\0','\0' };
- #else
- { '\0','\0','\0','\0','\0','\0','\0','\0' };
- #endif
-#else
- static ACE_thread_key_t the_log_msg_tss_key = 0;
-#endif /* defined (ACE_MVS) */
+static ACE_thread_key_t the_log_msg_tss_key = 0;
ACE_thread_key_t *log_msg_tss_key (void)
{
@@ -922,7 +906,8 @@ ACE_Log_Msg::open (const ACE_TCHAR *prog_name,
* '@': print a void* pointer (in hexadecimal)
* 'r': call the function pointed to by the corresponding argument
* 'R': print return status
- * 'S': format the appropriate _sys_siglist entry corresponding to var-argument.
+ * 'S': print out the appropriate signal message corresponding
+ * to var-argument, e.g., as done by strsignal()
* 's': format a character string
* 'T': print timestamp in hour:minute:sec:usec format.
* 'D': print timestamp in month/day/year hour:minute:sec:usec format.
@@ -1025,7 +1010,7 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
// bp is pointer to where to put next part of logged message.
// bspace is the number of characters remaining in msg_.
ACE_TCHAR *bp = const_cast<ACE_TCHAR *> (this->msg ());
- size_t bspace = ACE_Log_Record::MAXLOGMSGLEN; // Leave room for Nul term.
+ size_t bspace = ACE_MAXLOGMSGLEN; // Leave room for Nul term.
if (this->msg_off_ <= ACE_Log_Record::MAXLOGMSGLEN)
bspace -= static_cast<size_t> (this->msg_off_);
@@ -1057,27 +1042,30 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
}
if (timestamp_ > 0)
- {
- ACE_TCHAR day_and_time[35];
- const ACE_TCHAR *s = 0;
- if (timestamp_ == 1)
- {
- // Print just the time
- s = ACE::timestamp (day_and_time, sizeof day_and_time / sizeof (ACE_TCHAR), 1);
- }
- else
- {
- // Print time and date
- ACE::timestamp (day_and_time, sizeof day_and_time / sizeof (ACE_TCHAR));
- s = day_and_time;
- }
-
- for (; bspace > 1 && (*bp = *s) != '\0'; ++s, --bspace)
- ++bp;
-
- *bp++ = '|';
- --bspace;
- }
+ {
+ ACE_TCHAR day_and_time[27];
+ const ACE_TCHAR *s = 0;
+ if (timestamp_ == 1)
+ {
+ // Print just the time
+ s = ACE::timestamp (day_and_time,
+ sizeof (day_and_time) / sizeof (ACE_TCHAR),
+ true);
+ }
+ else
+ {
+ // Print time and date
+ ACE::timestamp (day_and_time,
+ sizeof (day_and_time) / sizeof (ACE_TCHAR));
+ s = day_and_time;
+ }
+
+ for (; bspace > 1 && (*bp = *s) != '\0'; ++s, --bspace)
+ ++bp;
+
+ *bp++ = '|';
+ --bspace;
+ }
while (*format_str != '\0' && bspace > 0)
{
@@ -1112,7 +1100,8 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
const ACE_TCHAR *abort_str = ACE_TEXT ("Aborting...");
const ACE_TCHAR *start_format = format_str;
ACE_TCHAR format[128]; // Converted format string
- ACE_TCHAR *fp; // Current format pointer
+ ACE_OS::memset (format, '\0', 128); // Set this string to known values.
+ ACE_TCHAR *fp = 0; // Current format pointer
int wp = 0; // Width/precision extracted from args
bool done = false;
bool skip_nul_locate = false;
@@ -1172,7 +1161,7 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
case 'A': // ACE_timer_t
{
ACE_OS::strcpy (fp, ACE_TEXT ("f"));
- double value = va_arg (argp, double);
+ double const value = va_arg (argp, double);
if (can_check)
this_len = ACE_OS::snprintf (bp, bspace, format, value);
else
@@ -1355,20 +1344,127 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
}
case 'M': // Print the name of the priority of the message.
-#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
- ACE_OS::strcpy (fp, ACE_TEXT ("ls"));
+
+ // Look at the format precision specifier. .1 is interpreted
+ // as a single character printout, otherwise we print the name of
+ // the priority.
+
+ // So, did we find a .1 specifier? Do we need to override it?
+ if (format[1] == ACE_TEXT('.') &&
+ format[2] == ACE_TEXT('1'))
+ {
+ // Yup.
+ // Print a single character signifying the severity of the message
+ fp = format;
+ fp++;
+
+# if defined (ACE_USES_WCHAR)
+
+# if defined (ACE_WIN32) // Windows uses 'c' for a wide character
+ ACE_OS::strcpy (fp, ACE_TEXT ("c"));
+# else // Other platforms behave differently
+# if defined (HPUX) // HP-Unix compatible
+ ACE_OS::strcpy (fp, ACE_TEXT ("C"));
+# else // Other
+ ACE_OS::strcpy (fp, ACE_TEXT ("lc"));
+# endif /* HPUX */
+# endif
+
+# else /* ACE_USES_WCHAR */
+
+ // Non-unicode builds simply use a standard character format specifier
+ ACE_OS::strcpy (fp, ACE_TEXT ("c"));
+
+# endif /* ACE_USES_WCHAR */
+
+ // Below is an optimized (binary search based)
+ // version of the following simple piece of code:
+ //
+ // log_priority == LM_SHUTDOWN ? 'S' : // Shutdown
+ // log_priority == LM_TRACE ? 'T' : // Trace
+ // log_priority == LM_DEBUG ? 'D' : // Debug
+ // log_priority == LM_INFO ? 'I' : // Info
+ // log_priority == LM_NOTICE ? 'N' : // Notice
+ // log_priority == LM_WARNING ? 'W' : // Warning
+ // log_priority == LM_STARTUP ? 'U' : // Startup
+ // log_priority == LM_ERROR ? 'E' : // Error
+ // log_priority == LM_CRITICAL ? 'C' : // Critical
+ // log_priority == LM_ALERT ? 'A' : // Alert
+ // log_priority == LM_EMERGENCY ? '!' : // Emergency
+ // '?' // Unknown
+
+ if (can_check)
+ {
+ this_len = ACE_OS::snprintf
+ (bp, bspace, format,
+#if !defined (ACE_USES_WCHAR) || defined (ACE_WIN32)
+ (int)
#else
- ACE_OS::strcpy (fp, ACE_TEXT ("s"));
+ (wint_t)
#endif
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- ACE_Log_Record::priority_name (log_priority));
+ (log_priority <= LM_WARNING) ?
+ (log_priority <= LM_DEBUG) ?
+ (log_priority <= LM_TRACE) ?
+ (log_priority == LM_SHUTDOWN) ?
+ ACE_TEXT('S') : ACE_TEXT('T') : ACE_TEXT('D') :
+ (log_priority <= LM_NOTICE) ?
+ (log_priority == LM_INFO) ?
+ ACE_TEXT('I') : ACE_TEXT('N') : ACE_TEXT('W') :
+ (log_priority <= LM_CRITICAL) ?
+ (log_priority <= LM_ERROR) ?
+ (log_priority == LM_STARTUP) ?
+ ACE_TEXT('U') : ACE_TEXT('E') : ACE_TEXT('C') :
+ (log_priority <= LM_EMERGENCY) ?
+ (log_priority == LM_ALERT) ?
+ ACE_TEXT('A') : ACE_TEXT('!') : ACE_TEXT('?'));
+ }
+ else
+ {
+ this_len = ACE_OS::sprintf
+ (bp, format,
+#if !defined (ACE_USES_WCHAR) || defined (ACE_WIN32)
+ (int)
+#else
+ (wint_t)
+#endif
+ (log_priority <= LM_WARNING) ?
+ (log_priority <= LM_DEBUG) ?
+ (log_priority <= LM_TRACE) ?
+ (log_priority == LM_SHUTDOWN) ?
+ ACE_TEXT('S') : ACE_TEXT('T') : ACE_TEXT('D') :
+ (log_priority <= LM_NOTICE) ?
+ (log_priority == LM_INFO) ?
+ ACE_TEXT('I') : ACE_TEXT('N') : ACE_TEXT('W') :
+ (log_priority <= LM_CRITICAL) ?
+ (log_priority <= LM_ERROR) ?
+ (log_priority == LM_STARTUP) ?
+ ACE_TEXT('U') : ACE_TEXT('E') : ACE_TEXT('C') :
+ (log_priority <= LM_EMERGENCY) ?
+ (log_priority == LM_ALERT) ?
+ ACE_TEXT('A') : ACE_TEXT('!') : ACE_TEXT('?'));
+ }
+
+ ACE_UPDATE_COUNT (bspace, this_len);
+ }
else
- this_len = ACE_OS::sprintf
- (bp, format,
- ACE_Log_Record::priority_name (log_priority));
- ACE_UPDATE_COUNT (bspace, this_len);
+ {
+ // Nope, print out standard priority_name() string
+
+#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
+ ACE_OS::strcpy (fp, ACE_TEXT ("ls"));
+#else
+ ACE_OS::strcpy (fp, ACE_TEXT ("s"));
+#endif
+ if (can_check)
+ this_len = ACE_OS::snprintf
+ (bp, bspace, format,
+ ACE_Log_Record::priority_name (log_priority));
+ else
+ this_len = ACE_OS::sprintf
+ (bp, format,
+ ACE_Log_Record::priority_name (log_priority));
+ ACE_UPDATE_COUNT (bspace, this_len);
+ }
break;
case 'm': // Format the string assocated with the errno value.
@@ -1533,46 +1629,37 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
case 'S': // format the string for with this signal number.
{
- int sig = va_arg (argp, int);
-#if defined (ACE_HAS_SYS_SIGLIST)
- if (sig >= 0 && sig < ACE_NSIG)
- {
- ACE_OS::strcpy (fp, ACE_TEXT ("s"));
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format, _sys_siglist[sig]);
- else
- this_len = ACE_OS::sprintf
- (bp, format, _sys_siglist[sig]);
- }
- else
- {
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace,
- ACE_TEXT("<unknown signal> %d"), sig);
- else
- this_len = ACE_OS::sprintf
- (bp, ACE_TEXT ("<unknown signal> %d"), sig);
- }
-#else
+ const int sig = va_arg (argp, int);
+ ACE_OS::strcpy (fp, ACE_TEXT ("s"));
if (can_check)
this_len = ACE_OS::snprintf
- (bp, bspace, ACE_TEXT ("signal %d"), sig);
+ (bp, bspace, format, ACE_OS::strsignal(sig));
else
this_len = ACE_OS::sprintf
- (bp, ACE_TEXT ("signal %d"), sig);
-#endif /* ACE_HAS_SYS_SIGLIST */
+ (bp, format, ACE_OS::strsignal(sig));
ACE_UPDATE_COUNT (bspace, this_len);
break;
}
case 'D': // Format the timestamp in format:
- // Weekday Month day year hour:minute:sec.usec
+ // yyyy-mm-dd hour:minute:sec.usec
+ // This is a maximum of 27 characters
+ // including terminator.
{
- ACE_TCHAR day_and_time[35];
- ACE::timestamp (day_and_time,
- sizeof day_and_time / sizeof (ACE_TCHAR));
+ ACE_TCHAR day_and_time[27];
+ // Did we find the flag indicating a time value argument
+ if (format[1] == ACE_TEXT('#'))
+ {
+ ACE_Time_Value* time_value = va_arg (argp, ACE_Time_Value*);
+ ACE::timestamp (*time_value,
+ day_and_time,
+ sizeof (day_and_time) / sizeof (ACE_TCHAR));
+ }
+ else
+ {
+ ACE::timestamp (day_and_time,
+ sizeof (day_and_time) / sizeof (ACE_TCHAR));
+ }
#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
ACE_OS::strcpy (fp, ACE_TEXT ("ls"));
#else
@@ -1588,22 +1675,41 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
}
case 'T': // Format the timestamp in
- // hour:minute:sec:usec format.
+ // hour:minute:sec.usec format.
{
- ACE_TCHAR day_and_time[35];
+ ACE_TCHAR day_and_time[27];
#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
ACE_OS::strcpy (fp, ACE_TEXT ("ls"));
#else
ACE_OS::strcpy (fp, ACE_TEXT ("s"));
#endif
- if (can_check)
- this_len = ACE_OS::snprintf
- (bp, bspace, format,
- ACE::timestamp (day_and_time, sizeof day_and_time / sizeof (ACE_TCHAR)));
+ // Did we find the flag indicating a time value argument
+ if (format[1] == ACE_TEXT('#'))
+ {
+ ACE_Time_Value* time_value = va_arg (argp, ACE_Time_Value*);
+ if (can_check)
+ this_len = ACE_OS::snprintf
+ (bp, bspace, format,
+ ACE::timestamp (*time_value,
+ day_and_time,
+ sizeof day_and_time / sizeof (ACE_TCHAR)));
+ else
+ this_len = ACE_OS::sprintf
+ (bp, format, ACE::timestamp (*time_value,
+ day_and_time,
+ sizeof day_and_time / sizeof (ACE_TCHAR)));
+ }
else
- this_len = ACE_OS::sprintf
- (bp, format, ACE::timestamp (day_and_time,
- sizeof day_and_time / sizeof (ACE_TCHAR)));
+ {
+ if (can_check)
+ this_len = ACE_OS::snprintf
+ (bp, bspace, format,
+ ACE::timestamp (day_and_time, sizeof day_and_time / sizeof (ACE_TCHAR)));
+ else
+ this_len = ACE_OS::sprintf
+ (bp, format, ACE::timestamp (day_and_time,
+ sizeof day_and_time / sizeof (ACE_TCHAR)));
+ }
ACE_UPDATE_COUNT (bspace, this_len);
break;
}
@@ -1620,27 +1726,12 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
ACE_OS::sprintf (bp,
format,
static_cast <unsigned> (ACE_Thread::self ()));
-#elif defined (DIGITAL_UNIX)
- ACE_OS::strcpy (fp, ACE_TEXT ("u"));
- {
- int id =
-# if defined (ACE_HAS_THREADS)
- pthread_getselfseq_np ();
-# else
- ACE_Thread::self ();
-# endif /* ACE_HAS_THREADS */
-
- if (can_check)
- this_len = ACE_OS::snprintf (bp, bspace, format, id);
- else
- this_len = ACE_OS::sprintf (bp, format, id);
- }
#else
ACE_hthread_t t_id;
- ACE_Thread::self (t_id);
+ ACE_OS::thr_self (t_id);
-# if defined (ACE_MVS) || defined (ACE_TANDEM_T1248_PTHREADS)
- // MVS's pthread_t is a struct... yuck. So use the ACE 5.0
+# if defined (ACE_TANDEM_T1248_PTHREADS)
+ // tandem pthread_t is a struct... yuck. So use the ACE 5.0
// code for it.
ACE_OS::strcpy (fp, ACE_TEXT ("u"));
if (can_check)
@@ -1660,7 +1751,7 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
else
this_len = ACE_OS::sprintf
(bp, format, (unsigned long)t_id);
-# endif /* ACE_MWS || ACE_TANDEM_T1248_PTHREADS */
+# endif /* ACE_TANDEM_T1248_PTHREADS */
#endif /* ACE_WIN32 */
ACE_UPDATE_COUNT (bspace, this_len);
@@ -2376,32 +2467,6 @@ ACE_Log_Msg::thr_desc (ACE_Thread_Descriptor *td)
td->acquire_release ();
}
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) && defined(ACE_LEGACY_MODE)
-ACE_SEH_EXCEPT_HANDLER
-ACE_Log_Msg::seh_except_selector (void)
-{
- return ACE_OS_Object_Manager::seh_except_selector ();
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_Log_Msg::seh_except_selector (ACE_SEH_EXCEPT_HANDLER n)
-{
- return ACE_OS_Object_Manager::seh_except_selector (n);
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_Log_Msg::seh_except_handler (void)
-{
- return ACE_OS_Object_Manager::seh_except_handler ();
-}
-
-ACE_SEH_EXCEPT_HANDLER
-ACE_Log_Msg::seh_except_handler (ACE_SEH_EXCEPT_HANDLER n)
-{
- return ACE_OS_Object_Manager::seh_except_handler (n);
-}
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS && ACE_LEGACY_MODE */
-
ACE_Log_Msg_Backend *
ACE_Log_Msg::msg_backend (ACE_Log_Msg_Backend *b)
{
diff --git a/ACE/ace/Log_Msg.h b/ACE/ace/Log_Msg.h
index a59e34390f1..14a6e7cb33d 100644
--- a/ACE/ace/Log_Msg.h
+++ b/ACE/ace/Log_Msg.h
@@ -24,7 +24,6 @@
#include "ace/Default_Constants.h"
#include "ace/Log_Priority.h"
#include "ace/os_include/os_limits.h"
-#include "ace/Atomic_Op.h"
#include "ace/Synch_Traits.h"
// The ACE_ASSERT macro used to be defined here, include ace/Assert.h
@@ -57,7 +56,7 @@
#if !defined (ACE_HEX_DUMP)
#define ACE_HEX_DUMP(X) \
do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
ace___->conditional_set (__FILE__, __LINE__, 0, __ace_error); \
ace___->log_hexdump X; \
@@ -66,7 +65,7 @@
#if !defined (ACE_RETURN)
#define ACE_RETURN(Y) \
do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
ace___->set (__FILE__, __LINE__, Y, __ace_error, ace___->restart (), \
ace___->msg_ostream (), ace___->msg_callback ()); \
@@ -76,7 +75,7 @@
#if !defined (ACE_ERROR_RETURN)
#define ACE_ERROR_RETURN(X, Y) \
do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
ace___->conditional_set (__FILE__, __LINE__, Y, __ace_error); \
ace___->log X; \
@@ -86,7 +85,7 @@
#if !defined (ACE_ERROR)
#define ACE_ERROR(X) \
do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
ace___->conditional_set (__FILE__, __LINE__, -1, __ace_error); \
ace___->log X; \
@@ -95,7 +94,7 @@
#if !defined (ACE_DEBUG)
#define ACE_DEBUG(X) \
do { \
- int __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
ace___->conditional_set (__FILE__, __LINE__, 0, __ace_error); \
ace___->log X; \
@@ -105,7 +104,8 @@
#define ACE_ERROR_INIT(VALUE, FLAGS) \
do { \
ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->set_flags (FLAGS); ace___->op_status (VALUE); \
+ ace___->set_flags (FLAGS); \
+ ace___->op_status (VALUE); \
} while (0)
#endif
#if !defined (ACE_ERROR_BREAK)
@@ -123,7 +123,6 @@
// that #define STDERR or THREAD (e.g. LynxOS). We simply #undef
// these macros as there is no way to save the macro definition using
// the pre-processor. See Bugzilla Bug #299 for more info.
-
#if defined (STDERR)
# undef STDERR
#endif /* STDERR */
@@ -144,6 +143,7 @@ class ACE_Log_Msg_Backend;
// Forward declaration
class ACE_Thread_Descriptor;
class ACE_Log_Record;
+template<typename M, typename T> class ACE_Atomic_Op;
/**
* @class ACE_Log_Msg
@@ -183,7 +183,7 @@ public:
{
/// Write messages to stderr.
STDERR = 1,
- /// Write messages to the local client logger deamon.
+ /// Write messages to the local client logger daemon.
LOGGER = 2,
/// Write messages to the ostream * stored in thread-specific
/// storage.
@@ -404,27 +404,6 @@ public:
*/
void thr_desc (ACE_Thread_Descriptor *td);
-#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) && defined(ACE_LEGACY_MODE)
- // These functions are disabled without ACE_LEGACY_MODE
- // because the *semantics* have changed (the objects are no longer
- // TSS).
- /// Get TSS exception action.
- /// @note The action is no longer TSS, they are global!
- ACE_SEH_EXCEPT_HANDLER seh_except_selector (void);
-
- /// Set TSS exception action.
- /// @note The action is no longer TSS, they are global!
- ACE_SEH_EXCEPT_HANDLER seh_except_selector (ACE_SEH_EXCEPT_HANDLER);
-
- /// Get TSS exception handler.
- /// @note The handler is no longer TSS, they are global!
- ACE_SEH_EXCEPT_HANDLER seh_except_handler (void);
-
- /// Set TSS exception handler.
- /// @note The handler is no longer TSS, they are global!
- ACE_SEH_EXCEPT_HANDLER seh_except_handler (ACE_SEH_EXCEPT_HANDLER);
-#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS && ACE_LEGACY_MODE */
-
/// Stop tracing status on a per-thread basis...
void stop_tracing (void);
@@ -525,11 +504,16 @@ public:
* - '@': print a void* pointer (in hexadecimal)
* - 'r': call the function pointed to by the corresponding argument
* - 'R': print return status
- * - 'S': print out the appropriate _sys_siglist entry corresponding
- * to var-argument.
+ * - 'S': print out the appropriate signal message corresponding
+ * to var-argument, e.g., as done by strsignal()
* - 's': prints a ACE_TCHAR* character string (also see C and W)
- * - 'T': print timestamp in hour:minute:sec:usec format.
+ * - 'T': print timestamp in hour:minute:sec:usec format (plain option,
+ * i.e. without any flags, prints system supplied timestamp;
+ * with '#' flag added expects ACE_Time_Value* in argument list)
* - 'D': print timestamp as Weekday Month day year hour:minute:sec.usec
+ * (plain option, i.e. without any flags, prints system supplied
+ * timestamp; with '#' flag added expects ACE_Time_Value* in
+ * argument list)
* - 't': print thread id (1 if single-threaded)
* - 'u': print as unsigned int
* - 'w': prints a wide character
@@ -649,7 +633,7 @@ private:
/**
* If we're running in the context of an ACE_Thread_Manager this
* will point to the thread descriptor adapter which holds the
- * thread descriptor of the thread. This can be used to repidly
+ * thread descriptor of the thread. This can be used to rapidly
* access all thread data kept in ACE_Thread_Descriptor.
*/
ACE_Thread_Descriptor *thr_desc_;
@@ -759,10 +743,6 @@ ACE_TSS_CLEANUP_NAME (void *ptr);
# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */
#endif /* ACE_MT_SAFE */
-#if defined(ACE_LEGACY_MODE)
-#include "ace/Log_Msg_Callback.h"
-#endif /* ACE_LEGACY_MODE */
-
#if defined (__ACE_INLINE__)
#include "ace/Log_Msg.inl"
#endif /* __ACE_INLINE__ */
diff --git a/ACE/ace/Log_Msg_Backend.cpp b/ACE/ace/Log_Msg_Backend.cpp
index de9b9c22b7b..88330942d6c 100644
--- a/ACE/ace/Log_Msg_Backend.cpp
+++ b/ACE/ace/Log_Msg_Backend.cpp
@@ -2,7 +2,7 @@
#include "ace/Log_Msg_Backend.h"
-ACE_RCSID(ace, Log_Msg_Backend, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Log_Msg_Callback.cpp b/ACE/ace/Log_Msg_Callback.cpp
index 2fcf5206dd1..726879c0b7b 100644
--- a/ACE/ace/Log_Msg_Callback.cpp
+++ b/ACE/ace/Log_Msg_Callback.cpp
@@ -2,7 +2,7 @@
#include "ace/Log_Msg_Callback.h"
-ACE_RCSID(ace, Log_Msg_Callback, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Log_Msg_Callback.h b/ACE/ace/Log_Msg_Callback.h
index ecd8641dbb3..2a372ed76b8 100644
--- a/ACE/ace/Log_Msg_Callback.h
+++ b/ACE/ace/Log_Msg_Callback.h
@@ -35,7 +35,7 @@ class ACE_Log_Record;
* Log_Msg class and make sure that they turn on the
* ACE_Log_Msg::MSG_CALLBACK flag.
*
- * Your <log> routine is called with an instance of
+ * Your log() routine is called with an instance of
* ACE_Log_Record. From this class, you can get the log
* message, the verbose log message, message type, message
* priority, and so on.
@@ -43,9 +43,9 @@ class ACE_Log_Record;
* Remember that there is one Log_Msg object per thread.
* Therefore, you may need to register your callback object with
* many ACE_Log_Msg objects (and have the correct
- * synchronization in the <log> method) or have a separate
+ * synchronization in the log() method) or have a separate
* callback object per Log_Msg object. Moreover,
- * <ACE_Log_Msg_Callbacks> are not inherited when a new thread
+ * ACE_Log_Msg_Callbacks are not inherited when a new thread
* is spawned because it might have been allocated off of the
* stack of the original thread, in which case all hell would
* break loose... Therefore, you'll need to reset these in each
diff --git a/ACE/ace/Log_Msg_IPC.cpp b/ACE/ace/Log_Msg_IPC.cpp
index f78a56564b6..35a9eb01ebc 100644
--- a/ACE/ace/Log_Msg_IPC.cpp
+++ b/ACE/ace/Log_Msg_IPC.cpp
@@ -5,7 +5,7 @@
#include "ace/CDR_Stream.h"
#include "ace/Truncate.h"
-ACE_RCSID(ace, Log_Msg_IPC, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Log_Msg_NT_Event_Log.cpp b/ACE/ace/Log_Msg_NT_Event_Log.cpp
index e22170c01dc..344b286ea92 100644
--- a/ACE/ace/Log_Msg_NT_Event_Log.cpp
+++ b/ACE/ace/Log_Msg_NT_Event_Log.cpp
@@ -10,7 +10,7 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(ace, Log_Msg_NT_Event_Log, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -106,11 +106,16 @@ ACE_Log_Msg_NT_Event_Log::log (ACE_Log_Record &log_record)
// CR-LF. Newline characters on their own do not appear correctly in
// the event viewer. We allow for a doubling in the size of the msg
// data for the worst case of all newlines.
- const ACE_TCHAR* src_msg_data = log_record.msg_data ();
- ACE_TCHAR msg_data [ACE_Log_Record::MAXLOGMSGLEN * 2];
+ const ACE_TCHAR *src_msg_data = log_record.msg_data ();
+ ACE_TCHAR msg_data [(ACE_Log_Record::MAXLOGMSGLEN * 2) + 1];
+
+ size_t maxlen = ACE_Log_Record::MAXLOGMSGLEN;
+ if (ACE_Log_Record::MAXLOGMSGLEN > log_record.msg_data_len ())
+ maxlen = log_record.msg_data_len ();
+ size_t end = 0;
for (size_t i = 0, j = 0;
- i < log_record.msg_data_len ();
+ i < maxlen;
++i)
{
if (src_msg_data[i] == '\n')
@@ -120,7 +125,10 @@ ACE_Log_Msg_NT_Event_Log::log (ACE_Log_Record &log_record)
}
else
msg_data[j++] = src_msg_data[i];
+
+ end = j;
}
+ msg_data[end] = '\0';
// Map the ACE log record type to an event log type.
WORD event_type;
diff --git a/ACE/ace/Log_Msg_UNIX_Syslog.cpp b/ACE/ace/Log_Msg_UNIX_Syslog.cpp
index dba78bcd571..8fe420bc030 100644
--- a/ACE/ace/Log_Msg_UNIX_Syslog.cpp
+++ b/ACE/ace/Log_Msg_UNIX_Syslog.cpp
@@ -110,7 +110,7 @@ ACE_Log_Msg_UNIX_Syslog::log (ACE_Log_Record &log_record)
if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::VERBOSE)
|| ACE_BIT_ENABLED (flags, ACE_Log_Msg::VERBOSE_LITE))
{
- ACE_TCHAR date_and_time[35];
+ ACE_TCHAR date_and_time[27];
if (0 == ACE::timestamp (date_and_time, sizeof (date_and_time), 1))
ACE_OS::strcpy (date_and_time, ACE_TEXT ("<time error>"));
const ACE_TCHAR *prio_name =
diff --git a/ACE/ace/Log_Msg_UNIX_Syslog.h b/ACE/ace/Log_Msg_UNIX_Syslog.h
index 01d5476360d..d9cb45f3e65 100644
--- a/ACE/ace/Log_Msg_UNIX_Syslog.h
+++ b/ACE/ace/Log_Msg_UNIX_Syslog.h
@@ -23,6 +23,7 @@
#if !defined (ACE_LACKS_UNIX_SYSLOG)
#include "ace/Log_Msg_Backend.h"
+#include "ace/Basic_Types.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Log_Record.cpp b/ACE/ace/Log_Record.cpp
index 55ebb78c821..299b66bb480 100644
--- a/ACE/ace/Log_Record.cpp
+++ b/ACE/ace/Log_Record.cpp
@@ -5,7 +5,6 @@
#include "ace/Log_Msg.h"
#include "ace/ACE.h"
#include "ace/OS_NS_stdio.h"
-#include "ace/OS_NS_time.h"
#include "ace/CDR_Stream.h"
#include "ace/Auto_Ptr.h"
#include "ace/Truncate.h"
@@ -21,8 +20,6 @@
#include "ace/OS_Memory.h"
-ACE_RCSID(ace, Log_Record, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Log_Record)
@@ -216,18 +213,16 @@ ACE_Log_Record::format_msg (const ACE_TCHAR host_name[],
u_long verbose_flag,
ACE_TCHAR *verbose_msg)
{
- /* 0123456789012345678901234 */
- /* Oct 18 14:25:36.000 1989<nul> */
- ACE_TCHAR timestamp[26]; // Only used by VERBOSE and VERBOSE_LITE.
+ /* 012345678901234567890123456 */
+ /* yyyy-mm-dd hh:mm:ss.mmmmmm<nul> */
+ ACE_TCHAR timestamp[27]; // Only used by VERBOSE and VERBOSE_LITE.
// The sprintf format needs to be different for Windows and POSIX
// in the wide-char case.
#if defined (ACE_WIN32) || !defined (ACE_USES_WCHAR)
- const ACE_TCHAR *time_fmt = ACE_TEXT ("%s.%03ld %s");
const ACE_TCHAR *verbose_fmt = ACE_TEXT ("%s@%s@%u@%s@%s");
const ACE_TCHAR *verbose_lite_fmt = ACE_TEXT ("%s@%s@%s");
#else
- const ACE_TCHAR *time_fmt = ACE_TEXT ("%ls.%03ld %ls");
const ACE_TCHAR *verbose_fmt = ACE_TEXT ("%ls@%ls@%u@%ls@%ls");
const ACE_TCHAR *verbose_lite_fmt = ACE_TEXT ("%ls@%ls@%ls");
#endif
@@ -237,23 +232,16 @@ ACE_Log_Record::format_msg (const ACE_TCHAR host_name[],
|| ACE_BIT_ENABLED (verbose_flag,
ACE_Log_Msg::VERBOSE_LITE))
{
- time_t const now = this->secs_;
- ACE_TCHAR ctp[26]; // 26 is a magic number...
-
- if (ACE_OS::ctime_r (&now, ctp, sizeof ctp / sizeof (ACE_TCHAR)) == 0)
+ ACE_Time_Value reftime (this->secs_, this->usecs_);
+ if (0 == ACE::timestamp (reftime,
+ timestamp,
+ sizeof (timestamp) / sizeof (ACE_TCHAR)))
return -1;
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
-
- ctp[19] = '\0'; // NUL-terminate after the time.
- ctp[24] = '\0'; // NUL-terminate after the date.
-
- ACE_OS::sprintf (timestamp,
- time_fmt,
- ctp + 4,
- ((long) this->usecs_) / 1000,
- ctp + 20);
+ // Historical timestamp in VERBOSE[_LITE] used 3 places for partial sec.
+ // 012345678901234567890123456
+ // 1989-10-18 14:25:36.123<nul>
+ timestamp[23] = '\0';
}
if (ACE_BIT_ENABLED (verbose_flag,
diff --git a/ACE/ace/Log_Record.h b/ACE/ace/Log_Record.h
index a48b9a322bf..e4c9dcff4bf 100644
--- a/ACE/ace/Log_Record.h
+++ b/ACE/ace/Log_Record.h
@@ -56,7 +56,7 @@ public:
// = Initialization
/**
- * Create a <Log_Record> and set its priority, time stamp, and
+ * Create a Log_Record and set its priority, time stamp, and
* process id.
*/
ACE_Log_Record (void);
@@ -72,7 +72,7 @@ public:
/// Write the contents of the logging record to the appropriate
- /// <FILE> if the corresponding type is enabled.
+ /// FILE if the corresponding type is enabled.
int print (const ACE_TCHAR host_name[],
u_long verbose_flag,
#if !defined (ACE_HAS_WINCE)
@@ -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);
@@ -101,62 +101,46 @@ public:
static const ACE_TCHAR *priority_name (ACE_Log_Priority p);
/// IMPORTANT: @a name must be a statically allocated const ACE_TCHAR*
- static void priority_name (ACE_Log_Priority p,
- const ACE_TCHAR *name);
+ static void priority_name (ACE_Log_Priority p, const ACE_TCHAR *name);
- // = Marshall/demarshall
- /// Encode the @c Log_Record for transmission on the network.
- /// @deprecated The encode() and decode() metods are deprecated; please use
- /// the CDR insertion and extraction operators to properly encode and decode
- /// ACE_Log_Record objects.
- void encode (void);
-
- /// Decode the @c Log_Record received from the network.
- /// @deprecated The encode() and decode() metods are deprecated; please use
- /// the CDR insertion and extraction operators to properly encode and decode
- /// ACE_Log_Record objects.
- void decode (void);
-
- // = Set/get methods
-
- /// Get the type of the <Log_Record>.
+ /// Get the type of the Log_Record.
ACE_UINT32 type (void) const;
- /// Set the type of the <Log_Record>.
+ /// Set the type of the Log_Record.
void type (ACE_UINT32);
/**
- * Get the priority of the <Log_Record> <type_>. This is computed
+ * Get the priority of the Log_Record <type_>. This is computed
* as the base 2 logarithm of <type_> (which must be a power of 2,
- * as defined by the enums in <ACE_Log_Priority>).
+ * as defined by the enums in ACE_Log_Priority).
*/
u_long priority (void) const;
- /// Set the priority of the <Log_Record> <type_> (which must be a
- /// power of 2, as defined by the enums in <ACE_Log_Priority>).
+ /// Set the priority of the Log_Record <type_> (which must be a
+ /// power of 2, as defined by the enums in ACE_Log_Priority).
void priority (u_long num);
- /// Get the total length of the <Log_Record>, which includes the
+ /// Get the total length of the Log_Record, which includes the
/// size of the various data member fields.
long length (void) const;
- /// Set the total length of the <Log_Record>, which needs to account for
+ /// Set the total length of the Log_Record, which needs to account for
/// the size of the various data member fields.
void length (long);
- /// Get the time stamp of the <Log_Record>.
+ /// Get the time stamp of the Log_Record.
ACE_Time_Value time_stamp (void) const;
- /// Set the time stamp of the <Log_Record>.
+ /// Set the time stamp of the Log_Record.
void time_stamp (const ACE_Time_Value &ts);
- /// Get the process id of the <Log_Record>.
+ /// Get the process id of the Log_Record.
long pid (void) const;
- /// Set the process id of the <Log_Record>.
+ /// Set the process id of the Log_Record.
void pid (long);
- /// Get the message data of the <Log_Record>.
+ /// Get the message data of the Log_Record.
const ACE_TCHAR *msg_data (void) const;
/// Set the message data of the record. If @a data is longer than the
@@ -164,7 +148,7 @@ public:
/// fit. If such a reallocation faisl, this method returns -1, else 0.
int msg_data (const ACE_TCHAR *data);
- /// Get the size of the message data of the <Log_Record>, including
+ /// Get the size of the message data of the Log_Record, including
/// a byte for the NUL.
size_t msg_data_len (void) const;
diff --git a/ACE/ace/Log_Record.inl b/ACE/ace/Log_Record.inl
index 1973a949746..bf283301335 100644
--- a/ACE/ace/Log_Record.inl
+++ b/ACE/ace/Log_Record.inl
@@ -16,37 +16,6 @@ ACE_Log_Record::~ACE_Log_Record (void)
delete [] this->msg_data_;
}
-ACE_INLINE void
-ACE_Log_Record::encode (void)
-{
- ACE_TRACE ("ACE_Log_Record::encode");
- this->length_ = ACE_HTONL (this->length_);
- this->type_ = ACE_HTONL (this->type_);
- // Make sure we don't enclose the sec() and usec() fields until
- // they've been normalized.
- // secs_ is commented out because it can be 64 bits. This method is
- // deprecated; use the CDR operations instead.
- // this->secs_ = ACE_HTONL (this->secs_);
- this->usecs_ = ACE_HTONL (this->usecs_);
- this->pid_ = ACE_HTONL (this->pid_);
-}
-
-ACE_INLINE void
-ACE_Log_Record::decode (void)
-{
- ACE_TRACE ("ACE_Log_Record::decode");
-#if !defined (ACE_LACKS_NTOHL)
- ACE_Time_Value tv (this->secs_,
- ntohl (this->usecs_));
-
- this->secs_ = tv.sec ();
- this->usecs_ = tv.usec ();
- this->type_ = ntohl (this->type_);
- this->pid_ = ntohl (this->pid_);
- this->length_ = ntohl (this->length_);
-#endif /* ACE_LACKS_NTOHL */
-}
-
ACE_INLINE ACE_UINT32
ACE_Log_Record::type (void) const
{
diff --git a/ACE/ace/Logging_Strategy.cpp b/ACE/ace/Logging_Strategy.cpp
index f4270527e02..ae7e7d45f6f 100644
--- a/ACE/ace/Logging_Strategy.cpp
+++ b/ACE/ace/Logging_Strategy.cpp
@@ -3,6 +3,7 @@
#include "ace/Logging_Strategy.h"
#include "ace/Service_Config.h"
#include "ace/ACE.h"
+#include "ace/ACE_export.h"
#include "ace/Get_Opt.h"
// FUZZ: disable check_for_streams_include
@@ -15,10 +16,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID (ace,
- Logging_Strategy,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Parse the string containing (thread) priorities and set them
@@ -386,11 +383,6 @@ ACE_Logging_Strategy::init (int argc, ACE_TCHAR *argv[])
if (this->reactor () == 0)
// Use singleton.
this->reactor (ACE_Reactor::instance ());
-
- this->reactor ()->schedule_timer
- (this, 0,
- ACE_Time_Value (this->interval_),
- ACE_Time_Value (this->interval_));
}
}
// Now set the flags for Log_Msg
@@ -551,6 +543,43 @@ ACE_Logging_Strategy::handle_timeout (const ACE_Time_Value &,
return 0;
}
+int
+ACE_Logging_Strategy::handle_close (ACE_HANDLE,
+ ACE_Reactor_Mask)
+{
+ // This will reset reactor member and cancel timer events.
+ this->reactor (0);
+ return 0;
+}
+
+void
+ACE_Logging_Strategy::reactor (ACE_Reactor *r)
+{
+ if (this->reactor () != r)
+ {
+ if (this->reactor () && this->interval_ > 0 && this->max_size_ > 0)
+ {
+ this->reactor ()->cancel_timer (this);
+ }
+
+ ACE_Service_Object::reactor (r);
+
+ if (this->reactor ())
+ {
+ this->reactor ()->schedule_timer
+ (this, 0,
+ ACE_Time_Value (this->interval_),
+ ACE_Time_Value (this->interval_));
+ }
+ }
+}
+
+ACE_Reactor *
+ACE_Logging_Strategy::reactor (void) const
+{
+ return ACE_Service_Object::reactor ();
+}
+
void
ACE_Logging_Strategy::log_msg (ACE_Log_Msg *log_msg)
{
@@ -563,4 +592,19 @@ ACE_END_VERSIONED_NAMESPACE_DECL
// svc.conf file to dynamically initialize the state of the
// Logging_Strategy.
+ACE_STATIC_SVC_DEFINE (ACE_Logging_Strategy,
+ ACE_TEXT ("Logging_Strategy"),
+ ACE_Service_Type::SERVICE_OBJECT,
+ &ACE_SVC_NAME (ACE_Logging_Strategy),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0)
+
ACE_FACTORY_DEFINE (ACE, ACE_Logging_Strategy)
+
+// _get_dll_unload_policy() prevents ACE from being unloaded and having its
+// framework components run down if/when the Logging Strategy is unloaded.
+extern "C" ACE_Export int
+_get_dll_unload_policy()
+{
+ return ACE_DLL_UNLOAD_POLICY_LAZY;
+}
diff --git a/ACE/ace/Logging_Strategy.h b/ACE/ace/Logging_Strategy.h
index d1436a6380c..87bc0bdb727 100644
--- a/ACE/ace/Logging_Strategy.h
+++ b/ACE/ace/Logging_Strategy.h
@@ -30,7 +30,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_Logging_Strategy
*
- * @brief This class provides a way to dynamically configure the ACE logging
+ * @brief
+ * This class provides a way to dynamically configure the ACE logging
* mechanism at run time as well as enable the mechanisms for limiting
* log file size and log file backup/rotation capability.
*
@@ -100,6 +101,22 @@ public:
const void* arg);
/**
+ * This function helps to cancel timer events for this logging strategy
+ * in reactor during shutdown.
+ */
+ virtual int handle_close (ACE_HANDLE,
+ ACE_Reactor_Mask);
+
+ /**
+ * Reactor accessors. If reactor changes then we need remove this
+ * event handler from previous reactor and scheduler for timer events
+ * in a new one.
+ */
+ virtual void reactor (ACE_Reactor *r);
+
+ virtual ACE_Reactor * reactor (void) const;
+
+ /**
* Parse arguments provided in svc.conf file.
* @arg '-f' Pass in the flags (such as OSTREAM, STDERR, LOGGER, VERBOSE,
* SILENT, VERBOSE_LITE) used to control logging.
@@ -154,16 +171,16 @@ protected:
/// Program name to be used for %n format specifier.
ACE_TCHAR *program_name_;
- /// If non-0 then wipeout the logfile, otherwise append to it.
- /// Default value is 0.
+ /// If true then wipeout the logfile, otherwise append to it.
+ /// Default value is false.
bool wipeout_logfile_;
- /// If non-0 we have a maximum number of log files we can write.
- /// Default value is 0, i.e., no maximum number.
+ /// If true we have a maximum number of log files we can write.
+ /// Default value is false, i.e., no maximum number.
bool fixed_number_;
- /// If non-0 we order the files as we rotate them. Default value
- /// is 0, i.e., we do not rotate files by default.
+ /// If true we order the files as we rotate them. Default value
+ /// is false, i.e., we do not rotate files by default.
bool order_files_;
/// This tells us in what file we last wrote. It will be increased
@@ -190,6 +207,8 @@ protected:
ACE_END_VERSIONED_NAMESPACE_DECL
+ACE_STATIC_SVC_DECLARE_EXPORT(ACE, ACE_Logging_Strategy)
+
ACE_FACTORY_DECLARE (ACE, ACE_Logging_Strategy)
#endif /* ACE_LOGGING_STRATEGY_H */
diff --git a/ACE/ace/MEM_Acceptor.cpp b/ACE/ace/MEM_Acceptor.cpp
index a6b000a29fc..8cbd63c1ddd 100644
--- a/ACE/ace/MEM_Acceptor.cpp
+++ b/ACE/ace/MEM_Acceptor.cpp
@@ -13,7 +13,7 @@
#include "ace/MEM_Acceptor.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, MEM_Acceptor, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/MEM_Acceptor.h b/ACE/ace/MEM_Acceptor.h
index 9d82579170c..99e17774eca 100644
--- a/ACE/ace/MEM_Acceptor.h
+++ b/ACE/ace/MEM_Acceptor.h
@@ -120,10 +120,6 @@ public:
/// Returns 0 if successful, else -1.
int get_local_addr (ACE_MEM_Addr &) const;
- /// Accessor to the mmap options.
- /// @deprecated This method has been deprecated.
- ACE_MEM_SAP::MALLOC_OPTIONS& malloc_options (void);
-
// = Meta-type info
typedef ACE_MEM_Addr PEER_ADDR;
typedef ACE_MEM_Stream PEER_STREAM;
diff --git a/ACE/ace/MEM_Acceptor.inl b/ACE/ace/MEM_Acceptor.inl
index 39e6807f69c..5f85e5de1bf 100644
--- a/ACE/ace/MEM_Acceptor.inl
+++ b/ACE/ace/MEM_Acceptor.inl
@@ -91,13 +91,4 @@ ACE_MEM_Acceptor::init_buffer_size (ACE_OFF_T bytes)
this->malloc_options_.minimum_bytes_ = bytes;
}
-ACE_INLINE ACE_MEM_SAP::MALLOC_OPTIONS &
-ACE_MEM_Acceptor::malloc_options (void)
-{
- // @@ This function has been deprecated and will be removed in the
- // future.
-
- return this->malloc_options_;
-}
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/MEM_Addr.cpp b/ACE/ace/MEM_Addr.cpp
index e86682d8b5c..206dc6cd64c 100644
--- a/ACE/ace/MEM_Addr.cpp
+++ b/ACE/ace/MEM_Addr.cpp
@@ -15,10 +15,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/os_include/os_netdb.h"
-ACE_RCSID (ace,
- MEM_Addr,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_MEM_Addr)
diff --git a/ACE/ace/MEM_Connector.cpp b/ACE/ace/MEM_Connector.cpp
index 6c0a8da9f88..4a9a96c1382 100644
--- a/ACE/ace/MEM_Connector.cpp
+++ b/ACE/ace/MEM_Connector.cpp
@@ -3,7 +3,7 @@
#include "ace/MEM_Connector.h"
-ACE_RCSID(ace, MEM_Connector, "$Id$")
+
#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
diff --git a/ACE/ace/MEM_Connector.h b/ACE/ace/MEM_Connector.h
index a8e3949902e..17aa79f6414 100644
--- a/ACE/ace/MEM_Connector.h
+++ b/ACE/ace/MEM_Connector.h
@@ -141,10 +141,6 @@ public:
/// Set the preferred signaling strategy.
void preferred_strategy (ACE_MEM_IO::Signal_Strategy strategy);
- /// Accessor to underlying malloc options.
- /// @deprecated This method has been deprecated.
- ACE_MEM_SAP::MALLOC_OPTIONS &malloc_options (void);
-
// = Meta-type info
typedef ACE_INET_Addr PEER_ADDR;
typedef ACE_MEM_Stream PEER_STREAM;
diff --git a/ACE/ace/MEM_Connector.inl b/ACE/ace/MEM_Connector.inl
index 024ab5d8b5b..76bd05ba7d7 100644
--- a/ACE/ace/MEM_Connector.inl
+++ b/ACE/ace/MEM_Connector.inl
@@ -18,13 +18,4 @@ ACE_MEM_Connector::preferred_strategy (ACE_MEM_IO::Signal_Strategy strategy)
this->preferred_strategy_ = strategy;
}
-ACE_INLINE ACE_MEM_SAP::MALLOC_OPTIONS &
-ACE_MEM_Connector::malloc_options (void)
-{
- // @@ This function has been deprecated and will be removed in the
- // future.
-
- return this->malloc_options_;
-}
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/MEM_IO.cpp b/ACE/ace/MEM_IO.cpp
index 4fdbd50b72e..b51b5a53c8c 100644
--- a/ACE/ace/MEM_IO.cpp
+++ b/ACE/ace/MEM_IO.cpp
@@ -10,7 +10,7 @@
#include "ace/MEM_IO.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, MEM_IO, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -54,7 +54,7 @@ ACE_Reactive_MEM_IO::recv_buf (ACE_MEM_SAP_Node *&buf,
buf = 0;
return 0;
}
- else if (retv != sizeof (ACE_OFF_T))
+ else if (retv != static_cast <ssize_t> (sizeof (ACE_OFF_T)))
{
// Nothing available or we are really screwed.
buf = 0;
@@ -75,26 +75,26 @@ ACE_Reactive_MEM_IO::send_buf (ACE_MEM_SAP_Node *buf,
{
return -1;
}
-
+
// The offset.
ACE_OFF_T offset =
ACE_Utils::truncate_cast<ACE_OFF_T> (
reinterpret_cast<char *> (buf)
- static_cast<char *> (this->shm_malloc_->base_addr ()));
-
+
// Send the offset value over the socket.
if (ACE::send (this->handle_,
(const char *) &offset,
sizeof (offset),
flags,
- timeout) != sizeof (offset))
+ timeout) != static_cast <ssize_t> (sizeof (offset)))
{
- // unsucessful send, release the memory in the shared-memory.
+ // unsuccessful send, release the memory in the shared-memory.
this->release_buffer (buf);
return -1;
}
-
+
return ACE_Utils::truncate_cast<ssize_t> (buf->size ());
}
@@ -280,12 +280,12 @@ ACE_MT_MEM_IO::recv_buf (ACE_MEM_SAP_Node *&buf,
ACE_GUARD_RETURN (ACE_SYNCH_PROCESS_MUTEX, ace_mon, *this->recv_channel_.lock_, -1);
buf = this->recv_channel_.queue_.read ();
-
+
if (buf != 0)
{
return ACE_Utils::truncate_cast<ssize_t> (buf->size ());
}
-
+
return -1;
}
}
@@ -403,9 +403,9 @@ ACE_MEM_IO::send (const ACE_Message_Block *message_block,
reinterpret_cast<ACE_MEM_SAP_Node *> (
this->deliver_strategy_->acquire_buffer (
ACE_Utils::truncate_cast<ssize_t> (len)));
-
+
size_t n = 0;
-
+
while (message_block != 0)
{
ACE_OS::memcpy (static_cast<char *> (buf->data ()) + n,
@@ -429,145 +429,9 @@ ACE_MEM_IO::send (const ACE_Message_Block *message_block,
0,
timeout);
}
-
- return 0;
-}
-
-#if 0
-ssize_t
-ACE_MEM_IO::recvv (iovec *io_vec,
- const ACE_Time_Value *timeout)
-{
- ACE_TRACE ("ACE_MEM_IO::recvv");
-#if defined (FIONREAD)
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- io_vec->iov_base = 0;
-
- // Check the status of the current socket.
- switch (ACE_OS::select (int (this->get_handle ()) + 1,
- handle_set,
- 0, 0,
- timeout))
- {
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
- // Goes fine, fallthrough to get data
- break;
- }
-
- int inlen;
-
- if (ACE_OS::ioctl (this->get_handle (),
- FIONREAD,
- &inlen) == -1)
- return -1;
- else if (inlen > 0)
- {
- ACE_NEW_RETURN (io_vec->iov_base,
- char[inlen],
- -1);
- io_vec->iov_len = this->recv (io_vec->iov_base,
- inlen);
- return io_vec->iov_len;
- }
- else
- return 0;
-#else
- ACE_UNUSED_ARG (io_vec);
- ACE_UNUSED_ARG (timeout);
- ACE_NOTSUP_RETURN (-1);
-#endif /* FIONREAD */
-}
-
-// Send N char *ptrs and int lengths. Note that the char *'s precede
-// the ints (basically, an varargs version of writev). The count N is
-// the *total* number of trailing arguments, *not* a couple of the
-// number of tuple pairs!
-
-ssize_t
-ACE_MEM_IO::send (size_t n, ...) const
-{
- ACE_TRACE ("ACE_MEM_IO::send");
-
- va_list argp;
- size_t total_tuples = n / 2;
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (size_t i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, ssize_t);
- }
-
- ssize_t result = ACE_OS::sendv (this->get_handle (),
- iovp,
- total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
-}
-
-// This is basically an interface to ACE_OS::readv, that doesn't use
-// the struct iovec_Base explicitly. The ... can be passed as an arbitrary
-// number of (char *ptr, int len) tuples. However, the count N is the
-// *total* number of trailing arguments, *not* a couple of the number
-// of tuple pairs!
-
-ssize_t
-ACE_MEM_IO::recv (size_t n, ...) const
-{
- ACE_TRACE ("ACE_MEM_IO::recv");
-
- va_list argp;
- size_t total_tuples = n / 2;
- iovec *iovp;
-#if defined (ACE_HAS_ALLOCA)
- iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-#else
- ACE_NEW_RETURN (iovp,
- iovec[total_tuples],
- -1);
-#endif /* !defined (ACE_HAS_ALLOCA) */
-
- va_start (argp, n);
-
- for (size_t i = 0; i < total_tuples; i++)
- {
- iovp[i].iov_base = va_arg (argp, char *);
- iovp[i].iov_len = va_arg (argp, ssize_t);
- }
-
- ssize_t result = ACE_OS::recvv (this->get_handle (),
- iovp,
- total_tuples);
-#if !defined (ACE_HAS_ALLOCA)
- delete [] iovp;
-#endif /* !defined (ACE_HAS_ALLOCA) */
- va_end (argp);
- return result;
+ return 0;
}
-#endif /* 0 */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/MEM_IO.inl b/ACE/ace/MEM_IO.inl
index 341305c3fd9..0abaf6d4af4 100644
--- a/ACE/ace/MEM_IO.inl
+++ b/ACE/ace/MEM_IO.inl
@@ -129,7 +129,7 @@ ACE_MEM_IO::send (const void *buf,
const ACE_Time_Value *timeout)
{
ACE_TRACE ("ACE_MEM_IO::send");
-
+
if (this->deliver_strategy_ == 0)
{
return 0;
@@ -138,12 +138,12 @@ ACE_MEM_IO::send (const void *buf,
ACE_MEM_SAP_Node *sbuf =
this->deliver_strategy_->acquire_buffer (
ACE_Utils::truncate_cast<ssize_t> (len));
-
+
if (sbuf == 0)
{
return -1; // Memory buffer not initialized.
}
-
+
ACE_OS::memcpy (sbuf->data (), buf, len);
///
@@ -166,17 +166,17 @@ ACE_MEM_IO::recv (void *buf,
size_t count = 0;
size_t buf_len = this->buf_size_ - this->cur_offset_;
-
+
if (buf_len == 0)
{
ssize_t blen = // Buffer length
this->fetch_recv_buf (flags, timeout);
-
+
if (blen <= 0)
{
return blen;
}
-
+
buf_len = this->buf_size_;
}
diff --git a/ACE/ace/MEM_SAP.cpp b/ACE/ace/MEM_SAP.cpp
index 8a98a3b3d0c..c4a6e572ea7 100644
--- a/ACE/ace/MEM_SAP.cpp
+++ b/ACE/ace/MEM_SAP.cpp
@@ -8,7 +8,7 @@
#include "ace/MEM_SAP.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, MEM_SAP, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/MEM_SAP.h b/ACE/ace/MEM_SAP.h
index a62b25ab2de..796b9de1036 100644
--- a/ACE/ace/MEM_SAP.h
+++ b/ACE/ace/MEM_SAP.h
@@ -42,11 +42,6 @@ class ACE_MEM_IO;
class ACE_MEM_SAP_Node
{
public:
-// friend class ACE_MEM_SAP;
-// friend class ACE_Reactive_MEM_IO;
-// friend class ACE_MT_MEM_IO;
-// friend class ACE_MEM_IO;
-
typedef ACE_Based_Pointer<ACE_MEM_SAP_Node> ACE_MEM_SAP_NODE_PTR;
/// Initialize the node with its capacity.
diff --git a/ACE/ace/MEM_Stream.cpp b/ACE/ace/MEM_Stream.cpp
index 0e8edb9ced7..f6e40b2a01a 100644
--- a/ACE/ace/MEM_Stream.cpp
+++ b/ACE/ace/MEM_Stream.cpp
@@ -8,7 +8,7 @@
#include "ace/MEM_Stream.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, MEM_Stream, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/MEM_Stream.h b/ACE/ace/MEM_Stream.h
index 1a217adfb6e..921ab5b6d28 100644
--- a/ACE/ace/MEM_Stream.h
+++ b/ACE/ace/MEM_Stream.h
@@ -79,48 +79,6 @@ public:
ssize_t send_n (const void *buf, size_t n, int flags);
ssize_t recv_n (void *buf, size_t n, int flags);
-#if 0
- /**
- * Try to send exactly @a len bytes into @a buf from <handle> (uses
- * the <send> call). If <send> blocks for longer than @a timeout the
- * number of bytes actually sent is returned with @c errno == ETIME.
- * If a timeout does not occur, <send_n> return @a len (i.e., the
- * number of bytes requested to be sent).
- */
- ssize_t send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout);
-
- /**
- * Try to recv exactly @a len bytes into @a buf from <handle> (uses
- * the <ACE::recv_n> call). The ACE_Time_Value indicates how long
- * to blocking trying to receive. If @a timeout == 0, the caller
- * will block until action is possible, else will wait until the
- * relative time specified in *@a timeout elapses). If <recv> blocks
- * for longer than @a timeout the number of bytes actually read is
- * returned with @c errno == ETIME. If a timeout does not occur,
- * <recv_n> return @a len (i.e., the number of bytes requested to be
- * read).
- */
- ssize_t recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout);
-
- /**
- * Send an <iovec> of size @a n to the connected socket (uses
- * <ACE::sendv_n>). Will block until all bytes are sent or an error
- * occurs.
- */
- ssize_t sendv_n (const iovec iov[],
- size_t n) const;
-
- /// Receive an <iovec> of size @a n to the connected socket.
- ssize_t recvv_n (iovec iov[],
- size_t n) const;
-#endif /* 0 */
-
// = Selectively close endpoints.
/// Close down the reader.
diff --git a/ACE/ace/MEM_Stream.inl b/ACE/ace/MEM_Stream.inl
index c29459ed35c..20b60415896 100644
--- a/ACE/ace/MEM_Stream.inl
+++ b/ACE/ace/MEM_Stream.inl
@@ -73,108 +73,4 @@ ACE_MEM_Stream::recv_n (void *buf, size_t n, int flags)
return this->recv (buf, n, flags);
}
-#if 0
-ACE_INLINE ssize_t
-ACE_MEM_Stream::recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- len,
- flags,
- timeout);
-}
-
-ACE_INLINE ssize_t
-ACE_MEM_Stream::recv_n (void *buf,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::recv_n");
- return ACE::recv_n (this->get_handle (),
- buf,
- len,
- timeout);
-}
-
-ACE_INLINE ssize_t
-ACE_MEM_Stream::recvv_n (iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::recvv_n");
- return ACE::recvv_n (this->get_handle (),
- iov,
- n,
- timeout);
-}
-
-ACE_INLINE ssize_t
-ACE_MEM_Stream::send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- len,
- flags,
- timeout);
-}
-
-ACE_INLINE ssize_t
-ACE_MEM_Stream::send_n (const void *buf,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::send_n");
- return ACE::send_n (this->get_handle (),
- buf,
- len,
- timeout);
-}
-
-ACE_INLINE ssize_t
-ACE_MEM_Stream::sendv_n (iovec iov[],
- size_t n,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::sendv_n");
- return ACE::sendv_n (this->get_handle (),
- iov,
- n,
- timeout);
-}
-
-ACE_INLINE ssize_t
-ACE_MEM_Stream::send_urg (const void *ptr,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::send_urg");
- return ACE::send (this->get_handle (),
- ptr,
- len,
- MSG_OOB,
- timeout);
-}
-
-ACE_INLINE ssize_t
-ACE_MEM_Stream::recv_urg (void *ptr,
- size_t len,
- const ACE_Time_Value *timeout) const
-{
- ACE_TRACE ("ACE_MEM_Stream::recv_urg");
- return ACE::recv (this->get_handle (),
- ptr,
- len,
- MSG_OOB,
- timeout);
-}
-#endif /* 0 */
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/MMAP_Memory_Pool.cpp b/ACE/ace/MMAP_Memory_Pool.cpp
index a4109687b04..6405e8cbcd2 100644
--- a/ACE/ace/MMAP_Memory_Pool.cpp
+++ b/ACE/ace/MMAP_Memory_Pool.cpp
@@ -18,10 +18,6 @@
#include "ace/MMAP_Memory_Pool.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace,
- MMAP_Memory_Pool,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_MMAP_Memory_Pool)
@@ -44,7 +40,7 @@ ACE_MMAP_Memory_Pool::release (int destroy)
#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
if (destroy)
- this->mmap_.remove ();
+ this->mmap_.remove ();
else
this->mmap_.close ();
return 0;
@@ -69,9 +65,8 @@ ACE_MMAP_Memory_Pool::sync (int flags)
return this->mmap_.sync (len, flags);
}
-// Sync <len> bytes of the memory region to the backing store starting
-// at <addr_>.
-
+/// Sync @a len bytes of the memory region to the backing store starting
+/// at <addr_>.
int
ACE_MMAP_Memory_Pool::sync (void *addr, size_t len, int flags)
{
@@ -377,7 +372,7 @@ ACE_MMAP_Memory_Pool::init_acquire (size_t nbytes,
void *result = this->acquire (nbytes, rounded_bytes);
// After the first time, reset the flag so that subsequent calls
// will use MAP_FIXED
- if (use_fixed_addr_ == ACE_MMAP_Memory_Pool_Options::FIRSTCALL_FIXED)
+ if (this->use_fixed_addr_ == ACE_MMAP_Memory_Pool_Options::FIRSTCALL_FIXED)
{
ACE_SET_BITS (flags_, MAP_FIXED);
}
diff --git a/ACE/ace/Makefile.am b/ACE/ace/Makefile.am
index 762942fbcae..6961e42953d 100644
--- a/ACE/ace/Makefile.am
+++ b/ACE/ace/Makefile.am
@@ -342,8 +342,7 @@ libACE_la_SOURCES = \
WIN32_Proactor.cpp \
XML_Svc_Conf.cpp \
XTI_ATM_Mcast.cpp \
- ace_wchar.cpp \
- gethrtime.cpp
+ ace_wchar.cpp
libACE_la_LDFLAGS = \
-release @ACE_VERSION_NAME@
@@ -382,7 +381,6 @@ nobase_include_HEADERS += \
Arg_Shifter.h \
Argv_Type_Converter.h \
Argv_Type_Converter.inl \
- Array.h \
Array_Base.cpp \
Array_Base.h \
Array_Base.inl \
@@ -402,6 +400,9 @@ nobase_include_HEADERS += \
Atomic_Op.inl \
Atomic_Op_Sparc.h \
Atomic_Op_T.cpp \
+ Atomic_Op_GCC_T.h \
+ Atomic_Op_GCC_T.cpp \
+ Atomic_Op_GCC_T.inl \
Atomic_Op_T.h \
Atomic_Op_T.inl \
Auto_Event.h \
@@ -475,6 +476,7 @@ nobase_include_HEADERS += \
Containers_T.inl \
Copy_Disabled.h \
Countdown_Time.h \
+ Countdown_Time.inl \
DEV.h \
DEV.inl \
DEV_Addr.h \
@@ -518,7 +520,6 @@ nobase_include_HEADERS += \
Event_Handler_T.cpp \
Event_Handler_T.h \
Event_Handler_T.inl \
- Exception_Macros.h \
FIFO.h \
FIFO.inl \
FIFO_Recv.h \
@@ -696,7 +697,6 @@ nobase_include_HEADERS += \
Message_Queue_T.h \
Message_Queue_Vx.h \
Message_Queue_Vx.inl \
- Method_Object.h \
Method_Request.h \
Min_Max.h \
Module.cpp \
@@ -736,9 +736,7 @@ nobase_include_HEADERS += \
Null_Mutex.h \
Null_Semaphore.h \
Numeric_Limits.h \
- OS.h \
- OS.inl \
- OS_Dirent.h \
+ Obstack.h \
OS_Errno.h \
OS_Errno.inl \
OS_Log_Msg_Attributes.h \
@@ -813,7 +811,6 @@ nobase_include_HEADERS += \
OS_NS_wctype.inl \
OS_NS_wchar.inl \
OS_QoS.h \
- OS_String.h \
OS_TLI.h \
OS_TLI.inl \
OS_Thread_Adapter.h \
@@ -834,7 +831,6 @@ nobase_include_HEADERS += \
POSIX_Proactor.inl \
Pagefile_Memory_Pool.h \
Pagefile_Memory_Pool.inl \
- Pair.h \
Pair_T.cpp \
Pair_T.h \
Pair_T.inl \
@@ -880,7 +876,6 @@ nobase_include_HEADERS += \
Recursive_Thread_Mutex.inl \
Recyclable.h \
Recyclable.inl \
- Refcountable.h \
Refcountable_T.cpp \
Refcountable_T.h \
Refcountable_T.inl \
@@ -989,7 +984,6 @@ nobase_include_HEADERS += \
Static_Object_Lock.h \
Stats.h \
Stats.inl \
- Strategies.h \
Strategies_T.cpp \
Strategies_T.h \
Strategies_T.inl \
@@ -1010,8 +1004,6 @@ nobase_include_HEADERS += \
Svc_Handler.h \
Synch.h \
Synch_Options.h \
- Synch_T.cpp \
- Synch_T.h \
Synch_Traits.h \
System_Time.h \
TLI.h \
@@ -1071,9 +1063,10 @@ nobase_include_HEADERS += \
Timer_Queue_T.cpp \
Timer_Queue_T.h \
Timer_Queue_T.inl \
- 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 \
@@ -1141,10 +1134,8 @@ nobase_include_HEADERS += \
config-all.h \
config-lite.h \
config-macros.h \
- config-minimal.h \
config-win32-borland.h \
config-win32-common.h \
- config-win32-ghs.h \
config-win32-msvc-7.h \
config-win32-msvc-8.h \
config-win32-msvc.h \
diff --git a/ACE/ace/Malloc.cpp b/ACE/ace/Malloc.cpp
index ce6a235b820..4a7672b5041 100644
--- a/ACE/ace/Malloc.cpp
+++ b/ACE/ace/Malloc.cpp
@@ -11,11 +11,6 @@
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace,
- Malloc,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Process-wide ACE_Allocator.
diff --git a/ACE/ace/Malloc_Allocator.cpp b/ACE/ace/Malloc_Allocator.cpp
index b84d3fac3c8..0d45a33347c 100644
--- a/ACE/ace/Malloc_Allocator.cpp
+++ b/ACE/ace/Malloc_Allocator.cpp
@@ -12,8 +12,6 @@
#include "ace/Log_Msg.h" // for ACE_ASSERT
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace, Malloc_Allocator, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Allocator *
diff --git a/ACE/ace/Malloc_Base.h b/ACE/ace/Malloc_Base.h
index e9e15923737..4c90b961c1b 100644
--- a/ACE/ace/Malloc_Base.h
+++ b/ACE/ace/Malloc_Base.h
@@ -73,7 +73,7 @@ public:
size_type elem_size,
char initial_value = '\0') = 0;
- /// Free <ptr> (must have been allocated by <ACE_Allocator::malloc>).
+ /// Free @a ptr (must have been allocated by ACE_Allocator::malloc()).
virtual void free (void *ptr) = 0;
/// Remove any resources associated with this memory manager.
@@ -85,7 +85,7 @@ public:
* Associate @a name with @a pointer. If @a duplicates == 0 then do
* not allow duplicate @a name/@a pointer associations, else if
* @a duplicates != 0 then allow duplicate @a name/@a pointer
- * assocations. Returns 0 if successfully binds (1) a previously
+ * associations. Returns 0 if successfully binds (1) a previously
* unbound @a name or (2) @a duplicates != 0, returns 1 if trying to
* bind a previously bound @a name and @a duplicates == 0, else
* returns -1 if a resource failure occurs.
diff --git a/ACE/ace/Malloc_T.cpp b/ACE/ace/Malloc_T.cpp
index d0918128180..1e246807930 100644
--- a/ACE/ace/Malloc_T.cpp
+++ b/ACE/ace/Malloc_T.cpp
@@ -299,6 +299,18 @@ ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter (const char *pool_name)
ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
}
+template <class MALLOC>
+ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter (
+ const char *pool_name,
+ const char *lock_name,
+ MEMORY_POOL_OPTIONS options)
+ : allocator_ (ACE_TEXT_CHAR_TO_TCHAR (pool_name),
+ ACE_TEXT_CHAR_TO_TCHAR (lock_name),
+ options)
+{
+ ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
+}
+
#if defined (ACE_HAS_WCHAR)
template <class MALLOC>
ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter (const wchar_t *pool_name)
@@ -306,6 +318,18 @@ ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter (const wchar_t *pool_name)
{
ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
}
+
+template <class MALLOC>
+ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter (
+ const wchar_t *pool_name,
+ const wchar_t *lock_name,
+ MEMORY_POOL_OPTIONS options)
+ : allocator_ (ACE_TEXT_WCHAR_TO_TCHAR (pool_name),
+ ACE_TEXT_WCHAR_TO_TCHAR (lock_name),
+ options)
+{
+ ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
+}
#endif /* ACE_HAS_WCHAR */
template <class MALLOC>
@@ -544,32 +568,6 @@ ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T (const ACE_TCHAR *p
ACE_TEXT ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T")));
}
-#if !defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const void *options)
- : cb_ptr_ (0),
- memory_pool_ (pool_name,
- (const ACE_MEM_POOL_OPTIONS *) options),
- bad_flag_ (0)
-{
- ACE_TRACE ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T");
-
- this->lock_ = ACE_Malloc_Lock_Adapter_T<ACE_LOCK> ()(lock_name);
- if (this->lock_ == 0)
- return;
-
- this->delete_lock_ = true;
- this->bad_flag_ = this->open ();
- if (this->bad_flag_ == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::ACE_Malloc_T")));
-}
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
-
template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB>
ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::~ACE_Malloc_T (void)
{
diff --git a/ACE/ace/Malloc_T.h b/ACE/ace/Malloc_T.h
index eef3739f3f2..a0beb060f18 100644
--- a/ACE/ace/Malloc_T.h
+++ b/ACE/ace/Malloc_T.h
@@ -213,14 +213,7 @@ class ACE_Allocator_Adapter : public ACE_Allocator
public:
// Trait.
typedef MALLOC ALLOCATOR;
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
- // The following code will break C++ compilers that don't support
- // template typedefs correctly.
typedef const typename MALLOC::MEMORY_POOL_OPTIONS *MEMORY_POOL_OPTIONS;
-#else
- typedef const void *MEMORY_POOL_OPTIONS;
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
// = Initialization.
/**
@@ -233,17 +226,10 @@ public:
* Note that @a pool_name should be located in
* a directory with the appropriate visibility and protection so
* that all processes that need to access it can do so.
- * This constructor must be inline to avoid bugs with some C++
- * compilers. */
+ */
ACE_Allocator_Adapter (const char *pool_name,
const char *lock_name,
- MEMORY_POOL_OPTIONS options = 0)
- : allocator_ (ACE_TEXT_CHAR_TO_TCHAR (pool_name),
- ACE_TEXT_CHAR_TO_TCHAR (lock_name),
- options)
- {
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
- }
+ MEMORY_POOL_OPTIONS options = 0);
#if defined (ACE_HAS_WCHAR)
/**
@@ -256,17 +242,10 @@ public:
* Note that @a pool_name should be located in
* a directory with the appropriate visibility and protection so
* that all processes that need to access it can do so.
- * This constructor must be inline to avoid bugs with some C++
- * compilers. */
+ */
ACE_Allocator_Adapter (const wchar_t *pool_name,
const wchar_t *lock_name,
- MEMORY_POOL_OPTIONS options = 0)
- : allocator_ (ACE_TEXT_WCHAR_TO_TCHAR (pool_name),
- ACE_TEXT_WCHAR_TO_TCHAR (lock_name),
- options)
- {
- ACE_TRACE ("ACE_Allocator_Adapter<MALLOC>::ACE_Allocator_Adapter");
- }
+ MEMORY_POOL_OPTIONS options = 0);
#endif /* ACE_HAS_WCHAR */
/// Destructor.
@@ -298,7 +277,7 @@ public:
* Associate @a name with @a pointer. If @a duplicates == 0 then do
* not allow duplicate @a name/pointer associations, else if
* @a duplicates != 0 then allow duplicate @a name/pointer
- * assocations. Returns 0 if successfully binds (1) a previously
+ * associations. Returns 0 if successfully binds (1) a previously
* unbound @a name or (2) @a duplicates != 0, returns 1 if trying to
* bind a previously bound @a name and @a duplicates == 0, else
* returns -1 if a resource failure occurs.
@@ -497,14 +476,6 @@ public:
const ACE_MEM_POOL_OPTIONS *options,
ACE_LOCK *lock);
-#if !defined (ACE_HAS_TEMPLATE_TYPEDEFS)
- /// This is necessary to work around template bugs with certain C++
- /// compilers.
- ACE_Malloc_T (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const void *options = 0);
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
/// Destructor
~ACE_Malloc_T (void);
@@ -544,7 +515,7 @@ public:
* Associate @a name with @a pointer. If @a duplicates == 0 then do
* not allow duplicate name/pointer associations, else if
* @a duplicates != 0 then allow duplicate name/pointer
- * assocations. Returns 0 if successfully binds (1) a previously
+ * associations. Returns 0 if successfully binds (1) a previously
* unbound @a name or (2) @a duplicates != 0, returns 1 if trying to
* bind a previously bound @a name and @a duplicates == 0, else
* returns -1 if a resource failure occurs.
@@ -747,8 +718,7 @@ public:
* the set that hasn't yet been visited. Returns 0 when all items
* have been seen, else 1.
*/
- int next (void *&next_entry,
- const char *&name);
+ int next (void *&next_entry, const char *&name);
/// Move forward by one element in the set. Returns 0 when all the
/// items in the set have been seen, else 1.
@@ -767,8 +737,10 @@ private:
/// Keeps track of how far we've advanced...
NAME_NODE *curr_;
+// FUZZ: disable check_for_ACE_Guard
/// Lock Malloc for the lifetime of the iterator.
ACE_Read_Guard<ACE_LOCK> guard_;
+// FUZZ: enable check_for_ACE_Guard
/// Name that we are searching for.
const char *name_;
@@ -792,7 +764,6 @@ public:
typedef typename ACE_CB::ACE_Name_Node NAME_NODE;
typedef typename ACE_CB::ACE_Malloc_Header MALLOC_HEADER;
- // = Initialization method.
/// If @a name = 0 it will iterate through everything else only
/// through those entries whose @a name match.
ACE_Malloc_FIFO_Iterator_T (ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB> &malloc,
@@ -815,8 +786,7 @@ public:
* the set that hasn't yet been visited. Returns 0 when all items
* have been seen, else 1.
*/
- int next (void *&next_entry,
- const char *&name);
+ int next (void *&next_entry, const char *&name);
/// Move forward by one element in the set. Returns 0 when all the
/// items in the set have been seen, else 1.
@@ -839,8 +809,10 @@ private:
/// Keeps track of how far we've advanced...
NAME_NODE *curr_;
+// FUZZ: disable check_for_ACE_Guard
/// Lock Malloc for the lifetime of the iterator.
ACE_Read_Guard<ACE_LOCK> guard_;
+// FUZZ: enable check_for_ACE_Guard
/// Name that we are searching for.
const char *name_;
@@ -874,21 +846,12 @@ public:
ACE_Malloc (const ACE_TCHAR *pool_name,
const ACE_TCHAR *lock_name,
const ACE_MEM_POOL_OPTIONS *options = 0);
-
-#if !defined (ACE_HAS_TEMPLATE_TYPEDEFS)
- /// This is necessary to work around template bugs with certain C++
- /// compilers.
- ACE_Malloc (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const void *options = 0);
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
};
template <ACE_MEM_POOL_1, class ACE_LOCK>
class ACE_Malloc_LIFO_Iterator : public ACE_Malloc_LIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block>
{
public:
- // = Initialization method.
/// If @a name = 0 it will iterate through everything else only
/// through those entries whose @a name match.
ACE_Malloc_LIFO_Iterator (ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
@@ -899,7 +862,6 @@ template <ACE_MEM_POOL_1, class ACE_LOCK>
class ACE_Malloc_FIFO_Iterator : public ACE_Malloc_FIFO_Iterator_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block>
{
public:
- // = Initialization method.
/// If @a name = 0 it will iterate through everything else only
/// through those entries whose @a name match.
ACE_Malloc_FIFO_Iterator (ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
diff --git a/ACE/ace/Malloc_T.inl b/ACE/ace/Malloc_T.inl
index 078c0308ff5..d83669c57fe 100644
--- a/ACE/ace/Malloc_T.inl
+++ b/ACE/ace/Malloc_T.inl
@@ -63,10 +63,6 @@ ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::release (int close)
{
int const retv = --this->cb_ptr_->ref_counter_;
-#if 0
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P) ACE_Malloc_T::release ->%d\n"),
- this->cb_ptr_->ref_counter_ - 1));
-#endif /* 0 */
if (close)
this->memory_pool_.release (0);
@@ -144,16 +140,6 @@ ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc (const ACE_TCHAR *pool_name,
{
}
-#if !defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-template <ACE_MEM_POOL_1, class ACE_LOCK> ACE_INLINE
-ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc (const ACE_TCHAR *pool_name,
- const ACE_TCHAR *lock_name,
- const void *options)
- : ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_Control_Block> (pool_name, lock_name, options)
-{
-}
-#endif /* !ACE_HAS_TEMPLATE_TYPEDEFS */
-
template <ACE_MEM_POOL_1, class ACE_LOCK> ACE_INLINE
ACE_Malloc_LIFO_Iterator<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc_LIFO_Iterator (ACE_Malloc<ACE_MEM_POOL_2, ACE_LOCK> &malloc,
const char *name)
@@ -168,17 +154,4 @@ ACE_Malloc_FIFO_Iterator<ACE_MEM_POOL_2, ACE_LOCK>::ACE_Malloc_FIFO_Iterator (AC
{
}
-
-#if 0
-template <ACE_MEM_POOL_1, class ACE_LOCK, class ACE_CB> ACE_INLINE void
-ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::init_malloc_header_ptr (void* ptr)
-{
-#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
- new (ptr) ACE_MALLOC_HEADER_PTR (this->cb_ptr_, 0);
-#else
- ACE_UNUSED_ARG (ptr);
-#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-}
-#endif /* 0 */
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Manual_Event.cpp b/ACE/ace/Manual_Event.cpp
index 57543a6d840..1ed621f54b6 100644
--- a/ACE/ace/Manual_Event.cpp
+++ b/ACE/ace/Manual_Event.cpp
@@ -7,7 +7,7 @@
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Manual_Event, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Manual_Event.h b/ACE/ace/Manual_Event.h
index 80464fa1fc1..e83fa04ee9c 100644
--- a/ACE/ace/Manual_Event.h
+++ b/ACE/ace/Manual_Event.h
@@ -39,14 +39,14 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Manual_Event : public ACE_Event
{
public:
- /// constructor which will create manual event
+ /// Constructor which will create manual event
ACE_Manual_Event (int initial_state = 0,
int type = USYNC_THREAD,
const char *name = 0,
void *arg = 0);
#if defined (ACE_HAS_WCHAR)
- /// constructor which will create manual event (wchar_t version)
+ /// Constructor which will create manual event (wchar_t version)
ACE_Manual_Event (int initial_state,
int type,
const wchar_t *name,
diff --git a/ACE/ace/Map.h b/ACE/ace/Map.h
deleted file mode 100644
index 52e77aa37d5..00000000000
--- a/ACE/ace/Map.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Map.h
- *
- * $Id$
- *
- * Backward compatibility header.
- *
- * @author Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_MAP_H
-#define ACE_MAP_H
-
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Include the templates here.
-#include "ace/Map_T.h"
-
-#include /**/ "ace/post.h"
-
-#endif /* ACE_MAP_H */
diff --git a/ACE/ace/Map_Manager.cpp b/ACE/ace/Map_Manager.cpp
index 85957918df4..90854213915 100644
--- a/ACE/ace/Map_Manager.cpp
+++ b/ACE/ace/Map_Manager.cpp
@@ -640,38 +640,6 @@ ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::dump_i (void) const
#endif /* ACE_HAS_DUMP */
}
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Map_Entry<EXT_ID, INT_ID>&
-ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator* (void) const
-{
- // @@ This function should be inlined. We moved it here to avoid a
- // compiler bug in SunCC 4.2. Once we know the correct patch to fix
- // the compiler problem, it should be moved back to .i file again.
- ACE_Map_Entry<EXT_ID, INT_ID> *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
-template <class EXT_ID, class INT_ID, class ACE_LOCK>
-ACE_Map_Entry<EXT_ID, INT_ID>&
-ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator* (void) const
-{
- // @@ This function should be inlined. We moved it here to avoid a
- // compiler bug in SunCC 4.2. Once we know the correct patch to fix
- // the compiler problem, it should be moved back to .i file again.
- ACE_Map_Entry<EXT_ID, INT_ID> *retv = 0;
-
- int result = this->next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
-
- return *retv;
-}
-
template <class EXT_ID, class INT_ID, class ACE_LOCK> void
ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK>::dump (void) const
{
diff --git a/ACE/ace/Map_Manager.h b/ACE/ace/Map_Manager.h
index 75c2b65f977..d12636ce4d5 100644
--- a/ACE/ace/Map_Manager.h
+++ b/ACE/ace/Map_Manager.h
@@ -111,10 +111,11 @@ class ACE_Map_Reverse_Iterator;
/**
* @class ACE_Map_Manager
*
- * @brief Define a map abstraction that associates <EXT_ID>s with
- * <INT_ID>s.
+ * @brief
+ * Define a map abstraction that associates EXT_IDs with
+ * INT_IDs.
*
- * The <EXT_ID> must support <operator==>. This constraint can
+ * The EXT_ID must support @c operator==. This constraint can
* be alleviated via template specialization, as shown in the
* $ACE_ROOT/tests/Conn_Test.cpp test.
* This class uses an ACE_Allocator to allocate memory. The
@@ -122,7 +123,7 @@ class ACE_Map_Reverse_Iterator;
* ACE_Allocator with a persistable memory pool.
* This implementation of a map uses an array, which is searched
* linearly. For more efficient searching you should use the
- * <ACE_Hash_Map_Manager>.
+ * ACE_Hash_Map_Manager.
*/
template <class EXT_ID, class INT_ID, class ACE_LOCK>
class ACE_Map_Manager
@@ -195,7 +196,7 @@ public:
/**
* Reassociate @a ext_id with @a int_id. If @a ext_id is not in the
- * map then behaves just like <bind>. Otherwise, store the old
+ * map then behaves just like bind(). Otherwise, store the old
* values of @a int_id into the "out" parameter and rebind the new
* parameters.
* @retval 0 If a new entry is bound successfully.
@@ -261,12 +262,12 @@ public:
size_t total_size (void) const;
/**
- * Returns a reference to the underlying <ACE_LOCK>. This makes it
+ * Returns a reference to the underlying ACE_LOCK. This makes it
* possible to acquire the lock explicitly, which can be useful in
* some cases if you instantiate the ACE_Atomic_Op with an
* ACE_Recursive_Mutex or ACE_Process_Mutex, or if you need to
* guard the state of an iterator.
- * @note The right name would be <lock>, but HP/C++ will choke on that!
+ * @note The right name would be lock, but HP/C++ will choke on that!
*/
ACE_LOCK &mutex (void);
@@ -568,8 +569,8 @@ protected:
* ACE_Map_Manager it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * ACE_Guard or ACE_Read_Guard on the ACE_Map_Manager's
- * internal lock, which is accessible via its <mutex> method.
+ * ACE_GUARD or ACE_READ_GUARD on the ACE_Map_Manager's
+ * internal lock, which is accessible via its mutex() method.
*/
template <class EXT_ID, class INT_ID, class ACE_LOCK>
class ACE_Map_Iterator : public ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>
@@ -615,8 +616,8 @@ public:
* ACE_Map_Manager it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * ACE_Guard or ACE_Read_Guard on the ACE_Map_Manager's
- * internal lock, which is accessible via its <mutex> method.
+ * ACE_GUARD or ACE_READ_GUARD on the ACE_Map_Manager's
+ * internal lock, which is accessible via its mutex() method.
*/
template <class EXT_ID, class INT_ID, class ACE_LOCK>
class ACE_Map_Const_Iterator : public ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>
@@ -662,8 +663,8 @@ public:
* ACE_Map_Manager it is iterating upon since locking is
* inherently inefficient and/or error-prone within an STL-style
* iterator. If you require locking, you can explicitly use an
- * ACE_Guard or ACE_Read_Guard on the ACE_Map_Manager's
- * internal lock, which is accessible via its <mutex> method.
+ * ACE_GUARD or ACE_READ_GUARD on the ACE_Map_Manager's
+ * internal lock, which is accessible via its mutex() method.
*/
template <class EXT_ID, class INT_ID, class ACE_LOCK>
class ACE_Map_Reverse_Iterator : public ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>
diff --git a/ACE/ace/Map_Manager.inl b/ACE/ace/Map_Manager.inl
index cbbc108bcf2..6e0ff227a1d 100644
--- a/ACE/ace/Map_Manager.inl
+++ b/ACE/ace/Map_Manager.inl
@@ -726,4 +726,31 @@ ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator-- (int)
return retv;
}
+template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
+ACE_Map_Entry<EXT_ID, INT_ID>&
+ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator* (void) const
+{
+ ACE_Map_Entry<EXT_ID, INT_ID> *retv = 0;
+
+ int const result = this->next (retv);
+ ACE_ASSERT (result != 0);
+ ACE_UNUSED_ARG (result);
+
+ return *retv;
+}
+
+template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_INLINE
+ACE_Map_Entry<EXT_ID, INT_ID>&
+ACE_Map_Const_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK>::operator* (void) const
+{
+ ACE_Map_Entry<EXT_ID, INT_ID> *retv = 0;
+
+ int const result = this->next (retv);
+ ACE_ASSERT (result != 0);
+ ACE_UNUSED_ARG (result);
+
+ return *retv;
+}
+
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Map_T.cpp b/ACE/ace/Map_T.cpp
index 2487481edc3..f1e7f57f078 100644
--- a/ACE/ace/Map_T.cpp
+++ b/ACE/ace/Map_T.cpp
@@ -340,8 +340,8 @@ ACE_Active_Map_Manager_Iterator_Adapter<T, VALUE>::dereference () const
{
// The following syntax is necessary to work around certain broken compilers.
// In particular, please do not prefix implementation_ with this->
- return T ((*implementation_).int_id_.first (),
- (*implementation_).int_id_.second ());
+ return T ((*implementation_).int_id_.first,
+ (*implementation_).int_id_.second);
}
template <class T, class VALUE> void
@@ -386,8 +386,8 @@ ACE_Active_Map_Manager_Reverse_Iterator_Adapter<T, VALUE>::dereference () const
{
// The following syntax is necessary to work around certain broken compilers.
// In particular, please do not prefix implementation_ with this->
- return T ((*implementation_).int_id_.first (),
- (*implementation_).int_id_.second ());
+ return T ((*implementation_).int_id_.first,
+ (*implementation_).int_id_.second);
}
template <class T, class VALUE> void
@@ -443,13 +443,13 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::bind_modify_key (const
// of <expanded_value>.
result = this->key_adapter_.encode (key,
active_key,
- internal_value->first ());
+ internal_value->first);
if (result == 0)
{
// Copy user value into <expanded_value>.
- internal_value->second (value);
+ internal_value->second = value;
// Copy new, modified key back to the user key.
- key = internal_value->first ();
+ key = internal_value->first;
}
else
{
@@ -479,15 +479,15 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::bind_create_key (const
if (result == 0)
{
// Encode the active key into key part of <expanded_value>.
- result = this->key_adapter_.encode (internal_value->first (),
+ result = this->key_adapter_.encode (internal_value->first,
active_key,
- internal_value->first ());
+ internal_value->first);
if (result == 0)
{
// Copy user value into <expanded_value>.
- internal_value->second (value);
+ internal_value->second = value;
// Copy new, modified key to the user key.
- key = internal_value->first ();
+ key = internal_value->first;
}
else
{
@@ -510,13 +510,13 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::bind_create_key (const
if (result == 0)
{
// Encode the active key into key part of <expanded_value>.
- result = this->key_adapter_.encode (internal_value->first (),
+ result = this->key_adapter_.encode (internal_value->first,
active_key,
- internal_value->first ());
+ internal_value->first);
if (result == 0)
{
// Copy user value into <expanded_value>.
- internal_value->second (value);
+ internal_value->second = value;
}
else
{
@@ -567,7 +567,7 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::find (const KEY &key,
if (result == 0)
{
// Copy value.
- value = internal_value->second ();
+ value = internal_value->second;
}
return result;
@@ -592,7 +592,7 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::rebind (const KEY &key,
if (result == 0)
{
// Reset value.
- internal_value->second (value);
+ internal_value->second = value;
}
return result;
@@ -610,10 +610,10 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::rebind (const KEY &key,
if (result == 0)
{
// Copy old value.
- old_value = internal_value->second ();
+ old_value = internal_value->second;
// Reset to new value.
- internal_value->second (value);
+ internal_value->second = value;
}
return result;
@@ -632,11 +632,11 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::rebind (const KEY &key,
if (result == 0)
{
// Copy old key and value.
- old_key = internal_value->first ();
- old_value = internal_value->second ();
+ old_key = internal_value->first;
+ old_value = internal_value->second;
// Reset to new value.
- internal_value->second (value);
+ internal_value->second = value;
}
return result;
@@ -686,7 +686,7 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::unbind (const KEY &key,
if (result == 0)
{
// Copy value.
- value = internal_value->second ();
+ value = internal_value->second;
}
return result;
diff --git a/ACE/ace/Map_T.h b/ACE/ace/Map_T.h
index a552e0f6d48..bcb352d3259 100644
--- a/ACE/ace/Map_T.h
+++ b/ACE/ace/Map_T.h
@@ -14,10 +14,10 @@
#define ACE_MAP_T_H
#include /**/ "ace/pre.h"
-#include "ace/Pair_T.h"
#include "ace/Map_Manager.h"
#include "ace/Hash_Map_Manager_T.h"
#include "ace/Active_Map_Manager.h"
+#include "ace/Pair_T.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -830,7 +830,7 @@ class ACE_Active_Map_Manager_Adapter : public ACE_Map<KEY, VALUE>
public:
// = Traits.
- typedef ACE_Pair<KEY, VALUE>
+ typedef std::pair<KEY, VALUE>
expanded_value;
typedef ACE_Active_Map_Manager_Iterator_Adapter<ACE_Reference_Pair<const KEY, VALUE>, expanded_value>
iterator_impl;
@@ -851,11 +851,11 @@ public:
/// Close down and release dynamically allocated resources.
virtual ~ACE_Active_Map_Manager_Adapter (void);
- /// Initialize a <Map> with size @a length.
+ /// Initialize a Map with size @a length.
virtual int open (size_t length = ACE_DEFAULT_MAP_SIZE,
ACE_Allocator *alloc = 0);
- /// Close down a <Map> and release dynamically allocated resources.
+ /// Close down a Map and release dynamically allocated resources.
virtual int close (void);
/**
@@ -870,11 +870,10 @@ public:
/**
* Add @a key / @a value pair to the map. @a key is an "inout" parameter
* and maybe modified/extended by the map to add additional
- * information. To recover original key, call the <recover_key>
+ * information. To recover original key, call the recover_key()
* method.
*/
- virtual int bind_modify_key (const VALUE &value,
- KEY &key);
+ virtual int bind_modify_key (const VALUE &value, KEY &key);
/**
* Produce a key and return it through @a key which is an "out"
@@ -910,7 +909,7 @@ public:
virtual int bind_create_key (const VALUE &value);
/// Recovers the original key potentially modified by the map during
- /// <bind_modify_key>.
+ /// bind_modify_key().
virtual int recover_key (const KEY &modified_key,
KEY &original_key);
@@ -983,7 +982,7 @@ public:
virtual void dump (void) const;
/// Accessor to implementation object.
- ACE_Active_Map_Manager<ACE_Pair<KEY, VALUE> > &impl (void);
+ ACE_Active_Map_Manager<std::pair<KEY, VALUE> > &impl (void);
/// Accessor to key adapter.
KEY_ADAPTER &key_adapter (void);
@@ -999,7 +998,7 @@ protected:
expanded_value *&internal_value);
/// All implementation details are forwarded to this class.
- ACE_Active_Map_Manager<ACE_Pair<KEY, VALUE> > implementation_;
+ ACE_Active_Map_Manager<std::pair<KEY, VALUE> > implementation_;
/// Adapts between the user key and the Active_Map_Manager_Key.
KEY_ADAPTER key_adapter_;
diff --git a/ACE/ace/Map_T.inl b/ACE/ace/Map_T.inl
index 8dea4a198b3..1abeae0f759 100644
--- a/ACE/ace/Map_T.inl
+++ b/ACE/ace/Map_T.inl
@@ -300,7 +300,7 @@ ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::ACE_Active_Map_Manager_
{
}
-template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE ACE_Active_Map_Manager<ACE_Pair<KEY, VALUE> > &
+template <class KEY, class VALUE, class KEY_ADAPTER> ACE_INLINE ACE_Active_Map_Manager<std::pair<KEY, VALUE> > &
ACE_Active_Map_Manager_Adapter<KEY, VALUE, KEY_ADAPTER>::impl (void)
{
return this->implementation_;
diff --git a/ACE/ace/Mem_Map.cpp b/ACE/ace/Mem_Map.cpp
index 02c38699d10..adfd1b5bc62 100644
--- a/ACE/ace/Mem_Map.cpp
+++ b/ACE/ace/Mem_Map.cpp
@@ -13,7 +13,7 @@
#include "ace/Log_Msg.h"
#include "ace/Truncate.h"
-ACE_RCSID(ace, Mem_Map, "Mem_Map.cpp,v 4.39 2003/11/01 11:15:13 dhinton Exp")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Mem_Map.h b/ACE/ace/Mem_Map.h
index 2329722c9cd..3cd7df94785 100644
--- a/ACE/ace/Mem_Map.h
+++ b/ACE/ace/Mem_Map.h
@@ -22,6 +22,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Global_Macros.h"
+#include "ace/Copy_Disabled.h"
#include "ace/os_include/sys/os_mman.h"
#include "ace/os_include/os_limits.h"
#include "ace/os_include/os_fcntl.h"
@@ -37,7 +38,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* This class works with both the mmap(2) UNIX system and the
* Win32 family of memory mapping system calls.
*/
-class ACE_Export ACE_Mem_Map
+class ACE_Export ACE_Mem_Map : private ACE_Copy_Disabled
{
public:
// = Initialization and termination methods.
@@ -128,38 +129,38 @@ public:
/// file.
size_t size (void) const;
- /// Unmap the region starting at <base_addr_>.
+ /// Unmap the region starting at base_addr_.
int unmap (ssize_t len = -1);
- /// Unmap the region starting at <addr_>.
+ /// Unmap the region starting at addr_.
int unmap (void *addr, ssize_t len);
/**
* Sync @a len bytes of the memory region to the backing store
- * starting at <base_addr_>. If @a len == -1 then sync the whole
+ * starting at base_addr_. If @a len == -1 then sync the whole
* region.
*/
int sync (size_t len, int flags = MS_SYNC);
/**
* Sync the whole memory region to the backing store
- * starting at <base_addr_>.
+ * starting at base_addr_.
*/
int sync (int flags = MS_SYNC);
/// Sync @a len bytes of the memory region to the backing store
- /// starting at <addr_>.
+ /// starting at addr_.
int sync (void *addr, size_t len, int flags = MS_SYNC);
/**
* Change the protection of the pages of the mapped region to @a prot
- * starting at <base_addr_> up to @a len bytes.
+ * starting at base_addr_ up to @a len bytes.
*/
int protect (size_t len, int prot = PROT_RDWR);
/**
* Change the protection of all the pages of the mapped region to @a prot
- * starting at <base_addr_>.
+ * starting at base_addr_.
*/
int protect (int prot = PROT_RDWR);
@@ -197,10 +198,6 @@ private:
ACE_OFF_T offset = 0,
LPSECURITY_ATTRIBUTES sa = 0);
- // = Disallow copying and assignment.
- ACE_Mem_Map (const ACE_Mem_Map &);
- void operator = (const ACE_Mem_Map &);
-
private:
/// Base address of the memory-mapped file.
diff --git a/ACE/ace/Message_Block.cpp b/ACE/ace/Message_Block.cpp
index cac8a6f9a79..fea01d0903c 100644
--- a/ACE/ace/Message_Block.cpp
+++ b/ACE/ace/Message_Block.cpp
@@ -1,3 +1,4 @@
+// $Id$
#include "ace/Message_Block.h"
#if !defined (__ACE_INLINE__)
@@ -12,10 +13,6 @@
//#define ACE_ENABLE_TIMEPROBES
#include "ace/Timeprobe.h"
-ACE_RCSID (ace,
- Message_Block,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_Message_Block)
diff --git a/ACE/ace/Message_Block.h b/ACE/ace/Message_Block.h
index 443f6552d3a..80c1a2de638 100644
--- a/ACE/ace/Message_Block.h
+++ b/ACE/ace/Message_Block.h
@@ -241,8 +241,8 @@ public:
/**
* Delete all the resources held in the message.
*
- * Note that <release()> is designed to release the continuation
- * chain; the destructor is not. See <release()> for details.
+ * @note Note that release() is designed to release the continuation
+ * chain; the destructor is not. See release() for details.
*/
virtual ~ACE_Message_Block (void);
@@ -505,8 +505,8 @@ public:
/**
* Set the number of bytes in the top-level Message_Block,
- * reallocating space if necessary. However, the <rd_ptr_> and
- * <wr_ptr_> remain at the original offsets into the buffer, even if
+ * reallocating space if necessary. However, the @c rd_ptr_ and
+ * @c wr_ptr_ remain at the original offsets into the buffer, even if
* it is reallocated. Returns 0 if successful, else -1.
*/
int size (size_t length);
@@ -717,7 +717,7 @@ public:
*/
char *mark (void) const;
- // = Message size is the total amount of space alloted.
+ // = Message size is the total amount of space allotred.
/// Get the total amount of allotted space in the message. The amount of
/// allotted space may be less than allocated space.
@@ -762,11 +762,11 @@ public:
ACE_Data_Block *release (ACE_Lock *lock = 0);
// = Message flag accessors and mutators.
- /// Bitwise-or the <more_flags> into the existing message flags and
+ /// Bitwise-or the @a more_flags into the existing message flags and
/// return the new value.
ACE_Message_Block::Message_Flags set_flags (ACE_Message_Block::Message_Flags more_flags);
- /// Clear the message flag bits specified in <less_flags> and return
+ /// Clear the message flag bits specified in @a less_flags and return
/// the new value.
ACE_Message_Block::Message_Flags clr_flags (ACE_Message_Block::Message_Flags less_flags);
@@ -803,7 +803,7 @@ protected:
* Decrease the reference count, but don't delete the object.
* Returns 0 if the object should be removed.
* If @a lock is equal to the locking strategy then we assume that
- * the lock is beign held by the current thread; this is used to
+ * the lock is being held by the current thread; this is used to
* release all the data blocks in a chain while holding a single
* lock.
*/
@@ -843,7 +843,7 @@ protected:
/**
* Reference count for this ACE_Data_Block, which is used to avoid
- * deep copies (i.e., <clone>). Note that this pointer value is
+ * deep copies (i.e., clone()). Note that this pointer value is
* shared by all owners of the <Data_Block>'s data, i.e., all the
* ACE_Message_Blocks.
*/
diff --git a/ACE/ace/Message_Queue.cpp b/ACE/ace/Message_Queue.cpp
index 0ce105db50b..db939ede170 100644
--- a/ACE/ace/Message_Queue.cpp
+++ b/ACE/ace/Message_Queue.cpp
@@ -7,10 +7,6 @@
#include "ace/Message_Queue.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Message_Queue,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Message_Queue_Base::~ACE_Message_Queue_Base (void)
diff --git a/ACE/ace/Message_Queue.h b/ACE/ace/Message_Queue.h
index 52be1b0f02b..85bc7a7b77d 100644
--- a/ACE/ace/Message_Queue.h
+++ b/ACE/ace/Message_Queue.h
@@ -64,13 +64,9 @@ public:
// and WAS_INACTIVE are defined to match previous semantics for
// applications that don't use the PULSED state.
- /// @deprecated Use ACTIVATED instead.
- WAS_ACTIVE = 1,
/// Message queue is active and processing normally
ACTIVATED = 1,
- /// @deprecated Use DEACTIVATED instead.
- WAS_INACTIVE = 2,
/// Queue is deactivated; no enqueue or dequeue operations allowed.
DEACTIVATED = 2,
diff --git a/ACE/ace/Message_Queue_NT.cpp b/ACE/ace/Message_Queue_NT.cpp
index 3c4fbe99c64..94a8f042ec7 100644
--- a/ACE/ace/Message_Queue_NT.cpp
+++ b/ACE/ace/Message_Queue_NT.cpp
@@ -1,5 +1,6 @@
// $Id$
+#include "ace/Message_Queue.h"
#include "ace/Message_Queue_NT.h"
#include "ace/Log_Msg.h"
@@ -7,11 +8,6 @@
#include "ace/Message_Queue_NT.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Message_Queue_NT,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
@@ -33,10 +29,13 @@ ACE_Message_Queue_NT::open (DWORD max_threads)
{
ACE_TRACE ("ACE_Message_Queue_NT::open");
this->max_cthrs_ = max_threads;
+ this->state_ = ACE_Message_Queue_Base::ACTIVATED;
this->completion_port_ = ::CreateIoCompletionPort (ACE_INVALID_HANDLE,
0,
ACE_Message_Queue_Base::ACTIVATED,
max_threads);
+ if (this->completion_port_ == 0)
+ this->state_ = ACE_Message_Queue_Base::DEACTIVATED;
return (this->completion_port_ == 0 ? -1 : 0);
}
diff --git a/ACE/ace/Message_Queue_T.cpp b/ACE/ace/Message_Queue_T.cpp
index 5f6b990d426..4360eaf4989 100644
--- a/ACE/ace/Message_Queue_T.cpp
+++ b/ACE/ace/Message_Queue_T.cpp
@@ -9,6 +9,10 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_sys_time.h"
+#if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+#include "ace/Message_Queue_NT.h"
+#endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
@@ -56,13 +60,13 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_length (size_t ne
}
template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::ACE_Message_Queue_Ex (size_t hwm,
- size_t lwm,
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::ACE_Message_Queue_Ex (size_t high_water_mark,
+ size_t low_water_mark,
ACE_Notification_Strategy *ns)
{
ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::ACE_Message_Queue_Ex");
- if (this->queue_.open (hwm, lwm, ns) == -1)
+ if (this->queue_.open (high_water_mark, low_water_mark, ns) == -1)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("ACE_Message_Queue_Ex")));
}
@@ -1695,7 +1699,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head (ACE_Message_Block *&first_i
// Wait for at least one item to become available.
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_empty_cond (timeout) == -1)
return -1;
first_item = this->head_;
@@ -1703,8 +1707,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head (ACE_Message_Block *&first_i
}
template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_full_cond (ACE_Guard<ACE_SYNCH_MUTEX_T> &,
- ACE_Time_Value *timeout)
+ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_full_cond (ACE_Time_Value *timeout)
{
int result = 0;
@@ -1730,8 +1733,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_full_cond (ACE_Guard<ACE_SYNCH_MUTEX_
}
template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_empty_cond
- (ACE_Guard<ACE_SYNCH_MUTEX_T> &, ACE_Time_Value *timeout)
+ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_empty_cond (ACE_Time_Value *timeout)
{
int result = 0;
@@ -1765,6 +1767,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head (ACE_Message_Block *new_item,
{
ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head");
int queue_count = 0;
+ ACE_Notification_Strategy *notifier = 0;
{
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
@@ -1774,16 +1777,21 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head (ACE_Message_Block *new_item,
return -1;
}
- if (this->wait_not_full_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_full_cond (timeout) == -1)
return -1;
queue_count = this->enqueue_head_i (new_item);
-
if (queue_count == -1)
return -1;
- this->notify ();
+#if defined (ACE_HAS_MONITOR_POINTS) && (ACE_HAS_MONITOR_POINTS == 1)
+ this->monitor_->receive (this->cur_length_);
+#endif
+ notifier = this->notification_strategy_;
}
+
+ if (0 != notifier)
+ notifier->notify();
return queue_count;
}
@@ -1797,6 +1805,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_prio (ACE_Message_Block *new_item,
{
ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_prio");
int queue_count = 0;
+ ACE_Notification_Strategy *notifier = 0;
{
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
@@ -1806,7 +1815,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_prio (ACE_Message_Block *new_item,
return -1;
}
- if (this->wait_not_full_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_full_cond (timeout) == -1)
return -1;
queue_count = this->enqueue_i (new_item);
@@ -1814,8 +1823,13 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_prio (ACE_Message_Block *new_item,
if (queue_count == -1)
return -1;
- this->notify ();
+#if defined (ACE_HAS_MONITOR_POINTS) && (ACE_HAS_MONITOR_POINTS == 1)
+ this->monitor_->receive (this->cur_length_);
+#endif
+ notifier = this->notification_strategy_;
}
+ if (0 != notifier)
+ notifier->notify ();
return queue_count;
}
@@ -1829,6 +1843,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline (ACE_Message_Block *new_item,
{
ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline");
int queue_count = 0;
+ ACE_Notification_Strategy *notifier = 0;
{
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
@@ -1838,7 +1853,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline (ACE_Message_Block *new_item,
return -1;
}
- if (this->wait_not_full_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_full_cond (timeout) == -1)
return -1;
queue_count = this->enqueue_deadline_i (new_item);
@@ -1846,8 +1861,13 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline (ACE_Message_Block *new_item,
if (queue_count == -1)
return -1;
- this->notify ();
+#if defined (ACE_HAS_MONITOR_POINTS) && (ACE_HAS_MONITOR_POINTS == 1)
+ this->monitor_->receive (this->cur_length_);
+#endif
+ notifier = this->notification_strategy_;
}
+ if (0 != notifier)
+ notifier->notify ();
return queue_count;
}
@@ -1868,6 +1888,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail (ACE_Message_Block *new_item,
{
ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail");
int queue_count = 0;
+ ACE_Notification_Strategy *notifier = 0;
{
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
@@ -1877,7 +1898,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail (ACE_Message_Block *new_item,
return -1;
}
- if (this->wait_not_full_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_full_cond (timeout) == -1)
return -1;
queue_count = this->enqueue_tail_i (new_item);
@@ -1885,8 +1906,13 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail (ACE_Message_Block *new_item,
if (queue_count == -1)
return -1;
- this->notify ();
+#if defined (ACE_HAS_MONITOR_POINTS) && (ACE_HAS_MONITOR_POINTS == 1)
+ this->monitor_->receive (this->cur_length_);
+#endif
+ notifier = this->notification_strategy_;
}
+ if (0 != notifier)
+ notifier->notify ();
return queue_count;
}
@@ -1907,7 +1933,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head (ACE_Message_Block *&first_item,
return -1;
}
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_empty_cond (timeout) == -1)
return -1;
return this->dequeue_head_i (first_item);
@@ -1930,7 +1956,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio (ACE_Message_Block *&dequeued,
return -1;
}
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_empty_cond (timeout) == -1)
return -1;
return this->dequeue_prio_i (dequeued);
@@ -1953,7 +1979,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail (ACE_Message_Block *&dequeued,
return -1;
}
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_empty_cond (timeout) == -1)
return -1;
return this->dequeue_tail_i (dequeued);
@@ -1976,7 +2002,7 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline (ACE_Message_Block *&dequeued
return -1;
}
- if (this->wait_not_empty_cond (ace_mon, timeout) == -1)
+ if (this->wait_not_empty_cond (timeout) == -1)
return -1;
return this->dequeue_deadline_i (dequeued);
@@ -1987,10 +2013,6 @@ ACE_Message_Queue<ACE_SYNCH_USE>::notify (void)
{
ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::notify");
-#if defined (ACE_HAS_MONITOR_POINTS) && (ACE_HAS_MONITOR_POINTS == 1)
- this->monitor_->receive (this->cur_length_);
-#endif
-
// By default, don't do anything.
if (this->notification_strategy_ == 0)
return 0;
@@ -2191,7 +2213,7 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head (ACE_Message_Block *&firs
return result;
// *now* it's appropriate to wait for an enqueued item
- result = this->wait_not_empty_cond (ace_mon, timeout);
+ result = this->wait_not_empty_cond (timeout);
if (result == -1)
return result;
diff --git a/ACE/ace/Message_Queue_T.h b/ACE/ace/Message_Queue_T.h
index b1765d457cb..928af80aca7 100644
--- a/ACE/ace/Message_Queue_T.h
+++ b/ACE/ace/Message_Queue_T.h
@@ -557,12 +557,10 @@ protected:
// = Helper methods to factor out common #ifdef code.
/// Wait for the queue to become non-full.
- virtual int wait_not_full_cond (ACE_Guard<ACE_SYNCH_MUTEX_T> &mon,
- ACE_Time_Value *timeout);
+ virtual int wait_not_full_cond (ACE_Time_Value *timeout);
/// Wait for the queue to become non-empty.
- virtual int wait_not_empty_cond (ACE_Guard<ACE_SYNCH_MUTEX_T> &mon,
- ACE_Time_Value *timeout);
+ virtual int wait_not_empty_cond (ACE_Time_Value *timeout);
/// Inform any threads waiting to enqueue that they can procede.
virtual int signal_enqueue_waiters (void);
diff --git a/ACE/ace/Message_Queue_Vx.cpp b/ACE/ace/Message_Queue_Vx.cpp
index dca82a2641d..9bda2e17374 100644
--- a/ACE/ace/Message_Queue_Vx.cpp
+++ b/ACE/ace/Message_Queue_Vx.cpp
@@ -7,11 +7,6 @@
#include "ace/Message_Queue_Vx.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Message_Queue_Vx,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
#if defined (ACE_VXWORKS)
@@ -333,24 +328,16 @@ ACE_Message_Queue_Vx::dequeue_deadline_i (ACE_Message_Block *& /*dequeued*/)
// Take a look at the first item without removing it.
int
-ACE_Message_Queue_Vx::wait_not_full_cond (ACE_Guard<ACE_Null_Mutex> &mon,
- ACE_Time_Value *tv)
+ACE_Message_Queue_Vx::wait_not_full_cond (ACE_Time_Value *)
{
// Always return here, and let the VxWorks message queue handle blocking.
- ACE_UNUSED_ARG (mon);
- ACE_UNUSED_ARG (tv);
-
return 0;
}
int
-ACE_Message_Queue_Vx::wait_not_empty_cond (ACE_Guard<ACE_Null_Mutex> &mon,
- ACE_Time_Value *tv)
+ACE_Message_Queue_Vx::wait_not_empty_cond (ACE_Time_Value *)
{
// Always return here, and let the VxWorks message queue handle blocking.
- ACE_UNUSED_ARG (mon);
- ACE_UNUSED_ARG (tv);
-
return 0;
}
diff --git a/ACE/ace/Message_Queue_Vx.h b/ACE/ace/Message_Queue_Vx.h
index 418e8cce183..42f376693e1 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.
@@ -107,6 +107,7 @@ public:
* the message block sizes.
*/
virtual void message_bytes (size_t new_size);
+
/**
* New value of the number of total length on the queue, i.e., sum
* of the message block lengths.
@@ -136,10 +137,10 @@ public:
ACE_ALLOC_HOOK_DECLARE;
protected:
- /// Enqueue an <ACE_Message_Block *> in accordance with its priority.
+ /// Enqueue an ACE_Message_Block * in accordance with its priority.
virtual int enqueue_i (ACE_Message_Block *new_item);
- /// Enqueue an <ACE_Message_Block *> in accordance with its deadline time.
+ /// Enqueue an ACE_Message_Block * in accordance with its deadline time.
virtual int enqueue_deadline_i (ACE_Message_Block *new_item);
/// Enqueue an <ACE_Message_Block *> at the end of the queue.
@@ -177,12 +178,10 @@ protected:
// = Helper methods to factor out common #ifdef code.
/// Wait for the queue to become non-full.
- virtual int wait_not_full_cond (ACE_Guard<ACE_Null_Mutex> &mon,
- ACE_Time_Value *tv);
+ virtual int wait_not_full_cond (ACE_Time_Value *tv);
/// Wait for the queue to become non-empty.
- virtual int wait_not_empty_cond (ACE_Guard<ACE_Null_Mutex> &mon,
- ACE_Time_Value *tv);
+ virtual int wait_not_empty_cond (ACE_Time_Value *tv);
/// Inform any threads waiting to enqueue that they can procede.
virtual int signal_enqueue_waiters (void);
diff --git a/ACE/ace/Method_Object.h b/ACE/ace/Method_Object.h
deleted file mode 100644
index ffabf82d454..00000000000
--- a/ACE/ace/Method_Object.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-
-//=============================================================================
-/**
- * @file Method_Object.h
- *
- * $Id$
- *
- * This file just #includes "ace/Method_Request.h" and is just here
- * for backwards compatibility with earlier versions of ACE.
- * Please don't use it directly since it may go away at some point.
- *
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_METHOD_OBJECT_H
-#define ACE_METHOD_OBJECT_H
-#include /**/ "ace/pre.h"
-
-#include "ace/Method_Request.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-// Maintain backwards compatibility so that Steve Huston doesn't go
-// postal... ;-)
-typedef ACE_Method_Request ACE_Method_Object;
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-#include /**/ "ace/post.h"
-#endif /* ACE_METHOD_OBJECT_H */
diff --git a/ACE/ace/Method_Request.cpp b/ACE/ace/Method_Request.cpp
index 283a087905f..ee2c0b9d834 100644
--- a/ACE/ace/Method_Request.cpp
+++ b/ACE/ace/Method_Request.cpp
@@ -1,9 +1,6 @@
+// $Id$
#include "ace/Method_Request.h"
-ACE_RCSID (ace,
- Method_Request,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Method_Request::ACE_Method_Request (unsigned long prio)
diff --git a/ACE/ace/Metrics_Cache_T.cpp b/ACE/ace/Metrics_Cache_T.cpp
index 285df4a9753..499ec35475e 100644
--- a/ACE/ace/Metrics_Cache_T.cpp
+++ b/ACE/ace/Metrics_Cache_T.cpp
@@ -15,8 +15,7 @@
#include "ace/Metrics_Cache_T.inl"
#endif /* __ACE_INLINE__ */
-// Const strings for timeprobe event type descriptions.
-
+/// Const strings for timeprobe event type descriptions.
static const char * event_description_strings [] =
{
"start",
@@ -169,7 +168,7 @@ flush_ACE_Metrics_Timeprobe ()
template <class ACE_LOCK, class ALLOCATOR>
ACE_Metrics_Cache<ACE_LOCK, ALLOCATOR>::
ACE_Metrics_Cache (u_long table_size,
- u_long number_of_probes,
+ u_long,
ALLOCATOR *alloc)
: probe_set_size_ (0),
enqueue_names_ (0),
@@ -183,7 +182,6 @@ ACE_Metrics_Cache (u_long table_size,
metrics_enabled_(1),
allocator_ (alloc)
{
- ACE_UNUSED_ARG(number_of_probes);
// Initialize probe and count arrays.
// Ensure that the high res timer global scale factor
@@ -207,7 +205,6 @@ ACE_Metrics_Cache<ACE_LOCK, ALLOCATOR>::~ACE_Metrics_Cache ()
{
}
-
// Obtain an allocator pointer correctly thunked for the current
// address space. If there is no allocator stored in the instance,
// the singleton allocator in the current process is used.
diff --git a/ACE/ace/Metrics_Cache_T.h b/ACE/ace/Metrics_Cache_T.h
index 5f0abdf31fa..508d52a47cb 100644
--- a/ACE/ace/Metrics_Cache_T.h
+++ b/ACE/ace/Metrics_Cache_T.h
@@ -64,43 +64,43 @@ public:
WORK_RESUME = 3
};
- // Default constructor: plugs in the above event descriptions.
+ /// Default constructor: plugs in the above event descriptions.
ACE_Metrics_Timeprobe (u_int id = 0,
const char *name = 0,
u_long size = METRICS_DEFAULT_TIMEPROBE_TABLE_SIZE);
- // Constructor with allocator: plugs in the above event descriptions.
+ /// Constructor with allocator: plugs in the above event descriptions.
ACE_Metrics_Timeprobe (ALLOCATOR *allocatorPtr,
u_int id = 0,
const char *name = 0,
u_long size = METRICS_DEFAULT_TIMEPROBE_TABLE_SIZE);
- // Destructor.
+ /// Destructor.
virtual ~ACE_Metrics_Timeprobe ();
- // Returns true if a timeprobe event matches the passed id.
+ /// Returns true if a timeprobe event matches the passed id.
int is_event (const ACE_METRICS_TIMEPROBE_DATA_TYPE &t,
ACE_Metrics_Timeprobe<ACE_LOCK, ALLOCATOR>::event_id id);
- // Accessor and mutator for probe name.
+ /// Accessor and mutator for probe name.
const char * probe_name (void);
void probe_name (char * name);
- // Accessor for probe id.
+ /// Accessor for probe id.
u_int probe_id (void);
- // Mutator for probe id.
+ /// Mutator for probe id.
void probe_id (u_int id);
- // Flush the ACE metrics timeprobe into shared memory.
+ /// Flush the ACE metrics timeprobe into shared memory.
void flush_ACE_Metrics_Timeprobe ();
protected:
- // Identifier for the timeprobe.
+ /// Identifier for the timeprobe.
u_int id_;
- // Name of the timeprobe.
+ /// Name of the timeprobe.
char* name_;
private:
@@ -125,98 +125,98 @@ public:
typedef ACE_Metrics_Cache <ACE_LOCK, ALLOCATOR> ACE_METRICS_CACHE_TYPE;
- // Default constructor.
+ /// Default constructor.
ACE_Metrics_Cache (u_long table_size
= METRICS_DEFAULT_TIMEPROBE_TABLE_SIZE,
u_long number_of_probes
= METRICS_DEFAULT_TIMEPROBE_COUNT,
ALLOCATOR * allocatorPtr = (ALLOCATOR*)ALLOCATOR::instance());
- // Destructor.
+ /// Destructor.
~ACE_Metrics_Cache ();
// = Dispatching metrics.
- // Report start, stop, suspend, and resume times of a dispatch
- // enqueue: stores data metrics on the supplier side.
+ /// Report start, stop, suspend, and resume times of a dispatch
+ /// enqueue: stores data metrics on the supplier side.
void report_enqueue_start (u_long i);
void report_enqueue_stop (u_long i);
void report_enqueue_suspend (u_long i);
void report_enqueue_resume (u_long i);
- // Report start, stop, suspend, and resume times of a dispatch
- // dequeue: stores data metrics on the supplier side..
+ /// Report start, stop, suspend, and resume times of a dispatch
+ /// dequeue: stores data metrics on the supplier side..
void report_dequeue_start (u_long i);
void report_dequeue_stop (u_long i);
void report_dequeue_suspend (u_long i);
void report_dequeue_resume (u_long i);
- // Reset the metrics data on the consumer side.
+ /// Reset the metrics data on the consumer side.
void reset_base_statistics ();
- // Flips the supplier and consumer sides.
+ /// Flips the supplier and consumer sides.
void flip_supplier_and_consumer ();
- // Flush the ACE metrics cache into shared memory.
+ /// Flush the ACE metrics cache into shared memory.
void flush_ACE_Metrics_Cache ();
- // Set the enable state for metrics collection.
+ /// Set the enable state for metrics collection.
void metrics_enabled(int enabled);
- // Return the enable state for metrics collection.
+ /// Return the enable state for metrics collection.
int metrics_enabled(void) const;
protected:
- // Obtain an allocator pointer correctly thunked for the current
- // address space. If there is no allocator stored in the instance,
- // the singleton allocator in the current process is used.
+ /// Obtain an allocator pointer correctly thunked for the current
+ /// address space. If there is no allocator stored in the instance,
+ /// the singleton allocator in the current process is used.
ALLOCATOR * allocator (void);
// = Implementation members.
- // Number of probes in each supplier/consumer set.
+ /// Number of probes in each supplier/consumer set.
u_long probe_set_size_;
- // Probe data counts for each supplier/consumer set.
+ /// Probe data counts for each supplier/consumer set.
u_long * enqueue_count_ [2];
u_long * dequeue_count_ [2];
- // Probes for each supplier/consumer set.
+ /// Probes for each supplier/consumer set.
ACE_Metrics_Timeprobe<ACE_LOCK, ALLOCATOR> ** enqueue_probes_ [2];
ACE_Metrics_Timeprobe<ACE_LOCK, ALLOCATOR> ** dequeue_probes_ [2];
- // Names for the probes.
+ /// Names for the probes.
char ** enqueue_names_;
char ** dequeue_names_;
- // Index from which probe events are being consumed.
- // for WSOA, it's the data being sent to the logger
+ /// Index from which probe events are being consumed.
+ /// for WSOA, it's the data being sent to the logger
int consumer_index_;
- // Index to which probe events are being supplied.
- // for WSOA, it's the data being recorded from the probes
+ /// Index to which probe events are being supplied.
+ /// for WSOA, it's the data being recorded from the probes
int supplier_index_;
- // Size of the timestamp table in each probe.
+ /// Size of the timestamp table in each probe.
u_long table_size_;
- // Interval start and stop timestamps.
+ /// Interval start and stop timestamps.
ACE_Time_Value interval_start_;
- // Interval start and stop timestamps.
+ /// Interval start and stop timestamps.
ACE_Time_Value interval_end_;
- // Flag to indicate whether or not start time of interval has been
- // initialized since the last reset.
+ /// Flag to indicate whether or not start time of interval has been
+ /// initialized since the last reset.
int interval_initialized_;
- // Indicator of whether metrics is enabled.
+ /// Indicator of whether metrics is enabled.
int metrics_enabled_;
private:
- // Allocation strategy object.
+ /// Allocation strategy object.
ALLOCATOR* allocator_;
// Declare but do not define.
diff --git a/ACE/ace/Metrics_Cache_T.inl b/ACE/ace/Metrics_Cache_T.inl
index 778132f8b13..2ed23200cb8 100644
--- a/ACE/ace/Metrics_Cache_T.inl
+++ b/ACE/ace/Metrics_Cache_T.inl
@@ -5,6 +5,8 @@
#ifndef ACE_METRICS_CACHE_T_INL
#define ACE_METRICS_CACHE_T_INL
+#if defined (ACE_COMPILE_TIMEPROBES)
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/////////////////////////////
@@ -237,4 +239,6 @@ ACE_Metrics_Cache<ACE_LOCK, ALLOCATOR>::metrics_enabled(void) const
ACE_END_VERSIONED_NAMESPACE_DECL
+#endif
+
#endif /* ACE_METRICS_CACHE_T_INL */
diff --git a/ACE/ace/Module.h b/ACE/ace/Module.h
index a13d88d5f92..3e3ff89b86e 100644
--- a/ACE/ace/Module.h
+++ b/ACE/ace/Module.h
@@ -43,22 +43,22 @@ public:
/// Indicates that the flags have not been set
M_FLAGS_NOT_SET = 0,
- /// Indicates that <close> should delete the writer Task.
+ /// Indicates that close() should delete the writer Task.
M_DELETE_READER = 1,
- /// Indicates that <close> should delete the reader Task.
+ /// Indicates that close() should delete the reader Task.
M_DELETE_WRITER = 2,
- /// Indicates that <close> deletes the Tasks.
+ /// Indicates that close() deletes the Tasks.
/**
* Don't change this value without updating the same enum in class
* ACE_Stream...
- * The <M_DELETE_READER> and <M_DELETE_WRITER> flags may be or'ed
+ * The M_DELETE_READER and M_DELETE_WRITER flags may be or'ed
* together.
*/
M_DELETE = 3,
- /// Indicates that <close> should not delete any Tasks.
+ /// Indicates that close() should not delete any Tasks.
M_DELETE_NONE = 4
};
};
@@ -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.cpp b/ACE/ace/Monitor_Control/Auto_Update_Starter.cpp
index fade10068f7..98bbd87374c 100644
--- a/ACE/ace/Monitor_Control/Auto_Update_Starter.cpp
+++ b/ACE/ace/Monitor_Control/Auto_Update_Starter.cpp
@@ -33,4 +33,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
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/Monitor_Control/BSD_Network_Interface_Monitor.cpp b/ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp
index 8f6b3564da0..d79247a4466 100644
--- a/ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp
@@ -2,7 +2,7 @@
#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#if defined (__NetBSD__) || defined (__OpenBSD__)
#include "ace/Log_Msg.h"
#include "ace/OS_NS_stdio.h"
@@ -53,16 +53,16 @@ namespace ACE
{
ACE_UINT64 count = 0;
int fd = socket (AF_INET, SOCK_DGRAM, 0);
-
- if (fd == -1)
+
+ if (fd == -1)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("socket failed\n")));
return;
}
struct ifaddrs *ifa, *ifap;
-
- if (getifaddrs (&ifap) < 0)
+
+ if (getifaddrs (&ifap) < 0)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("getifaddrs failed\n")));
close (fd);
@@ -70,26 +70,40 @@ namespace ACE
}
char *p = 0;
-
- for (ifa = ifap; ifa != 0; ifa = ifa->ifa_next)
+
+ for (ifa = ifap; ifa != 0; ifa = ifa->ifa_next)
{
if (p && strcmp (p, ifa->ifa_name) == 0)
{
continue;
}
-
- p = ifa->ifa_name;
+ p = ifa->ifa_name;
+
+#if defined (__OpenBSD__)
+ struct ifreq ifdr;
+#else
struct ifdatareq ifdr;
+#endif
memset (&ifdr, 0, sizeof (ifdr));
- strncpy (ifdr.ifdr_name, ifa->ifa_name, sizeof (ifdr));
- if (ioctl (fd, SIOCGIFDATA, &ifdr) == -1)
+#if defined (__OpenBSD__)
+ struct if_data if_data;
+ ifdr.ifr_data = reinterpret_cast<caddr_t> (&if_data);
+ strncpy (ifdr.ifr_name, ifa->ifa_name, IFNAMSIZ-1);
+#else
+ strncpy (ifdr.ifdr_name, ifa->ifa_name, sizeof (ifdr));
+#endif
+ if (ioctl (fd, SIOCGIFDATA, &ifdr) == -1)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("SIOCGIFDATA failed\n")));
}
+#if defined (__OpenBSD__)
+ struct if_data * const ifi = &if_data;
+#else
struct if_data * const ifi = &ifdr.ifdr_data;
+#endif
if (this->lookup_str_ == "ibytes")
{
@@ -111,7 +125,7 @@ namespace ACE
freeifaddrs (ifap);
close (fd);
-
+
value = count;
}
}
@@ -119,4 +133,4 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
-#endif /* defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) */
+#endif /* defined (__NetBSD__) || defined (__OpenBSD__) */
diff --git a/ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.h b/ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.h
index 19a8e7c2fbc..ed959acb5e5 100644
--- a/ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.h
+++ b/ACE/ace/Monitor_Control/BSD_Network_Interface_Monitor.h
@@ -23,7 +23,7 @@
#include "ace/Monitor_Control/Monitor_Control_export.h"
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#if defined (__NetBSD__) || defined (__OpenBSD__)
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -50,7 +50,7 @@ namespace ACE
protected:
ACE_UINT64 value_;
-
+
private:
void init (void);
void fetch (ACE_UINT64& value) const;
@@ -63,7 +63,7 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
-#endif /* defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) */
+#endif /* defined (__NetBSD__) || defined (__OpenBSD__) */
#include /**/ "ace/post.h"
diff --git a/ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp b/ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp
index dc951403f47..7950244762c 100644
--- a/ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Bytes_Received_Monitor.cpp
@@ -24,8 +24,10 @@ namespace ACE
/// Scan format for /proc/net/dev
#elif defined (ACE_HAS_KSTAT)
, Solaris_Network_Interface_Monitor (ACE_TEXT ("rbytes"))
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
, BSD_Network_Interface_Monitor (ACE_TEXT ("ibytes"))
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("ibytes"))
#endif
{}
@@ -33,7 +35,7 @@ namespace ACE
Bytes_Received_Monitor::update (void)
{
this->update_i ();
-
+
/// On some platforms, value_ is an ACE_UINT64.
this->receive (static_cast<double> (this->value_));
}
@@ -43,7 +45,7 @@ namespace ACE
{
return Bytes_Received_Monitor::default_name_;
}
-
+
void
Bytes_Received_Monitor::clear_i (void)
{
@@ -56,4 +58,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
diff --git a/ACE/ace/Monitor_Control/Bytes_Received_Monitor.h b/ACE/ace/Monitor_Control/Bytes_Received_Monitor.h
index 88b54a5c604..a0881a150ab 100644
--- a/ACE/ace/Monitor_Control/Bytes_Received_Monitor.h
+++ b/ACE/ace/Monitor_Control/Bytes_Received_Monitor.h
@@ -29,7 +29,9 @@
#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
#elif defined (ACE_HAS_KSTAT)
#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
#else
#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
@@ -56,8 +58,10 @@ namespace ACE
, public Linux_Network_Interface_Monitor
#elif defined (ACE_HAS_KSTAT)
, public Solaris_Network_Interface_Monitor
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
, public BSD_Network_Interface_Monitor
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , public FreeBSD_Network_Interface_Monitor
#else
, public Null_Network_Interface_Monitor
#endif
@@ -70,7 +74,7 @@ namespace ACE
/// Stores the default name, used if none is supplied by the user.
static const char* default_name (void);
-
+
private:
/// Overridden reset, calls platform-specific reset.
virtual void clear_i (void);
diff --git a/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp b/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp
index 14a1e83c240..e4aa4f2af59 100644
--- a/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.cpp
@@ -24,7 +24,9 @@ namespace ACE
/// Scan format for /proc/net/dev
#elif defined (ACE_HAS_KSTAT)
, Solaris_Network_Interface_Monitor (ACE_TEXT ("obytes"))
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("obytes"))
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
, BSD_Network_Interface_Monitor (ACE_TEXT ("obytes"))
#endif
{}
@@ -33,7 +35,7 @@ namespace ACE
Bytes_Sent_Monitor::update (void)
{
this->update_i ();
-
+
/// On some platforms, value_ is an ACE_UINT64.
this->receive (static_cast<double> (this->value_));
}
@@ -43,7 +45,7 @@ namespace ACE
{
return Bytes_Sent_Monitor::default_name_;
}
-
+
void
Bytes_Sent_Monitor::clear_i (void)
{
@@ -56,5 +58,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
-
diff --git a/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h b/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h
index 7f894093742..59d7166c972 100644
--- a/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h
+++ b/ACE/ace/Monitor_Control/Bytes_Sent_Monitor.h
@@ -29,7 +29,9 @@
#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
#elif defined (ACE_HAS_KSTAT)
#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
#else
#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
@@ -56,8 +58,10 @@ namespace ACE
, public Linux_Network_Interface_Monitor
#elif defined (ACE_HAS_KSTAT)
, public Solaris_Network_Interface_Monitor
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
, public BSD_Network_Interface_Monitor
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , public FreeBSD_Network_Interface_Monitor
#else
, public Null_Network_Interface_Monitor
#endif
@@ -70,7 +74,7 @@ namespace ACE
/// Stores the default name, used if none is supplied by the user.
static const char* default_name (void);
-
+
private:
/// Overridden reset, calls platform-specific reset.
virtual void clear_i (void);
diff --git a/ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp b/ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp
index e685f33c658..16bcafe5036 100644
--- a/ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/CPU_Load_Monitor.cpp
@@ -63,7 +63,7 @@ namespace ACE
this->user_ + this->wait_ + this->kernel_ + this->idle_;
double delta_total = total - this->prev_total_;
- if (delta_total == 0.0)
+ if (ACE::is_equal (delta_total, 0.0))
{
/// The system hasn't updated /proc/stat since the last call
/// to update(), we must avoid dividing by 0.
@@ -85,7 +85,7 @@ namespace ACE
{
return CPU_Load_Monitor::default_name_;
}
-
+
void
CPU_Load_Monitor::clear_i (void)
{
@@ -96,7 +96,7 @@ namespace ACE
this->init ();
this->Monitor_Base::clear_i ();
}
-
+
void
CPU_Load_Monitor::init (void)
{
@@ -252,4 +252,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
diff --git a/ACE/ace/Monitor_Control/CPU_Load_Monitor.h b/ACE/ace/Monitor_Control/CPU_Load_Monitor.h
index 307a90c351f..aae4e62405c 100644
--- a/ACE/ace/Monitor_Control/CPU_Load_Monitor.h
+++ b/ACE/ace/Monitor_Control/CPU_Load_Monitor.h
@@ -56,11 +56,11 @@ namespace ACE
/// Stores the default name, used if none is supplied by the user.
static const char* default_name (void);
-
+
private:
/// Overridden reset, calls platform-specific reset.
virtual void clear_i (void);
-
+
/// Common code to the constructor and to clear_i().
void init (void);
diff --git a/ACE/ace/Monitor_Control/Constraint_Interpreter.cpp b/ACE/ace/Monitor_Control/Constraint_Interpreter.cpp
index 297088b493e..42a3b854a84 100644
--- a/ACE/ace/Monitor_Control/Constraint_Interpreter.cpp
+++ b/ACE/ace/Monitor_Control/Constraint_Interpreter.cpp
@@ -60,5 +60,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
-
diff --git a/ACE/ace/Monitor_Control/Constraint_Visitor.cpp b/ACE/ace/Monitor_Control/Constraint_Visitor.cpp
index 64b1b48eaed..eb0f4941f8b 100644
--- a/ACE/ace/Monitor_Control/Constraint_Visitor.cpp
+++ b/ACE/ace/Monitor_Control/Constraint_Visitor.cpp
@@ -302,5 +302,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
-
diff --git a/ACE/ace/Monitor_Control/Constraint_Visitor.h b/ACE/ace/Monitor_Control/Constraint_Visitor.h
index 8c7ff59d44d..94b686307e4 100644
--- a/ACE/ace/Monitor_Control/Constraint_Visitor.h
+++ b/ACE/ace/Monitor_Control/Constraint_Visitor.h
@@ -84,4 +84,3 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
#endif // CONSTRAINT_VISITOR_H
-
diff --git a/ACE/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp b/ACE/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp
new file mode 100644
index 00000000000..3d6e4b2e177
--- /dev/null
+++ b/ACE/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp
@@ -0,0 +1,124 @@
+// $Id$
+
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+
+#if defined (__FreeBSD__) || defined (__Lynx__)
+
+#include "ace/Log_Msg.h"
+#include "ace/OS_NS_stdio.h"
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/sysctl.h>
+#include <sys/time.h>
+#include <net/if.h>
+#include <net/if_mib.h>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ FreeBSD_Network_Interface_Monitor::FreeBSD_Network_Interface_Monitor (
+ const ACE_TCHAR *lookup_str)
+ : value_ (0UL),
+ start_ (0UL),
+ lookup_str_ (lookup_str)
+ {
+ this->init();
+ }
+
+ void
+ FreeBSD_Network_Interface_Monitor::update_i (void)
+ {
+ this->fetch(this->value_);
+ this->value_ -= this->start_;
+ }
+
+ void
+ FreeBSD_Network_Interface_Monitor::clear_impl (void)
+ {
+ this->init();
+ }
+
+ void
+ FreeBSD_Network_Interface_Monitor::init (void)
+ {
+ this->fetch(this->start_);
+ this->value_ = 0UL;
+ }
+
+ void
+ FreeBSD_Network_Interface_Monitor::fetch (ACE_UINT64& value) const
+ {
+ ACE_UINT64 count = 0;
+
+ int req_name[5];
+ int ifcount;
+ size_t ifcount_len = sizeof(ifcount);
+
+ req_name[0] = CTL_NET;
+ req_name[1] = PF_LINK;
+ req_name[2] = NETLINK_GENERIC;
+ req_name[3] = IFMIB_SYSTEM;
+ req_name[4] = IFMIB_IFCOUNT;
+
+ if (::sysctl(req_name, 5, &ifcount, &ifcount_len, (void *)0, 0) == -1)
+ {
+ ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) %p\n"),
+ ACE_TEXT("sysctl failed")));
+
+ return;
+ }
+
+ for (int i = 1; i <= ifcount; i++)
+ {
+ int name[6];
+ struct ifmibdata ifmd;
+ size_t len = sizeof(ifmd);
+
+ name[0] = CTL_NET;
+ name[1] = PF_LINK;
+ name[2] = NETLINK_GENERIC;
+ name[3] = IFMIB_IFDATA;
+ name[4] = i;
+ name[5] = IFDATA_GENERAL;
+
+ if(::sysctl(name, 6, &ifmd, &len, (void *)0, 0) == -1)
+ {
+ ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) %p\n"),
+ ACE_TEXT("sysctl failed")));
+
+ break;
+ }
+
+ struct if_data * const ifi = &ifmd.ifmd_data;
+
+ if(this->lookup_str_ == "ibytes")
+ {
+ count += ifi->ifi_ibytes;
+ }
+ else if(this->lookup_str_ == "ipackets")
+ {
+ count += ifi->ifi_ipackets;
+ }
+ else if(this->lookup_str_ == "obytes")
+ {
+ count += ifi->ifi_obytes;
+ }
+ else if(this->lookup_str_ == "opackets")
+ {
+ count += ifi->ifi_opackets;
+ }
+
+ } // for
+
+ value = count;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (__FreeBSD__) || defined (__Lynx__) */
diff --git a/ACE/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h b/ACE/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h
new file mode 100644
index 00000000000..b5f577de1d4
--- /dev/null
+++ b/ACE/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file FreeBSD_Network_Interface_Monitor.h
+ *
+ * $Id$
+ *
+ * @author Boyan Kasarov
+ */
+//=============================================================================
+
+#ifndef FREEBSD_NETWORK_INTERFACE_MONITOR_H
+#define FREEBSD_NETWORK_INTERFACE_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+#if defined (__FreeBSD__) || defined (__Lynx__)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class FreeBSD_Network_Interface_Monitor
+ *
+ * @brief Mixin class for network interface monitors compiled on
+ * FreeBSD machines.
+ */
+ class MONITOR_CONTROL_Export FreeBSD_Network_Interface_Monitor
+ {
+ protected:
+ FreeBSD_Network_Interface_Monitor (const ACE_TCHAR *lookup_str);
+
+ /// Platform-specific implementation.
+ void update_i (void);
+
+ /// Platform-specific reset.
+ void clear_impl (void);
+
+ protected:
+ ACE_UINT64 value_;
+
+ private:
+ void init (void);
+ void fetch (ACE_UINT64& value) const;
+
+ ACE_UINT64 start_;
+ ACE_CString lookup_str_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (__FreeBSD__) || defined (__Lynx__) */
+
+#include /**/ "ace/post.h"
+
+#endif // FREEBSD_NETWORK_INTERFACE_MONITOR_H
diff --git a/ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp b/ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp
index ddaf2cbc91d..cd5ef22f343 100644
--- a/ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp
@@ -40,7 +40,9 @@ namespace ACE
/// Ignore the first 2 lines of the file, which are file
/// and column headers.
void* dummy = ACE_OS::fgets (buf, sizeof (buf), fp);
+ ACE_UNUSED_ARG (dummy);
dummy = ACE_OS::fgets (buf, sizeof (buf), fp);
+ ACE_UNUSED_ARG (dummy);
unsigned long iface_value = 0UL;
ACE_UINT32 iface_index = 0UL;
@@ -70,7 +72,7 @@ namespace ACE
{
this->init ();
}
-
+
void
Linux_Network_Interface_Monitor::init (void)
{
@@ -97,7 +99,9 @@ namespace ACE
/// Ignore the first 2 lines of the file, which are file
/// and column headers.
void* dummy = ACE_OS::fgets (buf, sizeof (buf), fp);
+ ACE_UNUSED_ARG (dummy);
dummy = ACE_OS::fgets (buf, sizeof (buf), fp);
+ ACE_UNUSED_ARG (dummy);
unsigned long iface_value = 0UL;
ACE_UINT32 iface_index = 0UL;
diff --git a/ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.h b/ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.h
index 3516450bab3..a656eb13911 100644
--- a/ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.h
+++ b/ACE/ace/Monitor_Control/Linux_Network_Interface_Monitor.h
@@ -53,9 +53,9 @@ namespace ACE
protected:
ACE_UINT64 value_;
-
+
private:
- /// Common code.
+ /// Common code.
void init (void);
private:
diff --git a/ACE/ace/Monitor_Control/Makefile.am b/ACE/ace/Monitor_Control/Makefile.am
index 378b9aa757f..213cfa8246a 100644
--- a/ACE/ace/Monitor_Control/Makefile.am
+++ b/ACE/ace/Monitor_Control/Makefile.am
@@ -33,6 +33,7 @@ libACE_Monitor_Control_la_SOURCES = \
CPU_Load_Monitor.cpp \
Constraint_Interpreter.cpp \
Constraint_Visitor.cpp \
+ FreeBSD_Network_Interface_Monitor.cpp \
Linux_Network_Interface_Monitor.cpp \
Memory_Usage_Monitor.cpp \
Monitor_Group.cpp \
@@ -61,6 +62,7 @@ nobase_include_HEADERS = \
CPU_Load_Monitor.h \
Constraint_Interpreter.h \
Constraint_Visitor.h \
+ FreeBSD_Network_Interface_Monitor.h \
Linux_Network_Interface_Monitor.h \
Memory_Usage_Monitor.h \
Monitor_Control.h \
diff --git a/ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp b/ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp
index fe4bd690625..179c6c144ef 100644
--- a/ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Memory_Usage_Monitor.cpp
@@ -60,7 +60,7 @@ namespace ACE
{
return Memory_Usage_Monitor::default_name_;
}
-
+
void
Memory_Usage_Monitor::clear_i (void)
{
@@ -76,4 +76,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
diff --git a/ACE/ace/Monitor_Control/Memory_Usage_Monitor.h b/ACE/ace/Monitor_Control/Memory_Usage_Monitor.h
index 65f731e9d45..e7dd19db2a6 100644
--- a/ACE/ace/Monitor_Control/Memory_Usage_Monitor.h
+++ b/ACE/ace/Monitor_Control/Memory_Usage_Monitor.h
@@ -56,7 +56,7 @@ namespace ACE
/// Stores the default name, used if none is supplied by the user.
static const char* default_name (void);
-
+
private:
/// Overridden reset, calls platform-specific reset.
virtual void clear_i (void);
diff --git a/ACE/ace/Monitor_Control/Monitor_Control.mpc b/ACE/ace/Monitor_Control/Monitor_Control.mpc
index 3efb0bae9a6..9193a77b281 100644
--- a/ACE/ace/Monitor_Control/Monitor_Control.mpc
+++ b/ACE/ace/Monitor_Control/Monitor_Control.mpc
@@ -14,6 +14,7 @@ project(Monitor_Control) : acelib, ace_etcl_parser, ace_output, install {
Constraint_Interpreter.cpp
Constraint_Visitor.cpp
CPU_Load_Monitor.cpp
+ FreeBSD_Network_Interface_Monitor.cpp
Linux_Network_Interface_Monitor.cpp
Memory_Usage_Monitor.cpp
Monitor_Group.cpp
@@ -33,7 +34,11 @@ project(Monitor_Control) : acelib, ace_etcl_parser, ace_output, install {
Monitor_Control_utils.h
}
- specific (vc6, vc7, vc71, vc8, vc9, vc10, nmake) {
+ specific {
+ install_dir = ace/Monitor_Control
+ }
+
+ specific (prop:microsoft) {
lit_libs += pdh
}
verbatim (gnuace, local) {
diff --git a/ACE/ace/Monitor_Control/Monitor_Group.cpp b/ACE/ace/Monitor_Control/Monitor_Group.cpp
index 9c064fe2c42..044cd006d57 100644
--- a/ACE/ace/Monitor_Control/Monitor_Group.cpp
+++ b/ACE/ace/Monitor_Control/Monitor_Group.cpp
@@ -36,25 +36,25 @@ namespace ACE
{
/// No-op, should always call update().
}
-
+
void
Monitor_Group::receive (size_t /* data */)
{
/// No-op, should always call update().
}
-
+
void
Monitor_Group::receive (const Monitor_Control_Types::NameList& /* data */)
{
/// No-op, should always call update().
}
-
+
void
Monitor_Group::clear (void)
{
for (MEMBERS_ITERATOR i (this->members_); !i.done (); i.advance ())
{
- Monitor_Base **member;
+ Monitor_Base **member = 0;
i.next (member);
(*member)->clear ();
}
@@ -65,4 +65,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
diff --git a/ACE/ace/Monitor_Control/Monitor_Group.h b/ACE/ace/Monitor_Control/Monitor_Group.h
index 557170e2964..8f85734f825 100644
--- a/ACE/ace/Monitor_Control/Monitor_Group.h
+++ b/ACE/ace/Monitor_Control/Monitor_Group.h
@@ -44,7 +44,7 @@ namespace ACE
void add_member (Monitor_Base* member);
virtual void update (void);
-
+
/// These are overridden to be no-ops.
virtual void receive (double data);
virtual void receive (size_t data);
diff --git a/ACE/ace/Monitor_Control/Monitor_Query.cpp b/ACE/ace/Monitor_Control/Monitor_Query.cpp
index f7c8c4f789e..997ffcbcd6a 100644
--- a/ACE/ace/Monitor_Control/Monitor_Query.cpp
+++ b/ACE/ace/Monitor_Control/Monitor_Query.cpp
@@ -80,5 +80,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
-
diff --git a/ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp b/ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp
index 318afcfc026..bcbd73329cc 100644
--- a/ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp
@@ -18,7 +18,7 @@ namespace ACE
{
/// No-op.
}
-
+
void
Null_Network_Interface_Monitor::clear_impl (void)
{
diff --git a/ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.h b/ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.h
index 8aa4e79c7ae..3d6ea0a4064 100644
--- a/ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.h
+++ b/ACE/ace/Monitor_Control/Null_Network_Interface_Monitor.h
@@ -44,7 +44,7 @@ namespace ACE
/// Platform-specific implementation.
void update_i (void);
-
+
/// Platform-specific reset.
void clear_impl (void);
diff --git a/ACE/ace/Monitor_Control/Num_Threads_Monitor.cpp b/ACE/ace/Monitor_Control/Num_Threads_Monitor.cpp
index 3aaa02c318a..b082dfe759e 100644
--- a/ACE/ace/Monitor_Control/Num_Threads_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Num_Threads_Monitor.cpp
@@ -78,7 +78,7 @@ namespace ACE
{
return Num_Threads_Monitor::default_name_;
}
-
+
void
Num_Threads_Monitor::clear_i (void)
{
@@ -94,4 +94,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
diff --git a/ACE/ace/Monitor_Control/Num_Threads_Monitor.h b/ACE/ace/Monitor_Control/Num_Threads_Monitor.h
index 40607ff1ce3..53d13479ac2 100644
--- a/ACE/ace/Monitor_Control/Num_Threads_Monitor.h
+++ b/ACE/ace/Monitor_Control/Num_Threads_Monitor.h
@@ -62,7 +62,7 @@ namespace ACE
/// Stores the default name, used if none is supplied by the user.
static const char* default_name (void);
-
+
private:
/// Overridden reset, calls platform-specific reset.
virtual void clear_i (void);
diff --git a/ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp b/ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp
index 1b7e4eaff36..19314fb58cd 100644
--- a/ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Packets_Received_Monitor.cpp
@@ -24,7 +24,9 @@ namespace ACE
/// Scan format for /proc/net/dev
#elif defined (ACE_HAS_KSTAT)
, Solaris_Network_Interface_Monitor (ACE_TEXT ("ipackets"))
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("ipackets"))
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
, BSD_Network_Interface_Monitor (ACE_TEXT ("ipackets"))
#endif
{}
@@ -33,7 +35,7 @@ namespace ACE
Packets_Received_Monitor::update (void)
{
this->update_i ();
-
+
/// On some platforms, value_ is an ACE_UINT64.
this->receive (static_cast<double> (this->value_));
}
@@ -43,7 +45,7 @@ namespace ACE
{
return Packets_Received_Monitor::default_name_;
}
-
+
void
Packets_Received_Monitor::clear_i (void)
{
@@ -56,4 +58,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
diff --git a/ACE/ace/Monitor_Control/Packets_Received_Monitor.h b/ACE/ace/Monitor_Control/Packets_Received_Monitor.h
index b4e7c4a2654..47da6d7659a 100644
--- a/ACE/ace/Monitor_Control/Packets_Received_Monitor.h
+++ b/ACE/ace/Monitor_Control/Packets_Received_Monitor.h
@@ -29,7 +29,9 @@
#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
#elif defined (ACE_HAS_KSTAT)
#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
#else
#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
@@ -56,8 +58,10 @@ namespace ACE
, public Linux_Network_Interface_Monitor
#elif defined (ACE_HAS_KSTAT)
, public Solaris_Network_Interface_Monitor
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
, public BSD_Network_Interface_Monitor
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , public FreeBSD_Network_Interface_Monitor
#else
, public Null_Network_Interface_Monitor
#endif
@@ -70,7 +74,7 @@ namespace ACE
/// Stores the default name, used if none is supplied by the user.
static const char* default_name (void);
-
+
private:
/// Overridden reset, calls platform-specific reset.
virtual void clear_i (void);
diff --git a/ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp b/ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp
index 6dc7f62f99e..6792b94b950 100644
--- a/ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Packets_Sent_Monitor.cpp
@@ -24,8 +24,10 @@ namespace ACE
/// Scan format for /proc/net/dev
#elif defined (ACE_HAS_KSTAT)
, Solaris_Network_Interface_Monitor (ACE_TEXT ("opackets"))
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
, BSD_Network_Interface_Monitor (ACE_TEXT ("opackets"))
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("opackets"))
#endif
{}
@@ -33,7 +35,7 @@ namespace ACE
Packets_Sent_Monitor::update (void)
{
this->update_i ();
-
+
/// On some platforms, value_ is an ACE_UINT64.
this->receive (static_cast<double> (this->value_));
}
@@ -43,7 +45,7 @@ namespace ACE
{
return Packets_Sent_Monitor::default_name_;
}
-
+
void
Packets_Sent_Monitor::clear_i (void)
{
@@ -56,4 +58,3 @@ namespace ACE
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
-
diff --git a/ACE/ace/Monitor_Control/Packets_Sent_Monitor.h b/ACE/ace/Monitor_Control/Packets_Sent_Monitor.h
index 0db9549051f..8bb2c15ea34 100644
--- a/ACE/ace/Monitor_Control/Packets_Sent_Monitor.h
+++ b/ACE/ace/Monitor_Control/Packets_Sent_Monitor.h
@@ -29,7 +29,9 @@
#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
#elif defined (ACE_HAS_KSTAT)
#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
#else
#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
@@ -56,8 +58,10 @@ namespace ACE
, public Linux_Network_Interface_Monitor
#elif defined (ACE_HAS_KSTAT)
, public Solaris_Network_Interface_Monitor
-#elif defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
, public BSD_Network_Interface_Monitor
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , public FreeBSD_Network_Interface_Monitor
#else
, public Null_Network_Interface_Monitor
#endif
@@ -70,7 +74,7 @@ namespace ACE
/// Stores the default name, used if none is supplied by the user.
static const char* default_name (void);
-
+
private:
/// Overridden reset, calls platform-specific reset.
virtual void clear_i (void);
diff --git a/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp b/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp
index 8e41a7b4f2c..86170fd6c6d 100644
--- a/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp
@@ -28,18 +28,18 @@ namespace ACE
this->access_kstats (this->value_);
this->value_ -= this->start_;
}
-
+
void
Solaris_Network_Interface_Monitor::clear_impl (void)
{
this->init ();
}
-
+
void
Solaris_Network_Interface_Monitor::init (void)
{
unsigned long i;
-
+
for (i = 0UL; i < MAX_LO_INTERFACES; ++i)
{
this->value_array_lo_[i] = 0UL;
@@ -52,7 +52,7 @@ namespace ACE
this->access_kstats (this->start_);
}
-
+
void
Solaris_Network_Interface_Monitor::access_kstats (
ACE_UINT64 &which_member)
@@ -80,24 +80,24 @@ namespace ACE
{
continue;
}
-
+
unsigned long ks_instance = this->kstat_->ks_instance;
-
+
if (ACE_OS::strcmp (this->kstat_->ks_module, "lo") == 0)
{
/// Interfaces 'lo' have only packet counters.
- if (this->lookup_str_ == ACE_TEXT ("obytes")
+ if (this->lookup_str_ == ACE_TEXT ("obytes")
|| this->lookup_str_ == ACE_TEXT ("rbytes"))
{
continue;
}
-
+
status = this->check_ks_module (ks_instance,
MAX_LO_INTERFACES,
"MAX_LO_INTERFACES",
this->value_array_lo_,
which_member);
-
+
if (status == -1)
{
/// Unrecoverable error, diagnostic already output.
@@ -108,7 +108,7 @@ namespace ACE
{
/// The kstat_id changed underneath us, start over.
break;
- }
+ }
}
else if (ACE_OS::strcmp (this->kstat_->ks_module, "hme") == 0
|| ACE_OS::strcmp (this->kstat_->ks_module, "bge") == 0)
@@ -118,7 +118,7 @@ namespace ACE
"MAX_HME_INTERFACES",
this->value_array_hme_,
which_member);
-
+
if (status == -1)
{
/// Unrecoverable error, diagnostic already output.
@@ -132,11 +132,11 @@ namespace ACE
}
}
}
-
+
if (this->kstat_)
{
this->kstat_id_ = kstat_chain_update (this->kstats_);
-
+
if (! this->kstat_id_ > 0)
{
ACE_ERROR ((LM_ERROR, "kstat is is not > 0.\n"));
@@ -148,7 +148,7 @@ namespace ACE
break;
}
}
-
+
status = kstat_close (this->kstats_);
if (status != 0)
@@ -157,7 +157,7 @@ namespace ACE
ACE_TEXT ("closing kstats file failed\n")));
}
}
-
+
int
Solaris_Network_Interface_Monitor::check_ks_module (
const unsigned long ks_instance,
@@ -187,30 +187,30 @@ namespace ACE
/// This return value restarts the walk as described above.
return 1;
}
-
+
kstat_named_t *value =
(kstat_named_t *) kstat_data_lookup (
this->kstat_,
ACE_TEXT_ALWAYS_CHAR (this->lookup_str_.rep ()));
-
+
if (value == 0)
{
/// Just return and let the calling FOR loop advance.
return 0;
}
-
+
if (value->data_type != KSTAT_DATA_UINT32)
{
ACE_ERROR_RETURN ((LM_ERROR,
"Wrong data type.\n"),
-1);
}
-
- /// Guard against overflow.
+
+ /// Guard against overflow.
value_array[ks_instance] +=
value->value.ui32
- static_cast<ACE_UINT32> (value_array[ks_instance]);
-
+
which_member += value_array[ks_instance];
return 0;
diff --git a/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h b/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h
index 499227148cd..7fc974769ec 100644
--- a/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h
+++ b/ACE/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h
@@ -46,7 +46,7 @@ namespace ACE
/// network information about the system. To get the specific
/// value we want to monitor, we just vary the lookup string.
Solaris_Network_Interface_Monitor (const ACE_TCHAR *lookup_str);
-
+
/// Platform-specific implementation.
void update_i (void);
@@ -55,10 +55,10 @@ namespace ACE
protected:
ACE_UINT64 value_;
-
+
private:
/// Common code.
-
+
void init (void);
void access_kstats (ACE_UINT64 &which_member);
int check_ks_module (const unsigned long ks_instance,
@@ -66,7 +66,7 @@ namespace ACE
const char *max_str,
ACE_UINT64 *value_array,
ACE_UINT64 &which_member);
-
+
private:
static const unsigned long MAX_LO_INTERFACES = 5UL;
diff --git a/ACE/ace/Monitor_Control/Windows_Monitor.cpp b/ACE/ace/Monitor_Control/Windows_Monitor.cpp
index b111b511598..4177eb87ed7 100644
--- a/ACE/ace/Monitor_Control/Windows_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Windows_Monitor.cpp
@@ -21,27 +21,27 @@ namespace ACE
{
this->init ();
}
-
+
void
Windows_Monitor::update_i (void)
{
PdhCollectQueryData (this->query_);
PDH_FMT_COUNTERVALUE pdh_value;
-
+
PdhGetFormattedCounterValue (this->counter_,
PDH_FMT_DOUBLE,
0,
&pdh_value);
-
+
this->value_ = pdh_value.doubleValue;
}
-
+
void
Windows_Monitor::clear_impl (void)
{
this->init ();
}
-
+
void
Windows_Monitor::init (void)
{
diff --git a/ACE/ace/Monitor_Control/Windows_Monitor.h b/ACE/ace/Monitor_Control/Windows_Monitor.h
index 12c9f5733f5..9a00d24536e 100644
--- a/ACE/ace/Monitor_Control/Windows_Monitor.h
+++ b/ACE/ace/Monitor_Control/Windows_Monitor.h
@@ -53,7 +53,7 @@ namespace ACE
protected:
double value_;
-
+
private:
/// Code common to constructor and clear_impl().
void init (void);
diff --git a/ACE/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp b/ACE/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp
index f674078b69a..7bd77a67637 100644
--- a/ACE/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp
+++ b/ACE/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp
@@ -88,7 +88,7 @@ namespace ACE
this->value_ += (*current_instance)->value_;
}
}
-
+
void
Windows_Multi_Instance_Monitor::clear_impl (void)
{
diff --git a/ACE/ace/Monitor_Point_Registry.cpp b/ACE/ace/Monitor_Point_Registry.cpp
index 03ea39be4ba..a451484b846 100644
--- a/ACE/ace/Monitor_Point_Registry.cpp
+++ b/ACE/ace/Monitor_Point_Registry.cpp
@@ -42,7 +42,7 @@ namespace ACE
type->add_ref ();
status = this->map_.bind (type->name (), type);
-
+
/// Temporary debugging code.
// ACE_DEBUG ((LM_DEBUG, "adding %s\n", type->name ()));
}
@@ -75,7 +75,7 @@ namespace ACE
ACE_CString name_str (name, 0, false);
status = this->map_.unbind (name_str, mp);
-
+
/// Temporary debugging code.
// ACE_DEBUG ((LM_DEBUG, "removing %s\n", name_str.c_str ()));
}
diff --git a/ACE/ace/Msg_WFMO_Reactor.cpp b/ACE/ace/Msg_WFMO_Reactor.cpp
index bbc95b948fa..251d6475a34 100644
--- a/ACE/ace/Msg_WFMO_Reactor.cpp
+++ b/ACE/ace/Msg_WFMO_Reactor.cpp
@@ -2,7 +2,7 @@
#include "ace/Msg_WFMO_Reactor.h"
-ACE_RCSID(ace, Msg_WFMO_Reactor, "$Id$")
+
#if defined (ACE_WIN32) && !defined (ACE_LACKS_MSG_WFMO)
diff --git a/ACE/ace/Multihomed_INET_Addr.cpp b/ACE/ace/Multihomed_INET_Addr.cpp
index cc51f19a094..692b00168cf 100644
--- a/ACE/ace/Multihomed_INET_Addr.cpp
+++ b/ACE/ace/Multihomed_INET_Addr.cpp
@@ -9,10 +9,6 @@
# include "ace/Multihomed_INET_Addr.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Multihomed_INET_Addr,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Multihomed_INET_Addr)
diff --git a/ACE/ace/Multihomed_INET_Addr.h b/ACE/ace/Multihomed_INET_Addr.h
index 2a46e1b6aaf..d0598bdf6e6 100644
--- a/ACE/ace/Multihomed_INET_Addr.h
+++ b/ACE/ace/Multihomed_INET_Addr.h
@@ -51,7 +51,7 @@ public:
/**
* Constructs an ACE_Multihomed_INET_Addr from a @a port_number, a
- * @a primary_host_name, and an array of <secondary_host_names>.
+ * @a primary_host_name, and an array of @a secondary_host_names.
* @a size is taken to be the length of the array. If @a encode is
* non-zero, then @a port_number is converted into network byte
* order; otherwise it is assumed to be in network byte order
@@ -105,7 +105,7 @@ public:
/// Use compiler-generated assignment operator.
- /// Default dtor.
+ /// Default destructor.
~ACE_Multihomed_INET_Addr (void);
// = Direct initialization methods.
@@ -114,7 +114,7 @@ public:
/**
* Initializes an ACE_Multihomed_INET_Addr from a @a port_number, a
- * @a primary_host_name, and an array of <secondary_host_names>.
+ * @a primary_host_name, and an array of @a secondary_host_names.
* @a size is taken to be the length of the array. If @a encode is
* non-zero, then @a port_number is converted into network byte
* order; otherwise it is assumed to be in network byte order
@@ -174,14 +174,12 @@ public:
* primary and secondary addresses. @a size is taken as the size of
* this array.
*/
- void get_addresses(sockaddr_in *addrs,
- size_t size) const;
+ void get_addresses(sockaddr_in *addrs, size_t size) const;
#if defined (ACE_HAS_IPV6)
/// IPV6 version of the above.
- void get_addresses(sockaddr_in6 *addrs,
- size_t size) const;
+ void get_addresses(sockaddr_in6 *addrs, size_t size) const;
#endif /* ACE_HAS_IPV6 */
private:
diff --git a/ACE/ace/Mutex.cpp b/ACE/ace/Mutex.cpp
index 2595aaba65e..c908aacbb13 100644
--- a/ACE/ace/Mutex.cpp
+++ b/ACE/ace/Mutex.cpp
@@ -10,11 +10,6 @@
#include "ace/OS_NS_string.h"
#include "ace/os_include/sys/os_mman.h"
-
-ACE_RCSID (ace,
- Mutex,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Mutex)
diff --git a/ACE/ace/Mutex.h b/ACE/ace/Mutex.h
index e876a09d3f8..157360210dd 100644
--- a/ACE/ace/Mutex.h
+++ b/ACE/ace/Mutex.h
@@ -144,6 +144,7 @@ public:
/// Return the underlying mutex.
const ACE_mutex_t &lock (void) const;
+ ACE_mutex_t &lock (void);
/// Dump the state of an object.
void dump (void) const;
diff --git a/ACE/ace/Mutex.inl b/ACE/ace/Mutex.inl
index eb09217501d..97ebf851da5 100644
--- a/ACE/ace/Mutex.inl
+++ b/ACE/ace/Mutex.inl
@@ -51,6 +51,17 @@ ACE_Mutex::lock (void) const
return this->lock_;
}
+ACE_INLINE ACE_mutex_t &
+ACE_Mutex::lock (void)
+{
+// ACE_TRACE ("ACE_Mutex::lock");
+#if defined (ACE_HAS_PTHREADS) || defined(ACE_HAS_STHREADS)
+ if (this->process_lock_)
+ return *this->process_lock_;
+#endif /* ACE_HAS_PTHREADS || ACE_HAS_STHREADS */
+ return this->lock_;
+}
+
ACE_INLINE int
ACE_Mutex::tryacquire_write (void)
{
diff --git a/ACE/ace/NT_Service.h b/ACE/ace/NT_Service.h
index 7023a0df0b2..49651738642 100644
--- a/ACE/ace/NT_Service.h
+++ b/ACE/ace/NT_Service.h
@@ -415,7 +415,8 @@ extern VOID WINAPI ace_nt_svc_main_##SVCNAME (DWORD dwArgc, \
ACE_TCHAR **lpszArgv);
#define ACE_NT_SERVICE_ENTRY(SVCDESC, SVCNAME) \
- { SVCDESC, &ace_nt_svc_main_##SVCNAME }
+ { const_cast<ACE_TCHAR*> (SVCDESC), \
+ &ace_nt_svc_main_##SVCNAME }
#define ACE_NT_SERVICE_RUN(SVCNAME, SVCINSTANCE, RET) \
ACE_TEXT_SERVICE_TABLE_ENTRY _ace_nt_svc_table[2] = \
diff --git a/ACE/ace/Name_Proxy.cpp b/ACE/ace/Name_Proxy.cpp
index 026856e75bd..2b9b77ce65c 100644
--- a/ACE/ace/Name_Proxy.cpp
+++ b/ACE/ace/Name_Proxy.cpp
@@ -4,7 +4,7 @@
#include "ace/Log_Msg.h"
#include "ace/os_include/arpa/os_inet.h"
-ACE_RCSID(ace, Name_Proxy, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Name_Request_Reply.cpp b/ACE/ace/Name_Request_Reply.cpp
index e602cd58b80..c046fae75ec 100644
--- a/ACE/ace/Name_Request_Reply.cpp
+++ b/ACE/ace/Name_Request_Reply.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Name_Request_Reply.h"
#include "ace/Basic_Types.h"
#include "ace/CDR_Base.h"
@@ -7,10 +9,6 @@
#include "ace/OS_NS_string.h"
#include "ace/os_include/arpa/os_inet.h"
-ACE_RCSID (ace,
- Name_Request_Reply,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Default "do nothing" constructor.
diff --git a/ACE/ace/Name_Space.cpp b/ACE/ace/Name_Space.cpp
index 22cc5b3f2db..3747feb7ce6 100644
--- a/ACE/ace/Name_Space.cpp
+++ b/ACE/ace/Name_Space.cpp
@@ -5,7 +5,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(ace, Name_Space, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Name_Space.h b/ACE/ace/Name_Space.h
index 1848443d37c..d9a844f23eb 100644
--- a/ACE/ace/Name_Space.h
+++ b/ACE/ace/Name_Space.h
@@ -99,13 +99,13 @@ public:
/**
* Overwrite the value or type of an existing name in a
* ACE_Name_Space or bind a new name to the context, if it didn't
- * exist yet. (Wide charcter strings interface).
+ * exist yet. (Wide character strings interface).
*/
virtual int rebind (const ACE_NS_WString &name_in,
const ACE_NS_WString &value_in,
const char *type_in = "") = 0;
- /// Delete a name from a ACE_Name_Space (Wide charcter strings
+ /// Delete a name from a ACE_Name_Space (Wide character strings
/// Interface).
virtual int unbind (const ACE_NS_WString &name_in) = 0;
diff --git a/ACE/ace/Naming_Context.cpp b/ACE/ace/Naming_Context.cpp
index 334f5e1b368..131abb65ebc 100644
--- a/ACE/ace/Naming_Context.cpp
+++ b/ACE/ace/Naming_Context.cpp
@@ -14,7 +14,7 @@
# include "ace/Trace.h"
#endif /* ACE_HAS_TRACE */
-ACE_RCSID(ace, Naming_Context, "$Id$")
+
#if !defined (__ACE_INLINE__)
#include "ace/Naming_Context.inl"
@@ -626,7 +626,7 @@ ACE_Name_Options::parse_args (int argc, ACE_TCHAR *argv[])
"\t[-b base address]\n"
"\t[-v] (verbose)\n"
"\t[-r] (use Win32 Registry)\n",
- argv[0]);
+ ACE_TEXT_ALWAYS_CHAR (argv[0]));
/* NOTREACHED */
break;
}
diff --git a/ACE/ace/Naming_Context.h b/ACE/ace/Naming_Context.h
index a4b1dde2b32..9d85b65b74f 100644
--- a/ACE/ace/Naming_Context.h
+++ b/ACE/ace/Naming_Context.h
@@ -126,7 +126,7 @@ public:
/**
* Overwrite the value or type of an existing name in a
* ACE_Naming_Context or bind a new name to the context, if it
- * didn't exist yet. (Wide charcter strings interface).
+ * didn't exist yet. (Wide character strings interface).
*/
int rebind (const ACE_NS_WString &name_in,
const ACE_NS_WString &value_in,
@@ -135,13 +135,13 @@ public:
/**
* Overwrite the value or type of an existing name in a
* ACE_Naming_Context or bind a new name to the context, if it
- * didn't exist yet. ( charcter strings interface)
+ * didn't exist yet. ( character strings interface)
*/
int rebind (const char *name_in,
const char *value_in,
const char *type_in = "");
- /// Delete a name from a ACE_Naming_Context (Wide charcter strings
+ /// Delete a name from a ACE_Naming_Context (Wide character strings
/// Interface).
int unbind (const ACE_NS_WString &name_in);
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/Notification_Strategy.cpp b/ACE/ace/Notification_Strategy.cpp
index f12bf3a569e..065e072d403 100644
--- a/ACE/ace/Notification_Strategy.cpp
+++ b/ACE/ace/Notification_Strategy.cpp
@@ -1,11 +1,11 @@
+// $Id$
+
#include "ace/Notification_Strategy.h"
#if !defined (__ACE_INLINE__)
#include "ace/Notification_Strategy.inl"
#endif /* __ACE_INLINE __ */
-ACE_RCSID(ace, Strategies, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Notification_Strategy::ACE_Notification_Strategy (ACE_Event_Handler *eh,
diff --git a/ACE/ace/Null_Barrier.h b/ACE/ace/Null_Barrier.h
index 9b3bc16912a..513aa96d7a4 100644
--- a/ACE/ace/Null_Barrier.h
+++ b/ACE/ace/Null_Barrier.h
@@ -18,9 +18,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-// All methods in this class are inline, so there is no
-// need to import or export on Windows. -- CAE 12/18/2003
-
/**
* @class ACE_Null_Barrier
*
diff --git a/ACE/ace/Null_Condition.h b/ACE/ace/Null_Condition.h
index e67f2a0bb41..31a2cbc9d16 100644
--- a/ACE/ace/Null_Condition.h
+++ b/ACE/ace/Null_Condition.h
@@ -16,8 +16,6 @@
#define ACE_NULL_CONDITION_H
#include /**/ "ace/pre.h"
-// All methods in this class are inline, so there is no
-// need to import or export on Windows. -- CAE 12/18/2003
#include "ace/Null_Mutex.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
diff --git a/ACE/ace/Null_Mutex.h b/ACE/ace/Null_Mutex.h
index 8d68c709d5a..4c0fb3eb713 100644
--- a/ACE/ace/Null_Mutex.h
+++ b/ACE/ace/Null_Mutex.h
@@ -16,12 +16,6 @@
#define ACE_NULL_MUTEX_H
#include /**/ "ace/pre.h"
-// All methods in this class are inline, so there is no
-// need to import or export on Windows. -- CAE 12/18/2003
-// Update... leaving off the ACE_Export causes compile warnings in some
-// cases with Microsoft Visual Studio .NET 2005, so I added the ACE_Export
-// to these class declarations. Steve Huston, 12/8/2006.
-
#include "ace/os_include/os_errno.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
@@ -90,42 +84,12 @@ public:
int lock_; // A dummy lock.
};
-#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
-/**
- * @class ACE_Null_Mutex_Guard
- *
- * @brief This data structure is meant to be used within a method or
- * function... It performs automatic aquisition and release of
- * an ACE_Null_Mutex.
- *
- * This class is obsolete and should be replaced by
- * ACE_Guard<ACE_Null_Mutex>.
- */
-class ACE_Export ACE_Null_Mutex_Guard
-{
-public:
- ACE_Null_Mutex_Guard (ACE_Null_Mutex &) {}
- ~ACE_Null_Mutex_Guard (void) {}
- int remove (void) {return 0;}
- int locked (void) {return 1;}
- int acquire (void) {return 0;}
- int tryacquire (void) {return 0;}
- int release (void) {return 0:}
- void dump (void) const {}
-
-private:
- // = Prevent assignment and initialization.
- void operator= (const ACE_Null_Mutex_Guard &);
- ACE_Null_Mutex_Guard (const ACE_Null_Mutex_Guard &);
-};
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
+// FUZZ: disable check_for_ACE_Guard
template <class ACE_LOCK>
class ACE_Guard;
/**
- * @class ACE_Guard<ACE_Null_Mutex>
- *
* @brief Template specialization of ACE_Guard for the
* ACE_Null_Mutex.
*
@@ -164,8 +128,8 @@ template <class ACE_LOCK>
class ACE_Write_Guard;
/**
- * @class ACE_Write_Guard<ACE_Null_Mutex>
- *
+ * @brief Template specialization of ACE_Write_Guard for the
+ * ACE_Null_Mutex.
*/
template<>
class ACE_Export ACE_Write_Guard<ACE_Null_Mutex>
@@ -188,8 +152,8 @@ template <class ACE_LOCK>
class ACE_Read_Guard;
/**
- * @class ACE_Read_Guard<ACE_Null_Mutex>
- *
+ * @brief Template specialization of ACE_Read)Guard for the
+ * ACE_Null_Mutex.
*/
template<>
class ACE_Export ACE_Read_Guard<ACE_Null_Mutex>
@@ -208,11 +172,13 @@ public:
void dump (void) const {}
};
+// FUZZ: enable check_for_ACE_Guard
+
template <class T> class ACE_Malloc_Lock_Adapter_T;
/**
- * @class ACE_Malloc_Lock_Adapter_T<ACE_Null_Mutex>
- *
+ * @brief Template specialization of ACE_Malloc_Lock_Adapter_T for the
+ * ACE_Null_Mutex.
*/
template<>
class ACE_Export ACE_Malloc_Lock_Adapter_T<ACE_Null_Mutex>
diff --git a/ACE/ace/Null_Semaphore.h b/ACE/ace/Null_Semaphore.h
index 23650db7518..dbfcfb80df1 100644
--- a/ACE/ace/Null_Semaphore.h
+++ b/ACE/ace/Null_Semaphore.h
@@ -16,8 +16,6 @@
#define ACE_NULL_SEMAPHORE_H
#include /**/ "ace/pre.h"
-// All methods in this class are inline, so there is no
-// need to import or export on Windows. -- CAE 12/18/2003
#include "ace/os_include/os_errno.h"
#include "ace/os_include/sys/os_types.h"
diff --git a/ACE/ace/OS.cpp b/ACE/ace/OS.cpp
deleted file mode 100644
index a1ea80d7307..00000000000
--- a/ACE/ace/OS.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-// $Id$
-
-// FUZZ: disable check_for_OS_h_include
-#include "ace/OS.h"
-
-#if !defined (ACE_HAS_WINCE)
-# include "ace/OS_QoS.h"
-#endif // ACE_HAS_WINCE
-
-// Perhaps we should *always* include ace/OS.i in order to make sure
-// we can always link against the OS symbols?
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "ace/OS.inl"
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_RCSID(ace, OS, "$Id$")
-
-// include new cpps
-#include "ace/Cleanup.cpp"
-#include "ace/Object_Manager_Base.cpp"
-#include "ace/OS_main.cpp"
-#include "ace/OS_NS_arpa_inet.cpp"
-#include "ace/OS_NS_ctype.cpp"
-#include "ace/OS_NS_dirent.cpp"
-#include "ace/OS_NS_dlfcn.cpp"
-#include "ace/OS_NS_errno.cpp"
-#include "ace/OS_NS_fcntl.cpp"
-#include "ace/OS_NS_math.cpp"
-#include "ace/OS_NS_netdb.cpp"
-#include "ace/OS_NS_poll.cpp"
-#include "ace/OS_NS_pwd.cpp"
-#include "ace/OS_NS_regex.cpp"
-#include "ace/OS_NS_signal.cpp"
-#include "ace/OS_NS_stdio.cpp"
-#include "ace/OS_NS_stdlib.cpp"
-#include "ace/OS_NS_string.cpp"
-#include "ace/OS_NS_strings.cpp"
-#include "ace/OS_NS_stropts.cpp"
-#include "ace/OS_NS_sys_mman.cpp"
-#include "ace/OS_NS_sys_msg.cpp"
-#include "ace/OS_NS_sys_resource.cpp"
-#include "ace/OS_NS_sys_select.cpp"
-#include "ace/OS_NS_sys_shm.cpp"
-#include "ace/OS_NS_sys_socket.cpp"
-#include "ace/OS_NS_sys_stat.cpp"
-#include "ace/OS_NS_sys_time.cpp"
-#include "ace/OS_NS_sys_uio.cpp"
-#include "ace/OS_NS_sys_utsname.cpp"
-#include "ace/OS_NS_sys_wait.cpp"
-#include "ace/OS_NS_Thread.cpp"
-#include "ace/OS_NS_time.cpp"
-#include "ace/OS_NS_unistd.cpp"
-#include "ace/OS_NS_wchar.cpp"
diff --git a/ACE/ace/OS.h b/ACE/ace/OS.h
index dda4c475b41..3d273c1057f 100644
--- a/ACE/ace/OS.h
+++ b/ACE/ace/OS.h
@@ -23,6 +23,32 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @namespace ACE_OS
+ *
+ * @brief This namespace defines an OS independent programming API that
+ * shields developers from nonportable aspects of writing
+ * efficient system programs on Win32, POSIX and other versions
+ * of UNIX, and various real-time operating systems.
+ *
+ * This namespace encapsulates the differences between various OS
+ * platforms. When porting ACE to a new platform, this class is
+ * the place to focus on. Once this file is ported to a new
+ * platform, pretty much everything else comes for "free." See
+ * <www.cs.wustl.edu/~schmidt/ACE_wrappers/etc/ACE-porting.html>
+ * for instructions on porting ACE. Please see the README file
+ * in this directory for complete information on the meaning of
+ * the various macros.
+ */
+namespace ACE_OS
+{
+ // = A set of wrappers for miscellaneous operations.
+} /* namespace ACE_OS */
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
#if !defined (DO_NOT_INCLUDE_OS_H)
#include "ace/Cleanup.h"
#include "ace/Object_Manager_Base.h"
@@ -61,27 +87,10 @@
#include "ace/OS_NS_wchar.h"
// Include the split up ACE_OS classes
-#include "ace/OS_Dirent.h"
-#include "ace/OS_String.h"
#include "ace/OS_Memory.h"
#include "ace/OS_TLI.h"
#include "ace/OS_Errno.h"
-#include "ace/os_include/os_dlfcn.h"
-#include "ace/os_include/sys/os_mman.h"
-#include "ace/os_include/os_netdb.h"
-#include "ace/os_include/sys/os_socket.h"
-#include "ace/os_include/net/os_if.h"
-#include "ace/os_include/sys/os_sem.h"
-
-#include "ace/Time_Value.h"
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-class ACE_Timeout_Manager;
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
// Here are all ACE-specific default constants, needed throughout ACE
// and its applications. The values can be over written by user
// specific values in config.h files.
@@ -91,239 +100,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
// ACE.
#include "ace/Global_Macros.h"
-// include the ACE min()/max() functions.
-# include "ace/Min_Max.h"
-
-///////////////////////////////////////////
-// //
-// NOTE: Please do not add any #includes //
-// before this point. On VxWorks, //
-// vxWorks.h must be #included //
-// first! //
-// //
-///////////////////////////////////////////
-
-#include "ace/os_include/netinet/os_tcp.h"
-#include "ace/os_include/sys/os_stat.h"
-#include "ace/os_include/os_stropts.h"
-#include "ace/os_include/os_unistd.h"
-#include "ace/os_include/sys/os_wait.h"
-
-
-// This needs to go here *first* to avoid problems with AIX.
-# if defined (ACE_HAS_PTHREADS)
-# include "ace/os_include/os_pthread.h"
-# endif /* ACE_HAS_PTHREADS */
-
-# if defined (ACE_HAS_PROC_FS)
-# include /**/ <sys/procfs.h>
-# endif /* ACE_HAS_PROC_FS */
-
-# if defined (ACE_HAS_POSIX_SEM)
-# include "ace/os_include/os_semaphore.h"
-# endif /* ACE_HAS_POSIX_SEM */
-
-#include "ace/os_include/sys/os_types.h"
-#include "ace/os_include/os_stddef.h"
-#if !defined (ACE_LACKS_UNISTD_H)
-# include "ace/os_include/os_unistd.h"
-#endif /* ACE_LACKS_UNISTD_H */
-
-// Standard C Library includes
-# if !defined (ACE_HAS_WINCE)
-# include "ace/os_include/os_assert.h"
-# include "ace/os_include/os_stdio.h"
-
-# if !defined (ACE_LACKS_NEW_H)
-# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# include /**/ <new>
-# else
-# include /**/ <new.h>
-# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
-# endif /* ! ACE_LACKS_NEW_H */
-
-# if !defined (ACE_VXWORKS)
-# define ACE_DONT_INCLUDE_ACE_SIGNAL_H
-# include "ace/os_include/os_signal.h"
-# undef ACE_DONT_INCLUDE_ACE_SIGNAL_H
-# endif /* ! VXWORKS */
-
-# include "ace/os_include/os_fcntl.h"
-# endif /* ACE_HAS_WINCE */
-
-# include "ace/os_include/os_limits.h"
-# include "ace/os_include/os_ctype.h"
-# include "ace/os_include/os_string.h"
-# include "ace/os_include/os_stdlib.h"
-# include "ace/os_include/os_float.h"
-
-# if defined (ACE_NEEDS_SCHED_H)
-# include "ace/os_include/os_sched.h"
-# endif /* ACE_NEEDS_SCHED_H */
-
-# include "ace/iosfwd.h"
-
-# if !defined (ACE_HAS_WINCE)
-# include "ace/os_include/os_fcntl.h"
-# endif /* ACE_HAS_WINCE */
-
-# if defined ACE_HAS_BYTESEX_H
-# include /**/ <bytesex.h>
-# endif /* ACE_HAS_BYTESEX_H */
-# include "ace/Basic_Types.h"
-
-# if defined (ACE_HAS_UTIME)
-# include "ace/os_include/os_utime.h"
-# endif /* ACE_HAS_UTIME */
-
-# if defined (ACE_WIN32)
-
-# if !defined (ACE_HAS_WINCE)
-# include "ace/os_include/sys/os_timeb.h"
-# endif /* ACE_HAS_WINCE */
-
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-# include "ace/os_include/netinet/os_in.h" // <ws2tcpip.h>
-# endif /* ACE_HAS_WINSOCK2 */
-
-# if !defined (ACE_HAS_WINCE)
-# include "ace/os_include/os_time.h"
-# include "ace/os_include/sys/os_stat.h" // <direct.h>
-# include "ace/os_include/os_unistd.h" // <process.h>
-# endif /* ACE_HAS_WINCE */
-
-# include "ace/os_include/os_fcntl.h"
-
-# else /* !defined (ACE_WIN32) */
-
-# if defined (CYGWIN32)
-# include "ace/os_include/sys/os_uio.h"
-# include "ace/os_include/os_fcntl.h" // <sys/file.h>
-# include "ace/os_include/sys/os_time.h"
-# include "ace/os_include/sys/os_resource.h"
-# include "ace/os_include/sys/os_wait.h"
-# include "ace/os_include/os_pwd.h"
-# elif defined (__QNX__)
-# include "ace/os_include/sys/os_uio.h"
-# include "ace/os_include/sys/os_ipc.h"
-# include "ace/os_include/sys/os_time.h"
-# include "ace/os_include/sys/os_wait.h"
-# include "ace/os_include/sys/os_resource.h"
-# include "ace/os_include/os_pwd.h"
- // sets O_NDELAY
-# include /**/ <unix.h>
-# include "ace/os_include/os_limits.h" // <sys/param.h> /* for NBBY */
-# elif defined(ACE_HAS_RTEMS)
-# include "ace/os_include/os_fcntl.h" // <sys/file.h>
-# include "ace/os_include/sys/os_resource.h"
-# include "ace/os_include/sys/os_time.h"
-# include "ace/os_include/sys/os_utsname.h"
-# include "ace/os_include/sys/os_wait.h"
-# include "ace/os_include/os_pwd.h"
-
-# elif ! defined (ACE_VXWORKS) && ! defined (INTEGRITY)
-# include "ace/os_include/sys/os_uio.h"
-# include "ace/os_include/sys/os_ipc.h"
-# if !defined(ACE_LACKS_SYSV_SHMEM)
-// No reason to #include this if the platform lacks support for SHMEM
-# include "ace/os_include/sys/os_shm.h"
-# endif /* ACE_LACKS_SYSV_SHMEM */
-# include "ace/os_include/os_fcntl.h" // <sys/file.h>
-# include "ace/os_include/sys/os_time.h"
-# include "ace/os_include/sys/os_resource.h"
-# include "ace/os_include/sys/os_wait.h"
-# include "ace/os_include/os_pwd.h"
-# endif /* ! VXWORKS */
-# include "ace/os_include/os_stropts.h" // <sys/ioctl.h>
-
-// IRIX5 defines bzero() in this odd file...
-# if defined (ACE_HAS_BSTRING)
-# include /**/ <bstring.h>
-# endif /* ACE_HAS_BSTRING */
-
-// AIX defines bzero() in this odd file...
-# if defined (ACE_HAS_STRINGS)
-# include "ace/os_include/os_strings.h"
-# endif /* ACE_HAS_STRINGS */
-
-# if defined (ACE_HAS_TERMIOS)
-# include "ace/os_include/os_termios.h"
-# endif /* ACE_HAS_TERMIOS */
-
-# if defined (ACE_HAS_AIO_CALLS)
-# include "ace/os_include/os_aio.h"
-# endif /* ACE_HAS_AIO_CALLS */
-
-# include "ace/os_include/os_limits.h" // <sys/param.h>
-
-# if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-# include "ace/os_include/sys/os_un.h"
-# endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
-
-# if defined (ACE_HAS_POLL)
-# include "ace/os_include/os_poll.h"
-# endif /* ACE_HAS_POLL */
-
-# if defined (ACE_HAS_SELECT_H)
-# include "ace/os_include/sys/os_select.h"
-# endif /* ACE_HAS_SELECT_H */
-
-# include "ace/os_include/sys/os_msg.h"
-
-# if defined (ACE_HAS_PRIOCNTL)
-# include /**/ <sys/priocntl.h>
-# endif /* ACE_HAS_PRIOCNTL */
-
-# endif /* !defined (ACE_WIN32) */
-
-# if !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG)
-# include "ace/os_include/os_syslog.h"
-# endif /* !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG) */
-
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-/**
- * @namespace ACE_OS
- *
- * @brief This namespace defines an OS independent programming API that
- * shields developers from nonportable aspects of writing
- * efficient system programs on Win32, POSIX and other versions
- * of UNIX, and various real-time operating systems.
- *
- * This namespace encapsulates the differences between various OS
- * platforms. When porting ACE to a new platform, this class is
- * the place to focus on. Once this file is ported to a new
- * platform, pretty much everything else comes for "free." See
- * <www.cs.wustl.edu/~schmidt/ACE_wrappers/etc/ACE-porting.html>
- * for instructions on porting ACE. Please see the README file
- * in this directory for complete information on the meaning of
- * the various macros.
- */
-namespace ACE_OS
-{
- // = A set of wrappers for miscellaneous operations.
-} /* namespace ACE_OS */
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-# if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "ace/OS.inl"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#if defined (ACE_LEGACY_MODE)
-# include "ace/Log_Msg.h"
-# include "ace/Thread_Hook.h"
-# include "ace/Thread_Adapter.h"
-# include "ace/Thread_Exit.h"
-# include "ace/Thread_Control.h"
-#endif /* ACE_LEGACY_MODE */
-
-#endif /* 0 */
+#endif /* DO_NOT_INCLUDE_OS_H */
#include /**/ "ace/post.h"
#endif /* ACE_OS_H */
diff --git a/ACE/ace/OS.inl b/ACE/ace/OS.inl
deleted file mode 100644
index 60928def53e..00000000000
--- a/ACE/ace/OS.inl
+++ /dev/null
@@ -1,93 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-#if defined (ACE_HAS_XLI)
-# include /**/ <xliuser.h>
-#endif /* ACE_HAS_XLI */
-
-#if !defined (ACE_HAS_CPLUSPLUS_HEADERS)
-# include /**/ <libc.h>
-# include /**/ <osfcn.h>
-#endif /* ACE_HAS_CPLUSPLUS_HEADERS */
-
-#if defined (ACE_HAS_SYSENT_H)
-# include /**/ <sysent.h>
-#endif /* ACE_HAS_SYSENT_H */
-
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB != 0)
-using std::bsearch;
-using std::qsort;
-# if defined (ACE_WIN32)
-using std::_tzset;
-# else
-using std::tzset;
-# endif
-using std::ctime;
-using std::localtime;
-using std::gmtime;
-using std::asctime;
-using std::strftime;
-#endif /* ACE_USES_STD_NAMESPACE_FOR_STDC_LIB */
-
-#if !defined (ACE_LACKS_MALLOC_H)
-# include /**/ <malloc.h>
-#endif /* ACE_LACKS_MALLOC_H */
-
-#if !defined (ACE_WIN32)
-
-// Matthew Stevens 7-10-95 Fix GNU GCC 2.7 for memchr() problem.
-# if defined (ACE_HAS_GNU_CSTRING_H)
-// Define this file to keep /usr/include/memory.h from being included.
-# include /**/ <cstring>
-# else
-# if defined (ACE_LACKS_MEMORY_H)
-# include "ace/os_include/os_string.h"
-# else
-# include /**/ <memory.h>
-# endif /* ACE_LACKS_MEMORY_H */
-# endif /* ACE_HAS_GNU_CSTRING_H */
-
-// The following are #defines and #includes that must be visible for
-// ACE to compile it's OS wrapper class implementation correctly. We
-// put them inside of here to reduce compiler overhead if we're not
-// inlining...
-
-# if defined (ACE_HAS_REGEX)
-# include /**/ <regexpr.h>
-# endif /* ACE_HAS_REGEX */
-
-# if defined (ACE_HAS_SYS_SYSTEMINFO_H)
-# include /**/ <sys/systeminfo.h>
-# endif /* ACE_HAS_SYS_SYSTEMINFO_H */
-
-# if defined (ACE_HAS_SYS_SYSCALL_H)
-# include /**/ <sys/syscall.h>
-# endif /* ACE_HAS_SYS_SYSCALL_H */
-
-# if defined (UNIXWARE) /* See strcasecmp, below */
-# include /**/ <ctype.h>
-# endif /* UNIXWARE */
-
-# if defined (ACE_HAS_GETIFADDRS)
-# if defined (ACE_VXWORKS)
-# include /**/ <net/ifaddrs.h>
-# else
-# include /**/ <ifaddrs.h>
-# endif
-# endif /* ACE_HAS_GETIFADDRS */
-
-
-#endif /* WIN32 */
-
-#if defined (ACE_HAS_SHM_OPEN) && defined(INTEGRITY)
-#include "ace/os_include/sys/os_mman.h"
-#endif
-
-// ****************************************************************
-
diff --git a/ACE/ace/OS_Dirent.h b/ACE/ace/OS_Dirent.h
deleted file mode 100644
index b6e967297f1..00000000000
--- a/ACE/ace/OS_Dirent.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS_Dirent.h
- *
- * $Id$
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller<stophph@diku.dk>
- * @author and a cast of thousands...
- */
-//=============================================================================
-
-#ifndef ACE_OS_DIRENT_H
-#define ACE_OS_DIRENT_H
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_Errno.h"
-#include "ace/os_include/os_dirent.h"
-#include "ace/os_include/sys/os_types.h"
-
-#include "ace/OS_NS_dirent.h"
-
-#include /**/ "ace/post.h"
-#endif /* ACE_OS_DIRENT_H */
diff --git a/ACE/ace/OS_Errno.cpp b/ACE/ace/OS_Errno.cpp
index 6f9905cad1f..6bb04208d7d 100644
--- a/ACE/ace/OS_Errno.cpp
+++ b/ACE/ace/OS_Errno.cpp
@@ -3,8 +3,6 @@
#include "ace/OS_Errno.h"
-ACE_RCSID(ace, OS_Errno, "$Id$")
-
// Inlining this class on debug builds with gcc on Solaris can cause
// deadlocks during static initialization. On non debug builds it
// causes compilation errors.
diff --git a/ACE/ace/OS_Log_Msg_Attributes.cpp b/ACE/ace/OS_Log_Msg_Attributes.cpp
index 589782735e2..353b805787a 100644
--- a/ACE/ace/OS_Log_Msg_Attributes.cpp
+++ b/ACE/ace/OS_Log_Msg_Attributes.cpp
@@ -6,4 +6,4 @@
# include "ace/OS_Log_Msg_Attributes.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
-ACE_RCSID(ace, OS_Log_Msg_Attributes, "$Id$")
+
diff --git a/ACE/ace/OS_Log_Msg_Attributes.h b/ACE/ace/OS_Log_Msg_Attributes.h
index 0360ee4ec56..33997a958b0 100644
--- a/ACE/ace/OS_Log_Msg_Attributes.h
+++ b/ACE/ace/OS_Log_Msg_Attributes.h
@@ -23,6 +23,7 @@
#include /**/ "ace/ACE_export.h"
#include "ace/os_include/os_stdio.h"
#include "ace/iosfwd.h"
+#include "ace/Copy_Disabled.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -39,7 +40,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* The contents of the class must be made available to the OS layer,
* because they are part of the thread descriptor.
*/
-class ACE_Export ACE_OS_Log_Msg_Attributes
+class ACE_Export ACE_OS_Log_Msg_Attributes : private ACE_Copy_Disabled
{
public:
/// Constructor
@@ -65,16 +66,11 @@ protected:
/// Depth of the nesting for printing traces.
int trace_depth_;
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
+#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
/// Structured exception handling Callbacks, only used under Win32
ACE_SEH_EXCEPT_HANDLER seh_except_selector_;
ACE_SEH_EXCEPT_HANDLER seh_except_handler_;
-# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
-
-private:
- // Prevent copying
- ACE_OS_Log_Msg_Attributes (const ACE_OS_Log_Msg_Attributes &);
- ACE_OS_Log_Msg_Attributes &operator= (const ACE_OS_Log_Msg_Attributes &);
+#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_Memory.h b/ACE/ace/OS_Memory.h
index 186384f76f5..ad5a22dbad2 100644
--- a/ACE/ace/OS_Memory.h
+++ b/ACE/ace/OS_Memory.h
@@ -58,11 +58,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#if defined (ACE_HAS_OLD_MALLOC)
-typedef char * ACE_MALLOC_T;
-#else
typedef void * ACE_MALLOC_T;
-#endif /* ACE_HAS_OLD_MALLOC */
ACE_END_VERSIONED_NAMESPACE_DECL
@@ -238,7 +234,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC == 1)
# define ACE_throw_bad_alloc AfxThrowMemoryException ()
# else
-# define ACE_throw_bad_alloc throw ACE_bad_alloc ()
+# define ACE_throw_bad_alloc return 0
# endif
#endif /* ACE_NEW_THROWS_EXCEPTIONS */
diff --git a/ACE/ace/OS_NS_Thread.cpp b/ACE/ace/OS_NS_Thread.cpp
index 98633f4d5f8..c0a1d0b4e39 100644
--- a/ACE/ace/OS_NS_Thread.cpp
+++ b/ACE/ace/OS_NS_Thread.cpp
@@ -1,8 +1,6 @@
-#include "ace/OS_NS_Thread.h"
+// $Id$
-ACE_RCSID (ace,
- OS_NS_Thread,
- "$Id$")
+#include "ace/OS_NS_Thread.h"
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_Thread.inl"
@@ -33,7 +31,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)
@@ -61,24 +59,14 @@ ACE_Thread_ID::to_string (char *thr_string) const
ACE_OS::strcpy (fp, "u");
ACE_OS::sprintf (thr_string,
format,
- static_cast <unsigned> (thread_id_));
-#elif defined (DIGITAL_UNIX)
- ACE_OS::strcpy (fp, "u");
- ACE_OS::sprintf (thr_string, format,
-# if defined (ACE_HAS_THREADS)
- thread_id_
-# else
- thread_id_
-# endif /* ACE_HAS_THREADS */
- );
+ static_cast <unsigned> (this->thread_id_));
#else
-
-# if defined (ACE_MVS) || defined (ACE_TANDEM_T1248_PTHREADS)
- // MVS's pthread_t is a struct... yuck. So use the ACE 5.0
+# if defined (ACE_TANDEM_T1248_PTHREADS)
+ // Tandem pthread_t is a struct... yuck. So use the ACE 5.0
// code for it.
ACE_OS::strcpy (fp, "u");
ACE_OS::sprintf (thr_string, format, thread_handle_);
-# else
+# else
// Yes, this is an ugly C-style cast, but the
// correct C++ cast is different depending on
// whether the t_id is an integral type or a pointer
@@ -89,8 +77,7 @@ ACE_Thread_ID::to_string (char *thr_string) const
ACE_OS::sprintf (thr_string,
format,
(unsigned long) thread_handle_);
-# endif /* ACE_MVS || ACE_TANDEM_T1248_PTHREADS */
-
+# endif /* ACE_TANDEM_T1248_PTHREADS */
#endif /* ACE_WIN32 */
}
@@ -117,17 +104,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
}
@@ -247,13 +232,7 @@ ACE_TSS_Emulation::next_key (ACE_thread_key_t &key)
// Loop through all possible keys and check whether a key is free
for ( ;counter < ACE_TSS_THREAD_KEYS_MAX; counter++)
{
- ACE_thread_key_t localkey;
-# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T)
- ACE_OS::memset (&localkey, 0, sizeof (ACE_thread_key_t));
- ACE_OS::memcpy (&localkey, &counter_, sizeof (u_int));
-# else
- localkey = counter;
-# endif /* ACE_HAS_NONSCALAR_THREAD_KEY_T */
+ ACE_thread_key_t localkey = counter;
// If the key is not set as used, we can give out this key, if not
// we have to search further
if (tss_keys_used_->is_set(localkey) == 0)
@@ -412,20 +391,6 @@ ACE_TSS_Info::ACE_TSS_Info (void)
ACE_OS_TRACE ("ACE_TSS_Info::ACE_TSS_Info");
}
-# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T)
-static inline bool operator== (const ACE_thread_key_t &lhs,
- const ACE_thread_key_t &rhs)
-{
- return ! ACE_OS::memcmp (&lhs, &rhs, sizeof (ACE_thread_key_t));
-}
-
-static inline bool operator!= (const ACE_thread_key_t &lhs,
- const ACE_thread_key_t &rhs)
-{
- return ! (lhs == rhs);
-}
-# endif /* ACE_HAS_NONSCALAR_THREAD_KEY_T */
-
// Check for equality.
bool
ACE_TSS_Info::operator== (const ACE_TSS_Info &info) const
@@ -481,9 +446,8 @@ ACE_TSS_Keys::find (const u_int key, u_int &word, u_int &bit)
int
ACE_TSS_Keys::test_and_set (const ACE_thread_key_t key)
{
- ACE_KEY_INDEX (key_index, key);
u_int word, bit;
- find (key_index, word, bit);
+ find (key, word, bit);
if (ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit))
{
@@ -499,9 +463,8 @@ ACE_TSS_Keys::test_and_set (const ACE_thread_key_t key)
int
ACE_TSS_Keys::test_and_clear (const ACE_thread_key_t key)
{
- ACE_KEY_INDEX (key_index, key);
u_int word, bit;
- find (key_index, word, bit);
+ find (key, word, bit);
if (word < ACE_WORDS && ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit))
{
@@ -517,9 +480,8 @@ ACE_TSS_Keys::test_and_clear (const ACE_thread_key_t key)
int
ACE_TSS_Keys::is_set (const ACE_thread_key_t key) const
{
- ACE_KEY_INDEX (key_index, key);
u_int word, bit;
- find (key_index, word, bit);
+ find (key, word, bit);
return word < ACE_WORDS ? ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit) : 0;
}
@@ -668,7 +630,7 @@ TSS_Cleanup_Instance::TSS_Cleanup_Instance (Purpose purpose)
ACE_NEW (condition_, ACE_Thread_Condition<ACE_Thread_Mutex> (*mutex_));
}
- ACE_Guard<ACE_Thread_Mutex> guard(*mutex_);
+ ACE_GUARD (ACE_Thread_Mutex, m, *mutex_);
if (purpose == CREATE)
{
@@ -711,7 +673,7 @@ TSS_Cleanup_Instance::~TSS_Cleanup_Instance (void)
// scope the guard
{
- ACE_Guard<ACE_Thread_Mutex> guard (*mutex_);
+ ACE_GUARD (ACE_Thread_Mutex, guard, *mutex_);
if (ptr_ != 0)
{
if (ACE_BIT_ENABLED (flags_, FLAG_DELETING))
@@ -825,7 +787,7 @@ ACE_TSS_Cleanup::thread_exit (void)
}
// remove the in_use bit vector last
- ACE_KEY_INDEX (use_index, this->in_use_);
+ u_int use_index = this->in_use_;
ACE_TSS_Info & info = this->table_[use_index];
destructor[d_count] = 0;
tss_obj[d_count] = 0;
@@ -867,7 +829,7 @@ ACE_TSS_Cleanup::insert (ACE_thread_key_t key,
ACE_OS_TRACE ("ACE_TSS_Cleanup::insert");
ACE_TSS_CLEANUP_GUARD
- ACE_KEY_INDEX (key_index, key);
+ u_int key_index = key;
ACE_ASSERT (key_index < ACE_DEFAULT_THREAD_KEYS);
if (key_index < ACE_DEFAULT_THREAD_KEYS)
{
@@ -888,7 +850,7 @@ ACE_TSS_Cleanup::free_key (ACE_thread_key_t key)
{
ACE_OS_TRACE ("ACE_TSS_Cleanup::free_key");
ACE_TSS_CLEANUP_GUARD
- ACE_KEY_INDEX (key_index, key);
+ u_int key_index = key;
if (key_index < ACE_DEFAULT_THREAD_KEYS)
{
return remove_key (this->table_ [key_index]);
@@ -938,7 +900,7 @@ ACE_TSS_Cleanup::thread_detach_key (ACE_thread_key_t key)
{
ACE_TSS_CLEANUP_GUARD
- ACE_KEY_INDEX (key_index, key);
+ u_int key_index = key;
ACE_ASSERT (key_index < sizeof(this->table_)/sizeof(this->table_[0])
&& this->table_[key_index].key_ == key);
ACE_TSS_Info &info = this->table_ [key_index];
@@ -994,7 +956,7 @@ ACE_TSS_Cleanup::thread_use_key (ACE_thread_key_t key)
ACE_TSS_CLEANUP_GUARD
// Retrieve the key's ACE_TSS_Info and increment its thread_count_.
- ACE_KEY_INDEX (key_index, key);
+ u_int key_index = key;
ACE_TSS_Info &key_info = this->table_ [key_index];
ACE_ASSERT (key_info.key_in_use ());
@@ -1151,8 +1113,12 @@ 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;
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ {
+ return -1;
+ }
+
+ bool have_waiters = false;
if (cv->waiters_ > 0)
{
@@ -1161,9 +1127,15 @@ 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_);
+
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ {
+ // This is really bad, we have the lock but can't release it anymore
+ return -1;
+ }
+
int result = 0;
if (have_waiters)
{
@@ -1199,8 +1171,14 @@ ACE_OS::cond_destroy (ACE_cond_t *cv)
# elif defined (ACE_VXWORKS)
ACE_OS::sema_destroy (&cv->waiters_done_);
# endif /* ACE_VXWORKS */
- ACE_OS::thread_mutex_destroy (&cv->waiters_lock_);
- return ACE_OS::sema_destroy (&cv->sema_);
+ int result = 0;
+ if (ACE_OS::thread_mutex_destroy (&cv->waiters_lock_) != 0)
+ result = -1;
+
+ if (ACE_OS::sema_destroy (&cv->sema_) != 0)
+ result = -1;
+
+ return result;
# else
ACE_UNUSED_ARG (cv);
ACE_NOTSUP_RETURN (-1);
@@ -1298,9 +1276,11 @@ ACE_OS::cond_signal (ACE_cond_t *cv)
// lost wakeup bug... This is needed to ensure that the <waiters_>
// 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;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
+ bool const have_waiters = cv->waiters_ > 0;
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
if (have_waiters)
return ACE_OS::sema_post (&cv->sema_);
@@ -1319,19 +1299,27 @@ ACE_OS::cond_wait (ACE_cond_t *cv,
ACE_OS_TRACE ("ACE_OS::cond_wait");
# if defined (ACE_HAS_THREADS)
// Prevent race conditions on the <waiters_> count.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
+
++cv->waiters_;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
int result = 0;
# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT)
if (external_mutex->type_ == USYNC_PROCESS)
- // This call will automatically release the mutex and wait on the semaphore.
- ACE_WIN32CALL (ACE_ADAPT_RETVAL (::SignalObjectAndWait (external_mutex->proc_mutex_,
- cv->sema_, INFINITE, FALSE),
- result),
- int, -1, result);
+ {
+ // This call will automatically release the mutex and wait on the semaphore.
+ ACE_WIN32CALL (ACE_ADAPT_RETVAL (::SignalObjectAndWait (external_mutex->proc_mutex_,
+ cv->sema_, INFINITE, FALSE),
+ result),
+ int, -1, result);
+ if (result == -1)
+ return result;
+ }
else
# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */
{
@@ -1348,7 +1336,8 @@ ACE_OS::cond_wait (ACE_cond_t *cv,
}
// Reacquire lock to avoid race conditions on the <waiters_> count.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
// We're ready to return, so there's one less waiter.
--cv->waiters_;
@@ -1357,7 +1346,8 @@ ACE_OS::cond_wait (ACE_cond_t *cv,
// Release the lock so that other collaborating threads can make
// progress.
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
if (result == -1)
// Bad things happened, so let's just return below.
@@ -1379,7 +1369,8 @@ ACE_OS::cond_wait (ACE_cond_t *cv,
// We must always regain the <external_mutex>, even when
// errors occur because that's the guarantee that we give to
// our callers.
- ACE_OS::mutex_lock (external_mutex);
+ if (ACE_OS::mutex_lock (external_mutex) != 0)
+ return -1;
return result;
/* NOTREACHED */
@@ -1419,9 +1410,13 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
# if defined (ACE_HAS_WTHREADS) || defined (ACE_VXWORKS)
// Prevent race conditions on the <waiters_> count.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
+
++cv->waiters_;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
int result = 0;
ACE_Errno_Guard error (errno, 0);
@@ -1478,12 +1473,15 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
}
// Reacquire lock to avoid race conditions.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
+
--cv->waiters_;
bool const last_waiter = cv->was_broadcast_ && cv->waiters_ == 0;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
# if defined (ACE_WIN32)
if (result != WAIT_OBJECT_0)
@@ -1531,10 +1529,13 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
result),
int, -1, result);
else
- // We must always regain the <external_Mutex>, even when
- // errors occur because that's the guarantee that we give to
- // our callers.
- ACE_OS::mutex_lock (external_mutex);
+ {
+ // We must always regain the <external_Mutex>, even when
+ // errors occur because that's the guarantee that we give to
+ // our callers.
+ if (ACE_OS::mutex_lock (external_mutex) != 0)
+ return -1;
+ }
return result;
/* NOTREACHED */
@@ -1544,16 +1545,20 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
// if" statement since the caller may have timed out and hence the
// result would have been -1 above.
if (last_waiter)
- // Release the signaler/broadcaster if we're the last waiter.
+ {
+ // Release the signaler/broadcaster if we're the last waiter.
# if defined (ACE_WIN32)
- ACE_OS::event_signal (&cv->waiters_done_);
+ if (ACE_OS::event_signal (&cv->waiters_done_) != 0)
# else
- ACE_OS::sema_post (&cv->waiters_done_);
+ if (ACE_OS::sema_post (&cv->waiters_done_) != 0)
# endif /* ACE_WIN32 */
+ return -1;
+ }
// We must always regain the <external_mutex>, even when errors
// occur because that's the guarantee that we give to our callers.
- ACE_OS::mutex_lock (external_mutex);
+ if (ACE_OS::mutex_lock (external_mutex) != 0)
+ return -1;
return result;
# endif /* ACE_HAS_WTHREADS || ACE_HAS_VXWORKS */
@@ -1607,9 +1612,13 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
return result;
#else
// Prevent race conditions on the <waiters_> count.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
+
++cv->waiters_;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
int result = 0;
int error = 0;
@@ -1648,13 +1657,15 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
// Reacquire lock to avoid race conditions.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
--cv->waiters_;
bool const last_waiter = cv->was_broadcast_ && cv->waiters_ == 0;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
if (result != WAIT_OBJECT_0)
{
@@ -1671,13 +1682,24 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
}
if (last_waiter)
- // Release the signaler/broadcaster if we're the last waiter.
- ACE_OS::event_signal (&cv->waiters_done_);
+ {
+ // Release the signaler/broadcaster if we're the last waiter.
+ if (ACE_OS::event_signal (&cv->waiters_done_) != 0)
+ return -1;
+ }
// We must always regain the <external_mutex>, even when errors
// occur because that's the guarantee that we give to our callers.
- ACE_OS::thread_mutex_lock (external_mutex);
- errno = error;
+ if (ACE_OS::thread_mutex_lock (external_mutex) != 0)
+ result = -1;
+
+ if (error != 0)
+ {
+ /* This assignment must only be done if error != 0,
+ * since writing 0 to errno violates the POSIX specification.
+ */
+ errno = error;
+ }
return result;
# endif
# else
@@ -1696,9 +1718,12 @@ ACE_OS::cond_wait (ACE_cond_t *cv,
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::SleepConditionVariableCS (cv, external_mutex, INFINITE), result),
int, -1);
#else
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
++cv->waiters_;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
int result = 0;
int error = 0;
@@ -1724,13 +1749,15 @@ ACE_OS::cond_wait (ACE_cond_t *cv,
# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
// Reacquire lock to avoid race conditions.
- ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_lock (&cv->waiters_lock_) != 0)
+ return -1;
cv->waiters_--;
bool const last_waiter = cv->was_broadcast_ && cv->waiters_ == 0;
- ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
+ if (ACE_OS::thread_mutex_unlock (&cv->waiters_lock_) != 0)
+ return -1;
if (result != WAIT_OBJECT_0)
{
@@ -1745,15 +1772,25 @@ ACE_OS::cond_wait (ACE_cond_t *cv,
}
}
else if (last_waiter)
- // Release the signaler/broadcaster if we're the last waiter.
- ACE_OS::event_signal (&cv->waiters_done_);
+ {
+ // Release the signaler/broadcaster if we're the last waiter.
+ if (ACE_OS::event_signal (&cv->waiters_done_) != 0)
+ return -1;
+ }
// We must always regain the <external_mutex>, even when errors
// occur because that's the guarantee that we give to our callers.
- ACE_OS::thread_mutex_lock (external_mutex);
+ if (ACE_OS::thread_mutex_lock (external_mutex) != 0)
+ result = -1;
// Reset errno in case mutex_lock() also fails...
- errno = error;
+ if (error != 0)
+ {
+ /* This assignment must only be done if error != 0,
+ * since writing 0 to errno violates the POSIX specification.
+ */
+ errno = error;
+ }
return result;
#endif
# else
@@ -2394,7 +2431,8 @@ ACE_OS::event_destroy (ACE_event_t *event)
&& errno == EBUSY)
{
event->eventdata_->is_signaled_ = 1;
- ACE_OS::cond_broadcast (&event->eventdata_->condition_);
+ if (ACE_OS::cond_broadcast (&event->eventdata_->condition_) != 0)
+ return -1;
ACE_OS::thr_yield ();
}
# else
@@ -2453,7 +2491,8 @@ ACE_OS::event_destroy (ACE_event_t *event)
&& errno == EBUSY)
{
event->eventdata_->is_signaled_ = 1;
- ACE_OS::cond_broadcast (&event->eventdata_->condition_);
+ if (ACE_OS::cond_broadcast (&event->eventdata_->condition_) != 0)
+ return -1;
ACE_OS::thr_yield ();
}
# else
@@ -2812,9 +2851,11 @@ ACE_OS::event_pulse (ACE_event_t *event)
(!defined (ACE_LACKS_MUTEXATTR_PSHARED) || !defined (ACE_LACKS_CONDATTR_PSHARED))) || \
(!defined (ACE_USES_FIFO_SEM) && \
(!defined (ACE_HAS_POSIX_SEM) || !defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
- ACE_OS::mutex_unlock (&event->eventdata_->lock_);
+ if (ACE_OS::mutex_unlock (&event->eventdata_->lock_) != 0)
+ return -1;
# else
- ACE_OS::sema_post (&event->lock_);
+ if (ACE_OS::sema_post (&event->lock_) != 0)
+ return -1;
# endif
if (result == -1)
// Reset errno in case mutex_unlock() also fails...
@@ -2856,9 +2897,11 @@ ACE_OS::event_reset (ACE_event_t *event)
(!defined (ACE_LACKS_MUTEXATTR_PSHARED) || !defined (ACE_LACKS_CONDATTR_PSHARED))) || \
(!defined (ACE_USES_FIFO_SEM) && \
(!defined (ACE_HAS_POSIX_SEM) || !defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
- ACE_OS::mutex_unlock (&event->eventdata_->lock_);
+ if (ACE_OS::mutex_unlock (&event->eventdata_->lock_) != 0)
+ return -1;
# else
- ACE_OS::sema_post (&event->lock_);
+ if (ACE_OS::sema_post (&event->lock_) != 0)
+ return -1;
# endif
}
else
@@ -2940,9 +2983,11 @@ ACE_OS::event_signal (ACE_event_t *event)
(!defined (ACE_LACKS_MUTEXATTR_PSHARED) || !defined (ACE_LACKS_CONDATTR_PSHARED))) || \
(!defined (ACE_USES_FIFO_SEM) && \
(!defined (ACE_HAS_POSIX_SEM) || !defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
- ACE_OS::mutex_unlock (&event->eventdata_->lock_);
+ if (ACE_OS::mutex_unlock (&event->eventdata_->lock_) != 0)
+ return -1;
# else
- ACE_OS::sema_post (&event->lock_);
+ if (ACE_OS::sema_post (&event->lock_) != 0)
+ return -1;
# endif
if (result == -1)
@@ -3138,9 +3183,11 @@ ACE_OS::event_timedwait (ACE_event_t *event,
(!defined (ACE_LACKS_MUTEXATTR_PSHARED) || !defined (ACE_LACKS_CONDATTR_PSHARED))) || \
(!defined (ACE_USES_FIFO_SEM) && \
(!defined (ACE_HAS_POSIX_SEM) || !defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
- ACE_OS::mutex_unlock (&event->eventdata_->lock_);
+ if (ACE_OS::mutex_unlock (&event->eventdata_->lock_) != 0)
+ return -1;
# else
- ACE_OS::sema_post (&event->lock_);
+ if (ACE_OS::sema_post (&event->lock_) != 0)
+ return -1;
# endif
if (result == -1)
@@ -3280,9 +3327,11 @@ ACE_OS::event_wait (ACE_event_t *event)
(!defined (ACE_LACKS_MUTEXATTR_PSHARED) || !defined (ACE_LACKS_CONDATTR_PSHARED))) || \
(!defined (ACE_USES_FIFO_SEM) && \
(!defined (ACE_HAS_POSIX_SEM) || !defined (ACE_HAS_POSIX_SEM_TIMEOUT) || defined (ACE_LACKS_NAMED_POSIX_SEM)))
- ACE_OS::mutex_unlock (&event->eventdata_->lock_);
+ if (ACE_OS::mutex_unlock (&event->eventdata_->lock_) != 0)
+ return -1;
# else
- ACE_OS::sema_post (&event->lock_);
+ if (ACE_OS::sema_post (&event->lock_) != 0)
+ return -1;
# endif
if (result == -1)
@@ -3423,7 +3472,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);
@@ -3433,10 +3482,14 @@ ACE_OS::rwlock_init (ACE_rwlock_t *rw,
{
// Save/restore errno.
ACE_Errno_Guard error (errno);
- ACE_OS::mutex_destroy (&rw->lock_);
- ACE_OS::cond_destroy (&rw->waiting_readers_);
- ACE_OS::cond_destroy (&rw->waiting_writers_);
- ACE_OS::cond_destroy (&rw->waiting_important_writer_);
+
+ /* We're about to return -1 anyway, so
+ * no need to check return values of these clean-up calls:
+ */
+ (void)ACE_OS::mutex_destroy (&rw->lock_);
+ (void)ACE_OS::cond_destroy (&rw->waiting_readers_);
+ (void)ACE_OS::cond_destroy (&rw->waiting_writers_);
+ (void)ACE_OS::cond_destroy (&rw->waiting_important_writer_);
}
return result;
# else
@@ -3483,15 +3536,7 @@ ACE_OS::sched_params (const ACE_Sched_Params &sched_params,
int result = ::sched_setscheduler (id == ACE_SELF ? 0 : id,
sched_params.policy (),
&param) == -1 ? -1 : 0;
-# if defined (DIGITAL_UNIX)
- return result == 0
- ? // Use priocntl (2) to set the process in the RT class,
- // if using an RT policy.
- ACE_OS::set_scheduling_params (sched_params)
- : result;
-# else /* ! DIGITAL_UNIX */
return result;
-# endif /* ! DIGITAL_UNIX */
# endif /* ! ACE_TANDEM_T1248_PTHREADS */
}
else if (sched_params.scope () == ACE_SCOPE_THREAD)
@@ -3790,12 +3835,14 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
ACE_OS_Thread_Adapter (func, args,
(ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME,
ACE_OS_Object_Manager::seh_except_selector(),
- ACE_OS_Object_Manager::seh_except_handler()),
+ ACE_OS_Object_Manager::seh_except_handler(),
+ flags),
-1);
#else
ACE_NEW_RETURN (thread_args,
ACE_OS_Thread_Adapter (func, args,
- (ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME),
+ (ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME,
+ flags),
-1);
#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
@@ -3805,9 +3852,8 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
auto_ptr <ACE_Base_Thread_Adapter> auto_thread_args;
if (thread_adapter == 0)
- ACE_AUTO_PTR_RESET (auto_thread_args,
- thread_args,
- ACE_Base_Thread_Adapter);
+ ACE_auto_ptr_reset (auto_thread_args,
+ thread_args);
#if defined (ACE_HAS_THREADS)
@@ -3993,10 +4039,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
struct sched_param sparam;
ACE_OS::memset ((void *) &sparam, 0, sizeof sparam);
-# if defined (ACE_HAS_IRIX62_THREADS)
- sparam.sched_priority = ACE_MIN (priority,
- (long) PTHREAD_MAX_PRIORITY);
-# elif defined (PTHREAD_MAX_PRIORITY) && !defined(ACE_HAS_PTHREADS)
+# if defined (PTHREAD_MAX_PRIORITY) && !defined(ACE_HAS_PTHREADS)
/* For MIT pthreads... */
sparam.prio = ACE_MIN (priority, PTHREAD_MAX_PRIORITY);
# elif defined(ACE_HAS_PTHREADS) && !defined (ACE_HAS_STHREADS)
@@ -4018,7 +4061,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
(long) PRIORITY_MAX);
# else
sparam.sched_priority = priority;
-# endif /* ACE_HAS_IRIX62_THREADS */
+# endif /* PTHREAD_MAX_PRIORITY */
{
# if defined (sun) && defined (ACE_HAS_ONLY_SCHED_OTHER)
@@ -4579,7 +4622,7 @@ ACE_OS::thr_join (ACE_thread_t waiter_id,
#endif /* ACE_HAS_VXTHREADS */
int
-ACE_OS::thr_key_detach (ACE_thread_key_t key, void *)
+ACE_OS::thr_key_detach (ACE_thread_key_t key)
{
#if defined (ACE_HAS_WTHREADS) || defined (ACE_HAS_TSS_EMULATION)
TSS_Cleanup_Instance cleanup;
@@ -4630,6 +4673,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 +4723,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);
@@ -4739,11 +4797,10 @@ ACE_OS::thr_keycreate_native (ACE_OS_thread_key_t *key,
int
ACE_OS::thr_keycreate (ACE_thread_key_t *key,
# if defined (ACE_HAS_THR_C_DEST)
- ACE_THR_C_DEST dest,
+ ACE_THR_C_DEST dest)
# else
- ACE_THR_DEST dest,
+ ACE_THR_DEST dest)
# endif /* ACE_HAS_THR_C_DEST */
- void *)
{
// ACE_OS_TRACE ("ACE_OS::thr_keycreate");
#if defined (ACE_HAS_THREADS)
@@ -5127,59 +5184,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)
- {
- // We have just entered a double quoted string, so
- // save the starting position of the contents.
- previous = i + 1;
- }
- else
+ // Is it a double quote that hasn't been escaped?
+ if (string[i] == '\"' && (i == 0 || string[i - 1] != '\\'))
{
- // 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 memmove().
+ ACE_OS::memmove (string + i, string + i + 1, length);
+ --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 +5365,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
@@ -5336,4 +5397,18 @@ vx_execae (FUNCPTR entry, char* arg, int prio, int opt, int stacksz, ...)
// successful
return ret > 0 ? _vx_call_rc : 255;
}
+
+#if defined(ACE_AS_STATIC_LIBS) && defined (ACE_VXWORKS_DEBUGGING_HELPER)
+/** Wind River workbench allows the user to spawn a kernel task as a
+ "Debug Configuration". Use this function as the entrypoint so that
+ the arguments are translated into the form that ace_main() requires.
+ */
+int ace_wb_exec (int arg0, int arg1, int arg2, int arg3, int arg4,
+ int arg5, int arg6, int arg7, int arg8, int arg9)
+{
+ return spaef ((FUNCPTR) ace_main, arg0, arg1, arg2, arg3, arg4,
+ arg5, arg6, arg7, arg8, arg9);
+}
+#endif /* ACE_AS_STATIC_LIBS && ... */
+
#endif /* ACE_VXWORKS && !__RTP__ */
diff --git a/ACE/ace/OS_NS_Thread.h b/ACE/ace/OS_NS_Thread.h
index 82573039b34..87f547647e7 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_;
@@ -527,7 +527,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_recursive_thread_mutex_t
*
- * @brief Implement a thin C++ wrapper that allows nested acquisition
+ * @brief
+ * Implement a thin C++ wrapper that allows nested acquisition
* and release of a mutex that occurs in the same thread.
*
* This implementation is based on an algorithm sketched by Dave
@@ -551,8 +552,8 @@ public:
ACE_thread_t owner_id_;
};
-// Since recursive mutex is emulated, the state saving needs to be handled
-// in ACE as well. These members save those from ACE_recursive_thread_mutex_t.
+/// Since recursive mutex is emulated, the state saving needs to be handled
+/// in ACE as well. These members save those from ACE_recursive_thread_mutex_t.
struct ACE_recursive_mutex_state
{
int nesting_level_;
@@ -679,9 +680,10 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_Thread_ID
*
- * @brief Defines a platform-independent thread ID class. Note that
- * this class should be defined within the scope of a thread, rather
- * than at global scope!
+ * @brief
+ * Defines a platform-independent thread ID class. Note that
+ * this class should be defined within the scope of a thread, rather
+ * than at global scope!
*/
class ACE_Export ACE_Thread_ID
{
@@ -695,7 +697,10 @@ public:
ACE_Thread_ID (void);
/// Copy constructor.
- ACE_Thread_ID (const ACE_Thread_ID &rhs);
+ ACE_Thread_ID (const ACE_Thread_ID &id);
+
+ /// Assignment operator
+ ACE_Thread_ID& operator= (const ACE_Thread_ID&id);
/// Get the thread id.
ACE_thread_t id (void) const;
@@ -757,18 +762,18 @@ typedef int ACE_pri_t;
# else
typedef int ACE_idtype_t;
# endif /* ACE_HAS_IDTYPE_T */
-# if defined (ACE_HAS_STHREADS) || defined (DIGITAL_UNIX)
+# if defined (ACE_HAS_STHREADS)
# if defined (ACE_LACKS_PRI_T)
typedef int pri_t;
# endif /* ACE_LACKS_PRI_T */
typedef id_t ACE_id_t;
# define ACE_SELF P_MYID
typedef pri_t ACE_pri_t;
-# else /* ! ACE_HAS_STHREADS && ! DIGITAL_UNIX */
+# else /* ! ACE_HAS_STHREADS */
typedef long ACE_id_t;
# define ACE_SELF (-1)
typedef short ACE_pri_t;
-# endif /* ! ACE_HAS_STHREADS && ! DIGITAL_UNIX */
+# endif /* ! ACE_HAS_STHREADS */
#endif /* !defined (ACE_WIN32) */
# if defined (ACE_HAS_TSS_EMULATION)
@@ -1018,23 +1023,12 @@ private:
# endif /* defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION) */
-// Support non-scalar thread keys, such as with some POSIX
-// implementations, e.g., MVS.
-# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T)
-# define ACE_KEY_INDEX(OBJ,KEY) \
- u_int OBJ; \
- ACE_OS::memcpy (&OBJ, &KEY, sizeof (u_int))
-# else
-# define ACE_KEY_INDEX(OBJ,KEY) u_int OBJ = KEY
-# endif /* ACE_HAS_NONSCALAR_THREAD_KEY_T */
-
ACE_END_VERSIONED_NAMESPACE_DECL
#if (defined (ACE_HAS_VERSIONED_NAMESPACE) && ACE_HAS_VERSIONED_NAMESPACE == 1)
# define ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME ACE_PREPROC_CONCATENATE(ACE_VERSIONED_NAMESPACE_NAME, _ace_mutex_lock_cleanup_adapter)
#endif /* ACE_HAS_VERSIONED_NAMESPACE == 1 */
-
# if defined (ACE_HAS_THR_C_FUNC)
// This is necessary to work around nasty problems with MVS C++.
extern "C" ACE_Export void ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME (void *args);
@@ -1283,7 +1277,7 @@ namespace ACE_OS {
const ACE_Time_Value &timeout);
/**
- * If <timeout> == 0, calls <ACE_OS::mutex_lock(m)>. Otherwise,
+ * If @a timeout == 0, calls <ACE_OS::mutex_lock(m)>. Otherwise,
* this method attempts to acquire a lock, but gives up if the lock
* has not been acquired by the given time, in which case it returns
* -1 with an @c ETIME errno on platforms that actually support timed
@@ -1307,7 +1301,7 @@ namespace ACE_OS {
int mutex_trylock (ACE_mutex_t *m);
/// This method is only implemented for Win32. For abandoned
- /// mutexes, <abandoned> is set to 1 and 0 is returned.
+ /// mutexes, @a abandoned is set to 1 and 0 is returned.
extern ACE_Export
int mutex_trylock (ACE_mutex_t *m,
int &abandoned);
@@ -1405,7 +1399,7 @@ namespace ACE_OS {
int sched_params (const ACE_Sched_Params &, ACE_id_t id = ACE_SELF);
//@}
- /// Find the schedling class ID that corresponds to the class name.
+ /// Find the scheduling class ID that corresponds to the class name.
extern ACE_Export
int scheduling_class (const char *class_name, ACE_id_t &);
@@ -1504,7 +1498,7 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
int thr_continue (ACE_hthread_t target_thread);
- /*
+ /**
* Creates a new thread having @a flags attributes and running @a func
* with @a args (if @a thread_adapter is non-0 then @a func and @a args
* are ignored and are obtained from @a thread_adapter). @a thr_id
@@ -1551,8 +1545,7 @@ namespace ACE_OS {
const char** thr_name = 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int thr_equal (ACE_thread_t t1,
- ACE_thread_t t2);
+ int thr_equal (ACE_thread_t t1, ACE_thread_t t2);
extern ACE_Export
void thr_exit (ACE_THR_FUNC_RETURN status = 0);
@@ -1572,21 +1565,18 @@ namespace ACE_OS {
# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
ACE_NAMESPACE_INLINE_FUNCTION
/// for internal use only. Applications should call thr_getspecific
- int thr_getspecific_native (ACE_OS_thread_key_t key,
- void **data);
+ int thr_getspecific_native (ACE_OS_thread_key_t key, void **data);
# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
ACE_NAMESPACE_INLINE_FUNCTION
- int thr_getspecific (ACE_thread_key_t key,
- void **data);
+ int thr_getspecific (ACE_thread_key_t key, void **data);
#if defined (ACE_HAS_VXTHREADS)
extern ACE_Export
#else
ACE_NAMESPACE_INLINE_FUNCTION
#endif /* ACE_HAS_VXTHREADS */
- int thr_join (ACE_hthread_t waiter_id,
- ACE_THR_FUNC_RETURN *status);
+ int thr_join (ACE_hthread_t waiter_id, ACE_THR_FUNC_RETURN *status);
#if defined (ACE_HAS_VXTHREADS)
extern ACE_Export
@@ -1604,7 +1594,7 @@ namespace ACE_OS {
* defined, this is the thread-id. For linux-threads, when
* ACE_HAS_SCHED_SETAFFINITY defined, it expects a process-id. Since for
* linux-threads a thread is seen as a process, it does the job.
- * @param cpu_set_size The size of the cpu_mask
+ * @param cpu_set_size The size of the cpu_mask, in bytes.
* @param cpu_mask Is a bitmask of CPUs to bind to, e.g value 1 binds the
* thread to the "CPU 0", etc
*/
@@ -1621,7 +1611,7 @@ namespace ACE_OS {
* defined, this is the thread-id. For linux-threads, when
* ACE_HAS_SCHED_SETAFFINITY defined, it expects a process-id. Since for
* linux-threads a thread is seen as a process, it does the job.
- * @param cpu_set_size The size of the cpu_mask
+ * @param cpu_set_size The size of the cpu_mask, in bytes.
* @param cpu_mask Is a bitmask of CPUs to bind to, e.g value 1 binds the
* thread to the "CPU 0", etc
*/
@@ -1630,11 +1620,8 @@ namespace ACE_OS {
size_t cpu_set_size,
const cpu_set_t * cpu_mask);
- /**
- * @note the "inst" arg is deprecated. It will be ignored.
- */
extern ACE_Export
- int thr_key_detach (ACE_thread_key_t key, void * inst);
+ int thr_key_detach (ACE_thread_key_t key);
extern ACE_Export
int thr_key_used (ACE_thread_key_t key);
@@ -1643,17 +1630,12 @@ namespace ACE_OS {
# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
/// @internal Applications should call thr_keycreate
extern ACE_Export
- int thr_keycreate_native (ACE_OS_thread_key_t *key,
- ACE_THR_C_DEST);
+ int thr_keycreate_native (ACE_OS_thread_key_t *key, ACE_THR_C_DEST);
# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
- /**
- * @note the "inst" arge is deprecated. It will be ignored.
- */
extern ACE_Export
- int thr_keycreate (ACE_thread_key_t *key,
- ACE_THR_C_DEST,
- void *inst = 0);
+ int thr_keycreate (ACE_thread_key_t *key, ACE_THR_C_DEST);
+
# else
# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
/// @internal Applications should call thr_keycreate instead
@@ -1661,13 +1643,9 @@ namespace ACE_OS {
int thr_keycreate_native (ACE_OS_thread_key_t *key,
ACE_THR_DEST);
# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
- /**
- * @note the "inst" arge is deprecated. It will be ignored.
- */
+
extern ACE_Export
- int thr_keycreate (ACE_thread_key_t *key,
- ACE_THR_DEST,
- void *inst = 0);
+ int thr_keycreate (ACE_thread_key_t *key, ACE_THR_DEST);
# endif /* ACE_HAS_THR_C_DEST */
@@ -1681,8 +1659,7 @@ namespace ACE_OS {
int thr_keyfree (ACE_thread_key_t key);
ACE_NAMESPACE_INLINE_FUNCTION
- int thr_kill (ACE_thread_t thr_id,
- int signum);
+ int thr_kill (ACE_thread_t thr_id, int signum);
ACE_NAMESPACE_INLINE_FUNCTION
size_t thr_min_stack (void);
@@ -1696,21 +1673,19 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
const char* thr_name (void);
+ /// State is THR_CANCEL_ENABLE or THR_CANCEL_DISABLE
ACE_NAMESPACE_INLINE_FUNCTION
- int thr_setcancelstate (int new_state,
- int *old_state);
+ int thr_setcancelstate (int new_state, int *old_state);
+ /// Type is THR_CANCEL_DEFERRED or THR_CANCEL_ASYNCHRONOUS
ACE_NAMESPACE_INLINE_FUNCTION
- int thr_setcanceltype (int new_type,
- int *old_type);
+ int thr_setcanceltype (int new_type, int *old_type);
ACE_NAMESPACE_INLINE_FUNCTION
int thr_setconcurrency (int hint);
ACE_NAMESPACE_INLINE_FUNCTION
- int thr_setprio (ACE_hthread_t ht_id,
- int priority,
- int policy = -1);
+ int thr_setprio (ACE_hthread_t ht_id, int priority, int policy = -1);
extern ACE_Export
int thr_setprio (const ACE_Sched_Priority prio);
@@ -1718,18 +1693,14 @@ namespace ACE_OS {
# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
/// @internal Applications should call thr_setspecific
extern ACE_Export
- int thr_setspecific_native (ACE_OS_thread_key_t key,
- void *data);
+ int thr_setspecific_native (ACE_OS_thread_key_t key, void *data);
# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
extern ACE_Export
- int thr_setspecific (ACE_thread_key_t key,
- void *data);
+ int thr_setspecific (ACE_thread_key_t key, void *data);
ACE_NAMESPACE_INLINE_FUNCTION
- int thr_sigsetmask (int how,
- const sigset_t *nsm,
- sigset_t *osm);
+ int thr_sigsetmask (int how, const sigset_t *nsm, sigset_t *osm);
ACE_NAMESPACE_INLINE_FUNCTION
int thr_suspend (ACE_hthread_t target_thread);
diff --git a/ACE/ace/OS_NS_Thread.inl b/ACE/ace/OS_NS_Thread.inl
index 23058815be6..9549da326d3 100644
--- a/ACE/ace/OS_NS_Thread.inl
+++ b/ACE/ace/OS_NS_Thread.inl
@@ -58,8 +58,7 @@ ACE_INLINE
ACE_TSS_Emulation::ACE_TSS_DESTRUCTOR
ACE_TSS_Emulation::tss_destructor (const ACE_thread_key_t key)
{
- ACE_KEY_INDEX (key_index, key);
- return tss_destructor_ [key_index];
+ return tss_destructor_ [key];
}
ACE_INLINE
@@ -67,16 +66,13 @@ void
ACE_TSS_Emulation::tss_destructor (const ACE_thread_key_t key,
ACE_TSS_DESTRUCTOR destructor)
{
- ACE_KEY_INDEX (key_index, key);
- tss_destructor_ [key_index] = destructor;
+ tss_destructor_ [key] = destructor;
}
ACE_INLINE
void *&
ACE_TSS_Emulation::ts_object (const ACE_thread_key_t key)
{
- ACE_KEY_INDEX (key_index, key);
-
# if defined (ACE_HAS_VXTHREADS)
/* If someone wants tss_base make sure they get one. This
gets used if someone spawns a VxWorks task directly, not
@@ -97,7 +93,7 @@ ACE_TSS_Emulation::ts_object (const ACE_thread_key_t key)
}
# endif /* ACE_HAS_VXTHREADS */
- return tss_base ()[key_index];
+ return tss_base ()[key];
}
#endif /* ACE_HAS_TSS_EMULATION */
@@ -490,30 +486,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 +498,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 +1085,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 +1093,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 +1358,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)
@@ -2524,32 +2496,17 @@ ACE_OS::sigwait (sigset_t *sset, int *sig)
return *sig;
#endif /* _POSIX_C_SOURCE - 0 >= 199506L || _POSIX_PTHREAD_SEMANTICS */
# elif defined (ACE_HAS_PTHREADS)
- // LynxOS and Digital UNIX have their own hoops to jump through.
-# if defined (__Lynx__)
- // Second arg is a void **, which we don't need (the selected
- // signal number is returned).
- *sig = ::sigwait (sset, 0);
- return *sig;
-# elif defined (DIGITAL_UNIX) && defined (__DECCXX_VER)
- // DEC cxx (but not g++) needs this direct call to its internal
- // sigwait (). This allows us to #undef sigwait, so that we can
- // have ACE_OS::sigwait. cxx gets confused by ACE_OS::sigwait
- // if sigwait is _not_ #undef'ed.
- errno = ::_Psigwait (sset, sig);
+# if defined (CYGWIN32)
+ // Cygwin has sigwait definition, but it is not implemented
+ ACE_UNUSED_ARG (sset);
+ ACE_NOTSUP_RETURN (-1);
+# elif defined (ACE_TANDEM_T1248_PTHREADS)
+ errno = ::spt_sigwait (sset, sig);
+ return errno == 0 ? *sig : -1;
+# else /* this is draft 7 or std */
+ errno = ::sigwait (sset, sig);
return errno == 0 ? *sig : -1;
-# else /* ! __Lynx __ && ! (DIGITAL_UNIX && __DECCXX_VER) */
-# if defined (CYGWIN32)
- // Cygwin has sigwait definition, but it is not implemented
- ACE_UNUSED_ARG (sset);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_TANDEM_T1248_PTHREADS)
- errno = ::spt_sigwait (sset, sig);
- return errno == 0 ? *sig : -1;
-# else /* this is draft 7 or std */
- errno = ::sigwait (sset, sig);
- return errno == 0 ? *sig : -1;
-# endif /* CYGWIN32 */
-# endif /* ! __Lynx__ && ! (DIGITAL_UNIX && __DECCXX_VER) */
+# endif /* CYGWIN32 */
# elif defined (ACE_HAS_WTHREADS)
ACE_UNUSED_ARG (sset);
ACE_NOTSUP_RETURN (-1);
@@ -2705,11 +2662,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)
@@ -3026,10 +2984,35 @@ ACE_OS::thr_setcancelstate (int new_state, int *old_state)
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
int result;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setcancelstate (new_state,
- old_state),
- result),
- int, -1);
+ int local_new, local_old;
+ switch (new_state)
+ {
+ case THR_CANCEL_ENABLE:
+ local_new = PTHREAD_CANCEL_ENABLE;
+ break;
+ case THR_CANCEL_DISABLE:
+ local_new = PTHREAD_CANCEL_DISABLE;
+ break;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+ ACE_OSCALL (ACE_ADAPT_RETVAL (pthread_setcancelstate (local_new,
+ &local_old),
+ result),
+ int, -1, result);
+ if (result == -1)
+ return -1;
+ switch (local_old)
+ {
+ case PTHREAD_CANCEL_ENABLE:
+ *old_state = THR_CANCEL_ENABLE;
+ break;
+ case PTHREAD_CANCEL_DISABLE:
+ *old_state = THR_CANCEL_DISABLE;
+ break;
+ }
+ return result;
# elif defined (ACE_HAS_STHREADS)
ACE_UNUSED_ARG (new_state);
ACE_UNUSED_ARG (old_state);
@@ -3057,10 +3040,35 @@ ACE_OS::thr_setcanceltype (int new_type, int *old_type)
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
int result;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setcanceltype (new_type,
- old_type),
- result),
- int, -1);
+ int local_new, local_old;
+ switch (new_type)
+ {
+ case THR_CANCEL_DEFERRED:
+ local_new = PTHREAD_CANCEL_DEFERRED;
+ break;
+ case THR_CANCEL_ASYNCHRONOUS:
+ local_new = PTHREAD_CANCEL_ASYNCHRONOUS;
+ break;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+ ACE_OSCALL (ACE_ADAPT_RETVAL (pthread_setcanceltype (local_new,
+ &local_old),
+ result),
+ int, -1, result);
+ if (result == -1)
+ return -1;
+ switch (local_old)
+ {
+ case PTHREAD_CANCEL_DEFERRED:
+ *old_type = THR_CANCEL_DEFERRED;
+ break;
+ case PTHREAD_CANCEL_ASYNCHRONOUS:
+ *old_type = THR_CANCEL_ASYNCHRONOUS;
+ break;
+ }
+ return result;
# else /* Could be ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL */
ACE_UNUSED_ARG (new_type);
ACE_UNUSED_ARG (old_type);
@@ -3136,15 +3144,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
@@ -3192,14 +3202,6 @@ ACE_OS::thr_sigsetmask (int how,
//FUZZ: enable check_for_lack_ACE_OS
# endif /* !ACE_LACKS_PTHREAD_SIGMASK */
-#if 0
- /* Don't know if any platform actually needs this... */
- // as far as I can tell, this is now pthread_sigaction() -- jwr
- int result;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_sigaction (how, nsm, osm),
- result), int, -1);
-#endif /* 0 */
-
# elif defined (ACE_HAS_WTHREADS)
ACE_UNUSED_ARG (osm);
ACE_UNUSED_ARG (nsm);
@@ -3626,6 +3628,18 @@ ACE_Thread_ID::ACE_Thread_ID (const ACE_Thread_ID &id)
}
ACE_INLINE
+ACE_Thread_ID&
+ACE_Thread_ID::operator= (const ACE_Thread_ID &id)
+{
+ if (this != &id)
+ {
+ this->thread_id_ = id.thread_id_;
+ this->thread_handle_ = id.thread_handle_;
+ }
+ return *this;
+}
+
+ACE_INLINE
ACE_Thread_ID::ACE_Thread_ID (void)
: thread_id_ (ACE_OS::thr_self ())
{
diff --git a/ACE/ace/OS_NS_arpa_inet.cpp b/ACE/ace/OS_NS_arpa_inet.cpp
index 6dd3d2a75c5..2c3275dc2f0 100644
--- a/ACE/ace/OS_NS_arpa_inet.cpp
+++ b/ACE/ace/OS_NS_arpa_inet.cpp
@@ -3,8 +3,6 @@
#include "ace/OS_NS_arpa_inet.h"
-ACE_RCSID(ace, OS_NS_arpa_inet, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_arpa_inet.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -36,7 +34,7 @@ ACE_OS::inet_aton (const char *host_name, struct in_addr *addr)
addr->s_addr = ip_addr; // Network byte ordered
return 1;
}
-#elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670)
+#elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x680)
// inet_aton() returns OK (0) on success and ERROR (-1) on failure.
// Must reset errno first. Refer to WindRiver SPR# 34949, SPR# 36026
::errnoSet(0);
diff --git a/ACE/ace/OS_NS_arpa_inet.inl b/ACE/ace/OS_NS_arpa_inet.inl
index e90493dbda2..9722d949318 100644
--- a/ACE/ace/OS_NS_arpa_inet.inl
+++ b/ACE/ace/OS_NS_arpa_inet.inl
@@ -29,9 +29,7 @@ ACE_OS::inet_ntoa (const struct in_addr addr)
ACE_UNUSED_ARG (addr);
ACE_NOTSUP_RETURN (0);
#else
- ACE_OSCALL_RETURN (::inet_ntoa (addr),
- char *,
- 0);
+ ACE_OSCALL_RETURN (::inet_ntoa (addr), char *, 0);
#endif
}
diff --git a/ACE/ace/OS_NS_ctype.cpp b/ACE/ace/OS_NS_ctype.cpp
index 6fd300d4672..b0fc9e18a23 100644
--- a/ACE/ace/OS_NS_ctype.cpp
+++ b/ACE/ace/OS_NS_ctype.cpp
@@ -3,8 +3,6 @@
#include "ace/OS_NS_ctype.h"
-ACE_RCSID(ace, OS_NS_ctype, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_ctype.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_ctype.inl b/ACE/ace/OS_NS_ctype.inl
index dce7425a0a6..977ce001ad5 100644
--- a/ACE/ace/OS_NS_ctype.inl
+++ b/ACE/ace/OS_NS_ctype.inl
@@ -123,9 +123,10 @@ ACE_INLINE int
ACE_OS::ace_isprint (ACE_TCHAR c)
{
#if defined (ACE_USES_WCHAR)
-# if defined (_WIN32_WCE) && (_WIN32_WCE <= 0x600)
- /* WinCE 6 and earlier have the bug that for tab (\t) the
- * iswprint returns true instead of false
+# if defined (ACE_LACKS_CORRECT_ISWPRINT_TAB)
+ /* The MS CRT has the bug that for tab (\t) iswprint returns true instead of
+ * false. This has been reported to Microsoft:
+ * https://connect.microsoft.com/VisualStudio/feedback ID# 381915
*/
if (c == 0x9)
{
diff --git a/ACE/ace/OS_NS_dirent.cpp b/ACE/ace/OS_NS_dirent.cpp
index d9d05b0b2d6..1291059bfaa 100644
--- a/ACE/ace/OS_NS_dirent.cpp
+++ b/ACE/ace/OS_NS_dirent.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_NS_dirent.h"
-ACE_RCSID(ace, OS_NS_dirent, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_dirent.inl"
@@ -21,9 +21,11 @@ ACE_OS::closedir_emulation (ACE_DIR *d)
{
#if defined (ACE_WIN32)
if (d->current_handle_ != INVALID_HANDLE_VALUE)
- ::FindClose (d->current_handle_);
+ {
+ ::FindClose (d->current_handle_);
+ d->current_handle_ = INVALID_HANDLE_VALUE;
+ }
- d->current_handle_ = INVALID_HANDLE_VALUE;
d->started_reading_ = 0;
if (d->dirent_ != 0)
{
@@ -122,8 +124,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!
@@ -175,7 +176,6 @@ ACE_OS::scandir_emulation (const ACE_TCHAR *dirname,
ACE_DIRENT **vector = 0;
ACE_DIRENT *dp = 0;
int arena_size = 0;
-
int nfiles = 0;
int fail = 0;
diff --git a/ACE/ace/OS_NS_dlfcn.cpp b/ACE/ace/OS_NS_dlfcn.cpp
index 1bf2b9c532e..4d6ef2f4ab0 100644
--- a/ACE/ace/OS_NS_dlfcn.cpp
+++ b/ACE/ace/OS_NS_dlfcn.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_NS_dlfcn.h"
-ACE_RCSID(ace, OS_NS_dlfcn, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_dlfcn.inl"
diff --git a/ACE/ace/OS_NS_dlfcn.inl b/ACE/ace/OS_NS_dlfcn.inl
index 5b5e4142bb3..a6cb5373268 100644
--- a/ACE/ace/OS_NS_dlfcn.inl
+++ b/ACE/ace/OS_NS_dlfcn.inl
@@ -40,11 +40,7 @@ ACE_OS::dlclose (ACE_SHLIB_HANDLE handle)
if (ptr != 0)
(*((int (*)(void)) ptr)) (); // Call _fini hook explicitly.
# endif /* ACE_HAS_AUTOMATIC_INIT_FINI */
-#if defined (_M_UNIX)
- ACE_OSCALL_RETURN (::_dlclose (handle), int, -1);
-#else /* _MUNIX */
- ACE_OSCALL_RETURN (::dlclose (handle), int, -1);
-#endif /* _M_UNIX */
+ ACE_OSCALL_RETURN (::dlclose (handle), int, -1);
#elif defined (ACE_WIN32)
ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::FreeLibrary (handle), ace_result_), int, -1);
#elif defined (__hpux)
@@ -78,12 +74,8 @@ ACE_OS::dlerror (void)
{
ACE_OS_TRACE ("ACE_OS::dlerror");
# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
- const char *err;
-# if defined(_M_UNIX)
- ACE_OSCALL (::_dlerror (), const char *, 0, err);
-# else /* _M_UNIX */
+ const char *err = 0;
ACE_OSCALL (::dlerror (), const char *, 0, err);
-# endif /* _M_UNIX */
if (err == 0)
return 0;
# if defined (ACE_USES_WCHAR)
@@ -128,9 +120,6 @@ ACE_OS::dlopen (const ACE_TCHAR *fname,
# if defined (ACE_HAS_SGIDLADD)
ACE_OSCALL
(::sgidladd (ACE_TEXT_ALWAYS_CHAR (fname), mode), void *, 0, handle);
-# elif defined (_M_UNIX)
- ACE_OSCALL
- (::_dlopen (ACE_TEXT_ALWAYS_CHAR (fname), mode), void *, 0, handle);
# else
ACE_OSCALL
(::dlopen (ACE_TEXT_ALWAYS_CHAR (fname), mode), void *, 0, handle);
@@ -244,8 +233,6 @@ ACE_OS::dlsym (ACE_SHLIB_HANDLE handle,
ACE_OSCALL (::dlsym (handle, asm_symbolname), void *, 0, ace_result);
delete [] asm_symbolname;
return ace_result;
-# elif defined (_M_UNIX)
- ACE_OSCALL_RETURN (::_dlsym (handle, symbolname), void *, 0);
# else
ACE_OSCALL_RETURN (::dlsym (handle, symbolname), void *, 0);
# endif /* ACE_USES_ASM_SYMBOL_IN_DLSYM */
diff --git a/ACE/ace/OS_NS_errno.cpp b/ACE/ace/OS_NS_errno.cpp
index f8f60c0565f..6c37f79063e 100644
--- a/ACE/ace/OS_NS_errno.cpp
+++ b/ACE/ace/OS_NS_errno.cpp
@@ -3,8 +3,6 @@
#include "ace/OS_NS_errno.h"
-ACE_RCSID(ace, OS_NS_errno, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_errno.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_errno.h b/ACE/ace/OS_NS_errno.h
index 9931d862759..0d3233c1b3d 100644
--- a/ACE/ace/OS_NS_errno.h
+++ b/ACE/ace/OS_NS_errno.h
@@ -82,10 +82,12 @@ 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()
#elif defined (ACE_HAS_ANDROID)
-#define ACE_ERRNO_TYPE volatile int
+# define ACE_ERRNO_TYPE volatile 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_fcntl.cpp b/ACE/ace/OS_NS_fcntl.cpp
index 2ab9fbbdf1d..1276c1004df 100644
--- a/ACE/ace/OS_NS_fcntl.cpp
+++ b/ACE/ace/OS_NS_fcntl.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_fcntl.h"
-ACE_RCSID(ace, OS_NS_fcntl, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_fcntl.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_fcntl.h b/ACE/ace/OS_NS_fcntl.h
index dcfa1eec934..1be2a4495da 100644
--- a/ACE/ace/OS_NS_fcntl.h
+++ b/ACE/ace/OS_NS_fcntl.h
@@ -44,10 +44,6 @@ namespace ACE_OS {
int cmd,
long arg = 0);
-#if !defined (ACE_DEFAULT_OPEN_PERMS)
-# define ACE_DEFAULT_OPEN_PERMS ACE_DEFAULT_FILE_PERMS
-#endif /* ACE_DEFAULT_OPEN_PERMS */
-
/// The O_APPEND flag is only partly supported on Win32. If you specify
/// O_APPEND, then the file pointer will be positioned at the end of
/// the file initially during open, but it is not re-positioned at
diff --git a/ACE/ace/OS_NS_math.cpp b/ACE/ace/OS_NS_math.cpp
index da5e748370e..ef44bde63e5 100644
--- a/ACE/ace/OS_NS_math.cpp
+++ b/ACE/ace/OS_NS_math.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_math.h"
-ACE_RCSID(ace, OS_NS_math, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_math.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_math.h b/ACE/ace/OS_NS_math.h
index 49143738a79..257e4992f8e 100644
--- a/ACE/ace/OS_NS_math.h
+++ b/ACE/ace/OS_NS_math.h
@@ -88,12 +88,18 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
{
/// This method computes the largest integral value not greater than x.
- ACE_NAMESPACE_INLINE_FUNCTION
- double floor (double x);
+ template <typename T>
+ T floor (T x)
+ {
+ return ACE_STD_NAMESPACE::floor (x);
+ }
/// This method computes the smallest integral value not less than x.
- ACE_NAMESPACE_INLINE_FUNCTION
- double ceil (double x);
+ template <typename T>
+ T ceil (T x)
+ {
+ return ACE_STD_NAMESPACE::ceil (x);
+ }
/// This method computes the base-2 logarithm of x.
ACE_NAMESPACE_INLINE_FUNCTION
diff --git a/ACE/ace/OS_NS_math.inl b/ACE/ace/OS_NS_math.inl
index ff368b53c0d..6b58323565c 100644
--- a/ACE/ace/OS_NS_math.inl
+++ b/ACE/ace/OS_NS_math.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -7,38 +6,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS {
ACE_INLINE double
- floor (double x)
- {
-#if defined (ACE_LACKS_FLOOR)
- // This method computes the largest integral value not greater than x.
- if(x > 0)
- return static_cast<long> (x);
- else if ((static_cast<long> (x) < x) || (static_cast<long> (x) > x) )
- return static_cast<long>(x) - 1;
- else
- return x;
-#else
- return ::floor (x);
-#endif
- }
-
- ACE_INLINE double
- ceil (double x)
- {
-#if defined (ACE_LACKS_CEIL)
- // This method computes the smallest integral value not less than x.
- if (x < 0)
- return static_cast<long> (x);
- else if ((static_cast<long> (x) < x) || (static_cast<long> (x) > x))
- return static_cast<long> (x) + 1;
- else
- return x;
-#else
- return ::ceil (x);
-#endif
- }
-
- ACE_INLINE double
log2 (double x)
{
return ace_log2_helper (x);
diff --git a/ACE/ace/OS_NS_netdb.cpp b/ACE/ace/OS_NS_netdb.cpp
index bb53fdaf446..21296190a04 100644
--- a/ACE/ace/OS_NS_netdb.cpp
+++ b/ACE/ace/OS_NS_netdb.cpp
@@ -3,8 +3,6 @@
#include "ace/OS_NS_netdb.h"
-ACE_RCSID(ace, OS_NS_netdb, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_netdb.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -17,196 +15,6 @@ ACE_RCSID(ace, OS_NS_netdb, "$Id$")
#include "ace/OS_NS_stropts.h"
#include "ace/OS_NS_sys_socket.h"
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
-
-struct hostent *
-ACE_OS::gethostbyaddr (const char *addr, int length, int type)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyaddr");
-
- if (length != 4 || type != AF_INET)
- {
- errno = EINVAL;
- return 0;
- }
-
- // not thread safe!
- static hostent ret;
- static char name [MAXNAMELEN + 1];
- static char *hostaddr[2];
- static char *aliases[1];
-
- if (::hostGetByAddr (*(int *) addr, name) != 0)
- {
- // errno will have been set to S_hostLib_UNKNOWN_HOST.
- return 0;
- }
-
- // Might not be official: just echo input arg.
- hostaddr[0] = (char *) addr;
- hostaddr[1] = 0;
- aliases[0] = 0;
-
- ret.h_name = name;
- ret.h_addrtype = AF_INET;
- ret.h_length = 4; // VxWorks 5.2/3 doesn't define IP_ADDR_LEN;
- ret.h_addr_list = hostaddr;
- ret.h_aliases = aliases;
-
- return &ret;
-}
-
-#endif /* ACE_VXWORKS && ACE_LACKS_GETHOSTBYADDR */
-
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
-
-struct hostent *
-ACE_OS::gethostbyaddr_r (const char *addr, int length, int type,
- hostent *result, ACE_HOSTENT_DATA buffer,
- int *h_errnop)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyaddr_r");
- if (length != 4 || type != AF_INET)
- {
- errno = EINVAL;
- return 0;
- }
-
- if (ACE_OS::netdb_acquire ())
- return 0;
- else
- {
- // buffer layout:
- // buffer[0-3]: h_addr_list[0], the first (and only) addr.
- // buffer[4-7]: h_addr_list[1], the null terminator for the h_addr_list.
- // buffer[8]: the name of the host, null terminated.
-
- // Call ::hostGetByAddr (), which puts the (one) hostname into
- // buffer.
- if (::hostGetByAddr (*(int *) addr, &buffer[8]) == 0)
- {
- // Store the return values in result.
- result->h_name = &buffer[8]; // null-terminated host name
- result->h_addrtype = AF_INET;
- result->h_length = 4; // VxWorks 5.2/3 doesn't define IP_ADDR_LEN.
-
- result->h_addr_list = (char **) buffer;
- // Might not be official: just echo input arg.
- result->h_addr_list[0] = (char *) addr;
- // Null-terminate the list of addresses.
- result->h_addr_list[1] = 0;
- // And no aliases, so null-terminate h_aliases.
- result->h_aliases = &result->h_addr_list[1];
- }
- else
- {
- // errno will have been set to S_hostLib_UNKNOWN_HOST.
- result = 0;
- }
- }
-
- ACE_OS::netdb_release ();
- *h_errnop = errno;
- return result;
-}
-
-#endif /* ACE_VXWORKS && ACE_LACKS_GETHOSTBYADDR */
-
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
-
-struct hostent *
-ACE_OS::gethostbyname (const char *name)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyname");
-
- // not thread safe!
- static hostent ret;
- static int first_addr;
- static char *hostaddr[2];
- static char *aliases[1];
-
- if (0 == name || '\0' == name[0])
- return 0;
-
- ACE_OSCALL (::hostGetByName (const_cast <char *> (name)), int, -1, first_addr);
- if (first_addr == -1)
- return 0;
-
- hostaddr[0] = (char *) &first_addr;
- hostaddr[1] = 0;
- aliases[0] = 0;
-
- // Might not be official: just echo input arg.
- ret.h_name = (char *) name;
- ret.h_addrtype = AF_INET;
- ret.h_length = 4; // VxWorks 5.2/3 doesn't define IP_ADDR_LEN;
- ret.h_addr_list = hostaddr;
- ret.h_aliases = aliases;
-
- return &ret;
-}
-
-#endif /* ACE_VXWORKS && ACE_LACKS_GETHOSTBYNAME */
-
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
-
-struct hostent *
-ACE_OS::gethostbyname_r (const char *name, hostent *result,
- ACE_HOSTENT_DATA buffer,
- int *h_errnop)
-{
- ACE_OS_TRACE ("ACE_OS::gethostbyname_r");
-
- if (0 == name || '\0' == name[0])
- return 0;
-
- if (ACE_OS::netdb_acquire ())
- return 0;
- else
- {
- int addr;
- ACE_OSCALL (::hostGetByName (const_cast <char *> (name)), int, -1, addr);
-
- if (addr == -1)
- {
- // errno will have been set to S_hostLib_UNKNOWN_HOST
- result = 0;
- }
- else
- {
- // Might not be official: just echo input arg.
- result->h_name = (char *) name;
- result->h_addrtype = AF_INET;
- result->h_length = 4; // VxWorks 5.2/3 doesn't define IP_ADDR_LEN;
-
- // buffer layout:
- // buffer[0-3]: h_addr_list[0], pointer to the addr.
- // buffer[4-7]: h_addr_list[1], null terminator for the h_addr_list.
- // buffer[8-11]: the first (and only) addr.
-
- // Store the address list in buffer.
- result->h_addr_list = (char **) buffer;
- // Store the actual address _after_ the address list.
- result->h_addr_list[0] = (char *) &result->h_addr_list[2];
- result->h_addr_list[2] = (char *) addr;
- // Null-terminate the list of addresses.
- result->h_addr_list[1] = 0;
- // And no aliases, so null-terminate h_aliases.
- result->h_aliases = &result->h_addr_list[1];
- }
- }
-
- ACE_OS::netdb_release ();
- *h_errnop = errno;
- return result;
-}
-
-#endif /* ACE_VXWORKS && ACE_LACKS_GETHOSTBYNAME*/
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
// Include if_arp so that getmacaddr can use the
// arp structure.
#if defined (sun)
@@ -385,6 +193,60 @@ ACE_OS::getmacaddress (struct macaddr_node_t *node)
return 0;
+#elif defined (ACE_HAS_SIOCGIFCONF)
+
+ const long BUFFERSIZE = 4000;
+ char buffer[BUFFERSIZE];
+
+ struct ifconf ifc;
+ struct ifreq* ifr = 0;
+
+ ACE_HANDLE handle =
+ ACE_OS::socket (AF_INET, SOCK_DGRAM, 0);
+
+ if (handle == ACE_INVALID_HANDLE)
+ {
+ return -1;
+ }
+
+ ifc.ifc_len = BUFFERSIZE;
+ ifc.ifc_buf = buffer;
+
+ if (ACE_OS::ioctl (handle, SIOCGIFCONF, &ifc) < 0)
+ {
+ ACE_OS::close (handle);
+ return -1;
+ }
+
+ for(char* ptr=buffer; ptr < buffer + ifc.ifc_len; )
+ {
+ ifr = (struct ifreq *) ptr;
+
+ if (ifr->ifr_addr.sa_family == AF_LINK)
+ {
+ if(ACE_OS::strcmp (ifr->ifr_name, "en0") == 0)
+ {
+ struct sockaddr_dl* sdl =
+ (struct sockaddr_dl *) &ifr->ifr_addr;
+
+ ACE_OS::memcpy (node->node,
+ LLADDR(sdl),
+ 6);
+ }
+ }
+
+ ptr += sizeof(ifr->ifr_name);
+
+ if(sizeof(ifr->ifr_addr) > ifr->ifr_addr.sa_len)
+ ptr += sizeof(ifr->ifr_addr);
+ else
+ ptr += ifr->ifr_addr.sa_len;
+ }
+
+ ACE_OS::close (handle);
+
+ return 0;
+
#else
ACE_UNUSED_ARG (node);
ACE_NOTSUP_RETURN (-1);
diff --git a/ACE/ace/OS_NS_netdb.h b/ACE/ace/OS_NS_netdb.h
index b7e03936c85..66e5762df6b 100644
--- a/ACE/ace/OS_NS_netdb.h
+++ b/ACE/ace/OS_NS_netdb.h
@@ -38,20 +38,12 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
{
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
- extern ACE_Export
-#else
ACE_NAMESPACE_INLINE_FUNCTION
-#endif /* ACE_VXWORKS */
struct hostent *gethostbyaddr (const char *addr,
int length,
int type);
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
- extern ACE_Export
-#else
ACE_NAMESPACE_INLINE_FUNCTION
-#endif /* ACE_VXWORKS */
struct hostent *gethostbyaddr_r (const char *addr,
int length,
int type,
@@ -59,18 +51,10 @@ namespace ACE_OS
ACE_HOSTENT_DATA buffer,
int *h_errnop);
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
- extern ACE_Export
-#else
ACE_NAMESPACE_INLINE_FUNCTION
-#endif /* ACE_VXWORKS */
struct hostent *gethostbyname (const char *name);
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
- extern ACE_Export
-#else
ACE_NAMESPACE_INLINE_FUNCTION
-#endif /* ACE_VXWORKS */
struct hostent *gethostbyname_r (const char *name,
struct hostent *result,
ACE_HOSTENT_DATA buffer,
diff --git a/ACE/ace/OS_NS_netdb.inl b/ACE/ace/OS_NS_netdb.inl
index f86db157149..4d574487f1a 100644
--- a/ACE/ace/OS_NS_netdb.inl
+++ b/ACE/ace/OS_NS_netdb.inl
@@ -42,8 +42,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#if !(defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR))
-
ACE_INLINE struct hostent *
ACE_OS::gethostbyaddr (const char *addr, int length, int type)
{
@@ -86,10 +84,6 @@ ACE_OS::gethostbyaddr (const char *addr, int length, int type)
# endif /* !ACE_LACKS_GETHOSTBYADDR */
}
-#endif
-
-#if !(defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR))
-
ACE_INLINE struct hostent *
ACE_OS::gethostbyaddr_r (const char *addr,
int length,
@@ -107,12 +101,12 @@ ACE_OS::gethostbyaddr_r (const char *addr,
ACE_UNUSED_ARG (buffer);
ACE_UNUSED_ARG (h_errnop);
ACE_NOTSUP_RETURN (0);
-# elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
+# elif defined (ACE_HAS_REENTRANT_FUNCTIONS)
if (0 == addr || '\0' == addr[0])
return 0;
-# if defined (AIX) || defined (DIGITAL_UNIX)
+# if defined (AIX)
ACE_OS::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA));
//FUZZ: disable check_for_lack_ACE_OS
@@ -143,6 +137,7 @@ ACE_OS::gethostbyaddr_r (const char *addr,
else
return (struct hostent *) 0;
# elif defined (ACE_VXWORKS)
+ ACE_UNUSED_ARG (h_errnop);
// VxWorks 6.x has a threadsafe gethostbyaddr() which returns a heap-allocated
// data structure which needs to be freed with hostentFree()
//FUZZ: disable check_for_lack_ACE_OS
@@ -206,7 +201,7 @@ ACE_OS::gethostbyaddr_r (const char *addr,
struct hostent *, 0);
//FUZZ: enable check_for_lack_ACE_OS
# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
+# endif /* defined (AIX) */
# elif defined (ACE_HAS_NONCONST_GETBY)
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (buffer);
@@ -233,10 +228,6 @@ ACE_OS::gethostbyaddr_r (const char *addr,
# endif /* ACE_LACKS_GETHOSTBYADDR_R */
}
-#endif
-
-#if !(defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME))
-
ACE_INLINE struct hostent *
ACE_OS::gethostbyname (const char *name)
{
@@ -273,10 +264,6 @@ ACE_OS::gethostbyname (const char *name)
# endif /* !ACE_LACKS_GETHOSTBYNAME */
}
-#endif
-
-#if !(defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME))
-
ACE_INLINE struct hostent *
ACE_OS::gethostbyname_r (const char *name,
struct hostent *result,
@@ -290,13 +277,12 @@ ACE_OS::gethostbyname_r (const char *name,
ACE_UNUSED_ARG (buffer);
ACE_UNUSED_ARG (h_errnop);
ACE_NOTSUP_RETURN (0);
-# elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
+# elif defined (ACE_HAS_REENTRANT_FUNCTIONS)
if (0 == name || '\0' == name[0])
return (struct hostent *)0;
-# if defined (DIGITAL_UNIX) || \
- (defined (ACE_AIX_MINOR_VERS) && (ACE_AIX_MINOR_VERS > 2))
+# if (defined (ACE_AIX_MINOR_VERS) && (ACE_AIX_MINOR_VERS > 2))
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (buffer);
ACE_UNUSED_ARG (h_errnop);
@@ -334,6 +320,7 @@ ACE_OS::gethostbyname_r (const char *name,
else
return (struct hostent *) 0;
# elif defined (ACE_VXWORKS)
+ ACE_UNUSED_ARG (h_errnop);
// VxWorks 6.x has a threadsafe gethostbyname() which returns a heap-allocated
// data structure which needs to be freed with hostentFree()
//FUZZ: disable check_for_lack_ACE_OS
@@ -397,7 +384,7 @@ ACE_OS::gethostbyname_r (const char *name,
0);
//FUZZ: enable check_for_lack_ACE_OS
# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
+# endif /* defined (AIX) */
# elif defined (ACE_HAS_NONCONST_GETBY)
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (buffer);
@@ -410,18 +397,20 @@ ACE_OS::gethostbyname_r (const char *name,
# else
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (h_errnop);
- //FUZZ: disable check_for_lack_ACE_OS
- ACE_SOCKCALL_RETURN (::gethostbyname (name),
- struct hostent *,
- 0);
- //FUZZ: enable check_for_lack_ACE_OS
-# endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */
+ // FUZZ: disable check_for_lack_ACE_OS
+ struct hostent *result2 = 0;
+ ACE_SOCKCALL (::gethostbyname (name),
+ struct hostent *,
+ 0,
+ result2);
+ if (result2 == 0 && h_errnop)
+ *h_errnop = errno;
+ return result2;
+ //FUZZ: enable check_for_lack_ACE_OS
+# endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */
}
-#endif
-
ACE_INLINE struct hostent *
ACE_OS::getipnodebyaddr (const void *src, size_t len, int family)
{
@@ -520,8 +509,8 @@ ACE_OS::getprotobyname_r (const char *name,
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (buffer);
ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
-# if defined (AIX) || defined (DIGITAL_UNIX)
+#elif defined (ACE_HAS_REENTRANT_FUNCTIONS)
+# if defined (AIX)
//FUZZ: disable check_for_lack_ACE_OS
if (::getprotobyname_r (name, result, (struct protoent_data *) buffer) == 0)
return result;
@@ -557,7 +546,7 @@ ACE_OS::getprotobyname_r (const char *name,
struct protoent *, 0);
//FUZZ: enable check_for_lack_ACE_OS
# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
+# endif /* defined (AIX) */
#elif defined (ACE_HAS_NONCONST_GETBY)
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (buffer);
@@ -574,7 +563,7 @@ ACE_OS::getprotobyname_r (const char *name,
struct protoent *,
0);
//FUZZ: enable check_for_lack_ACE_OS
-#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) !defined (UNIXWARE) */
+#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */
}
ACE_INLINE struct protoent *
@@ -601,8 +590,8 @@ ACE_OS::getprotobynumber_r (int proto,
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (buffer);
ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
-# if defined (AIX) || defined (DIGITAL_UNIX)
+#elif defined (ACE_HAS_REENTRANT_FUNCTIONS)
+# if defined (AIX)
//FUZZ: disable check_for_lack_ACE_OS
if (::getprotobynumber_r (proto, result, (struct protoent_data *) buffer) == 0)
return result;
@@ -635,7 +624,7 @@ ACE_OS::getprotobynumber_r (int proto,
struct protoent *, 0);
//FUZZ: enable check_for_lack_ACE_OS
# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
+# endif /* defined (AIX) */
#else
ACE_UNUSED_ARG (buffer);
ACE_UNUSED_ARG (result);
@@ -644,7 +633,7 @@ ACE_OS::getprotobynumber_r (int proto,
ACE_SOCKCALL_RETURN (::getprotobynumber (proto),
struct protoent *, 0);
//FUZZ: enable check_for_lack_ACE_OS
-#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */
+#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */
}
ACE_INLINE struct servent *
@@ -685,8 +674,8 @@ ACE_OS::getservbyname_r (const char *svc,
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (buf);
ACE_NOTSUP_RETURN (0);
-#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE)
-# if defined (AIX) || defined (DIGITAL_UNIX)
+#elif defined (ACE_HAS_REENTRANT_FUNCTIONS)
+# if defined (AIX)
ACE_OS::memset (buf, 0, sizeof (ACE_SERVENT_DATA));
//FUZZ: disable check_for_lack_ACE_OS
@@ -725,7 +714,7 @@ ACE_OS::getservbyname_r (const char *svc,
struct servent *, 0);
//FUZZ: enable check_for_lack_ACE_OS
# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */
-# endif /* defined (AIX) || defined (DIGITAL_UNIX) */
+# endif /* defined (AIX) */
#elif defined (ACE_HAS_NONCONST_GETBY)
ACE_UNUSED_ARG (buf);
ACE_UNUSED_ARG (result);
@@ -744,7 +733,7 @@ ACE_OS::getservbyname_r (const char *svc,
struct servent *,
0);
//FUZZ: enable check_for_lack_ACE_OS
-#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */
+#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_poll.cpp b/ACE/ace/OS_NS_poll.cpp
index d95979f1216..9abf800da36 100644
--- a/ACE/ace/OS_NS_poll.cpp
+++ b/ACE/ace/OS_NS_poll.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_poll.h"
-ACE_RCSID(ace, OS_NS_poll, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_poll.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_pwd.cpp b/ACE/ace/OS_NS_pwd.cpp
index 64d3100c94b..9e981704b5d 100644
--- a/ACE/ace/OS_NS_pwd.cpp
+++ b/ACE/ace/OS_NS_pwd.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_pwd.h"
-ACE_RCSID(ace, OS_NS_pwd, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_pwd.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_pwd.h b/ACE/ace/OS_NS_pwd.h
index 821582b449d..73cb87c5205 100644
--- a/ACE/ace/OS_NS_pwd.h
+++ b/ACE/ace/OS_NS_pwd.h
@@ -33,18 +33,12 @@
#endif
#define ACE_EXPORT_MACRO ACE_Export
-# if defined (ACE_HAS_BROKEN_R_ROUTINES)
-# undef getpwnam_r
-# endif /* ACE_HAS_BROKEN_R_ROUTINES */
-
struct passwd;
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
{
-
-
//@{ @name A set of wrappers for password routines.
ACE_NAMESPACE_INLINE_FUNCTION
@@ -57,14 +51,15 @@ namespace ACE_OS
struct passwd *getpwnam (const char *user);
ACE_NAMESPACE_INLINE_FUNCTION
- struct passwd *getpwnam_r (const char *name,
- struct passwd *pwent,
- char *buffer,
- int buflen);
+ int getpwnam_r (const char *name,
+ struct passwd *pwd,
+ char *buffer,
+ size_t bufsize,
+ struct passwd **result);
+
ACE_NAMESPACE_INLINE_FUNCTION
void setpwent (void);
//@}
-
} /* namespace ACE_OS */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_pwd.inl b/ACE/ace/OS_NS_pwd.inl
index 029dd034d51..d72a09039a3 100644
--- a/ACE/ace/OS_NS_pwd.inl
+++ b/ACE/ace/OS_NS_pwd.inl
@@ -37,76 +37,31 @@ ACE_OS::getpwnam (const char *name)
#endif /* ACE_LACKS_PWD_FUNCTIONS */
}
-ACE_INLINE struct passwd *
-ACE_OS::getpwnam_r (const char *name, struct passwd *pwent,
- char *buffer, int buflen)
+ACE_INLINE int
+ACE_OS::getpwnam_r (const char *name,
+ struct passwd *pwd,
+ char *buffer,
+ size_t bufsize,
+ struct passwd **result)
{
-#if defined (ACE_HAS_POSIX_GETPWNAM_R)
- struct passwd *result = 0;
-
- int const status = ::getpwnam_r (name, pwent, buffer, buflen, &result);
-
- if (status != 0)
- {
- errno = status;
- result = 0;
- }
- return result;
-#elif !defined (ACE_LACKS_PWD_FUNCTIONS)
-# if defined (ACE_HAS_REENTRANT_FUNCTIONS)
-# if !defined (ACE_LACKS_PWD_REENTRANT_FUNCTIONS)
-# if defined (ACE_HAS_PTHREADS) && \
- !defined (ACE_HAS_STHREADS) || \
- defined (HPUX_11) || \
- defined (__USLC__) // Added by Roland Gigler for SCO UnixWare 7.
- struct passwd *result;
- int status;
-# if defined (DIGITAL_UNIX)
- ::_Pgetpwnam_r (name, pwent, buffer, buflen, &result);
-# else
- // VAC++ doesn't correctly grok the ::getpwnam_r - the function is redefined
- // in pwd.h, and that redefinition is used here
-# if defined (__IBMCPP__) && (__IBMCPP__ >= 400) /* VAC++ 4 */
- status = _posix_getpwnam_r (name, pwent, buffer, buflen, &result);
-# else
- status = ::getpwnam_r (name, pwent, buffer, buflen, &result);
-# endif /* __IBMCPP__ && (__IBMCPP__ >= 400) */
- if (status != 0)
- {
- errno = status;
- result = 0;
- }
-# endif /* (DIGITAL_UNIX) */
- return result;
-# elif defined (AIX)
- if (::getpwnam_r (name, pwent, buffer, buflen) == -1)
- return 0;
- else
- return pwent;
-# else
- return ::getpwnam_r (name, pwent, buffer, buflen);
-# endif /* ACE_HAS_PTHREADS */
-# else
+#if defined (ACE_LACKS_PWD_FUNCTIONS)
ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (pwent);
+ ACE_UNUSED_ARG (pwd);
ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (buflen);
+ ACE_UNUSED_ARG (bufsize);
+ ACE_UNUSED_ARG (result);
ACE_NOTSUP_RETURN (0);
-# endif /* ! ACE_LACKS_PWD_REENTRANT_FUNCTIONS */
-# else
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (pwent);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (buflen);
- ACE_NOTSUP_RETURN (0);
-# endif /* ACE_HAS_REENTRANT_FUNCTIONS */
+#elif defined (ACE_HAS_LYNXOS4_GETPWNAM_R)
+ if (::getpwnam_r (pwd, const_cast<char*>(name), buffer, bufsize) == -1)
+ {
+ *result = 0;
+ return -1;
+ }
+ *result = pwd;
+ return 0;
#else
- ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (pwent);
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (buflen);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_POSIX_GETPWNAM_R */
+ return ::getpwnam_r (name, pwd, buffer, bufsize, result);
+#endif /* ACE_LACKS_PWD_FUNCTIONS */
}
ACE_INLINE void
diff --git a/ACE/ace/OS_NS_regex.cpp b/ACE/ace/OS_NS_regex.cpp
index 7bf54e28655..38920fc5ca0 100644
--- a/ACE/ace/OS_NS_regex.cpp
+++ b/ACE/ace/OS_NS_regex.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_regex.h"
-ACE_RCSID(ace, OS_NS_regex, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_regex.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_regex.inl b/ACE/ace/OS_NS_regex.inl
index 884bd88c718..5cfcaf9625b 100644
--- a/ACE/ace/OS_NS_regex.inl
+++ b/ACE/ace/OS_NS_regex.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
#include "ace/OS_NS_errno.h"
diff --git a/ACE/ace/OS_NS_signal.cpp b/ACE/ace/OS_NS_signal.cpp
index 9acf69c2e78..8b708e44859 100644
--- a/ACE/ace/OS_NS_signal.cpp
+++ b/ACE/ace/OS_NS_signal.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_signal.h"
-ACE_RCSID(ace, OS_NS_signal, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_signal.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_signal.h b/ACE/ace/OS_NS_signal.h
index 40c0e47a88c..e7eeb96fc83 100644
--- a/ACE/ace/OS_NS_signal.h
+++ b/ACE/ace/OS_NS_signal.h
@@ -33,6 +33,84 @@
#endif
#define ACE_EXPORT_MACRO ACE_Export
+#if defined (__Lynx__) || defined (__OpenBSD__)
+// LynxOS and OpenBSD define pthread_sigmask() in pthread.h
+# include "ace/os_include/os_pthread.h"
+#endif /* __Lynx__ || OpenBSD */
+
+/*
+ * We inline and undef some functions that may be implemented
+ * as macros on some platforms. This way macro definitions will
+ * be usable later as there is no way to save the macro definition
+ * using the pre-processor.
+ *
+ */
+
+#if !defined (ACE_LACKS_SIGSET)
+inline int ace_sigemptyset_helper (sigset_t *s)
+{
+# if defined (sigemptyset)
+ return sigemptyset (s);
+# undef sigemptyset
+# else
+ return ACE_STD_NAMESPACE::sigemptyset (s);
+# endif /* defined (sigemptyset) */
+}
+
+inline int ace_sigfillset_helper (sigset_t *s)
+{
+# if defined (sigfillset)
+ return sigfillset (s);
+# undef sigfillset
+# else
+ return ACE_STD_NAMESPACE::sigfillset (s);
+# endif /* defined (sigfillset) */
+}
+
+inline int ace_sigaddset_helper (sigset_t *s, int signum)
+{
+# if defined (sigaddset)
+ return sigaddset (s, signum);
+# undef sigaddset
+# else
+ return ACE_STD_NAMESPACE::sigaddset (s, signum);
+# endif /* defined (sigaddset) */
+}
+
+inline int ace_sigdelset_helper (sigset_t *s, int signum)
+{
+# if defined (sigdelset)
+ return sigdelset (s, signum);
+# undef sigdelset
+# else
+ return ACE_STD_NAMESPACE::sigdelset (s, signum);
+# endif /* defined (sigdelset) */
+}
+
+inline int ace_sigismember_helper (sigset_t *s, int signum)
+{
+# if defined (sigismember)
+ return sigismember (s, signum);
+# undef sigismember
+# else
+ return ACE_STD_NAMESPACE::sigismember (s, signum);
+# endif /* defined (sigismember) */
+}
+#endif /* !defined (ACE_LACKS_SIGSET) */
+
+#if defined (ACE_HAS_SIGSUSPEND)
+inline int ace_sigsuspend_helper (const sigset_t *s)
+{
+# if defined (sigsuspend)
+ return sigsuspend (s);
+# undef sigsuspend
+# else
+ return ACE_STD_NAMESPACE::sigsuspend (s);
+# endif /* defined (sigsuspen) */
+}
+#endif /* ACE_HAS_SIGSUSPEND */
+
+
# if !defined (SIG_BLOCK)
# define SIG_BLOCK 1
# endif /* SIG_BLOCK */
@@ -133,7 +211,7 @@ namespace ACE_OS {
sigset_t *osp);
ACE_NAMESPACE_INLINE_FUNCTION
- int sigsuspend (const sigset_t *set);
+ int sigsuspend (const sigset_t *s);
ACE_NAMESPACE_INLINE_FUNCTION
int raise (const int signum);
diff --git a/ACE/ace/OS_NS_signal.inl b/ACE/ace/OS_NS_signal.inl
index 03a6bb18a56..47cc21436af 100644
--- a/ACE/ace/OS_NS_signal.inl
+++ b/ACE/ace/OS_NS_signal.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
#include "ace/OS_NS_macros.h"
@@ -78,7 +77,7 @@ ACE_INLINE int
sigaddset (sigset_t *s, int signum)
{
ACE_OS_TRACE ("ACE_OS::sigaddset");
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
+#if defined (ACE_LACKS_SIGSET)
if (s == 0)
{
errno = EFAULT;
@@ -92,14 +91,14 @@ sigaddset (sigset_t *s, int signum)
*s |= (1 << (signum - 1)) ;
return 0 ;
#else
- ACE_OSCALL_RETURN (::sigaddset (s, signum), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
+ return ace_sigaddset_helper (s, signum);
+#endif /* ACE_LACKS_SIGSET */
}
ACE_INLINE int
sigdelset (sigset_t *s, int signum)
{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
+#if defined (ACE_LACKS_SIGSET)
if (s == 0)
{
errno = EFAULT;
@@ -113,14 +112,14 @@ sigdelset (sigset_t *s, int signum)
*s &= ~(1 << (signum - 1)) ;
return 0;
#else
- ACE_OSCALL_RETURN (::sigdelset (s, signum), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
+ return ace_sigdelset_helper (s, signum);
+#endif /* ACE_LACKS_SIGSET */
}
ACE_INLINE int
sigemptyset (sigset_t *s)
{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
+#if defined (ACE_LACKS_SIGSET)
if (s == 0)
{
errno = EFAULT;
@@ -129,14 +128,14 @@ sigemptyset (sigset_t *s)
*s = 0 ;
return 0;
#else
- ACE_OSCALL_RETURN (::sigemptyset (s), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
+ return ace_sigemptyset_helper (s);
+#endif /* ACE_LACKS_SIGSET */
}
ACE_INLINE int
sigfillset (sigset_t *s)
{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
+#if defined (ACE_LACKS_SIGSET)
if (s == 0)
{
errno = EFAULT;
@@ -145,14 +144,14 @@ sigfillset (sigset_t *s)
*s = ~(sigset_t) 0;
return 0 ;
#else
- ACE_OSCALL_RETURN (::sigfillset (s), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
+ return ace_sigfillset_helper (s);
+#endif /* ACE_LACKS_SIGSET */
}
ACE_INLINE int
sigismember (sigset_t *s, int signum)
{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
+#if defined (ACE_LACKS_SIGSET)
if (s == 0)
{
errno = EFAULT;
@@ -172,8 +171,8 @@ sigismember (sigset_t *s, int signum)
return -1; // Invalid signum, return error
}
# endif /* ACE_HAS_SIGISMEMBER_BUG */
- ACE_OSCALL_RETURN (::sigismember (s, signum), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
+ return ace_sigismember_helper (s, signum);
+#endif /* ACE_LACKS_SIGSET */
}
ACE_INLINE ACE_SignalHandler
@@ -183,11 +182,11 @@ signal (int signum, ACE_SignalHandler func)
return 0;
else
# if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) || !defined (ACE_LACKS_UNIX_SIGNALS)
-# if !defined (ACE_HAS_TANDEM_SIGNALS) && !defined (ACE_HAS_LYNXOS_SIGNALS)
+# if !defined (ACE_HAS_TANDEM_SIGNALS) && !defined (ACE_HAS_LYNXOS4_SIGNALS)
return ::signal (signum, func);
# else
return (ACE_SignalHandler) ::signal (signum, (void (*)(int)) func);
-# endif /* !ACE_HAS_TANDEM_SIGNALS */
+# endif /* !ACE_HAS_TANDEM_SIGNALS && !ACE_HAS_LYNXOS4_SIGNALS */
#else
// @@ WINCE: Don't know how to implement signal on WinCE (yet.)
ACE_UNUSED_ARG (signum);
@@ -199,30 +198,30 @@ signal (int signum, ACE_SignalHandler func)
ACE_INLINE int
sigprocmask (int how, const sigset_t *nsp, sigset_t *osp)
{
-#if defined (ACE_LACKS_SIGSET) || defined (ACE_LACKS_SIGSET_DEFINITIONS)
+#if defined (ACE_LACKS_SIGSET)
ACE_UNUSED_ARG (how);
ACE_UNUSED_ARG (nsp);
ACE_UNUSED_ARG (osp);
ACE_NOTSUP_RETURN (-1);
#else
ACE_OSCALL_RETURN (::sigprocmask (how, nsp, osp), int, -1);
-#endif /* ACE_LACKS_SIGSET || ACE_LACKS_SIGSET_DEFINITIONS */
+#endif /* ACE_LACKS_SIGSET */
}
ACE_INLINE int
-sigsuspend (const sigset_t *sigset)
+sigsuspend (const sigset_t *s)
{
#if defined (ACE_HAS_SIGSUSPEND)
- sigset_t s;
+ sigset_t sigset;
- if (sigset == 0)
+ if (s == 0)
{
- sigset = &s;
- ACE_OS::sigemptyset (&s);
+ ACE_OS::sigemptyset (&sigset);
+ s = &sigset;
}
- ACE_OSCALL_RETURN (::sigsuspend (sigset), int, -1);
+ return ace_sigsuspend_helper (s);
#else
- ACE_UNUSED_ARG (sigset);
+ ACE_UNUSED_ARG (s);
ACE_NOTSUP_RETURN (-1);
#endif /* ACE_HAS_SIGSUSPEND */
}
diff --git a/ACE/ace/OS_NS_stdio.cpp b/ACE/ace/OS_NS_stdio.cpp
index 1e5c75dce85..09024950f4a 100644
--- a/ACE/ace/OS_NS_stdio.cpp
+++ b/ACE/ace/OS_NS_stdio.cpp
@@ -3,11 +3,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_Thread.h"
-ACE_RCSID (ace,
- OS_NS_stdio,
- "$Id$")
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_stdio.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -74,38 +69,6 @@ ACE_OS::ace_flock_t::dump (void) const
/*****************************************************************************/
-#if defined (ACE_USES_WCHAR)
-void ACE_OS::checkUnicodeFormat (FILE* fp)
-{
- if (fp != 0)
- {
- // Due to the ACE_TCHAR definition, all default input files, such as
- // svc.conf, have to be in Unicode format (small endian) on WinCE
- // because ACE has all 'char' converted into ACE_TCHAR.
- // However, for TAO, ASCII files, such as IOR file, can still be read
- // and be written without any error since given buffers are all in 'char'
- // type instead of ACE_TCHAR. Therefore, it is user's reponsibility to
- // select correct buffer type.
-
- // At this point, check if the file is Unicode or not.
- ACE_UINT16 first_two_bytes = 0;
- size_t const numRead =
- ACE_OS::fread(&first_two_bytes, sizeof (first_two_bytes), 1, fp);
-
- if (numRead <= 1)
- {
- if ((first_two_bytes != 0xFFFE) && // not a small endian Unicode file
- (first_two_bytes != 0xFEFF)) // not a big endian Unicode file
- {
- // set file pointer back to the beginning
- ACE_OS::fseek(fp, 0, SEEK_SET);
- }
- }
- // if it is a Unicode file, file pointer will be right next to the first
- // two-bytes
- }
-}
-#endif // ACE_USES_WCHAR
#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
namespace
@@ -161,6 +124,11 @@ ACE_OS::fopen (const char *filename,
const ACE_TCHAR *mode)
{
ACE_OS_TRACE ("ACE_OS::fopen");
+#if defined (ACE_LACKS_FOPEN)
+ ACE_UNUSED_ARG (filename);
+ ACE_UNUSED_ARG (mode);
+ ACE_NOTSUP_RETURN (0);
+#else
int hmode = _O_TEXT;
// Let the chips fall where they may if the user passes in a NULL
@@ -193,9 +161,6 @@ ACE_OS::fopen (const char *filename,
# endif /* defined(ACE_HAS_NONCONST_FDOPEN) && !defined (ACE_USES_WCHAR)) */
if (fp != 0)
{
-# if defined (ACE_USES_WCHAR)
- checkUnicodeFormat(fp);
-# endif // ACE_USES_WCHAR
return fp;
}
::_close (fd);
@@ -204,6 +169,7 @@ ACE_OS::fopen (const char *filename,
ACE_OS::close (handle);
}
return 0;
+#endif
}
#if defined (ACE_HAS_WCHAR)
@@ -226,6 +192,11 @@ ACE_OS::fopen (const wchar_t *filename,
const ACE_TCHAR *mode)
{
ACE_OS_TRACE ("ACE_OS::fopen");
+#if defined (ACE_LACKS_FOPEN)
+ ACE_UNUSED_ARG (filename);
+ ACE_UNUSED_ARG (mode);
+ ACE_NOTSUP_RETURN (0);
+#else
int hmode = _O_TEXT;
for (const ACE_TCHAR *mode_ptr = mode; *mode_ptr != 0; mode_ptr++)
@@ -251,9 +222,6 @@ ACE_OS::fopen (const wchar_t *filename,
# endif /* defined(ACE_HAS_NONCONST_FDOPEN) && !defined (ACE_USES_WCHAR)) */
if (fp != 0)
{
-# if defined (ACE_USES_WCHAR)
- checkUnicodeFormat(fp);
-# endif // ACE_USES_WCHAR
return fp;
}
::_close (fd);
@@ -262,6 +230,7 @@ ACE_OS::fopen (const wchar_t *filename,
ACE_OS::close (handle);
}
return 0;
+#endif
}
#endif /* ACE_HAS_WCHAR */
@@ -274,10 +243,9 @@ int
ACE_OS::fprintf (FILE *fp, const char *format, ...)
{
// ACE_OS_TRACE ("ACE_OS::fprintf");
- int result = 0;
va_list ap;
va_start (ap, format);
- result = ACE_OS::vfprintf (fp, format, ap);
+ int const result = ACE_OS::vfprintf (fp, format, ap);
va_end (ap);
return result;
}
@@ -287,10 +255,9 @@ int
ACE_OS::fprintf (FILE *fp, const wchar_t *format, ...)
{
// ACE_OS_TRACE ("ACE_OS::fprintf");
- int result = 0;
va_list ap;
va_start (ap, format);
- result = ACE_OS::vfprintf (fp, format, ap);
+ int const result = ACE_OS::vfprintf (fp, format, ap);
va_end (ap);
return result;
}
@@ -300,10 +267,9 @@ int
ACE_OS::asprintf (char **bufp, const char *format, ...)
{
// ACE_OS_TRACE ("ACE_OS::asprintf");
- int result;
va_list ap;
va_start (ap, format);
- result = ACE_OS::vasprintf (bufp, format, ap);
+ int const result = ACE_OS::vasprintf (bufp, format, ap);
va_end (ap);
return result;
}
@@ -313,10 +279,9 @@ int
ACE_OS::asprintf (wchar_t **bufp, const wchar_t *format, ...)
{
// ACE_OS_TRACE ("ACE_OS::asprintf");
- int result;
va_list ap;
va_start (ap, format);
- result = ACE_OS::vasprintf (bufp, format, ap);
+ int const result = ACE_OS::vasprintf (bufp, format, ap);
va_end (ap);
return result;
}
@@ -326,10 +291,9 @@ int
ACE_OS::printf (const char *format, ...)
{
// ACE_OS_TRACE ("ACE_OS::printf");
- int result;
va_list ap;
va_start (ap, format);
- result = ACE_OS::vprintf (format, ap);
+ int const result = ACE_OS::vprintf (format, ap);
va_end (ap);
return result;
}
@@ -339,10 +303,9 @@ int
ACE_OS::printf (const wchar_t *format, ...)
{
// ACE_OS_TRACE ("ACE_OS::printf");
- int result;
va_list ap;
va_start (ap, format);
- result = ACE_OS::vprintf (format, ap);
+ int const result = ACE_OS::vprintf (format, ap);
va_end (ap);
return result;
}
@@ -354,7 +317,7 @@ ACE_OS::snprintf (char *buf, size_t maxlen, const char *format, ...)
// ACE_OS_TRACE ("ACE_OS::snprintf");
va_list ap;
va_start (ap, format);
- int result = ACE_OS::vsnprintf (buf, maxlen, format, ap);
+ int const result = ACE_OS::vsnprintf (buf, maxlen, format, ap);
va_end (ap);
return result;
}
@@ -366,7 +329,7 @@ ACE_OS::snprintf (wchar_t *buf, size_t maxlen, const wchar_t *format, ...)
// ACE_OS_TRACE ("ACE_OS::snprintf");
va_list ap;
va_start (ap, format);
- int result = ACE_OS::vsnprintf (buf, maxlen, format, ap);
+ int const result = ACE_OS::vsnprintf (buf, maxlen, format, ap);
va_end (ap);
return result;
}
@@ -378,7 +341,7 @@ ACE_OS::sprintf (char *buf, const char *format, ...)
// ACE_OS_TRACE ("ACE_OS::sprintf");
va_list ap;
va_start (ap, format);
- int result = ACE_OS::vsprintf (buf, format, ap);
+ int const result = ACE_OS::vsprintf (buf, format, ap);
va_end (ap);
return result;
}
@@ -390,7 +353,7 @@ ACE_OS::sprintf (wchar_t *buf, const wchar_t *format, ...)
// ACE_OS_TRACE ("ACE_OS::sprintf");
va_list ap;
va_start (ap, format);
- int result = ACE_OS::vsprintf (buf, format, ap);
+ int const result = ACE_OS::vsprintf (buf, format, ap);
va_end (ap);
return result;
}
@@ -402,7 +365,7 @@ ACE_OS::vasprintf_emulation(char **bufp, const char *format, va_list argptr)
{
va_list ap;
va_copy (ap, argptr);
- int size = ACE_OS::vsnprintf(0, 0, format, ap);
+ int size = ACE_OS::vsnprintf (0, 0, format, ap);
va_end (ap);
if (size != -1)
diff --git a/ACE/ace/OS_NS_stdio.h b/ACE/ace/OS_NS_stdio.h
index 3133628d5dc..411c1e5ee58 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
@@ -46,17 +50,15 @@
* using the pre-processor.
*
*/
-#if !defined (ACE_LACKS_CLEARERR)
inline void ace_clearerr_helper (FILE *stream)
{
-# if defined (clearerr)
+#if defined (clearerr)
clearerr (stream);
-# undef clearerr
-# else
+#undef clearerr
+#else
ACE_STD_NAMESPACE::clearerr (stream);
-# endif /* defined (clearerr) */
+#endif /* defined (clearerr) */
}
-#endif /* !ACE_LACKS_CLEARERR */
inline int ace_fgetc_helper (FILE *fp)
{
@@ -108,6 +110,17 @@ inline int ace_ungetc_helper (int ch, FILE *fp)
#endif /* defined (ungetc) */
}
+#if !defined ACE_FILENO_EQUIVALENT
+inline ACE_HANDLE ace_fileno_helper (FILE *fp)
+{
+# if defined (fileno)
+ return (ACE_HANDLE)fileno (fp);
+# undef fileno
+# else
+ return (ACE_HANDLE)ACE_STD_NAMESPACE::fileno (fp);
+# endif /* defined (fileno) */
+}
+#endif /* !ACE_FILENO_EQUIVALENT */
#if !defined (ACE_LACKS_CUSERID) && !defined(ACE_HAS_ALT_CUSERID) \
&& !defined(ACE_WIN32) && !defined (ACE_VXWORKS)
@@ -184,10 +197,8 @@ namespace ACE_OS {
void checkUnicodeFormat (FILE* fp);
# endif // ACE_USES_WCHAR
-# if !defined (ACE_LACKS_CLEARERR)
ACE_NAMESPACE_INLINE_FUNCTION
void clearerr (FILE* fp);
-# endif /* !ACE_LACKS_CLEARERR */
//@{ @name Wrappers to obtain the current user id
// Legacy as per SUSV3
@@ -209,7 +220,8 @@ namespace ACE_OS {
//@}
extern ACE_Export
- int asprintf (char **bufp, const char* format, ...);
+ int asprintf (char **bufp, const char* format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 3);
# if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -219,10 +231,6 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
int fclose (FILE *fp);
-# if defined (fdopen)
-# undef fdopen
-# endif /* fdopen */
-
ACE_NAMESPACE_INLINE_FUNCTION
FILE *fdopen (ACE_HANDLE handle, const ACE_TCHAR *mode);
@@ -298,6 +306,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
@@ -360,7 +372,8 @@ namespace ACE_OS {
#endif /* ACE_WIN32 */
extern ACE_Export
- int fprintf (FILE *fp, const char *format, ...);
+ int fprintf (FILE *fp, const char *format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 3);
# if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -426,7 +439,8 @@ namespace ACE_OS {
#endif /* ACE_HAS_WCHAR */
extern ACE_Export
- int printf (const char *format, ...);
+ int printf (const char *format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 1, 2);
#if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -457,7 +471,8 @@ namespace ACE_OS {
void rewind (FILE *fp);
extern ACE_Export
- int snprintf (char *buf, size_t maxlen, const char *format, ...);
+ int snprintf (char *buf, size_t maxlen, const char *format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 3, 4);
# if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -465,7 +480,8 @@ namespace ACE_OS {
# endif /* ACE_HAS_WCHAR */
extern ACE_Export
- int sprintf (char *buf, const char *format, ...);
+ int sprintf (char *buf, const char *format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 3);
# if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -483,19 +499,24 @@ namespace ACE_OS {
#endif /* ACE_HAS_WCHAR */
ACE_NAMESPACE_INLINE_FUNCTION
- int vasprintf (char **bufp, const char *format, va_list argptr);
+ int vasprintf (char **bufp, const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int vprintf (const char *format, va_list argptr);
+ int vprintf (const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 1, 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int vfprintf (FILE *fp, const char *format, va_list argptr);
+ int vfprintf (FILE *fp, const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int vsprintf (char *buffer, const char *format, va_list argptr);
+ int vsprintf (char *buffer, const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int vsnprintf (char *buffer, size_t maxlen, const char *format, va_list argptr);
+ int vsnprintf (char *buffer, size_t maxlen, const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 3, 0);
# if defined (ACE_HAS_WCHAR)
ACE_NAMESPACE_INLINE_FUNCTION
diff --git a/ACE/ace/OS_NS_stdio.inl b/ACE/ace/OS_NS_stdio.inl
index 26c137e9d10..e24a4024f11 100644
--- a/ACE/ace/OS_NS_stdio.inl
+++ b/ACE/ace/OS_NS_stdio.inl
@@ -339,13 +339,11 @@ ACE_OS::flock_wrlock (ACE_OS::ace_flock_t *lock,
#endif /* ACE_WIN32 */
}
-#if !defined (ACE_LACKS_CLEARERR)
ACE_INLINE void
ACE_OS::clearerr (FILE* fp)
{
ace_clearerr_helper (fp);
}
-#endif /* !ACE_LACKS_CLEARERR */
#if !defined (ACE_LACKS_CUSERID)
ACE_INLINE char *
@@ -370,7 +368,7 @@ ACE_OS::cuserid (char *user, size_t maxlen)
ACE_UNUSED_ARG (maxlen);
ACE_NOTSUP_RETURN (0);
#elif defined (ACE_WIN32)
- BOOL result = GetUserNameA (user, (u_long *) &maxlen);
+ BOOL const result = GetUserNameA (user, (u_long *) &maxlen);
if (result == FALSE)
ACE_FAIL_RETURN (0);
else
@@ -461,7 +459,7 @@ ACE_OS::cuserid (wchar_t *user, size_t maxlen)
ACE_UNUSED_ARG (maxlen);
ACE_NOTSUP_RETURN (0);
# elif defined (ACE_WIN32)
- BOOL result = GetUserNameW (user, (u_long *) &maxlen);
+ BOOL const result = GetUserNameW (user, (u_long *) &maxlen);
if (result == FALSE)
ACE_FAIL_RETURN (0);
else
@@ -544,14 +542,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 +579,16 @@ 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)
+{
+#if defined ACE_FILENO_EQUIVALENT
+ return (ACE_HANDLE)ACE_FILENO_EQUIVALENT (stream);
+#else
+ return ace_fileno_helper (stream);
+#endif
+}
+
#if !(defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
// Win32 PC implementation of fopen () is in OS_NS_stdio.cpp.
ACE_INLINE FILE *
@@ -805,12 +805,7 @@ ACE_OS::rename (const char *old_name,
const char *new_name,
int flags)
{
-# if defined (ACE_LACKS_RENAME)
- ACE_UNUSED_ARG (old_name);
- ACE_UNUSED_ARG (new_name);
- ACE_UNUSED_ARG (flags);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_WINCE)
+# if defined (ACE_HAS_WINCE)
// Win CE is always wide-char.
ACE_UNUSED_ARG (flags);
if (0 == ::MoveFile (ACE_TEXT_CHAR_TO_TCHAR (old_name),
@@ -827,10 +822,10 @@ ACE_OS::rename (const char *old_name,
if (::MoveFileExA (old_name, new_name, flags) == 0)
ACE_FAIL_RETURN (-1);
return 0;
-# else /* ACE_LACKS_RENAME */
+# else
ACE_UNUSED_ARG (flags);
ACE_OSCALL_RETURN (::rename (old_name, new_name), int, -1);
-# endif /* ACE_LACKS_RENAME */
+# endif /* ACE_HAS_WINCE */
}
#if defined (ACE_HAS_WCHAR)
@@ -839,12 +834,7 @@ ACE_OS::rename (const wchar_t *old_name,
const wchar_t *new_name,
int flags)
{
-# if defined (ACE_LACKS_RENAME)
- ACE_UNUSED_ARG (old_name);
- ACE_UNUSED_ARG (new_name);
- ACE_UNUSED_ARG (flags);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_WINCE)
+# if defined (ACE_HAS_WINCE)
ACE_UNUSED_ARG (flags);
if (::MoveFileW (old_name, new_name) == 0)
ACE_FAIL_RETURN (-1);
@@ -862,11 +852,11 @@ ACE_OS::rename (const wchar_t *old_name,
# elif defined (ACE_WIN32)
ACE_UNUSED_ARG (flags);
ACE_OSCALL_RETURN (::_wrename (old_name, new_name), int, -1);
-# else /* ACE_LACKS_RENAME */
+# else
ACE_Wide_To_Ascii nold_name (old_name);
ACE_Wide_To_Ascii nnew_name (new_name);
return ACE_OS::rename (nold_name.char_rep (), nnew_name.char_rep (), flags);
-# endif /* ACE_LACKS_RENAME */
+# endif /* ACE_HAS_WINCE */
}
#endif /* ACE_HAS_WCHAR */
@@ -1011,7 +1001,9 @@ 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_VC10) && !defined (ACE_HAS_WINCE)) || \
+ (defined (ACE_WIN32_VC9) && !defined (ACE_HAS_WINCE)) || \
(defined (ACE_WIN32_VC8) && !defined (ACE_HAS_WINCE) && \
_MSC_FULL_VER > 140050000)
@@ -1054,11 +1046,11 @@ ACE_OS::vsnprintf (char *buffer, size_t maxlen, const char *format, va_list ap)
result = ::_vsnprintf (buffer, maxlen, format, ap);
// Win32 doesn't regard a full buffer with no 0-terminate as an overrun.
- if (result == static_cast<int> (maxlen))
+ if (result == static_cast<int> (maxlen) && maxlen > 0)
buffer[maxlen-1] = '\0';
// Win32 doesn't 0-terminate the string if it overruns maxlen.
- if (result == -1)
+ if (result == -1 && maxlen > 0)
buffer[maxlen-1] = '\0';
# endif
// In out-of-range conditions, C99 defines vsnprintf() to return the number
@@ -1102,25 +1094,23 @@ ACE_OS::vsnprintf (wchar_t *buffer, size_t maxlen, const wchar_t *format, va_lis
result = ::_vsnwprintf (buffer, maxlen, format, ap);
// Win32 doesn't regard a full buffer with no 0-terminate as an overrun.
- if (result == static_cast<int> (maxlen))
+ if (result == static_cast<int> (maxlen) && maxlen > 0)
buffer[maxlen-1] = '\0';
// Win32 doesn't 0-terminate the string if it overruns maxlen.
- if (result == -1)
+ if (result == -1 && maxlen > 0)
buffer[maxlen-1] = '\0';
# else
result = vswprintf (buffer, maxlen, format, ap);
#endif
- // In out-of-range conditions, C99 defines vsnprintf() to return the number
- // of characters that would have been written if enough space was available.
- // Earlier variants of the vsnprintf() (e.g. UNIX98) defined it to return
- // -1. This method follows the C99 standard, but needs to guess at the
- // value; uses maxlen + 1.
+ // In out-of-range conditions, C99 defines vsnprintf() to return the
+ // number of characters that would have been written if enough space
+ // was available. Earlier variants of the vsnprintf() (e.g. UNIX98)
+ // defined it to return -1. This method follows the C99 standard,
+ // but needs to guess at the value; uses maxlen + 1.
if (result == -1)
- {
- result = static_cast <int> (maxlen + 1);
- }
+ result = static_cast <int> (maxlen + 1);
return result;
diff --git a/ACE/ace/OS_NS_stdlib.cpp b/ACE/ace/OS_NS_stdlib.cpp
index 0ddc012e888..106831c1165 100644
--- a/ACE/ace/OS_NS_stdlib.cpp
+++ b/ACE/ace/OS_NS_stdlib.cpp
@@ -2,10 +2,6 @@
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID (ace,
- OS_NS_stdlib,
- "$Id$")
-
#include "ace/Default_Constants.h"
#if !defined (ACE_HAS_INLINED_OSCALLS)
@@ -61,17 +57,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
@@ -269,13 +259,13 @@ ACE_OS::itow_emulation (int value, wchar_t *string, int radix)
// Now reverse the string to get the correct result
while (e > b)
- {
- wchar_t temp = *e;
- *e = *b;
- *b = temp;
- ++b;
- --e;
- }
+ {
+ wchar_t temp = *e;
+ *e = *b;
+ *b = temp;
+ ++b;
+ --e;
+ }
return string;
}
@@ -1118,7 +1108,7 @@ ACE_OS::mkstemp_emulation (ACE_TCHAR * s)
// ACE_thread_t may be a char* (returned by ACE_OS::thr_self()) so
// we need to use a C-style cast as a catch-all in order to use a
// static_cast<> to an integral type.
- ACE_RANDR_TYPE seed = static_cast<ACE_RANDR_TYPE> (msec);
+ unsigned int seed = static_cast<unsigned int> (msec);
// We only care about UTF-8 / ASCII characters in generated
// filenames. A UTF-16 or UTF-32 character could potentially cause
@@ -1158,7 +1148,7 @@ ACE_OS::mkstemp_emulation (ACE_TCHAR * s)
// selection to work for EBCDIC, as well.
do
{
- r = static_cast<ACE_TCHAR> (coefficient * ACE_OS::rand_r (seed));
+ r = static_cast<ACE_TCHAR> (coefficient * ACE_OS::rand_r (&seed));
}
while (!ACE_OS::ace_isalnum (r));
diff --git a/ACE/ace/OS_NS_stdlib.h b/ACE/ace/OS_NS_stdlib.h
index 62618c3695e..fb9f9c18161 100644
--- a/ACE/ace/OS_NS_stdlib.h
+++ b/ACE/ace/OS_NS_stdlib.h
@@ -35,10 +35,6 @@
#endif
#define ACE_EXPORT_MACRO ACE_Export
-# if defined (ACE_HAS_BROKEN_R_ROUTINES)
-# undef rand_r
-# endif /* ACE_HAS_BROKEN_R_ROUTINES */
-
// We need this for MVS... as well as Linux, etc...
// On Windows, we explicitly set this up as __cdecl so it's correct even
// if building with another calling convention, such as __stdcall.
@@ -52,6 +48,42 @@ extern "C" {
}
#endif /* ACE_WIN32 && _MSC_VER */
+// FreeBSD has atop macro (not related to ACE_OS::atop)
+#if defined (atop)
+# undef atop
+#endif
+
+/*
+ * We inline and undef some functions that may be implemented
+ * as macros on some platforms. This way macro definitions will
+ * be usable later as there is no way to save the macro definition
+ * using the pre-processor.
+ */
+
+#if !defined (ACE_LACKS_STRTOLL) && !defined (ACE_STRTOLL_EQUIVALENT)
+inline ACE_INT64 ace_strtoll_helper (const char *s, char **ptr, int base)
+{
+# if defined (strtoll)
+ return strtoll (s, ptr, base);
+# undef strtoll
+# else
+ return ACE_STD_NAMESPACE::strtoll (s, ptr, base);
+# endif /* strtoll */
+}
+#endif /* !ACE_LACKS_STRTOLL && !ACE_STRTOLL_EQUIVALENT */
+
+#if !defined (ACE_LACKS_STRTOULL) && !defined (ACE_STRTOULL_EQUIVALENT)
+inline ACE_INT64 ace_strtoull_helper (const char *s, char **ptr, int base)
+{
+# if defined (strtoull)
+ return strtoull (s, ptr, base);
+# undef strtoull
+# else
+ return ACE_STD_NAMESPACE::strtoull (s, ptr, base);
+# endif /* strtoull */
+}
+#endif /* !ACE_LACKS_STRTOULL && !ACE_STRTOULL_EQUIVALENT */
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS {
@@ -118,10 +150,6 @@ namespace ACE_OS {
# endif /* ACE_HAS_WCHAR */
// atop not in spec
-# if defined (atop)
-# undef atop
-# endif /* atop */
-
/*
* Convert string to pointer
*/
@@ -214,7 +242,7 @@ namespace ACE_OS {
#else
extern ACE_Export
ACE_TCHAR *mktemp (ACE_TCHAR *s);
-#endif /* !ACE_LACKS_MSTEMP */
+#endif /* !ACE_LACKS_MKTEMP */
ACE_NAMESPACE_INLINE_FUNCTION
int putenv (const char *string);
@@ -244,7 +272,7 @@ namespace ACE_OS {
int rand (void);
ACE_NAMESPACE_INLINE_FUNCTION
- int rand_r (ACE_RANDR_TYPE &seed);
+ int rand_r (unsigned int *seed);
extern ACE_Export
void *realloc (void *, size_t);
diff --git a/ACE/ace/OS_NS_stdlib.inl b/ACE/ace/OS_NS_stdlib.inl
index bddd77a48f5..1dd97e34a71 100644
--- a/ACE/ace/OS_NS_stdlib.inl
+++ b/ACE/ace/OS_NS_stdlib.inl
@@ -35,12 +35,11 @@ ACE_OS::_exit (int status)
ACE_INLINE void
ACE_OS::abort (void)
{
-#if !defined (ACE_HAS_WINCE)
+#if !defined (ACE_LACKS_ABORT)
::abort ();
#else
- // @@ CE doesn't support abort?
exit (1);
-#endif /* !ACE_HAS_WINCE */
+#endif /* !ACE_LACKS_ABORT */
}
ACE_INLINE int
@@ -105,10 +104,6 @@ ACE_OS::atof (const wchar_t *s)
}
#endif /* ACE_HAS_WCHAR */
-#if defined (atop)
-# undef atop
-#endif /* atop */
-
ACE_INLINE void *
ACE_OS::atop (const char *s)
{
@@ -407,47 +402,25 @@ ACE_OS::rand (void)
ACE_OSCALL_RETURN (::rand (), int, -1);
}
-#if !defined (ACE_WIN32)
-
ACE_INLINE int
-ACE_OS::rand_r (ACE_RANDR_TYPE &seed)
+ACE_OS::rand_r (unsigned int *seed)
{
ACE_OS_TRACE ("ACE_OS::rand_r");
-# if defined (ACE_HAS_REENTRANT_FUNCTIONS) && \
- !defined (ACE_LACKS_RAND_REENTRANT_FUNCTIONS)
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL_RETURN (::_Prand_r (&seed), int, -1);
-# elif defined (ACE_HAS_BROKEN_RANDR)
- ACE_OSCALL_RETURN (::rand_r (seed), int, -1);
-# else
- ACE_OSCALL_RETURN (::rand_r (&seed), int, -1);
-# endif /* DIGITAL_UNIX */
-# else
- ACE_UNUSED_ARG (seed);
- ACE_OSCALL_RETURN (::rand (), int, -1);
-# endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-}
-
-#else /* ACE_WIN32 */
-
-ACE_INLINE int
-ACE_OS::rand_r (ACE_RANDR_TYPE& seed)
-{
- ACE_OS_TRACE ("ACE_OS::rand_r");
-
- long new_seed = (long) (seed);
+#if defined (ACE_LACKS_RAND_R)
+ long new_seed = (long) *seed;
if (new_seed == 0)
new_seed = 0x12345987;
long temp = new_seed / 127773;
new_seed = 16807 * (new_seed - temp * 127773) - 2836 * temp;
if (new_seed < 0)
new_seed += 2147483647;
- (seed) = (unsigned int)new_seed;
+ *seed = (unsigned int)new_seed;
return (int) (new_seed & RAND_MAX);
+#else
+ return ::rand_r (seed);
+# endif /* ACE_LACKS_RAND_R */
}
-#endif /* !ACE_WIN32 */
-
# if !defined (ACE_LACKS_REALPATH)
ACE_INLINE char *
ACE_OS::realpath (const char *file_name,
@@ -565,7 +538,7 @@ ACE_OS::strtoll (const char *s, char **ptr, int base)
#elif defined (ACE_STRTOLL_EQUIVALENT)
return ACE_STRTOLL_EQUIVALENT (s, ptr, base);
#else
- return ::strtoll (s, ptr, base);
+ return ace_strtoll_helper (s, ptr, base);
#endif /* ACE_LACKS_STRTOLL */
}
@@ -591,7 +564,7 @@ ACE_OS::strtoull (const char *s, char **ptr, int base)
#elif defined (ACE_STRTOULL_EQUIVALENT)
return ACE_STRTOULL_EQUIVALENT (s, ptr, base);
#else
- return ::strtoull (s, ptr, base);
+ return ace_strtoull_helper (s, ptr, base);
#endif /* ACE_LACKS_STRTOULL */
}
diff --git a/ACE/ace/OS_NS_string.cpp b/ACE/ace/OS_NS_string.cpp
index be63e28e450..84cd0ed3829 100644
--- a/ACE/ace/OS_NS_string.cpp
+++ b/ACE/ace/OS_NS_string.cpp
@@ -1,25 +1,14 @@
// $Id$
+#include "ace/ACE.h"
#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_stdlib.h"
-#include "ace/ACE.h"
-
-ACE_RCSID (ace,
- OS_NS_string,
- "$Id$")
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_string.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
-#if defined (ACE_HAS_WCHAR)
-# include "ace/OS_NS_stdlib.h"
-#endif /* ACE_HAS_WCHAR */
-
-#if !defined (ACE_LACKS_STRERROR)
-# include "ace/OS_NS_stdio.h"
-#endif /* ACE_LACKS_STRERROR */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
#if defined (ACE_LACKS_MEMCHR)
@@ -125,6 +114,9 @@ ACE_OS::strerror (int errnum)
errmsg = ret_errortext;
ACE_SECURECRTCALL (strerror_s (ret_errortext, sizeof(ret_errortext), errnum),
char *, 0, errmsg);
+ if (errnum < 0 || errnum >= _sys_nerr)
+ g = EINVAL;
+
return errmsg;
#elif defined (ACE_WIN32)
if (errnum < 0 || errnum >= _sys_nerr)
@@ -147,12 +139,48 @@ 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";
+ return const_cast <char*> ("Unknown Error");
}
#endif /* ACE_LACKS_STRERROR */
+
+char *
+ACE_OS::strsignal (int signum)
+{
+ static char signal_text[128];
+#if defined (ACE_HAS_STRSIGNAL)
+ char *ret_val = 0;
+
+# if defined (ACE_NEEDS_STRSIGNAL_RANGE_CHECK)
+ if (signum < 0 || signum >= ACE_NSIG)
+ ret_val = 0;
+ else
+# endif /* (ACE_NEEDS_STRSIGNAL_RANGE_CHECK */
+ ret_val = ACE_STD_NAMESPACE::strsignal (signum);
+
+ if (ret_val <= reinterpret_cast<char *> (0))
+ {
+ ACE_OS::sprintf (signal_text, "Unknown signal: %d", signum);
+ ret_val = signal_text;
+ }
+ return ret_val;
+#else
+ if (signum < 0 || signum >= ACE_NSIG)
+ {
+ ACE_OS::sprintf (signal_text, "Unknown signal: %d", signum);
+ return signal_text;
+ }
+# if defined (ACE_SYS_SIGLIST)
+ return ACE_SYS_SIGLIST[signum];
+# else
+ ACE_OS::sprintf (signal_text, "Signal: %d", signum);
+ return signal_text;
+# endif /* ACE_SYS_SIGLIST */
+#endif /* ACE_HAS_STRSIGNAL */
+}
+
const char *
ACE_OS::strnchr (const char *s, int c, size_t len)
{
@@ -167,8 +195,12 @@ const ACE_WCHAR_T *
ACE_OS::strnchr (const ACE_WCHAR_T *s, ACE_WCHAR_T c, size_t len)
{
for (size_t i = 0; i < len; ++i)
- if (s[i] == c)
- return s + i;
+ {
+ if (s[i] == c)
+ {
+ return s + i;
+ }
+ }
return 0;
}
@@ -189,8 +221,10 @@ ACE_OS::strnstr (const char *s1, const char *s2, size_t len2)
for (size_t i = 0; i <= len; i++)
{
if (ACE_OS::memcmp (s1 + i, s2, len2) == 0)
- // Found a match! Return the index.
- return s1 + i;
+ {
+ // Found a match! Return the index.
+ return s1 + i;
+ }
}
return 0;
@@ -200,20 +234,22 @@ const ACE_WCHAR_T *
ACE_OS::strnstr (const ACE_WCHAR_T *s1, const ACE_WCHAR_T *s2, size_t len2)
{
// Substring length
- const size_t len1 = ACE_OS::strlen (s1);
+ size_t const len1 = ACE_OS::strlen (s1);
// Check if the substring is longer than the string being searched.
if (len2 > len1)
return 0;
// Go upto <len>
- const size_t len = len1 - len2;
+ size_t const len = len1 - len2;
for (size_t i = 0; i <= len; i++)
{
if (ACE_OS::memcmp (s1 + i, s2, len2 * sizeof (ACE_WCHAR_T)) == 0)
- // Found a match! Return the index.
- return s1 + i;
+ {
+ // Found a match! Return the index.
+ return s1 + i;
+ }
}
return 0;
@@ -293,7 +329,9 @@ ACE_OS::strsncpy (char *dst, const char *src, size_t maxlen)
{
*rdst = '\0';
if (rsrc != 0)
- strncat (rdst, rsrc, --rmaxlen);
+ {
+ ACE_OS::strncat (rdst, rsrc, --rmaxlen);
+ }
}
else
{
@@ -313,11 +351,13 @@ ACE_OS::strsncpy (ACE_WCHAR_T *dst, const ACE_WCHAR_T *src, size_t maxlen)
if (rmaxlen > 0)
{
- if (rdst!=rsrc)
+ if (rdst!= rsrc)
{
*rdst = ACE_TEXT_WIDE ('\0');
if (rsrc != 0)
- strncat (rdst, rsrc, --rmaxlen);
+ {
+ ACE_OS::strncat (rdst, rsrc, --rmaxlen);
+ }
}
else
{
@@ -328,8 +368,7 @@ ACE_OS::strsncpy (ACE_WCHAR_T *dst, const ACE_WCHAR_T *src, size_t maxlen)
return dst;
}
-#if (!defined (ACE_HAS_REENTRANT_FUNCTIONS) || defined (ACE_LACKS_STRTOK_R)) \
- && !defined (ACE_HAS_TR24731_2005_CRT)
+#if defined (ACE_LACKS_STRTOK_R)
char *
ACE_OS::strtok_r_emulation (char *s, const char *tokens, char **lasts)
{
@@ -339,18 +378,18 @@ ACE_OS::strtok_r_emulation (char *s, const char *tokens, char **lasts)
*lasts = s;
if (*s == 0) // We have reached the end
return 0;
- size_t l_org = ACE_OS::strlen (s);
+ size_t const l_org = ACE_OS::strlen (s);
s = ::strtok (s, tokens);
if (s == 0)
return 0;
- const size_t l_sub = ACE_OS::strlen (s);
+ size_t const l_sub = ACE_OS::strlen (s);
if (s + l_sub < *lasts + l_org)
*lasts = s + l_sub + 1;
else
*lasts = s + l_sub;
return s ;
}
-#endif /* !ACE_HAS_REENTRANT_FUNCTIONS */
+#endif /* ACE_LACKS_STRTOK_R */
# if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSTOK)
wchar_t*
diff --git a/ACE/ace/OS_NS_string.h b/ACE/ace/OS_NS_string.h
index 0c5214c06de..06520a276de 100644
--- a/ACE/ace/OS_NS_string.h
+++ b/ACE/ace/OS_NS_string.h
@@ -97,24 +97,24 @@ namespace ACE_OS {
wchar_t *strcat (wchar_t *s, const wchar_t *t);
#endif /* ACE_HAS_WCHAR */
- /// Finds the first occurance of a character in a string (const char
+ /// Finds the first occurrence of a character in a string (const char
/// version).
ACE_NAMESPACE_INLINE_FUNCTION
const char *strchr (const char *s, int c);
#if defined (ACE_HAS_WCHAR)
- /// Finds the first occurance of a character in a string (const wchar_t
+ /// Finds the first occurrence of a character in a string (const wchar_t
/// version).
ACE_NAMESPACE_INLINE_FUNCTION
const wchar_t *strchr (const wchar_t *s, wchar_t c);
#endif /* ACE_HAS_WCHAR */
- /// Finds the first occurance of a character in a string (char version).
+ /// Finds the first occurrence of a character in a string (char version).
ACE_NAMESPACE_INLINE_FUNCTION
char *strchr (char *s, int c);
#if defined (ACE_HAS_WCHAR)
- /// Finds the first occurance of a character in a string (wchar_t version).
+ /// Finds the first occurrence of a character in a string (wchar_t version).
ACE_NAMESPACE_INLINE_FUNCTION
wchar_t *strchr (wchar_t *s, wchar_t c);
#endif /* ACE_HAS_WCHAR */
@@ -183,11 +183,9 @@ namespace ACE_OS {
wchar_t *strecpy (wchar_t *s, const wchar_t *t);
#endif /* ACE_HAS_WCHAR */
- /*
- ** Returns a system error message. If the supplied errnum is out of range,
- ** a string of the form "Unknown error %d" is used to format the string
- ** whose pointer is returned and errno is set to EINVAL.
- */
+ /// Returns a system error message. If the supplied errnum is out of range,
+ /// a string of the form "Unknown error %d" is used to format the string
+ /// whose pointer is returned and errno is set to EINVAL.
extern ACE_Export
char *strerror (int errnum);
@@ -197,6 +195,14 @@ namespace ACE_OS {
char *strerror_emulation (int errnum);
#endif /* ACE_LACKS_STRERROR */
+
+ /// Returns a string describing the signal number passed in the
+ /// argument @a signum. If the supplied signal number is out of range,
+ /// a string of the form "Unknown signal %d" is used to format the string
+ /// whose pointer is returned.
+ extern ACE_Export
+ char *strsignal (int signum);
+
/// Finds the length of a string (char version).
ACE_NAMESPACE_INLINE_FUNCTION
size_t strlen (const char *s);
@@ -213,21 +219,21 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
ACE_WCHAR_T *strncat (ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len);
- /// Finds the first occurance of a character in an array (const char
+ /// Finds the first occurrence of a character in an array (const char
/// version).
extern ACE_Export
const char *strnchr (const char *s, int c, size_t len);
- /// Finds the first occurance of a character in an array (const ACE_WCHAR_T
+ /// Finds the first occurrence of a character in an array (const ACE_WCHAR_T
/// version).
extern ACE_Export
const ACE_WCHAR_T *strnchr (const ACE_WCHAR_T *s, ACE_WCHAR_T c, size_t len);
- /// Finds the first occurance of a character in an array (char version).
+ /// Finds the first occurrence of a character in an array (char version).
ACE_NAMESPACE_INLINE_FUNCTION
char *strnchr (char *s, int c, size_t len);
- /// Finds the first occurance of a character in an array (ACE_WCHAR_T version).
+ /// Finds the first occurrence of a character in an array (ACE_WCHAR_T version).
ACE_NAMESPACE_INLINE_FUNCTION
ACE_WCHAR_T *strnchr (ACE_WCHAR_T *s, ACE_WCHAR_T c, size_t len);
@@ -271,23 +277,23 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
size_t strnlen (const ACE_WCHAR_T *s, size_t maxlen);
- /// Finds the first occurance of a substring in an array (const char
+ /// Finds the first occurrence of a substring in an array (const char
/// version).
extern ACE_Export
const char *strnstr (const char *s, const char *t, size_t len);
- /// Finds the first occurance of a substring in an array (const wchar_t
+ /// Finds the first occurrence of a substring in an array (const wchar_t
/// version).
extern ACE_Export
const ACE_WCHAR_T *strnstr (const ACE_WCHAR_T *s,
const ACE_WCHAR_T *t,
size_t len);
- /// Finds the first occurance of a substring in an array (char version).
+ /// Finds the first occurrence of a substring in an array (char version).
ACE_NAMESPACE_INLINE_FUNCTION
char *strnstr (char *s, const char *t, size_t len);
- /// Finds the first occurance of a substring in an array (wchar_t version).
+ /// Finds the first occurrence of a substring in an array (wchar_t version).
ACE_NAMESPACE_INLINE_FUNCTION
ACE_WCHAR_T *strnstr (ACE_WCHAR_T *s, const ACE_WCHAR_T *t, size_t len);
@@ -311,35 +317,35 @@ namespace ACE_OS {
wchar_t *strpbrk (wchar_t *s1, const wchar_t *s2);
#endif /* ACE_HAS_WCHAR */
- /// Finds the last occurance of a character in a string (const char
+ /// Finds the last occurrence of a character in a string (const char
/// version).
ACE_NAMESPACE_INLINE_FUNCTION
const char *strrchr (const char *s, int c);
#if defined (ACE_HAS_WCHAR)
- /// Finds the last occurance of a character in a string (const wchar_t
+ /// Finds the last occurrence of a character in a string (const wchar_t
/// version).
ACE_NAMESPACE_INLINE_FUNCTION
const wchar_t *strrchr (const wchar_t *s, wchar_t c);
#endif /* ACE_HAS_WCHAR */
- /// Finds the last occurance of a character in a string (char version).
+ /// Finds the last occurrence of a character in a string (char version).
ACE_NAMESPACE_INLINE_FUNCTION
char *strrchr (char *s, int c);
#if defined (ACE_HAS_WCHAR)
- /// Finds the last occurance of a character in a string (wchar_t version).
+ /// Finds the last occurrence of a character in a string (wchar_t version).
ACE_NAMESPACE_INLINE_FUNCTION
wchar_t *strrchr (wchar_t *s, wchar_t c);
#endif /* ACE_HAS_WCHAR */
#if defined (ACE_LACKS_STRRCHR)
- /// Emulated strrchr (char version) - Finds the last occurance of a
+ /// Emulated strrchr (char version) - Finds the last occurrence of a
/// character in a string.
extern ACE_Export
char *strrchr_emulation (char *s, int c);
- /// Emulated strrchr (const char version) - Finds the last occurance of a
+ /// Emulated strrchr (const char version) - Finds the last occurrence of a
/// character in a string.
extern ACE_Export
const char *strrchr_emulation (const char *s, int c);
@@ -399,24 +405,24 @@ namespace ACE_OS {
size_t strspn (const wchar_t *s1, const wchar_t *s2);
#endif /* ACE_HAS_WCHAR */
- /// Finds the first occurance of a substring in a string (const char
+ /// Finds the first occurrence of a substring in a string (const char
/// version).
ACE_NAMESPACE_INLINE_FUNCTION
const char *strstr (const char *s, const char *t);
#if defined (ACE_HAS_WCHAR)
- /// Finds the first occurance of a substring in a string (const wchar_t
+ /// Finds the first occurrence of a substring in a string (const wchar_t
/// version).
ACE_NAMESPACE_INLINE_FUNCTION
const wchar_t *strstr (const wchar_t *s, const wchar_t *t);
#endif /* ACE_HAS_WCHAR */
- /// Finds the first occurance of a substring in a string (char version).
+ /// Finds the first occurrence of a substring in a string (char version).
ACE_NAMESPACE_INLINE_FUNCTION
char *strstr (char *s, const char *t);
#if defined (ACE_HAS_WCHAR)
- /// Finds the first occurance of a substring in a string (wchar_t version).
+ /// Finds the first occurrence of a substring in a string (wchar_t version).
ACE_NAMESPACE_INLINE_FUNCTION
wchar_t *strstr (wchar_t *s, const wchar_t *t);
#endif /* ACE_HAS_WCHAR */
@@ -443,11 +449,11 @@ namespace ACE_OS {
wchar_t *strtok_r (ACE_WCHAR_T *s, const ACE_WCHAR_T *tokens, ACE_WCHAR_T **lasts);
#endif // ACE_HAS_WCHAR
-#if !defined (ACE_HAS_REENTRANT_FUNCTIONS) || defined (ACE_LACKS_STRTOK_R)
+#if defined (ACE_LACKS_STRTOK_R)
/// Emulated strtok_r.
extern ACE_Export
char *strtok_r_emulation (char *s, const char *tokens, char **lasts);
-#endif /* !ACE_HAS_REENTRANT_FUNCTIONS */
+#endif /* ACE_LACKS_STRTOK_R */
# if defined (ACE_HAS_WCHAR) && defined(ACE_LACKS_WCSTOK)
/// Emulated strtok_r (wchar_t version).
diff --git a/ACE/ace/OS_NS_string.inl b/ACE/ace/OS_NS_string.inl
index 4c57bfc0da3..734e90e1aa2 100644
--- a/ACE/ace/OS_NS_string.inl
+++ b/ACE/ace/OS_NS_string.inl
@@ -259,12 +259,7 @@ ACE_OS::strlen (const ACE_WCHAR_T *s)
ACE_INLINE char *
ACE_OS::strncat (char *s, const char *t, size_t len)
{
-#if 0 /* defined (ACE_HAS_TR24731_2005_CRT) */
- strncat_s (s, len + 1, t, _TRUNCATE);
- return s;
-#else
return ::strncat (s, t, len);
-#endif /* ACE_HAS_TR24731_2005_CRT */
}
ACE_INLINE ACE_WCHAR_T *
@@ -531,11 +526,11 @@ ACE_OS::strtok_r (char *s, const char *tokens, char **lasts)
{
#if defined (ACE_HAS_TR24731_2005_CRT)
return strtok_s (s, tokens, lasts);
-#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (ACE_LACKS_STRTOK_R)
- return ::strtok_r (s, tokens, lasts);
-#else
+#elif defined (ACE_LACKS_STRTOK_R)
return ACE_OS::strtok_r_emulation (s, tokens, lasts);
-#endif /* (ACE_HAS_REENTRANT_FUNCTIONS) */
+#else
+ return ::strtok_r (s, tokens, lasts);
+#endif /* ACE_HAS_TR24731_2005_CRT */
}
#if defined (ACE_HAS_WCHAR)
diff --git a/ACE/ace/OS_NS_strings.cpp b/ACE/ace/OS_NS_strings.cpp
index e7f4c80c462..fc5fc53282b 100644
--- a/ACE/ace/OS_NS_strings.cpp
+++ b/ACE/ace/OS_NS_strings.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_NS_strings.h"
-ACE_RCSID(ace, OS_NS_strings, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_strings.inl"
diff --git a/ACE/ace/OS_NS_stropts.cpp b/ACE/ace/OS_NS_stropts.cpp
index 4bde7d4ae9c..c7fce0de619 100644
--- a/ACE/ace/OS_NS_stropts.cpp
+++ b/ACE/ace/OS_NS_stropts.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_NS_stropts.h"
-ACE_RCSID(ace, OS_NS_stropts, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_stropts.inl"
@@ -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.cpp b/ACE/ace/OS_NS_sys_mman.cpp
index 245f670fd27..e51a4ae6a5f 100644
--- a/ACE/ace/OS_NS_sys_mman.cpp
+++ b/ACE/ace/OS_NS_sys_mman.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_mman.h"
-ACE_RCSID(ace, OS_NS_sys_mman, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_mman.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_sys_mman.inl b/ACE/ace/OS_NS_sys_mman.inl
index 03306ad018a..e0ce370ce8e 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,16 +97,23 @@ 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);
+# ifdef ACE_WIN64
+ const DWORD len_low = static_cast<DWORD>(len),
+ len_high = static_cast<DWORD>(len >> 32);
+# else
+ const DWORD len_low = len, len_high = 0;
+# endif
+
*file_mapping = ACE_TEXT_CreateFileMapping (file_handle,
attr,
prot,
- 0,
- (file_handle == ACE_INVALID_HANDLE) ? len : 0,
+ (file_handle == ACE_INVALID_HANDLE) ? len_high : 0,
+ (file_handle == ACE_INVALID_HANDLE) ? len_low : 0,
file_mapping_name);
}
@@ -116,20 +127,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 +250,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 +282,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_msg.cpp b/ACE/ace/OS_NS_sys_msg.cpp
index 77d3caa7b17..ba4f7a05321 100644
--- a/ACE/ace/OS_NS_sys_msg.cpp
+++ b/ACE/ace/OS_NS_sys_msg.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_msg.h"
-ACE_RCSID(ace, OS_NS_sys_msg, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_msg.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_sys_resource.cpp b/ACE/ace/OS_NS_sys_resource.cpp
index 7f50303e8e5..d0b288bc6a5 100644
--- a/ACE/ace/OS_NS_sys_resource.cpp
+++ b/ACE/ace/OS_NS_sys_resource.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_resource.h"
-ACE_RCSID(ace, OS_NS_sys_resource, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_resource.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_sys_select.cpp b/ACE/ace/OS_NS_sys_select.cpp
index fea3f79ee63..fa0edb9ff62 100644
--- a/ACE/ace/OS_NS_sys_select.cpp
+++ b/ACE/ace/OS_NS_sys_select.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_select.h"
-ACE_RCSID(ace, OS_NS_sys_select, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_select.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_sys_shm.cpp b/ACE/ace/OS_NS_sys_shm.cpp
index 82ac65e1b54..db85a33b459 100644
--- a/ACE/ace/OS_NS_sys_shm.cpp
+++ b/ACE/ace/OS_NS_sys_shm.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_NS_sys_shm.h"
-ACE_RCSID(ace, OS_NS_sys_shm, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_shm.inl"
diff --git a/ACE/ace/OS_NS_sys_shm.h b/ACE/ace/OS_NS_sys_shm.h
index 0d2a5a49d32..42f9f37be81 100644
--- a/ACE/ace/OS_NS_sys_shm.h
+++ b/ACE/ace/OS_NS_sys_shm.h
@@ -37,7 +37,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
{
-
//@{ @name A set of wrappers for System V shared memory.
ACE_NAMESPACE_INLINE_FUNCTION
void *shmat (int int_id,
@@ -56,8 +55,7 @@ namespace ACE_OS
int shmget (key_t key,
size_t size,
int flags);
- ///@}
-
+ //@}
} /* namespace ACE_OS */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_sys_socket.cpp b/ACE/ace/OS_NS_sys_socket.cpp
index bbf468f4e63..014b8b1d6cf 100644
--- a/ACE/ace/OS_NS_sys_socket.cpp
+++ b/ACE/ace/OS_NS_sys_socket.cpp
@@ -2,19 +2,20 @@
#include "ace/OS_NS_sys_socket.h"
-ACE_RCSID(ace, OS_NS_sys_socket, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_socket.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
+#include "ace/Containers_T.h"
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
#if defined (ACE_WIN32)
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 +96,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)
@@ -158,4 +158,123 @@ ACE_OS::socket_fini (void)
return 0;
}
+ssize_t
+ACE_OS::sendv_partial_i (ACE_HANDLE handle,
+ const iovec *buffers,
+ int n)
+{
+ // the divide and conquer logic should remain consistent
+ // with send_partial_i
+#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
+ DWORD bytes_sent = 0;
+ int result = 1;
+ int simulated_n = n;
+ ACE_UINT64 buffer_size = 0;
+ ACE_Array<iovec> iovec_array(simulated_n);
+ int i = 0;
+ for ( ; i < simulated_n; ++i)
+ {
+ iovec_array[i].iov_base = buffers[i].iov_base;
+ iovec_array[i].iov_len = buffers[i].iov_len;
+ buffer_size += buffers[i].iov_len;
+ }
+ // keep dividing the current buffer_size in half and then
+ // attempt to send the modified iovec buffer until some
+ // data is sent, or we get an errno that is not ENOBUFS
+ while (true)
+ {
+ ACE_UINT64 remove_size = buffer_size / 2;
+ buffer_size -= remove_size;
+ for (i = simulated_n - 1; (i >= 0) && (remove_size > 0); --i)
+ {
+ // if the buffer division splits an iovec, we need
+ // to set its iov_len properly
+ if (iovec_array[i].iov_len > remove_size)
+ {
+ iovec_array[i].iov_len -= static_cast<u_long>(remove_size);
+ break;
+ }
+ remove_size -= iovec_array[i].iov_len;
+ }
+
+ simulated_n = i + 1;
+
+ result = ::WSASend ((SOCKET) handle,
+ (WSABUF *) &(iovec_array[0]),
+ simulated_n,
+ &bytes_sent,
+ 0,
+ 0,
+ 0);
+ if (result != SOCKET_ERROR)
+ break;
+
+ ACE_OS::set_errno_to_wsa_last_error ();
+ // if ENOBUFS is received, we apply a divide and
+ // conquer strategy, but if bytes are sent we
+ // cannot guarantee this is the same behavior
+ if ((errno != ENOBUFS) ||
+ (bytes_sent != 0))
+ {
+ return -1;
+ }
+ }
+
+ return (ssize_t) bytes_sent;
+# else
+ ACE_UNUSED_ARG (handle);
+ ACE_UNUSED_ARG (buffers);
+ ACE_UNUSED_ARG (n);
+
+ return -1;
+# endif /* ACE_HAS_WINSOCK2 */
+}
+
+ssize_t
+ACE_OS::send_partial_i (ACE_HANDLE handle,
+ const char *buf,
+ size_t len,
+ int flags)
+{
+ // the divide and conquer logic should remain consistent
+ // with sendv_partial_i
+#if !defined (ACE_LACKS_SEND) && defined (ACE_WIN32)
+ DWORD bytes_sent = 0;
+ ssize_t result = 1;
+ // keep dividing the current buffer_size in half and then
+ // attempt to send the modified buffer until some data is
+ // sent, or we get an errno that is not ENOBUFS
+ while (true)
+ {
+ len -= len / 2;
+
+ result = (ssize_t) ::send ((SOCKET) handle,
+ buf,
+ static_cast<int> (len),
+ flags);
+ if (result != SOCKET_ERROR)
+ break;
+
+ ACE_OS::set_errno_to_wsa_last_error ();
+ // if ENOBUFS is received, we apply a divide and
+ // conquer strategy, but if bytes are sent we
+ // cannot guarantee this is the same behavior
+ if ((errno != ENOBUFS) ||
+ (bytes_sent != 0))
+ {
+ return -1;
+ }
+ }
+
+ return result;
+# else
+ ACE_UNUSED_ARG (handle);
+ ACE_UNUSED_ARG (buf);
+ ACE_UNUSED_ARG (len);
+ ACE_UNUSED_ARG (flags);
+
+ return -1;
+# endif /* ACE_LACKS_SEND && ACE_WIN32 */
+}
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_sys_socket.h b/ACE/ace/OS_NS_sys_socket.h
index e1fcaa3c7c7..fef932cf81f 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,
@@ -198,6 +192,14 @@ namespace ACE_OS
size_t len,
int flags = 0);
+ /// internal function used by send when an ENOBUFS condition
+ /// requires a buffer to do a partial send
+ extern ACE_Export
+ ssize_t send_partial_i (ACE_HANDLE handle,
+ const char *buf,
+ size_t len,
+ int flags);
+
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t sendmsg (ACE_HANDLE handle,
const struct msghdr *msg,
@@ -227,6 +229,12 @@ namespace ACE_OS
const iovec *iov,
int iovcnt);
+ /// internal function used by sendv when an ENOBUFS condition
+ /// requires a buffer to do a partial send
+ extern ACE_Export
+ ssize_t sendv_partial_i (ACE_HANDLE handle,
+ const iovec *iov,
+ int iovcnt);
/// Manipulate the options associated with a socket.
ACE_NAMESPACE_INLINE_FUNCTION
diff --git a/ACE/ace/OS_NS_sys_socket.inl b/ACE/ace/OS_NS_sys_socket.inl
index 5fd3fb10447..7d82108e1f0 100644
--- a/ACE/ace/OS_NS_sys_socket.inl
+++ b/ACE/ace/OS_NS_sys_socket.inl
@@ -104,7 +104,7 @@ ACE_OS::bind (ACE_HANDLE handle, struct sockaddr *addr, int addrlen)
ACE_UNUSED_ARG (addrlen);
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640)
- // VxWorks clears the sin_port member after a succesfull bind when
+ // VxWorks clears the sin_port member after a successful bind when
// sin_addr != INADDR_ANY, so after the bind we do retrieve the
// original address so that user code can safely check the addr
// after the bind. See bugzilla 3107 for more details
@@ -572,10 +572,21 @@ ACE_OS::send (ACE_HANDLE handle, const char *buf, size_t len, int flags)
ACE_UNUSED_ARG (flags);
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32)
- ACE_SOCKCALL_RETURN (::send ((ACE_SOCKET) handle,
- buf,
- static_cast<int> (len),
- flags), ssize_t, -1);
+ ssize_t result = ::send ((ACE_SOCKET) handle,
+ buf,
+ static_cast<int> (len),
+ flags);
+ if (result == -1)
+ {
+ ACE_OS::set_errno_to_wsa_last_error();
+ if (errno != ENOBUFS)
+ return -1;
+
+ ACE_SOCKCALL_RETURN(send_partial_i(handle, buf, len, flags), ssize_t, -1);
+ }
+ else
+ return result;
+
#else
ssize_t const ace_result_ = ::send ((ACE_SOCKET) handle, buf, len, flags);
@@ -761,7 +772,18 @@ ACE_OS::sendv (ACE_HANDLE handle,
if (result == SOCKET_ERROR)
{
ACE_OS::set_errno_to_wsa_last_error ();
- return -1;
+ if ((errno != ENOBUFS) ||
+ (bytes_sent != 0))
+ {
+ return -1;
+ }
+ result = sendv_partial_i(handle, buffers, n);
+ if (result == SOCKET_ERROR)
+ {
+ ACE_OS::set_errno_to_wsa_last_error ();
+ return -1;
+ }
+ bytes_sent = static_cast<DWORD>(result);
}
# else
for (int i = 0; i < n; ++i)
@@ -875,7 +897,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_stat.cpp b/ACE/ace/OS_NS_sys_stat.cpp
index b5921cb86c8..952ac724b3c 100644
--- a/ACE/ace/OS_NS_sys_stat.cpp
+++ b/ACE/ace/OS_NS_sys_stat.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_NS_sys_stat.h"
-ACE_RCSID(ace, OS_NS_sys_stat, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_stat.inl"
diff --git a/ACE/ace/OS_NS_sys_time.cpp b/ACE/ace/OS_NS_sys_time.cpp
index e04815edc36..9da68b4853d 100644
--- a/ACE/ace/OS_NS_sys_time.cpp
+++ b/ACE/ace/OS_NS_sys_time.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_NS_sys_time.h"
-ACE_RCSID(ace, OS_NS_sys_time, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_time.inl"
diff --git a/ACE/ace/OS_NS_sys_time.h b/ACE/ace/OS_NS_sys_time.h
index 898c57f8155..54680c8e416 100644
--- a/ACE/ace/OS_NS_sys_time.h
+++ b/ACE/ace/OS_NS_sys_time.h
@@ -37,22 +37,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
{
-#if defined (ACE_WIN32) && defined (_WIN32_WCE)
-// Something is a bit brain-damaged here and I'm not sure what... this code
-// compiled before the OS reorg for ACE 5.4. Since then it hasn't - eVC
-// complains that the operators that return ACE_Time_Value are C-linkage
-// functions that can't return a C++ class. The only way I've found to
-// defeat this is to wrap the whole class in extern "C++".
-// - Steve Huston, 23-Aug-2004
-extern "C++" {
-#endif
-
ACE_NAMESPACE_INLINE_FUNCTION
ACE_Time_Value gettimeofday (void);
-
-#if defined (ACE_WIN32) && defined (_WIN32_WCE)
-}
-#endif
} /* namespace ACE_OS */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_sys_time.inl b/ACE/ace/OS_NS_sys_time.inl
index 604df97926d..0067c079b39 100644
--- a/ACE/ace/OS_NS_sys_time.inl
+++ b/ACE/ace/OS_NS_sys_time.inl
@@ -5,22 +5,12 @@
#include "ace/os_include/sys/os_time.h"
#include "ace/os_include/os_errno.h"
-#if defined (ACE_VXWORKS)
+#if defined (ACE_VXWORKS) || defined (ACE_HAS_CLOCK_GETTIME_REALTIME)
# include "ace/OS_NS_time.h"
-#endif /* ACE_VXWORKS */
+#endif /* ACE_VXWORKS || ACE_HAS_CLOCK_REALTIME */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#if defined (ACE_WIN32) && defined (_WIN32_WCE)
-// Something is a bit brain-damaged here and I'm not sure what... this code
-// compiled before the OS reorg for ACE 5.4. Since then it hasn't - eVC
-// complains that the operators that return ACE_Time_Value are C-linkage
-// functions that can't return a C++ class. The only way I've found to
-// defeat this is to wrap the whole class in extern "C++".
-// - Steve Huston, 23-Aug-2004
-extern "C++" {
-#endif
-
ACE_INLINE ACE_Time_Value
ACE_OS::gettimeofday (void)
{
@@ -31,7 +21,7 @@ ACE_OS::gettimeofday (void)
int result = 0;
#endif // !defined (ACE_WIN32)
-#if (0)
+#if defined (ACE_HAS_CLOCK_GETTIME_REALTIME)
struct timespec ts;
ACE_OSCALL (ACE_OS::clock_gettime (CLOCK_REALTIME, &ts), int, -1, result);
@@ -48,13 +38,6 @@ ACE_OS::gettimeofday (void)
FILETIME tfile;
::GetSystemTimeAsFileTime (&tfile);
return ACE_Time_Value (tfile);
-#if 0
- // From Todd Montgomery...
- struct _timeb tb;
- ::_ftime (&tb);
- tv.tv_sec = tb.time;
- tv.tv_usec = 1000 * tb.millitm;
-#endif /* 0 */
#elif defined (ACE_HAS_AIX_HI_RES_TIMER)
timebasestruct_t tb;
@@ -89,8 +72,4 @@ ACE_OS::gettimeofday (void)
#endif // !defined (ACE_WIN32)
}
-#if defined (ACE_WIN32) && defined (_WIN32_WCE)
-}
-#endif
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_sys_uio.cpp b/ACE/ace/OS_NS_sys_uio.cpp
index 5608d994c1d..b56b88b7ab5 100644
--- a/ACE/ace/OS_NS_sys_uio.cpp
+++ b/ACE/ace/OS_NS_sys_uio.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_NS_sys_uio.h"
-ACE_RCSID(ace, OS_NS_sys_uio, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_uio.inl"
diff --git a/ACE/ace/OS_NS_sys_utsname.cpp b/ACE/ace/OS_NS_sys_utsname.cpp
index 77fbf50faf8..a00103fa0cd 100644
--- a/ACE/ace/OS_NS_sys_utsname.cpp
+++ b/ACE/ace/OS_NS_sys_utsname.cpp
@@ -1,9 +1,6 @@
// $Id$
#include "ace/OS_NS_sys_utsname.h"
-
-ACE_RCSID(ace, OS_NS_sys_utsname, "$Id$")
-
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
@@ -81,11 +78,7 @@ ACE_OS::uname (ACE_utsname *name)
char processor[bufsize] = "Unknown";
char subtype[bufsize] = "Unknown";
-# if defined (ghs)
- WORD arch = sinfo.u.s.wProcessorArchitecture;
-# else
WORD arch = sinfo.wProcessorArchitecture;
-# endif
switch (arch)
{
@@ -101,10 +94,17 @@ ACE_OS::uname (ACE_utsname *name)
ACE_OS::strcpy (subtype, "Pentium Pro");
else if (sinfo.wProcessorLevel == 7) // I'm guessing here
ACE_OS::strcpy (subtype, "Pentium II");
+ else
+ ACE_OS::sprintf (subtype, "%d", sinfo.wProcessorLevel);
break;
case PROCESSOR_ARCHITECTURE_MIPS:
ACE_OS::strcpy (processor, "MIPS");
- ACE_OS::strcpy (subtype, "R4000");
+ if (sinfo.wProcessorLevel == 3)
+ ACE_OS::strcpy (subtype, "R3000");
+ else if (sinfo.wProcessorLevel == 4)
+ ACE_OS::strcpy (subtype, "R4000");
+ else
+ ACE_OS::sprintf (subtype, "%d", sinfo.wProcessorLevel);
break;
case PROCESSOR_ARCHITECTURE_ALPHA:
ACE_OS::strcpy (processor, "Alpha");
@@ -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_sys_wait.cpp b/ACE/ace/OS_NS_sys_wait.cpp
index 2eacfc313ca..6085dd9a1cc 100644
--- a/ACE/ace/OS_NS_sys_wait.cpp
+++ b/ACE/ace/OS_NS_sys_wait.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_sys_wait.h"
-ACE_RCSID(ace, OS_NS_sys_wait, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_wait.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_sys_wait.inl b/ACE/ace/OS_NS_sys_wait.inl
index 2503d509828..969a9b7a5fc 100644
--- a/ACE/ace/OS_NS_sys_wait.inl
+++ b/ACE/ace/OS_NS_sys_wait.inl
@@ -57,15 +57,13 @@ ACE_OS::waitpid (pid_t pid,
// Don't try to get the process exit status if wait failed so we can
// keep the original error code intact.
- switch (::WaitForSingleObject (phandle,
- blocking_period))
+ switch (::WaitForSingleObject (phandle, blocking_period))
{
case WAIT_OBJECT_0:
if (status != 0)
// The error status of <GetExitCodeProcess> is nonetheless
// not tested because we don't know how to return the value.
- ::GetExitCodeProcess (phandle,
- status);
+ ::GetExitCodeProcess (phandle, status);
break;
case WAIT_TIMEOUT:
errno = ETIME;
diff --git a/ACE/ace/OS_NS_time.cpp b/ACE/ace/OS_NS_time.cpp
index 19be27b7579..db48047f50d 100644
--- a/ACE/ace/OS_NS_time.cpp
+++ b/ACE/ace/OS_NS_time.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_time.h"
-ACE_RCSID(ace, OS_NS_time, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_time.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -225,28 +223,9 @@ struct tm *
ACE_OS::localtime_r (const time_t *t, struct tm *res)
{
ACE_OS_TRACE ("ACE_OS::localtime_r");
-#if defined (ACE_HAS_REENTRANT_FUNCTIONS)
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL_RETURN (::_Plocaltime_r (t, res), struct tm *, 0);
-# else
- ACE_OSCALL_RETURN (::localtime_r (t, res), struct tm *, 0);
-# endif /* DIGITAL_UNIX */
-#elif defined (ACE_HAS_TR24731_2005_CRT)
+#if defined (ACE_HAS_TR24731_2005_CRT)
ACE_SECURECRTCALL (localtime_s (res, t), struct tm *, 0, res);
return res;
-#elif !defined (ACE_HAS_WINCE)
- ACE_OS_GUARD
-
- ACE_UNUSED_ARG (res);
- struct tm * res_ptr = 0;
- ACE_OSCALL (::localtime (t), struct tm *, 0, res_ptr);
- if (res_ptr == 0)
- return 0;
- else
- {
- *res = *res_ptr;
- return res;
- }
#elif defined (ACE_HAS_WINCE)
// This is really stupid, converting FILETIME to timeval back and
// forth. It assumes FILETIME and DWORDLONG are the same structure
@@ -296,13 +275,22 @@ ACE_OS::localtime_r (const time_t *t, struct tm *res)
res->tm_year = res->tm_year - 1900;
return res;
-#else
- // @@ Same as ACE_OS::localtime (), you need to implement it
- // yourself.
- ACE_UNUSED_ARG (t);
+#elif defined (ACE_LACKS_LOCALTIME_R)
+ ACE_OS_GUARD
+
ACE_UNUSED_ARG (res);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_REENTRANT_FUNCTIONS */
+ struct tm * res_ptr = 0;
+ ACE_OSCALL (::localtime (t), struct tm *, 0, res_ptr);
+ if (res_ptr == 0)
+ return 0;
+ else
+ {
+ *res = *res_ptr;
+ return res;
+ }
+#else
+ ACE_OSCALL_RETURN (::localtime_r (t, res), struct tm *, 0);
+#endif /* ACE_HAS_TR24731_2005_CRT */
}
time_t
@@ -319,6 +307,7 @@ ACE_OS::mktime (struct tm *t)
t_sys.wMonth = t->tm_mon + 1; // SYSTEMTIME is 1-indexed, tm is 0-indexed
t_sys.wYear = t->tm_year + 1900; // SYSTEMTIME is real; tm is since 1900
t_sys.wDayOfWeek = t->tm_wday; // Ignored in below function call.
+ t_sys.wMilliseconds = 0;
if (SystemTimeToFileTime (&t_sys, &t_file) == 0)
return -1;
ACE_Time_Value tv (t_file);
@@ -332,28 +321,6 @@ ACE_OS::mktime (struct tm *t)
# endif /* ACE_HAS_WINCE */
}
-#if defined (ACE_HAS_POWERPC_TIMER) && defined (ghs)
-void
-ACE_OS::readPPCTimeBase (u_long &most, u_long &least)
-{
- ACE_OS_TRACE ("ACE_OS::readPPCTimeBase");
-
- // This function can't be inline because it depends on the arguments
- // being in particular registers (r3 and r4), in conformance with the
- // EABI standard. It would be nice if we knew how to put the variable
- // names directly into the assembler instructions . . .
- asm("aclock:");
- asm("mftb r5,TBU");
- asm("mftb r6,TBL");
- asm("mftb r7,TBU");
- asm("cmpw r5,r7");
- asm("bne aclock");
-
- asm("stw r5, 0(r3)");
- asm("stw r6, 0(r4)");
-}
-#endif /* ACE_HAS_POWERPC_TIMER && ghs */
-
#if defined (ACE_LACKS_STRPTIME)
char *
ACE_OS::strptime_emulation (const char *buf, const char *format, struct tm *tm)
diff --git a/ACE/ace/OS_NS_time.h b/ACE/ace/OS_NS_time.h
index ca5d21ed736..f50bb23a61f 100644
--- a/ACE/ace/OS_NS_time.h
+++ b/ACE/ace/OS_NS_time.h
@@ -36,11 +36,6 @@
#endif
#define ACE_EXPORT_MACRO ACE_Export
-# if defined (ACE_HAS_BROKEN_R_ROUTINES)
-# undef ctime_r
-# undef asctime_r
-# endif /* ACE_HAS_BROKEN_R_ROUTINES */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Type-safe, and unsigned.
@@ -196,10 +191,6 @@ namespace ACE_OS
#endif
ACE_TCHAR *ctime_r (const time_t *clock, ACE_TCHAR *buf, int buflen);
-# if defined (difftime)
-# undef difftime
-# endif /* difftime */
-
#if !defined (ACE_LACKS_DIFFTIME)
ACE_NAMESPACE_INLINE_FUNCTION
#else
@@ -233,17 +224,12 @@ namespace ACE_OS
int nanosleep (const struct timespec *requested,
struct timespec *remaining = 0);
-# if defined (ACE_HAS_POWERPC_TIMER) && defined (ghs)
- extern ACE_Export
- void readPPCTimeBase (u_long &most,
- u_long &least);
-# endif /* ACE_HAS_POWERPC_TIMER && ghs */
-
ACE_NAMESPACE_INLINE_FUNCTION
size_t strftime (char *s,
size_t maxsize,
const char *format,
- const struct tm *timeptr);
+ const struct tm *timeptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (strftime, 3, 0);
/**
* strptime wrapper. Note that the struct @a tm will always be set to
@@ -268,10 +254,6 @@ namespace ACE_OS
ACE_NAMESPACE_INLINE_FUNCTION
time_t time (time_t *tloc = 0);
-# if defined (timezone)
-# undef timezone
-# endif /* timezone */
-
ACE_NAMESPACE_INLINE_FUNCTION
long timezone (void);
diff --git a/ACE/ace/OS_NS_time.inl b/ACE/ace/OS_NS_time.inl
index 9c7def18b5d..d3cde838580 100644
--- a/ACE/ace/OS_NS_time.inl
+++ b/ACE/ace/OS_NS_time.inl
@@ -28,12 +28,8 @@ ACE_OS::asctime_r (const struct tm *t, char *buf, int buflen)
ACE_OS_TRACE ("ACE_OS::asctime_r");
#if defined (ACE_HAS_REENTRANT_FUNCTIONS)
# if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R)
- char *result;
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL (::_Pasctime_r (t, buf), char *, 0, result);
-# else
+ char *result = 0;
ACE_OSCALL (::asctime_r (t, buf), char *, 0, result);
-# endif /* DIGITAL_UNIX */
ACE_OS::strsncpy (buf, result, buflen);
return buf;
# else
@@ -97,9 +93,7 @@ ACE_INLINE ACE_TCHAR *
ACE_OS::ctime (const time_t *t)
{
ACE_OS_TRACE ("ACE_OS::ctime");
-#if defined (ACE_HAS_BROKEN_CTIME)
- ACE_OSCALL_RETURN (::asctime (::localtime (t)), char *, 0);
-#elif defined (ACE_HAS_WINCE)
+#if defined (ACE_HAS_WINCE)
static ACE_TCHAR buf [ctime_buf_size];
return ACE_OS::ctime_r (t,
buf,
@@ -124,7 +118,7 @@ ACE_OS::ctime (const time_t *t)
# else
ACE_OSCALL_RETURN (::ctime (t), char *, 0);
# endif /* ACE_USES_WCHAR */
-# endif /* ACE_HAS_BROKEN_CTIME */
+# endif /* ACE_HAS_WINCE */
}
#if !defined (ACE_HAS_WINCE) /* CE version in OS.cpp */
@@ -149,11 +143,7 @@ ACE_OS::ctime_r (const time_t *t, ACE_TCHAR *buf, int buflen)
return 0;
}
# if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R)
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL (::_Pctime_r (t, bufp), ACE_TCHAR *, 0, bufp);
-# else /* DIGITAL_UNIX */
ACE_OSCALL (::ctime_r (t, bufp), char *, 0, bufp);
-# endif /* DIGITAL_UNIX */
# else /* ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R */
# if defined (ACE_HAS_SIZET_PTR_ASCTIME_R_AND_CTIME_R)
@@ -217,10 +207,6 @@ ACE_OS::difftime (time_t t1, time_t t0)
}
#endif /* ! ACE_LACKS_DIFFTIME */
-#if defined (ghs) && defined (ACE_HAS_PENTIUM) && !defined (ACE_WIN32)
- extern "C" ACE_hrtime_t ACE_GETHRTIME_NAME ();
-#endif /* ghs && ACE_HAS_PENTIUM */
-
ACE_INLINE ACE_hrtime_t
ACE_OS::gethrtime (const ACE_HRTimer_Op op)
{
@@ -371,11 +357,7 @@ ACE_OS::gmtime_r (const time_t *t, struct tm *res)
{
ACE_OS_TRACE ("ACE_OS::gmtime_r");
#if defined (ACE_HAS_REENTRANT_FUNCTIONS)
-# if defined (DIGITAL_UNIX)
- ACE_OSCALL_RETURN (::_Pgmtime_r (t, res), struct tm *, 0);
-# else
ACE_OSCALL_RETURN (::gmtime_r (t, res), struct tm *, 0);
-# endif /* DIGITAL_UNIX */
#elif defined (ACE_HAS_TR24731_2005_CRT)
struct tm *tm_p = res;
ACE_SECURECRTCALL (gmtime_s (res, t), struct tm *, 0, tm_p);
diff --git a/ACE/ace/OS_NS_unistd.cpp b/ACE/ace/OS_NS_unistd.cpp
index cb1627f167f..355d3fb7b80 100644
--- a/ACE/ace/OS_NS_unistd.cpp
+++ b/ACE/ace/OS_NS_unistd.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_unistd.h"
-ACE_RCSID (ace, OS_NS_unistd, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_unistd.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -19,21 +17,10 @@ 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_NEEDS_FTRUNCATE)
-extern "C" int
-ftruncate (ACE_HANDLE handle, long len)
-{
- struct flock fl;
- fl.l_whence = 0;
- fl.l_len = 0;
- fl.l_start = len;
- fl.l_type = F_WRLCK;
-
- return ACE_OS::fcntl (handle, F_FREESP, reinterpret_cast <long> (&fl));
-}
-#endif /* ACE_NEEDS_FTRUNCATE */
-
-/*****************************************************************************/
+#if defined ACE_HAS_VXCPULIB
+# include "vxCpuLib.h"
+# include "cpuset.h"
+#endif /* ACE_HAS_VXCPULIB */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -64,6 +51,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;
@@ -127,7 +118,8 @@ ACE_OS::argv_to_string (int argc,
++quotes;
}
argv_p[i] =
- (ACE_TCHAR *) ACE_OS::malloc (ACE_OS::strlen (temp) * sizeof (ACE_TCHAR) + quotes + 3);
+ (ACE_TCHAR *) ACE_OS::malloc ((ACE_OS::strlen (temp) + quotes + 3)
+ * sizeof (ACE_TCHAR));
if (argv_p[i] == 0)
{
ACE_OS::free (argv_p);
@@ -378,6 +370,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 +412,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 +749,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.h b/ACE/ace/OS_NS_unistd.h
index dc718d3a40a..e017c97f278 100644
--- a/ACE/ace/OS_NS_unistd.h
+++ b/ACE/ace/OS_NS_unistd.h
@@ -31,18 +31,11 @@
#include "ace/os_include/os_unistd.h"
#include "ace/os_include/os_stdio.h"
-
#if defined (ACE_EXPORT_MACRO)
# undef ACE_EXPORT_MACRO
#endif
#define ACE_EXPORT_MACRO ACE_Export
-// This should go in os_unistd.h, but since we don't yet implement any code
-// at that level, we put it here. It used to be in OS.i.
-#if defined (ACE_NEEDS_FTRUNCATE)
-extern "C" ACE_Export int ftruncate (ACE_HANDLE handle, long len);
-#endif /* ACE_NEEDS_FTRUNCATE */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
@@ -189,12 +182,12 @@ namespace ACE_OS
// should call gethostname()
ACE_NAMESPACE_INLINE_FUNCTION
- int hostname (char *name,
+ int hostname (char name[],
size_t maxnamelen);
#if defined (ACE_HAS_WCHAR)
ACE_NAMESPACE_INLINE_FUNCTION
- int hostname (wchar_t *name,
+ int hostname (wchar_t name[],
size_t maxnamelen);
#endif /* ACE_HAS_WCHAR */
diff --git a/ACE/ace/OS_NS_unistd.inl b/ACE/ace/OS_NS_unistd.inl
index 9682c3e7cd6..79774cd86ac 100644
--- a/ACE/ace/OS_NS_unistd.inl
+++ b/ACE/ace/OS_NS_unistd.inl
@@ -23,7 +23,7 @@
# include "ace/os_include/os_unistd.h"
#endif /* ACE_HAS_ACCESS_EMULATION */
-#if defined (ACE_VXWORKS) && (((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x670)) || defined (ACE_HAS_VXWORKS551_MEDUSA))
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x680)
# if defined (__RTP__)
# include "ace/os_include/os_strings.h"
# else
@@ -274,7 +274,7 @@ ACE_OS::execv (const char *path,
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
+# if defined (__BORLANDC__)
return ::execv (path, argv);
# elif defined (__MINGW32__)
return ::_execv (path, (char *const *) argv);
@@ -304,7 +304,7 @@ ACE_OS::execve (const char *path,
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
+# if defined (__BORLANDC__)
return ::execve (path, argv, envp);
# elif defined (__MINGW32__)
return ::_execve (path, (char *const *) argv, (char *const *) envp);
@@ -332,7 +332,7 @@ ACE_OS::execvp (const char *file,
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
+# if defined (__BORLANDC__)
return ::execvp (file, argv);
# elif defined (__MINGW32__)
return ::_execvp (file, (char *const *) argv);
@@ -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 */
}
@@ -759,7 +763,6 @@ ACE_OS::read (ACE_HANDLE handle, void *buf, size_t len,
ACE_OVERLAPPED *overlapped)
{
ACE_OS_TRACE ("ACE_OS::read");
- overlapped = overlapped;
#if defined (ACE_WIN32)
DWORD ok_len;
DWORD short_len = static_cast<DWORD> (len);
@@ -768,6 +771,7 @@ ACE_OS::read (ACE_HANDLE handle, void *buf, size_t len,
else
ACE_FAIL_RETURN (-1);
#else
+ ACE_UNUSED_ARG (overlapped);
return ACE_OS::read (handle, buf, len);
#endif /* ACE_WIN32 */
}
@@ -1205,7 +1209,6 @@ ACE_OS::write (ACE_HANDLE handle,
ACE_OVERLAPPED *overlapped)
{
ACE_OS_TRACE ("ACE_OS::write");
- overlapped = overlapped;
#if defined (ACE_WIN32)
DWORD bytes_written; // This is set to 0 byte WriteFile.
@@ -1215,6 +1218,7 @@ ACE_OS::write (ACE_HANDLE handle,
else
ACE_FAIL_RETURN (-1);
#else
+ ACE_UNUSED_ARG (overlapped);
return ACE_OS::write (handle, buf, nbyte);
#endif /* ACE_WIN32 */
}
diff --git a/ACE/ace/OS_NS_wchar.cpp b/ACE/ace/OS_NS_wchar.cpp
index 2e02c87c05d..59471ccf306 100644
--- a/ACE/ace/OS_NS_wchar.cpp
+++ b/ACE/ace/OS_NS_wchar.cpp
@@ -2,8 +2,6 @@
#include "ace/OS_NS_wchar.h"
-ACE_RCSID(ace, OS_NS_wchar, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_wchar.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -157,7 +155,7 @@ ACE_OS::wcsicmp_emulation (const wchar_t *s, const wchar_t *t)
size_t
ACE_OS::wcslen_emulation (const ACE_WCHAR_T *string)
{
- const ACE_WCHAR_T *s;
+ const ACE_WCHAR_T *s = 0;
for (s = string; *s; ++s)
continue;
@@ -178,14 +176,14 @@ ACE_OS::wcsncat_emulation (ACE_WCHAR_T *destination,
const ACE_WCHAR_T *s = source;
while (*d != 0)
- d++;
+ ++d;
do
{
if ((*d = *s++) == 0)
break;
- d++;
+ ++d;
} while (--count != 0);
*d = 0;
@@ -285,7 +283,7 @@ wchar_t *
ACE_OS::wcspbrk_emulation (const wchar_t *string,
const wchar_t *charset)
{
- const wchar_t *scanp;
+ const wchar_t *scanp = 0;
int c, sc;
while ((c = *string++) != 0)
@@ -335,7 +333,7 @@ ACE_OS::wcsspn_emulation (const wchar_t *string,
const wchar_t *charset)
{
const wchar_t *p = string;
- const wchar_t *spanp;
+ const wchar_t *spanp = 0;
wchar_t c, sc;
// Skip any characters in charset, excluding the terminating \0.
diff --git a/ACE/ace/OS_NS_wchar.h b/ACE/ace/OS_NS_wchar.h
index 9cfa3b4bb65..0e8c6a7c8f9 100644
--- a/ACE/ace/OS_NS_wchar.h
+++ b/ACE/ace/OS_NS_wchar.h
@@ -136,12 +136,12 @@ namespace ACE_OS
#endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSPBRK */
#if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSRCHR)
- /// Emulated wcsrchr (wchar_t version) - Finds the last occurance of a
+ /// Emulated wcsrchr (wchar_t version) - Finds the last occurrence of a
/// character in a string.
extern ACE_Export
wchar_t *wcsrchr_emulation (wchar_t *string, wint_t c);
- /// Emulated wcsrchr (const wchar_t version) - Finds the last occurance of a
+ /// Emulated wcsrchr (const wchar_t version) - Finds the last occurrence of a
/// character in a string.
extern ACE_Export
const wchar_t *wcsrchr_emulation (const wchar_t *string, wint_t c);
diff --git a/ACE/ace/OS_NS_wctype.cpp b/ACE/ace/OS_NS_wctype.cpp
index 4a25bfd79e3..fe2a5acffbb 100644
--- a/ACE/ace/OS_NS_wctype.cpp
+++ b/ACE/ace/OS_NS_wctype.cpp
@@ -3,8 +3,6 @@
#include "ace/OS_NS_wctype.h"
-ACE_RCSID(ace, OS_NS_wctype, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_wctype.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/ACE/ace/OS_NS_wctype.inl b/ACE/ace/OS_NS_wctype.inl
index 9fc6321e64a..0004df19bca 100644
--- a/ACE/ace/OS_NS_wctype.inl
+++ b/ACE/ace/OS_NS_wctype.inl
@@ -1,5 +1,4 @@
// -*- C++ -*-
-//
// $Id$
#if defined (ACE_LACKS_ISWCTYPE)
diff --git a/ACE/ace/OS_QoS.cpp b/ACE/ace/OS_QoS.cpp
index 0b2c23f11c6..4798ef4c20a 100644
--- a/ACE/ace/OS_QoS.cpp
+++ b/ACE/ace/OS_QoS.cpp
@@ -363,7 +363,7 @@ void
ACE_QoS::provider_specific (const iovec &ps)
{
#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
- this->ProviderSpecific = (WSABUF) ((iovec &) ps);
+ this->ProviderSpecific = (WSABUF) (const_cast <iovec &> (ps));
#else
ACE_UNUSED_ARG (ps);
#endif /* ACE_HAS_WINSOCK2 */
diff --git a/ACE/ace/OS_String.h b/ACE/ace/OS_String.h
deleted file mode 100644
index 01e2846f140..00000000000
--- a/ACE/ace/OS_String.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-//=============================================================================
-/**
- * @file OS_String.h
- *
- * $Id$
- *
- * @brief Contains definition of class ACE_OS_String.
- *
- * @author Doug Schmidt <schmidt@cs.wustl.edu>
- * @author Jesper S. M|ller <stophph@diku.dk>
- * @author and a cast of thousands...
- */
-//=============================================================================
-
-#ifndef ACE_OS_STRING_H
-#define ACE_OS_STRING_H
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/OS_NS_string.h"
-#include "ace/OS_NS_strings.h"
-#include "ace/OS_NS_wchar.h"
-#include "ace/OS_NS_ctype.h"
-
-#include /**/ "ace/post.h"
-#endif /* ACE_OS_STRING_H */
diff --git a/ACE/ace/OS_TLI.cpp b/ACE/ace/OS_TLI.cpp
index 45a0e239133..2c924b404a2 100644
--- a/ACE/ace/OS_TLI.cpp
+++ b/ACE/ace/OS_TLI.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_TLI.h"
-ACE_RCSID(ace, OS_TLI, "$Id$")
+
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_TLI.inl"
diff --git a/ACE/ace/OS_TLI.h b/ACE/ace/OS_TLI.h
index 297fb31c551..082d8629f0b 100644
--- a/ACE/ace/OS_TLI.h
+++ b/ACE/ace/OS_TLI.h
@@ -115,17 +115,11 @@ extern "C"
}
# endif /* !ACE_HAS_TLI_PROTOTYPES */
-# if defined (ACE_HAS_TIUSER_H_BROKEN_EXTERN_C)
-extern "C" {
-# endif /* ACE_HAS_TIUSER_H_BROKEN_EXTERN_C */
# if defined (ACE_HAS_TIUSER_H)
# include /**/ <tiuser.h>
# else
/* What to do here??? Is there a tli.h? */
# endif /* ACE_HAS_TIUSER_H */
-# if defined (ACE_HAS_TIUSER_H_BROKEN_EXTERN_C)
-}
-# endif /* ACE_HAS_TIUSER_H_BROKEN_EXTERN_C */
# if defined (ACE_HAS_SVR4_TLI)
// t_getname is a TLI extension added by some platforms before XTI
diff --git a/ACE/ace/OS_Thread_Adapter.cpp b/ACE/ace/OS_Thread_Adapter.cpp
index 904c87d2d1d..17be3ebe8d9 100644
--- a/ACE/ace/OS_Thread_Adapter.cpp
+++ b/ACE/ace/OS_Thread_Adapter.cpp
@@ -2,10 +2,6 @@
#include "ace/OS_Thread_Adapter.h"
-ACE_RCSID (ace,
- OS_Thread_Adapter,
- "$Id$")
-
#include "ace/Thread_Hook.h"
#include "ace/Object_Manager_Base.h"
#include "ace/Global_Macros.h"
@@ -21,13 +17,15 @@ ACE_OS_Thread_Adapter::ACE_OS_Thread_Adapter (
, ACE_SEH_EXCEPT_HANDLER selector
, ACE_SEH_EXCEPT_HANDLER handler
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags
)
: ACE_Base_Thread_Adapter (user_func, arg, entry_point
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
, 0
+# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
, selector
, handler
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , cancel_flags
)
{
}
@@ -48,6 +46,9 @@ ACE_OS_Thread_Adapter::invoke (void)
reinterpret_cast<ACE_THR_FUNC_INTERNAL> (this->user_func_);
void *arg = this->arg_;
+ // Pick up the cancel-related flags before deleting this.
+ long cancel_flags = this->flags_;
+
// Delete ourselves since we don't need <this> anymore. Make sure
// not to access <this> anywhere below this point.
delete this;
@@ -69,6 +70,18 @@ ACE_OS_Thread_Adapter::invoke (void)
#endif /* ACE_NEEDS_LWP_PRIO_SET */
+ if (cancel_flags != 0)
+ {
+ // If both flags are set, ignore this.
+ int old = 0;
+ int val = cancel_flags & (THR_CANCEL_ENABLE | THR_CANCEL_DISABLE);
+ if (val == THR_CANCEL_ENABLE || val == THR_CANCEL_DISABLE)
+ ACE_OS::thr_setcancelstate (val, &old);
+ val = cancel_flags & (THR_CANCEL_DEFERRED | THR_CANCEL_ASYNCHRONOUS);
+ if (val == THR_CANCEL_DEFERRED || val == THR_CANCEL_ASYNCHRONOUS)
+ ACE_OS::thr_setcanceltype (val, &old);
+ }
+
ACE_THR_FUNC_RETURN status = 0;
ACE_SEH_TRY
diff --git a/ACE/ace/OS_Thread_Adapter.h b/ACE/ace/OS_Thread_Adapter.h
index 44576daff90..46f572634f4 100644
--- a/ACE/ace/OS_Thread_Adapter.h
+++ b/ACE/ace/OS_Thread_Adapter.h
@@ -50,6 +50,7 @@ public:
, ACE_SEH_EXCEPT_HANDLER selector = 0
, ACE_SEH_EXCEPT_HANDLER handler = 0
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags = 0
);
/**
@@ -63,7 +64,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..7ffe41e39ab 100644
--- a/ACE/ace/OS_main.cpp
+++ b/ACE/ace/OS_main.cpp
@@ -2,7 +2,7 @@
#include "ace/OS_main.h"
-ACE_RCSID(ace, OS_main, "$Id$")
+
#if !defined (ACE_DOESNT_DEFINE_MAIN)
@@ -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/Obchunk.cpp b/ACE/ace/Obchunk.cpp
index 7cb00a4dfe6..682de1d76f5 100644
--- a/ACE/ace/Obchunk.cpp
+++ b/ACE/ace/Obchunk.cpp
@@ -6,8 +6,6 @@
#include "ace/Obchunk.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Obchunk, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Obchunk)
diff --git a/ACE/ace/Object_Manager.cpp b/ACE/ace/Object_Manager.cpp
index 525b426f265..fc4279c28d8 100644
--- a/ACE/ace/Object_Manager.cpp
+++ b/ACE/ace/Object_Manager.cpp
@@ -30,13 +30,9 @@
#include "ace/Null_Mutex.h"
#include "ace/Mutex.h"
#include "ace/RW_Thread_Mutex.h"
-#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && \
- defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) \
- && (_MSC_VER >= 1400) // VC++ 8.0 and above.
+#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && !defined (ACE_HAS_WINCE)
#include "ace/OS_NS_stdlib.h"
-#endif // ACE_DISABLE_WIN32_ERROR_WINDOWS && ACE_WIN32 && !ACE_HAS_WINCE && (_MSC_VER >= 1400)
-
-ACE_RCSID(ace, Object_Manager, "$Id$")
+#endif // ACE_DISABLE_WIN32_ERROR_WINDOWS
#if ! defined (ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS)
# define ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS
@@ -58,15 +54,13 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Note the following fix was derived from that proposed by Jochen Kalmbach
// http://blog.kalmbachnet.de/?postid=75
-#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && \
- defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && \
- (_MSC_VER >= 1400) && defined (_M_IX86)
+#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && !defined (ACE_HAS_WINCE)
LPTOP_LEVEL_EXCEPTION_FILTER WINAPI ACEdisableSetUnhandledExceptionFilter (
- LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter)
+ LPTOP_LEVEL_EXCEPTION_FILTER /*lpTopLevelExceptionFilter*/)
{
return 0;
}
-#endif // ACE_DISABLE_WIN32_ERROR_WINDOWS && ACE_WIN32 && !ACE_HAS_WINCE && (_MSC_VER >= 1400) && _M_IX86
+#endif // ACE_DISABLE_WIN32_ERROR_WINDOWS
// Singleton pointer.
ACE_Object_Manager *ACE_Object_Manager::instance_ = 0;
@@ -260,14 +254,13 @@ ACE_Object_Manager::init (void)
}
# endif /* ACE_HAS_TSS_EMULATION */
-#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && \
- defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
-#if defined (_DEBUG) && (defined (_MSC_VER) || defined (__INTEL_COMPILER))
+#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && !defined (ACE_HAS_WINCE)
+#if defined (_DEBUG) && (defined (_MSC_VER) || defined (__INTEL_COMPILER) || defined (__MINGW32__))
_CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDERR );
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
-#endif /* _DEBUG && _MSC_VER || __INTEL_COMPILER */
+#endif /* _DEBUG && _MSC_VER || __INTEL_COMPILER || __MINGW32__ */
// The system does not display the critical-error-handler message box
SetErrorMode(SEM_FAILCRITICALERRORS);
@@ -275,10 +268,10 @@ ACE_Object_Manager::init (void)
// And this will catch all unhandled exceptions.
SetUnhandledExceptionFilter (&ACE_UnhandledExceptionFilter);
-# if (_MSC_VER >= 1400) // VC++ 8.0 and above.
+# if (_MSC_VER >= 1400) // VC++ 8.0 and above
// And this will stop the abort system call from being treated as a crash
_set_abort_behavior( 0, _CALL_REPORTFAULT);
-
+# endif
// Note the following fix was derived from that proposed by Jochen Kalmbach
// http://blog.kalmbachnet.de/?postid=75
// See also:
@@ -293,18 +286,22 @@ ACE_Object_Manager::init (void)
// from calling SetUnhandledExceptionFilter() after we have done so above.
// NOTE this only works for intel based windows builds.
+# if (_MSC_VER >= 1400) \
+ || (__MINGW32_MAJOR_VERSION > 3) || \
+ ((__MINGW32_MAJOR_VERSION == 3) && \
+ (__MINGW32_MINOR_VERSION >= 15)) // VC++ 8.0 and above || MingW32 >= 3.15
# ifdef _M_IX86
HMODULE hKernel32 = ACE_TEXT_LoadLibrary (ACE_TEXT ("kernel32.dll"));
if (hKernel32)
{
void *pOrgEntry =
- GetProcAddress (hKernel32, "SetUnhandledExceptionFilter");
+ reinterpret_cast<void*> (GetProcAddress (hKernel32, "SetUnhandledExceptionFilter"));
if (pOrgEntry)
{
unsigned char newJump[ 100 ];
DWORD dwOrgEntryAddr = reinterpret_cast<DWORD> (pOrgEntry);
dwOrgEntryAddr += 5; // add 5 for 5 op-codes for jmp far
- void *pNewFunc = &ACEdisableSetUnhandledExceptionFilter;
+ void *pNewFunc = reinterpret_cast<void*> (&ACEdisableSetUnhandledExceptionFilter);
DWORD dwNewEntryAddr = reinterpret_cast<DWORD> (pNewFunc);
DWORD dwRelativeAddr = dwNewEntryAddr - dwOrgEntryAddr;
@@ -321,7 +318,7 @@ ACE_Object_Manager::init (void)
}
# endif // _M_IX86
# endif // (_MSC_VER >= 1400) // VC++ 8.0 and above.
-#endif /* ACE_DISABLE_WIN32_ERROR_WINDOWS && ACE_WIN32 && !ACE_HAS_WINCE */
+#endif /* ACE_DISABLE_WIN32_ERROR_WINDOWS */
# if !defined (ACE_LACKS_ACE_SVCCONF)
diff --git a/ACE/ace/Object_Manager.h b/ACE/ace/Object_Manager.h
index 1e7a5845b74..d6bb30693bf 100644
--- a/ACE/ace/Object_Manager.h
+++ b/ACE/ace/Object_Manager.h
@@ -272,7 +272,7 @@ public:
static int remove_at_exit (void *object);
#if 0 /* not implemented yet */
- /// Similar to <at_exit>, except that the cleanup_hook is called
+ /// Similar to at_exit(), except that the cleanup_hook is called
/// when the current thread exits instead of when the program terminates.
static int at_thread_exit (void *object,
ACE_CLEANUP_FUNC cleanup_hook,
@@ -327,7 +327,8 @@ public:
};
/**
- * @deprecated Accesses a default signal set used, for example,
+ * @deprecated
+ * Accesses a default signal set used, for example,
* in ACE_Sig_Guard methods.
* Deprecated: use ACE_Object_Manager::default_mask () instead.
*/
@@ -411,10 +412,10 @@ public:
static void *preallocated_array[ACE_PREALLOCATED_ARRAYS];
public:
- // Application code should not use these explicitly, so they're
- // hidden here. They're public so that the ACE_Object_Manager can
- // be constructed/destructed in <main> with
- // ACE_HAS_NONSTATIC_OBJECT_MANAGER.
+ /// Application code should not use these explicitly, so they're
+ /// hidden here. They're public so that the ACE_Object_Manager can
+ /// be constructed/destructed in <main> with
+ /// ACE_HAS_NONSTATIC_OBJECT_MANAGER.
ACE_Object_Manager (void);
~ACE_Object_Manager (void);
@@ -435,7 +436,7 @@ private:
#endif /* ACE_MT_SAFE */
#if defined (ACE_HAS_TSS_EMULATION)
- // Main thread's thread-specific storage array.
+ /// Main thread's thread-specific storage array.
void *ts_storage_[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX];
bool ts_storage_initialized_;
#endif /* ACE_HAS_TSS_EMULATION */
@@ -444,7 +445,7 @@ private:
friend class ACE_Object_Manager_Manager;
#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */
- // Disallow copying by not implementing the following . . .
+ /// Disallow copying by not implementing the following . . .
ACE_Object_Manager (const ACE_Object_Manager &);
ACE_Object_Manager &operator= (const ACE_Object_Manager &);
};
diff --git a/ACE/ace/Object_Manager_Base.cpp b/ACE/ace/Object_Manager_Base.cpp
index 8740359e1b4..b0391e2ab7d 100644
--- a/ACE/ace/Object_Manager_Base.cpp
+++ b/ACE/ace/Object_Manager_Base.cpp
@@ -1,9 +1,6 @@
// $Id$
#include "ace/Object_Manager_Base.h"
-
-ACE_RCSID(ace, Object_Manager_Base, "$Id$")
-
#include "ace/OS_Memory.h"
#include "ace/OS_NS_Thread.h"
#include "ace/OS_NS_sys_socket.h"
@@ -15,10 +12,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
int ACE_SEH_Default_Exception_Selector (void *)
{
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Win32 structured exception exiting thread\n")));
-#endif /* 0 */
// this is only windows and only used here,
// defined in ace/config-win32-common.h.
return (DWORD) ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION;
diff --git a/ACE/ace/Obstack_T.cpp b/ACE/ace/Obstack_T.cpp
index ecce0636b2d..dc1d0acfc6c 100644
--- a/ACE/ace/Obstack_T.cpp
+++ b/ACE/ace/Obstack_T.cpp
@@ -19,11 +19,11 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Obstack_T)
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::dump (void) const
+template <class ACE_CHAR_T> void
+ACE_Obstack_T<ACE_CHAR_T>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Obstack_T<CHAR>::dump");
+ ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::dump");
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("size_ = %d\n"), this->size_));
@@ -33,13 +33,13 @@ ACE_Obstack_T<CHAR>::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-template <class CHAR> int
-ACE_Obstack_T<CHAR>::request (size_t len)
+template <class ACE_CHAR_T> int
+ACE_Obstack_T<ACE_CHAR_T>::request (size_t len)
{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::request");
+ ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::request");
// normalize the length.
- len *= sizeof (CHAR);
+ len *= sizeof (ACE_CHAR_T);
// Check to see if there's room for the requested length, including
// any part of an existing string, if any.
@@ -89,15 +89,15 @@ ACE_Obstack_T<CHAR>::request (size_t len)
return 0;
}
-template <class CHAR> CHAR *
-ACE_Obstack_T<CHAR>::grow (CHAR c)
+template <class ACE_CHAR_T> ACE_CHAR_T *
+ACE_Obstack_T<ACE_CHAR_T>::grow (ACE_CHAR_T c)
{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::grow");
+ ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::grow");
if (this->request (1) == 0)
{
- CHAR *retv = reinterpret_cast<CHAR *> (this->curr_->cur_);
- this->curr_->cur_ += sizeof (CHAR);
+ ACE_CHAR_T *retv = reinterpret_cast<ACE_CHAR_T *> (this->curr_->cur_);
+ this->curr_->cur_ += sizeof (ACE_CHAR_T);
*retv = c;
return retv;
}
@@ -105,10 +105,10 @@ ACE_Obstack_T<CHAR>::grow (CHAR c)
return 0;
}
-template <class CHAR> ACE_Obchunk *
-ACE_Obstack_T<CHAR>::new_chunk (void)
+template <class ACE_CHAR_T> ACE_Obchunk *
+ACE_Obstack_T<ACE_CHAR_T>::new_chunk (void)
{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::new_chunk");
+ ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::new_chunk");
ACE_Obchunk *temp = 0;
@@ -120,15 +120,15 @@ ACE_Obstack_T<CHAR>::new_chunk (void)
return temp;
}
-template <class CHAR>
-ACE_Obstack_T<CHAR>::ACE_Obstack_T (size_t size,
+template <class ACE_CHAR_T>
+ACE_Obstack_T<ACE_CHAR_T>::ACE_Obstack_T (size_t size,
ACE_Allocator *allocator_strategy)
: allocator_strategy_ (allocator_strategy),
size_ (size),
head_ (0),
curr_ (0)
{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::ACE_Obstack");
+ ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::ACE_Obstack");
if (this->allocator_strategy_ == 0)
ACE_ALLOCATOR (this->allocator_strategy_,
@@ -138,10 +138,10 @@ ACE_Obstack_T<CHAR>::ACE_Obstack_T (size_t size,
this->curr_ = this->head_;
}
-template <class CHAR>
-ACE_Obstack_T<CHAR>::~ACE_Obstack_T (void)
+template <class ACE_CHAR_T>
+ACE_Obstack_T<ACE_CHAR_T>::~ACE_Obstack_T (void)
{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::~ACE_Obstack_T");
+ ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::~ACE_Obstack_T");
ACE_Obchunk *temp = this->head_;
@@ -154,23 +154,23 @@ ACE_Obstack_T<CHAR>::~ACE_Obstack_T (void)
}
}
-template <class CHAR> CHAR *
-ACE_Obstack_T<CHAR>::copy (const CHAR *s,
+template <class ACE_CHAR_T> ACE_CHAR_T *
+ACE_Obstack_T<ACE_CHAR_T>::copy (const ACE_CHAR_T *s,
size_t len)
{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::copy");
+ ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::copy");
if (this->request (len) != 0)
return 0;
- size_t tsize = len * sizeof (CHAR);
+ size_t tsize = len * sizeof (ACE_CHAR_T);
ACE_OS::memcpy (this->curr_->cur_, s, tsize);
this->curr_->cur_ += tsize ;
return this->freeze ();
}
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::unwind (void* obj)
+template <class ACE_CHAR_T> void
+ACE_Obstack_T<ACE_CHAR_T>::unwind (void* obj)
{
if (obj >= this->curr_->contents_ && obj < this->curr_->end_)
this->curr_->block_ = this->curr_->cur_ = reinterpret_cast<char*> (obj);
@@ -178,8 +178,8 @@ ACE_Obstack_T<CHAR>::unwind (void* obj)
this->unwind_i (obj);
}
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::unwind_i (void* obj)
+template <class ACE_CHAR_T> void
+ACE_Obstack_T<ACE_CHAR_T>::unwind_i (void* obj)
{
ACE_Obchunk* curr = this->head_;
while (curr != 0 && (curr->contents_ > obj || curr->end_ < obj))
@@ -194,29 +194,29 @@ ACE_Obstack_T<CHAR>::unwind_i (void* obj)
ACE_TEXT ("Deletion of non-existent object.\n%a")));
}
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::release (void)
+template <class ACE_CHAR_T> void
+ACE_Obstack_T<ACE_CHAR_T>::release (void)
{
- ACE_TRACE ("ACE_Obstack_T<CHAR>::release");
+ ACE_TRACE ("ACE_Obstack_T<ACE_CHAR_T>::release");
this->curr_ = this->head_;
this->curr_->block_ = this->curr_->cur_ = this->curr_->contents_;
}
-template <class CHAR> void
-ACE_Obstack_T<CHAR>::grow_fast (CHAR c)
+template <class ACE_CHAR_T> void
+ACE_Obstack_T<ACE_CHAR_T>::grow_fast (ACE_CHAR_T c)
{
- * (reinterpret_cast<CHAR *> (this->curr_->cur_)) = c;
- this->curr_->cur_ += sizeof (CHAR);
+ * (reinterpret_cast<ACE_CHAR_T *> (this->curr_->cur_)) = c;
+ this->curr_->cur_ += sizeof (ACE_CHAR_T);
}
-template <class CHAR> CHAR *
-ACE_Obstack_T<CHAR>::freeze (void)
+template <class ACE_CHAR_T> ACE_CHAR_T *
+ACE_Obstack_T<ACE_CHAR_T>::freeze (void)
{
- CHAR *retv = reinterpret_cast<CHAR *> (this->curr_->block_);
- * (reinterpret_cast<CHAR *> (this->curr_->cur_)) = 0;
+ ACE_CHAR_T *retv = reinterpret_cast<ACE_CHAR_T *> (this->curr_->block_);
+ * (reinterpret_cast<ACE_CHAR_T *> (this->curr_->cur_)) = 0;
- this->curr_->cur_ += sizeof (CHAR);
+ this->curr_->cur_ += sizeof (ACE_CHAR_T);
this->curr_->block_ = this->curr_->cur_;
return retv;
}
diff --git a/ACE/ace/Obstack_T.h b/ACE/ace/Obstack_T.h
index 3e24ab31925..bba7595771c 100644
--- a/ACE/ace/Obstack_T.h
+++ b/ACE/ace/Obstack_T.h
@@ -34,12 +34,12 @@ class ACE_Allocator;
* The implementation is similar to the GNU obstack utility,
* which is used extensively in the GCC compiler.
*/
-template <class CHAR>
+template <class ACE_CHAR_T>
class ACE_Obstack_T
{
public:
// = Initialization and termination methods.
- ACE_Obstack_T (size_t size = (4096 * sizeof (CHAR)) - sizeof (ACE_Obchunk),
+ ACE_Obstack_T (size_t size = (4096 * sizeof (ACE_CHAR_T)) - sizeof (ACE_Obchunk),
ACE_Allocator *allocator_strategy = 0);
~ACE_Obstack_T (void);
@@ -47,36 +47,31 @@ public:
/// a new string. Return -1 if fail, 0 if success.
int request (size_t len);
- /// Inserting a new CHAR \a c into the current building
+ /// Inserting a new ACE_CHAR_T \a c into the current building
/// block without freezing (null terminating) the block.
/// This function will create new chunk by checking the
/// boundary of current Obchunk. Return
/// the location \a c gets inserted to, or 0 if error.
- CHAR *grow (CHAR c);
+ ACE_CHAR_T *grow (ACE_CHAR_T c);
- /// Inserting a new CHAR \a c into the current building
+ /// Inserting a new ACE_CHAR_T \a c into the current building
/// block without freezing (null terminating) the block and without
/// checking for out-of-bound error.
- void grow_fast (CHAR c);
+ void grow_fast (ACE_CHAR_T c);
/// Freeze the current building block by null terminating it.
/// Return the starting address of the current building block, 0
/// if error occurs.
- CHAR *freeze (void);
+ ACE_CHAR_T *freeze (void);
/// Copy the data into the current Obchunk and freeze the current
/// block. Return the starting address of the current building
/// block, 0 if error occurs. @a len specify the string length,
/// not the actually data size.
- CHAR *copy (const CHAR *data,
+ ACE_CHAR_T *copy (const ACE_CHAR_T *data,
size_t len);
- /// Return the maximum @a length or @a size of a string that can be put
- /// into this Obstack. @a size = @a length * sizeof (CHAR).
- ///
- /// @deprecated No need to use this function as you can put objects of
- /// arbitrary lengths into the obstack now.
- size_t length (void) const;
+ /// Return the maximum @a size
size_t size (void) const;
/// "Unwind" the stack. If @a obj is a null pointer, everything allocated
diff --git a/ACE/ace/Obstack_T.inl b/ACE/ace/Obstack_T.inl
index 1eddbdcf4e6..dd4d0e2bc39 100644
--- a/ACE/ace/Obstack_T.inl
+++ b/ACE/ace/Obstack_T.inl
@@ -1,17 +1,10 @@
// -*- C++ -*-
-//
// $Id$
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <class CHAR> ACE_INLINE size_t
-ACE_Obstack_T<CHAR>::length () const
-{
- return this->size_ / sizeof (CHAR);
-}
-
-template <class CHAR> ACE_INLINE size_t
-ACE_Obstack_T<CHAR>::size () const
+template <class ACE_CHAR_T> ACE_INLINE size_t
+ACE_Obstack_T<ACE_CHAR_T>::size () const
{
return this->size_;
}
diff --git a/ACE/ace/PI_Malloc.cpp b/ACE/ace/PI_Malloc.cpp
index 5b2897d2dcf..72eab3b9fdf 100644
--- a/ACE/ace/PI_Malloc.cpp
+++ b/ACE/ace/PI_Malloc.cpp
@@ -1,12 +1,10 @@
+// $Id$
+
#ifndef ACE_PI_MALLOC_CPP
#define ACE_PI_MALLOC_CPP
#include "ace/PI_Malloc.h"
-ACE_RCSID (ace,
- PI_Malloc,
- "$Id$")
-
#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
#if !defined (__ACE_INLINE__)
diff --git a/ACE/ace/POSIX_Asynch_IO.cpp b/ACE/ace/POSIX_Asynch_IO.cpp
index 5d354093d69..80b2ef218bc 100644
--- a/ACE/ace/POSIX_Asynch_IO.cpp
+++ b/ACE/ace/POSIX_Asynch_IO.cpp
@@ -14,11 +14,6 @@
#include "ace/OS_NS_sys_socket.h"
#include "ace/OS_NS_sys_stat.h"
-ACE_RCSID (ace,
- POSIX_Asynch_IO,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
size_t
diff --git a/ACE/ace/POSIX_Asynch_IO.h b/ACE/ace/POSIX_Asynch_IO.h
index 25a360313bb..3654a183128 100644
--- a/ACE/ace/POSIX_Asynch_IO.h
+++ b/ACE/ace/POSIX_Asynch_IO.h
@@ -893,10 +893,6 @@ private:
typedef ACE_Map_Manager<ACE_HANDLE, ACE_POSIX_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX>
MAP_MANAGER;
- /// @deprecated (Two) Deprecated typedefs. Use the map traits instead.
- typedef MAP_MANAGER::ITERATOR MAP_ITERATOR;
- typedef MAP_MANAGER::ENTRY MAP_ENTRY;
-
/// Map of Result pointers that correspond to all the pending connects.
MAP_MANAGER result_map_;
diff --git a/ACE/ace/POSIX_CB_Proactor.cpp b/ACE/ace/POSIX_CB_Proactor.cpp
index 62c624bdb8f..8bc90f593f2 100644
--- a/ACE/ace/POSIX_CB_Proactor.cpp
+++ b/ACE/ace/POSIX_CB_Proactor.cpp
@@ -9,10 +9,6 @@
#include "ace/Object_Manager.h"
#include "ace/OS_NS_sys_time.h"
-ACE_RCSID (ace,
- POSIX_CB_Proactor,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_POSIX_CB_Proactor::ACE_POSIX_CB_Proactor (size_t max_aio_operations)
@@ -87,10 +83,6 @@ ACE_POSIX_CB_Proactor::allocate_aio_slot (ACE_POSIX_Asynch_Result *result)
// @@ TODO: This gets the completion method back to this proactor to
// find the completed aiocb. It would be so much better to not only get
// the proactor, but the aiocb as well.
-#if defined(__sgi)
- result->aio_sigevent.sigev_notify = SIGEV_CALLBACK;
- result->aio_sigevent.sigev_func = aio_completion_func ;
-#else
result->aio_sigevent.sigev_notify = SIGEV_THREAD;
# if defined (ACE_HAS_SIG_C_FUNC)
result->aio_sigevent.sigev_notify_function =
@@ -99,7 +91,6 @@ ACE_POSIX_CB_Proactor::allocate_aio_slot (ACE_POSIX_Asynch_Result *result)
result->aio_sigevent.sigev_notify_function = aio_completion_func;
# endif /* ACE_HAS_SIG_C_FUNC */
result->aio_sigevent.sigev_notify_attributes = 0;
-#endif /* __sgi */
result->aio_sigevent.sigev_value.sival_ptr = this ;
diff --git a/ACE/ace/POSIX_Proactor.cpp b/ACE/ace/POSIX_Proactor.cpp
index b2a821b4fb5..5f9c4bc4c28 100644
--- a/ACE/ace/POSIX_Proactor.cpp
+++ b/ACE/ace/POSIX_Proactor.cpp
@@ -82,10 +82,6 @@ ACE_POSIX_Proactor::ACE_POSIX_Proactor (void)
os_id_ = ACE_OS_HPUX; // set family
-#elif defined(__sgi)
-
- os_id_ = ACE_OS_IRIX; // set family
-
#elif defined(__OpenBSD)
os_id_ = ACE_OS_OPENBSD; // set family
@@ -520,39 +516,6 @@ ACE_POSIX_Proactor::create_asynch_timer
return implementation;
}
-#if 0
-int
-ACE_POSIX_Proactor::handle_signal (int, siginfo_t *, ucontext_t *)
-{
- // Perform a non-blocking "poll" for all the I/O events that have
- // completed in the I/O completion queue.
-
- ACE_Time_Value timeout (0, 0);
- int result = 0;
-
- for (;;)
- {
- result = this->handle_events (timeout);
- if (result != 0 || errno == ETIME)
- break;
- }
-
- // If our handle_events failed, we'll report a failure to the
- // Reactor.
- return result == -1 ? -1 : 0;
-}
-
-int
-ACE_POSIX_Proactor::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask close_mask)
-{
- ACE_UNUSED_ARG (close_mask);
- ACE_UNUSED_ARG (handle);
-
- return this->close ();
-}
-#endif /* 0 */
-
void
ACE_POSIX_Proactor::application_specific_code (ACE_POSIX_Asynch_Result *asynch_result,
size_t bytes_transferred,
@@ -1239,11 +1202,14 @@ ACE_POSIX_AIOCB_Proactor::get_result_status (ACE_POSIX_Asynch_Result *asynch_res
transfer_count = 0;
// Get the error status of the aio_ operation.
- error_status = aio_error (asynch_result);
+ // The following aio_ptr anathema is required to work around a bug in an over-aggressive
+ // optimizer in GCC 4.1.2.
+ aiocb *aio_ptr (asynch_result);
+ error_status = aio_error (aio_ptr);
if (error_status == EINPROGRESS)
return 0; // not completed
- ssize_t op_return = aio_return (asynch_result);
+ ssize_t op_return = aio_return (aio_ptr);
if (op_return > 0)
transfer_count = static_cast<size_t> (op_return);
// else transfer_count is already 0, error_status reports the error.
@@ -1425,16 +1391,18 @@ ACE_POSIX_AIOCB_Proactor::start_aio_i (ACE_POSIX_Asynch_Result *result)
const ACE_TCHAR *ptype = 0;
// Start IO
-
+ // The following aio_ptr anathema is required to work around a bug in
+ // the optimizer for GCC 4.1.2
+ aiocb * aio_ptr (result);
switch (result->aio_lio_opcode )
{
case LIO_READ :
ptype = ACE_TEXT ("read ");
- ret_val = aio_read (result);
+ ret_val = aio_read (aio_ptr);
break;
case LIO_WRITE :
ptype = ACE_TEXT ("write");
- ret_val = aio_write (result);
+ ret_val = aio_write (aio_ptr);
break;
default:
ptype = ACE_TEXT ("?????");
diff --git a/ACE/ace/Pagefile_Memory_Pool.cpp b/ACE/ace/Pagefile_Memory_Pool.cpp
index 9fa2a5f9302..b3ee76fc942 100644
--- a/ACE/ace/Pagefile_Memory_Pool.cpp
+++ b/ACE/ace/Pagefile_Memory_Pool.cpp
@@ -21,7 +21,7 @@
#include "ace/Based_Pointer_Repository.h"
#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
-ACE_RCSID(ace, Pagefile_Memory_Pool, "$Id$")
+
#if defined (ACE_WIN32) && !defined (ACE_HAS_PHARLAP)
#if !defined (ACE_HAS_WINCE)
@@ -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/Pair.h b/ACE/ace/Pair.h
deleted file mode 100644
index 7a12dab6c0e..00000000000
--- a/ACE/ace/Pair.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Pair.h
- *
- * $Id$
- *
- * ACE_Pair<> convenience header.
- *
- * @author Irfan Pyarali
- */
-//=============================================================================
-
-
-#ifndef ACE_PAIR_H
-#define ACE_PAIR_H
-
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Include the templates here.
-#include "ace/Pair_T.h"
-
-#include /**/ "ace/post.h"
-
-#endif /* ACE_PAIR_H */
diff --git a/ACE/ace/Pair_T.h b/ACE/ace/Pair_T.h
index 58b1ec2a71c..1501eb533e9 100644
--- a/ACE/ace/Pair_T.h
+++ b/ACE/ace/Pair_T.h
@@ -24,55 +24,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
- * @class ACE_Pair
- *
- * @brief Defines a pair.
- *
- * Similar to the STL pair.
- */
-template <class T1, class T2>
-class ACE_Pair
-{
-public:
-
- // = Traits.
- typedef T1 first_type;
- typedef T2 second_type;
-
- // = Initialization and termination methods.
- /// Constructor.
- ACE_Pair (const T1 &t1,
- const T2 &t2);
-
- /// Default constructor.
- ACE_Pair (void);
-
- /// Get first.
- T1 &first (void);
- const T1 &first (void) const;
-
- /// Set first.
- void first (const T1 &t1);
-
- /// Get second.
- T2 &second (void);
- const T2 &second (void) const;
-
- /// Set second.
- void second (const T2 &t2);
-
- // Compare pairs.
- bool operator== (const ACE_Pair<T1, T2> &rhs) const;
-
-protected:
- /// First.
- T1 first_;
-
- /// Second.
- T2 second_;
-};
-
-/**
* @class ACE_Reference_Pair
*
* @brief Defines a pair that only hold references.
diff --git a/ACE/ace/Pair_T.inl b/ACE/ace/Pair_T.inl
index 4ce4a4acae4..cfb2cd35d04 100644
--- a/ACE/ace/Pair_T.inl
+++ b/ACE/ace/Pair_T.inl
@@ -5,62 +5,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <class T1, class T2> ACE_INLINE
-ACE_Pair<T1, T2>::ACE_Pair (const T1 &t1,
- const T2 &t2)
- : first_ (t1),
- second_ (t2)
-{
-}
-
-template <class T1, class T2> ACE_INLINE
-ACE_Pair<T1, T2>::ACE_Pair (void)
-{
-}
-
-template <class T1, class T2> ACE_INLINE T1 &
-ACE_Pair<T1, T2>::first (void)
-{
- return this->first_;
-}
-
-template <class T1, class T2> ACE_INLINE const T1 &
-ACE_Pair<T1, T2>::first (void) const
-{
- return this->first_;
-}
-
-template <class T1, class T2> ACE_INLINE void
-ACE_Pair<T1, T2>::first (const T1 &t1)
-{
- this->first_ = t1;
-}
-
-template <class T1, class T2> ACE_INLINE T2 &
-ACE_Pair<T1, T2>::second (void)
-{
- return this->second_;
-}
-
-template <class T1, class T2> ACE_INLINE const T2 &
-ACE_Pair<T1, T2>::second (void) const
-{
- return this->second_;
-}
-
-template <class T1, class T2> ACE_INLINE void
-ACE_Pair<T1, T2>::second (const T2 &t2)
-{
- this->second_ = t2;
-}
-
-template <class T1, class T2> ACE_INLINE bool
-ACE_Pair<T1, T2>::operator== (const ACE_Pair<T1, T2> &rhs) const
-{
- return (this->first_ == rhs.first_ &&
- this->second_ == rhs.second_);
-}
-
-template <class T1, class T2> ACE_INLINE
ACE_Reference_Pair<T1, T2>::ACE_Reference_Pair (T1 &t1,
T2 &t2)
: first_ (t1),
diff --git a/ACE/ace/Parse_Node.cpp b/ACE/ace/Parse_Node.cpp
index bcd9cb7229e..73b4d20ada1 100644
--- a/ACE/ace/Parse_Node.cpp
+++ b/ACE/ace/Parse_Node.cpp
@@ -1,3 +1,4 @@
+// $Id$
#include "ace/Parse_Node.h"
#if (ACE_USES_CLASSIC_SVC_CONF == 1)
@@ -11,9 +12,7 @@
#include "ace/OS_NS_string.h"
#include "ace/ARGV.h"
-ACE_RCSID (ace,
- Parse_Node,
- "$Id$")
+#include <list>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -45,10 +44,21 @@ ACE_Stream_Node::apply (ACE_Service_Gestalt *config, int &yyerrno)
ACE_Stream_Type *st =
dynamic_cast<ACE_Stream_Type *> (const_cast<ACE_Service_Type_Impl *> (sst->type ()));
- for (const ACE_Static_Node *module = dynamic_cast<const ACE_Static_Node*> (this->mods_);
+ // The modules were linked as popped off the yacc stack, so they're in
+ // reverse order from the way they should be pushed onto the stream.
+ // So traverse mods_ and and reverse the list, then iterate over it to push
+ // the modules in the stream in the correct order.
+ std::list<const ACE_Static_Node *> mod_list;
+ const ACE_Static_Node *module;
+ for (module = dynamic_cast<const ACE_Static_Node*> (this->mods_);
module != 0;
module = dynamic_cast<ACE_Static_Node*> (module->link()))
+ mod_list.push_front (module);
+
+ std::list<const ACE_Static_Node *>::const_iterator iter;
+ for (iter = mod_list.begin (); iter != mod_list.end (); ++iter)
{
+ module = *iter;
ACE_ARGV args (module->parameters ());
const ACE_Service_Type *mst = module->record (config);
@@ -64,6 +74,7 @@ ACE_Stream_Node::apply (ACE_Service_Gestalt *config, int &yyerrno)
module->name ()));
}
++yyerrno;
+ continue; // Don't try anything else with this one
}
ACE_Module_Type const * const mt1 =
diff --git a/ACE/ace/Ping_Socket.cpp b/ACE/ace/Ping_Socket.cpp
index 573a78451f1..400b53b6c81 100644
--- a/ACE/ace/Ping_Socket.cpp
+++ b/ACE/ace/Ping_Socket.cpp
@@ -15,11 +15,6 @@
# include "ace/Ping_Socket.inl"
#endif /* !__ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Ping_Socket,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_Ping_Socket)
@@ -217,13 +212,9 @@ ACE_Ping_Socket::process_incoming_dgram (char * ptr, ssize_t len)
// Warning... using knowledge of IP header layout. This avoids a maze of
// #if blocks for various systems. The first byte of the header has the
// IP version in the left-most 4 bits and the length in the other 4 bits.
-#if 0
- hlen1 = ip->ip_hl; // length of IP header
-#else
hlen1 = static_cast<unsigned char>(*ptr);
hlen1 <<= 4; // Bump the version off
hlen1 >>= 4; // Zero-extended length remains
-#endif
hlen1 <<= 2; // Now it counts bytes, not words
icmp = (struct icmp *) (ptr + hlen1); // start of ICMP header
diff --git a/ACE/ace/Ping_Socket.h b/ACE/ace/Ping_Socket.h
index 1826f1600e2..9fd61a213ad 100644
--- a/ACE/ace/Ping_Socket.h
+++ b/ACE/ace/Ping_Socket.h
@@ -60,7 +60,7 @@ public:
int protocol = IPPROTO_ICMP,
int reuse_addr = 0);
- /// @a toConnect = 1 - makes connect to remote address
+ /// @a to_connect = true - makes connect to remote address
int send_echo_check (ACE_INET_Addr & remote_addr,
bool to_connect = false);
@@ -68,7 +68,7 @@ public:
/// sending @c ICMP_ECHO.
int process_incoming_dgram (char * ptr, ssize_t len);
- /// @a toConnect = 1 - makes connect to remote address
+ /// @a to_connect = true - makes connect to remote address
int make_echo_check (ACE_INET_Addr & remote_addr,
bool to_connect = false,
ACE_Time_Value const * timeout = &time_default_);
diff --git a/ACE/ace/Pipe.cpp b/ACE/ace/Pipe.cpp
index 7e187f285a0..ff3914702d9 100644
--- a/ACE/ace/Pipe.cpp
+++ b/ACE/ace/Pipe.cpp
@@ -18,7 +18,7 @@
#include "ace/Pipe.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Pipe, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -39,7 +39,7 @@ ACE_Pipe::open (int buffer_size)
{
ACE_TRACE ("ACE_Pipe::open");
-#if defined (ACE_LACKS_SOCKETPAIR) || defined (__Lynx__)
+#if defined (ACE_LACKS_SOCKETPAIR)
ACE_INET_Addr my_addr;
ACE_SOCK_Acceptor acceptor;
ACE_SOCK_Connector connector;
@@ -254,21 +254,20 @@ ACE_Pipe::close (void)
{
ACE_TRACE ("ACE_Pipe::close");
- int result = 0;
-
- // Note that the following will work even if we aren't closing down
- // sockets because <ACE_OS::closesocket> will just call <::close> in
- // that case!
-
- if (this->handles_[0] != ACE_INVALID_HANDLE)
- result = ACE_OS::closesocket (this->handles_[0]);
- this->handles_[0] = ACE_INVALID_HANDLE;
+ int result = this->close_read ();
+ result |= this->close_write ();
+ return result;
+}
- if (this->handles_[1] != ACE_INVALID_HANDLE)
- result |= ACE_OS::closesocket (this->handles_[1]);
- this->handles_[1] = ACE_INVALID_HANDLE;
+int
+ACE_Pipe::close_read (void)
+{
+ return this->close_handle (0);
+}
- return result;
+int ACE_Pipe::close_write (void)
+{
+ return this->close_handle (1);
}
// Send N char *ptrs and int lengths. Note that the char *'s precede
diff --git a/ACE/ace/Pipe.h b/ACE/ace/Pipe.h
index 4d2f2b13cd0..bd9c7ec7665 100644
--- a/ACE/ace/Pipe.h
+++ b/ACE/ace/Pipe.h
@@ -65,6 +65,8 @@ public:
/// Close down the pipe HANDLEs;
int close (void);
+ int close_read (void);
+ int close_write (void);
// = Accessors.
@@ -122,7 +124,7 @@ public:
* This is an interface to ::readv, that doesn't use the struct
* iovec explicitly. The ... can be passed as an arbitrary number
* of (char *ptr, int len) tuples. However, the count N is the
- * *total* number of trailing arguments, *not* a couple of the
+ * *total* number of trailing arguments, *not* a count of the
* number of tuple pairs!
*/
ssize_t recv (size_t n, ...) const;
@@ -152,6 +154,7 @@ public:
private:
ACE_HANDLE handles_[2];
+ int close_handle (int which);
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Pipe.inl b/ACE/ace/Pipe.inl
index 17b532ed632..20f929c2ad6 100644
--- a/ACE/ace/Pipe.inl
+++ b/ACE/ace/Pipe.inl
@@ -185,4 +185,19 @@ ACE_Pipe::recv (void *buf, size_t n,
overlapped);
}
+ACE_INLINE int
+ACE_Pipe::close_handle (int which)
+{
+ int result = 0;
+
+ // Note that the following will work even if we aren't closing down
+ // sockets because <ACE_OS::closesocket> will just call <::close> in
+ // that case!
+
+ if (this->handles_[which] != ACE_INVALID_HANDLE)
+ result = ACE_OS::closesocket (this->handles_[which]);
+ this->handles_[which] = ACE_INVALID_HANDLE;
+ return result;
+}
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Priority_Reactor.cpp b/ACE/ace/Priority_Reactor.cpp
index de3a6aa9eb6..26b83844fdb 100644
--- a/ACE/ace/Priority_Reactor.cpp
+++ b/ACE/ace/Priority_Reactor.cpp
@@ -3,7 +3,7 @@
#include "ace/Priority_Reactor.h"
#include "ace/Malloc_T.h"
-ACE_RCSID(ace, Priority_Reactor, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Proactor.cpp b/ACE/ace/Proactor.cpp
index 883a567c1fb..d88f4117ea8 100644
--- a/ACE/ace/Proactor.cpp
+++ b/ACE/ace/Proactor.cpp
@@ -17,11 +17,6 @@
#endif /* !ACE_HAS_WINCE && !ACE_LACKS_ACE_SVCCONF */
-ACE_RCSID (ace,
- Proactor,
- "$Id$")
-
-
#include "ace/Task_T.h"
#include "ace/Log_Msg.h"
#include "ace/Framework_Component.h"
diff --git a/ACE/ace/Proactor.h b/ACE/ace/Proactor.h
index 704eef416ff..18f2c2c0e27 100644
--- a/ACE/ace/Proactor.h
+++ b/ACE/ace/Proactor.h
@@ -323,8 +323,8 @@ public:
const void *act,
const ACE_Time_Value &interval);
- // Same as above except @a interval it is used to reschedule the
- // @a handler automatically.
+ /// Same as above except @a interval it is used to reschedule the
+ /// @a handler automatically.
/// This combines the above two methods into one. Mostly for backward
/// compatibility.
@@ -357,7 +357,7 @@ public:
* @param wait_time the time to wait for an event to occur. This is
* a relative time. On successful return, the time is updated to
* reflect the amount of time spent waiting for event(s) to occur.
- * @return Returns 0 if no events occur before the wait_time expires.
+ * @return Returns 0 if no events occur before the @a wait_time expires.
* Returns 1 when a completion is dispatched. On error, returns -1
* and sets errno accordingly.
*/
diff --git a/ACE/ace/Proactor_Impl.cpp b/ACE/ace/Proactor_Impl.cpp
index fe08453778e..49de8de8020 100644
--- a/ACE/ace/Proactor_Impl.cpp
+++ b/ACE/ace/Proactor_Impl.cpp
@@ -2,10 +2,6 @@
#include "ace/Proactor_Impl.h"
-ACE_RCSID (ace,
- Proactor_Impl,
- "$Id$")
-
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on standard Win32 platforms and on Unix platforms supporting
// aio calls.
diff --git a/ACE/ace/Process.cpp b/ACE/ace/Process.cpp
index acd4b7c9ab5..547bb636185 100644
--- a/ACE/ace/Process.cpp
+++ b/ACE/ace/Process.cpp
@@ -22,14 +22,13 @@
#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__)
+#if defined (ACE_VXWORKS) && defined (__RTP__)
# include <rtpLib.h>
# include <taskLib.h>
#endif
-ACE_RCSID (ace, Process, "$Id$")
-
// This function acts as a signal handler for SIGCHLD. We don't really want
// to do anything with the signal - it's just needed to interrupt a sleep.
// See wait() for more info.
@@ -138,7 +137,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(),
@@ -255,7 +253,7 @@ ACE_Process::spawn (ACE_Process_Options &options)
}
return this->child_id_;
-#elif (defined (ACE_VXWORKS) && (ACE_VXWORKS > 0x600)) && defined (__RTP__)
+#elif defined (ACE_VXWORKS) && defined (__RTP__)
if (ACE_BIT_ENABLED (options.creation_flags (),
ACE_Process_Options::NO_EXEC))
ACE_NOTSUP_RETURN (ACE_INVALID_PID);
@@ -519,13 +517,7 @@ ACE_Process::spawn (ACE_Process_Options &options)
}
else
{
-# if defined (ghs)
- // GreenHills 1.8.8 (for VxWorks 5.3.x) can't compile this
- // code. Processes aren't supported on VxWorks anyways.
- ACE_NOTSUP_RETURN (ACE_INVALID_PID);
-# else
result = ACE_OS::execve (procname, procargv, procenv);
-# endif /* ghs */
}
if (result == -1)
{
@@ -624,7 +616,7 @@ ACE_Process::wait (const ACE_Time_Value &tv,
# if defined (ACE_VXWORKS)
{
pid_t retv;
- while ( (retv = this->wait (status)) == ACE_INVALID_PID && errno == EINTR ) ;
+ while ((retv = this->wait (status)) == ACE_INVALID_PID && errno == EINTR);
return retv;
}
# else
@@ -794,9 +786,10 @@ ACE_Process::convert_env_buffer (const char* env) const
#endif
ACE_Process_Options::ACE_Process_Options (bool inherit_environment,
- int command_line_buf_len,
- int env_buf_len,
- int max_env_args)
+ size_t command_line_buf_len,
+ size_t env_buf_len,
+ size_t max_env_args,
+ size_t max_cmdline_args)
:
#if !defined (ACE_HAS_WINCE)
inherit_environment_ (inherit_environment),
@@ -826,10 +819,12 @@ ACE_Process_Options::ACE_Process_Options (bool inherit_environment,
max_environment_args_ (max_env_args),
max_environ_argv_index_ (max_env_args - 1),
#endif /* !ACE_HAS_WINCE */
- command_line_argv_calculated_ (0),
+ command_line_argv_calculated_ (false),
command_line_buf_ (0),
command_line_copy_ (0),
command_line_buf_len_ (command_line_buf_len),
+ max_command_line_args_ (max_cmdline_args),
+ command_line_argv_ (0),
process_group_ (ACE_INVALID_PID),
use_unicode_environment_ (false)
{
@@ -838,6 +833,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_,
@@ -853,6 +854,8 @@ ACE_Process_Options::ACE_Process_Options (bool inherit_environment,
this->startup_info_.cb = sizeof this->startup_info_;
#endif /* ACE_WIN32 */
#endif /* !ACE_HAS_WINCE */
+ ACE_NEW (command_line_argv_,
+ ACE_TCHAR *[max_cmdline_args]);
}
#if !defined (ACE_HAS_WINCE)
@@ -997,8 +1000,11 @@ ACE_Process_Options::setenv (const ACE_TCHAR *variable_name,
va_start (argp, format);
// Add the rest of the varargs.
- size_t tmp_buflen = DEFAULT_COMMAND_LINE_BUF_LEN > buflen
- ? static_cast<size_t> (DEFAULT_COMMAND_LINE_BUF_LEN) : buflen;
+ size_t tmp_buflen = buflen;
+ if (DEFAULT_COMMAND_LINE_BUF_LEN > buflen)
+ {
+ tmp_buflen = DEFAULT_COMMAND_LINE_BUF_LEN;
+ }
int retval = 0;
ACE_TCHAR *stack_buf = 0;
@@ -1169,27 +1175,43 @@ ACE_Process_Options::~ACE_Process_Options (void)
#endif /* !ACE_HAS_WINCE */
delete [] command_line_buf_;
ACE::strdelete (command_line_copy_);
+ delete [] command_line_argv_;
}
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.
+ size_t const cur_len =
+ 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]);
}
}
- command_line_argv_calculated_ = 0;
+ command_line_argv_calculated_ = false;
return 0; // Success.
}
@@ -1219,7 +1241,7 @@ ACE_Process_Options::command_line (const ACE_TCHAR *format, ...)
// Useless macro.
va_end (argp);
- command_line_argv_calculated_ = 0;
+ command_line_argv_calculated_ = false;
return 0;
}
@@ -1231,7 +1253,7 @@ ACE_Process_Options::command_line (const ACE_TCHAR *format, ...)
int
ACE_Process_Options::command_line (const ACE_ANTI_TCHAR *format, ...)
{
- ACE_ANTI_TCHAR *anti_clb;
+ ACE_ANTI_TCHAR *anti_clb = 0;
ACE_NEW_RETURN (anti_clb,
ACE_ANTI_TCHAR[this->command_line_buf_len_],
-1);
@@ -1253,7 +1275,7 @@ ACE_Process_Options::command_line (const ACE_ANTI_TCHAR *format, ...)
delete [] anti_clb;
- command_line_argv_calculated_ = 0;
+ command_line_argv_calculated_ = false;
return 0;
}
#endif /* ACE_HAS_WCHAR && !ACE_HAS_WINCE */
@@ -1274,9 +1296,9 @@ ACE_Process_Options::env_buf (void)
ACE_TCHAR * const *
ACE_Process_Options::command_line_argv (void)
{
- if (command_line_argv_calculated_ == 0)
+ if (!command_line_argv_calculated_)
{
- command_line_argv_calculated_ = 1;
+ command_line_argv_calculated_ = true;
// We need to free up any previous allocated memory first.
ACE::strdelete (command_line_copy_);
@@ -1291,12 +1313,12 @@ ACE_Process_Options::command_line_argv (void)
parser.preserve_designators ('\"', '\"'); // "
parser.preserve_designators ('\'', '\'');
- int x = 0;
+ unsigned int x = 0;
do
command_line_argv_[x] = parser.next ();
while (command_line_argv_[x] != 0
- // substract one for the ending zero.
- && ++x < MAX_COMMAND_LINE_OPTIONS - 1);
+ // subtract one for the ending zero.
+ && ++x < max_command_line_args_ - 1);
command_line_argv_[x] = 0;
}
diff --git a/ACE/ace/Process.h b/ACE/ace/Process.h
index 0ab94c2f7a7..7ed719b06fc 100644
--- a/ACE/ace/Process.h
+++ b/ACE/ace/Process.h
@@ -82,9 +82,10 @@ public:
* max strlen for command-line arguments.
*/
ACE_Process_Options (bool inherit_environment = true,
- int command_line_buf_len = DEFAULT_COMMAND_LINE_BUF_LEN,
- int env_buf_len = ENVIRONMENT_BUFFER,
- int max_env_args = MAX_ENVIRONMENT_ARGS);
+ size_t command_line_buf_len = DEFAULT_COMMAND_LINE_BUF_LEN,
+ size_t env_buf_len = ENVIRONMENT_BUFFER,
+ size_t max_env_args = MAX_ENVIRONMENT_ARGS,
+ size_t max_cmdline_args = MAX_COMMAND_LINE_OPTIONS);
/// Destructor.
~ACE_Process_Options (void);
@@ -94,8 +95,19 @@ public:
/**
* Set the standard handles of the new process to the respective
* handles. If you want to affect a subset of the handles, make
- * sure to set the others to ACE_INVALID_HANDLE. Returns 0 on
- * success, -1 on failure.
+ * sure to set the others to ACE_INVALID_HANDLE.
+ *
+ * @note Any handle passed as ACE_INVALID_HANDLE will be changed to
+ * a duplicate of the current associated handle. For example, passing
+ * ACE_INVALID_HANDLE for @a std_in will cause ACE_STDIN to be
+ * duplicated and set in this object.
+ *
+ * @note Windows: The implementation of set_handles() uses DuplicateHandle
+ * on Windows. DuplicateHandle cannot be used to pass a socket handle
+ * on Windows. Socket handles require an alternate mechanism to pass;
+ * see http://msdn.microsoft.com/en-us/library/ms741565(v=VS.85).aspx
+ *
+ * @return 0 on success, -1 on failure.
*/
int set_handles (ACE_HANDLE std_in,
ACE_HANDLE std_out = ACE_INVALID_HANDLE,
@@ -221,6 +233,13 @@ public:
pid_t setgroup (pid_t pgrp);
/// Allows disabling of handle inheritance, default is TRUE.
+ ///
+ /// @remarks @b Windows: the handle_inheritance value is passed as the
+ /// bInheritHandles value to the CreateProcess() system function. Therefore,
+ /// if you redirect standard input, output, or error via
+ /// ACE_Process_Options::set_handles() you must not call
+ /// handle_inheritance(false). Doing so will prevent the duplicated handles
+ /// from surviving in the created process.
int handle_inheritance (void);
void handle_inheritance (int);
@@ -388,7 +407,7 @@ protected:
size_t environment_buf_index_;
/// Pointer to environment_argv_.
- int environment_argv_index_;
+ size_t environment_argv_index_;
/// Pointer to buffer of the environment settings.
ACE_TCHAR *environment_buf_;
@@ -400,17 +419,17 @@ protected:
ACE_TCHAR **environment_argv_;
/// Maximum number of environment variables. Configurable
- int max_environment_args_;
+ size_t max_environment_args_;
/// Maximum index of environment_argv_ buffer
- int max_environ_argv_index_;
+ size_t max_environ_argv_index_;
/// The current working directory.
ACE_TCHAR working_directory_[MAXPATHLEN + 1];
#endif /* !ACE_HAS_WINCE */
/// Ensures command_line_argv is only calculated once.
- int command_line_argv_calculated_;
+ bool command_line_argv_calculated_;
/// Pointer to buffer of command-line arguments. E.g., "-f foo -b bar".
ACE_TCHAR *command_line_buf_;
@@ -420,10 +439,13 @@ protected:
ACE_TCHAR *command_line_copy_;
/// Max length of command_line_buf_
- int command_line_buf_len_;
+ size_t command_line_buf_len_;
+
+ /// Maximum number of command-line arguments. Configurable
+ size_t max_command_line_args_;
/// Argv-style command-line arguments.
- ACE_TCHAR *command_line_argv_[MAX_COMMAND_LINE_OPTIONS];
+ ACE_TCHAR **command_line_argv_;
/// Process-group on Unix; unused on Win32.
pid_t process_group_;
@@ -495,14 +517,14 @@ public:
*/
virtual void child (pid_t parent);
- /// Called by a <Process_Manager> that is removing this Process from
+ /// Called by a Process_Manager that is removing this Process from
/// its table of managed Processes. Default is to do nothing.
virtual void unmanage (void);
/**
- * Wait for the process we've created to exit. If <status> != 0, it
+ * Wait for the process we've created to exit. If @a status != 0, it
* points to an integer where the function store the exit status of
- * child process to. If <wait_options> == <WNOHANG> then return 0
+ * child process to. If @a wait_options == @c WNOHANG then return 0
* and don't block if the child process hasn't exited yet. A return
* value of -1 represents the <wait> operation failed, otherwise,
* the child process id is returned.
@@ -514,7 +536,7 @@ public:
* Timed wait for the process we've created to exit. A return value
* of -1 indicates that the something failed; 0 indicates that a
* timeout occurred. Otherwise, the child's process id is returned.
- * If <status> != 0, it points to an integer where the function
+ * If @a status != 0, it points to an integer where the function
* stores the child's exit status.
*
* @note On UNIX platforms this function uses <ualarm>, i.e., it
@@ -531,7 +553,7 @@ public:
int kill (int signum = SIGINT);
/**
- * Terminate the process abruptly using <ACE::terminate_process>.
+ * Terminate the process abruptly using ACE::terminate_process().
* This call doesn't give the process a chance to cleanup, so use it
* with caution...
*/
@@ -591,6 +613,7 @@ protected:
/// Set of handles that were passed to the child process.
ACE_Handle_Set handles_passed_;
+
/// Handle duplicates made for the child process.
ACE_Handle_Set dup_handles_;
@@ -602,7 +625,6 @@ private:
#endif
};
-
/**
* @class ACE_Managed_Process
*
diff --git a/ACE/ace/Process_Manager.cpp b/ACE/ace/Process_Manager.cpp
index f7e6b7897b0..128b9d1d799 100644
--- a/ACE/ace/Process_Manager.cpp
+++ b/ACE/ace/Process_Manager.cpp
@@ -22,10 +22,6 @@
#include "ace/os_include/os_typeinfo.h"
#include "ace/Truncate.h"
-ACE_RCSID (ace,
- Process_Manager,
- "$Id$")
-
#if defined (ACE_HAS_SIG_C_FUNC)
extern "C" void
ACE_Process_Manager_cleanup (void *instance, void *arg)
@@ -261,11 +257,12 @@ ACE_Process_Manager::ACE_Process_Manager (size_t size,
{
ACE_TRACE ("ACE_Process_Manager::ACE_Process_Manager");
- if (this->open (size,
- r) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Process_Manager")));
+ if (this->open (size, r) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("ACE_Process_Manager")));
+ }
}
// Close up and release all resources.
@@ -846,7 +843,7 @@ ACE_Process_Manager::wait (pid_t pid,
// WAIT_OBJECT_0 is a pointless comparison because
// WAIT_OBJECT_0 is zero and DWORD is unsigned long, so this
// test is skipped for Green Hills. Same for mingw.
-# if defined (ghs) || defined (__MINGW32__) || defined (_MSC_VER)
+# if defined (__MINGW32__) || defined (_MSC_VER)
ACE_ASSERT (result < WAIT_OBJECT_0 + this->current_count_);
# else
ACE_ASSERT (result >= WAIT_OBJECT_0
@@ -920,7 +917,7 @@ ACE_Process_Manager::wait (pid_t pid,
for (ACE_Countdown_Time time_left (&tmo); ; time_left.update ())
{
pid = ACE_OS::waitpid (-1, status, WNOHANG);
-# if defined (ACE_VXWORKS) && (ACE_VXWORKS >= 0x600)
+# if defined (ACE_VXWORKS)
if (pid > 0 || (pid == ACE_INVALID_PID && errno != EINTR))
# else
if (pid > 0 || pid == ACE_INVALID_PID)
@@ -973,22 +970,6 @@ ACE_Process_Manager::wait (pid_t pid,
return pid;
}
-// Legacy method:
-
-int
-ACE_Process_Manager::reap (pid_t pid,
- ACE_exitcode *stat_loc,
- int options)
-{
- ACE_TRACE ("ACE_Process_Manager::reap");
-
- return this->wait (pid,
- (ACE_BIT_ENABLED (options, WNOHANG)
- ? ACE_Time_Value::zero
- : ACE_Time_Value::max_time),
- stat_loc);
-}
-
// Notify either the process-specific handler or the generic handler.
// If process-specific, call handle_close on the handler. Returns 1
// if process found, 0 if not. Must be called with locks held.
diff --git a/ACE/ace/Process_Manager.h b/ACE/ace/Process_Manager.h
index 03dfaae0070..4d4496b6a59 100644
--- a/ACE/ace/Process_Manager.h
+++ b/ACE/ace/Process_Manager.h
@@ -210,6 +210,9 @@ public:
*
* @note This call is potentially dangerous to use since the process
* being terminated may not have a chance to cleanup before it shuts down.
+ * The process's entry is also not removed from this class's process
+ * table. Calling either wait() or remove() after terminate() is
+ * advisable.
*
* @retval 0 on success and -1 on failure.
*/
@@ -269,17 +272,6 @@ public:
*/
pid_t wait (pid_t pid,
ACE_exitcode *status = 0);
-
- /**
- * @deprecated
- * Reap the result of a single process by calling ACE_OS::waitpid(),
- * therefore, this method is not portable to Windows. If the child is
- * successfully reaped, remove() is called automatically.
- * Use one of the wait() methods instead of this method.
- */
- int reap (pid_t pid = -1,
- ACE_exitcode *stat_loc = 0,
- int options = WNOHANG);
//@}
/**
@@ -301,10 +293,9 @@ public:
/**
* Remove process @a pid from the ACE_Process_Manager's internal records.
- * This is called automatically by the reap() method after it successfully
- * reaps a process. It's also possible to call this method
- * directly from a signal handler, but don't call both reap() and
- * remove()!
+ * This is called automatically by the wait() method if the waited process
+ * exits. This method can also be called after calling terminate() if
+ * there's no need to wait() for the terminated process.
*/
int remove (pid_t pid);
diff --git a/ACE/ace/Process_Mutex.cpp b/ACE/ace/Process_Mutex.cpp
index 9aba33a7894..20925aee441 100644
--- a/ACE/ace/Process_Mutex.cpp
+++ b/ACE/ace/Process_Mutex.cpp
@@ -11,7 +11,7 @@
#include "ace/Process_Mutex.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Process_Mutex, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Process_Mutex.h b/ACE/ace/Process_Mutex.h
index c2fb3c702da..97666f91201 100644
--- a/ACE/ace/Process_Mutex.h
+++ b/ACE/ace/Process_Mutex.h
@@ -46,36 +46,48 @@ class ACE_Time_Value;
* @class ACE_Process_Mutex
*
* @brief A wrapper for mutexes that can be used across processes on
- * the same host machine, as well as within a process, of
- * course.
+ * the same host machine, as well as within a process, of course.
*
* @attention The mechanism upon which @c ACE_Process_Mutex is based
* can be configured at build time to be either @c ACE_SV_Semaphore_Complex
- * (on platforms that support it) or @c ACE_Mutex. On platforms that
- * require interprocess mutexes be allocated from shared memory (Pthreads
- * and UI Threads are examples), @c ACE_SV_Semaphore_Complex provides a
- * more reliable mechanism for implementing inter-process mutex than
- * @c ACE_Mutex. However, at least on some platforms,
- * @c ACE_SV_Semaphore_Complex is limited to a small number of
- * objects by the underlying System V IPC kernel parameters. If you
- * want to force use of @c ACE_Mutex as the underlying mechanism, set
- * @c ACE_USES_MUTEX_FOR_PROCESS_MUTEX in your @c config.h file.
- * Also, if you require the ability to do a timed @c acquire(), you must
- * set @c ACE_USES_MUTEX_FOR_PROCESS_MUTEX, as timed acquire does not
- * work with System V semaphores.
- * @attention Currently there is also the operational difference between
- * pthreads and semaphores based @c. For semaphore base @c the semaphore
- * is destroyed after the last instance of @c in OS. In contrary, pthread based
- * @c is destroyed when the owner, namely the process which created the
- * first instance of @c destroys the mutex. For protable applications it is better
- * to always ensure that the owner of the mutex destroys it after the
- * other processes.
+ * (on platforms that support it) or @c ACE_Mutex. On platforms that offer
+ * System V IPC (the @c ACE_HAS_SYSV_IPC config macro is defined)
+ * @c ACE_SV_Semaphore_Complex is the default because it is more convenient
+ * and easy to use. @c ACE_Mutex is the default on all other platforms.
+ * On platforms where ACE_SV_Semaphore_Complex is used by default, the
+ * mechanism can be changed to ACE_Mutex when ACE is built by adding
+ * @code
+ * #define ACE_USES_MUTEX_FOR_PROCESS_MUTEX
+ * @endcode
+ * to your @c config.h file.
+ * @par
+ * Consider these tradeoffs when evaluating whether or not to change
+ * the default:
+ * - Some platforms (e.g., Pthreads and UI Threads) require interprocess
+ * mutexes to be allocated from shared memory. On these platforms, using
+ * ACE_Mutex as the underlying mechanism requires that ACE_Process_Mutex
+ * objects be allocated in shared memory. Using ACE_SV_Semaphore_Complex
+ * avoids this restriction.
+ * - System V IPC kernel parameters have a low default limit on some
+ * platforms. This would restrict the number of ACE_Process_Mutex objects
+ * that can be in use simultaneously when using ACE_SV_Semaphore_Complex.
+ * - If you require the ability to do a timed @c acquire(), you must
+ * use ACE_Mutex as the underlying mechanism because timed acquire does not
+ * work with System V semaphores.
+ * - When using ACE_Mutex on a Pthreads-based platform, an ACE_Process_Mutex
+ * object is deleted when the process which created the object destroys
+ * it, regardless of whether or not there are other processes still
+ * accessing the ACE_Process_Mutex. Using ACE_SV_Semaphore_Complex avoids
+ * this problem; the semaphore is destroyed when the last use of the
+ * object ends. For portable applications it is better to always ensure
+ * that the owner of the mutex destroys it after all other processes have
+ * stopped using it.
*/
class ACE_Export ACE_Process_Mutex
{
public:
/**
- * Create a Process_Mutex, passing in the optional @c name.
+ * Create an ACE_Process_Mutex.
*
* @param name optional, null-terminated string containing the name of
* the object. Multiple users of the same @c ACE_Process_Mutex must use
@@ -93,8 +105,7 @@ public:
#if defined (ACE_HAS_WCHAR)
/**
- * Create a Process_Mutex, passing in the optional @c name. (@c wchar_t
- * version)
+ * Create an ACE_Process_Mutex (@c wchar_t version)
*
* @param name optional, null-terminated string containing the name of
* the object. Multiple users of the same @c ACE_Process_Mutex must use
@@ -111,6 +122,12 @@ public:
mode_t mode = ACE_DEFAULT_FILE_PERMS);
#endif /* ACE_HAS_WCHAR */
+ /**
+ * Destructor.
+ *
+ * @note The destructor will not release an acquired mutex except
+ * on Windows.
+ */
~ACE_Process_Mutex (void);
/**
diff --git a/ACE/ace/Process_Semaphore.cpp b/ACE/ace/Process_Semaphore.cpp
index 860eda3b016..5c83d613a82 100644
--- a/ACE/ace/Process_Semaphore.cpp
+++ b/ACE/ace/Process_Semaphore.cpp
@@ -10,7 +10,7 @@
#include "ace/ACE.h"
-ACE_RCSID(ace, Process_Semaphore, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Process_Semaphore.h b/ACE/ace/Process_Semaphore.h
index 61665207d82..b10c47898b1 100644
--- a/ACE/ace/Process_Semaphore.h
+++ b/ACE/ace/Process_Semaphore.h
@@ -71,14 +71,14 @@ public:
int release (void);
/**
- * Acquire semaphore ownership. This calls <acquire> and is only
+ * Acquire semaphore ownership. This calls acquire() and is only
* here to make the ACE_Process_Semaphore interface consistent
* with the other synchronization APIs.
*/
int acquire_read (void);
/**
- * Acquire semaphore ownership. This calls <acquire> and is only
+ * Acquire semaphore ownership. This calls acquire() and is only
* here to make the ACE_Process_Semaphore interface consistent
* with the other synchronization APIs.
*/
@@ -86,7 +86,7 @@ public:
/**
* Conditionally acquire semaphore (i.e., won't block). This calls
- * <tryacquire> and is only here to make the ACE_Process_Semaphore
+ * tryacquire() and is only here to make the ACE_Process_Semaphore
* interface consistent with the other synchronization APIs.
* Returns -1 on failure. If we "failed" because someone else
* already had the lock, @c errno is set to @c EBUSY.
@@ -95,7 +95,7 @@ public:
/**
* Conditionally acquire semaphore (i.e., won't block). This calls
- * <tryacquire> and is only here to make the ACE_Process_Semaphore
+ * tryacquire() and is only here to make the ACE_Process_Semaphore
* interface consistent with the other synchronization APIs.
* Returns -1 on failure. If we "failed" because someone else
* already had the lock, @c errno is set to @c EBUSY.
@@ -135,12 +135,10 @@ protected:
template <class T> class ACE_Malloc_Lock_Adapter_T;
/**
- * @class ACE_Malloc_Lock_Adapter_T<ACE_Process_Semaphore>
- *
* @brief Template specialization of ACE_Malloc_Lock_Adapter_T for
* ACE_Process_Semaphore.
*
- * This is needed since the ctor for ACE_Process_Semaphore doesn't match
+ * This is needed since the constructor for ACE_Process_Semaphore doesn't match
* the standard form used by other lock strategy classes.
*/
template<>
diff --git a/ACE/ace/Profile_Timer.cpp b/ACE/ace/Profile_Timer.cpp
index 907d78f6707..5347982e782 100644
--- a/ACE/ace/Profile_Timer.cpp
+++ b/ACE/ace/Profile_Timer.cpp
@@ -14,7 +14,7 @@
#include "ace/OS_NS_unistd.h"
#endif
-ACE_RCSID(ace, Profile_Timer, "$Id$")
+
#if (defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE)) && !defined (ACE_WIN32)
diff --git a/ACE/ace/Profile_Timer.h b/ACE/ace/Profile_Timer.h
index 1dd699a1b6a..f17551d7f72 100644
--- a/ACE/ace/Profile_Timer.h
+++ b/ACE/ace/Profile_Timer.h
@@ -101,14 +101,14 @@ private:
ACE_Profile_Timer::Rusage last_usage_;
#if defined (ACE_HAS_PRUSAGE_T)
- /// Substract two timestructs and store their difference.
+ /// Subtract two timestructs and store their difference.
void subtract (timespec_t &tdiff, timespec_t &t0, timespec_t &t1);
/// I/O handle for /proc file system.
ACE_HANDLE proc_handle_;
#elif defined (ACE_HAS_GETRUSAGE)
- /// Substract two timestructs and store their difference.
+ /// Subtract two timestructs and store their difference.
void subtract (timeval &tdiff,
timeval &t0,
timeval &t1);
diff --git a/ACE/ace/QoS/QoS_Decorator.cpp b/ACE/ace/QoS/QoS_Decorator.cpp
index 90cc748e856..cd02ab7a3d9 100644
--- a/ACE/ace/QoS/QoS_Decorator.cpp
+++ b/ACE/ace/QoS/QoS_Decorator.cpp
@@ -3,8 +3,6 @@
#include "QoS_Decorator.h"
-ACE_RCSID(ace, QoS_Decorator, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_QOS_DECORATOR)
diff --git a/ACE/ace/QoS/QoS_Manager.cpp b/ACE/ace/QoS/QoS_Manager.cpp
index 5dcd5d7a473..20f118cd789 100644
--- a/ACE/ace/QoS/QoS_Manager.cpp
+++ b/ACE/ace/QoS/QoS_Manager.cpp
@@ -4,8 +4,6 @@
#include "QoS_Manager.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, QoS_Manager, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_QOS_MANAGER)
diff --git a/ACE/ace/QoS/QoS_Session.h b/ACE/ace/QoS/QoS_Session.h
index 3e08bbc69ce..da426bc8eb3 100644
--- a/ACE/ace/QoS/QoS_Session.h
+++ b/ACE/ace/QoS/QoS_Session.h
@@ -52,7 +52,7 @@ public:
RSVP_RESV_EVENT,
RSVP_RESV_CONFIRM,
RSVP_RESV_ERROR,
- RSVP_PATH_ERROR
+ RSVP_PATH_ERROR
};
/// A flag to indicate if this endpoint is a sender or a receiver or
@@ -64,7 +64,7 @@ public:
ACE_QOS_BOTH
};
-
+
/// to shutup g++.
virtual ~ACE_QoS_Session (void) {};
@@ -118,7 +118,7 @@ public:
virtual void rsvp_event_type (RSVP_Event_Type event_type) = 0;
///Set the RAPI event that last occured
-
+
virtual RSVP_Event_Type rsvp_event_type (void) = 0;
///Get the RAPI event that last occured
@@ -137,10 +137,10 @@ public:
//Set the source host
virtual ACE_INET_Addr* source_addr (void) const = 0;
-
+
/// Set the source port for this session.
virtual void source_addr (ACE_INET_Addr* source_addr) = 0;
-
+
/**
* Returns the version of the underlying RSVP implementation. Is
diff --git a/ACE/ace/QoS/QoS_Session_Factory.cpp b/ACE/ace/QoS/QoS_Session_Factory.cpp
index 18f0957696a..60122e5a5cb 100644
--- a/ACE/ace/QoS/QoS_Session_Factory.cpp
+++ b/ACE/ace/QoS/QoS_Session_Factory.cpp
@@ -5,8 +5,6 @@
#include "QoS_Session_Impl.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, QoS_Session_Factory, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_QoS_Session_Factory)
diff --git a/ACE/ace/QoS/QoS_Session_Impl.cpp b/ACE/ace/QoS/QoS_Session_Impl.cpp
index d7bd3f2523a..e96baa7f905 100644
--- a/ACE/ace/QoS/QoS_Session_Impl.cpp
+++ b/ACE/ace/QoS/QoS_Session_Impl.cpp
@@ -11,8 +11,6 @@
#include "QoS_Session_Impl.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, QoS_Session_Impl, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_QoS_Session_Impl)
diff --git a/ACE/ace/QoS/QoS_Session_Impl.h b/ACE/ace/QoS/QoS_Session_Impl.h
index a9ea0287540..14f2f6653db 100644
--- a/ACE/ace/QoS/QoS_Session_Impl.h
+++ b/ACE/ace/QoS/QoS_Session_Impl.h
@@ -115,7 +115,7 @@ public:
//Set the source host
virtual ACE_INET_Addr* source_addr (void) const;
-
+
/// Set the source port for this session.
virtual void source_addr (ACE_INET_Addr* source_addr);
@@ -221,7 +221,7 @@ public:
//Set the source host
virtual ACE_INET_Addr* source_addr (void) const;
-
+
/// Set the source port for this session.
virtual void source_addr (ACE_INET_Addr* source_addr);
diff --git a/ACE/ace/QoS/QoS_Session_Impl.inl b/ACE/ace/QoS/QoS_Session_Impl.inl
index b3971b46d52..c5aa3a1e9f9 100644
--- a/ACE/ace/QoS/QoS_Session_Impl.inl
+++ b/ACE/ace/QoS/QoS_Session_Impl.inl
@@ -100,13 +100,13 @@ ACE_RAPI_Session::source_port (const u_short &source_port)
this->source_port_ = source_port;
}
-ACE_INLINE ACE_INET_Addr*
+ACE_INLINE ACE_INET_Addr*
ACE_RAPI_Session::source_addr (void) const
{
return this->src_addr_;
}
-
-ACE_INLINE void
+
+ACE_INLINE void
ACE_RAPI_Session::source_addr (ACE_INET_Addr* source_addr)
{
this->src_addr_ = source_addr;
@@ -207,13 +207,13 @@ ACE_GQoS_Session::source_port (const u_short &source_port)
this->source_port_ = source_port;
}
-ACE_INLINE ACE_INET_Addr*
+ACE_INLINE ACE_INET_Addr*
ACE_GQoS_Session::source_addr (void) const
{
return this->src_addr_;
}
-
-ACE_INLINE void
+
+ACE_INLINE void
ACE_GQoS_Session::source_addr (ACE_INET_Addr* source_addr)
{
this->src_addr_ = source_addr;
diff --git a/ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp b/ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp
index 1788a98ea82..b80c34832a5 100644
--- a/ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp
+++ b/ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp
@@ -19,10 +19,6 @@
#endif /* ! defined (IMR_MULTIADDR) */
-ACE_RCSID (QoS,
- SOCK_Dgram_Mcast_QoS,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_Dgram_Mcast_QoS)
diff --git a/ACE/ace/QoS/qos.mpc b/ACE/ace/QoS/qos.mpc
index 5e9dc059ac8..b5f4dba4dbb 100644
--- a/ACE/ace/QoS/qos.mpc
+++ b/ACE/ace/QoS/qos.mpc
@@ -4,13 +4,17 @@
project(QoS) : acelib, ace_output, install {
requires += qos
sharedname = ACE_QoS
- dynamicflags = ACE_QoS_BUILD_DLL
+ 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
}
+ specific {
+ install_dir = ace/qos
+ }
+
pkgconfig_files {
ACE_QoS.pc.in
}
diff --git a/ACE/ace/QtReactor/QtReactor.h b/ACE/ace/QtReactor/QtReactor.h
index 9d34c8d58b8..037198dadb9 100644
--- a/ACE/ace/QtReactor/QtReactor.h
+++ b/ACE/ace/QtReactor/QtReactor.h
@@ -26,23 +26,14 @@
#include "ace/Map_Manager.h"
#if defined (ACE_HAS_QT4)
-# include "Qt/qglobal.h"
-#else
-# include "qglobal.h"
+# include "QtCore/qglobal.h"
#endif
// QT toolkit specific includes.
-#if QT_VERSION < 0x040000
-#include /**/ <qapplication.h>
-#include /**/ <qobject.h>
-#include /**/ <qsocketnotifier.h>
-#include /**/ <qtimer.h>
-#else
#include /**/ <QtGui/QApplication>
#include /**/ <QtCore/QObject>
#include /**/ <QtCore/QSocketNotifier>
#include /**/ <QtCore/QTimer>
-#endif
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -225,7 +216,7 @@ private slots:
/// Dispatch an exception event
void exception_event (int FD);
- /// Dispach a timeout event
+ /// Dispatch a timeout event
void timeout_event (void);
};
diff --git a/ACE/ace/QtReactor/ace_qt4reactor.mpc b/ACE/ace/QtReactor/ace_qt4reactor.mpc
new file mode 100644
index 00000000000..9ff51d3e9b6
--- /dev/null
+++ b/ACE/ace/QtReactor/ace_qt4reactor.mpc
@@ -0,0 +1,31 @@
+// -*- MPC -*- now wouldn't this be cool...
+// $Id$
+
+project(ACE_Qt4Reactor_moc) : acedefaults, ace_qt4 {
+ custom_only = 1
+ MOC_Files {
+ QtReactor.h
+ }
+}
+
+project(ACE_Qt4Reactor) : acedefaults, install, acelib, ace_output, ace_qt4 {
+ after += ACE_Qt4Reactor_moc
+ sharedname = ACE_QtReactor
+ dynamicflags += ACE_QTREACTOR_BUILD_DLL
+
+ MOC_Files {
+ }
+
+ Source_Files {
+ QtReactor_moc.cpp
+ QtReactor.cpp
+ }
+
+ Header_Files {
+ ACE_QtReactor_export.h
+ }
+
+ specific {
+ install_dir = ace/QtReactor
+ }
+}
diff --git a/ACE/ace/RB_Tree.cpp b/ACE/ace/RB_Tree.cpp
index 8e3992aad06..e68bb43b85f 100644
--- a/ACE/ace/RB_Tree.cpp
+++ b/ACE/ace/RB_Tree.cpp
@@ -49,8 +49,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (ACE_Allocator
: root_ (0),
current_size_ (0)
{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::"
- "ACE_RB_Tree (ACE_Allocator *alloc)");
+ ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (ACE_Allocator *alloc)");
allocator_ = alloc;
if (this->open (alloc) == -1)
ACE_ERROR ((LM_ERROR,
@@ -64,8 +63,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (const ACE_RB_T
: root_ (0),
current_size_ (0)
{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::"
- "ACE_RB_Tree (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt)");
+ ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt)");
ACE_WRITE_GUARD (ACE_LOCK, ace_mon, this->lock_);
allocator_ = rbt.allocator_;
@@ -85,6 +83,8 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (
ACE_Allocator *alloc
)
{
+ ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (void *, ACE_Allocator *)");
+
if (location != this)
{
this->root_ = 0;
@@ -728,8 +728,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k,
const INT_ID &t,
ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, const INT_ID &t, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
+ ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i");
// Find the closest matching node, if there is one.
RB_SearchResult result = LEFT;
@@ -1076,7 +1075,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (ACE_RB_Tree_Node<
y->color (z->color ());
z->color (yColor);
- //Reassign the y pointer to z because the node that y points to will be
+ //Reassign the y pointer to z because the node that y points to will be
//deleted
y = z;
}
diff --git a/ACE/ace/RB_Tree.inl b/ACE/ace/RB_Tree.inl
index 7cbac0c9f7a..d7e47fde7e5 100644
--- a/ACE/ace/RB_Tree.inl
+++ b/ACE/ace/RB_Tree.inl
@@ -194,8 +194,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id,
const INT_ID &int_id,
ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
{
- ACE_TRACE ("ACE_RB_Tree::bind (const EXT_ID &ext_id, const INT_ID &int_id, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
+ ACE_TRACE ("ACE_RB_Tree::bind (const EXT_ID &ext_id, const INT_ID &int_id, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
return this->insert_i (ext_id, int_id, entry);
@@ -238,8 +237,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_
INT_ID &int_id,
ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
{
- ACE_TRACE ("ACE_RB_Tree::trybind (const EXT_ID &ext_id, INT_ID &int_id, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
+ ACE_TRACE ("ACE_RB_Tree::trybind (const EXT_ID &ext_id, INT_ID &int_id, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
int result = this->insert_i (ext_id, int_id, entry);
@@ -290,8 +288,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
const INT_ID &int_id,
ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
+ ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
int result = this->insert_i (ext_id, int_id, entry);
@@ -318,8 +315,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
const INT_ID &int_id,
INT_ID &old_int_id)
{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, "
- "const INT_ID &int_id, INT_ID &old_int_id)");
+ ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id, INT_ID &old_int_id)");
ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry;
@@ -347,8 +343,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
INT_ID &old_int_id,
ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id,"
- "INT_ID &old_int_id, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
+ ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id,INT_ID &old_int_id, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
int result = this->insert_i (ext_id, int_id, entry);
@@ -380,8 +375,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
EXT_ID &old_ext_id,
INT_ID &old_int_id)
{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id,"
- "EXT_ID &old_ext_id, INT_ID &old_int_id)");
+ ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id,EXT_ID &old_ext_id, INT_ID &old_int_id)");
ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
ACE_RB_Tree_Node<EXT_ID, INT_ID> *entry;
@@ -411,9 +405,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
INT_ID &old_int_id,
ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)
{
- ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id, "
- "EXT_ID &old_ext_id, INT_ID &old_int_id, "
- "ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
+ ACE_TRACE ("ACE_RB_Tree::rebind (const EXT_ID &ext_id, const INT_ID &int_id, EXT_ID &old_ext_id, INT_ID &old_int_id, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry)");
ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1);
int result = this->insert_i (ext_id, int_id, entry);
diff --git a/ACE/ace/README b/ACE/ace/README
index 26ce1ff6ad7..520e218e443 100644
--- a/ACE/ace/README
+++ b/ACE/ace/README
@@ -173,8 +173,6 @@ ACE_HAS_NONRECURSIVE_MUTEXES In addition to recursive mutexes,
platform has non-recursive ones also.
ACE_HAS_RECV_TIMEDWAIT Platform has the MIT pthreads
APIs for
-ACE_HAS_RECVFROM_TIMEDWAIT timed send/recv operations
-ACE_HAS_RECVMSG_TIMEDWAIT
ACE_HAS_RLIMIT_RESOURCE_ENUM Platform has enum instead of
int for first argument to
::{get,set}rlimit (). The
@@ -201,19 +199,12 @@ ACE_SCANDIR_CMP_USES_CONST_VOIDPTR The OS's scandir() comparator function
const void*).
ACE_SCANDIR_SEL_LACKS_CONST The OS's scandir() selector function
is int (*selector)(ACE_DIRENT*)
-ACE_HAS_SEND_TIMEDWAIT
-ACE_HAS_SENDTO_TIMEDWAIT
-ACE_HAS_SENDMSG_TIMEDWAIT
ACE_HAS_STDARG_THR_DEST Platform has void (*)(...)
prototype for
pthread_key_create()
destructor (e.g., LynxOS).
ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS Platform/compiler supports
Win32 structural exceptions
-ACE_HAS_READ_TIMEDWAIT
-ACE_HAS_READV_TIMEDWAIT
-ACE_HAS_WRITE_TIMEDWAIT
-ACE_HAS_WRITEV_TIMEDWAIT
ACE_HAS_4_4BSD_SENDMSG_RECVMSG Platform has BSD 4.4
sendmsg()/recvmsg() APIs.
ACE_HAS_P_READ_WRITE Platform has pread() and
@@ -245,10 +236,6 @@ ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
ACE_HAS_BROKEN_ACCEPT_ADDR Platform can't correctly deal
with a NULL addr to accept()
(e.g, VxWorks).
-ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS Compiler can't handle const char *
- as rvalue in conditional operator.
-ACE_HAS_BROKEN_CTIME Compiler/platform uses macro
- for ctime (e.g., MVS)
ACE_HAS_BROKEN_DGRAM_SENDV Platform sendv() does not work
properly with datagrams,
i.e. it fails when the iovec
@@ -265,9 +252,6 @@ ACE_HAS_BROKEN_NESTED_TEMPLATES MSVC has trouble with defining
structs and classes
ACE_HAS_BROKEN_POSIX_TIME Platform defines struct
timespec in <sys/timers.h>
-ACE_HAS_BROKEN_RANDR OS/compiler's header files are
- inconsistent with libC
- definition of rand_r().
ACE_HAS_BROKEN_T_ERROR Compiler/platform has the wrong
prototype for t_error(), i.e.,
t_error(char *) rather than
@@ -309,13 +293,6 @@ ACE_HAS_EBCDIC Compile in the ACE code set classes
that support EBCDIC.
ACE_HAS_EXCEPTIONS Compiler supports C++
exception handling
-ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS Compiler does not call
- unexpected exception handler
- if exception not listed in
- exception specification is
- thrown. In particular, the
- exception specification is not
- respected.
ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT When a base-class is a
specialization of a class template
then this class template must be
@@ -335,9 +312,6 @@ ACE_HAS_GETRUSAGE_PROTOTYPE Platform has a getrusage ()
prototype in sys/resource.h
that differs from the one in
ace/OS.i.
-ACE_HAS_GNU_CSTRING_H Denotes that GNU has cstring.h
- as standard which redefines
- memchr()
ACE_HAS_GPERF The GPERF utility is compiled
for this platform
ACE_HAS_GETIFADDRS This platform has ifaddrs.h and
@@ -367,8 +341,6 @@ ACE_USES_IPV4_IPV6_MIGRATION Enable IPv6 support in ACE on
turned on by default.
ACE_HAS_IPV6_V6ONLY Platform supports the IPPROTO_IPV6
level IPV6_V6ONLY socket option.
-ACE_HAS_IRIX62_THREADS Platform supports the very odd
- IRIX 6.2 threads...
ACE_HAS_NONSTATIC_OBJECT_MANAGER Causes the ACE_Object_Manager
instance to be created in main
(int, char *[]), instead of as
@@ -380,8 +352,6 @@ ACE_HAS_THR_MINSTACK Platform calls thr_minstack()
(e.g., Tandem).
ACE_HAS_LIMITED_RUSAGE_T The rusage_t structure has
only two fields.
-ACE_HAS_LIMITED_SELECT The select is unable to deal with
- large file descriptors.
ACE_HAS_LINUX_NPTL Linux platform (with kernel >= 2.6.x)
with GLibc including new NPTL (Native
POSIX Thread Library).
@@ -498,12 +468,6 @@ ACE_HAS_PTHREADS Platform supports POSIX
one. Also may need some
ACE_HAS_... thing for
extensions.
-ACE_HAS_PTHREADS_DRAFT4 Platform's 'Pthreads' is .4a draft 4
-ACE_HAS_PTHREADS_DRAFT6 Platform's 'Pthreads' is .4a draft 6
-ACE_HAS_PTHREADS_DRAFT7 Platform's 'Pthreads' is .1c draft 7
-ACE_HAS_PTHREADS_STD Platform supports POSIX.1c-1995 threads
- (This is the final standard
- Pthreads).
ACE_HAS_PTHREADS_UNIX98_EXT Platform has the UNIX98 extensions to
Pthreads (rwlocks)
ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP Platform has
@@ -558,9 +522,6 @@ ACE_HAS_SIGINFO_T Platform supports SVR4
ACE_HAS_SIGSUSPEND Platform supports sigsuspend()
ACE_HAS_SIGISMEMBER_BUG Platform has bug with
sigismember() (HP/UX 11).
-ACE_HAS_SIG_MACROS Platform/compiler has macros
- for sig{empty,fill,add,del}set
- (e.g., SCO and FreeBSD)
ACE_HAS_SIGNAL_OBJECT_AND_WAIT Platform supports the Win32
SignalObjectAndWait() function
(WinNT 4.0 and beyond).
@@ -610,7 +571,6 @@ ACE_HAS_WCSDUP_EMULATION Use ACE's wcsdup() emulation (even
ACE_HAS_STRNLEN Platform supports strnlen(3).
ACE_HAS_STREAMS Platform supports STREAMS
ACE_HAS_STREAM_PIPES Platform supports STREAM pipes
-ACE_HAS_STRERROR Compiler/platform supports strerror ()
ACE_HAS_STRICT Use the STRICT compilation mode on Win32.
ACE_HAS_STRING_CLASS Platform/Compiler supports a
String class (e.g., GNU or
@@ -641,16 +601,12 @@ ACE_HAS_SYSV_SYSINFO Platform supports system
ACE_HAS_SYSV_IPC Platform supports System V IPC
(most versions of UNIX, but
not Win32)
-ACE_HAS_SYS_ERRLIST Platform/compiler supports
- _sys_errlist symbol
ACE_HAS_SYS_FILIO_H Platform provides
<sys/filio.h> header
ACE_HAS_SYS_LOADAVG_H Compiler/platform contains the
<sys/loadavg.h> file.
ACE_HAS_SYS_PSTAT_H Compiler/platform contains the
<sys/pstat.h> file.
-ACE_HAS_SYS_SIGLIST Compiler/platform supports
- _sys_siglist array
ACE_HAS_SYS_SOCKIO_H Compiler/platform provides the
sockio.h file
ACE_HAS_SYS_SYSCALL_H Compiler/platform contains the
@@ -718,9 +674,6 @@ ACE_HAS_UCONTEXT_T Platform supports ucontext_t
ACE_HAS_UNION_WAIT The wait() system call takes a
(union wait *) rather than int
*
-ACE_HAS_UNIXWARE_SVR4_SIGNAL_T Has inconsistent SVR4 signal
- stuff, but not the same as the
- other platforms
ACE_HAS_VALGRIND Running with valgrind
ACE_HAS_VERBOSE_NOTSUP Prints out console message in
ACE_NOTSUP. Useful for
@@ -857,25 +810,12 @@ ACE_LACKS_AUTO_MMAP_REPLACEMENT No system support for replacing any
ACE_LACKS_BSEARCH Compiler/platform lacks the
standard C library bsearch()
function
-ACE_LACKS_CLEARERR Platform lacks the clearerr system
- call.
ACE_LACKS_CLOSEDIR Platform lacks closedir and the closedir
emulation must be used
ACE_LACKS_OPENDIR Platform lacks opendir and the opendir
emulation must be used
ACE_LACKS_READDIR Platform lacks readdir and the readdir
emulation must be used
-ACE_LACKS_CMSG_DATA_MACRO Platform has
- ACE_HAS_4_4BSD_SENDMSG_RECVMSG but does
- not define CMSG_DATA (cmsg) macro.
-ACE_LACKS_CMSG_DATA_MEMBER Platform has
- ACE_HAS_4_4BSD_SENDMSG_RECVMSG but its
- cmsghdr structure does not contain
- an 'unsigned char cmsg_data[0]'
- member. (This may be
- 'unsigned char __cmsg_data[0]' on some
- platforms, in which case we need
- another macro.)
ACE_LACKS_COND_TIMEDWAIT_RESET pthread_cond_timedwait does
*not* reset the time argument
when the lock is acquired.
@@ -925,8 +865,6 @@ ACE_LACKS_INET_ATON Platform lacks the inet_aton()
ACE_LACKS_INET_ATON_PROTOTYPE Platform/compiler lacks the
inet_aton() prototype (e.g.,
LynxOS)
-ACE_LACKS_IOSTREAMS_TOTALLY Iostreams are not supported
- adequately on the given platform.
ACE_LACKS_IOSTREAM_FX iostream header does not
declare ipfx (), opfx (),
etc.
@@ -1005,15 +943,12 @@ ACE_LACKS_PUTENV_PROTOTYPE Platform/compiler lacks the
LynxOS)
ACE_LACKS_PWD_REENTRANT_FUNCTIONS Platform lacks getpwnam_r()
methods (e.g., SGI 6.2).
-ACE_LACKS_SID Platform lacks setsid()
ACE_LACKS_QSORT Compiler/platform lacks the
standard C library qsort()
function
-ACE_LACKS_RAND_REENTRANT_FUNCTIONS Platform lacks rand_r()
ACE_LACKS_READLINK Platform lacks the readlink() function.
ACE_LACKS_READV Platform doesn't define readv,
so use our own
-ACE_LACKS_RENAME Platform lacks rename().
ACE_LACKS_RLIMIT Platform/compiler lacks
{get,set}rlimit() function
(e.g., VxWorks, Chorus, and
@@ -1058,7 +993,6 @@ ACE_LACKS_SIGSET Platform lacks signal sets
(e.g., Chorus and Win32)
ACE_LACKS_STRPTIME Platform/compiler lacks the strptime()
function.
-ACE_LACKS_STRCHR Platform/compiler lacks strchr()
ACE_LACKS_WCSCHR Platform/compiler lacks wcschr()
ACE_LACKS_STRDUP Platform/compiler lacks strdup()
ACE_LACKS_WCSDUP Platform/compiler lacks wcsdup()
@@ -1562,25 +1496,6 @@ ACE_HAS_STREAM_PIPES:
No sysV.4 streams.
-ACE_HAS_STRERROR:
------------------
-
- Used in:
- ace/OS.h
-
- Notes:
- if not defined, does a:
- #define strerror(err) sys_errlist[err]
-
- Solaris:
- /usr/include/string.h
-
- HPUX:
- set it.
- in /usr/include/sys/errno.h and string.h
- extern char *strerror (int);
-
-
ACE_HAS_SVR4_DYNAMIC_LINKING:
-----------------------------
@@ -1711,27 +1626,6 @@ ACE_HAS_SYS_FILIO_H:
use #ifdef HP-UX to modify sysincludes.h
-ACE_HAS_SYS_SIGLIST:
---------------------
-
- Used in:
- ace/OS.h
- libsrc/Log_Msg/Log_Msg.C
-
- Notes:
- if not defined, does a:
- extern const char **_sys_siglist;
-
- Solaris:
- This is an array holding signal descriptions.
-
- HPUX:
- don't set.
- Some additional work is required. In libsrc/Log_Msg/Log_Msg.C,
- sys_siglist is used regardless of ACE_HAS_SYS_SIGLIST.
- have to add #ifdefs to remove them.
-
-
ACE_HAS_TEMPLATE_TYPEDEFS:
--------------------------
diff --git a/ACE/ace/RW_Mutex.cpp b/ACE/ace/RW_Mutex.cpp
index 319158da641..e218dd50040 100644
--- a/ACE/ace/RW_Mutex.cpp
+++ b/ACE/ace/RW_Mutex.cpp
@@ -18,7 +18,7 @@
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, RW_Mutex, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/RW_Mutex.h b/ACE/ace/RW_Mutex.h
index 1abed623c5f..b1c4bf331a7 100644
--- a/ACE/ace/RW_Mutex.h
+++ b/ACE/ace/RW_Mutex.h
@@ -92,7 +92,7 @@ public:
/**
* Note, for interface uniformity with other synchronization
- * wrappers we include the <tryacquire> method. This is implemented
+ * wrappers we include the tryacquire() method. This is implemented
* as a write-lock to be safe... Returns -1 on failure. If we
* "failed" because someone else already had the lock, @c errno is
* set to @c EBUSY.
@@ -115,11 +115,11 @@ protected:
/// Readers/writer lock.
ACE_rwlock_t lock_;
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
- /// destructor. This flag isn't protected by a lock, so make sure
+ /// Keeps track of whether remove() has been called yet to avoid
+ /// multiple remove() calls, e.g., explicitly and implicitly in the
+ /// destructor. This flag isn't protected by a lock, so make sure
/// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
+ /// remove() on the same object, which is a bad idea anyway...
bool removed_;
private:
diff --git a/ACE/ace/RW_Process_Mutex.cpp b/ACE/ace/RW_Process_Mutex.cpp
index bfe9a70fef3..aa132df10fe 100644
--- a/ACE/ace/RW_Process_Mutex.cpp
+++ b/ACE/ace/RW_Process_Mutex.cpp
@@ -4,7 +4,7 @@
#include "ace/Log_Msg.h"
#include "ace/ACE.h"
-ACE_RCSID(ace, RW_Process_Mutex, "$Id$")
+
#if !defined (__ACE_INLINE__)
#include "ace/RW_Process_Mutex.inl"
diff --git a/ACE/ace/RW_Process_Mutex.h b/ACE/ace/RW_Process_Mutex.h
index 318d9752fe0..27fc88de750 100644
--- a/ACE/ace/RW_Process_Mutex.h
+++ b/ACE/ace/RW_Process_Mutex.h
@@ -22,7 +22,6 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Default_Constants.h"
-#include "ace/OS_NS_fcntl.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -44,17 +43,11 @@ class ACE_Export ACE_RW_Process_Mutex
public:
/// Create a cross-process readers/writer mutex, passing in the optional
/// @a name, @a flags and @a mode \sa ACE_File_Lock.
- /// If not specified, a name is generated and flags and mode are set
- /// to default platform values.
-#if defined (ACE_WIN32)
+ /// If not specified, a name is generated and flags and mode are set
+ /// to default platform values.
ACE_RW_Process_Mutex (const ACE_TCHAR *name = 0,
int flags = O_CREAT|O_RDWR,
- mode_t mode = ACE_DEFAULT_OPEN_PERMS);
-#else
- ACE_RW_Process_Mutex (const ACE_TCHAR *name = 0,
- int flags = O_CREAT|O_RDWR,
- mode_t mode = S_IRUSR | S_IWUSR );
-#endif /* ACE_WIN32 */
+ mode_t mode = ACE_DEFAULT_RW_PROCESS_MUTEX_PERMS);
~ACE_RW_Process_Mutex (void);
diff --git a/ACE/ace/RW_Thread_Mutex.cpp b/ACE/ace/RW_Thread_Mutex.cpp
index bc1c9ecb44f..ee0c3ce33c3 100644
--- a/ACE/ace/RW_Thread_Mutex.cpp
+++ b/ACE/ace/RW_Thread_Mutex.cpp
@@ -18,7 +18,7 @@
#include "ace/Guard_T.h"
-ACE_RCSID(ace, RW_Thread_Mutex, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Reactor.cpp b/ACE/ace/Reactor.cpp
index ed9d70be269..cbdcf47ad2d 100644
--- a/ACE/ace/Reactor.cpp
+++ b/ACE/ace/Reactor.cpp
@@ -51,10 +51,6 @@
#include "ace/Reactor.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Reactor,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Reactor)
@@ -477,7 +473,9 @@ ACE_Reactor::notify (ACE_Event_Handler *event_handler,
// First, try to remember this reactor in the event handler, in case
// the event handler goes away before the notification is delivered.
if (event_handler != 0 && event_handler->reactor () == 0)
- event_handler->reactor (this);
+ {
+ event_handler->reactor (this);
+ }
return this->implementation ()->notify (event_handler, mask, tv);
}
diff --git a/ACE/ace/Reactor.h b/ACE/ace/Reactor.h
index a791a65227d..2211d817f81 100644
--- a/ACE/ace/Reactor.h
+++ b/ACE/ace/Reactor.h
@@ -43,7 +43,7 @@ class ACE_Sig_Set;
/*
* Hook to specialize the Reactor implementation with the concrete
- * Reactor type, for exmaple, select, thread pool reactor known
+ * Reactor type, for example, select, thread pool reactor known
* at compile time.
*/
//@@ REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK
@@ -107,14 +107,14 @@ public:
// = Singleton reactor event loop management methods.
// Note that these method ONLY work on the "Singleton Reactor,"
- // i.e., the one returned from <ACE_Reactor::instance>.
+ // i.e., the one returned from ACE_Reactor::instance().
/**
* Run the event loop until the
- * <ACE_Reactor::handle_events/ACE_Reactor::alertable_handle_events>
- * method returns -1 or the <end_event_loop> method is invoked.
+ * ACE_Reactor::handle_events()/ACE_Reactor::alertable_handle_events()
+ * method returns -1 or the end_event_loop() method is invoked.
* Note that this method can only be used by the singleton
- * <ACE_Reactor::instance>. Thus, to run another reactor use
- * <ACE_Reactor::run_reactor_event_loop>.
+ * ACE_Reactor::instance(). Thus, to run another reactor use
+ * ACE_Reactor::run_reactor_event_loop().
*
* @deprecated Use ACE_Reactor::instance()->run_reactor_event_loop() instead
*/
@@ -122,11 +122,11 @@ public:
static int run_alertable_event_loop (void);
/**
- * Run the event loop until the <ACE_Reactor::handle_events> or
+ * Run the event loop until the ACE_Reactor::handle_events() or
* <ACE_Reactor::alertable_handle_events> methods returns -1, the
- * <end_event_loop> method is invoked, or the ACE_Time_Value
+ * end_event_loop() method is invoked, or the ACE_Time_Value
* expires. Note that this method can only be used by the singleton
- * <ACE_Reactor::instance>. Thus, to run another reactor use
+ * ACE_Reactor::instance(). Thus, to run another reactor use
* <ACE_Reactor::run_reactor_event_loop>.
*
* @deprecated Use ACE_Reactor::instance()->run_reactor_event_loop() instead
@@ -135,10 +135,10 @@ public:
static int run_alertable_event_loop (ACE_Time_Value &tv);
/**
- * Instruct the <ACE_Reactor::instance> to terminate its event loop
- * and notifies the <ACE_Reactor::instance> so that it can wake up
+ * Instruct the ACE_Reactor::instance() to terminate its event loop
+ * and notifies the ACE_Reactor::instance() so that it can wake up
* and close down gracefully. Note that this method can only be
- * used by the singleton <ACE_Reactor::instance>. Thus, to
+ * used by the singleton ACE_Reactor::instance(). Thus, to
* terminate another reactor, use
* <ACE_Reactor::end_reactor_event_loop>.
*
@@ -147,9 +147,9 @@ public:
static int end_event_loop (void);
/**
- * Report if the <ACE_Reactor::instance>'s event loop is finished.
+ * Report if the ACE_Reactor::instance()'s event loop is finished.
* Note that this method can only be used by the singleton
- * <ACE_Reactor::instance>. Thus, to check another reactor use
+ * ACE_Reactor::instance(). Thus, to check another reactor use
* <ACE_Reactor::reactor_event_loop_done>.
*
* @deprecated Use ACE_Reactor::instance()->reactor_event_loop_done() instead
@@ -157,10 +157,10 @@ public:
static int event_loop_done (void);
/**
- * Resets the <ACE_Reactor::end_event_loop_> static so that the
- * <run_event_loop> method can be restarted. Note that this method
- * can only be used by the singleton <ACE_Reactor::instance>. Thus,
- * to reset another reactor use <ACE_Reactor::reset_reactor_event_loop>.
+ * Resets the ACE_Reactor::end_event_loop_ static so that the
+ * run_event_loop() method can be restarted. Note that this method
+ * can only be used by the singleton ACE_Reactor::instance(). Thus,
+ * to reset another reactor use ACE_Reactor::reset_reactor_event_loop().
*
* @deprecated Use ACE_Reactor::instance()->reset_reactor_event_loop()
* instead
@@ -179,16 +179,16 @@ public:
// These methods work with an instance of a reactor.
/**
* Run the event loop until the
- * <ACE_Reactor::handle_events/ACE_Reactor::alertable_handle_events>
- * method returns -1 or the <end_reactor_event_loop> method is invoked.
+ * ACE_Reactor::handle_events()/ACE_Reactor::alertable_handle_events()
+ * method returns -1 or the end_reactor_event_loop() method is invoked.
*/
int run_reactor_event_loop (REACTOR_EVENT_HOOK = 0);
int run_alertable_reactor_event_loop (REACTOR_EVENT_HOOK = 0);
/**
- * Run the event loop until the <ACE_Reactor::handle_events> or
+ * Run the event loop until the ACE_Reactor::handle_events() or
* <ACE_Reactor::alertable_handle_events> methods returns -1, the
- * <end_reactor_event_loop> method is invoked, or the ACE_Time_Value
+ * end_reactor_event_loop() method is invoked, or the ACE_Time_Value
* expires.
*/
int run_reactor_event_loop (ACE_Time_Value &tv,
@@ -212,8 +212,8 @@ public:
/// Indicate if the Reactor's event loop has been ended.
int reactor_event_loop_done (void);
- /// Resets the <ACE_Reactor::end_event_loop_> static so that the
- /// <run_event_loop> method can be restarted.
+ /// Resets the ACE_Reactor::end_event_loop_ static so that the
+ /// run_event_loop() method can be restarted.
void reset_reactor_event_loop (void);
/**
@@ -232,9 +232,9 @@ public:
virtual ~ACE_Reactor (void);
/**
- * Initialize the ACE_Reactor to manage <max_number_of_handles>.
- * If @a restart is false then the ACE_Reactor's <handle_events>
- * method will be restarted automatically when <EINTR> occurs. If
+ * Initialize the ACE_Reactor to manage @a max_number_of_handles.
+ * If @a restart is false then the ACE_Reactor's handle_events()
+ * method will be restarted automatically when @c EINTR occurs. If
* @a signal_handler or @a timer_queue are non-0 they are used as the
* signal handler and timer queue, respectively.
*/
@@ -281,8 +281,8 @@ public:
* that were dispatched, 0 if the @a max_wait_time elapsed without
* dispatching any handlers, or -1 if an error occurs.
*
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, the eventloop will
+ * The only difference between alertable_handle_events() and
+ * handle_events() is that in the alertable case, the eventloop will
* return when the system queues an I/O completion routine or an
* Asynchronous Procedure Call.
*/
@@ -294,8 +294,8 @@ public:
* @a max_wait_time value is a reference and can therefore never be
* NULL.
*
- * The only difference between <alertable_handle_events> and
- * <handle_events> is that in the alertable case, the eventloop will
+ * The only difference between alertable_handle_events() and
+ * handle_events() is that in the alertable case, the eventloop will
* return when the system queues an I/O completion routine or an
* Asynchronous Procedure Call.
*/
@@ -544,7 +544,7 @@ public:
/**
* Schedule a timer event.
*
- * Schedule a timer event that will expire after an <delay> amount
+ * Schedule a timer event that will expire after an @a delay amount
* of time. The return value of this method, a timer_id value,
* uniquely identifies the @a event_handler in the ACE_Reactor's
* internal list of timers. This timer_id value can be used to
@@ -559,13 +559,19 @@ public:
* @see cancel_timer()
* @see reset_timer_interval()
*
- * @param event_handler Event handler to schedule on reactor
- * @param arg Argument passed to the handle_timeout() method of
- * event_handler
- * @param delay Time interval after which the timer will expire
- * @param interval Time interval after which the timer will be automatically
- * rescheduled
- * @return -1 on failure, a timer_id value on success
+ * @param event_handler Event handler to schedule on reactor. The handler's
+ * handle_timeout() method will be called when this
+ * scheduled timer expires.
+ * @param arg Argument passed to the handle_timeout() method of
+ * event_handler.
+ * @param delay Time interval after which the timer will expire.
+ * @param interval Time interval for which the timer will be
+ * automatically rescheduled if the handle_timeout()
+ * callback does not return a value less than 0.
+ *
+ * @retval timer id, on success. The id can be used to
+ * cancel or reschedule this timer.
+ * @retval -1 on failure, with errno set.
*/
virtual long schedule_timer (ACE_Event_Handler *event_handler,
const void *arg,
@@ -578,7 +584,7 @@ public:
*
* Resets the interval of the timer represented by @a timer_id to
* @a interval, which is specified in relative time to the current
- * <gettimeofday>. If @a interval is equal to
+ * gettimeofday(). If @a interval is equal to
* ACE_Time_Value::zero, the timer will become a non-rescheduling
* timer. Returns 0 if successful, -1 if not.
*
@@ -703,7 +709,7 @@ public:
* Set the maximum number of times that ACE_Reactor will
* iterate and dispatch the ACE_Event_Handlers that are passed in
* via the notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop. By default, this is set to
+ * ACE_Message_Queue::dequeue() loop. By default, this is set to
* -1, which means "iterate until the queue is empty." Setting this
* to a value like "1 or 2" will increase "fairness" (and thus
* prevent starvation) at the expense of slightly higher dispatching
@@ -715,7 +721,7 @@ public:
* Get the maximum number of times that the ACE_Reactor will
* iterate and dispatch the ACE_Event_Handler's that are passed in
* via the notify queue before breaking out of its
- * <ACE_Message_Queue::dequeue> loop.
+ * ACE_Message_Queue::dequeue() loop.
*/
int max_notify_iterations (void);
diff --git a/ACE/ace/Reactor_Impl.cpp b/ACE/ace/Reactor_Impl.cpp
index 96411b8b0c6..9a5fa38464a 100644
--- a/ACE/ace/Reactor_Impl.cpp
+++ b/ACE/ace/Reactor_Impl.cpp
@@ -2,10 +2,6 @@
#include "ace/Reactor_Impl.h"
-ACE_RCSID (ace,
- Reactor_Impl,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Reactor_Impl::~ACE_Reactor_Impl (void)
diff --git a/ACE/ace/Reactor_Notification_Strategy.cpp b/ACE/ace/Reactor_Notification_Strategy.cpp
index a029e2c10c2..01ff86a1a5d 100644
--- a/ACE/ace/Reactor_Notification_Strategy.cpp
+++ b/ACE/ace/Reactor_Notification_Strategy.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Reactor_Notification_Strategy.h"
#include "ace/Reactor.h"
@@ -5,8 +7,6 @@
#include "ace/Reactor_Notification_Strategy.inl"
#endif /* __ACE_INLINE __ */
-ACE_RCSID(ace, Reactor_Notification_Strategy, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Reactor_Notification_Strategy::ACE_Reactor_Notification_Strategy (
diff --git a/ACE/ace/Reactor_Notification_Strategy.h b/ACE/ace/Reactor_Notification_Strategy.h
index d0cd247400e..c73a04a1aad 100644
--- a/ACE/ace/Reactor_Notification_Strategy.h
+++ b/ACE/ace/Reactor_Notification_Strategy.h
@@ -28,7 +28,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @brief Used to notify an ACE_Reactor
*
* Integrates the ACE_Message_Queue notification into the
- * <ACE_Reactor::notify> method.
+ * ACE_Reactor::notify() method.
*/
class ACE_Export ACE_Reactor_Notification_Strategy : public ACE_Notification_Strategy
{
@@ -37,7 +37,7 @@ public:
ACE_Event_Handler *eh,
ACE_Reactor_Mask mask);
- /// Default dtor.
+ /// Default destructor.
virtual ~ACE_Reactor_Notification_Strategy (void);
virtual int notify (void);
diff --git a/ACE/ace/Reactor_Timer_Interface.cpp b/ACE/ace/Reactor_Timer_Interface.cpp
index 6c07f21ac86..6c7f59df26f 100644
--- a/ACE/ace/Reactor_Timer_Interface.cpp
+++ b/ACE/ace/Reactor_Timer_Interface.cpp
@@ -2,11 +2,6 @@
#include "ace/Reactor_Timer_Interface.h"
-ACE_RCSID (ace,
- Reactor_Timer_Interface,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Reactor_Timer_Interface::~ACE_Reactor_Timer_Interface()
diff --git a/ACE/ace/Read_Buffer.cpp b/ACE/ace/Read_Buffer.cpp
index ec5c8b94ef1..0c18bfe3ad0 100644
--- a/ACE/ace/Read_Buffer.cpp
+++ b/ACE/ace/Read_Buffer.cpp
@@ -13,7 +13,7 @@
#include "ace/Service_Config.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(ace, Read_Buffer, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Read_Buffer.h b/ACE/ace/Read_Buffer.h
index cfa0dd0f791..5ab743e9d94 100644
--- a/ACE/ace/Read_Buffer.h
+++ b/ACE/ace/Read_Buffer.h
@@ -32,7 +32,7 @@ class ACE_Allocator;
/**
* @class ACE_Read_Buffer
*
- * @brief Efficiently reads an artibrarily large buffer from an input
+ * @brief Efficiently reads an arbitrarily large buffer from an input
* stream up to and including a termination character. Also
* performs search/replace on single occurrences a character in
* the buffer using the principles of Integrated Layer
@@ -66,13 +66,13 @@ public:
/**
* Returns a pointer dynamically allocated with
- * ACE_Allocator::malloc to data from the input stream up to (and
+ * ACE_Allocator::malloc() to data from the input stream up to (and
* including) the @a terminator. If @a search is >= 0 then all
* occurrences of the @a search value are substituted with the
* @a replace value. The last of the byte of data is a 0, so that
* @c strlen can be used on it. The caller is responsible for
* freeing the pointer returned from this method using the
- * ACE_Allocator::free.
+ * ACE_Allocator::free().
*/
char *read (int terminator = EOF,
int search = '\n',
diff --git a/ACE/ace/Recursive_Thread_Mutex.cpp b/ACE/ace/Recursive_Thread_Mutex.cpp
index f930aa164d4..07603a9cc4e 100644
--- a/ACE/ace/Recursive_Thread_Mutex.cpp
+++ b/ACE/ace/Recursive_Thread_Mutex.cpp
@@ -18,8 +18,6 @@
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Recursive_Thread_Mutex, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Recursive_Thread_Mutex)
@@ -82,7 +80,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/Recursive_Thread_Mutex.h b/ACE/ace/Recursive_Thread_Mutex.h
index 38effc66afb..ab5b3a6f2f1 100644
--- a/ACE/ace/Recursive_Thread_Mutex.h
+++ b/ACE/ace/Recursive_Thread_Mutex.h
@@ -72,7 +72,7 @@ public:
int acquire (ACE_Time_Value &tv);
/**
- * If @a tv == 0 the call <acquire()> directly. Otherwise, Block the
+ * If @a tv == 0 the call acquire() directly. Otherwise, Block the
* thread until we acquire the mutex or until @a tv times out, in
* which case -1 is returned with @c errno == @c ETIME. Note that
* <*tv> is assumed to be in "absolute" rather than "relative" time.
@@ -89,23 +89,23 @@ public:
int tryacquire (void);
/**
- * Acquire mutex ownership. This calls <acquire> and is only
- * here to make the <ACE_Recusive_Thread_Mutex> interface consistent
+ * Acquire mutex ownership. This calls acquire() and is only
+ * here to make the ACE_Recusive_Thread_Mutex interface consistent
* with the other synchronization APIs.
*/
int acquire_read (void);
/**
- * Acquire mutex ownership. This calls <acquire> and is only
- * here to make the <ACE_Recusive_Thread_Mutex> interface consistent
+ * Acquire mutex ownership. This calls acquire() and is only
+ * here to make the ACE_Recusive_Thread_Mutex interface consistent
* with the other synchronization APIs.
*/
int acquire_write (void);
/**
* Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the
- * <ACE_Recusive_Thread_Mutex> interface consistent with the other
+ * tryacquire() and is only here to make the
+ * ACE_Recusive_Thread_Mutex interface consistent with the other
* synchronization APIs. Returns -1 on failure. If we "failed"
* because someone else already had the lock, @c errno is set to
* @c EBUSY.
@@ -114,8 +114,8 @@ public:
/**
* Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the
- * <ACE_Recusive_Thread_Mutex> interface consistent with the other
+ * tryacquire() and is only here to make the
+ * ACE_Recusive_Thread_Mutex interface consistent with the other
* synchronization APIs. Returns -1 on failure. If we "failed"
* because someone else already had the lock, @c errno is set to
* @c EBUSY.
@@ -151,7 +151,7 @@ public:
int get_nesting_level (void);
/// Returns a reference to the recursive mutex;
- ACE_recursive_thread_mutex_t &mutex (void);
+ ACE_recursive_thread_mutex_t &lock (void);
/// Returns a reference to the recursive mutex's internal mutex;
ACE_thread_mutex_t &get_nesting_mutex (void);
@@ -169,11 +169,11 @@ protected:
/// Recursive mutex.
ACE_recursive_thread_mutex_t lock_;
- /// Keeps track of whether <remove> has been called yet to avoid
- /// multiple <remove> calls, e.g., explicitly and implicitly in the
+ /// Keeps track of whether remove() has been called yet to avoid
+ /// multiple remove() calls, e.g., explicitly and implicitly in the
/// destructor. This flag isn't protected by a lock, so make sure
/// that you don't have multiple threads simultaneously calling
- /// <remove> on the same object, which is a bad idea anyway...
+ /// remove() on the same object, which is a bad idea anyway...
bool removed_;
private:
diff --git a/ACE/ace/Recursive_Thread_Mutex.inl b/ACE/ace/Recursive_Thread_Mutex.inl
index 0269de24d6b..6a7b55dc6a2 100644
--- a/ACE/ace/Recursive_Thread_Mutex.inl
+++ b/ACE/ace/Recursive_Thread_Mutex.inl
@@ -5,7 +5,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE ACE_recursive_thread_mutex_t &
-ACE_Recursive_Thread_Mutex::mutex (void)
+ACE_Recursive_Thread_Mutex::lock (void)
{
return lock_;
}
diff --git a/ACE/ace/Recyclable.cpp b/ACE/ace/Recyclable.cpp
index 5da42cc8d15..70cb3d95c9d 100644
--- a/ACE/ace/Recyclable.cpp
+++ b/ACE/ace/Recyclable.cpp
@@ -6,7 +6,7 @@
#include "ace/Recyclable.inl"
#endif /* __ACE_INLINE __ */
-ACE_RCSID(ace, Recyclable, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Refcountable.h b/ACE/ace/Refcountable.h
deleted file mode 100644
index 66a9c5350f0..00000000000
--- a/ACE/ace/Refcountable.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Refcountable.h
- *
- * $Id$
- *
- * @author Doug Schmidt
- */
-//=============================================================================
-#ifndef ACE_REFCOUNTABLE_H
-#define ACE_REFCOUNTABLE_H
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/ACE_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Refcountable_T.h"
-#include "ace/Null_Mutex.h"
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-typedef ACE_Refcountable_T<ACE_Null_Mutex> ACE_Refcountable;
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-#include /**/ "ace/post.h"
-#endif /*ACE_REFCOUNTABLE_H*/
diff --git a/ACE/ace/Refcountable_T.cpp b/ACE/ace/Refcountable_T.cpp
index 0d606937bdb..df325e4ebe2 100644
--- a/ACE/ace/Refcountable_T.cpp
+++ b/ACE/ace/Refcountable_T.cpp
@@ -5,10 +5,6 @@
#include "ace/Refcountable_T.h"
-ACE_RCSID (ace,
- Refcountable_T,
- "$Id$")
-
#if !defined (__ACE_INLINE__)
#include "ace/Refcountable_T.inl"
#endif /* __ACE_INLINE__ */
diff --git a/ACE/ace/Refcountable_T.h b/ACE/ace/Refcountable_T.h
index 1240572f29a..be9ebf7bc70 100644
--- a/ACE/ace/Refcountable_T.h
+++ b/ACE/ace/Refcountable_T.h
@@ -22,6 +22,7 @@
#include "ace/Atomic_Op.h"
#include "ace/Synch_Traits.h"
+#include "ace/Null_Mutex.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -32,8 +33,10 @@ public:
/// Destructor.
virtual ~ACE_Refcountable_T (void);
- // = Increment/Decrement refcount
+ /// Increment refcount
long increment (void);
+
+ /// Decrement refcount
long decrement (void);
/// Returns the current refcount.
@@ -47,8 +50,6 @@ protected:
ACE_Atomic_Op <ACE_LOCK, long> refcount_;
};
-typedef ACE_Refcountable_T<ACE_Null_Mutex> ACE_Refcountable;
-
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
diff --git a/ACE/ace/Registry.cpp b/ACE/ace/Registry.cpp
index d20913634de..0bd15533852 100644
--- a/ACE/ace/Registry.cpp
+++ b/ACE/ace/Registry.cpp
@@ -2,10 +2,6 @@
#include "ace/Registry.h"
-ACE_RCSID (ace,
- Registry,
- "$Id$")
-
#if defined (ACE_WIN32) && !defined (ACE_LACKS_WIN32_REGISTRY)
# include "ace/os_include/os_netdb.h"
@@ -842,11 +838,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 +1074,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;
@@ -1088,6 +1090,7 @@ ACE_Predefined_Naming_Contexts::connect (ACE_Registry::Naming_Context &naming_co
predefined,
&naming_context.key_);
if (predefined == HKEY_CURRENT_USER || predefined == HKEY_CLASSES_ROOT)
+ {
// Make sure that for these types, the machine is local
if (machine_name == 0 ||
ACE_Predefined_Naming_Contexts::is_local_host (machine_name))
@@ -1097,6 +1100,7 @@ ACE_Predefined_Naming_Contexts::connect (ACE_Registry::Naming_Context &naming_co
}
else
result = -1;
+ }
ACE_REGISTRY_CALL_RETURN (result);
#endif // ACE_HAS_WINCE
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/Registry_Name_Space.cpp b/ACE/ace/Registry_Name_Space.cpp
index bca6bd1ed39..2cbace4d32c 100644
--- a/ACE/ace/Registry_Name_Space.cpp
+++ b/ACE/ace/Registry_Name_Space.cpp
@@ -2,7 +2,7 @@
#include "ace/Registry_Name_Space.h"
-ACE_RCSID(ace, Registry_Name_Space, "$Id$")
+
#if (defined (ACE_WIN32) && defined (ACE_USES_WCHAR))
// This only works on Win32 platforms when ACE_USES_WCHAR is turned on
diff --git a/ACE/ace/Registry_Name_Space.h b/ACE/ace/Registry_Name_Space.h
index b54f99dc3af..66db9652890 100644
--- a/ACE/ace/Registry_Name_Space.h
+++ b/ACE/ace/Registry_Name_Space.h
@@ -67,18 +67,18 @@ public:
/**
* Overwrite the value or type of an existing name in a
* ACE_Name_Space or bind a new name to the context, if it didn't
- * exist yet. (Wide charcter strings interface).
+ * exist yet. (Wide character strings interface).
*/
int rebind (const ACE_NS_WString &name_in,
const ACE_NS_WString &value_in,
const char *type_in = "");
- /// Delete a name from a ACE_Name_Space (Wide charcter strings
+ /// Delete a name from a ACE_Name_Space (Wide character strings
/// Interface).
int unbind (const ACE_NS_WString &name_in);
/// Get value and type of a given name binding (Wide chars). The
- /// caller is responsible for deleting both <value_out> and <type_out>!
+ /// caller is responsible for deleting both @a value_out and @a type_out!
int resolve (const ACE_NS_WString &name_in,
ACE_NS_WString &value_out,
char *&type_out);
diff --git a/ACE/ace/Remote_Name_Space.cpp b/ACE/ace/Remote_Name_Space.cpp
index 43fb8db9b19..f7767258c9d 100644
--- a/ACE/ace/Remote_Name_Space.cpp
+++ b/ACE/ace/Remote_Name_Space.cpp
@@ -1,13 +1,10 @@
+// $Id$
#include "ace/Remote_Name_Space.h"
#include "ace/Auto_Ptr.h"
#include "ace/Log_Msg.h"
#include "ace/SString.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace,
- Remote_Name_Space,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
int
diff --git a/ACE/ace/Remote_Name_Space.h b/ACE/ace/Remote_Name_Space.h
index 1f7e8de6555..bfb7cdfe4c1 100644
--- a/ACE/ace/Remote_Name_Space.h
+++ b/ACE/ace/Remote_Name_Space.h
@@ -77,18 +77,18 @@ public:
/**
* Overwrite the value or type of an existing name in a
* ACE_Remote_Name_Space or bind a new name to the context, if it
- * didn't exist yet. (Wide charcter strings interface).
+ * didn't exist yet. (Wide character strings interface).
*/
virtual int rebind (const ACE_NS_WString &name_in,
const ACE_NS_WString &value_in,
const char *type_in = "");
- /// Delete a name from a ACE_Remote_Name_Space (Wide charcter strings
+ /// Delete a name from a ACE_Remote_Name_Space (Wide character strings
/// Interface).
virtual int unbind (const ACE_NS_WString &name_in);
/// Get value and type of a given name binding (Wide chars). The
- /// caller is responsible for deleting both <value_out> and <type_out>!
+ /// caller is responsible for deleting both @a value_out and @a type_out!
virtual int resolve (const ACE_NS_WString &name_in,
ACE_NS_WString &value_out,
char *&type_out);
diff --git a/ACE/ace/Remote_Tokens.cpp b/ACE/ace/Remote_Tokens.cpp
index 6e998f6c1f3..250a6d23a70 100644
--- a/ACE/ace/Remote_Tokens.cpp
+++ b/ACE/ace/Remote_Tokens.cpp
@@ -10,12 +10,6 @@
#include "ace/Remote_Tokens.inl"
#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Remote_Tokens,
- "$Id$")
-
-
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
#define ACE_TSS_CONNECTION_MUTEX ACE_Thread_Mutex
#else
diff --git a/ACE/ace/Remote_Tokens.h b/ACE/ace/Remote_Tokens.h
index 288d0ca454f..a5c080ab6be 100644
--- a/ACE/ace/Remote_Tokens.h
+++ b/ACE/ace/Remote_Tokens.h
@@ -41,8 +41,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* The Remote_Token_Proxy class implements the mechanisms for
* distributed token operations. It is similar to the
* ACE_Token_Proxy.
- * = BUGS
- * Distributed sleep_hooks have not been implemented. <owner_id>
+ * @todo
+ * Distributed sleep_hooks have not been implemented. <owner_id>
* is not implemented.
*/
class ACE_Export ACE_Remote_Token_Proxy : public ACE_Token_Proxy
@@ -56,8 +56,8 @@ public:
/**
* Same as Token_Proxy. @a name is the string uniquely identifying
- * the token. <ignore_deadlock> can be 1 to disable deadlock
- * notifications. <debug> prints debug messages.
+ * the token. @a ignore_deadlock can be 1 to disable deadlock
+ * notifications. @a debug prints debug messages.
*/
int open (const ACE_TCHAR *name,
int ignore_deadlock = 0,
@@ -88,7 +88,7 @@ public:
/**
* Try to acquire the distributed token. If the token is already
- * held, the call returns without queueing the caller as a waiter.
+ * held, the call returns without queuing the caller as a waiter.
* Returns 0 on success (the token was acquired), and -1 with
* EWOULDBLOCK if the token was already held.
*/
@@ -98,7 +98,7 @@ public:
* Renew the token by offering to release it if there are any other
* waiters, otherwise get the token back immediately. This renew
* has the same semantics as ACE_Local_Mutex release. It is
- * semantically equivalent to <release> followed by <acquire>, but
+ * semantically equivalent to release() followed by acquire(), but
* it is faster. options contains the timeout value used if renew
* blocks. As with acquire, the timer is maintained at the token
* server. If there are waiters and requeue_position == -1, the
@@ -120,10 +120,9 @@ public:
virtual int release (ACE_Synch_Options &options =
ACE_Synch_Options::synch);
- /// Become interface compliant for ACE_Guard<>. This has no
+ /// Become interface compliant for our guards. This has no
/// functionality.
- virtual int remove (ACE_Synch_Options &options =
- ACE_Synch_Options::synch);
+ virtual int remove (ACE_Synch_Options &options = ACE_Synch_Options::synch);
/// Override the default to do nothing.
virtual void token_acquired (ACE_TPQ_Entry *);
@@ -288,7 +287,7 @@ public:
/// Factory Method that creates a new SOCK Stream.
virtual ACE_SOCK_Stream *make_TSS_TYPE (void) const;
- /// Inheritence and operator overloading don't mix. Redefine this
+ /// Inheritance and operator overloading don't mix. Redefine this
/// from ACE_TSS so that we can use it.
operator ACE_SOCK_Stream *(void);
diff --git a/ACE/ace/SOCK.cpp b/ACE/ace/SOCK.cpp
index fdeb4569d50..c008dba43c3 100644
--- a/ACE/ace/SOCK.cpp
+++ b/ACE/ace/SOCK.cpp
@@ -7,7 +7,7 @@
#include "ace/SOCK.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SOCK.h b/ACE/ace/SOCK.h
index f78f693e3c1..f0841270e50 100644
--- a/ACE/ace/SOCK.h
+++ b/ACE/ace/SOCK.h
@@ -63,7 +63,7 @@ public:
*/
int close (void);
- /// Return the local endpoint address in the referenced <ACE_Addr>.
+ /// Return the local endpoint address in the referenced ACE_Addr.
/// Returns 0 if successful, else -1.
int get_local_addr (ACE_Addr &) const;
@@ -120,7 +120,7 @@ protected:
/// Protected destructor.
/**
- * Not a virtual destructor. Protected destructor to prevent
+ * Not a virtual destructor. Protected destructor to prevent
* operator delete() from being called through a base class ACE_SOCK
* pointer/reference.
*/
diff --git a/ACE/ace/SOCK_Acceptor.cpp b/ACE/ace/SOCK_Acceptor.cpp
index 140e416b49a..542333bc6ad 100644
--- a/ACE/ace/SOCK_Acceptor.cpp
+++ b/ACE/ace/SOCK_Acceptor.cpp
@@ -16,7 +16,7 @@
#include "ace/OS_QoS.h"
#endif // ACE_HAS_WINCE
-ACE_RCSID(ace, SOCK_Acceptor, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SOCK_CODgram.cpp b/ACE/ace/SOCK_CODgram.cpp
index 007096c890c..e038fb9c3b5 100644
--- a/ACE/ace/SOCK_CODgram.cpp
+++ b/ACE/ace/SOCK_CODgram.cpp
@@ -8,8 +8,6 @@
#include "ace/SOCK_CODgram.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK_CODgram, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_CODgram)
diff --git a/ACE/ace/SOCK_Connector.cpp b/ACE/ace/SOCK_Connector.cpp
index 0d737ef7e34..f45361473f7 100644
--- a/ACE/ace/SOCK_Connector.cpp
+++ b/ACE/ace/SOCK_Connector.cpp
@@ -15,8 +15,6 @@
#include "ace/SOCK_Connector.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK_Connector, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_Connector)
@@ -83,11 +81,9 @@ ACE_SOCK_Connector::shared_connect_start (ACE_SOCK_Stream &new_stream,
if (local_sap != ACE_Addr::sap_any)
{
sockaddr *laddr = reinterpret_cast<sockaddr *> (local_sap.get_addr ());
- int size = local_sap.get_size ();
+ int const size = local_sap.get_size ();
- if (ACE_OS::bind (new_stream.get_handle (),
- laddr,
- size) == -1)
+ if (ACE_OS::bind (new_stream.get_handle (), laddr, size) == -1)
{
// Save/restore errno.
ACE_Errno_Guard error (errno);
@@ -150,9 +146,7 @@ ACE_SOCK_Connector::shared_connect_finish (ACE_SOCK_Stream &new_stream,
#endif /* ACE_WIN32 */
}
// Wait synchronously using timeout.
- else if (this->complete (new_stream,
- 0,
- timeout) == -1)
+ else if (this->complete (new_stream, 0, timeout) == -1)
error = errno;
else
return 0;
@@ -179,7 +173,6 @@ ACE_SOCK_Connector::shared_connect_finish (ACE_SOCK_Stream &new_stream,
}
// Actively connect and produce a new ACE_SOCK_Stream if things go well...
-
int
ACE_SOCK_Connector::connect (ACE_SOCK_Stream &new_stream,
const ACE_Addr &remote_sap,
@@ -206,9 +199,7 @@ ACE_SOCK_Connector::connect (ACE_SOCK_Stream &new_stream,
reinterpret_cast<sockaddr *> (remote_sap.get_addr ()),
remote_sap.get_size ());
- return this->shared_connect_finish (new_stream,
- timeout,
- result);
+ return this->shared_connect_finish (new_stream, timeout, result);
}
#if !defined (ACE_HAS_WINCE)
@@ -244,9 +235,7 @@ ACE_SOCK_Connector::connect (ACE_SOCK_Stream &new_stream,
remote_sap.get_size (),
qos_params);
- return this->shared_connect_finish (new_stream,
- timeout,
- result);
+ return this->shared_connect_finish (new_stream, timeout, result);
}
#endif // ACE_HAS_WINCE
@@ -258,8 +247,7 @@ ACE_SOCK_Connector::complete (ACE_SOCK_Stream &new_stream,
const ACE_Time_Value *tv)
{
ACE_TRACE ("ACE_SOCK_Connector::complete");
- ACE_HANDLE h = ACE::handle_timed_complete (new_stream.get_handle (),
- tv);
+ ACE_HANDLE h = ACE::handle_timed_complete (new_stream.get_handle (), tv);
// We failed to get connected.
if (h == ACE_INVALID_HANDLE)
{
@@ -270,8 +258,7 @@ ACE_SOCK_Connector::complete (ACE_SOCK_Stream &new_stream,
// then retry to see if it's a real failure.
ACE_Time_Value time (0, ACE_NON_BLOCKING_BUG_DELAY);
ACE_OS::sleep (time);
- h = ACE::handle_timed_complete (new_stream.get_handle (),
- tv);
+ h = ACE::handle_timed_complete (new_stream.get_handle (), tv);
if (h == ACE_INVALID_HANDLE)
{
#endif /* ACE_WIN32 */
diff --git a/ACE/ace/SOCK_Connector.h b/ACE/ace/SOCK_Connector.h
index 842a69c65bc..2cb7cbd3d1a 100644
--- a/ACE/ace/SOCK_Connector.h
+++ b/ACE/ace/SOCK_Connector.h
@@ -43,7 +43,6 @@ class ACE_Time_Value;
class ACE_Export ACE_SOCK_Connector
{
public:
- // = Initialization and termination methods.
/// Default constructor.
ACE_SOCK_Connector (void);
@@ -249,7 +248,7 @@ public:
int perms = 0);
#endif // ACE_HAS_WINCE
- /// Default dtor.
+ /// Default destructor.
~ACE_SOCK_Connector (void);
// = Completion routine.
diff --git a/ACE/ace/SOCK_Dgram.cpp b/ACE/ace/SOCK_Dgram.cpp
index 28acd86b0b4..5b48418a846 100644
--- a/ACE/ace/SOCK_Dgram.cpp
+++ b/ACE/ace/SOCK_Dgram.cpp
@@ -1,12 +1,12 @@
+// $Id$
+
#include "ace/SOCK_Dgram.h"
-#include "ace/Handle_Set.h"
#include "ace/Log_Msg.h"
#include "ace/INET_Addr.h"
#include "ace/ACE.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_Memory.h"
-#include "ace/OS_NS_sys_select.h"
#include "ace/OS_NS_ctype.h"
#include "ace/os_include/net/os_if.h"
#include "ace/Truncate.h"
@@ -16,13 +16,9 @@
#endif /* __ACE_INLINE__ */
#if defined (ACE_HAS_IPV6) && defined (ACE_WIN32)
-#include /**/ <Iphlpapi.h>
+#include /**/ <iphlpapi.h>
#endif
-ACE_RCSID (ace,
- SOCK_Dgram,
- "$Id$")
-
// This is a workaround for platforms with non-standard
// definitions of the ip_mreq structure
#if ! defined (IMR_MULTIADDR)
@@ -54,34 +50,9 @@ ACE_SOCK_Dgram::recv (iovec *io_vec,
{
ACE_TRACE ("ACE_SOCK_Dgram::recv");
#if defined (FIONREAD)
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- // Check the status of the current socket to make sure there's data
- // to recv (or time out).
-# if defined (ACE_WIN32)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- int select_width = 0;
-# else
- int select_width = int (this->get_handle ()) + 1;
-# endif /* ACE_WIN32 */
- switch (ACE_OS::select (select_width,
- handle_set,
- 0, 0,
- timeout))
+ if( ACE::handle_read_ready (this->get_handle (), timeout) != 1 )
{
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
return -1;
- /* NOTREACHED */
- default:
- // Goes fine, fallthrough to get data
- break;
}
sockaddr *saddr = (sockaddr *) addr.get_addr ();
@@ -453,35 +424,15 @@ ACE_SOCK_Dgram::recv (void *buf,
int flags,
const ACE_Time_Value *timeout) const
{
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
- // Check the status of the current socket.
-#if defined (ACE_WIN32)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- int select_width = 0;
-#else
- int select_width = int (this->get_handle ()) + 1;
-#endif /* ACE_WIN32 */
- switch (ACE_OS::select (select_width,
- handle_set,
- 0,
- 0,
- timeout))
+ if( ACE::handle_read_ready (this->get_handle (), timeout) == 1 )
{
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
// Goes fine, call <recv> to get data
return this->recv (buf, n, addr, flags);
}
+ else
+ {
+ return -1;
+ }
}
ssize_t
@@ -491,35 +442,16 @@ ACE_SOCK_Dgram::send (const void *buf,
int flags,
const ACE_Time_Value *timeout) const
{
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
// Check the status of the current socket.
-#if defined (ACE_WIN32)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- int select_width = 0;
-#else
- int select_width = int (this->get_handle ()) + 1;
-#endif /* ACE_WIN32 */
- switch (ACE_OS::select (select_width,
- 0,
- handle_set,
- 0,
- timeout))
+ if( ACE::handle_write_ready (this->get_handle (), timeout) == 1 )
{
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
- return -1;
- /* NOTREACHED */
- default:
// Goes fine, call <send> to transmit the data.
return this->send (buf, n, addr, flags);
}
+ else
+ {
+ return -1;
+ }
}
int
diff --git a/ACE/ace/SOCK_Dgram.h b/ACE/ace/SOCK_Dgram.h
index 7249f8cb8cb..b48f748d92a 100644
--- a/ACE/ace/SOCK_Dgram.h
+++ b/ACE/ace/SOCK_Dgram.h
@@ -206,8 +206,7 @@ public:
protected:
/// Open is shared by this and by <LSOCK_Dgram>.
- int shared_open (const ACE_Addr &local,
- int protocol_family);
+ int shared_open (const ACE_Addr &local, int protocol_family);
/// Create a multicast addr/if pair, in format useful for system calls.
/// If mreq param is NULL, just verify the passed addr/interface specs.
diff --git a/ACE/ace/SOCK_Dgram_Bcast.cpp b/ACE/ace/SOCK_Dgram_Bcast.cpp
index d8fac47ec9d..1a44ce597b5 100644
--- a/ACE/ace/SOCK_Dgram_Bcast.cpp
+++ b/ACE/ace/SOCK_Dgram_Bcast.cpp
@@ -13,7 +13,7 @@
#include "ace/SOCK_Dgram_Bcast.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK_Dgram_Bcast, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -151,18 +151,9 @@ ACE_SOCK_Dgram_Bcast::mk_broadcast (const ACE_TCHAR *host_name)
if (hp == 0)
return -1;
else
-#if defined(_UNICOS)
- {
- ACE_UINT64 haddr; // a place to put the address
- char * haddrp = (char *) &haddr; // convert to char pointer
- ACE_OS::memcpy(haddrp,(char *) hp->h_addr,hp->h_length);
- host_addr.sin_addr.s_addr = haddr;
- }
-#else /* ! _UNICOS */
ACE_OS::memcpy ((char *) &host_addr.sin_addr.s_addr,
(char *) hp->h_addr,
hp->h_length);
-#endif /* ! _UNICOS */
}
@@ -190,7 +181,7 @@ ACE_SOCK_Dgram_Bcast::mk_broadcast (const ACE_TCHAR *host_name)
// Silently skip link interfaces
if (ifr->ifr_addr.sa_family == AF_LINK)
continue;
-#endif /* __QNX__ */
+#endif /* __QNX__ || ACE_VXWORKS */
// Compare host ip address with interface ip address.
if (host_name)
{
diff --git a/ACE/ace/SOCK_Dgram_Mcast.cpp b/ACE/ace/SOCK_Dgram_Mcast.cpp
index 0d7d0b70d2e..13adb17092c 100644
--- a/ACE/ace/SOCK_Dgram_Mcast.cpp
+++ b/ACE/ace/SOCK_Dgram_Mcast.cpp
@@ -13,17 +13,13 @@
#endif
#if defined (ACE_HAS_IPV6) && defined (ACE_WIN32)
-#include /**/ <Iphlpapi.h>
+#include /**/ <iphlpapi.h>
#endif
#if !defined (__ACE_INLINE__)
#include "ace/SOCK_Dgram_Mcast.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- SOCK_Dgram_Mcast,
- "$Id$")
-
#include "ace/Log_Msg.h"
// This is a workaround for platforms with non-standard
@@ -262,7 +258,7 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
{
size_t nr_subscribed = 0;
# if defined(__linux__)
- struct if_nameindex *intf;
+ struct if_nameindex *intf = 0;
intf = ACE_OS::if_nameindex ();
diff --git a/ACE/ace/SOCK_Dgram_Mcast.h b/ACE/ace/SOCK_Dgram_Mcast.h
index 48f1610ad20..6f3c3bc5b62 100644
--- a/ACE/ace/SOCK_Dgram_Mcast.h
+++ b/ACE/ace/SOCK_Dgram_Mcast.h
@@ -59,7 +59,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* independent. While this instance is open, 1 send interface (and a default
* send address) is in effect and 0, 1, or multiple recv addresses/interfaces
* are in effect.
- * - The first <open>/<subscribe> invocation defines the network interface
+ * - The first open()/subscribe() invocation defines the network interface
* and default address used for all sends by this instance, defines the
* port# and optionally the multicast address bound to the underlying
* socket, and defines the (one) port# that is used for all subscribes
@@ -75,11 +75,11 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* However; there are filtering options that can be applied, to narrow it
* down considerably.
*
- * Interface specification notes (for <subscribe> and <unsubscribe>):
+ * Interface specification notes (for subscribe() and unsubscribe()):
* - If net_if == 0, the null_iface_opt option determines whether only the
* system "default" interface or all interfaces is affected. Specifying
* "all" interfaces is supported only for environments for which
- * <ACE_Sock_Connect::get_ip_interfaces> is properly implemented.
+ * ACE_Sock_Connect::get_ip_interfaces() is properly implemented.
* - Multiple subscriptions for the same address but different interfaces is
* normally supported, but re-subscription to an address/interface that is
* already subscribed is normally not allowed.
@@ -89,7 +89,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* Some platforms, such as pSoS, support only cardinal numbers as network
* interface specifications; for these platforms, just give these numbers in
* alphanumeric form and <subscribe> will convert them into numbers via
- * <ACE_OS::atoi>.
+ * ACE_OS::atoi().
*/
class ACE_Export ACE_SOCK_Dgram_Mcast : public ACE_SOCK_Dgram
{
@@ -122,55 +122,55 @@ public:
// <open> is not explicitly invoked) is the one that is bound.
//
/// Disable address bind. (Bind only port.)
- // Note that this might seem odd, but we need a way to distinquish between
- // default behavior, which might or might not be to bind, and explicitely
- // choosing to bind or not to bind--which "is the question." ;-)
+ /// @note This might seem odd, but we need a way to distinguish between
+ /// default behavior, which might or might not be to bind, and explicitly
+ /// choosing to bind or not to bind--which "is the question." ;-)
OPT_BINDADDR_NO = 0,
/// Enable address bind. (Bind port and address.)
OPT_BINDADDR_YES = 1,
/// Default value for BINDADDR option. (Environment-dependent.)
#if defined (ACE_LACKS_PERFECT_MULTICAST_FILTERING) \
&& (ACE_LACKS_PERFECT_MULTICAST_FILTERING == 1)
- // Platforms that don't support perfect filtering. Note that perfect
- // filtering only really applies to multicast traffic, not unicast
- // or broadcast.
+ /// Platforms that don't support perfect filtering. Note that perfect
+ /// filtering only really applies to multicast traffic, not unicast
+ /// or broadcast.
DEFOPT_BINDADDR = OPT_BINDADDR_YES,
# else
- // At least some Win32 OS's can not bind mcast addr, so disable it.
- // General-purpose default behavior is 'disabled', since effect is
- // environment-specific and side-effects might be surprising.
+ /// At least some Win32 OS's can not bind mcast addr, so disable it.
+ /// General-purpose default behavior is 'disabled', since effect is
+ /// environment-specific and side-effects might be surprising.
DEFOPT_BINDADDR = OPT_BINDADDR_NO,
#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING = 1) */
- //
+
/// Define the interpretation of 'NULL' as a recv interface specification.
- // If the interface part of a multicast address specification is NULL, it
- // will be interpreted to mean either "the default interface" or "all
- // interfaces", depending on the setting of this option.
- // Notes:
- // - The 'nulliface_all' option can not be used in environments which do
- // not fully support the <ACE_Sock_Connect::get_ip_interfaces> method
- // (e.g. non-Windows).
- // If it is, using NULL for iface will _always_ fail.
- // - The default behavior in most IP stacks is to use the 'default' interface,
- // where 'default' has rather ad-hoc semantics.
- // - This applies only to receives, not sends (which always use only one
- // interface; NULL means use the "system default" interface).
- // Supported values:
+ /// If the interface part of a multicast address specification is NULL, it
+ /// will be interpreted to mean either "the default interface" or "all
+ /// interfaces", depending on the setting of this option.
+ /// Notes:
+ /// - The 'nulliface_all' option can not be used in environments which do
+ /// not fully support the ACE_Sock_Connect::get_ip_interfaces() method
+ /// (e.g. non-Windows).
+ /// If it is, using NULL for iface will _always_ fail.
+ /// - The default behavior in most IP stacks is to use the 'default' interface,
+ /// where 'default' has rather ad-hoc semantics.
+ /// - This applies only to receives, not sends (which always use only one
+ /// interface; NULL means use the "system default" interface).
+ /// Supported values:
/// If (net_if==NULL), use default interface.
- // Note that this might seem odd, but we need a way to distinquish between
- // default behavior, which might or might not be to bind, and explicitely
- // choosing to bind or not to bind--which "is the question." ;-)
+ /// @note This might seem odd, but we need a way to distinguish between
+ /// default behavior, which might or might not be to bind, and explicitly
+ /// choosing to bind or not to bind--which "is the question." ;-)
OPT_NULLIFACE_ONE = 0,
/// If (net_if==NULL), use all mcast interfaces.
OPT_NULLIFACE_ALL = 2,
/// Default value for NULLIFACE option. (Environment-dependent.)
#ifdef ACE_WIN32
- // This is the (ad-hoc) legacy behavior for Win32/WinSock.
- // Notice: Older version of WinSock/MSVC may not get all multicast-capable
- // interfaces (e.g. PPP interfaces).
+ /// This is the (ad-hoc) legacy behavior for Win32/WinSock.
+ /// @note Older version of WinSock/MSVC may not get all multicast-capable
+ /// interfaces (e.g. PPP interfaces).
DEFOPT_NULLIFACE = OPT_NULLIFACE_ALL,
#else
- // General-purpose default behavior (as per legacy behavior).
+ /// General-purpose default behavior (as per legacy behavior).
DEFOPT_NULLIFACE = OPT_NULLIFACE_ONE,
#endif /* ACE_WIN32 */
/// All default options.
@@ -182,7 +182,7 @@ public:
/// Ctor - Create an unitialized instance and define per-instance optional
/// functionality.
/**
- * You must invoke <open> or <subscribe>, to create/bind a socket and define
+ * You must invoke open() or subscribe(), to create/bind a socket and define
* operational parameters, before performing any I/O with this instance.
*/
ACE_SOCK_Dgram_Mcast (options opts = DEFOPTS);
@@ -190,7 +190,7 @@ public:
/// Dtor - Release all resources and implicitly or explicitly unsubscribe
/// from all currently subscribed groups.
/**
- * The OPT_DTORUNSUB_YES_ option defines whether an explicit <unsusbcribe> is
+ * The OPT_DTORUNSUB_YES_ option defines whether an explicit unsubscribe() is
* done by the destructor. If not, most systems will automatically
* unsubscribe upon the close of the socket.
*/
@@ -200,16 +200,16 @@ public:
/// and default multicast address used for sending messages.
/**
* This method is optional; if not explicitly invoked, it is invoked by
- * the first <subscribe>, using the subscribed address/port# and network
+ * the first subscribe(), using the subscribed address/port# and network
* interface parameters.
- * The <mcast_addr> parameter defines the default send address/port# and
+ * The @a mcast_addr parameter defines the default send address/port# and
* also the port# and, if the OPT_BINDADDR_YES option is used,
* the multicast address that is bound to this socket.
- * If the <send_net_if> parameter != 0, it defines the network interface
+ * If the @a net_if parameter != 0, it defines the network interface
* used for all sends by this instance, otherwise the system "default"
- * interface is used. (The <send_net_if> parameter is ignored if this
- * feature is not supported by the envriornment.)
- * The port# in <mcast_addr> may be 0, in which case a system-assigned
+ * interface is used. (The @a net_if parameter is ignored if this
+ * feature is not supported by the environment.)
+ * The port# in @a mcast_addr may be 0, in which case a system-assigned
* (ephemeral) port# is used for sending and receiving.
* If @a reuse_addr != 0, the SO_REUSEADDR option and, if it is supported,
* the SO_REUSEPORT option are enabled.
@@ -228,27 +228,27 @@ public:
/// supported).
/**
* The given group is joined on the specified interface. If option
- * OPT_NULLIFACE_ALL is used and <net_if> is = 0, the group is joined on
+ * OPT_NULLIFACE_ALL is used and @a net_if is = 0, the group is joined on
* all multicast capable interfaces (IFF supported). Multiple subscriptions
* to various address and interface combinations are supported and tracked.
- * If this is the first invocation of <subscribe>, and <open> was not
- * previously invoked, <open> will be invoked using <mcast_addr> for binding
- * the socket and <net_if> as the interface for <send>.
+ * If this is the first invocation of subscribe(), and open() was not
+ * previously invoked, open() will be invoked using @a mcast_addr for binding
+ * the socket and @a net_if as the interface for send().
*
* Returns: -1 if the call fails. Failure can occur due to problems with
* the address, port#, and/or interface parameters or during the subscription
- * attempt. Once bind() has been invoked (by the first <open> or
- * <subscribe>), returns errno of ENXIO if the port# is not 0 and does not
+ * attempt. Once bind() has been invoked (by the first open() or
+ * subscribe()), returns errno of ENXIO if the port# is not 0 and does not
* match the bound port#, or if OPT_BINDADDR_YES option is used
* and the address does not match the bound address. Returns errno of
* ENODEV if the addr/port#/interface parameters appeared valid, but no
* subscription(s) succeeded. An error is unconditionally returned if
- * option OPT_NULLIFACE_ALL is used, <net_if> is NULL, and
- * <ACE_Sock_Connect::get_ip_interfaces> is not implemented in this
+ * option OPT_NULLIFACE_ALL is used, @a net_if is NULL, and
+ * ACE_Sock_Connect::get_ip_interfaces() is not implemented in this
* environment.
*
* Note that the optional @a reuse_addr parameter does not apply to
- * subscriptions; it is only used if <open> is implicitly invoked (see above).
+ * subscriptions; it is only used if open() is implicitly invoked (see above).
*
* Uses the mcast_addr to determine protocol_family, and protocol which
* we always pass as 0 anyway.
@@ -262,15 +262,15 @@ public:
/// supported).
/**
* The specified group/interface combination is unsubscribed. If option
- * OPT_NULLIFACE_ALL is used and <net_if> is = 0, the group is unsubscribed
+ * OPT_NULLIFACE_ALL is used and @a net_if is = 0, the group is unsubscribed
* from all interfaces (IFF supported).
*
* Returns: -1 if the unsubscribe failed. Most environments will return -1
* if there was no active subscription for this address/interface combination.
* An error is unconditionally returned if option OPT_NULLIFACE_ALL is used,
- * <net_if> is = 0, and <ACE_Sock_Connect::get_ip_interfaces> is not
- * implemented in this environment (_even if_ the <subscribe> specifies a
- * non- NULL <net_if>).
+ * @a net_if is = 0, and ACE_Sock_Connect::get_ip_interfaces() is not
+ * implemented in this environment (_even if_ the subscribe() specifies a
+ * non- NULL @a net_if).
*
* leave() replaces unsubscribe() and uses mcast_addr to determine
* protocol_family, and protocol which we always pass as 0 anyway.
@@ -281,13 +281,13 @@ public:
// = Data transfer routines.
/// Send @a n bytes in @a buf, using the multicast address and network interface
- /// defined by the first <open> or <subscribe>.
+ /// defined by the first open() or subscribe().
ssize_t send (const void *buf,
size_t n,
int flags = 0) const;
- /// Send @a n <iovecs>, using the multicast address and network interface
- /// defined by the first <open> or <subscribe>.
+ /// Send @a n iovecs, using the multicast address and network interface
+ /// defined by the first open() or subscribe().
ssize_t send (const iovec iov[],
int n,
int flags = 0) const;
@@ -327,7 +327,7 @@ private:
int reuse_addr);
/// Do subscription processing w/out updating the subscription list.
- // (Layered method for <subscribe> processing).
+ /// (Layered method for <subscribe> processing).
int subscribe_i (const ACE_INET_Addr &mcast_addr,
int reuse_addr = 1,
const ACE_TCHAR *net_if = 0);
@@ -337,7 +337,7 @@ private:
const ACE_TCHAR *net_if = 0);
/// Do unsubscription processing w/out udpating subscription list.
- // (Layered method for <unsubscribe> processing).
+ /// (Layered method for <unsubscribe> processing).
int unsubscribe_i (const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if = 0);
@@ -353,13 +353,12 @@ protected:
int clear_subs_list (void);
private:
-
/// Per-instance options..
int opts_;
- /// Multicast address to which local <send> methods send datagrams.
+ /// Multicast address to which local send() methods send datagrams.
ACE_INET_Addr send_addr_;
- /// Network interface to which all <send> methods send multicast datagrams.
+ /// Network interface to which all send() methods send multicast datagrams.
ACE_TCHAR *send_net_if_;
#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
diff --git a/ACE/ace/SOCK_IO.cpp b/ACE/ace/SOCK_IO.cpp
index 36a7d171456..b9175e7d621 100644
--- a/ACE/ace/SOCK_IO.cpp
+++ b/ACE/ace/SOCK_IO.cpp
@@ -2,8 +2,6 @@
#include "ace/SOCK_IO.h"
-#include "ace/Handle_Set.h"
-#include "ace/OS_NS_sys_select.h"
#include "ace/OS_NS_sys_socket.h"
#include "ace/OS_Memory.h"
#include "ace/Truncate.h"
@@ -12,7 +10,7 @@
#include "ace/SOCK_IO.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK_IO, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -37,35 +35,10 @@ ACE_SOCK_IO::recvv (iovec *io_vec,
{
ACE_TRACE ("ACE_SOCK_IO::recvv");
#if defined (FIONREAD)
- ACE_Handle_Set handle_set;
- handle_set.reset ();
- handle_set.set_bit (this->get_handle ());
-
io_vec->iov_base = 0;
-
- // Check the status of the current socket.
-# if defined (ACE_WIN32)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- int select_width = 0;
-# else
- int select_width = int (this->get_handle ()) + 1;
-# endif /* ACE_WIN32 */
- switch (ACE_OS::select (select_width,
- handle_set,
- 0, 0,
- timeout))
+ if( ACE::handle_read_ready (this->get_handle (), timeout) != 1 )
{
- case -1:
- return -1;
- /* NOTREACHED */
- case 0:
- errno = ETIME;
return -1;
- /* NOTREACHED */
- default:
- // Goes fine, fallthrough to get data
- break;
}
int inlen = 0;
diff --git a/ACE/ace/SOCK_SEQPACK_Acceptor.cpp b/ACE/ace/SOCK_SEQPACK_Acceptor.cpp
index 3e502a4d61f..e767d269701 100644
--- a/ACE/ace/SOCK_SEQPACK_Acceptor.cpp
+++ b/ACE/ace/SOCK_SEQPACK_Acceptor.cpp
@@ -13,7 +13,7 @@
#include "ace/SOCK_SEQPACK_Acceptor.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK_SEQPACK_Acceptor, "SOCK_SEQPACK_Acceptor.cpp,v 4.30 2002/03/08 23:18:09 spark Exp")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SOCK_SEQPACK_Association.cpp b/ACE/ace/SOCK_SEQPACK_Association.cpp
index bce96750f20..2b92eae6b05 100644
--- a/ACE/ace/SOCK_SEQPACK_Association.cpp
+++ b/ACE/ace/SOCK_SEQPACK_Association.cpp
@@ -11,7 +11,7 @@
#include "ace/SOCK_SEQPACK_Association.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK_SEQPACK_Association, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SOCK_SEQPACK_Connector.cpp b/ACE/ace/SOCK_SEQPACK_Connector.cpp
index e56253b1b6f..f98494ea41d 100644
--- a/ACE/ace/SOCK_SEQPACK_Connector.cpp
+++ b/ACE/ace/SOCK_SEQPACK_Connector.cpp
@@ -18,7 +18,7 @@
#include "ace/SOCK_SEQPACK_Connector.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK_SEQPACK_Connector, "SOCK_SEQPACK_Connector.cpp,v 4.35 2002/03/08 23:18:09 spark Exp")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SOCK_Stream.cpp b/ACE/ace/SOCK_Stream.cpp
index 6b4946fd939..af603cb5242 100644
--- a/ACE/ace/SOCK_Stream.cpp
+++ b/ACE/ace/SOCK_Stream.cpp
@@ -6,7 +6,7 @@
#include "ace/SOCK_Stream.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SOCK_Stream, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SOCK_Stream.h b/ACE/ace/SOCK_Stream.h
index 40b64c7bcc2..dd765954764 100644
--- a/ACE/ace/SOCK_Stream.h
+++ b/ACE/ace/SOCK_Stream.h
@@ -78,7 +78,10 @@ public:
* wait indefinitely or until an error occurs for the
* specified number of bytes to be transferred.
* To avoid any waiting, specify a timeout value with
- * 0 seconds.
+ * 0 seconds. Note that the timeout period restarts on
+ * each retried operation issued; therefore, an operation
+ * that requires multiples retries may take longer than the
+ * specified timeout to complete.
* @param bytes_transferred If non-0, points to a location which receives
* the total number of bytes transferred before the method
* returns, even if it's less than the number requested.
diff --git a/ACE/ace/SPIPE.cpp b/ACE/ace/SPIPE.cpp
index b6b1300b26d..f4cc6c4b766 100644
--- a/ACE/ace/SPIPE.cpp
+++ b/ACE/ace/SPIPE.cpp
@@ -8,7 +8,7 @@
#include "ace/SPIPE.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SPIPE, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SPIPE_Acceptor.cpp b/ACE/ace/SPIPE_Acceptor.cpp
index 5ee499c476a..865037fec3b 100644
--- a/ACE/ace/SPIPE_Acceptor.cpp
+++ b/ACE/ace/SPIPE_Acceptor.cpp
@@ -9,7 +9,7 @@
# include "ace/OS_NS_unistd.h"
#endif // ACE_HAS_STREAM_PIPES
-ACE_RCSID(ace, SPIPE_Acceptor, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SPIPE_Acceptor.h b/ACE/ace/SPIPE_Acceptor.h
index 74e616c1c9c..6ff2d1c508d 100644
--- a/ACE/ace/SPIPE_Acceptor.h
+++ b/ACE/ace/SPIPE_Acceptor.h
@@ -148,7 +148,7 @@ private:
DWORD pipe_mode_;
// On Windows, the handle maintained in the ACE_IPC_SAP class is the
- // event handle from event_. The pipe handle is useless for telling
+ // event handle from event. The pipe handle is useless for telling
// when a pipe connect is done/ready, and it changes on each pipe
// acceptance, quite unlike other acceptor-type classes in ACE.
// This allows the get_handle()-obtained handle to be used for
diff --git a/ACE/ace/SPIPE_Addr.cpp b/ACE/ace/SPIPE_Addr.cpp
index bbba12f9242..ebc0e761d86 100644
--- a/ACE/ace/SPIPE_Addr.cpp
+++ b/ACE/ace/SPIPE_Addr.cpp
@@ -9,7 +9,7 @@
#include "ace/SPIPE_Addr.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SPIPE_Addr, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SPIPE_Connector.cpp b/ACE/ace/SPIPE_Connector.cpp
index 80dd4c9e4ce..248cb42fa1e 100644
--- a/ACE/ace/SPIPE_Connector.cpp
+++ b/ACE/ace/SPIPE_Connector.cpp
@@ -10,7 +10,7 @@
#include "ace/SPIPE_Connector.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SPIPE_Connector, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SPIPE_Stream.cpp b/ACE/ace/SPIPE_Stream.cpp
index fcc695d6271..8c8085ed6fa 100644
--- a/ACE/ace/SPIPE_Stream.cpp
+++ b/ACE/ace/SPIPE_Stream.cpp
@@ -7,7 +7,7 @@
#include "ace/SPIPE_Stream.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SPIPE_Stream, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SPIPE_Stream.inl b/ACE/ace/SPIPE_Stream.inl
index 94ca51dcf65..3807dc86906 100644
--- a/ACE/ace/SPIPE_Stream.inl
+++ b/ACE/ace/SPIPE_Stream.inl
@@ -111,7 +111,7 @@ ACE_SPIPE_Stream::send_handle (ACE_HANDLE handle) const
DWORD procID;
WSAPROTOCOL_INFO protInfo;
ssize_t res = this->recv(&procID, sizeof(procID));
- if (res != sizeof(procID))
+ if (res != static_cast <ssize_t> (sizeof(procID)))
{
if(res != -1)
errno = ENXIO;
@@ -123,7 +123,7 @@ ACE_SPIPE_Stream::send_handle (ACE_HANDLE handle) const
return -1;
}
res = this->send(&protInfo, sizeof(protInfo));
- if (res != sizeof(protInfo))
+ if (res != static_cast <ssize_t> (sizeof(protInfo)))
{
if(res != -1)
errno = ENXIO;
@@ -131,7 +131,7 @@ ACE_SPIPE_Stream::send_handle (ACE_HANDLE handle) const
}
// This is just for synchronization, we will ignore the data
res = this->recv(&procID, sizeof(procID));
- if (res != sizeof(procID))
+ if (res != static_cast <ssize_t> (sizeof(procID)))
{
if(res != -1)
errno = ENXIO;
@@ -139,7 +139,7 @@ ACE_SPIPE_Stream::send_handle (ACE_HANDLE handle) const
}
return 0;
#else
- handle = handle;
+ ACE_UNUSED_ARG (handle);
ACE_NOTSUP_RETURN (-1);
#endif /* ACE_HAS_STREAM_PIPES */
}
@@ -165,14 +165,14 @@ ACE_SPIPE_Stream::recv_handle (ACE_HANDLE &handle) const
pid_t procID = ACE_OS::getpid();
WSAPROTOCOL_INFO protInfo;
ssize_t res = this->send(&procID, sizeof(procID));
- if (res != sizeof(procID))
+ if (res != static_cast <ssize_t> (sizeof(procID)))
{
if(res != -1)
errno = ENXIO;
return -1;
}
res = this->recv(&protInfo, sizeof(protInfo));
- if (res != sizeof(protInfo))
+ if (res != static_cast <ssize_t> (sizeof(protInfo)))
{
if(res != -1)
errno = ENXIO;
@@ -187,7 +187,7 @@ ACE_SPIPE_Stream::recv_handle (ACE_HANDLE &handle) const
// Since it does not matter what the data is, just send something to
// synchronize the end of the exchange
res = this->send(&procID, sizeof(procID));
- if (res != sizeof(procID))
+ if (res != static_cast <ssize_t> (sizeof(procID)))
{
if(res != -1)
errno = ENXIO;
@@ -195,7 +195,7 @@ ACE_SPIPE_Stream::recv_handle (ACE_HANDLE &handle) const
}
return 0;
#else
- handle = handle;
+ ACE_UNUSED_ARG (handle);
ACE_NOTSUP_RETURN (-1);
#endif /* ACE_HAS_STREAM_PIPES */
}
diff --git a/ACE/ace/SSL/SSL_Asynch_BIO.cpp b/ACE/ace/SSL/SSL_Asynch_BIO.cpp
index d6fe3a6245c..c796c49b0ba 100644
--- a/ACE/ace/SSL/SSL_Asynch_BIO.cpp
+++ b/ACE/ace/SSL/SSL_Asynch_BIO.cpp
@@ -1,5 +1,5 @@
// -*- C++ -*-
-
+// $Id$
#include "SSL_Asynch_BIO.h"
#if OPENSSL_VERSION_NUMBER > 0x0090581fL && ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
@@ -8,10 +8,6 @@
#include "ace/OS_NS_string.h"
#include "ace/Truncate.h"
-ACE_RCSID (ACE_SSL,
- SSL_Asynch_BIO,
- "$Id$")
-
#if (defined (ACE_HAS_VERSIONED_NAMESPACE) && ACE_HAS_VERSIONED_NAMESPACE == 1)
# define ACE_ASYNCH_BIO_WRITE_NAME ACE_PREPROC_CONCATENATE(ACE_VERSIONED_NAMESPACE_NAME, _ACE_Asynch_BIO_write)
# define ACE_ASYNCH_BIO_READ_NAME ACE_PREPROC_CONCATENATE(ACE_VERSIONED_NAMESPACE_NAME, _ACE_Asynch_BIO_read)
diff --git a/ACE/ace/SSL/SSL_Asynch_Stream.cpp b/ACE/ace/SSL/SSL_Asynch_Stream.cpp
index d357c8c4f33..3612e1cfbce 100644
--- a/ACE/ace/SSL/SSL_Asynch_Stream.cpp
+++ b/ACE/ace/SSL/SSL_Asynch_Stream.cpp
@@ -1,9 +1,6 @@
+// $Id$
#include "SSL_Asynch_Stream.h"
-ACE_RCSID (ACE_SSL,
- SSL_Asynch_Stream,
- "$Id$")
-
// This only works on platforms with Asynchronous IO support.
#if OPENSSL_VERSION_NUMBER > 0x0090581fL && ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
@@ -505,7 +502,7 @@ ACE_SSL_Asynch_Stream::do_SSL_handshake (void)
return -1;
}
}
- return 1;
+ return 1;
}
if (this->flags_ & SF_REQ_SHUTDOWN)
diff --git a/ACE/ace/SSL/SSL_Asynch_Stream.h b/ACE/ace/SSL/SSL_Asynch_Stream.h
index 1957c023468..29da8944cdc 100644
--- a/ACE/ace/SSL/SSL_Asynch_Stream.h
+++ b/ACE/ace/SSL/SSL_Asynch_Stream.h
@@ -306,13 +306,13 @@ protected:
*
* Check 1:
*
- * SSL clients that require a peer certificate must specify SSL_VERIFY_PEER
+ * SSL clients that require a peer certificate must specify SSL_VERIFY_PEER
* via ACE_SSL_Context::default_verify_mode. If the peer sends an invalid
* certificate, the SSL handshake will fail; however, if the peer does not
- * send a certificate, the SSL handshake will complete successfully which
+ * send a certificate, the SSL handshake will complete successfully which
* may not be acceptable. In this case, you must override this method in a
* subclass and return false if the call to SSL_get_peer_certificate returns
- * null.
+ * null.
*
* Check 2:
*
@@ -322,10 +322,10 @@ protected:
* by your CA to usurp your session. For further info on this check, see
* the post_connection_check method in Example 5-8 of 'Network Security with
* OpenSSL' by Viega, et. al.
- *
+ *
* Return:
- *
- * false - Terminate the connection. Outstanding IO complete with ERR_CANCELED.
+ *
+ * false - Terminate the connection. Outstanding IO complete with ERR_CANCELED.
*
* true - Proceed with connection. The default implementation returns true.
*/
diff --git a/ACE/ace/SSL/SSL_Context.cpp b/ACE/ace/SSL/SSL_Context.cpp
index 2d71688c3c2..cca47377cde 100644
--- a/ACE/ace/SSL/SSL_Context.cpp
+++ b/ACE/ace/SSL/SSL_Context.cpp
@@ -1,3 +1,4 @@
+// $Id$
#include "SSL_Context.h"
#include "sslconf.h"
@@ -26,11 +27,6 @@
#include <openssl/rand.h>
#include <openssl/safestack.h>
-ACE_RCSID (ACE_SSL,
- SSL_Context,
- "$Id$")
-
-
namespace
{
/// Reference count of the number of times the ACE_SSL_Context was
@@ -206,9 +202,6 @@ ACE_SSL_Context::ssl_library_fini (void)
--ssl_library_init_count;
if (ssl_library_init_count == 0)
{
- // Explicitly close the singleton
- ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::close();
-
::ERR_free_strings ();
::EVP_cleanup ();
@@ -220,7 +213,6 @@ ACE_SSL_Context::ssl_library_fini (void)
delete [] this->locks_;
this->locks_ = 0;
-
#endif /* ACE_HAS_THREADS */
}
}
@@ -236,7 +228,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)
{
@@ -645,8 +641,8 @@ ACE_SSL_Context::dh_params (const char *file_name,
#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX> *
- ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::singleton_;
+template ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX> *
+ ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::singleton_;
#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
diff --git a/ACE/ace/SSL/SSL_Initializer.cpp b/ACE/ace/SSL/SSL_Initializer.cpp
new file mode 100644
index 00000000000..03b5184989c
--- /dev/null
+++ b/ACE/ace/SSL/SSL_Initializer.cpp
@@ -0,0 +1,44 @@
+// $Id$
+
+#include "SSL_Initializer.h"
+#include "SSL_Context.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+int
+ACE_SSL_Initializer::static_init (void)
+{
+ ACE_Service_Config::process_directive (ace_svc_desc_ACE_SSL_Initializer);
+ return 0;
+}
+
+int
+ACE_SSL_Initializer::init (int, ACE_TCHAR *[])
+{
+ // Initialize ACE_SSL_Context singleton.
+ ACE_SSL_Context * ssl_ctx = ACE_SSL_Context::instance ();
+ ACE_ASSERT (ssl_ctx != 0);
+ ACE_UNUSED_ARG (ssl_ctx);
+
+ return 0;
+}
+
+int
+ACE_SSL_Initializer::fini (void)
+{
+ // Explicitly close the ACE_SSL_Context singleton.
+ ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::close();
+
+ return 0;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+ACE_STATIC_SVC_DEFINE (ACE_SSL_Initializer,
+ ACE_TEXT ("ACE_SSL_Initializer"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (ACE_SSL_Initializer),
+ ACE_Service_Type::DELETE_THIS |
+ ACE_Service_Type::DELETE_OBJ,
+ 0)
+ACE_FACTORY_DEFINE (ACE_SSL, ACE_SSL_Initializer)
diff --git a/ACE/ace/SSL/SSL_Initializer.h b/ACE/ace/SSL/SSL_Initializer.h
new file mode 100644
index 00000000000..2438fee6758
--- /dev/null
+++ b/ACE/ace/SSL/SSL_Initializer.h
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file SSL_Initializer.h
+ *
+ * $Id$
+ *
+ * @author Vladimir Zykov <vz@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef ACE_SSL_INITIALIZER_H
+#define ACE_SSL_INITIALIZER_H
+
+#include /**/ "ace/pre.h"
+
+#include "SSL_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Object.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class ACE_SSL_Export ACE_SSL_Initializer
+ : public ACE_Service_Object
+{
+public:
+ /// Used to force the initialization of ACE_SSL.
+ static int static_init (void);
+
+ /// Create ACE_SSL_Context singleton.
+ virtual int init (int argc, ACE_TCHAR *argv[]);
+
+ /// Do cleanup of SSL library.
+ virtual int fini (void);
+};
+
+static int ACE_Force_ACE_SSL_Initializer = ACE_SSL_Initializer::static_init ();
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+ACE_STATIC_SVC_DECLARE (ACE_SSL_Initializer)
+ACE_FACTORY_DECLARE (ACE_SSL, ACE_SSL_Initializer)
+
+#include /**/ "ace/post.h"
+
+#endif /* ACE_SSL_INITIALIZER_H */
diff --git a/ACE/ace/SSL/SSL_SOCK.cpp b/ACE/ace/SSL/SSL_SOCK.cpp
index fdcc95ddd11..e3b78595447 100644
--- a/ACE/ace/SSL/SSL_SOCK.cpp
+++ b/ACE/ace/SSL/SSL_SOCK.cpp
@@ -9,11 +9,6 @@
#include "ace/OS_NS_errno.h"
#include "ace/os_include/os_signal.h"
-ACE_RCSID (ACE_SSL,
- SSL_SOCK,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_SSL_SOCK::ACE_SSL_SOCK (void)
diff --git a/ACE/ace/SSL/SSL_SOCK.h b/ACE/ace/SSL/SSL_SOCK.h
index ad24db3a3cd..96552744c8d 100644
--- a/ACE/ace/SSL/SSL_SOCK.h
+++ b/ACE/ace/SSL/SSL_SOCK.h
@@ -24,16 +24,6 @@
#include "ace/SOCK.h"
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-# define ACE_SSL_SOCK_ACCEPTOR ACE_SSL_SOCK_Acceptor
-# define ACE_SSL_SOCK_CONNECTOR ACE_SSL_SOCK_Connector
-# define ACE_SSL_SOCK_STREAM ACE_SSL_SOCK_Stream
-#else
-# define ACE_SSL_SOCK_ACCEPTOR ACE_SSL_SOCK_Acceptor, ACE_INET_Addr
-# define ACE_SSL_SOCK_CONNECTOR ACE_SSL_SOCK_Connector, ACE_INET_Addr
-# define ACE_SSL_SOCK_STREAM ACE_SSL_SOCK_Stream, ACE_INET_Addr
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
diff --git a/ACE/ace/SSL/SSL_SOCK_Acceptor.cpp b/ACE/ace/SSL/SSL_SOCK_Acceptor.cpp
index 37809f9bc13..279fd5290ca 100644
--- a/ACE/ace/SSL/SSL_SOCK_Acceptor.cpp
+++ b/ACE/ace/SSL/SSL_SOCK_Acceptor.cpp
@@ -17,10 +17,6 @@
#include "SSL_SOCK_Acceptor.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ACE_SSL,
- SSL_SOCK_Acceptor,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_SSL_SOCK_Acceptor)
diff --git a/ACE/ace/SSL/SSL_SOCK_Connector.cpp b/ACE/ace/SSL/SSL_SOCK_Connector.cpp
index 06a31c0fb72..5460e1c8a6b 100644
--- a/ACE/ace/SSL/SSL_SOCK_Connector.cpp
+++ b/ACE/ace/SSL/SSL_SOCK_Connector.cpp
@@ -17,10 +17,6 @@
#include "SSL_SOCK_Connector.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ACE_SSL,
- SSL_SOCK_Connector,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_SSL_SOCK_Connector)
@@ -75,7 +71,7 @@ ACE_SSL_SOCK_Connector::ssl_connect (ACE_SSL_SOCK_Stream &new_stream,
ACE_Countdown_Time countdown ((timeout == 0 ? 0 : &t));
int status;
-
+
do
{
// These handle sets are used to set up for whatever SSL_connect
@@ -142,7 +138,7 @@ ACE_SSL_SOCK_Connector::ssl_connect (ACE_SSL_SOCK_Stream &new_stream,
{
status = -1;
}
-
+
break;
default:
diff --git a/ACE/ace/SSL/SSL_SOCK_Stream.cpp b/ACE/ace/SSL/SSL_SOCK_Stream.cpp
index 2db93a9572d..d5e2a51e3a4 100644
--- a/ACE/ace/SSL/SSL_SOCK_Stream.cpp
+++ b/ACE/ace/SSL/SSL_SOCK_Stream.cpp
@@ -15,10 +15,6 @@
#include "SSL_SOCK_Stream.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ACE_SSL,
- SSL_SOCK_Stream,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_SSL_SOCK_Stream)
diff --git a/ACE/ace/SSL/SSL_SOCK_Stream.h b/ACE/ace/SSL/SSL_SOCK_Stream.h
index 0690dce9839..c3d8da6faed 100644
--- a/ACE/ace/SSL/SSL_SOCK_Stream.h
+++ b/ACE/ace/SSL/SSL_SOCK_Stream.h
@@ -207,6 +207,18 @@ public:
size_t *bytes_transferred = 0) const;
/**
+ * Try to send exactly len bytes into buf (uses the send() call).
+ * If send() blocks for longer than timeout the number of bytes
+ * actually sent is returned with errno == ETIME. If a timeout does
+ * not occur, send_n() return len (i.e., the number of bytes
+ * requested to be sent).
+ */
+ ssize_t send_n (const void *buf,
+ size_t len,
+ const ACE_Time_Value *timeout,
+ size_t *bytes_transferred = 0) const;
+
+ /**
* Try to receive exactly len bytes into buf (uses the recv() call).
* The ACE_Time_Value indicates how long to blocking trying to
* receive. If timeout == 0, the caller will block until action is
@@ -221,6 +233,21 @@ public:
int flags,
const ACE_Time_Value *timeout,
size_t *bytes_transferred = 0) const;
+
+ /**
+ * Try to receive exactly len bytes into buf (uses the recv() call).
+ * The ACE_Time_Value indicates how long to blocking trying to
+ * receive. If timeout == 0, the caller will block until action is
+ * possible, else will wait until the relative time specified in
+ * timeout elapses). If recv() blocks for longer than timeout the
+ * number of bytes actually read is returned with errno == ETIME.
+ * If a timeout does not occur, recv_n return len (i.e., the number
+ * of bytes requested to be read).
+ */
+ ssize_t recv_n (void *buf,
+ size_t len,
+ const ACE_Time_Value *timeout,
+ size_t *bytes_transferred = 0) const;
//@}
/**
diff --git a/ACE/ace/SSL/SSL_SOCK_Stream.inl b/ACE/ace/SSL/SSL_SOCK_Stream.inl
index 756fd3a858c..ca4e48ee22f 100644
--- a/ACE/ace/SSL/SSL_SOCK_Stream.inl
+++ b/ACE/ace/SSL/SSL_SOCK_Stream.inl
@@ -252,12 +252,32 @@ ACE_SSL_SOCK_Stream::recv_n (void *buf, int buf_size) const
}
ACE_INLINE ssize_t
+ACE_SSL_SOCK_Stream::recv_n (void *buf,
+ size_t len,
+ const ACE_Time_Value *timeout,
+ size_t *bytes_transferred) const
+{
+ ACE_TRACE ("ACE_SSL_SOCK_Stream::recv_n");
+ return this->recv_n (buf, len, 0, timeout, bytes_transferred);
+}
+
+ACE_INLINE ssize_t
ACE_SSL_SOCK_Stream::send_n (const void *buf, int len) const
{
ACE_TRACE ("ACE_SSL_SOCK_Stream::send_n");
return this->send_n (buf, len, 0);
}
+ACE_INLINE ssize_t
+ACE_SSL_SOCK_Stream::send_n (const void *buf,
+ size_t len,
+ const ACE_Time_Value *timeout,
+ size_t *bytes_transferred) const
+{
+ ACE_TRACE ("ACE_SSL_SOCK_Stream::send_n");
+ return this->send_n (buf, len, 0, timeout, bytes_transferred);
+}
+
ACE_INLINE int
ACE_SSL_SOCK_Stream::close_reader (void)
{
diff --git a/ACE/ace/SSL/ssl.mpc b/ACE/ace/SSL/ssl.mpc
index 1b8b5ed7c24..73a5b4b46ec 100644
--- a/ACE/ace/SSL/ssl.mpc
+++ b/ACE/ace/SSL/ssl.mpc
@@ -5,9 +5,19 @@ project(SSL) : acelib, ace_output, install, ace_openssl {
avoids += ace_for_tao
requires += ssl
sharedname = ACE_SSL
- dynamicflags = ACE_SSL_BUILD_DLL
+ dynamicflags += ACE_SSL_BUILD_DLL
+
+ specific {
+ install_dir = ace/SSL
+ }
pkgconfig_files {
ACE_SSL.pc.in
}
+
+ specific(gnuace) {
+ pkgconfig_variables += ACE_TLS_CPPFLAGS=$(PLATFORM_SSL_CPPFLAGS)
+ pkgconfig_variables += ACE_TLS_LDFLAGS=$(PLATFORM_SSL_LDFLAGS)
+ pkgconfig_variables += ACE_TLS_LIBS=$(PLATFORM_SSL_LIBS)
+ }
}
diff --git a/ACE/ace/SSL/ssl_for_tao.mpc b/ACE/ace/SSL/ssl_for_tao.mpc
index 54915488d7e..a51906d068f 100644
--- a/ACE/ace/SSL/ssl_for_tao.mpc
+++ b/ACE/ace/SSL/ssl_for_tao.mpc
@@ -5,7 +5,7 @@
project(SSL_FOR_TAO) : acelib, ace_output, install, ace_openssl {
requires += ssl ace_for_tao
sharedname = ACE_SSL_FOR_TAO
- dynamicflags = ACE_SSL_BUILD_DLL
+ dynamicflags += ACE_SSL_BUILD_DLL
Source_Files {
SSL_Context.cpp
@@ -39,4 +39,8 @@ project(SSL_FOR_TAO) : acelib, ace_output, install, ace_openssl {
pkgconfig_files {
ACE_SSL.pc.in
}
+
+ specific {
+ install_dir = ace/SSL
+ }
}
diff --git a/ACE/ace/SString.cpp b/ACE/ace/SString.cpp
index 5ba108655aa..43818f3efdc 100644
--- a/ACE/ace/SString.cpp
+++ b/ACE/ace/SString.cpp
@@ -17,11 +17,6 @@
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- SString,
- "SString.cpp,v 4.61 2001/03/04 00:55:30 brunsch Exp")
-
-
// ************************************************************
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -84,7 +79,7 @@ ACE_NS_WString::char_rep (void) const
}
}
-ACE_USHORT16 *
+ACE_UINT16 *
ACE_NS_WString::ushort_rep (void) const
{
ACE_TRACE ("ACE_NS_WString::ushort_rep");
@@ -92,16 +87,16 @@ ACE_NS_WString::ushort_rep (void) const
return 0;
else
{
- ACE_USHORT16 *t = 0;
+ ACE_UINT16 *t = 0;
ACE_NEW_RETURN (t,
- ACE_USHORT16[this->len_ + 1],
+ ACE_UINT16[this->len_ + 1],
0);
for (size_type i = 0; i < this->len_; ++i)
// Note that this cast may lose data if wide chars are
// actually used!
- t[i] = (ACE_USHORT16)this->rep_[i];
+ t[i] = (ACE_UINT16)this->rep_[i];
t[this->len_] = 0;
return t;
@@ -130,7 +125,7 @@ ACE_NS_WString::ACE_NS_WString (const char *s,
}
#if defined (ACE_WSTRING_HAS_USHORT_SUPPORT)
-ACE_NS_WString::ACE_NS_WString (const ACE_USHORT16 *s,
+ACE_NS_WString::ACE_NS_WString (const ACE_UINT16 *s,
size_type len,
ACE_Allocator *alloc)
: ACE_WString (alloc)
@@ -333,212 +328,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..273882e9093 100644
--- a/ACE/ace/SString.h
+++ b/ACE/ace/SString.h
@@ -39,6 +39,12 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
template class ACE_Export ACE_String_Base<char>;
template class ACE_Export ACE_String_Base<ACE_WSTRING_TYPE>;
+
+template class ACE_Export ACE_String_Base_Iterator<char>;
+template class ACE_Export ACE_String_Base_Iterator<ACE_WSTRING_TYPE>;
+
+template class ACE_Export ACE_String_Base_Const_Iterator<char>;
+template class ACE_Export ACE_String_Base_Const_Iterator<ACE_WSTRING_TYPE>;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
/**
@@ -69,7 +75,7 @@ public:
#if defined (ACE_WSTRING_HAS_USHORT_SUPPORT)
/// Constructor that takes in a ushort16 string (mainly used by the
/// ACE Name_Space classes)
- ACE_NS_WString (const ACE_USHORT16 *s,
+ ACE_NS_WString (const ACE_UINT16 *s,
size_type len,
ACE_Allocator *alloc = 0);
#endif /* ACE_WSTRING_HAS_USHORT_SUPPORT */
@@ -96,7 +102,7 @@ public:
/// Transform into a copy of a USHORT16 representation (caller must
/// delete). Note, behavior is undefined when sizeof (wchar_t) != 2.
- ACE_USHORT16 *ushort_rep (void) const;
+ ACE_UINT16 *ushort_rep (void) const;
};
ACE_Export
@@ -139,7 +145,7 @@ public:
/// Constructor that copies @a s into dynamically allocated memory.
ACE_SString (const char *s, ACE_Allocator *alloc = 0);
- /// Constructor that copies @a len chars of @s into dynamically
+ /// Constructor that copies @a len chars of @a s into dynamically
/// allocated memory (will NUL terminate the result).
ACE_SString (const char *s, size_type len, ACE_Allocator *alloc = 0);
@@ -189,14 +195,14 @@ public:
/// Get the underlying pointer.
const char *fast_rep (void) const;
- /// Same as STL String's <c_str> and <fast_rep>.
+ /// Same as STL String's c_str() and fast_rep().
const char *c_str (void) const;
/// Comparison operator that will match substrings. Returns the
/// 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 +210,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;
@@ -224,7 +230,7 @@ public:
/// Inequality comparison operator.
bool operator != (const ACE_SString &s) const;
- /// Performs a <strcmp>-style comparison.
+ /// Performs a strcmp()-style comparison.
int compare (const ACE_SString &s) const;
/// Dump the state of an object.
@@ -237,7 +243,7 @@ private:
/// Pointer to a memory allocator.
ACE_Allocator *allocator_;
- /// Length of the ACE_SString (not counting the trailing '\0').
+ /// Length of the ACE_SString (not counting the trailing '\\0').
size_type len_;
/// Pointer to data.
@@ -256,208 +262,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/SStringfwd.h b/ACE/ace/SStringfwd.h
index fb28ee8a469..cab3ecfe8ec 100644
--- a/ACE/ace/SStringfwd.h
+++ b/ACE/ace/SStringfwd.h
@@ -33,7 +33,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <class CHAR> class ACE_String_Base; // Forward declaration.
+template <class ACE_CHAR_T> class ACE_String_Base; // Forward declaration.
typedef ACE_WCHAR_T ACE_WSTRING_TYPE;
diff --git a/ACE/ace/SUN_Proactor.cpp b/ACE/ace/SUN_Proactor.cpp
index 1fd7ec23b48..c3b85ad3093 100644
--- a/ACE/ace/SUN_Proactor.cpp
+++ b/ACE/ace/SUN_Proactor.cpp
@@ -8,12 +8,6 @@
#include "ace/Log_Msg.h"
#include "ace/Object_Manager.h"
-
-ACE_RCSID (ace,
- POSIX_CB_Proactor,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_SUN_Proactor::ACE_SUN_Proactor (size_t max_aio_operations)
diff --git a/ACE/ace/SV_Message.cpp b/ACE/ace/SV_Message.cpp
index 15368235910..6f65cd18021 100644
--- a/ACE/ace/SV_Message.cpp
+++ b/ACE/ace/SV_Message.cpp
@@ -7,7 +7,7 @@
#include "ace/SV_Message.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SV_Message, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SV_Message_Queue.cpp b/ACE/ace/SV_Message_Queue.cpp
index 7f4c76b9b7a..332464d52df 100644
--- a/ACE/ace/SV_Message_Queue.cpp
+++ b/ACE/ace/SV_Message_Queue.cpp
@@ -7,7 +7,7 @@
#include "ace/SV_Message_Queue.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SV_Message_Queue, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/SV_Semaphore_Complex.cpp b/ACE/ace/SV_Semaphore_Complex.cpp
index 73d0ccdc01b..14f35f68373 100644
--- a/ACE/ace/SV_Semaphore_Complex.cpp
+++ b/ACE/ace/SV_Semaphore_Complex.cpp
@@ -1,4 +1,3 @@
-// SV_Semaphore_Complex.cpp
// $Id$
#include "ace/SV_Semaphore_Complex.h"
@@ -9,8 +8,6 @@
#include "ace/SV_Semaphore_Complex.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SV_Semaphore_Complex, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_SV_Semaphore_Complex)
diff --git a/ACE/ace/SV_Semaphore_Simple.cpp b/ACE/ace/SV_Semaphore_Simple.cpp
index 64256eb001d..dbc8f139580 100644
--- a/ACE/ace/SV_Semaphore_Simple.cpp
+++ b/ACE/ace/SV_Semaphore_Simple.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/SV_Semaphore_Simple.h"
#include "ace/Log_Msg.h"
#include "ace/ACE.h"
@@ -7,10 +9,6 @@
#include "ace/SV_Semaphore_Simple.inl"
#endif /* !__ACE_INLINE__ */
-ACE_RCSID (ace,
- SV_Semaphore_Simple,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_SV_Semaphore_Simple)
@@ -138,15 +136,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/SV_Semaphore_Simple.h b/ACE/ace/SV_Semaphore_Simple.h
index 8950369225e..42dbc7c906b 100644
--- a/ACE/ace/SV_Semaphore_Simple.h
+++ b/ACE/ace/SV_Semaphore_Simple.h
@@ -29,7 +29,7 @@
#if defined (ACE_WIN32)
// Default semaphore key and mutex name
# if !defined (ACE_DEFAULT_SEM_KEY)
-# define ACE_DEFAULT_SEM_KEY "ACE_SEM_KEY"
+# define ACE_DEFAULT_SEM_KEY const_cast <char*>("ACE_SEM_KEY")
# endif /* ACE_DEFAULT_SEM_KEY */
#else /* !defined (ACE_WIN32) */
// Default semaphore key
diff --git a/ACE/ace/SV_Shared_Memory.cpp b/ACE/ace/SV_Shared_Memory.cpp
index a2966307af0..9e5206b54bb 100644
--- a/ACE/ace/SV_Shared_Memory.cpp
+++ b/ACE/ace/SV_Shared_Memory.cpp
@@ -7,7 +7,7 @@
#include "ace/SV_Shared_Memory.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, SV_Shared_Memory, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Sample_History.cpp b/ACE/ace/Sample_History.cpp
index 0cff6a7d624..e2db2cbd05a 100644
--- a/ACE/ace/Sample_History.cpp
+++ b/ACE/ace/Sample_History.cpp
@@ -10,7 +10,7 @@
#include "ace/Log_Msg.h"
#include "ace/OS_Memory.h"
-ACE_RCSID(ace, Sample_History, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Sbrk_Memory_Pool.cpp b/ACE/ace/Sbrk_Memory_Pool.cpp
index b747fb9ce15..717ec52c5ae 100644
--- a/ACE/ace/Sbrk_Memory_Pool.cpp
+++ b/ACE/ace/Sbrk_Memory_Pool.cpp
@@ -4,7 +4,7 @@
#include "ace/Sbrk_Memory_Pool.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Sbrk_Memory_Pool, "$Id$")
+
#if !defined (ACE_LACKS_SBRK)
diff --git a/ACE/ace/Sched_Params.cpp b/ACE/ace/Sched_Params.cpp
index 7241cb14bde..80a89a1abc1 100644
--- a/ACE/ace/Sched_Params.cpp
+++ b/ACE/ace/Sched_Params.cpp
@@ -21,7 +21,7 @@
# include /**/ <sys/priocntl.h>
#endif /* ACE_HAS_PRIOCNTL && ACE_HAS_THREADS */
-ACE_RCSID(ace, Sched_Params, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Select_Reactor.h b/ACE/ace/Select_Reactor.h
index 8e7b1697ce3..2e8b67977d3 100644
--- a/ACE/ace/Select_Reactor.h
+++ b/ACE/ace/Select_Reactor.h
@@ -26,10 +26,15 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
//@@ TAO_REACTOR_SPL_COMMENT_HOOK_START
typedef ACE_Reactor_Token_T<ACE_SELECT_TOKEN> ACE_Select_Reactor_Token;
+#if defined (_MSC_VER) && (_MSC_VER >= 1600)
+template class ACE_Export ACE_Select_Reactor_T<ACE_Select_Reactor_Token>;
+#endif /* _MSC_VER */
+
typedef ACE_Select_Reactor_T<ACE_Select_Reactor_Token> ACE_Select_Reactor;
//@@ TAO_REACTOR_SPL_COMMENT_HOOK_END
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE == 0)
+// FUZZ: disable check_for_ACE_Guard
/**
* @class ACE_Guard< ACE_Reactor_Token_T<ACE_Noop_Token> >
*
@@ -61,6 +66,7 @@ private:
void operator= (const ACE_Guard< ACE_Reactor_Token_T<ACE_Noop_Token> > &);
};
+// FUZZ: enable check_for_ACE_Guard
#endif /* ACE_MT_SAFE && ACE_MT_SAFE == 0 */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Select_Reactor_Base.cpp b/ACE/ace/Select_Reactor_Base.cpp
index e86008aaf85..2f92d25f18f 100644
--- a/ACE/ace/Select_Reactor_Base.cpp
+++ b/ACE/ace/Select_Reactor_Base.cpp
@@ -18,11 +18,6 @@
# include <algorithm>
#endif /* !ACE_WIN32 */
-ACE_RCSID (ace,
- Select_Reactor_Base,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template<typename iterator>
@@ -83,7 +78,7 @@ ACE_Select_Reactor_Handler_Repository::handle_in_range (ACE_HANDLE handle)
}
int
-ACE_Select_Reactor_Handler_Repository::open (size_t size)
+ACE_Select_Reactor_Handler_Repository::open (size_type size)
{
ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::open");
@@ -691,7 +686,9 @@ ACE_Select_Reactor_Notify::notify (ACE_Event_Handler *event_handler,
ACE_Event_Handler_var safe_handler (event_handler);
if (event_handler)
- event_handler->add_reference ();
+ {
+ event_handler->add_reference ();
+ }
ACE_Notification_Buffer buffer (event_handler, mask);
@@ -718,7 +715,9 @@ ACE_Select_Reactor_Notify::notify (ACE_Event_Handler *event_handler,
sizeof buffer,
timeout);
if (n == -1)
- return -1;
+ {
+ return -1;
+ }
// No failures.
safe_handler.release ();
@@ -800,14 +799,9 @@ ACE_Select_Reactor_Notify::dispatch_notify (ACE_Notification_Buffer &buffer)
more_messages_queued,
next);
- if (result == 0)
- {
- return 0;
- }
-
- if (result == -1)
+ if (result == 0 || result == -1)
{
- return -1;
+ return result;
}
if(more_messages_queued)
@@ -874,6 +868,25 @@ ACE_Select_Reactor_Notify::read_notify_pipe (ACE_HANDLE handle,
{
ACE_TRACE ("ACE_Select_Reactor_Notify::read_notify_pipe");
+ // This is kind of a weird, fragile beast. We first read with a
+ // regular read. The read side of this socket is non-blocking, so
+ // the read may end up being short.
+ //
+ // If the read is short, then we do a recv_n to insure that we block
+ // and read the rest of the buffer.
+ //
+ // Now, you might be tempted to say, "why don't we just replace the
+ // first recv with a recv_n?" I was, too. But that doesn't work
+ // because of how the calling code in handle_input() works. In
+ // handle_input, the event will only be dispatched if the return
+ // value from read_notify_pipe() is > 0. That means that we can't
+ // return zero from this func unless it's an EOF condition.
+ //
+ // Thus, the return value semantics for this are:
+ // -1: nothing read, fatal, unrecoverable error
+ // 0: nothing read at all
+ // 1: complete buffer read
+
ssize_t const n = ACE::recv (handle, (char *) &buffer, sizeof buffer);
if (n > 0)
@@ -887,9 +900,9 @@ ACE_Select_Reactor_Notify::read_notify_pipe (ACE_HANDLE handle,
// doesn't work we're in big trouble since the input stream
// won't be aligned correctly. I'm not sure quite what to
// do at this point. It's probably best just to return -1.
- if (ACE::recv (handle,
- ((char *) &buffer) + n,
- remainder) != remainder)
+ if (ACE::recv_n (handle,
+ ((char *) &buffer) + n,
+ remainder) != remainder)
return -1;
}
@@ -916,6 +929,9 @@ ACE_Select_Reactor_Notify::handle_input (ACE_HANDLE handle)
int result = 0;
ACE_Notification_Buffer buffer;
+ // If there is only one buffer in the pipe, this will loop and call
+ // read_notify_pipe() twice. The first time will read the buffer, and
+ // the second will read the fact that the pipe is empty.
while ((result = this->read_notify_pipe (handle, buffer)) > 0)
{
// Dispatch the buffer
diff --git a/ACE/ace/Select_Reactor_Base.h b/ACE/ace/Select_Reactor_Base.h
index 20c1e536e6a..31b513412dc 100644
--- a/ACE/ace/Select_Reactor_Base.h
+++ b/ACE/ace/Select_Reactor_Base.h
@@ -92,7 +92,6 @@ public:
class ACE_Event_Tuple
{
public:
-
/// Default constructor.
ACE_Event_Tuple (void);
@@ -106,7 +105,6 @@ public:
bool operator!= (const ACE_Event_Tuple &rhs) const;
public:
-
/// Handle.
ACE_HANDLE handle_;
@@ -180,6 +178,11 @@ public:
/// Read one of the notify call on the @a handle into the
/// @a buffer. This could be because of a thread trying to unblock
/// the Reactor_Impl
+ ///
+ /// Return value semantics for this are:
+ /// -1: nothing read, fatal, unrecoverable error
+ /// 0: nothing read at all
+ /// 1: complete buffer read
virtual int read_notify_pipe (ACE_HANDLE handle,
ACE_Notification_Buffer &buffer);
diff --git a/ACE/ace/Select_Reactor_T.cpp b/ACE/ace/Select_Reactor_T.cpp
index 57f5f9f36bf..3fb2ebfe4e9 100644
--- a/ACE/ace/Select_Reactor_T.cpp
+++ b/ACE/ace/Select_Reactor_T.cpp
@@ -32,10 +32,6 @@
#include "ace/Select_Reactor_T.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Select_Reactor_T,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Select_Reactor_T)
@@ -211,8 +207,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;
}
@@ -496,6 +495,9 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::ACE_Select_Reactor_T
// determine the size at run-time by checking the process file
// descriptor limit on platforms that support this feature.
+ // reset the errno so that subsequent checks are valid
+ errno = 0;
+
// There is no need to deallocate resources from previous open()
// call since the open() method deallocates any resources prior
// to exiting if an error was encountered.
@@ -1394,24 +1396,34 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handle_events
{
ACE_TRACE ("ACE_Select_Reactor_T::handle_events");
-#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-
// Stash the current time -- the destructor of this object will
// automatically compute how much time elapsed since this method was
// called.
ACE_Countdown_Time countdown (max_wait_time);
+#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
+
ACE_GUARD_RETURN (ACE_SELECT_REACTOR_TOKEN, ace_mon, this->token_, -1);
- if (ACE_OS::thr_equal (ACE_Thread::self (),
- this->owner_) == 0 || this->deactivated_)
- return -1;
+ if (ACE_OS::thr_equal (ACE_Thread::self (), this->owner_) == 0)
+ {
+ errno = EACCES;
+ return -1;
+ }
+ if (this->deactivated_)
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
// Update the countdown to reflect time waiting for the mutex.
countdown.update ();
#else
if (this->deactivated_)
- return -1;
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
#endif /* ACE_MT_SAFE */
return this->handle_events_i (max_wait_time);
diff --git a/ACE/ace/Select_Reactor_T.h b/ACE/ace/Select_Reactor_T.h
index 836128e97f1..27305a1c272 100644
--- a/ACE/ace/Select_Reactor_T.h
+++ b/ACE/ace/Select_Reactor_T.h
@@ -60,7 +60,7 @@ public:
/// If @a disable_notify_pipe is non-0 then the reactor will
/// not create a notification pipe, which will save two I/O handles
- /// but will elide the <notify()> feature. If @a mask_signals is
+ /// but will elide the notify() feature. If @a mask_signals is
/// true the reactor is "signal-safe" when dispatching handlers to
/// signal events, whereas if @a mask_signals is false the reactor will
/// be more efficient, but not signal-safe (which may be perfectly
@@ -106,7 +106,7 @@ public:
* timer queue, respectively. If @arg disable_notify_pipe is non-0 the
* notification pipe is not created, thereby saving two I/O handles.
*
- * @note On Unix platforms, the maximum_number_of_handles parameter
+ * @note On Unix platforms, the @a maximum_number_of_handles parameter
* should be as large as the maximum number of file
* descriptors allowed for a given process. This is necessary
* since a file descriptor is used to directly index the array
@@ -148,6 +148,7 @@ public:
*/
virtual int work_pending (const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero);
+ //@{
/**
* This event loop driver that blocks for @a max_wait_time before
* returning. It will return earlier if timer events, I/O events,
@@ -165,12 +166,14 @@ public:
* that were dispatched, 0 if the @a max_wait_time elapsed without
* dispatching any handlers, or -1 if something goes wrong.
*
- * Current <alertable_handle_events> is identical to
- * <handle_events>.
+ * Current alertable_handle_events() is identical to
+ * handle_events().
*/
virtual int handle_events (ACE_Time_Value *max_wait_time = 0);
virtual int alertable_handle_events (ACE_Time_Value *max_wait_time = 0);
+ //@}
+ //@{
/**
* This method is just like the one above, except the
* @a max_wait_time value is a reference and can therefore never be
@@ -181,6 +184,7 @@ public:
*/
virtual int handle_events (ACE_Time_Value &max_wait_time);
virtual int alertable_handle_events (ACE_Time_Value &max_wait_time);
+ //@}
// = Event handling control.
@@ -599,7 +603,7 @@ protected:
virtual int any_ready (ACE_Select_Reactor_Handle_Set &handle_set);
/// Implement the <any_ready> method, assuming that the Sig_Guard is
- /// beign held
+ /// being held
virtual int any_ready_i (ACE_Select_Reactor_Handle_Set &handle_set);
/// Take corrective action when errors occur.
@@ -642,8 +646,8 @@ protected:
/**
* Dispatch all the input/output/except handlers that are enabled in
- * the <dispatch_set>. Updates <number_of_active_handles> and
- * <number_of_handlers_dispatched> according to the behavior of the
+ * the @a dispatch_set. Updates @a number_of_active_handles and
+ * @a number_of_handlers_dispatched according to the behavior of the
* number Returns -1 if the state of the <wait_set_> has changed,
* else 0.
*/
@@ -654,9 +658,9 @@ protected:
/**
* Factors the dispatching of an io handle set (each WRITE, EXCEPT
* or READ set of handles). It updates the
- * <number_of_handlers_dispatched> and invokes this->notify_handle
+ * @a number_of_handlers_dispatched and invokes this->notify_handle
* for all the handles in <dispatch_set> using the @a mask,
- * <ready_set> and <callback> parameters. Must return -1 if
+ * <ready_set> and @a callback parameters. Must return -1 if
* this->state_changed otherwise it must return 0.
*/
virtual int dispatch_io_set (int number_of_active_handles,
@@ -666,7 +670,7 @@ protected:
ACE_Handle_Set& ready_mask,
ACE_EH_PTMF callback);
- /// Notify the appropriate <callback> in the context of the @a eh
+ /// Notify the appropriate @a callback in the context of the @a eh
/// associated with @a handle that a particular event has occurred.
virtual void notify_handle (ACE_HANDLE handle,
ACE_Reactor_Mask mask,
diff --git a/ACE/ace/Semaphore.cpp b/ACE/ace/Semaphore.cpp
index 104d2e517f0..d1af727cf68 100644
--- a/ACE/ace/Semaphore.cpp
+++ b/ACE/ace/Semaphore.cpp
@@ -9,10 +9,6 @@
#include "ace/Log_Msg.h"
#include "ace/ACE.h"
-ACE_RCSID (ace,
- Semaphore,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Semaphore)
diff --git a/ACE/ace/Service_Config.cpp b/ACE/ace/Service_Config.cpp
index 2b2b47da179..9a9bb2cadc1 100644
--- a/ACE/ace/Service_Config.cpp
+++ b/ACE/ace/Service_Config.cpp
@@ -24,26 +24,23 @@
#include "ace/Log_Msg.h"
#include "ace/ACE.h"
-ACE_RCSID (ace,
- Service_Config,
- "$Id$")
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-ACE_Threading_Helper<ACE_Thread_Mutex>::~ACE_Threading_Helper ()
+ACE_Threading_Helper<ACE_Thread_Mutex>::~ACE_Threading_Helper (void)
{
- ACE_OS::thr_key_detach (this->key_, 0);
+ ACE_OS::thr_key_detach (this->key_);
ACE_OS::thr_keyfree (this->key_);
}
-ACE_Threading_Helper<ACE_Thread_Mutex>::ACE_Threading_Helper ()
+ACE_Threading_Helper<ACE_Thread_Mutex>::ACE_Threading_Helper (void)
: key_ (ACE_OS::NULL_key)
{
# if defined (ACE_HAS_TSS_EMULATION)
ACE_Object_Manager::init_tss ();
# endif
- if (ACE_Thread::keycreate (&key_, 0, 0) == -1)
+ if (ACE_Thread::keycreate (&key_, 0) == -1)
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) Failed to create thread key: %p\n"),
diff --git a/ACE/ace/Service_Config.h b/ACE/ace/Service_Config.h
index 9bf6ea93afa..0c3a5bdd64b 100644
--- a/ACE/ace/Service_Config.h
+++ b/ACE/ace/Service_Config.h
@@ -367,6 +367,8 @@ private:
* - '-d' Turn on debugging mode
* - '-f' Specifies a configuration file name other than the default
* svc.conf. Can be specified multiple times to use multiple files.
+ * If any configuration file is provided with this option then
+ * the default svc.conf will be ignored.
* - '-k' Specifies the rendezvous point to use for the ACE distributed
* logger.
* - '-y' Explicitly enables the use of static services. This flag
@@ -380,7 +382,13 @@ private:
* - '-S' Specifies a service directive string. Enclose the string in quotes
* and escape any embedded quotes with a backslash. This option
* specifies service directives without the need for a configuration
- * file.
+ * file. Can be specified multiple times.
+ *
+ * Note: Options '-f' and '-S' complement each other. Directives from files
+ * and from '-S' option are processed together in the following order. First,
+ * all files are processed in the order they are specified in @a argv
+ * parameter. Second, all directive strings are executed in the order the
+ * directives appear in @a argv parameter.
*
* @param argc The number of commandline arguments.
* @param argv The array with commandline arguments
diff --git a/ACE/ace/Service_Config.inl b/ACE/ace/Service_Config.inl
index 5703553bcba..b31f910dc6a 100644
--- a/ACE/ace/Service_Config.inl
+++ b/ACE/ace/Service_Config.inl
@@ -50,7 +50,7 @@ ACE_Service_Config::open (int argc,
ignore_default_svc_conf,
ignore_debug_flag) == -1)
return -1;
-
+
return current()->open (argc,
argv,
logger_key,
diff --git a/ACE/ace/Service_Gestalt.cpp b/ACE/ace/Service_Gestalt.cpp
index 8b395d88b89..bd80fefc177 100644
--- a/ACE/ace/Service_Gestalt.cpp
+++ b/ACE/ace/Service_Gestalt.cpp
@@ -29,10 +29,6 @@
#include "ace/Svc_Conf_Param.h"
-ACE_RCSID (ace,
- Service_Gestalt,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Service_Type_Dynamic_Guard::ACE_Service_Type_Dynamic_Guard
@@ -205,6 +201,9 @@ ACE_Service_Gestalt::~ACE_Service_Gestalt (void)
delete this->svc_conf_file_queue_;
this->svc_conf_file_queue_ = 0;
+
+ delete this->svc_queue_;
+ this->svc_queue_ = 0;
}
ACE_Service_Gestalt::ACE_Service_Gestalt (size_t size,
@@ -259,32 +258,6 @@ ACE_Service_Gestalt::init_i (void)
if (init_svc_conf_file_queue () == -1)
return -1;
- if ( svc_conf_file_queue_->is_empty ())
- {
- // Check if the default file exists before attempting to queue it
- // for processing
- FILE *fp = ACE_OS::fopen (ACE_DEFAULT_SVC_CONF,
- ACE_TEXT ("r"));
- bool skip_static_svcs = (fp == 0);
- if (fp != 0)
- ACE_OS::fclose (fp);
-
- if (!skip_static_svcs) {
- // Load the default "svc.conf" entry here if there weren't
- // overriding -f arguments in <parse_args>.
- if (svc_conf_file_queue_->enqueue_tail
- (ACE_TString (ACE_DEFAULT_SVC_CONF)) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("enqueuing ")
- ACE_DEFAULT_SVC_CONF
- ACE_TEXT(" file")),
- -1);
- }
- }
- }
-
return 0;
}
@@ -1086,19 +1059,67 @@ ACE_Service_Gestalt::open_i (const ACE_TCHAR program_name[],
ACE_Log_Msg::disable_debug_messages ();
}
+ if (!ignore_default_svc_conf_file)
+ {
+ bool add_default = true;
+ bool has_files = this->svc_conf_file_queue_ &&
+ !this->svc_conf_file_queue_->is_empty ();
+ bool has_cmdline = this->svc_queue_ && !this->svc_queue_->is_empty ();
+ if (has_files || has_cmdline)
+ {
+ // check if default file is already listed
+ ACE_TString *sptr = 0;
+ ACE_TString default_svc_conf (ACE_DEFAULT_SVC_CONF);
+
+ for (ACE_SVC_QUEUE_ITERATOR iter (*this->svc_conf_file_queue_);
+ iter.next (sptr) != 0 && add_default;
+ iter.advance ())
+ {
+ add_default = (*sptr != default_svc_conf);
+ }
+
+ if (add_default)
+ {
+ FILE *fp = ACE_OS::fopen (ACE_DEFAULT_SVC_CONF, ACE_TEXT ("r"));
+ if (fp != 0)
+ ACE_OS::fclose(fp);
+ else
+ add_default = false;
+
+ }
+ }
+
+ // Load the default "svc.conf" entry. here if there weren't
+ // overriding -f arguments in <parse_args>.
+ if (add_default && svc_conf_file_queue_->enqueue_head
+ (ACE_TString (ACE_DEFAULT_SVC_CONF)) == -1)
+ {
+ errno = ENOENT;
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("enqueuing ")
+ ACE_DEFAULT_SVC_CONF
+ ACE_TEXT(" file")),
+ -1);
+ }
+ }
+
// See if we need to load the static services.
if (this->no_static_svcs_ == 0
&& this->load_static_svcs () == -1)
result = -1;
else
{
- if (this->process_commandline_directives () == -1)
- result = -1;
- else
- result = this->process_directives (ignore_default_svc_conf_file);
+ result = this->process_directives ();
+ if (result != -1)
+ {
+ int temp = this->process_commandline_directives ();
+ if (temp == -1)
+ result = -1;
+ else result += temp;
+ }
}
-
// Reset debugging back to the way it was when we came into
// into <open_i>.
{
@@ -1230,17 +1251,16 @@ ACE_Service_Gestalt::parse_args_i (int argc,
// Process service configuration directives from the files queued for
// processing
int
-ACE_Service_Gestalt::process_directives (bool ignore_default_svc_conf_file)
+ACE_Service_Gestalt::process_directives (bool )
{
ACE_TRACE ("ACE_Service_Gestalt::process_directives");
-
if (this->svc_conf_file_queue_ == 0
- || this->svc_conf_file_queue_->is_empty ())
- return 0;
+ || this->svc_conf_file_queue_->is_empty ())
+ {
+ return 0;
+ }
ACE_TString *sptr = 0;
- ACE_TString default_svc_conf (ACE_DEFAULT_SVC_CONF);
-
int failed = 0;
// Iterate through all the svc.conf files.
@@ -1248,9 +1268,6 @@ ACE_Service_Gestalt::process_directives (bool ignore_default_svc_conf_file)
iter.next (sptr) != 0;
iter.advance ())
{
- if (*sptr == default_svc_conf && ignore_default_svc_conf_file)
- continue;
-
int result = this->process_file (sptr->fast_rep ());
if (result < 0)
return result;
diff --git a/ACE/ace/Service_Gestalt.h b/ACE/ace/Service_Gestalt.h
index 191704e76b9..a73b3e6761b 100644
--- a/ACE/ace/Service_Gestalt.h
+++ b/ACE/ace/Service_Gestalt.h
@@ -67,15 +67,8 @@ class ACE_Svc_Conf_Param;
* Service Config in particular.
*
*/
-class ACE_Export ACE_Service_Gestalt
+class ACE_Export ACE_Service_Gestalt : private ACE_Copy_Disabled
{
-private:
- ///
- /// Not implemented to enforce no copying
- //
- ACE_UNIMPLEMENTED_FUNC (ACE_Service_Gestalt(const ACE_Service_Gestalt&))
- ACE_UNIMPLEMENTED_FUNC (ACE_Service_Gestalt& operator=(const ACE_Service_Gestalt&))
-
public:
enum
{
@@ -137,6 +130,8 @@ public:
* - '-d' Turn on debugging mode
* - '-f' Specifies a configuration file name other than the default
* svc.conf. Can be specified multiple times to use multiple files.
+ * If any configuration file is provided with this option then
+ * the default svc.conf will be ignored.
* - '-k' Specifies the rendezvous point to use for the ACE distributed
* logger.
* - '-y' Explicitly enables the use of static services. This flag
@@ -150,7 +145,21 @@ public:
* - '-S' Specifies a service directive string. Enclose the string in quotes
* and escape any embedded quotes with a backslash. This option
* specifies service directives without the need for a configuration
- * file.
+ * file. Can be specified multiple times.
+ *
+ * Note: Options '-f' and '-S' complement each other. Directives
+ * from files and from '-S' option are processed together in the
+ * following order. First, the default file "./svc.conf" is
+ * evaluated if not ignored, then all files are processed in the
+ * order they are specified in '-f' @a argv parameter. Finally, all
+ * '-S' directive strings are executed in the order the directives
+ * appear in @a argv parameter.
+ *
+ * If no files or directives are added via the '-f' and '-S'
+ * arguments, and the default file is not ignored, it will be
+ * evaluated whether it exists or not, possibly causing a failure
+ * return. If any other directives are added then the default file
+ * will be evaluated only if it exists.
*
* @param argc The number of commandline arguments.
* @param argv The array with commandline arguments
@@ -159,16 +168,16 @@ public:
* socket address.
* @param ignore_static_svcs If true then static services are not loaded,
* otherwise, they are loaded.
- * @param ignore_default_svc_conf_file If false then the @c svc.conf
+ * @param ignore_default_svc_conf_file If false then the @c ./svc.conf
* configuration file will be ignored.
* @param ignore_debug_flag If false then the application is responsible
* for setting the @c ACE_Log_Msg::priority_mask
* appropriately.
*
- * @retval -1 The configuration file is not found or cannot
+ * @retval -1 A configuration file is not found or cannot
* be opened (errno is set accordingly).
* @retval 0 Success.
- * @retval >0 The number of errors encountered while processing
+ * @retval >0 The number of directive errors encountered while processing
* the service configuration file(s).
*/
int open (int argc,
@@ -237,14 +246,14 @@ public:
* Please observe the difference between options '-f' that looks
* for a list of files and here a list of services.
*/
- int parse_args (int argc, ACE_TCHAR *argv[]);
+ int parse_args (int argc, ACE_TCHAR *argv[]);
/**
* Process (or re-process) service configuration requests that are
* provided in the svc.conf file(s). Returns the number of errors
* that occurred.
*/
- int process_directives (bool ignore_default_svc_conf_file);
+ int process_directives (bool defunct_option = false);
/// Tidy up and perform last rites when ACE_Service_Config is shut
/// down. This method calls @c close_svcs. Returns 0.
@@ -327,13 +336,13 @@ protected:
bool& ignore_default_svc_conf_file);
/**
- * Performs an open without parsing command-line arguments. The
- * @a logger_key indicates where to write the logging output, which
- * is typically either a STREAM pipe or a socket address. If
- * @a ignore_default_svc_conf_file is non-0 then the "svc.conf" file
- * will be ignored. If @a ignore_debug_flag is non-0 then the
- * application is responsible for setting the
- * @c ACE_Log_Msg::priority_mask() appropriately. Returns number of
+ * Performs an open without parsing command-line arguments. The @a
+ * logger_key indicates where to write the logging output, which is
+ * typically either a STREAM pipe or a socket address. If @a
+ * ignore_default_svc_conf_file is non-0 then the "svc.conf" file
+ * will not be added by default. If @a ignore_debug_flag is non-0
+ * then the application is responsible for setting the @c
+ * ACE_Log_Msg::priority_mask() appropriately. Returns number of
* errors that occurred on failure and 0 otherwise.
*/
int open_i (const ACE_TCHAR program_name[],
@@ -496,8 +505,10 @@ private:
size_t repo_begin_;
ACE_TCHAR const * const name_;
-# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
+#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
+// FUZZ: disable check_for_ACE_Guard
ACE_Guard< ACE_Recursive_Thread_Mutex > repo_monitor_;
+// FUZZ: enable check_for_ACE_Guard
#endif
};
diff --git a/ACE/ace/Service_Gestalt.inl b/ACE/ace/Service_Gestalt.inl
index 7f6b4754154..873a930ceab 100644
--- a/ACE/ace/Service_Gestalt.inl
+++ b/ACE/ace/Service_Gestalt.inl
@@ -36,6 +36,8 @@ ACE_Service_Gestalt::open (int argc,
{
ACE_TRACE ("ACE_Service_Gestalt::open");
+ // Parsing argv may change no_static_svcs_ so set the default here, then
+ // parse, then pass the final value to open_i().
this->no_static_svcs_ = ignore_static_svcs;
if (this->parse_args_i (argc,
@@ -45,7 +47,7 @@ ACE_Service_Gestalt::open (int argc,
return this->open_i (argv == 0 ? 0 : argv[0],
logger_key,
- ignore_static_svcs,
+ this->no_static_svcs_,
ignore_default_svc_conf,
ignore_debug_flag);
}
diff --git a/ACE/ace/Service_Manager.cpp b/ACE/ace/Service_Manager.cpp
index 30ca81e4074..a64bace009e 100644
--- a/ACE/ace/Service_Manager.cpp
+++ b/ACE/ace/Service_Manager.cpp
@@ -12,10 +12,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace,
- Service_Manager,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_Service_Manager)
diff --git a/ACE/ace/Service_Object.cpp b/ACE/ace/Service_Object.cpp
index f3ca42b25f3..5fd22ca720a 100644
--- a/ACE/ace/Service_Object.cpp
+++ b/ACE/ace/Service_Object.cpp
@@ -17,16 +17,12 @@
# include "ace/Lib_Find.h"
#endif
-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)
@@ -40,9 +36,9 @@ ACE_Service_Type::dump (void) const
// the generated C++ code.
ACE_OS::fprintf(stderr,
"// [ST] dump, this=%p, name=%s, type=%p, so=%p, active=%d\n",
- this,
- this->name_,
- this->type_,
+ static_cast<void const *> (this),
+ ACE_TEXT_ALWAYS_CHAR (this->name_),
+ static_cast<void const *> (this->type_),
(this->type_ != 0) ? this->type_->object () : 0,
this->active_);
@@ -111,6 +107,9 @@ ACE_Service_Type::fini (void)
int ret = this->type_->fini ();
+ // Ensure type is 0 to prevent invalid access after call to fini.
+ this->type_ = 0;
+
// Ensure that closing the DLL is done after type_->fini() as it may
// require access to the code for the service object destructor,
// which resides in the DLL
diff --git a/ACE/ace/Service_Repository.cpp b/ACE/ace/Service_Repository.cpp
index 60f6b6fe831..67fbc18e538 100644
--- a/ACE/ace/Service_Repository.cpp
+++ b/ACE/ace/Service_Repository.cpp
@@ -14,11 +14,7 @@
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (ace,
- Service_Repository,
- "$Id$")
-
- ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Service_Repository)
@@ -113,7 +109,9 @@ ACE_Service_Repository::ACE_Service_Repository (size_t size)
ACE_TRACE ("ACE_Service_Repository::ACE_Service_Repository");
}
+
/// Finalize (call fini() and possibly delete) all the services.
+
int
ACE_Service_Repository::fini (void)
{
@@ -121,45 +119,93 @@ ACE_Service_Repository::fini (void)
ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
int retval = 0;
-
// Do not be tempted to use the prefix decrement operator. Use
// postfix decrement operator since the index is unsigned and may
// wrap around the 0
- for (size_t i = this->service_array_.size(); i-- != 0; )
+ //
+ // debug output for empty service entries
+#ifndef ACE_NLOGGING
+ if (ACE::debug ())
+ {
+ for (size_t i = this->service_array_.size (); i-- != 0;)
{
- // <fini> the services in reverse order.
ACE_Service_Type *s =
const_cast<ACE_Service_Type *> (this->service_array_[i]);
+ if (s == 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ACE (%P|%t) SR::fini, repo=%@ [%d] -> 0\n"),
+ this,
+ i));
+ }
+ }
+#endif
+ //
+ // Remove all the Service_Object and Stream instances
+ //
+ for (size_t i = this->service_array_.size (); i-- != 0;)
+ {
+ // <fini> the services in reverse order.
+ ACE_Service_Type *s =
+ const_cast<ACE_Service_Type *> (this->service_array_[i]);
+ if (s != 0 &&
+ s->type () != 0 &&
+ (s->type ()->service_type () != ACE_Service_Type::MODULE))
+ {
#ifndef ACE_NLOGGING
if (ACE::debug ())
- {
- if (s != 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ACE (%P|%t) SR::fini, repo=%@ [%d], ")
- ACE_TEXT ("name=%s, type=%@, object=%@, active=%d\n"),
- this,
- i,
- s->name(),
- s->type (),
- (s->type () != 0) ? s->type ()->object () : 0,
- s->active ()));
- else
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ACE (%P|%t) SR::fini, repo=%@ [%d] -> 0\n"),
- this,
- i));
- }
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ACE (%P|%t) SR::fini, repo=%@ [%d], ")
+ ACE_TEXT ("name=%s, type=%@, object=%@, active=%d\n"),
+ this,
+ i,
+ s->name (),
+ s->type (),
+ (s->type () != 0) ? s->type ()->object () : 0,
+ s->active ()));
+ }
#endif
// Collect any errors.
- if (s != 0)
- retval += s->fini ();
+ retval += s->fini ();
}
+ }
+ //
+ // Remove all the Module instances
+ //
+ for (size_t i = this->service_array_.size (); i-- != 0;)
+ {
+ // <fini> the services in reverse order.
+ ACE_Service_Type *s =
+ const_cast<ACE_Service_Type *> (this->service_array_[i]);
+ if (s != 0 &&
+ s->type () != 0 &&
+ (s->type ()->service_type () == ACE_Service_Type::MODULE))
+ {
+#ifndef ACE_NLOGGING
+ if (ACE::debug ())
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ACE (%P|%t) SR::fini, repo=%@ [%d], ")
+ ACE_TEXT ("name=%s, type=%@, object=%@, active=%d\n"),
+ this,
+ i,
+ s->name (),
+ s->type (),
+ (s->type () != 0) ? s->type ()->object () : 0,
+ s->active ()));
+ }
+#endif
+ // Collect any errors.
+ retval += s->fini ();
+ }
+ }
return (retval == 0) ? 0 : -1;
}
+
/// Close down all the services.
int
ACE_Service_Repository::close (void)
diff --git a/ACE/ace/Service_Repository.h b/ACE/ace/Service_Repository.h
index a77bb062fd2..86291083155 100644
--- a/ACE/ace/Service_Repository.h
+++ b/ACE/ace/Service_Repository.h
@@ -96,11 +96,11 @@ public:
* Locate a named entry in the service table, optionally ignoring
* suspended entries.
*
- * @param service_name The name of the service to search for.
- * @param srp Optional; if not 0, it is a pointer to a location
- * to receive the ACE_Service_Type pointer for the
- * located service. Meaningless if this method
- * returns -1.
+ * @param name The name of the service to search for.
+ * @param srp Optional; if not 0, it is a pointer to a location
+ * to receive the ACE_Service_Type pointer for the
+ * located service. Meaningless if this method
+ * returns -1.
* @param ignore_suspended If true, the search ignores suspended services.
*
* @retval 0 Named service was located.
diff --git a/ACE/ace/Service_Templates.h b/ACE/ace/Service_Templates.h
deleted file mode 100644
index d41f16e6cbb..00000000000
--- a/ACE/ace/Service_Templates.h
+++ /dev/null
@@ -1,29 +0,0 @@
-
-//=============================================================================
-/**
- * @file Service_Templates.h
- *
- * $Id$
- *
- * @author Priyanka Gontla <pgontla@ece.uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SERVICE_TEMPLATES_H
-#define ACE_SERVICE_TEMPLATES_H
-#include /**/ "ace/pre.h"
-
-#include "ace/Svc_Conf.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Auto_Ptr.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Stream_Modules.h"
-#include "ace/Stream.h"
-
-#include /**/ "ace/post.h"
-#endif /* ACE_SERVICE_TEMPLATES_H */
diff --git a/ACE/ace/Service_Types.cpp b/ACE/ace/Service_Types.cpp
index 4552607640e..9caa72fcb98 100644
--- a/ACE/ace/Service_Types.cpp
+++ b/ACE/ace/Service_Types.cpp
@@ -11,11 +11,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
-
-ACE_RCSID (ace,
- Service_Types,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
typedef ACE_Stream<ACE_SYNCH> MT_Stream;
@@ -35,11 +30,13 @@ ACE_Service_Type_Impl::dump (void) const
ACE_Service_Type_Impl::ACE_Service_Type_Impl (void *so,
const ACE_TCHAR *s_name,
u_int f,
- ACE_Service_Object_Exterminator gobbler)
+ ACE_Service_Object_Exterminator gobbler,
+ int stype)
: name_ (0),
obj_ (so),
gobbler_ (gobbler),
- flags_ (f)
+ flags_ (f),
+ service_type_ (stype)
{
ACE_TRACE ("ACE_Service_Type_Impl::ACE_Service_Type_Impl");
this->name (s_name);
@@ -82,8 +79,9 @@ ACE_Service_Type_Impl::fini (void) const
ACE_Service_Object_Type::ACE_Service_Object_Type (void *so,
const ACE_TCHAR *s_name,
u_int f,
- ACE_Service_Object_Exterminator gobbler)
- : ACE_Service_Type_Impl (so, s_name, f, gobbler)
+ ACE_Service_Object_Exterminator gobbler,
+ int stype)
+ : ACE_Service_Type_Impl (so, s_name, f, gobbler, stype)
, initialized_ (-1)
{
ACE_TRACE ("ACE_Service_Object_Type::ACE_Service_Object_Type");
@@ -164,8 +162,9 @@ ACE_Module_Type::dump (void) const
ACE_Module_Type::ACE_Module_Type (void *m,
const ACE_TCHAR *m_name,
- u_int f)
- : ACE_Service_Type_Impl (m, m_name, f)
+ u_int f,
+ int stype)
+ : ACE_Service_Type_Impl (m, m_name, f, 0, stype)
{
ACE_TRACE ("ACE_Module_Type::ACE_Module_Type");
}
@@ -181,6 +180,15 @@ ACE_Module_Type::init (int argc, ACE_TCHAR *argv[]) const
ACE_TRACE ("ACE_Module_Type::init");
void *obj = this->object ();
MT_Module *mod = (MT_Module *) obj;
+ //
+ // Change the Module's name to what's in the svc.conf file.
+ // We must do this so the names match up so everything shuts
+ // down properly during the call to ACE_Stream_Type::fini
+ // which calls MT_Stream::remove([name]) for all the modules.
+ // If the calls to remove fail, we end up with a double delete
+ // during shutdown. Bugzilla #3847
+ //
+ mod->name (this->name_);
MT_Task *reader = mod->reader ();
MT_Task *writer = mod->writer ();
@@ -230,7 +238,6 @@ int
ACE_Module_Type::fini (void) const
{
ACE_TRACE ("ACE_Module_Type::fini");
-
void *obj = this->object ();
MT_Module *mod = (MT_Module *) obj;
MT_Task *reader = mod->reader ();
@@ -324,8 +331,9 @@ ACE_Stream_Type::resume (void) const
ACE_Stream_Type::ACE_Stream_Type (void *s,
const ACE_TCHAR *s_name,
- u_int f)
- : ACE_Service_Type_Impl (s, s_name, f),
+ u_int f,
+ int stype)
+ : ACE_Service_Type_Impl (s, s_name, f, 0, stype),
head_ (0)
{
ACE_TRACE ("ACE_Stream_Type::ACE_Stream_Type");
@@ -361,17 +369,13 @@ ACE_Stream_Type::fini (void) const
void *obj = this->object ();
MT_Stream *str = (MT_Stream *) obj;
- for (ACE_Module_Type *m = this->head_; m != 0; )
- {
- ACE_Module_Type *t = m->link ();
+ for (ACE_Module_Type *m = this->head_; m != 0;)
+ {
+ ACE_Module_Type *t = m->link ();
// Final arg is an indication to *not* delete the Module.
str->remove (m->name (),
MT_Module::M_DELETE_NONE);
-
- // Finalize the Module (this may delete it, but we don't really
- // care since we don't access it again).
- m->fini ();
m = t;
}
str->close ();
@@ -408,9 +412,8 @@ ACE_Stream_Type::remove (ACE_Module_Type *mod)
MT_Module::M_DELETE_NONE) == -1)
result = -1;
- // This call may end up deleting m, which is ok since we
- // don't access it again!
- m->fini ();
+ // Do not call m->fini (); as this will result in a double delete
+ // of the ACE_Module_type when ACE_Service_Repository::fini is called
}
else
prev = m;
diff --git a/ACE/ace/Service_Types.h b/ACE/ace/Service_Types.h
index e741561d965..de442a6b431 100644
--- a/ACE/ace/Service_Types.h
+++ b/ACE/ace/Service_Types.h
@@ -43,7 +43,8 @@ public:
ACE_Service_Type_Impl (void *object,
const ACE_TCHAR *s_name,
u_int flags = 0,
- ACE_Service_Object_Exterminator gobbler = 0);
+ ACE_Service_Object_Exterminator gobbler = 0,
+ int stype = ACE_Service_Type::INVALID_TYPE);
virtual ~ACE_Service_Type_Impl (void);
// = Pure virtual interface (must be defined by the subclass).
@@ -65,6 +66,12 @@ public:
/// Dump the state of an object.
void dump (void) const;
+ /// get the service_type of this service
+ int service_type (void) const;
+
+ /// set the service_type of this service
+ void service_type (int stype);
+
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
@@ -81,6 +88,11 @@ protected:
/// Flags that control serivce behavior (particularly deletion).
u_int flags_;
+
+ /// type of this service
+ /// Used to properly manage the lifecycle of ACE_Modules and ACE_Streams
+ /// during shutdown
+ int service_type_;
};
/**
@@ -96,7 +108,8 @@ public:
ACE_Service_Object_Type (void *so,
const ACE_TCHAR *name,
u_int flags = 0,
- ACE_Service_Object_Exterminator gobbler = 0);
+ ACE_Service_Object_Exterminator gobbler = 0,
+ int stype = ACE_Service_Type::SERVICE_OBJECT);
~ACE_Service_Object_Type (void);
@@ -124,7 +137,8 @@ public:
// = Initialization method.
ACE_Module_Type (void *m, // Really an ACE_Module *.
const ACE_TCHAR *identifier,
- u_int flags = 0);
+ u_int flags = 0,
+ int stype = ACE_Service_Type::MODULE);
~ACE_Module_Type (void);
@@ -164,7 +178,8 @@ public:
// = Initialization method.
ACE_Stream_Type (void *s, // Really an ACE_Stream *.
const ACE_TCHAR *identifier,
- u_int flags = 0);
+ u_int flags = 0,
+ int stype = ACE_Service_Type::STREAM);
~ACE_Stream_Type (void);
diff --git a/ACE/ace/Service_Types.inl b/ACE/ace/Service_Types.inl
index 9ebfd705ced..02b2d3c6c41 100644
--- a/ACE/ace/Service_Types.inl
+++ b/ACE/ace/Service_Types.inl
@@ -29,4 +29,15 @@ ACE_Service_Type_Impl::name (const ACE_TCHAR *n)
this->name_ = ACE::strnew (n);
}
+ACE_INLINE int
+ACE_Service_Type_Impl::service_type (void) const
+{
+ return service_type_;
+}
+
+ACE_INLINE void
+ACE_Service_Type_Impl::service_type (int stype)
+{
+ service_type_ = stype;
+}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Shared_Memory.cpp b/ACE/ace/Shared_Memory.cpp
index 90a9a7ed93e..48db9a71971 100644
--- a/ACE/ace/Shared_Memory.cpp
+++ b/ACE/ace/Shared_Memory.cpp
@@ -2,7 +2,7 @@
#include "ace/Shared_Memory.h"
-ACE_RCSID(ace, Shared_Memory, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Shared_Memory_MM.cpp b/ACE/ace/Shared_Memory_MM.cpp
index ae3285939d1..956359dce47 100644
--- a/ACE/ace/Shared_Memory_MM.cpp
+++ b/ACE/ace/Shared_Memory_MM.cpp
@@ -6,11 +6,6 @@
#include "ace/Shared_Memory_MM.inl"
#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (ace,
- Shared_Memory_MM,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Shared_Memory_MM)
diff --git a/ACE/ace/Shared_Memory_Pool.cpp b/ACE/ace/Shared_Memory_Pool.cpp
index baa4acc025a..01bb2001637 100644
--- a/ACE/ace/Shared_Memory_Pool.cpp
+++ b/ACE/ace/Shared_Memory_Pool.cpp
@@ -5,7 +5,7 @@
#include "ace/OS_NS_sys_shm.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Shared_Memory_Pool, "$Id$")
+
#if !defined (ACE_LACKS_SYSV_SHMEM)
@@ -168,7 +168,6 @@ ACE_Shared_Memory_Pool::handle_signal (int , siginfo_t *siginfo, ucontext_t *)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("in_use")));
-#if !defined(_UNICOS)
else if (!(siginfo->si_code == SEGV_MAPERR
&& siginfo->si_addr < (((char *) this->base_addr_) + offset)
&& siginfo->si_addr >= ((char *) this->base_addr_)))
@@ -176,15 +175,6 @@ ACE_Shared_Memory_Pool::handle_signal (int , siginfo_t *siginfo, ucontext_t *)
"(%P|%t) address %u out of range\n",
siginfo->si_addr),
-1);
-#else /* ! _UNICOS */
- else if (!(siginfo->si_code == SEGV_MEMERR
- && siginfo->si_addr < (((unsigned long) this->base_addr_) + offset)
- && siginfo->si_addr >= ((unsigned long) this->base_addr_)))
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) address %u out of range\n",
- siginfo->si_addr),
- -1);
-#endif /* ! _UNICOS */
}
// The above if case will check to see that the address is in the
@@ -194,11 +184,7 @@ ACE_Shared_Memory_Pool::handle_signal (int , siginfo_t *siginfo, ucontext_t *)
size_t counter; // ret value to get shmid from the st table.
-#if !defined(_UNICOS)
if (this->find_seg (siginfo->si_addr, offset, counter) == -1)
-#else /* ! _UNICOS */
- if (this->find_seg ((const void *)siginfo->si_addr, offset, counter) == -1)
-#endif /* ! _UNICOS */
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("in_use")),
diff --git a/ACE/ace/Shared_Memory_SV.cpp b/ACE/ace/Shared_Memory_SV.cpp
index e16b181408e..03d3bcdf139 100644
--- a/ACE/ace/Shared_Memory_SV.cpp
+++ b/ACE/ace/Shared_Memory_SV.cpp
@@ -7,11 +7,6 @@
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Shared_Memory_SV,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Shared_Memory_SV)
diff --git a/ACE/ace/Shared_Object.cpp b/ACE/ace/Shared_Object.cpp
index ca2d554035c..a7d78468ef3 100644
--- a/ACE/ace/Shared_Object.cpp
+++ b/ACE/ace/Shared_Object.cpp
@@ -11,11 +11,7 @@
#include "ace/Shared_Object.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Shared_Object,
- "$Id$")
-
- ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Initializes object when dynamic linking occurs.
diff --git a/ACE/ace/Sig_Adapter.cpp b/ACE/ace/Sig_Adapter.cpp
index 24788efa0cc..3fec1f5c2a3 100644
--- a/ACE/ace/Sig_Adapter.cpp
+++ b/ACE/ace/Sig_Adapter.cpp
@@ -2,7 +2,7 @@
#include "ace/Sig_Adapter.h"
-ACE_RCSID(ace, Sig_Adapter, "$Id$")
+
ACE_Sig_Adapter::ACE_Sig_Adapter (ACE_Sig_Action &sa, int sigkey)
diff --git a/ACE/ace/Sig_Handler.cpp b/ACE/ace/Sig_Handler.cpp
index 484a0930ee2..d408b8ba839 100644
--- a/ACE/ace/Sig_Handler.cpp
+++ b/ACE/ace/Sig_Handler.cpp
@@ -12,7 +12,7 @@
#include "ace/Sig_Handler.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Sig_Handler, "$Id$")
+
#if defined (ACE_HAS_SIG_C_FUNC)
@@ -71,7 +71,7 @@ ACE_Sig_Handler::sig_pending (void)
ACE_MT (ACE_Recursive_Thread_Mutex *lock =
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
(ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, m, *lock, 0));
return ACE_Sig_Handler::sig_pending_ != 0;
}
@@ -83,7 +83,7 @@ ACE_Sig_Handler::sig_pending (int pending)
ACE_MT (ACE_Recursive_Thread_Mutex *lock =
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
(ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, m, *lock));
ACE_Sig_Handler::sig_pending_ = pending;
}
@@ -94,7 +94,7 @@ ACE_Sig_Handler::handler (int signum)
ACE_MT (ACE_Recursive_Thread_Mutex *lock =
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
(ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, m, *lock, 0));
if (ACE_Sig_Handler::in_range (signum))
return ACE_Sig_Handler::signal_handlers_[signum];
@@ -127,7 +127,7 @@ ACE_Sig_Handler::handler (int signum,
ACE_MT (ACE_Recursive_Thread_Mutex *lock =
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
(ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, m, *lock, 0));
return ACE_Sig_Handler::handler_i (signum, new_sh);
}
@@ -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.
@@ -162,9 +161,9 @@ ACE_Sig_Handler::register_handler_i (int signum,
new_disp = &sa;
new_disp->handler (ace_signal_handler_dispatcher);
-#if !defined (ACE_HAS_LYNXOS_SIGNALS)
+#if !defined (ACE_HAS_LYNXOS4_SIGNALS)
new_disp->flags (new_disp->flags () | SA_SIGINFO);
-#endif /* ACE_HAS_LYNXOS_SIGNALS */
+#endif /* ACE_HAS_LYNXOS4_SIGNALS */
return new_disp->register_action (signum, old_disp);
}
else
@@ -186,7 +185,7 @@ ACE_Sig_Handler::register_handler (int signum,
ACE_MT (ACE_Recursive_Thread_Mutex *lock =
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
(ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, m, *lock, -1));
return ACE_Sig_Handler::register_handler_i (signum,
new_sh,
@@ -207,7 +206,7 @@ ACE_Sig_Handler::remove_handler (int signum,
ACE_MT (ACE_Recursive_Thread_Mutex *lock =
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
(ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, m, *lock, -1));
if (ACE_Sig_Handler::in_range (signum))
{
@@ -222,7 +221,7 @@ ACE_Sig_Handler::remove_handler (int signum,
return new_disp->register_action (signum, old_disp);
}
- return -1;
+ return -1;
}
// Master dispatcher function that gets called by a signal handler and
@@ -271,8 +270,7 @@ ACE_Sig_Handler::dispatch (int signum,
// dispatched. Therefore, to workaround this "feature" we
// must re-register the <ACE_Event_Handler> with <signum>
// explicitly.
- ACE_Sig_Handler::register_handler_i (signum,
- eh);
+ ACE_Sig_Handler::register_handler_i (signum, eh);
#endif /* ACE_WIN32*/
}
}
@@ -346,7 +344,7 @@ ACE_Sig_Handlers::register_handler (int signum,
ACE_MT (ACE_Recursive_Thread_Mutex *lock =
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
(ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, m, *lock, -1));
if (ACE_Sig_Handler::in_range (signum))
{
@@ -432,7 +430,9 @@ ACE_Sig_Handlers::register_handler (int signum,
// Default is to restart signal handlers.
new_disp->flags (new_disp->flags () | SA_RESTART);
+#if !defined (ACE_HAS_LYNXOS4_SIGNALS)
new_disp->flags (new_disp->flags () | SA_SIGINFO);
+#endif /* ACE_HAS_LYNXOS4_SIGNALS */
// Finally install (possibly reinstall) the ACE signal
// handler disposition with the SA_RESTART mode enabled.
@@ -473,7 +473,7 @@ ACE_Sig_Handlers::remove_handler (int signum,
ACE_MT (ACE_Recursive_Thread_Mutex *lock =
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object
(ACE_Object_Manager::ACE_SIG_HANDLER_LOCK);
- ACE_Guard<ACE_Recursive_Thread_Mutex> m (*lock));
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, m, *lock, -1));
if (ACE_Sig_Handler::in_range (signum))
{
diff --git a/ACE/ace/Signal.cpp b/ACE/ace/Signal.cpp
index 4148f33a959..aa9d142b80e 100644
--- a/ACE/ace/Signal.cpp
+++ b/ACE/ace/Signal.cpp
@@ -7,7 +7,7 @@
#include "ace/Signal.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Signal, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Signal.inl b/ACE/ace/Signal.inl
index 04ecfbfb49f..5740a6e2b60 100644
--- a/ACE/ace/Signal.inl
+++ b/ACE/ace/Signal.inl
@@ -150,22 +150,6 @@ ACE_Sig_Action::handler (ACE_SignalHandler handler)
#endif /* !ACE_HAS_TANDEM_SIGNALS */
}
-#if 0
-ACE_INLINE ACE_SignalHandler
-ACE_Sig_Action::sigaction (void)
-{
- ACE_TRACE ("ACE_Sig_Action::sigaction");
- return ACE_SignalHandler (this->sa_.sa_sigaction);
-}
-
-ACE_INLINE void
-ACE_Sig_Action::sigaction (ACE_SignalHandler handler)
-{
- ACE_TRACE ("ACE_Sig_Action::sigaction");
- this->sa_.sa_sigaction = (void (*)()) ACE_SignalHandlerV (handler);
-}
-#endif /* 0 */
-
ACE_INLINE void
ACE_Sig_Action::set (struct sigaction *sa)
{
diff --git a/ACE/ace/Singleton.cpp b/ACE/ace/Singleton.cpp
index 154cead4d64..da1f12bbce2 100644
--- a/ACE/ace/Singleton.cpp
+++ b/ACE/ace/Singleton.cpp
@@ -19,10 +19,6 @@
#include "ace/Guard_T.h"
#include "ace/os_include/os_typeinfo.h"
-ACE_RCSID (ace,
- Singleton,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <class TYPE, class ACE_LOCK> void
diff --git a/ACE/ace/Sock_Connect.cpp b/ACE/ace/Sock_Connect.cpp
index e275c96bcb2..332b21bb69e 100644
--- a/ACE/ace/Sock_Connect.cpp
+++ b/ACE/ace/Sock_Connect.cpp
@@ -29,40 +29,20 @@
# endif /* _AIX */
#endif /* ACE_HAS_IPV6 */
-# if defined (ACE_HAS_GETIFADDRS)
-# if defined (ACE_VXWORKS)
-# include /**/ <net/ifaddrs.h>
-# else
-# include /**/ <ifaddrs.h>
-# endif /*ACE_VXWORKS */
-# endif /* ACE_HAS_GETIFADDRS */
-
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600)
-#include /**/ <inetLib.h>
-#include /**/ <netinet/in_var.h>
-#if defined (ACE_HAS_IPV6)
-#include /**/ <ifLib.h>
-extern "C" {
- extern struct in_ifaddr* in_ifaddr;
- extern LIST_HEAD(in_ifaddrhashhead, in_ifaddr) *in_ifaddrhashtbl;
-}
-#endif /* ACE_HAS_IPV6 */
-#include "ace/OS_NS_stdio.h"
-#endif /* ACE_VXWORKS < 0x600 */
+#if defined (ACE_HAS_GETIFADDRS)
+# include "ace/os_include/os_ifaddrs.h"
+#endif /* ACE_HAS_GETIFADDRS */
-#if defined (ACE_VXWORKS) && ((ACE_VXWORKS >= 0x630) && (ACE_VXWORKS <= 0x670)) && defined (__RTP__) && defined (ACE_HAS_IPV6)
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670) && defined (__RTP__) && defined (ACE_HAS_IPV6)
const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT;
const struct in6_addr in6addr_nodelocal_allnodes = IN6ADDR_NODELOCAL_ALLNODES_INIT;
const struct in6_addr in6addr_linklocal_allnodes = IN6ADDR_LINKLOCAL_ALLNODES_INIT;
const struct in6_addr in6addr_linklocal_allrouters = IN6ADDR_LINKLOCAL_ALLROUTERS_INIT;
-#endif /* ACE_VXWORKS >= 0x630 && <= 0x670 && __RTP__ && ACE_HAS_IPV6 */
+#endif /* ACE_VXWORKS <= 0x670 && __RTP__ && ACE_HAS_IPV6 */
#if defined (ACE_HAS_WINCE)
-#include /**/ <Iphlpapi.h>
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
-// 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.
+#include /**/ <iphlpapi.h>
+# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && (_WIN32_WCE < 0x600) && defined (ACE_HAS_IPV6)
# include /**/ <ws2tcpip.h>
const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT;
const struct in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT;
@@ -149,22 +129,6 @@ namespace
# define SA_FAMILY sa_family
#endif /* ACE_HAS_IPV6 */
-// This is a hack to work around a problem with Visual Age C++ 5 and 6 on AIX.
-// Without this, the compiler auto-instantiates the ACE_Auto_Array_Ptr for
-// ifreq (contained in this module) but only adds the #include for <net/if.h>
-// and not the one for <sys/socket.h> which is also needed. Although we
-// don't need the template defined here, it makes the compiler pull in
-// <sys/socket.h> and the build runs clean.
-#if defined (AIX) && defined (__IBMCPP__) && (__IBMCPP__ >= 500) && (__IBMCPP__ < 700)
-static ACE_Auto_Array_Ptr<sockaddr> force_compiler_to_include_socket_h;
-#endif /* AIX && __IBMCPP__ >= 500 */
-
-
-ACE_RCSID (ace,
- Sock_Connect,
- "$Id$")
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Bind socket to an unused port.
@@ -250,32 +214,19 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr,
if (hp == 0)
return -1;
else
-#if !defined(_UNICOS)
ACE_OS::memcpy ((char *) &ip_addr.sin_addr.s_addr,
(char *) hp->h_addr,
hp->h_length);
-#else /* _UNICOS */
- {
- ACE_UINT64 haddr; // a place to put the address
- char * haddrp = (char *) &haddr; // convert to char pointer
- ACE_OS::memcpy(haddrp,(char *) hp->h_addr,hp->h_length);
- ip_addr.sin_addr.s_addr = haddr;
- }
-#endif /* ! _UNICOS */
}
else
{
ACE_OS::memset ((void *) &ip_addr, 0, sizeof ip_addr);
-#if !defined(_UNICOS)
ACE_OS::memcpy ((void *) &ip_addr.sin_addr,
(void*) &host_addr,
sizeof ip_addr.sin_addr);
-#else /* _UNICOS */
- ip_addr.sin_addr.s_addr = host_addr; // just copy to the bitfield
-#endif /* ! _UNICOS */
}
-#if !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__)
+#if !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) && !defined (__Lynx__)
for (int n = ifc.ifc_len / sizeof (struct ifreq) ; n > 0;
n--, ifr++)
#else
@@ -288,7 +239,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr,
ifr = (struct ifreq *)
((caddr_t) &ifr->ifr_addr + ifr->ifr_addr.sa_len)) :
(nbytes -= sizeof (struct ifreq), ifr++)))
-#endif /* !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) */
+#endif /* !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) && !defined (__Lynx__) */
{
struct sockaddr_in if_addr;
@@ -1115,64 +1066,7 @@ get_ip_interfaces_aix (size_t &count,
return 0;
}
-#elif defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600) && !defined (ACE_HAS_VXWORKS551_MEDUSA)
-int
-get_ip_interfaces_vxworks_lt600 (size_t &count,
- ACE_INET_Addr *&addrs)
-{
- count = 0;
- // Loop through each address structure
-
-# if defined (ACE_HAS_IPV6) && defined (TAILQ_ENTRY)
-# define ia_next ia_link.tqe_next
-# endif /* TAILQ_ENTRY */
-
- for (struct in_ifaddr* ia = in_ifaddr; ia != 0; ia = ia->ia_next)
- {
- ++count;
- }
-
- // Now create and initialize output array.
- ACE_NEW_RETURN (addrs,
- ACE_INET_Addr[count],
- -1); // caller must free
- count = 0;
- for (struct in_ifaddr* ia = in_ifaddr; ia != 0; ia = ia->ia_next)
- {
- struct ifnet* ifp = ia->ia_ifa.ifa_ifp;
- if (ifp != 0)
- {
- // Get the current interface name
- char interface[64];
- ACE_OS::sprintf(interface, "%s%d", ifp->if_name, ifp->if_unit);
-
- // Get the address for the current interface
- char address [INET_ADDR_LEN];
- STATUS status = ifAddrGet(interface, address);
-
- if (status == OK)
- {
- // Concatenate a ':' at the end. This is because in
- // ACE_INET_Addr::string_to_addr, the ip_address is
- // obtained using ':' as the delimiter. Since, using
- // ifAddrGet(), we just get the IP address, I am adding
- // a ":" to get with the general case.
- ACE_OS::strcat (address, ":");
- addrs[count].set (address);
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("ACE::get_ip_interface failed\n")
- ACE_TEXT ("Couldnt get the IP Address\n")),
- -1);
- }
- ++count;
- }
- }
- return 0;
-}
-#endif // ACE_WIN32 || ACE_HAS_GETIFADDRS || __hpux || _AIX || ACE_VXWORKS < 0x600
+#endif // ACE_WIN32 || ACE_HAS_GETIFADDRS || __hpux || _AIX
// return an array of all configured IP interfaces on this host, count
@@ -1180,8 +1074,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");
@@ -1196,9 +1089,7 @@ ACE::get_ip_interfaces (size_t &count,
return get_ip_interfaces_hpux (count, addrs);
#elif defined (_AIX)
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 (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 +1101,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 +1160,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
@@ -1288,7 +1179,6 @@ ACE::get_ip_interfaces (size_t &count,
)
{
-# if !defined(_UNICOS)
struct sockaddr_in *addr =
reinterpret_cast<sockaddr_in *> (&pcur->IFR_ADDR);
@@ -1309,26 +1199,9 @@ ACE::get_ip_interfaces (size_t &count,
addrs[count].set (addr, addrlen);
++count;
}
-# else /* ! _UNICOS */
- // need to explicitly copy on the Cray, since the bitfields kinda
- // screw things up here
- struct sockaddr_in inAddr;
-
- inAddr.sin_len = pcur->IFR_ADDR.sa_len;
- inAddr.sin_family = pcur->IFR_ADDR.sa_family;
- memcpy((void *)&(inAddr.sin_addr),
- (const void *)&(pcur->IFR_ADDR.sa_data[8]),
- sizeof(struct in_addr));
-
- if (inAddr.sin_addr.s_addr != 0)
- {
- addrs[count].set(&inAddr, sizeof(struct sockaddr_in));
- ++count;
- }
-# endif /* ! _UNICOS */
}
-#if !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) && !defined (ACE_HAS_RTEMS)
+#if !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) && !defined (ACE_HAS_RTEMS) && !defined (__Lynx__)
++pcur;
#else
if (pcur->ifr_addr.sa_len <= sizeof (struct sockaddr))
@@ -1340,14 +1213,14 @@ ACE::get_ip_interfaces (size_t &count,
pcur = (struct ifreq *)
(pcur->ifr_addr.sa_len + (caddr_t) &pcur->ifr_addr);
}
-#endif /* !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) */
+#endif /* !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) && !defined (ACE_HAS_RTEMS) && !defined (__Lynx__) */
}
# if defined (ACE_HAS_IPV6)
// 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 +1277,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 +1293,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 (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 +1340,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.
@@ -1489,7 +1355,7 @@ return 0;
break;
++if_count;
-#if !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) && !defined (ACE_HAS_RTEMS)
+#if !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) && !defined (ACE_HAS_RTEMS) && !defined (__Lynx__)
++p_ifs;
#else
if (p_ifs->ifr_addr.sa_len <= sizeof (struct sockaddr))
@@ -1501,7 +1367,7 @@ return 0;
p_ifs = (struct ifreq *)
(p_ifs->ifr_addr.sa_len + (caddr_t) &p_ifs->ifr_addr);
}
-#endif /* !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) */
+#endif /* !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) && !defined (ACE_HAS_RTEMS) && !defined (__Lynx__)*/
}
ACE_OS::free (ifcfg.ifc_req);
@@ -1538,7 +1404,7 @@ ACE::get_handle (void)
ACE_HANDLE handle = ACE_INVALID_HANDLE;
#if defined (sparc)
handle = ACE_OS::open ("/dev/udp", O_RDONLY);
-#elif defined (__unix) || defined (__unix__) || defined (__Lynx__) || defined (_AIX) || defined (__hpux) || (defined (ACE_VXWORKS) && (ACE_VXWORKS >= 0x600)) || defined (ACE_OPENVMS) || defined (ACE_HAS_RTEMS)
+#elif defined (__unix) || defined (__unix__) || defined (_AIX) || defined (__hpux) || (defined (ACE_VXWORKS) && (ACE_VXWORKS >= 0x600)) || defined (ACE_OPENVMS) || defined (ACE_HAS_RTEMS)
// Note: DEC CXX doesn't define "unix" BSD compatible OS: HP UX,
// AIX, SunOS 4.x
diff --git a/ACE/ace/Stack_Trace.cpp b/ACE/ace/Stack_Trace.cpp
index 1fccc75fe8d..745d9287f11 100644
--- a/ACE/ace/Stack_Trace.cpp
+++ b/ACE/ace/Stack_Trace.cpp
@@ -6,9 +6,23 @@
*
* @brief Encapsulate string representation of stack trace.
*
- * Portions of the platform-specific code have been based on
- * code found in various places on the internet e.g., google groups,
- * VxWorks FAQ, etc., and adapted for use here.
+ * Some platform-specific areas of this code have been adapted from
+ * examples found elsewhere. Specifically,
+ * - the GLIBC stack generation uses the documented "backtrace" API
+ * and is adapted from examples shown in relevant documentation
+ * and repeated elsewhere, e.g.,
+ * http://www.linuxselfhelp.com/gnu/glibc/html_chapter/libc_33.html
+ * - the Solaris stack generation is adapted from a 1995 post on
+ * comp.unix.solaris by Bart Smaalders,
+ * http://groups.google.com/group/comp.unix.solaris/browse_thread/thread/8b9f3de8be288f1c/31550f93a48231d5?lnk=gst&q=how+to+get+stack+trace+on+solaris+group:comp.unix.solaris#31550f93a48231d5
+ * - VxWorks kernel-mode stack tracing is adapted from a code example
+ * in the VxWorks FAQ at http://www.xs4all.nl/~borkhuis/vxworks/vxw_pt5.html
+ * although the undocumented functions it uses are also mentioned in
+ * various documents available on the WindRiver support website.
+ *
+ * If you add support for a new platform, please add a bullet to the
+ * above list with durable references to the origins of your code.
+ *
*/
//=============================================================================
@@ -17,8 +31,6 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID (ace, Stack_Trace, "$Id$")
-
/*
This is ugly, simply because it's very platform-specific.
*/
@@ -108,7 +120,7 @@ struct ACE_Stack_Trace_stackstate
size_t starting_frame;
};
-//@TODO: Replace with a TSS-based pointer to avoid problems in multithreaded environs,
+//@TODO: Replace with a TSS-based pointer to avoid problems in multithreaded environs,
// or use a mutex to serialize access to this.
static ACE_Stack_Trace_stackstate* ACE_Stack_Trace_stateptr = 0;
@@ -185,7 +197,7 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset,
// See memEdrLib.c in VxWorks RTP sources for an example of stack tracing.
-static STATUS ace_vx_rtp_pc_validate (INSTR *pc, TRC_OS_CTX *pOsCtx)
+static STATUS ace_vx_rtp_pc_validate (INSTR *pc, TRC_OS_CTX *)
{
return ALIGNED (pc, sizeof (INSTR)) ? OK : ERROR;
}
@@ -250,7 +262,7 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset,
size_t len = ACE_OS::strlen (this->buf_);
size_t space = SYMBUFSIZ - len - 1;
char *cursor = this->buf_ + len;
- size_t written = ACE_OS::snprintf (cursor, space, "%x %s",
+ size_t written = ACE_OS::snprintf (cursor, space, "%p %s",
prevFn, fnName);
cursor += written;
space -= written;
@@ -495,7 +507,7 @@ typedef struct _dbghelp_functions
# pragma warning (push)
-# pragma warning (disable:4706)
+# pragma warning (disable:4706)
static bool load_dbghelp_library_if_needed (dbghelp_functions *pDbg)
{
//@TODO: See codeproject's StackWalker.cpp for the list of locations to
@@ -595,7 +607,7 @@ cs_operate(int (*func)(struct frame_state const *, void *), void *usrarg,
ZeroMemory (&fs.sf, sizeof (fs.sf));
fs.pDbg = &dbg;
emptyStack (); //Not sure what this should do, Chad?
-
+
CONTEXT c;
ZeroMemory (&c, sizeof (CONTEXT));
c.ContextFlags = CONTEXT_FULL;
@@ -697,7 +709,7 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset,
void
ACE_Stack_Trace::generate_trace (ssize_t, size_t)
{
-// Call determine_starting_frame() on HP aCC build to resolve declared
+// Call determine_starting_frame() on HP aCC build to resolve declared
// method never referenced warning.
#if defined (__HP_aCC)
size_t starting_frame = determine_starting_frame (0, 0);
diff --git a/ACE/ace/Stack_Trace.h b/ACE/ace/Stack_Trace.h
index 2f5901c5220..b59ab98bba0 100644
--- a/ACE/ace/Stack_Trace.h
+++ b/ACE/ace/Stack_Trace.h
@@ -37,31 +37,31 @@
* A new conversion character, the question mark, was added to ACE_Log_Msg for stack
* trace logging. The %? conversion character was added as a convenience so that users
* need not instantiate an ACE_Stack_Trace instance solely for the purpose of printing
- * it in an ACE logging message. The following are functionally equivalent:
+ * it in an ACE logging message. The following are functionally equivalent:
*
* \code
- * ACE_DEBUG((LM_DEBUG, "%?"));
+ * ACE_DEBUG((LM_DEBUG, "%?"));
*
* ACE_Stack_Trace st;
- * ACE_DEBUG ((LM_DEBUG, "%s", st.c_str() ));
+ * ACE_DEBUG ((LM_DEBUG, "%s", st.c_str() ));
* \endcode
*
* These usage examples were shown in $ACE_ROOT/tests/Stack_Trace_Test.cpp.
*
* @note The stack trace functionality was currently supported on platforms:
- * - Any platform using glibc as its runtime library, or where ACE_HAS_EXECINFO_H is defined
+ * - Any platform using glibc as its runtime library, or where ACE_HAS_EXECINFO_H is defined
* (this covers Linux and Mac) and gcc version >= 3.3.
* - VxWorks, both kernel and RTP
* - Solaris
* - Windows 32 and 64 bit (Visual C++, excluding WinCE/mobile)
*
- * @note Since stack trace buffer size has limitation(@c ACE_STACK_TRACE_SYMBUFSIZ), you will not
- * get a complete stack trace if @c ACE_STACK_TRACE_SYMBUFSIZ value is less than actual stack
- * trace data length. To get a complete stack trace, you need set @c ACE_STACK_TRACE_SYMBUFSIZ
- * with a larger value that is enough for the stack trace data in your @c config.h file
+ * @note Since stack trace buffer size has limitation(@c ACE_STACK_TRACE_SYMBUFSIZ), you will not
+ * get a complete stack trace if @c ACE_STACK_TRACE_SYMBUFSIZ value is less than actual stack
+ * trace data length. To get a complete stack trace, you need set @c ACE_STACK_TRACE_SYMBUFSIZ
+ * with a larger value that is enough for the stack trace data in your @c config.h file
* and rebuild ACE.
*
- * @note Using ACE logging mechanism (%?) to log the stack trace also has ACE_MAXLOGMSGLEN size limitation.
+ * @note Using ACE logging mechanism (%?) to log the stack trace also has ACE_MAXLOGMSGLEN size limitation.
* To get a complete stack trace, you could use different output method. Following is an example.
*
* \code
@@ -75,8 +75,8 @@ public:
/**
* @brief Grab a snapshot of the current stack trace and hold it for later use.
*
- * @param starting_frame_offset offset into the array of frames to start printing; 0 is the
- * platform-specific offset for the first frame, positive numbers give less frames, negative give
+ * @param starting_frame_offset offset into the array of frames to start printing; 0 is the
+ * platform-specific offset for the first frame, positive numbers give less frames, negative give
* more frames
* @param num_frames the number of stack frames to include (0 indicates platform-specific maximum)
*
diff --git a/ACE/ace/Stats.cpp b/ACE/ace/Stats.cpp
index 9166bee8ca6..5339a1a7726 100644
--- a/ACE/ace/Stats.cpp
+++ b/ACE/ace/Stats.cpp
@@ -9,7 +9,7 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(ace, Stats, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Strategies.h b/ACE/ace/Strategies.h
deleted file mode 100644
index ae4c0479833..00000000000
--- a/ACE/ace/Strategies.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Strategies.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef ACE_STRATEGIES_H
-#define ACE_STRATEGIES_H
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/// Place holder for backward compatibility..
-#include "ace/Connection_Recycling_Strategy.h"
-#include "ace/Hashable.h"
-#include "ace/Notification_Strategy.h"
-#include "ace/Reactor_Notification_Strategy.h"
-#include "ace/Recyclable.h"
-#include "ace/Refcountable.h"
-
-
-#include /**/ "ace/post.h"
-#endif /*ACE_STRATEGIES_H*/
diff --git a/ACE/ace/Strategies_T.cpp b/ACE/ace/Strategies_T.cpp
index 6aaef5eb2cc..4addb7d3774 100644
--- a/ACE/ace/Strategies_T.cpp
+++ b/ACE/ace/Strategies_T.cpp
@@ -439,7 +439,7 @@ ACE_Process_Strategy<SVC_HANDLER>::activate_svc_handler (SVC_HANDLER *svc_handle
case -1:
{
ACE_Errno_Guard error (errno);
- svc_handler->destroy ();
+ svc_handler->close ();
}
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
@@ -462,7 +462,7 @@ ACE_Process_Strategy<SVC_HANDLER>::activate_svc_handler (SVC_HANDLER *svc_handle
default: // In parent process.
// We need to close down the <SVC_HANDLER> here because it's
// running in the child.
- svc_handler->destroy ();
+ svc_handler->close ();
return 0;
}
}
diff --git a/ACE/ace/Strategies_T.h b/ACE/ace/Strategies_T.h
index 1318f27fe5d..5066ec9ce4b 100644
--- a/ACE/ace/Strategies_T.h
+++ b/ACE/ace/Strategies_T.h
@@ -24,7 +24,7 @@
#include "ace/Reactor.h"
#include "ace/Thread_Manager.h"
#include "ace/Connection_Recycling_Strategy.h"
-#include "ace/Refcountable.h"
+#include "ace/Refcountable_T.h"
#include "ace/Hashable.h"
#include "ace/Recyclable.h"
#include "ace/Reverse_Lock_T.h"
@@ -785,7 +785,7 @@ public:
};
template <class T>
-class ACE_Refcounted_Hash_Recyclable : public ACE_Refcountable,
+class ACE_Refcounted_Hash_Recyclable : public ACE_Refcountable_T<ACE_Null_Mutex>,
public ACE_Hashable,
public ACE_Recyclable
{
diff --git a/ACE/ace/Strategies_T.inl b/ACE/ace/Strategies_T.inl
index 3c6581d2399..30c784200a5 100644
--- a/ACE/ace/Strategies_T.inl
+++ b/ACE/ace/Strategies_T.inl
@@ -183,7 +183,7 @@ ACE_Schedule_All_Threaded_Strategy<SVC_HANDLER>::ACE_Schedule_All_Threaded_Strat
template <class T> ACE_INLINE
ACE_Refcounted_Hash_Recyclable<T>::ACE_Refcounted_Hash_Recyclable (void)
- : ACE_Refcountable (0),
+ : ACE_Refcountable_T<ACE_Null_Mutex> (0),
ACE_Hashable (),
ACE_Recyclable (ACE_RECYCLABLE_UNKNOWN),
t_ ()
@@ -194,7 +194,7 @@ template <class T> ACE_INLINE
ACE_Refcounted_Hash_Recyclable<T>::ACE_Refcounted_Hash_Recyclable (const T &t,
long refcount,
ACE_Recyclable_State state)
- : ACE_Refcountable (refcount),
+ : ACE_Refcountable_T<ACE_Null_Mutex> (refcount),
ACE_Hashable (),
ACE_Recyclable (state),
t_ (t)
diff --git a/ACE/ace/Stream.cpp b/ACE/ace/Stream.cpp
index 3e3cc3906ee..e968303b896 100644
--- a/ACE/ace/Stream.cpp
+++ b/ACE/ace/Stream.cpp
@@ -4,6 +4,7 @@
#ifndef ACE_STREAM_CPP
#define ACE_STREAM_CPP
+
//#include "ace/Module.h"
#include "ace/Stream.h"
@@ -241,6 +242,17 @@ ACE_Stream<ACE_SYNCH_USE>::remove (const ACE_TCHAR *name,
for (ACE_Module<ACE_SYNCH_USE> *mod = this->stream_head_;
mod != 0;
mod = mod->next ())
+ {
+#ifndef ACE_NLOGGING
+ if (ACE::debug ())
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ACE_Stream::remove - comparing existing module :%s: with :%s:\n"),
+ mod->name (),
+ name));
+ }
+#endif
+
if (ACE_OS::strcmp (mod->name (), name) == 0)
{
if (prev == 0) // Deleting ACE_Stream Head
@@ -248,11 +260,13 @@ ACE_Stream<ACE_SYNCH_USE>::remove (const ACE_TCHAR *name,
else
prev->link (mod->next ());
+ // Close down the module.
+ mod->close (flags);
+
// Don't delete the Module unless the flags request this.
if (flags != ACE_Module<ACE_SYNCH_USE>::M_DELETE_NONE)
{
- // Close down the module and release the memory.
- mod->close (flags);
+ // Release the memory.
delete mod;
}
@@ -260,7 +274,9 @@ ACE_Stream<ACE_SYNCH_USE>::remove (const ACE_TCHAR *name,
}
else
prev = mod;
+ }
+ ACE_DEBUG ((LM_WARNING, ACE_TEXT ("ACE_Stream::remove failed to find module with name %s to remove\n"),name));
return -1;
}
@@ -434,7 +450,7 @@ ACE_Stream<ACE_SYNCH_USE>::control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::control");
ACE_IO_Cntl_Msg ioc (cmd);
- ACE_Message_Block *db;
+ ACE_Message_Block *db = 0;
// Try to create a data block that contains the user-supplied data.
ACE_NEW_RETURN (db,
@@ -448,12 +464,11 @@ ACE_Stream<ACE_SYNCH_USE>::control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
// field.
ACE_Message_Block *cb = 0;
- ACE_NEW_RETURN (cb,
- ACE_Message_Block (sizeof ioc,
- ACE_Message_Block::MB_IOCTL,
- db,
- (char *) &ioc),
- -1);
+ ACE_NEW_NORETURN (cb,
+ ACE_Message_Block (sizeof ioc,
+ ACE_Message_Block::MB_IOCTL,
+ db,
+ (char *) &ioc));
// @@ Michael: The old semantic assumed that cb returns == 0
// if no memory was available. We will now return immediately
// without release (errno is set to ENOMEM by the macro).
diff --git a/ACE/ace/Stream.h b/ACE/ace/Stream.h
index 2dc24b6da13..1caed488777 100644
--- a/ACE/ace/Stream.h
+++ b/ACE/ace/Stream.h
@@ -37,8 +37,8 @@ class ACE_Time_Value;
* @brief This class is the primary abstraction for the ASX framework.
* It is moduled after System V Stream.
*
- * A Stream consists of a stack of <ACE_Modules>, each of which
- * contains two <ACE_Tasks>. Even though the methods in this
+ * A Stream consists of a stack of @c ACE_Modules, each of which
+ * contains two @c ACE_Tasks. Even though the methods in this
* class are virtual, this class isn't really intended for
* subclassing unless you know what you are doing. In
* particular, the ACE_Stream destructor calls <close>, which
@@ -53,7 +53,7 @@ public:
enum
{
- /// Indicates that <close> deletes the Tasks. Don't change this
+ /// Indicates that @c close() deletes the Tasks. Don't change this
/// value without updating the same enum in class ACE_Module...
M_DELETE = 3
};
@@ -88,7 +88,7 @@ public:
// = ACE_Stream plumbing operations
/// Add a new module @a mod right below the Stream head. The
- /// <open()> hook methods of the <ACE_Tasks> in this ACE_Module
+ /// @c open() hook methods of the @c ACE_Tasks in this ACE_Module
/// are invoked to initialize the tasks.
virtual int push (ACE_Module<ACE_SYNCH_USE> *mod);
@@ -101,7 +101,7 @@ public:
/// head).
virtual int top (ACE_Module<ACE_SYNCH_USE> *&mod);
- /// Insert a new module @a mod below the named module <prev_name>.
+ /// Insert a new module @a mod below the named module @a prev_name.
virtual int insert (const ACE_TCHAR *prev_name,
ACE_Module<ACE_SYNCH_USE> *mod);
@@ -111,7 +111,7 @@ public:
int flags = M_DELETE);
/// Remove the named module @a mod from the stream. This bypasses the
- /// strict LIFO ordering of <push> and <pop>.
+ /// strict LIFO ordering of @c push and @c pop.
virtual int remove (const ACE_TCHAR *mod,
int flags = M_DELETE);
@@ -218,7 +218,7 @@ public:
int advance (void);
private:
- /// Next <Module> that we haven't yet seen.
+ /// Next ACE_Module that we haven't yet seen.
ACE_Module<ACE_SYNCH_USE> *next_;
};
diff --git a/ACE/ace/String_Base.cpp b/ACE/ace/String_Base.cpp
index 7000454972f..4906c18daf3 100644
--- a/ACE/ace/String_Base.cpp
+++ b/ACE/ace/String_Base.cpp
@@ -19,26 +19,26 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_String_Base)
-template <class CHAR>
-CHAR ACE_String_Base<CHAR>::NULL_String_ = 0;
+template <class ACE_CHAR_T>
+ACE_CHAR_T ACE_String_Base<ACE_CHAR_T>::NULL_String_ = 0;
// Default constructor.
-template <class CHAR>
-ACE_String_Base<CHAR>::ACE_String_Base (ACE_Allocator *the_allocator)
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::ACE_String_Base (ACE_Allocator *the_allocator)
: allocator_ (the_allocator ? the_allocator : ACE_Allocator::instance ()),
len_ (0),
buf_len_ (0),
- rep_ (&ACE_String_Base<CHAR>::NULL_String_),
+ rep_ (&ACE_String_Base<ACE_CHAR_T>::NULL_String_),
release_ (false)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::ACE_String_Base");
}
// Constructor that actually copies memory.
-template <class CHAR>
-ACE_String_Base<CHAR>::ACE_String_Base (const CHAR *s,
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::ACE_String_Base (const ACE_CHAR_T *s,
ACE_Allocator *the_allocator,
bool release)
: allocator_ (the_allocator ? the_allocator : ACE_Allocator::instance ()),
@@ -47,12 +47,12 @@ ACE_String_Base<CHAR>::ACE_String_Base (const CHAR *s,
rep_ (0),
release_ (false)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::ACE_String_Base");
this->set (s, release);
}
-template <class CHAR>
-ACE_String_Base<CHAR>::ACE_String_Base (CHAR c,
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::ACE_String_Base (ACE_CHAR_T c,
ACE_Allocator *the_allocator)
: allocator_ (the_allocator ? the_allocator : ACE_Allocator::instance ()),
len_ (0),
@@ -60,17 +60,17 @@ ACE_String_Base<CHAR>::ACE_String_Base (CHAR c,
rep_ (0),
release_ (false)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::ACE_String_Base");
this->set (&c, 1, true);
}
// Constructor that actually copies memory.
-template <class CHAR>
-ACE_String_Base<CHAR>::ACE_String_Base (
- const CHAR *s,
- typename ACE_String_Base<CHAR>::size_type len,
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::ACE_String_Base (
+ const ACE_CHAR_T *s,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type len,
ACE_Allocator *the_allocator,
bool release)
: allocator_ (the_allocator ? the_allocator : ACE_Allocator::instance ()),
@@ -79,30 +79,30 @@ ACE_String_Base<CHAR>::ACE_String_Base (
rep_ (0),
release_ (false)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::ACE_String_Base");
this->set (s, len, release);
}
// Copy constructor.
-template <class CHAR>
-ACE_String_Base<CHAR>::ACE_String_Base (const ACE_String_Base<CHAR> &s)
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::ACE_String_Base (const ACE_String_Base<ACE_CHAR_T> &s)
: allocator_ (s.allocator_ ? s.allocator_ : ACE_Allocator::instance ()),
len_ (0),
buf_len_ (0),
rep_ (0),
release_ (false)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::ACE_String_Base");
this->set (s.rep_, s.len_, true);
}
-template <class CHAR>
-ACE_String_Base<CHAR>::ACE_String_Base (
- typename ACE_String_Base<CHAR>::size_type len,
- CHAR c,
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::ACE_String_Base (
+ typename ACE_String_Base<ACE_CHAR_T>::size_type len,
+ ACE_CHAR_T c,
ACE_Allocator *the_allocator)
: allocator_ (the_allocator ? the_allocator : ACE_Allocator::instance ()),
len_ (0),
@@ -110,33 +110,33 @@ ACE_String_Base<CHAR>::ACE_String_Base (
rep_ (0),
release_ (false)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::ACE_String_Base");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::ACE_String_Base");
this->resize (len, c);
}
-template <class CHAR>
-ACE_String_Base<CHAR>::~ACE_String_Base (void)
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::~ACE_String_Base (void)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::~ACE_String_Base");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::~ACE_String_Base");
if (this->buf_len_ != 0 && this->release_)
this->allocator_->free (this->rep_);
}
// this method might benefit from a little restructuring.
-template <class CHAR> void
-ACE_String_Base<CHAR>::set (const CHAR *s,
- typename ACE_String_Base<CHAR>::size_type len,
+template <class ACE_CHAR_T> void
+ACE_String_Base<ACE_CHAR_T>::set (const ACE_CHAR_T *s,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type len,
bool release)
{
// Case 1. Going from memory to more memory
size_type new_buf_len = len + 1;
if (s != 0 && len != 0 && release && this->buf_len_ < new_buf_len)
{
- CHAR *temp = 0;
+ ACE_CHAR_T *temp = 0;
ACE_ALLOCATOR (temp,
- (CHAR *) this->allocator_->malloc (new_buf_len * sizeof (CHAR)));
+ (ACE_CHAR_T *) this->allocator_->malloc (new_buf_len * sizeof (ACE_CHAR_T)));
if (this->buf_len_ != 0 && this->release_)
this->allocator_->free (this->rep_);
@@ -145,7 +145,7 @@ ACE_String_Base<CHAR>::set (const CHAR *s,
this->buf_len_ = new_buf_len;
this->release_ = true;
this->len_ = len;
- ACE_OS::memcpy (this->rep_, s, len * sizeof (CHAR));
+ ACE_OS::memcpy (this->rep_, s, len * sizeof (ACE_CHAR_T));
this->rep_[len] = 0;
}
else // Case 2. No memory allocation is necessary.
@@ -164,19 +164,19 @@ ACE_String_Base<CHAR>::set (const CHAR *s,
{
this->buf_len_ = 0;
this->len_ = 0;
- this->rep_ = &ACE_String_Base<CHAR>::NULL_String_;
+ this->rep_ = &ACE_String_Base<ACE_CHAR_T>::NULL_String_;
this->release_ = false;
}
else if (!release) // Note: No guarantee that rep_ is null terminated.
{
this->buf_len_ = len;
this->len_ = len;
- this->rep_ = const_cast <CHAR *> (s);
+ this->rep_ = const_cast <ACE_CHAR_T *> (s);
this->release_ = false;
}
else
{
- ACE_OS::memcpy (this->rep_, s, len * sizeof (CHAR));
+ ACE_OS::memcpy (this->rep_, s, len * sizeof (ACE_CHAR_T));
this->rep_[len] = 0;
this->len_ = len;
}
@@ -184,12 +184,12 @@ ACE_String_Base<CHAR>::set (const CHAR *s,
}
// Return substring.
-template <class CHAR> ACE_String_Base<CHAR>
-ACE_String_Base<CHAR>::substring (
- typename ACE_String_Base<CHAR>::size_type offset,
- typename ACE_String_Base<CHAR>::size_type length) const
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::substring (
+ typename ACE_String_Base<ACE_CHAR_T>::size_type offset,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type length) const
{
- ACE_String_Base<CHAR> nill;
+ ACE_String_Base<ACE_CHAR_T> nill;
size_type count = length;
// case 1. empty string
@@ -206,36 +206,36 @@ ACE_String_Base<CHAR>::substring (
else if (length == npos || count > (this->len_ - offset))
count = this->len_ - offset;
- return ACE_String_Base<CHAR> (&this->rep_[offset], count, this->allocator_);
+ return ACE_String_Base<ACE_CHAR_T> (&this->rep_[offset], count, this->allocator_);
}
-template <class CHAR> ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::append (const CHAR* s,
- typename ACE_String_Base<CHAR>::size_type slen)
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T> &
+ACE_String_Base<ACE_CHAR_T>::append (const ACE_CHAR_T* s,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type slen)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::append(const CHAR*, size_type)");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::append(const ACE_CHAR_T*, size_type)");
if (slen > 0 && slen != npos)
{
// case 1. No memory allocation needed.
if (this->buf_len_ >= this->len_ + slen + 1)
{
// Copy in data from new string.
- ACE_OS::memcpy (this->rep_ + this->len_, s, slen * sizeof (CHAR));
+ ACE_OS::memcpy (this->rep_ + this->len_, s, slen * sizeof (ACE_CHAR_T));
}
else // case 2. Memory reallocation is needed
{
const size_type new_buf_len =
ace_max(this->len_ + slen + 1, this->buf_len_ + this->buf_len_ / 2);
- CHAR *t = 0;
+ ACE_CHAR_T *t = 0;
ACE_ALLOCATOR_RETURN (t,
- (CHAR *) this->allocator_->malloc (new_buf_len * sizeof (CHAR)), *this);
+ (ACE_CHAR_T *) this->allocator_->malloc (new_buf_len * sizeof (ACE_CHAR_T)), *this);
// Copy memory from old string into new string.
- ACE_OS::memcpy (t, this->rep_, this->len_ * sizeof (CHAR));
+ ACE_OS::memcpy (t, this->rep_, this->len_ * sizeof (ACE_CHAR_T));
- ACE_OS::memcpy (t + this->len_, s, slen * sizeof (CHAR));
+ ACE_OS::memcpy (t + this->len_, s, slen * sizeof (ACE_CHAR_T));
if (this->buf_len_ != 0 && this->release_)
this->allocator_->free (this->rep_);
@@ -252,29 +252,29 @@ ACE_String_Base<CHAR>::append (const CHAR* s,
return *this;
}
-template <class CHAR> u_long
-ACE_String_Base<CHAR>::hash (void) const
+template <class ACE_CHAR_T> u_long
+ACE_String_Base<ACE_CHAR_T>::hash (void) const
{
return
ACE::hash_pjw (reinterpret_cast<char *> (
- const_cast<CHAR *> (this->rep_)),
- this->len_ * sizeof (CHAR));
+ const_cast<ACE_CHAR_T *> (this->rep_)),
+ this->len_ * sizeof (ACE_CHAR_T));
}
-template <class CHAR> void
-ACE_String_Base<CHAR>::resize (typename ACE_String_Base<CHAR>::size_type len,
- CHAR c)
+template <class ACE_CHAR_T> void
+ACE_String_Base<ACE_CHAR_T>::resize (typename ACE_String_Base<ACE_CHAR_T>::size_type len,
+ ACE_CHAR_T c)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::resize");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::resize");
fast_resize(len);
- ACE_OS::memset (this->rep_, c, this->buf_len_ * sizeof (CHAR));
+ ACE_OS::memset (this->rep_, c, this->buf_len_ * sizeof (ACE_CHAR_T));
}
-template <class CHAR> void
-ACE_String_Base<CHAR>::fast_resize (size_t len)
+template <class ACE_CHAR_T> void
+ACE_String_Base<ACE_CHAR_T>::fast_resize (size_t len)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::fast_resize");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::fast_resize");
// Only reallocate if we don't have enough space...
if (this->buf_len_ <= len)
@@ -282,8 +282,8 @@ ACE_String_Base<CHAR>::fast_resize (size_t len)
if (this->buf_len_ != 0 && this->release_)
this->allocator_->free (this->rep_);
- this->rep_ = static_cast<CHAR*>
- (this->allocator_->malloc ((len + 1) * sizeof (CHAR)));
+ this->rep_ = static_cast<ACE_CHAR_T*>
+ (this->allocator_->malloc ((len + 1) * sizeof (ACE_CHAR_T)));
this->buf_len_ = len + 1;
this->release_ = true;
}
@@ -292,8 +292,8 @@ ACE_String_Base<CHAR>::fast_resize (size_t len)
this->rep_[0] = 0;
}
-template <class CHAR> void
-ACE_String_Base<CHAR>::clear (bool release)
+template <class ACE_CHAR_T> void
+ACE_String_Base<ACE_CHAR_T>::clear (bool release)
{
// This can't use set(), because that would free memory if release=false
if (release)
@@ -301,7 +301,7 @@ ACE_String_Base<CHAR>::clear (bool release)
if (this->buf_len_ != 0 && this->release_)
this->allocator_->free (this->rep_);
- this->rep_ = &ACE_String_Base<CHAR>::NULL_String_;
+ this->rep_ = &ACE_String_Base<ACE_CHAR_T>::NULL_String_;
this->len_ = 0;
this->buf_len_ = 0;
this->release_ = false;
@@ -313,20 +313,20 @@ ACE_String_Base<CHAR>::clear (bool release)
}
// Assignment operator (does copy memory).
-template <class CHAR> ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::operator= (const CHAR *s)
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T> &
+ACE_String_Base<ACE_CHAR_T>::operator= (const ACE_CHAR_T *s)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator=");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator=");
if (s != 0)
this->set (s, true);
return *this;
}
// Assignment operator (does copy memory).
-template <class CHAR> ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::operator= (const ACE_String_Base<CHAR> &s)
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T> &
+ACE_String_Base<ACE_CHAR_T>::operator= (const ACE_String_Base<ACE_CHAR_T> &s)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator=");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator=");
// Check for self-assignment.
if (this != &s)
@@ -337,8 +337,8 @@ ACE_String_Base<CHAR>::operator= (const ACE_String_Base<CHAR> &s)
return *this;
}
-template <class CHAR> void
-ACE_String_Base<CHAR>::set (const CHAR *s, bool release)
+template <class ACE_CHAR_T> void
+ACE_String_Base<ACE_CHAR_T>::set (const ACE_CHAR_T *s, bool release)
{
size_t length = 0;
if (s != 0)
@@ -347,42 +347,42 @@ ACE_String_Base<CHAR>::set (const CHAR *s, bool release)
this->set (s, length, release);
}
-template <class CHAR> void
-ACE_String_Base<CHAR>::fast_clear (void)
+template <class ACE_CHAR_T> void
+ACE_String_Base<ACE_CHAR_T>::fast_clear (void)
{
this->len_ = 0;
if (this->release_)
{
// String retains the original buffer.
- if (this->rep_ != &ACE_String_Base<CHAR>::NULL_String_)
+ if (this->rep_ != &ACE_String_Base<ACE_CHAR_T>::NULL_String_)
this->rep_[0] = 0;
}
else
{
// External buffer: string relinquishes control of it.
this->buf_len_ = 0;
- this->rep_ = &ACE_String_Base<CHAR>::NULL_String_;
+ this->rep_ = &ACE_String_Base<ACE_CHAR_T>::NULL_String_;
}
}
// Get a copy of the underlying representation.
-template <class CHAR> CHAR *
-ACE_String_Base<CHAR>::rep (void) const
+template <class ACE_CHAR_T> ACE_CHAR_T *
+ACE_String_Base<ACE_CHAR_T>::rep (void) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::rep");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::rep");
- CHAR *new_string;
- ACE_NEW_RETURN (new_string, CHAR[this->len_ + 1], 0);
+ ACE_CHAR_T *new_string;
+ ACE_NEW_RETURN (new_string, ACE_CHAR_T[this->len_ + 1], 0);
ACE_OS::strsncpy (new_string, this->rep_, this->len_+1);
return new_string;
}
-template <class CHAR> int
-ACE_String_Base<CHAR>::compare (const ACE_String_Base<CHAR> &s) const
+template <class ACE_CHAR_T> int
+ACE_String_Base<ACE_CHAR_T>::compare (const ACE_String_Base<ACE_CHAR_T> &s) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::compare");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::compare");
if (this->rep_ == s.rep_)
return 0;
@@ -392,7 +392,7 @@ ACE_String_Base<CHAR>::compare (const ACE_String_Base<CHAR> &s) const
int result = ACE_OS::memcmp (this->rep_,
s.rep_,
- smaller_length * sizeof (CHAR));
+ smaller_length * sizeof (ACE_CHAR_T));
if (result == 0 && this->len_ != s.len_)
result = this->len_ > s.len_ ? 1 : -1;
@@ -401,56 +401,56 @@ ACE_String_Base<CHAR>::compare (const ACE_String_Base<CHAR> &s) const
// Comparison operator.
-template <class CHAR> bool
-ACE_String_Base<CHAR>::operator== (const ACE_String_Base<CHAR> &s) const
+template <class ACE_CHAR_T> bool
+ACE_String_Base<ACE_CHAR_T>::operator== (const ACE_String_Base<ACE_CHAR_T> &s) const
{
return this->len_ == s.len_ &&
ACE_OS::memcmp (this->rep_,
s.rep_,
- this->len_ * sizeof (CHAR)) == 0;
+ this->len_ * sizeof (ACE_CHAR_T)) == 0;
}
-template <class CHAR> bool
-ACE_String_Base<CHAR>::operator== (const CHAR *s) const
+template <class ACE_CHAR_T> bool
+ACE_String_Base<ACE_CHAR_T>::operator== (const ACE_CHAR_T *s) const
{
size_t len = ACE_OS::strlen (s);
return this->len_ == len &&
ACE_OS::memcmp (this->rep_,
s,
- len * sizeof (CHAR)) == 0;
+ len * sizeof (ACE_CHAR_T)) == 0;
}
-template <class CHAR> typename ACE_String_Base<CHAR>::size_type
-ACE_String_Base<CHAR>::find (
- const CHAR *s,
- typename ACE_String_Base<CHAR>::size_type pos) const
+template <class ACE_CHAR_T> typename ACE_String_Base<ACE_CHAR_T>::size_type
+ACE_String_Base<ACE_CHAR_T>::find (
+ const ACE_CHAR_T *s,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type pos) const
{
- CHAR *substr = this->rep_ + pos;
+ ACE_CHAR_T *substr = this->rep_ + pos;
size_t len = ACE_OS::strlen (s);
- CHAR *pointer = ACE_OS::strnstr (substr, s, len);
+ ACE_CHAR_T *pointer = ACE_OS::strnstr (substr, s, len);
if (pointer == 0)
- return ACE_String_Base<CHAR>::npos;
+ return ACE_String_Base<ACE_CHAR_T>::npos;
else
return pointer - this->rep_;
}
-template <class CHAR> typename ACE_String_Base<CHAR>::size_type
-ACE_String_Base<CHAR>::find (
- CHAR c,
- typename ACE_String_Base<CHAR>::size_type pos) const
+template <class ACE_CHAR_T> typename ACE_String_Base<ACE_CHAR_T>::size_type
+ACE_String_Base<ACE_CHAR_T>::find (
+ ACE_CHAR_T c,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type pos) const
{
- CHAR *substr = this->rep_ + pos;
- CHAR *pointer = ACE_OS::strnchr (substr, c, this->len_ - pos);
+ ACE_CHAR_T *substr = this->rep_ + pos;
+ ACE_CHAR_T *pointer = ACE_OS::strnchr (substr, c, this->len_ - pos);
if (pointer == 0)
- return ACE_String_Base<CHAR>::npos;
+ return ACE_String_Base<ACE_CHAR_T>::npos;
else
return pointer - this->rep_;
}
-template <class CHAR> typename ACE_String_Base<CHAR>::size_type
-ACE_String_Base<CHAR>::rfind (
- CHAR c,
- typename ACE_String_Base<CHAR>::size_type pos) const
+template <class ACE_CHAR_T> typename ACE_String_Base<ACE_CHAR_T>::size_type
+ACE_String_Base<ACE_CHAR_T>::rfind (
+ ACE_CHAR_T c,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type pos) const
{
if (pos == npos || pos > this->len_)
pos = this->len_;
@@ -461,11 +461,11 @@ ACE_String_Base<CHAR>::rfind (
if (this->rep_[i] == c)
return i;
- return ACE_String_Base<CHAR>::npos;
+ return ACE_String_Base<ACE_CHAR_T>::npos;
}
-template <class CHAR> void
-ACE_String_Base<CHAR>::swap (ACE_String_Base<CHAR> & str)
+template <class ACE_CHAR_T> void
+ACE_String_Base<ACE_CHAR_T>::swap (ACE_String_Base<ACE_CHAR_T> & str)
{
std::swap (this->allocator_ , str.allocator_);
std::swap (this->len_ , str.len_);
@@ -476,64 +476,164 @@ ACE_String_Base<CHAR>::swap (ACE_String_Base<CHAR> & str)
// ----------------------------------------------
-template <class CHAR> ACE_String_Base<CHAR>
-operator+ (const ACE_String_Base<CHAR> &s, const ACE_String_Base<CHAR> &t)
+template <class ACE_CHAR_T>
+int ACE_String_Base_Iterator <ACE_CHAR_T>::next (ACE_CHAR_T * & ch) const
{
- ACE_String_Base<CHAR> temp (s.length () + t.length ());
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::next");
+
+ if (0 == this->done ())
+ {
+ ch = &this->str_->rep_[this->index_];
+ return 1;
+ }
+ else
+ {
+ ch = 0;
+ return 0;
+ }
+}
+
+template <class ACE_CHAR_T>
+int ACE_String_Base_Iterator <ACE_CHAR_T>::advance (void)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::advance");
+
+ if (this->index_ < this->str_->length ())
+ {
+ ++ this->index_;
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+template <class ACE_CHAR_T>
+const ACE_String_Base_Iterator <ACE_CHAR_T> &
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+operator = (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::operator =");
+
+ if (this == &rhs)
+ return *this;
+
+ this->str_ = rhs.str_;
+ this->index_ = rhs.index_;
+ return *this;
+}
+
+// ----------------------------------------------
+
+template <class ACE_CHAR_T>
+int ACE_String_Base_Const_Iterator <ACE_CHAR_T>::next (const ACE_CHAR_T * & ch) const
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::next");
+
+ if (0 == this->done ())
+ {
+ ch = &this->str_->rep_[this->index_];
+ return 1;
+ }
+ else
+ {
+ ch = 0;
+ return 0;
+ }
+}
+
+template <class ACE_CHAR_T>
+int ACE_String_Base_Const_Iterator <ACE_CHAR_T>::advance (void)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::advance");
+
+ if (this->index_ < this->str_->length ())
+ {
+ ++ this->index_;
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+template <class ACE_CHAR_T>
+const ACE_String_Base_Const_Iterator <ACE_CHAR_T> &
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+operator = (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::operator =");
+
+ if (this == &rhs)
+ return *this;
+
+ this->str_ = rhs.str_;
+ this->index_ = rhs.index_;
+ return *this;
+}
+
+// ----------------------------------------------
+
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T>
+operator+ (const ACE_String_Base<ACE_CHAR_T> &s, const ACE_String_Base<ACE_CHAR_T> &t)
+{
+ ACE_String_Base<ACE_CHAR_T> temp (s.length () + t.length ());
temp += s;
temp += t;
return temp;
}
-template <class CHAR> ACE_String_Base<CHAR>
-operator+ (const CHAR *s, const ACE_String_Base<CHAR> &t)
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T>
+operator+ (const ACE_CHAR_T *s, const ACE_String_Base<ACE_CHAR_T> &t)
{
size_t slen = 0;
if (s != 0)
slen = ACE_OS::strlen (s);
- ACE_String_Base<CHAR> temp (slen + t.length ());
+ ACE_String_Base<ACE_CHAR_T> temp (slen + t.length ());
if (slen > 0)
temp.append (s, slen);
temp += t;
return temp;
}
-template <class CHAR> ACE_String_Base<CHAR>
-operator+ (const ACE_String_Base<CHAR> &s, const CHAR *t)
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T>
+operator+ (const ACE_String_Base<ACE_CHAR_T> &s, const ACE_CHAR_T *t)
{
size_t tlen = 0;
if (t != 0)
tlen = ACE_OS::strlen (t);
- ACE_String_Base<CHAR> temp (s.length () + tlen);
+ ACE_String_Base<ACE_CHAR_T> temp (s.length () + tlen);
temp += s;
if (tlen > 0)
temp.append (t, tlen);
return temp;
}
-template <class CHAR> ACE_String_Base<CHAR>
-operator + (const ACE_String_Base<CHAR> &t,
- const CHAR c)
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T>
+operator + (const ACE_String_Base<ACE_CHAR_T> &t,
+ const ACE_CHAR_T c)
{
- ACE_String_Base<CHAR> temp (t.length () + 1);
+ ACE_String_Base<ACE_CHAR_T> temp (t.length () + 1);
temp += t;
temp += c;
return temp;
}
-template <class CHAR> ACE_String_Base<CHAR>
-operator + (const CHAR c,
- const ACE_String_Base<CHAR> &t)
+template <class ACE_CHAR_T> ACE_String_Base<ACE_CHAR_T>
+operator + (const ACE_CHAR_T c,
+ const ACE_String_Base<ACE_CHAR_T> &t)
{
- ACE_String_Base<CHAR> temp (t.length () + 1);
+ ACE_String_Base<ACE_CHAR_T> temp (t.length () + 1);
temp += c;
temp += t;
return temp;
}
-template <class CHAR>
-ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::operator+= (const CHAR* s)
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T> &
+ACE_String_Base<ACE_CHAR_T>::operator+= (const ACE_CHAR_T* s)
{
size_t slen = 0;
if (s != 0)
@@ -541,21 +641,23 @@ ACE_String_Base<CHAR>::operator+= (const CHAR* s)
return this->append (s, slen);
}
-template <class CHAR>
-ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::operator+= (const ACE_String_Base<CHAR> &s)
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T> &
+ACE_String_Base<ACE_CHAR_T>::operator+= (const ACE_String_Base<ACE_CHAR_T> &s)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator+=(const ACE_String_Base<CHAR> &)");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator+=(const ACE_String_Base<ACE_CHAR_T> &)");
return this->append (s.rep_, s.len_);
}
-template <class CHAR>
-ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::operator+= (const CHAR c)
+template <class ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T> &
+ACE_String_Base<ACE_CHAR_T>::operator+= (const ACE_CHAR_T c)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator+=(const CHAR)");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator+=(const ACE_CHAR_T)");
const size_type slen = 1;
- return this->append (&c, slen);
+ // This temp is silly but it quiets an optimizer warning in IBM XL C++ 10.
+ ACE_String_Base<ACE_CHAR_T>& r = this->append (&c, slen);
+ return r;
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/String_Base.h b/ACE/ace/String_Base.h
index 85ef2755407..4baf8e4213f 100644
--- a/ACE/ace/String_Base.h
+++ b/ACE/ace/String_Base.h
@@ -23,9 +23,18 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/String_Base_Const.h"
+#include <iterator>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+// Forward decl.
+template <class ACE_CHAR_T>
+class ACE_String_Base_Iterator;
+
+// Forward decl.
+template <class ACE_CHAR_T>
+class ACE_String_Base_Const_Iterator;
+
/**
* @class ACE_String_Base
*
@@ -54,13 +63,23 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* many STL class templates. If you find yourself casting you're
* probably doing something wrong.
*/
-template <class CHAR>
+template <class ACE_CHAR_T>
class ACE_String_Base : public ACE_String_Base_Const
{
public:
-
using ACE_String_Base_Const::size_type;
+ friend class ACE_String_Base_Iterator <ACE_CHAR_T>;
+ friend class ACE_String_Base_Const_Iterator <ACE_CHAR_T>;
+
+ // ACE-style iterators
+ typedef ACE_String_Base_Iterator <ACE_CHAR_T> ITERATOR;
+ typedef ACE_String_Base_Const_Iterator <ACE_CHAR_T> CONST_ITERATOR;
+
+ // STL-style iterators
+ typedef ACE_String_Base_Iterator <ACE_CHAR_T> iterator;
+ typedef ACE_String_Base_Const_Iterator <ACE_CHAR_T> const_iterator;
+
/**
* Default constructor.
*
@@ -80,11 +99,11 @@ public:
*
* @param s Zero terminated input string
* @param the_allocator ACE_Allocator associated with string
- * @param release Allocator responsible(true)/not reponsible(false) for
+ * @param release Allocator responsible(true)/not responsible(false) for
* freeing memory.
- * @return ACE_String_Base containing const CHAR *s
+ * @return ACE_String_Base containing const ACE_CHAR_T *s
*/
- ACE_String_Base (const CHAR *s,
+ ACE_String_Base (const ACE_CHAR_T *s,
ACE_Allocator *the_allocator = 0,
bool release = true);
@@ -101,11 +120,11 @@ public:
* @param s Non-zero terminated input string
* @param len Length of non-zero terminated input string
* @param the_allocator ACE_Allocator associated with string
- * @param release Allocator responsible(true)/not reponsible(false) for
+ * @param release Allocator responsible(true)/not responsible(false) for
* freeing memory.
- * @return ACE_String_Base containing const CHAR *s
+ * @return ACE_String_Base containing const ACE_CHAR_T *s
*/
- ACE_String_Base (const CHAR *s,
+ ACE_String_Base (const ACE_CHAR_T *s,
size_type len,
ACE_Allocator *the_allocator = 0,
bool release = true);
@@ -116,16 +135,16 @@ public:
* @param s Input ACE_String_Base string to copy
* @return Copy of input string @a s
*/
- ACE_String_Base (const ACE_String_Base < CHAR > &s);
+ ACE_String_Base (const ACE_String_Base < ACE_CHAR_T > &s);
/**
* Constructor that copies @a c into dynamically allocated memory.
*
* @param c Single input character.
* @param the_allocator ACE_Allocator associated with string
- * @return ACE_String_Base containing CHAR 'c'
+ * @return ACE_String_Base containing ACE_CHAR_T 'c'
*/
- ACE_String_Base (CHAR c, ACE_Allocator *the_allocator = 0);
+ ACE_String_Base (ACE_CHAR_T c, ACE_Allocator *the_allocator = 0);
/**
* Constructor that allocates a len long string.
@@ -141,7 +160,7 @@ public:
* @return Empty ACE_String_Base with room for len CHARs
*/
ACE_String_Base (size_type len,
- CHAR c = 0,
+ ACE_CHAR_T c = 0,
ACE_Allocator *the_allocator = 0);
/**
@@ -156,7 +175,7 @@ public:
* @param slot Index of the desired character
* @return The character at index @a slot
*/
- const CHAR & operator[] (size_type slot) const;
+ const ACE_CHAR_T & operator[] (size_type slot) const;
/**
* Return the <slot'th> character by reference in the string
@@ -165,15 +184,15 @@ public:
* @param slot Index of the desired character
* @return The character at index @a slot
*/
- CHAR & operator[] (size_type slot);
+ ACE_CHAR_T & operator[] (size_type slot);
/**
* Assignment operator (does copy memory).
*
- * @param s Input null-terminated CHAR string to assign to this object.
+ * @param s Input null-terminated ACE_CHAR_T string to assign to this object.
* @return Return a copy of the this string.
*/
- ACE_String_Base < CHAR > &operator = (const CHAR * s);
+ ACE_String_Base < ACE_CHAR_T > &operator = (const ACE_CHAR_T * s);
/**
* Assignment operator (does copy memory).
@@ -181,7 +200,7 @@ public:
* @param s Input ACE_String_Base string to assign to this object.
* @return Return a copy of the this string.
*/
- ACE_String_Base < CHAR > &operator = (const ACE_String_Base < CHAR > &s);
+ ACE_String_Base < ACE_CHAR_T > &operator = (const ACE_String_Base < ACE_CHAR_T > &s);
/**
* Assignment alternative method (does not copy memory).
@@ -189,7 +208,7 @@ public:
* @param s Input ACE_String_Base string to assign to this object.
* @return Return this string.
*/
- ACE_String_Base < CHAR > &assign_nocopy (const ACE_String_Base < CHAR > &s);
+ ACE_String_Base < ACE_CHAR_T > &assign_nocopy (const ACE_String_Base < ACE_CHAR_T > &s);
/**
* Copy @a s into this @a ACE_String_Base.
@@ -205,10 +224,10 @@ public:
* used, and instead the internal buffer is set to NULL_String_.
*
* @param s Null terminated input string
- * @param release Allocator responsible(true)/not reponsible(false) for
+ * @param release Allocator responsible(true)/not responsible(false) for
* freeing memory.
*/
- void set (const CHAR * s, bool release = true);
+ void set (const ACE_CHAR_T * s, bool release = true);
/**
* Copy @a len bytes of @a s (will zero terminate the result).
@@ -225,10 +244,10 @@ public:
*
* @param s Non-zero terminated input string
* @param len Length of input string 's'
- * @param release Allocator responsible(true)/not reponsible(false) for
+ * @param release Allocator responsible(true)/not responsible(false) for
* freeing memory.
*/
- void set (const CHAR * s, size_type len, bool release);
+ void set (const ACE_CHAR_T * s, size_type len, bool release);
/**
* Clear this string. Memory is _not_ freed if @a release is false.
@@ -272,7 +291,7 @@ public:
* @param length How many characters to return starting at the offset.
* @return The string containing the desired substring
*/
- ACE_String_Base < CHAR > substring (size_type offset,
+ ACE_String_Base < ACE_CHAR_T > substring (size_type offset,
size_type length = npos) const;
/**
@@ -282,7 +301,7 @@ public:
* @param length How many characters to return starting at the offset.
* @return The string containing the desired substring
*/
- ACE_String_Base < CHAR > substr (size_type offset,
+ ACE_String_Base < ACE_CHAR_T > substr (size_type offset,
size_type length = npos) const;
/**
@@ -292,7 +311,7 @@ public:
* @return The combined string (input append to the end of the old). New
* string is zero terminated.
*/
- ACE_String_Base < CHAR > &operator += (const ACE_String_Base < CHAR > &s);
+ ACE_String_Base < ACE_CHAR_T > &operator += (const ACE_String_Base < ACE_CHAR_T > &s);
/**
* Concat operator (copies memory).
@@ -301,26 +320,26 @@ public:
* @return The combined string (input append to the end of the old). New
* string is zero terminated.
*/
- ACE_String_Base < CHAR >& operator += (const CHAR* s);
+ ACE_String_Base < ACE_CHAR_T >& operator += (const ACE_CHAR_T* s);
/**
* Concat operator (copies memory).
*
- * @param c Input CHAR to concatenate to this string.
+ * @param c Input ACE_CHAR_T to concatenate to this string.
* @return The combined string (input append to the end of the old). New
* string is zero terminated.
*/
- ACE_String_Base < CHAR >& operator += (const CHAR c);
+ ACE_String_Base < ACE_CHAR_T >& operator += (const ACE_CHAR_T c);
/**
* Append function (copies memory).
*
- * @param s Input CHAR array to concatenate to this string.
+ * @param s Input ACE_CHAR_T array to concatenate to this string.
* @param slen The length of the array.
* @return The combined string (input append to the end of the old). New
* string is zero terminated.
*/
- ACE_String_Base < CHAR >& append (const CHAR* s, size_type slen);
+ ACE_String_Base < ACE_CHAR_T >& append (const ACE_CHAR_T* s, size_type slen);
/**
* Returns a hash value for this string.
@@ -340,7 +359,7 @@ public:
* Return the number of allocated CHARs in the string object.
* This may be greater than the current length of the string.
*
- * @return Maximum number of CHAR units that can be stored, including
+ * @return Maximum number of ACE_CHAR_T units that can be stored, including
* any terminating nul that may be needed.
*/
size_t capacity (void) const;
@@ -367,7 +386,7 @@ public:
* @return Pointer reference to the string data. Returned string is
* zero terminated.
*/
- CHAR *rep (void) const;
+ ACE_CHAR_T *rep (void) const;
/**
* Get at the underlying representation directly!
@@ -378,12 +397,12 @@ public:
* that the string is zero terminated.
*
*/
- const CHAR *fast_rep (void) const;
+ const ACE_CHAR_T *fast_rep (void) const;
/**
- * Same as STL String's <c_str> and <fast_rep>.
+ * Same as STL String's c_str() and fast_rep().
*/
- const CHAR *c_str (void) const;
+ const ACE_CHAR_T *c_str (void) const;
/**
* Comparison operator that will match substrings. Returns the
@@ -393,10 +412,10 @@ public:
* @return Integer index value of the first location of string @a s or
* @c npos (not found).
*/
- size_type strstr (const ACE_String_Base<CHAR> &s) const;
+ size_type strstr (const ACE_String_Base<ACE_CHAR_T> &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 @c npos.
*
* @param str Input ACE_String_Base string to search for in stored string.
@@ -404,10 +423,10 @@ public:
* @return Index value of the first location of string @a str else
* @c npos.
*/
- size_type find (const ACE_String_Base<CHAR> &str, size_type pos = 0) const;
+ size_type find (const ACE_String_Base<ACE_CHAR_T> &str, size_type pos = 0) const;
/**
- * Find @a s starting at pos. Returns the slot of the first
+ * Find @a s starting at @a pos. Returns the slot of the first
* location that matches (will be >= pos), else @c npos.
*
* @param s non-zero input string to search for in stored string.
@@ -415,10 +434,10 @@ public:
* @return Index value of the first location of string @a str else
* @c npos.
*/
- size_type find (const CHAR *s, size_type pos = 0) const;
+ size_type find (const ACE_CHAR_T *s, size_type pos = 0) const;
/**
- * Find @a c starting at pos. Returns the slot of the first
+ * Find @a c starting at @a pos. Returns the slot of the first
* location that matches (will be >= pos), else @c npos.
*
* @param c Input character to search for in stored string.
@@ -426,10 +445,10 @@ public:
* @return Index value of the first location of string @a str else
* @c npos.
*/
- size_type find (CHAR c, size_type pos = 0) const;
+ size_type find (ACE_CHAR_T c, size_type pos = 0) const;
/**
- * Find @a c starting at pos (counting from the end). Returns the
+ * Find @a c starting at @a pos (counting from the end). Returns the
* slot of the first location that matches, else @c npos.
*
* @param c Input character to search for in stored string.
@@ -437,7 +456,7 @@ public:
* @return Index value of the first location of string @a str else
* @c npos.
*/
- size_type rfind (CHAR c, size_type pos = npos) const;
+ size_type rfind (ACE_CHAR_T c, size_type pos = npos) const;
/**
* Equality comparison operator (must match entire string).
@@ -445,7 +464,7 @@ public:
* @param s Input ACE_String_Base string to compare against stored string.
* @return @c true if equal, @c false otherwise.
*/
- bool operator == (const ACE_String_Base<CHAR> &s) const;
+ bool operator == (const ACE_String_Base<ACE_CHAR_T> &s) const;
/**
* Equality comparison operator (must match entire string).
@@ -453,7 +472,7 @@ public:
* @param s Null terminated string to compare against stored string.
* @return @c true if equal, @c false otherwise.
*/
- bool operator == (const CHAR *s) const;
+ bool operator == (const ACE_CHAR_T *s) const;
/**
* Less than comparison operator.
@@ -461,7 +480,7 @@ public:
* @param s Input ACE_String_Base string to compare against stored string.
* @return @c true if less than, @c false otherwise.
*/
- bool operator < (const ACE_String_Base<CHAR> &s) const;
+ bool operator < (const ACE_String_Base<ACE_CHAR_T> &s) const;
/**
* Greater than comparison operator.
@@ -469,7 +488,7 @@ public:
* @param s Input ACE_String_Base string to compare against stored string.
* @return @c true if greater than, @c false otherwise.
*/
- bool operator > (const ACE_String_Base<CHAR> &s) const;
+ bool operator > (const ACE_String_Base<ACE_CHAR_T> &s) const;
/**
* Inequality comparison operator.
@@ -477,7 +496,7 @@ public:
* @param s String to compare against stored string.
* @return @c true if not equal, @c false otherwise.
*/
- bool operator != (const ACE_String_Base<CHAR> &s) const;
+ bool operator != (const ACE_String_Base<ACE_CHAR_T> &s) const;
/**
* Inequality comparison operator.
@@ -485,7 +504,7 @@ public:
* @param s Null terminated string to compare against stored string.
* @return @c true if not equal, @c false otherwise.
*/
- bool operator != (const CHAR *s) const;
+ bool operator != (const ACE_CHAR_T *s) const;
/**
* Performs a strncmp comparison.
@@ -494,7 +513,7 @@ public:
* @return Integer value of result (less than 0, 0, greater than 0)
* depending on how input string @a s is to the stored string.
*/
- int compare (const ACE_String_Base<CHAR> &s) const;
+ int compare (const ACE_String_Base<ACE_CHAR_T> &s) const;
/**
* Dump the state of an object.
@@ -516,19 +535,25 @@ public:
*
* fast_resize just adjusts the buffer if needed and sets the length,
* it doesn't fill the buffer, so is much faster.
- *
+ *
* @param len The number of CHARs to reserve
- * @param c The CHAR to use when filling the string.
+ * @param c The ACE_CHAR_T to use when filling the string.
*/
- void resize (size_type len, CHAR c = 0);
+ void resize (size_type len, ACE_CHAR_T c = 0);
void fast_resize (size_t len);
/// Swap the contents of this @c ACE_String_Base with @a str.
/**
* @note This is non-throwing operation.
*/
- void swap (ACE_String_Base<CHAR> & str);
-
+ void swap (ACE_String_Base<ACE_CHAR_T> & str);
+
+ iterator begin (void);
+ const_iterator begin (void) const;
+
+ iterator end (void);
+ const_iterator end (void) const;
+
/**
* Declare the dynamic allocation hooks.
*/
@@ -554,7 +579,7 @@ protected:
/**
* Pointer to data.
*/
- CHAR *rep_;
+ ACE_CHAR_T *rep_;
/**
* Flag that indicates if we own the memory
@@ -564,34 +589,288 @@ protected:
/**
* Represents the "NULL" string to simplify the internal logic.
*/
- static CHAR NULL_String_;
+ static ACE_CHAR_T NULL_String_;
+};
+
+/**
+ * @class ACE_String_Base_Iterator
+ *
+ * @brief Iterator class for the ACE_String_Base class.
+ *
+ * This class is an implementation of an iterator that allows client
+ * applications it iterator over the contents of a string. Currently,
+ * now this iterator fall under the std::bidirectional_iterator_tag
+ * category. Future versions of the class will support the operations
+ * of std::random_access_iterator_tag.
+ */
+template <class ACE_CHAR_T>
+class ACE_String_Base_Iterator
+{
+public:
+ // = std::iterator_traits typedefs/traits.
+ typedef std::bidirectional_iterator_tag iterator_category;
+ typedef ACE_CHAR_T value_type;
+ typedef ACE_CHAR_T & reference;
+ typedef ACE_CHAR_T * pointer;
+ typedef ptrdiff_t difference_type;
+
+ /**
+ * Initializing constructor
+ *
+ * @param[in] str Target string for iterator.
+ */
+ ACE_String_Base_Iterator (ACE_String_Base <ACE_CHAR_T> & str, int end = 0);
+
+ /**
+ * Copy constructor
+ *
+ * @param[in] iter Iterator to copy.
+ */
+ ACE_String_Base_Iterator (const ACE_String_Base_Iterator <ACE_CHAR_T> & iter);
+
+ /// Destructor.
+ ~ACE_String_Base_Iterator (void);
+
+ /**
+ * Test if the iterator has seen all characters.
+ *
+ * @retval 0 Characters still remain.
+ * @retval 1 All characters have been seen.
+ */
+ int done (void) const;
+
+ /**
+ * Get the current character.
+ *
+ * @param[out] ch The current character.
+ * @retval 0 All characters have been seen.
+ * @retval 1 Items still remain to be seen.
+ */
+ int next (ACE_CHAR_T * & ch) const;
+
+ /**
+ * Move to the next character in the string.
+ *
+ * @retval 0 All characters have been seen.
+ * @retval 1 Items still remain to be seen.
+ */
+ int advance (void);
+
+ /**
+ * Assignment operator
+ *
+ * @param[in] iter Right-hand side of operator.
+ * @return Reference to self.
+ */
+ const ACE_String_Base_Iterator <ACE_CHAR_T> & operator = (const ACE_String_Base_Iterator <ACE_CHAR_T> & iter);
+
+ /**
+ * Dereference operator
+ *
+ * @return Reference to current character seen by iterator.
+ */
+ ACE_CHAR_T & operator * (void);
+
+ /**
+ * Prefix operator
+ */
+ ACE_String_Base_Iterator <ACE_CHAR_T> & operator ++ (void);
+
+ /**
+ * Postfix operator
+ */
+ ACE_String_Base_Iterator <ACE_CHAR_T> operator ++ (int);
+
+ /**
+ * Prefix operator
+ */
+ ACE_String_Base_Iterator <ACE_CHAR_T> & operator -- (void);
+
+ /**
+ * Postfix operator
+ */
+ ACE_String_Base_Iterator <ACE_CHAR_T> operator -- (int);
+
+ /**
+ * Eqaulity comparison operator
+ *
+ * @param[in] rhs Right-hand side of operator.
+ */
+ bool operator == (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const;
+
+ /**
+ * Ineqaulity comparison operator
+ *
+ * @param[in] rhs Right-hand side of operator.
+ */
+ bool operator != (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const;
+
+ bool operator < (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const;
+ bool operator > (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const;
+
+ bool operator <= (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const;
+ bool operator >= (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const;
+
+private:
+ /// Target string to iterate over.
+ ACE_String_Base <ACE_CHAR_T> * str_;
+
+ /// Current location in the string.
+ size_t index_;
+};
+
+/**
+ * @class ACE_String_Base_Const_Iterator
+ *
+ * @brief Const iterator class for the ACE_String_Base class.
+ *
+ * This class is an implementation of an iterator that allows client
+ * applications it iterator over the contents of a string. Currently,
+ * now this iterator fall under the std::bidirectional_iterator_tag
+ * category. Future versions of the class will support the operations
+ * of std::random_access_iterator_tag.
+ */
+template <class ACE_CHAR_T>
+class ACE_String_Base_Const_Iterator
+{
+public:
+ // = std::iterator_traits typedefs/traits.
+ typedef std::bidirectional_iterator_tag iterator_category;
+ typedef const ACE_CHAR_T value_type;
+ typedef const ACE_CHAR_T & reference;
+ typedef const ACE_CHAR_T * pointer;
+ typedef ptrdiff_t difference_type;
+
+ /**
+ * Initializing constructor
+ *
+ * @param[in] str Target string for iterator.
+ */
+ ACE_String_Base_Const_Iterator (const ACE_String_Base <ACE_CHAR_T> & str, int end = 0);
+
+ /**
+ * Copy constructor
+ *
+ * @param[in] iter Iterator to copy.
+ */
+ ACE_String_Base_Const_Iterator (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & iter);
+
+ /// Destructor.
+ ~ACE_String_Base_Const_Iterator (void);
+
+ /**
+ * Test if the iterator has seen all characters.
+ *
+ * @retval 0 Characters still remain.
+ * @retval 1 All characters have been seen.
+ */
+ int done (void) const;
+
+ /**
+ * Get the current character.
+ *
+ * @param[out] ch The current character.
+ * @retval 0 All characters have been seen.
+ * @retval 1 Items still remain to be seen.
+ */
+ int next (const ACE_CHAR_T * & ch) const;
+
+ /**
+ * Move to the next character in the string.
+ *
+ * @retval 0 All characters have been seen.
+ * @retval 1 Items still remain to be seen.
+ */
+ int advance (void);
+
+ /**
+ * Assignment operator
+ *
+ * @param[in] iter Right-hand side of operator.
+ * @return Reference to self.
+ */
+ const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & operator = (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & iter);
+
+ /**
+ * Dereference operator
+ *
+ * @return Reference to current character seen by iterator.
+ */
+ const ACE_CHAR_T & operator * (void);
+
+ /**
+ * Prefix operator
+ */
+ ACE_String_Base_Const_Iterator <ACE_CHAR_T> & operator ++ (void);
+
+ /**
+ * Postfix operator
+ */
+ ACE_String_Base_Const_Iterator <ACE_CHAR_T> operator ++ (int);
+
+ /**
+ * Prefix operator
+ */
+ ACE_String_Base_Const_Iterator <ACE_CHAR_T> & operator -- (void);
+
+ /**
+ * Postfix operator
+ */
+ ACE_String_Base_Const_Iterator <ACE_CHAR_T> operator -- (int);
+
+ /**
+ * Eqaulity comparison operator
+ *
+ * @param[in] rhs Right-hand side of operator.
+ */
+ bool operator == (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const;
+
+ /**
+ * Ineqaulity comparison operator
+ *
+ * @param[in] rhs Right-hand side of operator.
+ */
+ bool operator != (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const;
+
+ bool operator < (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const;
+ bool operator > (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const;
+
+ bool operator <= (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const;
+ bool operator >= (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const;
+
+private:
+ /// Target string to iterate over.
+ const ACE_String_Base <ACE_CHAR_T> * str_;
+
+ /// Current location in the string.
+ size_t index_;
};
-template < class CHAR >
- ACE_String_Base < CHAR > operator + (const ACE_String_Base < CHAR > &,
- const ACE_String_Base < CHAR > &);
-template < class CHAR >
- ACE_String_Base < CHAR > operator + (const ACE_String_Base < CHAR > &,
- const CHAR *);
-template < class CHAR >
- ACE_String_Base < CHAR > operator + (const CHAR *,
- const ACE_String_Base < CHAR > &);
-
-template < class CHAR >
- ACE_String_Base < CHAR > operator + (const ACE_String_Base < CHAR > &t,
- const CHAR c);
-
-template < class CHAR >
- ACE_String_Base < CHAR > operator + (const CHAR c,
- const ACE_String_Base < CHAR > &t);
-
-template <class CHAR>
- bool operator == (const CHAR *s,
- const ACE_String_Base<CHAR> &t);
-
-template <class CHAR>
- bool operator != (const CHAR *s,
- const ACE_String_Base<CHAR> &t);
+template < class ACE_CHAR_T >
+ ACE_String_Base < ACE_CHAR_T > operator + (const ACE_String_Base < ACE_CHAR_T > &,
+ const ACE_String_Base < ACE_CHAR_T > &);
+template < class ACE_CHAR_T >
+ ACE_String_Base < ACE_CHAR_T > operator + (const ACE_String_Base < ACE_CHAR_T > &,
+ const ACE_CHAR_T *);
+template < class ACE_CHAR_T >
+ ACE_String_Base < ACE_CHAR_T > operator + (const ACE_CHAR_T *,
+ const ACE_String_Base < ACE_CHAR_T > &);
+
+template < class ACE_CHAR_T >
+ ACE_String_Base < ACE_CHAR_T > operator + (const ACE_String_Base < ACE_CHAR_T > &t,
+ const ACE_CHAR_T c);
+
+template < class ACE_CHAR_T >
+ ACE_String_Base < ACE_CHAR_T > operator + (const ACE_CHAR_T c,
+ const ACE_String_Base < ACE_CHAR_T > &t);
+
+template <class ACE_CHAR_T>
+ bool operator == (const ACE_CHAR_T *s,
+ const ACE_String_Base<ACE_CHAR_T> &t);
+
+template <class ACE_CHAR_T>
+ bool operator != (const ACE_CHAR_T *s,
+ const ACE_String_Base<ACE_CHAR_T> &t);
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/String_Base.inl b/ACE/ace/String_Base.inl
index 28b5e824aa7..29c262e2b56 100644
--- a/ACE/ace/String_Base.inl
+++ b/ACE/ace/String_Base.inl
@@ -9,149 +9,451 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <class CHAR> ACE_INLINE void
-ACE_String_Base<CHAR>::dump (void) const
+template <class ACE_CHAR_T> ACE_INLINE void
+ACE_String_Base<ACE_CHAR_T>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_String_Base<CHAR>::dump");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::dump");
#endif /* ACE_HAS_DUMP */
}
// Assignment method (does not copy memory)
-template <class CHAR> ACE_INLINE ACE_String_Base<CHAR> &
-ACE_String_Base<CHAR>::assign_nocopy (const ACE_String_Base<CHAR> &s)
+template <class ACE_CHAR_T> ACE_INLINE ACE_String_Base<ACE_CHAR_T> &
+ACE_String_Base<ACE_CHAR_T>::assign_nocopy (const ACE_String_Base<ACE_CHAR_T> &s)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::assign_nocopy");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::assign_nocopy");
this->set (s.rep_, s.len_, false);
return *this;
}
-template <class CHAR> ACE_INLINE typename ACE_String_Base<CHAR>::size_type
-ACE_String_Base<CHAR>::length (void) const
+template <class ACE_CHAR_T> ACE_INLINE typename ACE_String_Base<ACE_CHAR_T>::size_type
+ACE_String_Base<ACE_CHAR_T>::length (void) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::length");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::length");
return this->len_;
}
-template <class CHAR> ACE_INLINE size_t
-ACE_String_Base<CHAR>::capacity (void) const
+template <class ACE_CHAR_T> ACE_INLINE size_t
+ACE_String_Base<ACE_CHAR_T>::capacity (void) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::capacity");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::capacity");
return this->buf_len_;
}
-template <class CHAR> ACE_INLINE bool
-ACE_String_Base<CHAR>::is_empty (void) const
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base<ACE_CHAR_T>::is_empty (void) const
{
return this->len_ == 0;
}
-template <class CHAR> ACE_INLINE bool
-ACE_String_Base<CHAR>::empty (void) const
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base<ACE_CHAR_T>::empty (void) const
{
return this->is_empty ();
}
-template <class CHAR> ACE_INLINE ACE_String_Base<CHAR>
-ACE_String_Base<CHAR>::substr (
- typename ACE_String_Base<CHAR>::size_type offset,
- typename ACE_String_Base<CHAR>::size_type length) const
+template <class ACE_CHAR_T> ACE_INLINE ACE_String_Base<ACE_CHAR_T>
+ACE_String_Base<ACE_CHAR_T>::substr (
+ typename ACE_String_Base<ACE_CHAR_T>::size_type offset,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type length) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::substr");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::substr");
return this->substring (offset, length);
}
// Return the <slot'th> character in the string.
-template <class CHAR> ACE_INLINE const CHAR &
-ACE_String_Base<CHAR>::operator[] (
- typename ACE_String_Base<CHAR>::size_type slot) const
+template <class ACE_CHAR_T> ACE_INLINE const ACE_CHAR_T &
+ACE_String_Base<ACE_CHAR_T>::operator[] (
+ typename ACE_String_Base<ACE_CHAR_T>::size_type slot) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator[]");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator[]");
return this->rep_[slot];
}
// Return the <slot'th> character in the string by reference.
-template <class CHAR> ACE_INLINE CHAR &
-ACE_String_Base<CHAR>::operator[] (
- typename ACE_String_Base<CHAR>::size_type slot)
+template <class ACE_CHAR_T> ACE_INLINE ACE_CHAR_T &
+ACE_String_Base<ACE_CHAR_T>::operator[] (
+ typename ACE_String_Base<ACE_CHAR_T>::size_type slot)
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator[]");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator[]");
return this->rep_[slot];
}
-template <class CHAR> ACE_INLINE const CHAR *
-ACE_String_Base<CHAR>::fast_rep (void) const
+template <class ACE_CHAR_T> ACE_INLINE const ACE_CHAR_T *
+ACE_String_Base<ACE_CHAR_T>::fast_rep (void) const
{
return this->rep_;
}
-template <class CHAR> ACE_INLINE const CHAR *
-ACE_String_Base<CHAR>::c_str (void) const
+template <class ACE_CHAR_T> ACE_INLINE const ACE_CHAR_T *
+ACE_String_Base<ACE_CHAR_T>::c_str (void) const
{
return this->rep_;
}
// Less than comparison operator.
-template <class CHAR> ACE_INLINE bool
-ACE_String_Base<CHAR>::operator < (const ACE_String_Base<CHAR> &s) const
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base<ACE_CHAR_T>::operator < (const ACE_String_Base<ACE_CHAR_T> &s) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator <");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator <");
return compare (s) < 0;
}
// Greater than comparison operator.
-template <class CHAR> ACE_INLINE bool
-ACE_String_Base<CHAR>::operator > (const ACE_String_Base &s) const
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base<ACE_CHAR_T>::operator > (const ACE_String_Base &s) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator >");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator >");
return compare (s) > 0;
}
// Comparison operator.
-template <class CHAR> ACE_INLINE bool
-ACE_String_Base<CHAR>::operator!= (const ACE_String_Base<CHAR> &s) const
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base<ACE_CHAR_T>::operator!= (const ACE_String_Base<ACE_CHAR_T> &s) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::operator!=");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator!=");
return !(*this == s);
}
-template <class CHAR> ACE_INLINE bool
-ACE_String_Base<CHAR>::operator!= (const CHAR *s) const
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base<ACE_CHAR_T>::operator!= (const ACE_CHAR_T *s) const
{
return !(*this == s);
}
-template <class CHAR> ACE_INLINE typename ACE_String_Base<CHAR>::size_type
-ACE_String_Base<CHAR>::find (const ACE_String_Base<CHAR>&str,
- typename ACE_String_Base<CHAR>::size_type pos) const
+template <class ACE_CHAR_T> ACE_INLINE typename ACE_String_Base<ACE_CHAR_T>::size_type
+ACE_String_Base<ACE_CHAR_T>::find (const ACE_String_Base<ACE_CHAR_T>&str,
+ typename ACE_String_Base<ACE_CHAR_T>::size_type pos) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::find");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::find");
return this->find (str.rep_, pos);
}
-template <class CHAR> ACE_INLINE typename ACE_String_Base<CHAR>::size_type
-ACE_String_Base<CHAR>::strstr (const ACE_String_Base<CHAR> &s) const
+template <class ACE_CHAR_T> ACE_INLINE typename ACE_String_Base<ACE_CHAR_T>::size_type
+ACE_String_Base<ACE_CHAR_T>::strstr (const ACE_String_Base<ACE_CHAR_T> &s) const
{
- ACE_TRACE ("ACE_String_Base<CHAR>::strstr");
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::strstr");
return this->find (s.rep_);
}
-template <class CHAR> ACE_INLINE bool
-operator== (const CHAR *s,
- const ACE_String_Base<CHAR> &t)
+template <class ACE_CHAR_T> ACE_INLINE typename ACE_String_Base<ACE_CHAR_T>::iterator
+ACE_String_Base<ACE_CHAR_T>::begin (void)
+{
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::begin");
+ return iterator (*this);
+}
+
+template <class ACE_CHAR_T> ACE_INLINE typename ACE_String_Base<ACE_CHAR_T>::const_iterator
+ACE_String_Base<ACE_CHAR_T>::begin (void) const
+{
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::begin");
+ return const_iterator (*this);
+}
+
+template <class ACE_CHAR_T> ACE_INLINE typename ACE_String_Base<ACE_CHAR_T>::iterator
+ACE_String_Base<ACE_CHAR_T>::end (void)
+{
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::end");
+ return iterator (*this, 1);
+}
+
+template <class ACE_CHAR_T> ACE_INLINE typename ACE_String_Base<ACE_CHAR_T>::const_iterator
+ACE_String_Base<ACE_CHAR_T>::end (void) const
+{
+ ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::end");
+ return const_iterator (*this, 1);
+}
+
+// ----------------------------------------------
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+ACE_String_Base_Iterator (ACE_String_Base <ACE_CHAR_T> & str, int end)
+: str_ (&str),
+ index_ (0 == end ? 0 : str.length ())
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::ACE_String_Base_Iterator");
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+ACE_String_Base_Iterator (const ACE_String_Base_Iterator <ACE_CHAR_T> & iter)
+: str_ (iter.str_),
+ index_ (iter.index_)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::ACE_String_Base_Iterator");
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Iterator <ACE_CHAR_T>::~ACE_String_Base_Iterator (void)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::~ACE_String_Base_Iterator");
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+int ACE_String_Base_Iterator <ACE_CHAR_T>::done (void) const
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::done");
+
+ return this->index_ >= this->str_->length () ? 1 : 0;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_CHAR_T & ACE_String_Base_Iterator <ACE_CHAR_T>::operator * (void)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::operator *");
+
+ return this->str_->rep_[this->index_];
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Iterator <ACE_CHAR_T> &
+ACE_String_Base_Iterator <ACE_CHAR_T>::operator ++ (void)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::operator ++");
+
+ if (0 == this->done ())
+ ++ this->index_;
+
+ return *this;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Iterator <ACE_CHAR_T>
+ACE_String_Base_Iterator <ACE_CHAR_T>::operator ++ (int)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::operator ++ (int)");
+
+ ACE_String_Base_Iterator <ACE_CHAR_T> temp (*this);
+
+ if (0 == this->done ())
+ ++ this->index_;
+
+ return temp;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Iterator <ACE_CHAR_T> &
+ACE_String_Base_Iterator <ACE_CHAR_T>::operator -- (void)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::operator --");
+
+ if (0 < this->index_)
+ -- this->index_;
+
+ return *this;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Iterator <ACE_CHAR_T>
+ACE_String_Base_Iterator <ACE_CHAR_T>::operator -- (int)
+{
+ ACE_TRACE ("ACE_String_Base_Iterator<ACE_CHAR_T>::operator -- (int)");
+
+ ACE_String_Base_Iterator <ACE_CHAR_T> temp (*this);
+
+ if (0 < this->index_)
+ -- this->index_;
+
+ return temp;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+operator == (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ == rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+operator != (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ != rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+operator < (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ < rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+operator > (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ > rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+operator >= (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ >= rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Iterator <ACE_CHAR_T>::
+operator <= (const ACE_String_Base_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ <= rhs.index_;
+}
+
+// ----------------------------------------------
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+ACE_String_Base_Const_Iterator (const ACE_String_Base <ACE_CHAR_T> & str, int end)
+: str_ (&str),
+ index_ (0 == end ? 0 : str.length ())
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::ACE_String_Base_Const_Iterator");
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+ACE_String_Base_Const_Iterator (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & iter)
+: str_ (iter.str_),
+ index_ (iter.index_)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::ACE_String_Base_Const_Iterator");
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::~ACE_String_Base_Const_Iterator (void)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::~ACE_String_Base_Const_Iterator");
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+int ACE_String_Base_Const_Iterator <ACE_CHAR_T>::done (void) const
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::done");
+
+ return this->index_ >= this->str_->length () ? 1 : 0;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+const ACE_CHAR_T & ACE_String_Base_Const_Iterator <ACE_CHAR_T>::operator * (void)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::operator *");
+
+ return this->str_->rep_[this->index_];
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Const_Iterator <ACE_CHAR_T> &
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::operator ++ (void)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::operator ++");
+
+ if (0 == this->done ())
+ ++ this->index_;
+
+ return *this;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::operator ++ (int)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::operator ++ (int)");
+
+ ACE_String_Base_Const_Iterator <ACE_CHAR_T> temp (*this);
+
+ if (0 == this->done ())
+ ++ this->index_;
+
+ return temp;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Const_Iterator <ACE_CHAR_T> &
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::operator -- (void)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::operator --");
+
+ if (0 < this->index_)
+ -- this->index_;
+
+ return *this;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::operator -- (int)
+{
+ ACE_TRACE ("ACE_String_Base_Const_Iterator<ACE_CHAR_T>::operator -- (int)");
+
+ ACE_String_Base_Const_Iterator <ACE_CHAR_T> temp (*this);
+
+ if (0 < this->index_)
+ -- this->index_;
+
+ return temp;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+operator == (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ == rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+operator != (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ != rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+operator < (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ < rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+operator > (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ > rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+operator >= (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ >= rhs.index_;
+}
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+ACE_String_Base_Const_Iterator <ACE_CHAR_T>::
+operator <= (const ACE_String_Base_Const_Iterator <ACE_CHAR_T> & rhs) const
+{
+ return this->index_ <= rhs.index_;
+}
+
+// ----------------------------------------------
+
+template <class ACE_CHAR_T> ACE_INLINE bool
+operator== (const ACE_CHAR_T *s,
+ const ACE_String_Base<ACE_CHAR_T> &t)
{
return t == s;
}
-template <class CHAR> ACE_INLINE bool
-operator!= (const CHAR *s,
- const ACE_String_Base<CHAR> &t)
+template <class ACE_CHAR_T> ACE_INLINE bool
+operator!= (const ACE_CHAR_T *s,
+ const ACE_String_Base<ACE_CHAR_T> &t)
{
return !(t == s);
}
diff --git a/ACE/ace/Svc_Conf.y b/ACE/ace/Svc_Conf.y
index 0c425097315..bc69dffcb3f 100644
--- a/ACE/ace/Svc_Conf.y
+++ b/ACE/ace/Svc_Conf.y
@@ -10,10 +10,6 @@
#include "ace/Service_Types.h"
#include "ace/ace_wchar.h"
-ACE_RCSID (ace,
- Svc_Conf_y,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Prototypes.
@@ -335,11 +331,10 @@ ace_get_module (ACE_Service_Type const * sr,
ACE_TCHAR const * svc_name,
int & yyerrno)
{
- ACE_Service_Type_Impl const * const type = sr->type ();
ACE_Stream_Type const * const st =
(sr == 0
? 0
- : dynamic_cast<ACE_Stream_Type const *> (type));
+ : dynamic_cast<ACE_Stream_Type const *> (sr->type ()));
ACE_Module_Type const * const mt = (st == 0 ? 0 : st->find (svc_name));
if (sr == 0 || st == 0 || mt == 0)
diff --git a/ACE/ace/Svc_Conf_Lexer.cpp b/ACE/ace/Svc_Conf_Lexer.cpp
index 05e40112bf9..57114c55a14 100644
--- a/ACE/ace/Svc_Conf_Lexer.cpp
+++ b/ACE/ace/Svc_Conf_Lexer.cpp
@@ -239,9 +239,7 @@ ACE_Svc_Conf_Lexer::input (ACE_Svc_Conf_Param* param,
if (errno == EINTR)
{
errno = 0;
-#if !defined (ACE_LACKS_CLEARERR)
ACE_OS::clearerr (param->source.file);
-#endif /* !ACE_LACKS_CLEARERR */
}
else
{
@@ -395,7 +393,7 @@ ACE_Svc_Conf_Lexer::scan (YYSTYPE* ace_yylval,
if (current == buffer->index_ + 1)
{
- int lower = ACE_OS::ace_tolower (
+ int const lower = ACE_OS::ace_tolower (
buffer->input_[current - 1]);
if (c == ':' &&
(buffer->input_[current - 1] == '%' ||
diff --git a/ACE/ace/Svc_Conf_y.cpp b/ACE/ace/Svc_Conf_y.cpp
index 44a2d1ae148..077d0c8ebf4 100644
--- a/ACE/ace/Svc_Conf_y.cpp
+++ b/ACE/ace/Svc_Conf_y.cpp
@@ -1,3 +1,4 @@
+// $Id$
/* A Bison parser, made by GNU Bison 2.3. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
@@ -115,9 +116,6 @@
#include "ace/Service_Types.h"
#include "ace/ace_wchar.h"
-ACE_RCSID (ace,
- Svc_Conf_y,
- "$Id$")
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -1957,11 +1955,10 @@ ace_get_module (ACE_Service_Type const * sr,
ACE_TCHAR const * svc_name,
int & ace_yyerrno)
{
- ACE_Service_Type_Impl const * const type = sr->type ();
ACE_Stream_Type const * const st =
(sr == 0
? 0
- : dynamic_cast<ACE_Stream_Type const *> (type));
+ : dynamic_cast<ACE_Stream_Type const *> (sr->type ()));
ACE_Module_Type const * const mt = (st == 0 ? 0 : st->find (svc_name));
if (sr == 0 || st == 0 || mt == 0)
diff --git a/ACE/ace/Svc_Handler.cpp b/ACE/ace/Svc_Handler.cpp
index 7941c34238c..8a9076e070b 100644
--- a/ACE/ace/Svc_Handler.cpp
+++ b/ACE/ace/Svc_Handler.cpp
@@ -95,8 +95,7 @@ template <PR_ST_1, ACE_SYNCH_DECL> void
ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete (void *p,
const ACE_nothrow_t&) throw()
{
- ACE_TRACE
- ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete(nothrow)");
+ ACE_TRACE("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete(nothrow)");
::delete [] static_cast <char *> (p);
}
#endif /* ACE_LACKS_PLACEMENT_OPERATOR_DELETE */
@@ -302,7 +301,11 @@ ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::handle_close (ACE_HANDLE,
{
ACE_TRACE ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::handle_close");
- this->destroy ();
+ if (this->reference_counting_policy ().value () ==
+ ACE_Event_Handler::Reference_Counting_Policy::DISABLED)
+ {
+ this->destroy ();
+ }
return 0;
}
diff --git a/ACE/ace/Synch.h b/ACE/ace/Synch.h
index 8a8b98dd342..4ebd05c89b0 100644
--- a/ACE/ace/Synch.h
+++ b/ACE/ace/Synch.h
@@ -47,18 +47,6 @@
#include "ace/Thread_Semaphore.h"
#include "ace/TSS_Adapter.h"
-// Include the templates here.
-// FUZZ: disable check_for_synch_include
-#include "ace/Synch_T.h"
-
-#if defined (ACE_LEGACY_MODE)
-# include "ace/File_Lock.h"
-# include "ace/Process_Semaphore.h"
-# include "ace/Process_Mutex.h"
-# include "ace/RW_Process_Mutex.h"
-# include "ace/Test_and_Set.h"
-#endif /* ACE_LEGACY_MODE */
-
#endif /* DO_NOT_INCLUDE_SYNCH_H */
#include /**/ "ace/post.h"
diff --git a/ACE/ace/Synch_Options.cpp b/ACE/ace/Synch_Options.cpp
index 07bfb8debc0..b09ae70f453 100644
--- a/ACE/ace/Synch_Options.cpp
+++ b/ACE/ace/Synch_Options.cpp
@@ -1,12 +1,10 @@
+// $Id$
+
#include "ace/Synch_Options.h"
#include "ace/Global_Macros.h"
#include "ace/config-all.h"
-ACE_RCSID (ace,
- Synch_Options,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_Synch_Options)
diff --git a/ACE/ace/Synch_T.cpp b/ACE/ace/Synch_T.cpp
deleted file mode 100644
index 22ee08d4e0b..00000000000
--- a/ACE/ace/Synch_T.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-// $Id$
-
-#ifndef ACE_SYNCH_T_CPP
-#define ACE_SYNCH_T_CPP
-
-#include "ace/Thread.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// FUZZ: disable check_for_synch_include
-#include "ace/Synch_T.h"
-#include "ace/Log_Msg.h"
-
-#include "ace/Lock_Adapter_T.cpp"
-#include "ace/Reverse_Lock_T.cpp"
-#include "ace/Guard_T.cpp"
-#include "ace/TSS_T.cpp"
-#include "ace/Condition_T.cpp"
-
-#endif /* ACE_SYNCH_T_CPP */
diff --git a/ACE/ace/Synch_T.h b/ACE/ace/Synch_T.h
deleted file mode 100644
index edd7c6ba77e..00000000000
--- a/ACE/ace/Synch_T.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Synch_T.h
- *
- * $Id$
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//=============================================================================
-
-#ifndef ACE_SYNCH_T_H
-#define ACE_SYNCH_T_H
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// FUZZ: disable check_for_synch_include
-#include "ace/Synch.h"
-
-#include "ace/Lock_Adapter_T.h"
-#include "ace/Reverse_Lock_T.h"
-#include "ace/Guard_T.h"
-#include "ace/TSS_T.h"
-#include "ace/Condition_T.h"
-#include "ace/Synch_Traits.h"
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Synch_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Synch_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_SYNCH_T_H */
diff --git a/ACE/ace/Synch_Traits.h b/ACE/ace/Synch_Traits.h
index 086e29b1e63..1fe6d483692 100644
--- a/ACE/ace/Synch_Traits.h
+++ b/ACE/ace/Synch_Traits.h
@@ -38,8 +38,6 @@ class ACE_Condition_Thread_Mutex;
class ACE_Condition_Recursive_Thread_Mutex;
class ACE_Thread_Semaphore;
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
/**
* @class ACE_NULL_SYNCH
*
@@ -101,41 +99,6 @@ public:
#define ACE_SYNCH_NULL_SEMAPHORE ACE_SYNCH::NULL_SEMAPHORE
#define ACE_SYNCH_SEMAPHORE ACE_SYNCH::SEMAPHORE
-#else /* !ACE_HAS_TEMPLATE_TYPEDEFS */
-
-#if defined (ACE_HAS_OPTIMIZED_MESSAGE_QUEUE)
-#define ACE_NULL_SYNCH ACE_Null_Mutex, ACE_Null_Condition, ACE_Null_Mutex
-#define ACE_MT_SYNCH ACE_Thread_Mutex, ACE_Condition_Thread_Mutex, ACE_Thread_Semaphore
-#else
-#define ACE_NULL_SYNCH ACE_Null_Mutex, ACE_Null_Condition
-#define ACE_MT_SYNCH ACE_Thread_Mutex, ACE_Condition_Thread_Mutex
-#endif /* ACE_HAS_OPTIMIZED_MESSAGE_QUEUE */
-
-#if defined (ACE_HAS_THREADS)
-
-#define ACE_SYNCH_MUTEX ACE_Thread_Mutex
-#define ACE_SYNCH_NULL_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_RECURSIVE_MUTEX ACE_Recursive_Thread_Mutex
-#define ACE_SYNCH_RW_MUTEX ACE_RW_Thread_Mutex
-#define ACE_SYNCH_CONDITION ACE_Condition_Thread_Mutex
-#define ACE_SYNCH_RECURSIVE_CONDITION ACE_Condition_Recursive_Thread_Mutex
-#define ACE_SYNCH_SEMAPHORE ACE_Thread_Semaphore
-#define ACE_SYNCH_NULL_SEMAPHORE ACE_Null_Semaphore
-
-#else /* ACE_HAS_THREADS */
-
-#define ACE_SYNCH_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_NULL_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_RECURSIVE_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_RW_MUTEX ACE_Null_Mutex
-#define ACE_SYNCH_CONDITION ACE_Null_Condition
-#define ACE_SYNCH_RECURSIVE_CONDITION ACE_Null_Condition
-#define ACE_SYNCH_SEMAPHORE ACE_Null_Semaphore
-#define ACE_SYNCH_NULL_SEMAPHORE ACE_Null_Mutex
-
-#endif /* ACE_HAS_THREADS */
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
// These are available on *all* platforms
#define ACE_SYNCH_PROCESS_SEMAPHORE ACE_Process_Semaphore
#define ACE_SYNCH_PROCESS_MUTEX ACE_Process_Mutex
diff --git a/ACE/ace/System_Time.cpp b/ACE/ace/System_Time.cpp
index e5ff1175473..0425df884b5 100644
--- a/ACE/ace/System_Time.cpp
+++ b/ACE/ace/System_Time.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(ace, System_Time, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/TLI.cpp b/ACE/ace/TLI.cpp
index 7dde750931c..d9f047a5d5e 100644
--- a/ACE/ace/TLI.cpp
+++ b/ACE/ace/TLI.cpp
@@ -11,7 +11,7 @@
#include "ace/OS_NS_sys_socket.h"
#include "ace/Auto_Ptr.h"
-ACE_RCSID(ace, TLI, "$Id$")
+
#if defined (ACE_HAS_TLI)
diff --git a/ACE/ace/TLI.inl b/ACE/ace/TLI.inl
index 2485cdc5557..418ed0c02ed 100644
--- a/ACE/ace/TLI.inl
+++ b/ACE/ace/TLI.inl
@@ -1,10 +1,8 @@
// -*- C++ -*-
-//
// $Id$
#include "ace/TLI.h"
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE
diff --git a/ACE/ace/TLI_Acceptor.cpp b/ACE/ace/TLI_Acceptor.cpp
index 0fdd265fb7a..45be6f50cfd 100644
--- a/ACE/ace/TLI_Acceptor.cpp
+++ b/ACE/ace/TLI_Acceptor.cpp
@@ -6,7 +6,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_Memory.h"
-ACE_RCSID(ace, TLI_Acceptor, "$Id$")
+
#if defined (ACE_HAS_TLI)
diff --git a/ACE/ace/TLI_Connector.cpp b/ACE/ace/TLI_Connector.cpp
index eb909aadfaf..d21312ced00 100644
--- a/ACE/ace/TLI_Connector.cpp
+++ b/ACE/ace/TLI_Connector.cpp
@@ -2,7 +2,7 @@
#include "ace/TLI_Connector.h"
-ACE_RCSID(ace, TLI_Connector, "$Id$")
+
#if defined (ACE_HAS_TLI)
diff --git a/ACE/ace/TLI_Stream.cpp b/ACE/ace/TLI_Stream.cpp
index 7b7e41fa42d..d195465ff04 100644
--- a/ACE/ace/TLI_Stream.cpp
+++ b/ACE/ace/TLI_Stream.cpp
@@ -7,7 +7,7 @@
#include "ace/ACE.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(ace, TLI_Stream, "$Id$")
+
#if defined (ACE_HAS_TLI)
diff --git a/ACE/ace/TP_Reactor.cpp b/ACE/ace/TP_Reactor.cpp
index ea1988a4d42..bd0a7c12884 100644
--- a/ACE/ace/TP_Reactor.cpp
+++ b/ACE/ace/TP_Reactor.cpp
@@ -11,10 +11,6 @@
#include "ace/TP_Reactor.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- TP_Reactor,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_TP_Reactor)
@@ -54,7 +50,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 +88,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;
}
@@ -165,7 +161,10 @@ ACE_TP_Reactor::handle_events (ACE_Time_Value *max_wait_time)
// After getting the lock just just for deactivation..
if (this->deactivated_)
- return -1;
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
// Update the countdown to reflect time waiting for the token.
countdown.update ();
diff --git a/ACE/ace/TSS_Adapter.cpp b/ACE/ace/TSS_Adapter.cpp
index ddca0236d4f..4daa47aa4da 100644
--- a/ACE/ace/TSS_Adapter.cpp
+++ b/ACE/ace/TSS_Adapter.cpp
@@ -10,30 +10,25 @@
#include "ace/TSS_Adapter.h"
-ACE_RCSID(ace, TSS_Adapter, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_TSS_Adapter::ACE_TSS_Adapter (void *object, ACE_THR_DEST f)
: ts_obj_ (object),
func_ (f)
{
- // ACE_TRACE ("ACE_TSS_Adapter::ACE_TSS_Adapter");
}
void
ACE_TSS_Adapter::cleanup (void)
{
- // ACE_TRACE ("ACE_TSS_Adapter::cleanup");
(*this->func_)(this->ts_obj_); // call cleanup routine for ts_obj_
}
ACE_END_VERSIONED_NAMESPACE_DECL
-extern "C" void
+extern "C" ACE_Export void
ACE_TSS_C_cleanup (void *object)
{
- // ACE_TRACE ("ACE_TSS_C_cleanup");
if (object != 0)
{
ACE_TSS_Adapter * const tss_adapter = (ACE_TSS_Adapter *) object;
diff --git a/ACE/ace/TSS_Adapter.h b/ACE/ace/TSS_Adapter.h
index b5405e5b6b9..67eedea94c3 100644
--- a/ACE/ace/TSS_Adapter.h
+++ b/ACE/ace/TSS_Adapter.h
@@ -30,8 +30,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @brief This class encapsulates a TSS object and its associated
* C++ destructor function. It is used by the ACE_TSS...
* methods (in Synch_T.cpp) in order to allow an extern
- * "C" cleanup routine to be used. Needed by the "frigging"
- * MVS C++ compiler.
+ * "C" cleanup routine to be used.
*
* Objects of this class are stored in thread specific
* storage. ts_obj_ points to the "real" object and
diff --git a/ACE/ace/TSS_T.cpp b/ACE/ace/TSS_T.cpp
index 50bd097b2dc..3f46ed7697a 100644
--- a/ACE/ace/TSS_T.cpp
+++ b/ACE/ace/TSS_T.cpp
@@ -26,13 +26,29 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_TSS)
+#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))
+# if defined (ACE_HAS_THR_C_DEST)
+extern "C" ACE_Export void ACE_TSS_C_cleanup (void *);
+# endif /* ACE_HAS_THR_C_DEST */
+#endif /* defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)) */
+
template <class TYPE>
ACE_TSS<TYPE>::~ACE_TSS (void)
{
#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))
if (this->once_)
{
- ACE_OS::thr_key_detach (this->key_, this);
+# if defined (ACE_HAS_THR_C_DEST)
+ ACE_TSS_Adapter *tss_adapter = this->ts_value ();
+ this->ts_value (0);
+ ACE_TSS_C_cleanup (tss_adapter);
+# else
+ TYPE *ts_obj = this->ts_value ();
+ this->ts_value (0);
+ ACE_TSS<TYPE>::cleanup (ts_obj);
+# endif /* ACE_HAS_THR_C_DEST */
+
+ ACE_OS::thr_key_detach (this->key_);
ACE_OS::thr_keyfree (this->key_);
}
#else // defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))
@@ -67,7 +83,6 @@ template <class TYPE> void
ACE_TSS<TYPE>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
-// ACE_TRACE ("ACE_TSS<TYPE>::dump");
#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
this->keylock_.dump ();
@@ -79,9 +94,6 @@ ACE_TSS<TYPE>::dump (void) const
}
#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))
-#if defined (ACE_HAS_THR_C_DEST)
-extern "C" void ACE_TSS_C_cleanup (void *); // defined in Synch.cpp
-#endif /* ACE_HAS_THR_C_DEST */
template <class TYPE> void
ACE_TSS<TYPE>::cleanup (void *ptr)
@@ -102,11 +114,11 @@ ACE_TSS<TYPE>::ts_init (void)
{
if (ACE_Thread::keycreate (&this->key_,
#if defined (ACE_HAS_THR_C_DEST)
- &ACE_TSS_C_cleanup,
+ &ACE_TSS_C_cleanup
#else
- &ACE_TSS<TYPE>::cleanup,
+ &ACE_TSS<TYPE>::cleanup
#endif /* ACE_HAS_THR_C_DEST */
- (void *) this) != 0)
+ ) != 0)
return -1; // Major problems, this should *never* happen!
else
{
@@ -158,20 +170,12 @@ ACE_TSS<TYPE>::ACE_TSS (TYPE *ts_obj)
ACE_TSS<TYPE>::cleanup));
// Put the adapter in thread specific storage
- if (ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter) != 0)
+ if (this->ts_value (tss_adapter) == -1)
{
delete tss_adapter;
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Thread::setspecific() failed!")));
}
#else
- if (ACE_Thread::setspecific (this->key_,
- (void *) ts_obj) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Thread::setspecific() failed!")));
+ this->ts_value (ts_obj);
#endif /* ACE_HAS_THR_C_DEST */
}
}
@@ -190,23 +194,21 @@ ACE_TSS<TYPE>::ts_get (void) const
TYPE *ts_obj = 0;
#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
+ ACE_TSS_Adapter *tss_adapter = this->ts_value ();
+ ACE_TSS_Adapter *fake_tss_adapter = 0;
- // Get the adapter from thread-specific storage
- void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
- if (ACE_Thread::getspecific (this->key_, &temp) == -1)
- return 0; // This should not happen!
- tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
+ // If tss_adapter is not 0 but its ts_obj_ is 0 then we still need to create
+ // a proper ts_obj. That's the intent of this member function.
+ if (tss_adapter != 0 && tss_adapter->ts_obj_ == 0)
+ {
+ fake_tss_adapter = tss_adapter;
+ tss_adapter = 0;
+ }
// Check to see if this is the first time in for this thread.
if (tss_adapter == 0)
#else
- // Get the ts_obj from thread-specific storage. Note that no locks
- // are required here...
- void *temp = ts_obj; // Need this temp to keep G++ from complaining.
- if (ACE_Thread::getspecific (this->key_, &temp) == -1)
- return 0; // This should not happen!
- ts_obj = static_cast <TYPE *> (temp);
+ ts_obj = this->ts_value ();
// Check to see if this is the first time in for this thread.
if (ts_obj == 0)
@@ -228,8 +230,7 @@ ACE_TSS<TYPE>::ts_get (void) const
ACE_TSS<TYPE>::cleanup), 0);
// Put the adapter in thread specific storage
- if (ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter) != 0)
+ if (this->ts_value (tss_adapter) == -1)
{
delete tss_adapter;
delete ts_obj;
@@ -238,8 +239,7 @@ ACE_TSS<TYPE>::ts_get (void) const
#else
// Store the dynamically allocated pointer in thread-specific
// storage.
- if (ACE_Thread::setspecific (this->key_,
- (void *) ts_obj) != 0)
+ if (this->ts_value (ts_obj) == -1)
{
delete ts_obj;
return 0; // Major problems, this should *never* happen!
@@ -248,6 +248,8 @@ ACE_TSS<TYPE>::ts_get (void) const
}
#if defined (ACE_HAS_THR_C_DEST)
+ // Delete the adapter that didn't actually have a real ts_obj.
+ delete fake_tss_adapter;
// Return the underlying ts object.
return static_cast <TYPE *> (tss_adapter->ts_obj_);
#else
@@ -268,28 +270,15 @@ ACE_TSS<TYPE>::ts_object (void) const
TYPE *ts_obj = 0;
#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
+ ACE_TSS_Adapter *tss_adapter = this->ts_value ();
- // Get the tss adapter from thread-specific storage
- void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
- if (ACE_Thread::getspecific (this->key_, &temp) == -1)
- {
- return 0; // This should not happen!
- }
- else
+ if (tss_adapter != 0)
{
- tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- {
- if (tss_adapter != 0)
- // Extract the real TS object.
- ts_obj = static_cast <TYPE *> (tss_adapter->ts_obj_);
- }
+ // Extract the real TS object.
+ ts_obj = static_cast <TYPE *> (tss_adapter->ts_obj_);
}
#else
- void *temp = ts_obj; // Need this temp to keep G++ from complaining.
- if (ACE_Thread::getspecific (this->key_, &temp) == -1)
- return 0; // This should not happen!
- ts_obj = static_cast <TYPE *> (temp);
+ ts_obj = this->ts_value ();
#endif /* ACE_HAS_THR_C_DEST */
return ts_obj;
@@ -311,37 +300,33 @@ ACE_TSS<TYPE>::ts_object (TYPE *new_ts_obj)
TYPE *ts_obj = 0;
#if defined (ACE_HAS_THR_C_DEST)
- ACE_TSS_Adapter *tss_adapter = 0;
-
- void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
- if (ACE_Thread::getspecific (this->key_, &temp) == -1)
- return 0; // This should not happen!
- tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
+ ACE_TSS_Adapter *tss_adapter = this->ts_value ();
if (tss_adapter != 0)
{
ts_obj = static_cast <TYPE *> (tss_adapter->ts_obj_);
- delete tss_adapter; // don't need this anymore
+ // Don't delete tss_adapter yet. It can be double-deleted
+ // in case setspecific below fails.
}
- ACE_NEW_RETURN (tss_adapter,
+ ACE_TSS_Adapter *new_tss_adapter = 0;
+ ACE_NEW_RETURN (new_tss_adapter,
ACE_TSS_Adapter ((void *) new_ts_obj,
ACE_TSS<TYPE>::cleanup),
0);
- if (ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter) == -1)
+ if (this->ts_value (new_tss_adapter) == -1)
+ {
+ delete new_tss_adapter;
+ }
+ else
{
+ // Now it's fine to delete the old tss_adapter.
delete tss_adapter;
- return ts_obj; // This should not happen!
}
#else
- void *temp = ts_obj; // Need this temp to keep G++ from complaining.
- if (ACE_Thread::getspecific (this->key_, &temp) == -1)
- return 0; // This should not happen!
- ts_obj = static_cast <TYPE *> (temp);
- if (ACE_Thread::setspecific (this->key_, (void *) new_ts_obj) == -1)
- return ts_obj; // This should not happen!
+ ts_obj = this->ts_value ();
+ this->ts_value (new_ts_obj);
#endif /* ACE_HAS_THR_C_DEST */
return ts_obj;
@@ -353,8 +338,6 @@ template <class ACE_LOCK> void
ACE_TSS_Guard<ACE_LOCK>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::dump");
-
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("key_ = %d\n"), this->key_));
ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
@@ -364,8 +347,6 @@ ACE_TSS_Guard<ACE_LOCK>::dump (void) const
template <class ACE_LOCK> void
ACE_TSS_Guard<ACE_LOCK>::init_key (void)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::init_key");
-
this->key_ = ACE_OS::NULL_key;
ACE_Thread::keycreate (&this->key_,
#if defined (ACE_HAS_THR_C_DEST)
@@ -379,27 +360,24 @@ ACE_TSS_Guard<ACE_LOCK>::init_key (void)
template <class ACE_LOCK>
ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard (void)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard");
this->init_key ();
}
template <class ACE_LOCK> int
ACE_TSS_Guard<ACE_LOCK>::release (void)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::release");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
+ Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
return guard->release ();
@@ -408,20 +386,18 @@ ACE_TSS_Guard<ACE_LOCK>::release (void)
template <class ACE_LOCK> int
ACE_TSS_Guard<ACE_LOCK>::remove (void)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::remove");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
+ Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
return guard->remove ();
@@ -430,20 +406,18 @@ ACE_TSS_Guard<ACE_LOCK>::remove (void)
template <class ACE_LOCK>
ACE_TSS_Guard<ACE_LOCK>::~ACE_TSS_Guard (void)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::~ACE_TSS_Guard");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
+ Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
// Make sure that this pointer is NULL when we shut down...
@@ -456,22 +430,17 @@ ACE_TSS_Guard<ACE_LOCK>::~ACE_TSS_Guard (void)
template <class ACE_LOCK> void
ACE_TSS_Guard<ACE_LOCK>::cleanup (void *ptr)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::cleanup");
-
// Destructor releases lock.
- delete (ACE_Guard<ACE_LOCK> *) ptr;
+ delete (Guard_Type *) ptr;
}
template <class ACE_LOCK>
ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard (ACE_LOCK &lock, bool block)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard");
-
this->init_key ();
- ACE_Guard<ACE_LOCK> *guard = 0;
+ Guard_Type *guard = 0;
ACE_NEW (guard,
- ACE_Guard<ACE_LOCK> (lock,
- block));
+ Guard_Type (lock, block));
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
@@ -489,20 +458,18 @@ ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard (ACE_LOCK &lock, bool block)
template <class ACE_LOCK> int
ACE_TSS_Guard<ACE_LOCK>::acquire (void)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::acquire");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
+ Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
return guard->acquire ();
@@ -511,20 +478,18 @@ ACE_TSS_Guard<ACE_LOCK>::acquire (void)
template <class ACE_LOCK> int
ACE_TSS_Guard<ACE_LOCK>::tryacquire (void)
{
-// ACE_TRACE ("ACE_TSS_Guard<ACE_LOCK>::tryacquire");
-
- ACE_Guard<ACE_LOCK> *guard = 0;
+ Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
return guard->tryacquire ();
@@ -534,44 +499,37 @@ template <class ACE_LOCK>
ACE_TSS_Write_Guard<ACE_LOCK>::ACE_TSS_Write_Guard (ACE_LOCK &lock,
bool block)
{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::ACE_TSS_Write_Guard");
-
this->init_key ();
- ACE_Guard<ACE_LOCK> *guard = 0;
+ Guard_Type *guard = 0;
ACE_NEW (guard,
- ACE_Write_Guard<ACE_LOCK> (lock,
- block));
+ Write_Guard_Type (lock, block));
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
ACE_NEW (tss_adapter,
ACE_TSS_Adapter ((void *) guard,
ACE_TSS_Guard<ACE_LOCK>::cleanup));
- ACE_Thread::setspecific (this->key_,
- (void *) tss_adapter);
+ ACE_Thread::setspecific (this->key_, (void *) tss_adapter);
#else
- ACE_Thread::setspecific (this->key_,
- (void *) guard);
+ ACE_Thread::setspecific (this->key_, (void *) guard);
#endif /* ACE_HAS_THR_C_DEST */
}
template <class ACE_LOCK> int
ACE_TSS_Write_Guard<ACE_LOCK>::acquire (void)
{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::acquire");
-
- ACE_Write_Guard<ACE_LOCK> *guard = 0;
+ Write_Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Write_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Write_Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Write_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Write_Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
return guard->acquire_write ();
@@ -580,20 +538,18 @@ ACE_TSS_Write_Guard<ACE_LOCK>::acquire (void)
template <class ACE_LOCK> int
ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire (void)
{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire");
-
- ACE_Write_Guard<ACE_LOCK> *guard = 0;
+ Write_Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Write_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Write_Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Write_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Write_Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
return guard->tryacquire_write ();
@@ -602,16 +558,12 @@ ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire (void)
template <class ACE_LOCK> int
ACE_TSS_Write_Guard<ACE_LOCK>::acquire_write (void)
{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::acquire_write");
-
return this->acquire ();
}
template <class ACE_LOCK> int
ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire_write (void)
{
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::tryacquire_write");
-
return this->tryacquire ();
}
@@ -619,7 +571,6 @@ template <class ACE_LOCK> void
ACE_TSS_Write_Guard<ACE_LOCK>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
-// ACE_TRACE ("ACE_TSS_Write_Guard<ACE_LOCK>::dump");
ACE_TSS_Guard<ACE_LOCK>::dump ();
#endif /* ACE_HAS_DUMP */
}
@@ -627,13 +578,10 @@ ACE_TSS_Write_Guard<ACE_LOCK>::dump (void) const
template <class ACE_LOCK>
ACE_TSS_Read_Guard<ACE_LOCK>::ACE_TSS_Read_Guard (ACE_LOCK &lock, bool block)
{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::ACE_TSS_Read_Guard");
-
this->init_key ();
- ACE_Guard<ACE_LOCK> *guard = 0;
+ Guard_Type *guard = 0;
ACE_NEW (guard,
- ACE_Read_Guard<ACE_LOCK> (lock,
- block));
+ Read_Guard_Type (lock, block));
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter;
ACE_NEW (tss_adapter,
@@ -650,20 +598,18 @@ ACE_TSS_Read_Guard<ACE_LOCK>::ACE_TSS_Read_Guard (ACE_LOCK &lock, bool block)
template <class ACE_LOCK> int
ACE_TSS_Read_Guard<ACE_LOCK>::acquire (void)
{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::acquire");
-
- ACE_Read_Guard<ACE_LOCK> *guard = 0;
+ Read_Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Read_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Read_Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Read_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Read_Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
return guard->acquire_read ();
@@ -672,20 +618,18 @@ ACE_TSS_Read_Guard<ACE_LOCK>::acquire (void)
template <class ACE_LOCK> int
ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire (void)
{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire");
-
- ACE_Read_Guard<ACE_LOCK> *guard = 0;
+ Read_Guard_Type *guard = 0;
#if defined (ACE_HAS_THR_C_DEST)
ACE_TSS_Adapter *tss_adapter = 0;
void *temp = tss_adapter; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
tss_adapter = static_cast <ACE_TSS_Adapter *> (temp);
- guard = static_cast <ACE_Read_Guard<ACE_LOCK> *> (tss_adapter->ts_obj_);
+ guard = static_cast <Read_Guard_Type *> (tss_adapter->ts_obj_);
#else
void *temp = guard; // Need this temp to keep G++ from complaining.
ACE_Thread::getspecific (this->key_, &temp);
- guard = static_cast <ACE_Read_Guard<ACE_LOCK> *> (temp);
+ guard = static_cast <Read_Guard_Type *> (temp);
#endif /* ACE_HAS_THR_C_DEST */
return guard->tryacquire_read ();
@@ -694,16 +638,12 @@ ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire (void)
template <class ACE_LOCK> int
ACE_TSS_Read_Guard<ACE_LOCK>::acquire_read (void)
{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::acquire_read");
-
return this->acquire ();
}
template <class ACE_LOCK> int
ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire_read (void)
{
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::tryacquire_read");
-
return this->tryacquire ();
}
@@ -711,7 +651,6 @@ template <class ACE_LOCK> void
ACE_TSS_Read_Guard<ACE_LOCK>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
-// ACE_TRACE ("ACE_TSS_Read_Guard<ACE_LOCK>::dump");
ACE_TSS_Guard<ACE_LOCK>::dump ();
#endif /* ACE_HAS_DUMP */
}
diff --git a/ACE/ace/TSS_T.h b/ACE/ace/TSS_T.h
index d0ed0a7b472..6b710bb69e7 100644
--- a/ACE/ace/TSS_T.h
+++ b/ACE/ace/TSS_T.h
@@ -36,9 +36,14 @@
# endif /* ACE_HAS_THREADS && (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION) */
#include "ace/Thread_Mutex.h"
+#include "ace/Copy_Disabled.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+#if defined (ACE_HAS_THR_C_DEST)
+class ACE_TSS_Adapter;
+#endif
+
/**
* @class ACE_TSS
*
@@ -72,7 +77,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*
*/
template <class TYPE>
-class ACE_TSS
+class ACE_TSS : private ACE_Copy_Disabled
{
public:
/**
@@ -193,10 +198,21 @@ protected:
/// "Destructor" that deletes internal TYPE * when thread exits.
static void cleanup (void *ptr);
+
+ /// Obtains a plain value stored in the thread-specific storage.
+# if defined (ACE_HAS_THR_C_DEST)
+ ACE_TSS_Adapter *ts_value (void) const;
+# else
+ TYPE *ts_value (void) const;
+# endif /* ACE_HAS_THR_C_DEST */
+
+ /// Stores a new plain value in the thread-specific storage.
+# if defined (ACE_HAS_THR_C_DEST)
+ int ts_value (ACE_TSS_Adapter *new_tss_adapter) const;
+# else
+ int ts_value (TYPE *new_ts_obj) const;
+# endif /* ACE_HAS_THR_C_DEST */
#endif /* defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)) */
- // = Disallow copying...
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_TSS<TYPE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_TSS (const ACE_TSS<TYPE> &))
};
/**
diff --git a/ACE/ace/TSS_T.inl b/ACE/ace/TSS_T.inl
index 1d74573c658..a6351ec6448 100644
--- a/ACE/ace/TSS_T.inl
+++ b/ACE/ace/TSS_T.inl
@@ -2,10 +2,13 @@
//
// $Id$
-#if !(defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)))
+#include "ace/Thread.h"
+#include "ace/Log_Msg.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+#if !(defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)))
+
template <class TYPE> ACE_INLINE
ACE_TSS<TYPE>::ACE_TSS (TYPE *type)
: type_ (type)
@@ -13,7 +16,7 @@ ACE_TSS<TYPE>::ACE_TSS (TYPE *type)
}
template <class TYPE> ACE_INLINE int
-ACE_TSS<TYPE>::ts_init (void)
+ACE_TSS<TYPE>::ts_init (void)
{
return 0;
}
@@ -37,6 +40,64 @@ ACE_TSS<TYPE>::ts_get (void) const
return this->type_;
}
-ACE_END_VERSIONED_NAMESPACE_DECL
+#else
+
+# if defined (ACE_HAS_THR_C_DEST)
+template <class TYPE> ACE_INLINE ACE_TSS_Adapter *
+ACE_TSS<TYPE>::ts_value (void) const
+{
+ // Get the tss adapter from thread-specific storage
+ void *temp = 0;
+ if (ACE_Thread::getspecific (this->key_, &temp) == -1)
+ {
+ return 0; // This should not happen!
+ }
+ return static_cast <ACE_TSS_Adapter *> (temp);
+}
+# else
+template <class TYPE> ACE_INLINE TYPE *
+ACE_TSS<TYPE>::ts_value (void) const
+{
+ void *temp = 0;
+ if (ACE_Thread::getspecific (this->key_, &temp) == -1)
+ {
+ return 0; // This should not happen!
+ }
+ return static_cast <TYPE *> (temp);
+}
+# endif /* ACE_HAS_THR_C_DEST */
+
+# if defined (ACE_HAS_THR_C_DEST)
+template <class TYPE> ACE_INLINE int
+ACE_TSS<TYPE>::ts_value (ACE_TSS_Adapter *new_tss_adapter) const
+{
+ if (ACE_Thread::setspecific (this->key_,
+ (void *) new_tss_adapter) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("ACE_Thread::setspecific() failed!")));
+ return -1;
+ }
+
+ return 0;
+}
+# else
+template <class TYPE> ACE_INLINE int
+ACE_TSS<TYPE>::ts_value (TYPE *new_ts_obj) const
+{
+ if (ACE_Thread::setspecific (this->key_, (void *) new_ts_obj) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("ACE_Thread::setspecific() failed!")));
+ return -1;
+ }
+
+ return 0;
+}
+# endif /* ACE_HAS_THR_C_DEST */
#endif /* ! (defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION))) */
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/TTY_IO.cpp b/ACE/ace/TTY_IO.cpp
index 7ab0036890e..7aa82ab74a7 100644
--- a/ACE/ace/TTY_IO.cpp
+++ b/ACE/ace/TTY_IO.cpp
@@ -11,10 +11,6 @@
# include <termio.h>
#endif
-ACE_RCSID (ace,
- TTY_IO,
- "$Id$")
-
namespace
{
const char ACE_TTY_IO_NONE[] = "none";
@@ -399,17 +395,24 @@ int ACE_TTY_IO::control (Control_Mode cmd, Serial_Params *arg) const
return -1; // Wrong cmd.
}
#elif defined (ACE_WIN32)
+ DCB dcb;
+ dcb.DCBlength = sizeof dcb;
+ if (!::GetCommState (this->get_handle (), &dcb))
+ {
+ ACE_OS::set_errno_to_last_error ();
+ return -1;
+ }
+
+ COMMTIMEOUTS timeouts;
+ if (!::GetCommTimeouts (this->get_handle(), &timeouts))
+ {
+ ACE_OS::set_errno_to_last_error ();
+ return -1;
+ }
+
switch (cmd)
{
case SETPARAMS:
- DCB dcb;
- dcb.DCBlength = sizeof dcb;
- if (!::GetCommState (this->get_handle (), &dcb))
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-
dcb.BaudRate = arg->baudrate;
switch (arg->databits)
@@ -522,13 +525,6 @@ int ACE_TTY_IO::control (Control_Mode cmd, Serial_Params *arg) const
return -1;
}
- COMMTIMEOUTS timeouts;
- if (!::GetCommTimeouts (this->get_handle(), &timeouts))
- {
- ACE_OS::set_errno_to_last_error ();
- return -1;
- }
-
if (arg->readtimeoutmsec < 0)
{
// Settings for infinite timeout.
@@ -560,7 +556,130 @@ int ACE_TTY_IO::control (Control_Mode cmd, Serial_Params *arg) const
return 0;
case GETPARAMS:
- ACE_NOTSUP_RETURN (-1); // Not yet implemented.
+ arg->baudrate = dcb.BaudRate;
+
+ switch (dcb.ByteSize)
+ {
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ arg->databits = dcb.ByteSize;
+ break;
+ default:
+ return -1;
+ }
+
+ switch (dcb.StopBits)
+ {
+ case ONESTOPBIT:
+ arg->stopbits = 1;
+ break;
+ case TWOSTOPBITS:
+ arg->stopbits = 2;
+ break;
+ default:
+ return -1;
+ }
+
+ if (!dcb.fParity)
+ {
+ arg->paritymode = ACE_TTY_IO_NONE;
+ }
+ else
+ {
+ switch (dcb.Parity)
+ {
+ case ODDPARITY:
+ arg->paritymode = ACE_TTY_IO_ODD;
+ break;
+ case EVENPARITY:
+ arg->paritymode = ACE_TTY_IO_EVEN;
+ break;
+ case NOPARITY:
+ arg->paritymode = ACE_TTY_IO_NONE;
+ break;
+ case MARKPARITY:
+ arg->paritymode = ACE_TTY_IO_MARK;
+ break;
+ case SPACEPARITY:
+ arg->paritymode = ACE_TTY_IO_SPACE;
+ break;
+ default:
+ return -1;
+ }
+ }
+
+ // Enable/disable RTS protocol.
+ switch (dcb.fRtsControl)
+ {
+ case RTS_CONTROL_ENABLE:
+ arg->rtsenb = 1;
+ break;
+ case RTS_CONTROL_HANDSHAKE:
+ arg->rtsenb = 2;
+ break;
+ case RTS_CONTROL_TOGGLE:
+ arg->rtsenb = 3;
+ break;
+ case RTS_CONTROL_DISABLE:
+ arg->rtsenb = 0;
+ break;
+ default:
+ return -1;
+ }
+
+ // Enable/disable CTS protocol.
+ if (dcb.fOutxCtsFlow)
+ arg->ctsenb = true;
+ else
+ arg->ctsenb = false;
+
+ // Enable/disable DSR protocol.
+ if (dcb.fOutxDsrFlow)
+ arg->dsrenb = true;
+ else
+ arg->dsrenb = false;
+
+ // Disable/enable DTR protocol
+ // Attention: DTR_CONTROL_HANDSHAKE is not supported.
+ switch (dcb.fDtrControl)
+ {
+ case DTR_CONTROL_DISABLE:
+ arg->dtrdisable = true;
+ break;
+ case DTR_CONTROL_ENABLE:
+ arg->dtrdisable = false;
+ break;
+ default:
+ return -1;
+ }
+
+ // Enable/disable software flow control on input
+ if (dcb.fInX)
+ arg->xinenb = true;
+ else
+ arg->xinenb = false;
+
+ // Enable/disable software flow control on output
+ if (dcb.fOutX)
+ arg->xoutenb = true;
+ else
+ arg->xoutenb = false;
+
+ arg->xonlim = static_cast<int>(dcb.XonLim);
+ arg->xofflim = static_cast<int>(dcb.XoffLim);
+
+ if (timeouts.ReadIntervalTimeout == 0 &&
+ timeouts.ReadTotalTimeoutMultiplier == 0 &&
+ timeouts.ReadTotalTimeoutConstant == 0)
+ arg->readtimeoutmsec = -1;
+ else
+ arg->readtimeoutmsec = timeouts.ReadTotalTimeoutConstant;
+
+ return 0;
+
default:
return -1; // Wrong cmd.
diff --git a/ACE/ace/Task.cpp b/ACE/ace/Task.cpp
index d928bced6f4..3008b782206 100644
--- a/ACE/ace/Task.cpp
+++ b/ACE/ace/Task.cpp
@@ -8,10 +8,6 @@
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Task,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Task_Base::ACE_Task_Base (ACE_Thread_Manager *thr_man)
@@ -19,13 +15,13 @@ ACE_Task_Base::ACE_Task_Base (ACE_Thread_Manager *thr_man)
thr_mgr_ (thr_man),
flags_ (0),
grp_id_ (-1)
-#if !(defined (ACE_MVS) || defined(__TANDEM))
+#if !defined(ACE_TANDEM_T1248_PTHREADS)
,last_thread_id_ (0)
-#endif /* !defined (ACE_MVS) */
+#endif /* !defined (ACE_TANDEM_T1248_PTHREADS) */
{
-#if (defined (ACE_MVS) || defined(__TANDEM))
+#if defined(ACE_TANDEM_T1248_PTHREADS)
ACE_OS::memset( &this->last_thread_id_, '\0', sizeof( this->last_thread_id_ ));
-#endif /* defined (ACE_MVS) */
+#endif /* defined (ACE_TANDEM_T1248_PTHREADS) */
}
ACE_Task_Base::~ACE_Task_Base (void)
@@ -199,11 +195,11 @@ ACE_Task_Base::activate (long flags,
if (this->grp_id_ == -1)
this->grp_id_ = grp_spawned;
-#if defined (ACE_MVS) || defined(__TANDEM)
+#if defined(ACE_TANDEM_T1248_PTHREADS)
ACE_OS::memcpy( &this->last_thread_id_, '\0', sizeof(this->last_thread_id_));
#else
this->last_thread_id_ = 0; // Reset to prevent inadvertant match on ID
-#endif /* defined (ACE_MVS) */
+#endif /* defined (ACE_TANDEM_T1248_PTHREADS) */
return 0;
diff --git a/ACE/ace/Task.h b/ACE/ace/Task.h
index 757cf651323..70590a75771 100644
--- a/ACE/ace/Task.h
+++ b/ACE/ace/Task.h
@@ -84,21 +84,21 @@ public:
/**
* Hook called from ACE_Thread_Exit when during thread exit and from
- * the default implementation of <module_closed>. In general, this
+ * the default implementation of @c module_closed(). In general, this
* method shouldn't be called directly by an application,
- * particularly if the <Task> is running as an Active Object.
- * Instead, a special message should be passed into the <Task> via
- * the <put> method defined below, and the <svc> method should
- * interpret this as a flag to shut down the <Task>.
+ * particularly if the Task is running as an Active Object.
+ * Instead, a special message should be passed into the Task via
+ * the put() method defined below, and the svc() method should
+ * interpret this as a flag to shut down the Task.
*/
virtual int close (u_long flags = 0);
/**
- * Hook called during <ACE_Module::close>. The default
+ * Hook called during ACE_Module::close(). The default
* implementation calls forwards the call to close(1). Please
- * notice the changed value of the default argument of <close>.
+ * notice the changed value of the default argument of close().
* This allows tasks to differ between the call has been originated
- * from <ACE_Thread_Exit> or from <module_closed>. Be aware that
+ * from ACE_Thread_Exit or from module_closed(). Be aware that
* close(0) will be also called when a thread associated with the
* ACE_Task instance exits.
*/
@@ -111,7 +111,7 @@ public:
/// A hook method that can be used to pass a message to a
/// task, where it can be processed immediately or queued for subsequent
- /// processing in the <svc> hook method.
+ /// processing in the svc() hook method.
virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
/// Run by a daemon thread to handle deferred processing.
@@ -286,7 +286,6 @@ protected:
/// Holds the thread ID of the last thread to exit svc() in this object.
ACE_thread_t last_thread_id_;
-
private:
// = Disallow these operations.
diff --git a/ACE/ace/Task_Ex_T.h b/ACE/ace/Task_Ex_T.h
index 090ac7a18a0..c652a51d674 100644
--- a/ACE/ace/Task_Ex_T.h
+++ b/ACE/ace/Task_Ex_T.h
@@ -58,7 +58,8 @@ template <ACE_SYNCH_DECL> class ACE_Module;
* code is in action.
*/
template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE>
-class ACE_Task_Ex : public ACE_Task_Base
+class ACE_Task_Ex : public ACE_Task_Base,
+ private ACE_Copy_Disabled
{
public:
friend class ACE_Module<ACE_SYNCH_USE>;
@@ -125,12 +126,6 @@ public: // Should be protected:
*/
int put_next (ACE_MESSAGE_TYPE *msg, ACE_Time_Value *timeout = 0);
- /**
- * Tests whether we can enqueue a message without blocking.
- * @deprecated This method is deprecated and will go away in the future.
- */
- int can_put (ACE_MESSAGE_TYPE *);
-
// = ACE_Task utility routines to identify names et al.
/// Return the name of the enclosing Module if there's one associated
/// with the Task, else returns 0.
@@ -179,12 +174,6 @@ public: // Should be protected:
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- // = Disallow these operations.
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE> &))
- ACE_UNIMPLEMENTED_FUNC (ACE_Task_Ex (const ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE> &))
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Task_Ex_T.inl b/ACE/ace/Task_Ex_T.inl
index ee0843978b3..51522b16cbf 100644
--- a/ACE/ace/Task_Ex_T.inl
+++ b/ACE/ace/Task_Ex_T.inl
@@ -23,13 +23,6 @@ ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::getq (ACE_MESSAGE_TYPE *&mb, ACE_Ti
}
template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE int
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::can_put (ACE_MESSAGE_TYPE *)
-{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::can_put");
- ACE_NOTSUP_RETURN (-1);
-}
-
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE int
ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::putq (ACE_MESSAGE_TYPE *mb, ACE_Time_Value *tv)
{
ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::putq");
diff --git a/ACE/ace/Task_T.h b/ACE/ace/Task_T.h
index 26b5fc252f4..c5cf0606f5e 100644
--- a/ACE/ace/Task_T.h
+++ b/ACE/ace/Task_T.h
@@ -96,13 +96,13 @@ public: // Should be protected:
* the stream. To do this, the message is put onto the task next in
* the stream after this task's sibling.
*
- * @param ACE_Message_Block Pointer to the block that is used in the reply.
- * @param timeout The absolute time at which the put operation used to
- * send the message block to the next module in the stream
- * will time out. If 0, this call blocks until it can be
- * completed.
+ * @param mb Pointer to the block that is used in the reply.
+ * @param tv The absolute time at which the put operation used to
+ * send the message block to the next module in the stream
+ * will time out. If 0, this call blocks until it can be
+ * completed.
*/
- int reply (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
+ int reply (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
/**
* Transfer message to the adjacent ACE_Task in a ACE_Stream. Note
@@ -111,13 +111,6 @@ public: // Should be protected:
*/
int put_next (ACE_Message_Block *msg, ACE_Time_Value *timeout = 0);
- /**
- * Tests whether we can enqueue a message without blocking.
- *
- * @deprecated This method is deprecated and will go away in the future.
- */
- int can_put (ACE_Message_Block *);
-
// = ACE_Task utility routines to identify names et al.
/// Return the name of the enclosing Module if there's one associated
/// with the Task, else returns 0.
diff --git a/ACE/ace/Task_T.inl b/ACE/ace/Task_T.inl
index c3ab9cdfe99..adfef98cb03 100644
--- a/ACE/ace/Task_T.inl
+++ b/ACE/ace/Task_T.inl
@@ -23,13 +23,6 @@ ACE_Task<ACE_SYNCH_USE>::getq (ACE_Message_Block *&mb, ACE_Time_Value *tv)
}
template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::can_put (ACE_Message_Block *)
-{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::can_put");
- ACE_NOTSUP_RETURN (-1);
-}
-
-template <ACE_SYNCH_DECL> ACE_INLINE int
ACE_Task<ACE_SYNCH_USE>::putq (ACE_Message_Block *mb, ACE_Time_Value *tv)
{
ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::putq");
diff --git a/ACE/ace/Thread.cpp b/ACE/ace/Thread.cpp
index c9398465240..9a9a008773a 100644
--- a/ACE/ace/Thread.cpp
+++ b/ACE/ace/Thread.cpp
@@ -2,10 +2,6 @@
#include "ace/Thread.h"
-ACE_RCSID(ace,
- Thread,
- "$Id$")
-
#if !defined (__ACE_INLINE__)
#include "ace/Thread.inl"
#endif /* !defined (__ACE_INLINE__) */
diff --git a/ACE/ace/Thread.h b/ACE/ace/Thread.h
index 9800997df16..523bf209c85 100644
--- a/ACE/ace/Thread.h
+++ b/ACE/ace/Thread.h
@@ -53,9 +53,9 @@ class ACE_Export ACE_Thread
public:
/**
* Creates a new thread having @a flags attributes and running @a func
- * with <args> (if <thread_adapter> is non-0 then @a func and <args>
- * are ignored and are obtained from <thread_adapter>). <thr_id>
- * and <t_handle> are set to the thread's ID and handle (?),
+ * with @a args (if @a thread_adapter is non-0 then @a func and @a args
+ * are ignored and are obtained from @a thread_adapter>. @a thr_id
+ * and @a t_handle are set to the thread's ID and handle (?),
* respectively. The thread runs at @a priority priority (see
* below).
*
@@ -70,15 +70,15 @@ public:
*
* By default, or if @a priority is set to
* ACE_DEFAULT_THREAD_PRIORITY, an "appropriate" priority value for
- * the given scheduling policy (specified in <flags}>, e.g.,
- * <THR_SCHED_DEFAULT>) is used. This value is calculated
+ * the given scheduling policy (specified in @a flags, e.g.,
+ * @c THR_SCHED_DEFAULT is used. This value is calculated
* dynamically, and is the median value between the minimum and
* maximum priority values for the given policy. If an explicit
* value is given, it is used. Note that actual priority values are
- * EXTREMEMLY implementation-dependent, and are probably best
+ * EXTREMELY implementation-dependent, and are probably best
* avoided.
*
- * Note that <thread_adapter> is always deleted when <spawn>
+ * Note that @a thread_adapter is always deleted when @a spawn
* is called, so it must be allocated with global operator new.
*/
static int spawn (ACE_THR_FUNC func,
@@ -120,7 +120,7 @@ public:
* Spawn @a n new threads, which execute @a func with argument @a arg
* (if @a thread_adapter is non-0 then @a func and @a args are ignored
* and are obtained from @a thread_adapter). The thread_ids of
- * successfully spawned threads will be placed into the <thread_ids>
+ * successfully spawned threads will be placed into the @a thread_ids
* buffer (which must be the same size as @a n). If @a stack != 0 it
* is assumed to be an array of @a n pointers to the base of the
* stacks to use for the threads being spawned. If @a stack_size !=
@@ -226,11 +226,11 @@ public:
*/
static int keycreate (ACE_thread_key_t *keyp,
#if defined (ACE_HAS_THR_C_DEST)
- ACE_THR_C_DEST destructor,
+ ACE_THR_C_DEST destructor
#else
- ACE_THR_DEST destructor,
+ ACE_THR_DEST destructor
#endif /* ACE_HAS_THR_C_DEST */
- void * = 0);
+ );
/// Free up the key so that other threads can reuse it.
static int keyfree (ACE_thread_key_t key);
diff --git a/ACE/ace/Thread.inl b/ACE/ace/Thread.inl
index 6c292ab27cd..699fbd68bfe 100644
--- a/ACE/ace/Thread.inl
+++ b/ACE/ace/Thread.inl
@@ -13,14 +13,14 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE int
ACE_Thread::keycreate (ACE_thread_key_t *keyp,
#if defined (ACE_HAS_THR_C_DEST)
- ACE_THR_C_DEST destructor,
+ ACE_THR_C_DEST destructor
#else
- ACE_THR_DEST destructor,
+ ACE_THR_DEST destructor
#endif /* ACE_HAS_THR_C_DEST */
- void *inst)
+ )
{
// ACE_TRACE ("ACE_Thread::keycreate");
- return ACE_OS::thr_keycreate (keyp, destructor, inst);
+ return ACE_OS::thr_keycreate (keyp, destructor);
}
// Free up the key so that other threads can reuse it.
diff --git a/ACE/ace/Thread_Adapter.cpp b/ACE/ace/Thread_Adapter.cpp
index d30a32b9ed8..7f2634f5826 100644
--- a/ACE/ace/Thread_Adapter.cpp
+++ b/ACE/ace/Thread_Adapter.cpp
@@ -7,10 +7,6 @@
#include "ace/Object_Manager_Base.h"
#include "ace/Service_Config.h"
-ACE_RCSID (ace,
- Thread_Adapter,
- "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/Thread_Adapter.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -26,6 +22,7 @@ ACE_Thread_Adapter::ACE_Thread_Adapter (ACE_THR_FUNC user_func,
, ACE_SEH_EXCEPT_HANDLER selector,
ACE_SEH_EXCEPT_HANDLER handler
#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags
)
: ACE_Base_Thread_Adapter (
user_func
@@ -36,6 +33,7 @@ ACE_Thread_Adapter::ACE_Thread_Adapter (ACE_THR_FUNC user_func,
, selector
, handler
#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , cancel_flags
)
, thr_mgr_ (tm)
{
@@ -109,6 +107,9 @@ ACE_Thread_Adapter::invoke_i (void)
ACE_OS_Thread_Descriptor *thr_desc = this->thr_desc_;
#endif /* ACE_WIN32 && ACE_HAS_MFC && (ACE_HAS_MFC != 0) */
+ // Pick up the cancel-related flags before deleting this.
+ long cancel_flags = this->flags_;
+
// Delete ourselves since we don't need <this> anymore. Make sure
// not to access <this> anywhere below this point.
delete this;
@@ -129,6 +130,17 @@ ACE_Thread_Adapter::invoke_i (void)
ACE_OS::thr_setprio (prio);
#endif /* ACE_NEEDS_LWP_PRIO_SET */
+ if (cancel_flags != 0)
+ {
+ // If both flags are set, ignore this.
+ int old = 0;
+ int val = cancel_flags & (THR_CANCEL_ENABLE | THR_CANCEL_DISABLE);
+ if (val == THR_CANCEL_ENABLE || val == THR_CANCEL_DISABLE)
+ ACE_OS::thr_setcancelstate (val, &old);
+ val = cancel_flags & (THR_CANCEL_DEFERRED | THR_CANCEL_ASYNCHRONOUS);
+ if (val == THR_CANCEL_DEFERRED || val == THR_CANCEL_ASYNCHRONOUS)
+ ACE_OS::thr_setcanceltype (val, &old);
+ }
ACE_THR_FUNC_RETURN status = 0;
diff --git a/ACE/ace/Thread_Adapter.h b/ACE/ace/Thread_Adapter.h
index 9b2c8dd22a1..de811982e78 100644
--- a/ACE/ace/Thread_Adapter.h
+++ b/ACE/ace/Thread_Adapter.h
@@ -56,6 +56,7 @@ public:
, ACE_SEH_EXCEPT_HANDLER selector = 0,
ACE_SEH_EXCEPT_HANDLER handler = 0
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags = 0
);
/**
@@ -69,21 +70,17 @@ public:
ACE_Thread_Manager *thr_mgr (void);
protected:
-
/// Ensure that this object must be allocated on the heap.
~ACE_Thread_Adapter (void);
private:
-
/// Called by invoke, mainly here to separate the SEH stuff because
/// SEH on Win32 doesn't compile with local vars with destructors.
virtual ACE_THR_FUNC_RETURN invoke_i (void);
private:
-
/// Optional thread manager.
ACE_Thread_Manager *thr_mgr_;
-
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Thread_Control.cpp b/ACE/ace/Thread_Control.cpp
index 594aa4618cb..3a4eb165057 100644
--- a/ACE/ace/Thread_Control.cpp
+++ b/ACE/ace/Thread_Control.cpp
@@ -1,19 +1,8 @@
// $Id$
-// <HACK ON>
-#include "ace/config-all.h"
-#if defined (ACE_LEGACY_MODE)
-// This silly include breaks a cycle when compiling in backwards
-// compatibility mode
-# include "ace/Thread_Exit.h"
-#endif /* ACE_LEGACY_MODE */
-// </HACK OFF>
-
#include "ace/Thread_Control.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(ace, Thread_Control, "$Id$")
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/Thread_Control.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -29,7 +18,7 @@ ACE_Thread_Control::dump (void) const
}
int
-ACE_Thread_Control::insert (ACE_Thread_Manager *tm, int insert)
+ACE_Thread_Control::insert (ACE_Thread_Manager *tm, bool insert)
{
ACE_OS_TRACE ("ACE_Thread_Control::insert");
@@ -44,7 +33,6 @@ ACE_Thread_Control::insert (ACE_Thread_Manager *tm, int insert)
}
// Initialize the thread controller.
-
ACE_Thread_Control::ACE_Thread_Control (ACE_Thread_Manager *t,
int insert)
: tm_ (t),
@@ -61,7 +49,6 @@ ACE_Thread_Control::ACE_Thread_Control (ACE_Thread_Manager *t,
}
// Automatically kill thread on exit.
-
ACE_Thread_Control::~ACE_Thread_Control (void)
{
ACE_OS_TRACE ("ACE_Thread_Control::~ACE_Thread_Control");
@@ -74,7 +61,6 @@ ACE_Thread_Control::~ACE_Thread_Control (void)
}
// Exit from thread (but clean up first).
-
ACE_THR_FUNC_RETURN
ACE_Thread_Control::exit (ACE_THR_FUNC_RETURN exit_status, int do_thr_exit)
{
diff --git a/ACE/ace/Thread_Control.h b/ACE/ace/Thread_Control.h
index ee9d7f5094b..8faa20808f7 100644
--- a/ACE/ace/Thread_Control.h
+++ b/ACE/ace/Thread_Control.h
@@ -10,7 +10,6 @@
*/
//=============================================================================
-
#ifndef ACE_THREAD_CONTROL_H
#define ACE_THREAD_CONTROL_H
#include /**/ "ace/pre.h"
@@ -48,7 +47,7 @@ public:
ACE_Thread_Control (ACE_Thread_Manager *tm = 0,
int insert = 0);
- /// Remove the thread from its associated <Thread_Manager> and exit
+ /// Remove the thread from its associated Thread_Manager and exit
/// the thread if <do_thr_exit> is enabled.
~ACE_Thread_Control (void);
@@ -57,15 +56,15 @@ public:
ACE_THR_FUNC_RETURN exit (ACE_THR_FUNC_RETURN status,
int do_thr_exit);
- /// Store the <Thread_Manager> and use it to register ourselves for
+ /// Store the Thread_Manager and use it to register ourselves for
/// correct shutdown.
- int insert (ACE_Thread_Manager *tm, int insert = 0);
+ int insert (ACE_Thread_Manager *tm, bool insert = false);
- /// Returns the current <Thread_Manager>.
+ /// Returns the current Thread_Manager.
ACE_Thread_Manager *thr_mgr (void);
- /// Atomically set a new <Thread_Manager> and return the old
- /// <Thread_Manager>.
+ /// Atomically set a new Thread_Manager and return the old
+ /// Thread_Manager.
ACE_Thread_Manager *thr_mgr (ACE_Thread_Manager *);
/// Set the exit status (and return existing status).
diff --git a/ACE/ace/Thread_Control.inl b/ACE/ace/Thread_Control.inl
index 7b96cb369f8..e5befff816a 100644
--- a/ACE/ace/Thread_Control.inl
+++ b/ACE/ace/Thread_Control.inl
@@ -1,7 +1,8 @@
// -*- C++ -*-
-//
// $Id$
+#include "ace/OS_NS_macros.h"
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Set the exit status.
diff --git a/ACE/ace/Thread_Exit.cpp b/ACE/ace/Thread_Exit.cpp
index 48f6b5dff47..14c1313444d 100644
--- a/ACE/ace/Thread_Exit.cpp
+++ b/ACE/ace/Thread_Exit.cpp
@@ -5,8 +5,6 @@
#include "ace/Thread_Manager.h"
#include "ace/Guard_T.h"
-ACE_RCSID(ace, Thread_Exit, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
bool ACE_Thread_Exit::is_constructed_ = false;
diff --git a/ACE/ace/Thread_Hook.cpp b/ACE/ace/Thread_Hook.cpp
index e69eb0a482c..16c156435f1 100644
--- a/ACE/ace/Thread_Hook.cpp
+++ b/ACE/ace/Thread_Hook.cpp
@@ -3,8 +3,6 @@
#include "ace/Thread_Hook.h"
#include "ace/Object_Manager_Base.h"
-ACE_RCSID(ace, Thread_Hook, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Thread_Hook::~ACE_Thread_Hook ()
@@ -12,8 +10,7 @@ ACE_Thread_Hook::~ACE_Thread_Hook ()
}
ACE_THR_FUNC_RETURN
-ACE_Thread_Hook::start (ACE_THR_FUNC func,
- void *arg)
+ACE_Thread_Hook::start (ACE_THR_FUNC func, void *arg)
{
return (func) (arg);
}
diff --git a/ACE/ace/Thread_Hook.h b/ACE/ace/Thread_Hook.h
index e7638daa941..54b4419250d 100644
--- a/ACE/ace/Thread_Hook.h
+++ b/ACE/ace/Thread_Hook.h
@@ -10,7 +10,6 @@
*/
//=============================================================================
-
#ifndef ACE_THREAD_HOOK_H
#define ACE_THREAD_HOOK_H
#include /**/ "ace/pre.h"
@@ -34,9 +33,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*/
class ACE_Export ACE_Thread_Hook
{
-
public:
-
/// Destructor.
virtual ~ACE_Thread_Hook (void);
@@ -51,7 +48,7 @@ public:
virtual ACE_THR_FUNC_RETURN start (ACE_THR_FUNC func,
void *arg);
- /// sets the system wide thread hook, returns the previous thread
+ /// Sets the system wide thread hook, returns the previous thread
/// hook or 0 if none is set.
static ACE_Thread_Hook *thread_hook (ACE_Thread_Hook *hook);
diff --git a/ACE/ace/Thread_Manager.cpp b/ACE/ace/Thread_Manager.cpp
index bf6e309f33f..82680a00e69 100644
--- a/ACE/ace/Thread_Manager.cpp
+++ b/ACE/ace/Thread_Manager.cpp
@@ -15,10 +15,6 @@
#include "ace/Thread_Manager.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Thread_Manager,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_At_Thread_Exit::~ACE_At_Thread_Exit (void)
@@ -529,10 +525,11 @@ ace_thread_manager_adapter (void *args)
exit_hook.thr_mgr (thread_args->thr_mgr ());
// Invoke the user-supplied function with the args.
- void *status = thread_args->invoke ();
+ ACE_THR_FUNC_RETURN status = thread_args->invoke ();
delete static_cast<ACE_Base_Thread_Adapter *> (thread_args);
- return status;
+
+ return reinterpret_cast<void *> (status);
}
#endif
@@ -575,7 +572,8 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
this,
new_thr_desc.get (),
ACE_OS_Object_Manager::seh_except_selector(),
- ACE_OS_Object_Manager::seh_except_handler()),
+ ACE_OS_Object_Manager::seh_except_handler(),
+ flags),
-1);
# else
ACE_NEW_RETURN (thread_args,
@@ -583,7 +581,8 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
args,
(ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME,
this,
- new_thr_desc.get ()),
+ new_thr_desc.get (),
+ flags),
-1);
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
auto_ptr <ACE_Base_Thread_Adapter> auto_thread_args (static_cast<ACE_Base_Thread_Adapter *> (thread_args));
@@ -1068,7 +1067,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 +1718,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/Thread_Mutex.cpp b/ACE/ace/Thread_Mutex.cpp
index 66da2cb48fd..e9904f14aa7 100644
--- a/ACE/ace/Thread_Mutex.cpp
+++ b/ACE/ace/Thread_Mutex.cpp
@@ -19,7 +19,7 @@
#include "ace/Log_Msg.h"
#include "ace/Malloc_T.h"
-ACE_RCSID(ace, Thread_Mutex, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Thread_Mutex.h b/ACE/ace/Thread_Mutex.h
index d8f5369b01a..09d2474e3bd 100644
--- a/ACE/ace/Thread_Mutex.h
+++ b/ACE/ace/Thread_Mutex.h
@@ -78,7 +78,7 @@ public:
int acquire (ACE_Time_Value &tv);
/**
- * If @a tv == 0 the call <acquire()> directly. Otherwise, Block the
+ * If @a tv == 0 the call acquire() directly. Otherwise, Block the
* thread until we acquire the mutex or until @a tv times out, in
* which case -1 is returned with @c errno == @c ETIME. Note that
* @a tv is assumed to be in "absolute" rather than "relative" time.
@@ -130,15 +130,16 @@ public:
int tryacquire_write (void);
/**
- * This is only here to make the ACE_Thread_Mutex
- * interface consistent with the other synchronization APIs.
- * Assumes the caller has already acquired the mutex using one of
- * the above calls, and returns 0 (success) always.
+ * This is only here to make the ACE_Thread_Mutex interface
+ * consistent with the other synchronization APIs. Assumes the
+ * caller has already acquired the mutex using one of the above
+ * calls, and returns 0 (success) always.
*/
int tryacquire_write_upgrade (void);
/// Return the underlying mutex.
const ACE_thread_mutex_t &lock (void) const;
+ ACE_thread_mutex_t &lock (void);
/// Dump the state of an object.
void dump (void) const;
@@ -146,7 +147,7 @@ public:
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
- // protected:
+protected:
/// Mutex type that supports single-process locking efficiently.
ACE_thread_mutex_t lock_;
diff --git a/ACE/ace/Thread_Mutex.inl b/ACE/ace/Thread_Mutex.inl
index dbef586fbc3..5eba0696c4b 100644
--- a/ACE/ace/Thread_Mutex.inl
+++ b/ACE/ace/Thread_Mutex.inl
@@ -11,6 +11,13 @@ ACE_Thread_Mutex::lock (void) const
return this->lock_;
}
+ACE_INLINE ACE_thread_mutex_t &
+ACE_Thread_Mutex::lock (void)
+{
+// ACE_TRACE ("ACE_Thread_Mutex::lock");
+ return this->lock_;
+}
+
ACE_INLINE int
ACE_Thread_Mutex::acquire_read (void)
{
diff --git a/ACE/ace/Thread_Semaphore.cpp b/ACE/ace/Thread_Semaphore.cpp
index 741c7c5ec99..c3b25f34ebb 100644
--- a/ACE/ace/Thread_Semaphore.cpp
+++ b/ACE/ace/Thread_Semaphore.cpp
@@ -18,7 +18,7 @@
#include "ace/ACE.h"
-ACE_RCSID(ace, Thread_Semaphore, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Thread_Semaphore.h b/ACE/ace/Thread_Semaphore.h
index fb88634dd24..89649982828 100644
--- a/ACE/ace/Thread_Semaphore.h
+++ b/ACE/ace/Thread_Semaphore.h
@@ -62,8 +62,6 @@ public:
template <class T> class ACE_Malloc_Lock_Adapter_T;
/**
- * @class ACE_Malloc_Lock_Adapter_T<ACE_Thread_Semaphore>
- *
* @brief Template specialization of ACE_Malloc_Lock_Adapter_T for
* ACE_Thread_Semaphore.
*
diff --git a/ACE/ace/Throughput_Stats.cpp b/ACE/ace/Throughput_Stats.cpp
index d76f5cb6ebc..6df0abf6658 100644
--- a/ACE/ace/Throughput_Stats.cpp
+++ b/ACE/ace/Throughput_Stats.cpp
@@ -7,22 +7,13 @@
#include "ace/High_Res_Timer.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace, Throughput_Stats, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Throughput_Stats::ACE_Throughput_Stats (void)
: ACE_Basic_Stats ()
, throughput_last_ (0)
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- , throughput_sum_x_ (0)
- , throughput_sum_x2_ (0)
- , throughput_sum_y_ (0)
- , throughput_sum_y2_ (0)
- , throughput_sum_xy_ (0)
-#endif /* 0 */
{
}
@@ -34,35 +25,11 @@ ACE_Throughput_Stats::sample (ACE_UINT64 throughput,
if (this->samples_count () == 1u)
{
-
this->throughput_last_ = throughput;
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- this->throughput_sum_y_ = this->samples_count_;
- this->throughput_sum_y2_ = this->samples_count_ * this->samples_count_;
- this->throughput_sum_x_ = throughput;
- this->throughput_sum_x2_ = throughput * throughput;
- this->throughput_sum_xy_ = throughput * this->samples_count_;
-
- ACE_OS::printf ("%f %qu\n", throughput / 400000000.0, this->samples_count_);
-#endif /* 0 */
}
else
{
this->throughput_last_ = throughput;
-
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- this->throughput_sum_y_ += this->samples_count_;
- this->throughput_sum_y2_ += this->samples_count_ * this->samples_count_;
- this->throughput_sum_x_ += throughput;
- this->throughput_sum_x2_ += throughput * throughput;
- this->throughput_sum_xy_ += throughput * this->samples_count_;
-
- ACE_OS::printf ("%f %qu\n", throughput / 400000000.0, this->samples_count_);
-#endif /* 0 */
}
}
@@ -77,32 +44,11 @@ ACE_Throughput_Stats::accumulate (const ACE_Throughput_Stats &rhs)
if (this->samples_count () == 0u)
{
this->throughput_last_ = rhs.throughput_last_;
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- this->throughput_sum_x_ = rhs.throughput_sum_x_;
- this->throughput_sum_x2_ = rhs.throughput_sum_x2_;
- this->throughput_sum_y_ = rhs.throughput_sum_y_;
- this->throughput_sum_y2_ = rhs.throughput_sum_y2_;
- this->throughput_sum_xy_ = rhs.throughput_sum_xy_;
-#endif /* 0 */
-
return;
}
-
if (this->throughput_last_ < rhs.throughput_last_)
this->throughput_last_ = rhs.throughput_last_;
-
-#if 0
- // @@TODO: This is what I really wanted to compute, but it just
- // does not work.
- this->throughput_sum_x_ += rhs.throughput_sum_x_;
- this->throughput_sum_x2_ += rhs.throughput_sum_x2_;
- this->throughput_sum_y_ += rhs.throughput_sum_y_;
- this->throughput_sum_y2_ += rhs.throughput_sum_y2_;
- this->throughput_sum_xy_ += rhs.throughput_sum_xy_;
-#endif /* 0 */
}
void
@@ -121,51 +67,6 @@ ACE_Throughput_Stats::dump_results (const ACE_TCHAR* msg,
ACE_Throughput_Stats::dump_throughput (msg, sf,
this->throughput_last_,
this->samples_count ());
-
-#if 0
- // @@TODO: This is what I really wanted to generate, but it just
- // doesn't work.
- double t_sum_x =
- ACE_CU64_TO_CU32 (this->throughput_sum_x_);// / sf);
- //t_sum_x /= 1000000.0;
- double t_sum_y =
- ACE_CU64_TO_CU32 (this->throughput_sum_y_);
- double t_sum_x2 =
- ACE_CU64_TO_CU32 (this->throughput_sum_x2_);// / (sf*sf));
- //t_sum_x2 /= 1000000.0;
- //t_sum_x2 /= 1000000.0;
- double t_sum_y2 =
- ACE_CU64_TO_CU32 (this->throughput_sum_y2_);
- double t_sum_xy =
- ACE_CU64_TO_CU32 (this->throughput_sum_xy_);// / sf);
- //t_sum_xy /= 1000000.0;
- double t_avgx = t_sum_x / this->samples_count ();
- double t_avgy = t_sum_y / this->samples_count ();
-
- double t_a =
- (this->samples_count () * t_sum_xy - t_sum_x * t_sum_y)
- / (this->samples_count () * t_sum_x2 - t_sum_x * t_sum_x);
- double t_b = (t_avgy - t_a * t_avgx);
-
- t_a *= 1000000.0;
-
- double d_r =
- (t_sum_xy - t_avgx * t_sum_y - t_avgy * t_sum_x
- + this->samples_count () * t_avgx * t_avgy);
- double n_r =
- (t_sum_x2
- - this->samples_count () * t_avgx * t_avgx)
- * (t_sum_y2
- - this->samples_count () * t_avgy * t_avgy);
- double t_r = d_r * d_r / n_r;
-
- // ACE_DEBUG ((LM_DEBUG,
- // "%s throughput: %.2f/%.2f/%.2f/%.6f/%.2f (avg/a/b/r/elapsed)\n",
- // msg, t_avg, t_a, t_b, t_r, seconds));
- // ACE_DEBUG ((LM_DEBUG,
- // "%s data: %.2f/%.2f/%.2f/%.6f/%.2f (x/x2/y/y2/xy)\n",
- // msg, t_sum_x, t_sum_x2, t_sum_y, t_sum_y2, t_sum_xy));
-#endif
}
void
diff --git a/ACE/ace/Throughput_Stats.h b/ACE/ace/Throughput_Stats.h
index ed59c6fb908..c5dfd2da924 100644
--- a/ACE/ace/Throughput_Stats.h
+++ b/ACE/ace/Throughput_Stats.h
@@ -65,18 +65,6 @@ public:
private:
/// The last throughput measurement.
ACE_UINT64 throughput_last_;
-
-#if 0
- /// These are the fields that we should keep to perform linear
- /// regression
- //@{
- ///@}
- ACE_UINT64 throughput_sum_x_;
- ACE_UINT64 throughput_sum_x2_;
- ACE_UINT64 throughput_sum_y_;
- ACE_UINT64 throughput_sum_y2_;
- ACE_UINT64 throughput_sum_xy_;
-#endif /* 0 */
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Time_Value.cpp b/ACE/ace/Time_Value.cpp
index 33ebdd8fa7f..0d582c18d95 100644
--- a/ACE/ace/Time_Value.cpp
+++ b/ACE/ace/Time_Value.cpp
@@ -1,9 +1,6 @@
-#include "ace/Time_Value.h"
-
-ACE_RCSID (ace,
- Time_Value,
- "$Id$")
+// $Id$
+#include "ace/Time_Value.h"
#if !defined (__ACE_INLINE__)
#include "ace/Time_Value.inl"
@@ -11,28 +8,33 @@ ACE_RCSID (ace,
#include "ace/Numeric_Limits.h"
#include "ace/If_Then_Else.h"
+#include "ace/OS_NS_math.h"
+
+#ifdef ACE_HAS_CPP98_IOSTREAMS
+#include <ostream>
+#include <iomanip>
+#endif /* ACE_HAS_CPP98_IOSTREAMS */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-// Static constant representing `zero-time'.
-// Note: this object requires static construction.
+/// Static constant representing `zero-time'.
+/// Note: this object requires static construction.
const ACE_Time_Value ACE_Time_Value::zero;
-// Constant for maximum time representable. Note that this time
-// is not intended for use with select () or other calls that may
-// have *their own* implementation-specific maximum time representations.
-// Its primary use is in time computations such as those used by the
-// dynamic subpriority strategies in the ACE_Dynamic_Message_Queue class.
-// Note: this object requires static construction.
+/// Constant for maximum time representable. Note that this time
+/// is not intended for use with select () or other calls that may
+/// have *their own* implementation-specific maximum time representations.
+/// Its primary use is in time computations such as those used by the
+/// dynamic subpriority strategies in the ACE_Dynamic_Message_Queue class.
+/// Note: this object requires static construction.
const ACE_Time_Value ACE_Time_Value::max_time (
ACE_Numeric_Limits<time_t>::max (),
ACE_ONE_SECOND_IN_USECS - 1);
ACE_ALLOC_HOOK_DEFINE (ACE_Time_Value)
-// Increment microseconds (the only reason this is here is to allow
-// the use of ACE_Atomic_Op with ACE_Time_Value).
-
+/// Increment microseconds (the only reason this is here is to allow
+/// the use of ACE_Atomic_Op with ACE_Time_Value).
ACE_Time_Value
ACE_Time_Value::operator ++ (int)
{
@@ -51,9 +53,8 @@ ACE_Time_Value::operator ++ (void)
return *this;
}
-// Decrement microseconds (the only reason this is here is / to allow
-// the use of ACE_Atomic_Op with ACE_Time_Value).
-
+/// Decrement microseconds (the only reason this is here is / to allow
+/// the use of ACE_Atomic_Op with ACE_Time_Value).
ACE_Time_Value
ACE_Time_Value::operator -- (int)
{
@@ -73,13 +74,13 @@ ACE_Time_Value::operator -- (void)
}
#if defined (ACE_WIN32)
-// Static constant to remove time skew between FILETIME and POSIX
-// time. POSIX and Win32 use different epochs (Jan. 1, 1970 v.s.
-// Jan. 1, 1601). The following constant defines the difference
-// in 100ns ticks.
-//
-// In the beginning (Jan. 1, 1601), there was no time and no computer.
-// And Bill said: "Let there be time," and there was time....
+/// Static constant to remove time skew between FILETIME and POSIX
+/// time. POSIX and Win32 use different epochs (Jan. 1, 1970 v.s.
+/// Jan. 1, 1601). The following constant defines the difference
+/// in 100ns ticks.
+///
+/// In the beginning (Jan. 1, 1601), there was no time and no computer.
+/// And Bill said: "Let there be time," and there was time....
# if defined (ACE_LACKS_LONGLONG_T)
const ACE_U_LongLong ACE_Time_Value::FILETIME_to_timval_skew =
ACE_U_LongLong (0xd53e8000, 0x19db1de);
@@ -88,8 +89,7 @@ const DWORDLONG ACE_Time_Value::FILETIME_to_timval_skew =
ACE_INT64_LITERAL (0x19db1ded53e8000);
# endif
-// Initializes the ACE_Time_Value object from a Win32 FILETIME
-
+/// Initializes the ACE_Time_Value object from a Win32 FILETIME
ACE_Time_Value::ACE_Time_Value (const FILETIME &file_time)
{
// // ACE_OS_TRACE ("ACE_Time_Value::ACE_Time_Value");
@@ -103,7 +103,7 @@ void ACE_Time_Value::set (const FILETIME &file_time)
ACE_U_LongLong LL_100ns(file_time.dwLowDateTime, file_time.dwHighDateTime);
LL_100ns -= ACE_Time_Value::FILETIME_to_timval_skew;
// Convert 100ns units to seconds;
- this->tv_.tv_sec = (long) (LL_100ns / ((double) (10000 * 1000)));
+ this->tv_.tv_sec = (time_t) (LL_100ns / ((double) (10000 * 1000)));
// Convert remainder to microseconds;
this->tv_.tv_usec = (suseconds_t)((LL_100ns % ((ACE_UINT32)(10000 * 1000))) / 10);
#else
@@ -115,15 +115,14 @@ void ACE_Time_Value::set (const FILETIME &file_time)
_100ns.QuadPart -= ACE_Time_Value::FILETIME_to_timval_skew;
// Convert 100ns units to seconds;
- this->tv_.tv_sec = (long) (_100ns.QuadPart / (10000 * 1000));
+ this->tv_.tv_sec = (time_t) (_100ns.QuadPart / (10000 * 1000));
// Convert remainder to microseconds;
this->tv_.tv_usec = (suseconds_t) ((_100ns.QuadPart % (10000 * 1000)) / 10);
#endif // ACE_LACKS_LONGLONG_T
this->normalize ();
}
-// Returns the value of the object as a Win32 FILETIME.
-
+/// Returns the value of the object as a Win32 FILETIME.
ACE_Time_Value::operator FILETIME () const
{
FILETIME file_time;
@@ -155,19 +154,10 @@ ACE_Time_Value::operator FILETIME () const
void
ACE_Time_Value::dump (void) const
{
-#if defined (ACE_HAS_DUMP)
- // ACE_OS_TRACE ("ACE_Time_Value::dump");
-#if 0
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntv_sec_ = %d"), this->tv_.tv_sec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntv_usec_ = %d\n"), this->tv_.tv_usec));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* 0 */
-#endif /* ACE_HAS_DUMP */
}
void
-ACE_Time_Value::normalize (void)
+ACE_Time_Value::normalize (bool saturate)
{
// // ACE_OS_TRACE ("ACE_Time_Value::normalize");
// From Hans Rohnert...
@@ -176,23 +166,45 @@ ACE_Time_Value::normalize (void)
{
/*! \todo This loop needs some optimization.
*/
- do
- {
- ++this->tv_.tv_sec;
- this->tv_.tv_usec -= ACE_ONE_SECOND_IN_USECS;
- }
- while (this->tv_.tv_usec >= ACE_ONE_SECOND_IN_USECS);
+ if (!saturate) // keep the conditionnal expression outside the while loop to minimize performance cost
+ do
+ {
+ ++this->tv_.tv_sec;
+ this->tv_.tv_usec -= ACE_ONE_SECOND_IN_USECS;
+ }
+ while (this->tv_.tv_usec >= ACE_ONE_SECOND_IN_USECS);
+ else
+ do
+ if (this->tv_.tv_sec < ACE_Numeric_Limits<time_t>::max())
+ {
+ ++this->tv_.tv_sec;
+ this->tv_.tv_usec -= ACE_ONE_SECOND_IN_USECS;
+ }
+ else
+ this->tv_.tv_usec = ACE_ONE_SECOND_IN_USECS - 1;
+ while (this->tv_.tv_usec >= ACE_ONE_SECOND_IN_USECS);
}
else if (this->tv_.tv_usec <= -ACE_ONE_SECOND_IN_USECS)
{
/*! \todo This loop needs some optimization.
*/
- do
- {
- --this->tv_.tv_sec;
- this->tv_.tv_usec += ACE_ONE_SECOND_IN_USECS;
- }
- while (this->tv_.tv_usec <= -ACE_ONE_SECOND_IN_USECS);
+ if (!saturate)
+ do
+ {
+ --this->tv_.tv_sec;
+ this->tv_.tv_usec += ACE_ONE_SECOND_IN_USECS;
+ }
+ while (this->tv_.tv_usec <= -ACE_ONE_SECOND_IN_USECS);
+ else
+ do
+ if (this->tv_.tv_sec > ACE_Numeric_Limits<time_t>::min())
+ {
+ --this->tv_.tv_sec;
+ this->tv_.tv_usec += ACE_ONE_SECOND_IN_USECS;
+ }
+ else
+ this->tv_.tv_usec = -ACE_ONE_SECOND_IN_USECS + 1;
+ while (this->tv_.tv_usec <= -ACE_ONE_SECOND_IN_USECS);
}
if (this->tv_.tv_sec >= 1 && this->tv_.tv_usec < 0)
@@ -200,65 +212,137 @@ ACE_Time_Value::normalize (void)
--this->tv_.tv_sec;
this->tv_.tv_usec += ACE_ONE_SECOND_IN_USECS;
}
-// tv_sec in qnxnto is unsigned
-#if !defined ( __QNXNTO__)
+ // tv_sec in qnxnto is unsigned
+#if !defined ( __QNX__)
else if (this->tv_.tv_sec < 0 && this->tv_.tv_usec > 0)
{
++this->tv_.tv_sec;
this->tv_.tv_usec -= ACE_ONE_SECOND_IN_USECS;
}
-#endif /* __QNXNTO__ */
+#endif /* __QNX__ */
}
ACE_Time_Value &
ACE_Time_Value::operator *= (double d)
{
- // The floating type to be used in the computations. It should be
- // large enough to hold a time_t. We actually want a floating type
- // with enough digits in its mantissa to hold a time_t without
- // losing precision. For example, if FLT_RADIX is 2 and
- // LDBL_MANT_DIG is 64, a long double has a 64 bit wide mantissa,
- // which would be sufficient to hold a 64 bit time_t value without
- // losing precision.
+ // To work around the lack of precision of a long double to contain
+ // a 64-bits time_t + 6 digits after the decimal point for the usec part,
+ // we perform the multiplication of the 2 timeval parts separately.
+ //
+ // This extra precision step is adding a cost when transfering the
+ // seconds resulting from the usec multiplication. This operation
+ // correspond to the normalization process performed in normalize()
+ // but we must absolutly do it here because the usec multiplication
+ // result value could exceed what can be stored in a suseconds_t
+ // type variable.
//
- // For now we'll simply go with long double if it is larger than
- // time_t. We're hosed if long double isn't large enough.
+ // Since this is a costly operation, we try to detect as soon as
+ // possible if we are having a saturation in order to abort the rest
+ // of the computation.
typedef ACE::If_Then_Else<(sizeof (double) > sizeof (time_t)),
- double,
- long double>::result_type float_type;
+ double,
+ long double>::result_type float_type;
- float_type time_total =
- (this->sec ()
- + static_cast<float_type> (this->usec ()) / ACE_ONE_SECOND_IN_USECS) * d;
+ float_type sec_total = static_cast<float_type> (this->sec());
+ sec_total *= d;
// shall we saturate the result?
static const float_type max_int =
- ACE_Numeric_Limits<time_t>::max () + 0.999999;
+ ACE_Numeric_Limits<time_t>::max() + 0.999999;
static const float_type min_int =
- ACE_Numeric_Limits<time_t>::min () - 0.999999;
+ ACE_Numeric_Limits<time_t>::min() - 0.999999;
- if (time_total > max_int)
- time_total = max_int;
- if (time_total < min_int)
- time_total = min_int;
+ if (sec_total > max_int)
+ {
+ this->set(ACE_Numeric_Limits<time_t>::max(), ACE_ONE_SECOND_IN_USECS-1);
+ }
+ else if (sec_total < min_int)
+ {
+ this->set(ACE_Numeric_Limits<time_t>::min(), -ACE_ONE_SECOND_IN_USECS+1);
+ }
+ else
+ {
+ time_t time_sec = static_cast<time_t> (sec_total);
- const time_t time_sec = static_cast<time_t> (time_total);
+ float_type usec_total = this->usec();
+ usec_total *= d;
- time_total -= time_sec;
- time_total *= ACE_ONE_SECOND_IN_USECS;
+ // adding usec resulting from tv_sec mult
+ usec_total += (sec_total-time_sec) * ACE_ONE_SECOND_IN_USECS;
- suseconds_t time_usec = static_cast<suseconds_t> (time_total);
+ // extract seconds component of the usec mult
+ sec_total = usec_total / ACE_ONE_SECOND_IN_USECS;
+ // keep remaining usec
+ if (sec_total > 0)
+ {
+ usec_total = (sec_total - ACE_OS::floor(sec_total));
+ }
+ else
+ {
+ usec_total = (sec_total - ACE_OS::ceil(sec_total));
+ }
- // round up the result to save the last usec
- if (time_usec > 0 && (time_total - time_usec) >= 0.5)
- ++time_usec;
- else if (time_usec < 0 && (time_total - time_usec) <= -0.5)
- --time_usec;
+ sec_total -= usec_total;
+ usec_total *= ACE_ONE_SECOND_IN_USECS;
- this->set (time_sec, time_usec);
+ // add the seconds component of the usec mult with the tv_sec mult prod.
+ sec_total += time_sec;
+ // recheck for saturation
+ if (sec_total > max_int)
+ {
+ this->set (ACE_Numeric_Limits<time_t>::max(), ACE_ONE_SECOND_IN_USECS - 1);
+ }
+ else if (sec_total < min_int)
+ {
+ this->set (ACE_Numeric_Limits<time_t>::min(), -ACE_ONE_SECOND_IN_USECS + 1);
+ }
+ else
+ {
+ time_sec = static_cast<time_t> (sec_total);
+ suseconds_t time_usec = static_cast<suseconds_t> (usec_total);
+
+ // round up the result to save the last usec
+ if (time_usec > 0 && (usec_total - time_usec) >= 0.5)
+ {
+ ++time_usec;
+ }
+ else if (time_usec < 0 && (usec_total - time_usec) <= -0.5)
+ {
+ --time_usec;
+ }
+
+ this->set (time_sec, time_usec);
+ }
+ }
return *this;
}
+#ifdef ACE_HAS_CPP98_IOSTREAMS
+ostream &operator<<(ostream &o, const ACE_Time_Value &v)
+{
+ char oldFiller = o.fill ();
+ o.fill ('0');
+ const timeval *tv = v;
+ if (tv->tv_sec)
+ {
+ o << tv->tv_sec;
+ if (tv->tv_usec)
+ o << '.' << std::setw (6) << ACE_STD_NAMESPACE::abs (tv->tv_usec);
+ }
+ else if (tv->tv_usec < 0)
+ o << "-0." << std::setw (6) << - tv->tv_usec;
+ else
+ {
+ o << '0';
+ if (tv->tv_usec > 0)
+ o << '.'<< std::setw (6) << tv->tv_usec;
+ }
+
+ o.fill (oldFiller);
+ return o;
+}
+#endif /* ACE_HAS_CPP98_IOSTREAMS */
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Time_Value.h b/ACE/ace/Time_Value.h
index 0836d3b10f5..cb33f1aa121 100644
--- a/ACE/ace/Time_Value.h
+++ b/ACE/ace/Time_Value.h
@@ -32,6 +32,9 @@ suseconds_t const ACE_ONE_SECOND_IN_USECS = 1000000;
// needed for ACE_UINT64
#include "ace/Basic_Types.h"
+// needed to determine if iostreams are present
+#include "ace/iosfwd.h"
+
// This forward declaration is needed by the set() and FILETIME() functions
#if defined (ACE_LACKS_LONGLONG_T)
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -41,6 +44,9 @@ ACE_END_VERSIONED_NAMESPACE_DECL
// -------------------------------------------------------------------
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+
/**
* @class ACE_Time_Value
*
@@ -51,18 +57,6 @@ ACE_END_VERSIONED_NAMESPACE_DECL
* ACE. These time values are typically used in conjunction with OS
* mechanisms like <select>, <poll>, or <cond_timedwait>.
*/
-#if defined (ACE_WIN32) && defined (_WIN32_WCE)
-// Something is a bit brain-damaged here and I'm not sure what... this code
-// compiled before the OS reorg for ACE 5.4. Since then it hasn't - eVC
-// complains that the operators that return ACE_Time_Value are C-linkage
-// functions that can't return a C++ class. The only way I've found to
-// defeat this is to wrap the whole class in extern "C++".
-// - Steve Huston, 23-Aug-2004
-extern "C++" {
-#endif
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
class ACE_Export ACE_Time_Value
{
public:
@@ -135,11 +129,24 @@ public:
/// Converts from ACE_Time_Value format into milliseconds format.
/**
* @return Sum of second field (in milliseconds) and microsecond field
+ * (in milliseconds).
+ *
+ * @note The semantics of this method differs from the sec() and
+ * usec() methods. There is no analogous "millisecond"
+ * component in an ACE_Time_Value.
+ */
+ ACE_UINT64 get_msec () const;
+
+ /// Converts from ACE_Time_Value format into milliseconds format.
+ /**
+ * @return Sum of second field (in milliseconds) and microsecond field
* (in milliseconds) and return them via the @param ms parameter.
*
* @note The semantics of this method differs from the sec() and
* usec() methods. There is no analogous "millisecond"
* component in an ACE_Time_Value.
+ *
+ * @deprecated Use get_msec() instead.
*/
void msec (ACE_UINT64 &ms) const;
@@ -151,6 +158,8 @@ public:
* @note The semantics of this method differs from the sec() and
* usec() methods. There is no analogous "millisecond"
* component in an ACE_Time_Value.
+ *
+ * @deprecated Use get_msec() instead.
*/
void msec (ACE_UINT64 &ms) /* const */;
@@ -160,6 +169,14 @@ public:
* usec() methods. There is no analogous "millisecond"
* component in an ACE_Time_Value.
*/
+ void set_msec (const ACE_UINT64 &ms);
+
+ /// Converts from milli-seconds format into ACE_Time_Value format.
+ /**
+ * @note The semantics of this method differs from the sec() and
+ * usec() methods. There is no analogous "millisecond"
+ * component in an ACE_Time_Value.
+ */
void msec (long);
/// Converts from milli-seconds format into ACE_Time_Value format.
@@ -233,7 +250,7 @@ public:
/// Subtract @a tv to this.
ACE_Time_Value &operator -= (const ACE_Time_Value &tv);
- /// Substract @a tv to this.
+ /// Subtract @a tv to this.
ACE_Time_Value &operator -= (time_t tv);
/**
@@ -333,7 +350,7 @@ public:
private:
/// Put the timevalue into a canonical form.
- void normalize (void);
+ void normalize (bool saturate = false);
/// Store the values as a timeval.
#if defined (ACE_HAS_TIME_T_LONG_MISMATCH)
@@ -355,16 +372,16 @@ private:
#endif /* ACE_HAS_TIME_T_LONG_MISMATCH */
};
+#ifdef ACE_HAS_CPP98_IOSTREAMS
+extern ACE_Export ostream &operator<<( ostream &o, const ACE_Time_Value &v );
+#endif
+
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "ace/Time_Value.inl"
#endif /* __ACE_INLINE__ */
-#if defined (ACE_WIN32) && defined (_WIN32_WCE)
-}
-#endif
-
#if defined (__MINGW32__)
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// The MingW linker has problems with the exported statics
diff --git a/ACE/ace/Time_Value.inl b/ACE/ace/Time_Value.inl
index 4614b7a97c3..a1cde15dcf3 100644
--- a/ACE/ace/Time_Value.inl
+++ b/ACE/ace/Time_Value.inl
@@ -6,18 +6,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#if defined (ACE_WIN32) && defined (_WIN32_WCE)
-// Something is a bit brain-damaged here and I'm not sure what... this code
-// compiled before the OS reorg for ACE 5.4. Since then it hasn't - eVC
-// complains that the operators that return ACE_Time_Value are C-linkage
-// functions that can't return a C++ class. The only way I've found to
-// defeat this is to wrap the whole class in extern "C++".
-// - Steve Huston, 23-Aug-2004
-extern "C++" {
-#endif
-
-// Returns the value of the object as a timeval.
-
+/// Returns the value of the object as a timeval.
ACE_INLINE
ACE_Time_Value::operator timeval () const
{
@@ -69,19 +58,7 @@ ACE_INLINE void
ACE_Time_Value::set (time_t sec, suseconds_t usec)
{
// ACE_OS_TRACE ("ACE_Time_Value::set");
-# if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) && !defined (_USE_32BIT_TIME_T) && defined (_MSC_VER)
- // The WinCE 6.0 SDK ships with a timeval tv_sec member that uses long as type
- // not time_t. This resolves in compilation warnings because time_t
- // can be 64bit. Disable at this momemt the warning for just this method
- // else we get a compile warnings each time this inline file is included
- // this file.
-# pragma warning (push)
-# pragma warning (disable: 4244)
-# endif
this->tv_.tv_sec = sec;
-# if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) && !defined (_USE_32BIT_TIME_T) && defined (_MSC_VER)
-# pragma warning (pop)
-# endif
this->tv_.tv_usec = usec;
#if __GNUC__
if (__builtin_constant_p(sec) &&
@@ -96,16 +73,15 @@ ACE_INLINE void
ACE_Time_Value::set (double d)
{
// ACE_OS_TRACE ("ACE_Time_Value::set");
- long l = (long) d;
+ time_t l = (time_t) d;
this->tv_.tv_sec = l;
this->tv_.tv_usec = (suseconds_t) ((d - (double) l) * ACE_ONE_SECOND_IN_USECS + .5);
this->normalize ();
}
-// Initializes a timespec_t. Note that this approach loses precision
-// since it converts the nano-seconds into micro-seconds. But then
-// again, do any real systems have nano-second timer precision?!
-
+/// Initializes a timespec_t. Note that this approach loses precision
+/// since it converts the nano-seconds into micro-seconds. But then
+/// again, do any real systems have nano-second timer precision?!
ACE_INLINE void
ACE_Time_Value::set (const timespec_t &tv)
{
@@ -130,8 +106,7 @@ ACE_Time_Value::ACE_Time_Value (time_t sec, suseconds_t usec)
this->set (sec, usec);
}
-// Returns number of seconds.
-
+/// Returns number of seconds.
ACE_INLINE time_t
ACE_Time_Value::sec (void) const
{
@@ -139,17 +114,15 @@ ACE_Time_Value::sec (void) const
return this->tv_.tv_sec;
}
-// Sets the number of seconds.
-
+/// Sets the number of seconds.
ACE_INLINE void
ACE_Time_Value::sec (time_t sec)
{
// ACE_OS_TRACE ("ACE_Time_Value::sec");
- this->tv_.tv_sec = ACE_Utils::truncate_cast<long> (sec);
+ this->tv_.tv_sec = sec;
}
-// Converts from Time_Value format into milli-seconds format.
-
+/// Converts from Time_Value format into milli-seconds format.
ACE_INLINE unsigned long
ACE_Time_Value::msec (void) const
{
@@ -162,13 +135,21 @@ ACE_Time_Value::msec (void) const
return ACE_Utils::truncate_cast<unsigned long> (secs);
}
+ACE_INLINE ACE_UINT64
+ACE_Time_Value::get_msec () const
+{
+ // ACE_OS_TRACE ("ACE_Time_Value::get_msec");
+ ACE_UINT64 ms = ACE_Utils::truncate_cast<ACE_UINT64> (this->tv_.tv_sec);
+ ms *= 1000;
+ ms += (this->tv_.tv_usec / 1000);
+ return ms;
+}
+
ACE_INLINE void
ACE_Time_Value::msec (ACE_UINT64 &ms) const
{
// ACE_OS_TRACE ("ACE_Time_Value::msec");
- ms = ACE_Utils::truncate_cast<ACE_UINT64> (this->tv_.tv_sec);
- ms *= 1000;
- ms += (this->tv_.tv_usec / 1000);
+ ms = this->get_msec ();
}
ACE_INLINE void
@@ -179,8 +160,18 @@ ACE_Time_Value::msec (ACE_UINT64 &ms) /*const*/
tv->msec (ms);
}
-// Converts from milli-seconds format into Time_Value format.
+ACE_INLINE void
+ACE_Time_Value::set_msec (const ACE_UINT64 &ms)
+{
+ // ACE_OS_TRACE ("ACE_Time_Value::set_msec");
+ // Convert millisecond units to seconds;
+ ACE_UINT64 secs = ms / 1000;
+ this->tv_.tv_sec = static_cast<long> (secs);
+ // Convert remainder to microseconds;
+ this->tv_.tv_usec = static_cast<long>((ms - (secs * 1000)) * 1000);
+}
+/// Converts from milli-seconds format into Time_Value format.
ACE_INLINE void
ACE_Time_Value::msec (long milliseconds)
{
@@ -192,16 +183,14 @@ ACE_Time_Value::msec (long milliseconds)
this->tv_.tv_usec = (milliseconds - (secs * 1000)) * 1000;
}
-// Converts from milli-seconds format into Time_Value format.
-
+/// Converts from milli-seconds format into Time_Value format.
ACE_INLINE void
ACE_Time_Value::msec (int milliseconds)
{
ACE_Time_Value::msec (static_cast<long> (milliseconds));
}
-// Returns number of micro-seconds.
-
+/// Returns number of micro-seconds.
ACE_INLINE suseconds_t
ACE_Time_Value::usec (void) const
{
@@ -209,8 +198,7 @@ ACE_Time_Value::usec (void) const
return this->tv_.tv_usec;
}
-// Sets the number of micro-seconds.
-
+/// Sets the number of micro-seconds.
ACE_INLINE void
ACE_Time_Value::usec (suseconds_t usec)
{
@@ -230,7 +218,7 @@ ACE_Time_Value::to_usec (ACE_UINT64 & usec) const
usec = ACE_U_LongLong (this->tv_.tv_sec);
#else
usec = static_cast<ACE_UINT64> (this->tv_.tv_sec);
-#endif /* ACE_LACKS_LONG_LONG_T */
+#endif /* ACE_LACKS_LONGLONG_T */
usec *= 1000000;
usec += this->tv_.tv_usec;
}
@@ -247,8 +235,7 @@ operator * (const ACE_Time_Value &tv, double d)
return ACE_Time_Value (tv) *= d;
}
-// True if tv1 > tv2.
-
+/// True if tv1 > tv2.
ACE_INLINE bool
operator > (const ACE_Time_Value &tv1,
const ACE_Time_Value &tv2)
@@ -263,8 +250,7 @@ operator > (const ACE_Time_Value &tv1,
return 0;
}
-// True if tv1 >= tv2.
-
+/// True if tv1 >= tv2.
ACE_INLINE bool
operator >= (const ACE_Time_Value &tv1,
const ACE_Time_Value &tv2)
@@ -279,8 +265,7 @@ operator >= (const ACE_Time_Value &tv1,
return 0;
}
-// Returns the value of the object as a timespec_t.
-
+/// Returns the value of the object as a timespec_t.
ACE_INLINE
ACE_Time_Value::operator timespec_t () const
{
@@ -292,8 +277,7 @@ ACE_Time_Value::operator timespec_t () const
return tv;
}
-// Initializes the ACE_Time_Value object from a timespec_t.
-
+/// Initializes the ACE_Time_Value object from a timespec_t.
ACE_INLINE
ACE_Time_Value::ACE_Time_Value (const timespec_t &tv)
// : tv_ ()
@@ -302,8 +286,7 @@ ACE_Time_Value::ACE_Time_Value (const timespec_t &tv)
this->set (tv);
}
-// True if tv1 < tv2.
-
+/// True if tv1 < tv2.
ACE_INLINE bool
operator < (const ACE_Time_Value &tv1,
const ACE_Time_Value &tv2)
@@ -312,8 +295,7 @@ operator < (const ACE_Time_Value &tv1,
return tv2 > tv1;
}
-// True if tv1 >= tv2.
-
+/// True if tv1 >= tv2.
ACE_INLINE bool
operator <= (const ACE_Time_Value &tv1,
const ACE_Time_Value &tv2)
@@ -322,8 +304,7 @@ operator <= (const ACE_Time_Value &tv1,
return tv2 >= tv1;
}
-// True if tv1 == tv2.
-
+/// True if tv1 == tv2.
ACE_INLINE bool
operator == (const ACE_Time_Value &tv1,
const ACE_Time_Value &tv2)
@@ -333,8 +314,7 @@ operator == (const ACE_Time_Value &tv1,
&& tv1.usec () == tv2.usec ();
}
-// True if tv1 != tv2.
-
+/// True if tv1 != tv2.
ACE_INLINE bool
operator != (const ACE_Time_Value &tv1,
const ACE_Time_Value &tv2)
@@ -343,8 +323,7 @@ operator != (const ACE_Time_Value &tv1,
return !(tv1 == tv2);
}
-// Add TV to this.
-
+/// Add TV to this.
ACE_INLINE ACE_Time_Value &
ACE_Time_Value::operator+= (const ACE_Time_Value &tv)
{
@@ -381,8 +360,7 @@ ACE_Time_Value::operator= (time_t tv)
return *this;
}
-// Subtract TV to this.
-
+/// Subtract TV to this.
ACE_INLINE ACE_Time_Value &
ACE_Time_Value::operator-= (const ACE_Time_Value &tv)
{
@@ -401,8 +379,7 @@ ACE_Time_Value::operator-= (time_t tv)
return *this;
}
-// Adds two ACE_Time_Value objects together, returns the sum.
-
+/// Adds two ACE_Time_Value objects together, returns the sum.
ACE_INLINE ACE_Time_Value
operator + (const ACE_Time_Value &tv1,
const ACE_Time_Value &tv2)
@@ -414,8 +391,7 @@ operator + (const ACE_Time_Value &tv1,
return sum;
}
-// Subtracts two ACE_Time_Value objects, returns the difference.
-
+/// Subtracts two ACE_Time_Value objects, returns the difference.
ACE_INLINE ACE_Time_Value
operator - (const ACE_Time_Value &tv1,
const ACE_Time_Value &tv2)
@@ -427,8 +403,4 @@ operator - (const ACE_Time_Value &tv1,
return delta;
}
-#if defined (ACE_WIN32) && defined (_WIN32_WCE)
-}
-#endif
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Timeprobe.cpp b/ACE/ace/Timeprobe.cpp
index aea68f74ba0..33aa98f0792 100644
--- a/ACE/ace/Timeprobe.cpp
+++ b/ACE/ace/Timeprobe.cpp
@@ -2,7 +2,7 @@
#include "ace/config-all.h"
-ACE_RCSID(ace, Timeprobe, "$Id$")
+
#if defined (ACE_COMPILE_TIMEPROBES)
diff --git a/ACE/ace/Timer_Hash_T.cpp b/ACE/ace/Timer_Hash_T.cpp
index a2a81fc3773..c3e452301f0 100644
--- a/ACE/ace/Timer_Hash_T.cpp
+++ b/ACE/ace/Timer_Hash_T.cpp
@@ -13,10 +13,6 @@
#include "ace/Guard_T.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ace,
- Timer_Hash_T,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <class TYPE>
@@ -423,14 +419,6 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reschedule (
expired->get_interval ());
ACE_ASSERT (h->orig_id_ != -1);
-#if 0
- ACE_DEBUG ((LM_DEBUG, "Hash::reschedule() resets %d in slot %d where it's id is %d and token is %x\n",
- expired->get_timer_value ().msec (),
- h->pos_,
- h->orig_id_,
- h));
-#endif
-
// Since schedule() above will allocate a new node
// then here schedule <expired> for deletion. Don't call
// this->free_node() because that will invalidate <h>
@@ -474,14 +462,6 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::schedule_i (
interval);
ACE_ASSERT (h->orig_id_ != -1);
-#if 0
- ACE_DEBUG ((LM_DEBUG, "Hash::schedule() placing %d in slot %d where it's id is %d and token is %x\n",
- future_time.msec (),
- position,
- h->orig_id_,
- h));
-#endif
-
if (this->table_[this->earliest_position_]->is_empty ()
|| this->table_[position]->earliest_time ()
< this->table_[this->earliest_position_]->earliest_time ())
@@ -810,23 +790,12 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::expire (const ACE_Time_Value
ACE_ASSERT (h->pos_ == i);
-#if 0
- ACE_DEBUG ((LM_DEBUG, "Hash::expire() expiring %d in slot %d where it's id is %d and token is %x\n",
- expired->get_timer_value ().msec (),
- h->pos_,
- h->orig_id_,
- h));
-#endif
-
// Check if this is an interval timer.
if (expired->get_interval () > ACE_Time_Value::zero)
{
// Make sure that we skip past values that have already
// "expired".
- do
- expired->set_timer_value (expired->get_timer_value ()
- + expired->get_interval ());
- while (expired->get_timer_value () <= cur_time);
+ this->recompute_next_abs_interval_time (expired, cur_time);
// Since this is an interval timer, we need to
// reschedule it.
diff --git a/ACE/ace/Timer_Heap_T.cpp b/ACE/ace/Timer_Heap_T.cpp
index c15597cf334..47f4f501da3 100644
--- a/ACE/ace/Timer_Heap_T.cpp
+++ b/ACE/ace/Timer_Heap_T.cpp
@@ -522,21 +522,7 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::grow_heap (void)
// All the containers will double in size from max_size_.
size_t new_size = this->max_size_ * 2;
-#if 0
- // Yikes - there's no way to flag a failure of going out of range of
- // a 'long' - this is a problem that should be addressed at some point.
- if (new_size > ACE_Numeric_Limits<long>::max ())
- new_size = ACE_Numeric_Limits<long>::max ();
-
- if (new_size <= this->max_size_) // We are already at the limit
- {
- errno = ENOMEM;
- return -1;
- }
-#endif /* 0 */
-
- // First grow the heap itself.
-
+ // First grow the heap itself.
ACE_Timer_Node_T<TYPE> **new_heap = 0;
ACE_NEW (new_heap,
diff --git a/ACE/ace/Timer_List.h b/ACE/ace/Timer_List.h
index 0bc689465ea..686aa63804b 100644
--- a/ACE/ace/Timer_List.h
+++ b/ACE/ace/Timer_List.h
@@ -25,7 +25,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// The following typedefs are here for ease of use and backward
// compatibility.
-
typedef ACE_Timer_List_T<ACE_Event_Handler *,
ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
ACE_SYNCH_RECURSIVE_MUTEX>
diff --git a/ACE/ace/Timer_List_T.cpp b/ACE/ace/Timer_List_T.cpp
index e2313d0e002..519a2080cd8 100644
--- a/ACE/ace/Timer_List_T.cpp
+++ b/ACE/ace/Timer_List_T.cpp
@@ -11,7 +11,7 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-ACE_RCSID(ace, Timer_List_T, "$Id$")
+
// Default Constructor
diff --git a/ACE/ace/Timer_Queue_Adapters.cpp b/ACE/ace/Timer_Queue_Adapters.cpp
index 0c4fc51b573..fe6be3f4adc 100644
--- a/ACE/ace/Timer_Queue_Adapters.cpp
+++ b/ACE/ace/Timer_Queue_Adapters.cpp
@@ -17,20 +17,21 @@
# include "ace/Timer_Queue_Adapters.inl"
# endif /* __ACE_INLINE__ */
+#include "ace/Reverse_Lock_T.h"
#include "ace/Signal.h"
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_sys_time.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <class TQ> TQ &
-ACE_Async_Timer_Queue_Adapter<TQ>::timer_queue (void)
+template <class TQ, class TYPE> TQ &
+ACE_Async_Timer_Queue_Adapter<TQ, TYPE>::timer_queue (void)
{
return this->timer_queue_;
}
-template <class TQ> int
-ACE_Async_Timer_Queue_Adapter<TQ>::cancel (long timer_id,
+template <class TQ, class TYPE> int
+ACE_Async_Timer_Queue_Adapter<TQ, TYPE>::cancel (long timer_id,
const void **act)
{
// Block designated signals.
@@ -40,8 +41,8 @@ ACE_Async_Timer_Queue_Adapter<TQ>::cancel (long timer_id,
return this->timer_queue_.cancel (timer_id, act);
}
-template <class TQ> int
-ACE_Async_Timer_Queue_Adapter<TQ>::expire (void)
+template <class TQ, class TYPE> int
+ACE_Async_Timer_Queue_Adapter<TQ, TYPE>::expire (void)
{
// Block designated signals.
ACE_Sig_Guard sg (&this->mask_);
@@ -50,8 +51,8 @@ ACE_Async_Timer_Queue_Adapter<TQ>::expire (void)
return this->timer_queue_.expire ();
}
-template <class TQ> int
-ACE_Async_Timer_Queue_Adapter<TQ>::schedule_ualarm (void)
+template <class TQ, class TYPE> int
+ACE_Async_Timer_Queue_Adapter<TQ, TYPE>::schedule_ualarm (void)
{
ACE_Time_Value tv = this->timer_queue_.earliest_time ()
- this->timer_queue_.gettimeofday ();
@@ -68,8 +69,8 @@ ACE_Async_Timer_Queue_Adapter<TQ>::schedule_ualarm (void)
return 0;
}
-template <class TQ> long
-ACE_Async_Timer_Queue_Adapter<TQ>::schedule (ACE_Event_Handler *eh,
+template <class TQ, class TYPE> long
+ACE_Async_Timer_Queue_Adapter<TQ, TYPE>::schedule (TYPE eh,
const void *act,
const ACE_Time_Value &future_time,
const ACE_Time_Value &interval)
@@ -96,8 +97,8 @@ ACE_Async_Timer_Queue_Adapter<TQ>::schedule (ACE_Event_Handler *eh,
return tid;
}
-template <class TQ>
-ACE_Async_Timer_Queue_Adapter<TQ>::ACE_Async_Timer_Queue_Adapter (ACE_Sig_Set *mask)
+template <class TQ, class TYPE>
+ACE_Async_Timer_Queue_Adapter<TQ, TYPE>::ACE_Async_Timer_Queue_Adapter (ACE_Sig_Set *mask)
// If <mask> == 0, block *all* signals when the SIGARLM handler is
// running, else just block those in the mask.
: mask_ (mask)
@@ -120,8 +121,8 @@ ACE_Async_Timer_Queue_Adapter<TQ>::ACE_Async_Timer_Queue_Adapter (ACE_Sig_Set *m
// list. It gets invoked asynchronously when the SIGALRM signal
// occurs.
-template <class TQ> int
-ACE_Async_Timer_Queue_Adapter<TQ>::handle_signal (int signum,
+template <class TQ, class TYPE> int
+ACE_Async_Timer_Queue_Adapter<TQ, TYPE>::handle_signal (int signum,
siginfo_t *,
ucontext_t *)
{
@@ -154,8 +155,8 @@ ACE_Async_Timer_Queue_Adapter<TQ>::handle_signal (int signum,
}
}
-template<class TQ>
-ACE_Thread_Timer_Queue_Adapter<TQ>::ACE_Thread_Timer_Queue_Adapter (ACE_Thread_Manager *tm,
+template<class TQ, class TYPE>
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::ACE_Thread_Timer_Queue_Adapter (ACE_Thread_Manager *tm,
TQ* timer_queue)
: ACE_Task_Base (tm),
timer_queue_(timer_queue),
@@ -172,8 +173,8 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::ACE_Thread_Timer_Queue_Adapter (ACE_Thread_M
}
}
-template<class TQ>
-ACE_Thread_Timer_Queue_Adapter<TQ>::~ACE_Thread_Timer_Queue_Adapter (void)
+template<class TQ, class TYPE>
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::~ACE_Thread_Timer_Queue_Adapter (void)
{
if (this->delete_timer_queue_)
{
@@ -183,39 +184,39 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::~ACE_Thread_Timer_Queue_Adapter (void)
}
}
-template<class TQ> ACE_SYNCH_RECURSIVE_MUTEX &
-ACE_Thread_Timer_Queue_Adapter<TQ>::mutex (void)
+template<class TQ, class TYPE> ACE_SYNCH_RECURSIVE_MUTEX &
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::mutex (void)
{
return this->mutex_;
}
-template<class TQ> long
-ACE_Thread_Timer_Queue_Adapter<TQ>::schedule
- (ACE_Event_Handler* handler,
+template<class TQ, class TYPE> long
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::schedule
+ (TYPE handler,
const void *act,
const ACE_Time_Value &future_time,
const ACE_Time_Value &interval)
{
ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mutex_, -1);
- long const result = this->timer_queue_->schedule (handler, act, future_time, interval);
+ long result = this->timer_queue_->schedule (handler, act, future_time, interval);
this->condition_.signal ();
return result;
}
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::cancel (long timer_id,
+template<class TQ, class TYPE> int
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::cancel (long timer_id,
const void **act)
{
ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mutex_, -1);
- int const result = this->timer_queue_->cancel (timer_id, act);
+ int result = this->timer_queue_->cancel (timer_id, act);
condition_.signal ();
return result;
}
-template<class TQ> void
-ACE_Thread_Timer_Queue_Adapter<TQ>::deactivate (void)
+template<class TQ, class TYPE> void
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::deactivate (void)
{
ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mutex_);
@@ -223,8 +224,8 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::deactivate (void)
this->condition_.signal ();
}
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::svc (void)
+template<class TQ, class TYPE> int
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::svc (void)
{
ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mutex_, -1);
@@ -278,8 +279,15 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::svc (void)
}
}
- // Expire timers anyway, at worst this is a no-op.
- this->timer_queue_->expire ();
+ // Expire timers anyway, at worst this is a no-op. Release the lock
+ // while dispatching; the timer queue has its own lock to protect
+ // itself.
+ {
+ ACE_Reverse_Lock<ACE_SYNCH_RECURSIVE_MUTEX> rel (this->mutex_);
+ ACE_GUARD_RETURN (ACE_Reverse_Lock<ACE_SYNCH_RECURSIVE_MUTEX>,
+ rmon, rel, -1);
+ this->timer_queue_->expire ();
+ }
}
// Thread cancellation point, if ACE supports it.
@@ -290,8 +298,8 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::svc (void)
return 0;
}
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::activate (long flags,
+template<class TQ, class TYPE> int
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::activate (long flags,
int ,
int ,
long priority,
@@ -320,14 +328,14 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::activate (long flags,
// or cancelling timers on platforms where the timer queue mutex is not
// recursive.
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::enqueue_command (ACE_Command_Base *cmd,
+template<class TQ, class TYPE> int
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::enqueue_command (ACE_Command_Base *cmd,
COMMAND_ENQUEUE_POSITION pos)
{
// Serialize access to the command queue.
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, this->command_mutex_, -1);
- if (pos == ACE_Thread_Timer_Queue_Adapter<TQ>::TAIL)
+ if (pos == ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::TAIL)
return command_queue_.enqueue_tail (cmd);
else
return command_queue_.enqueue_head (cmd);
@@ -336,8 +344,8 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::enqueue_command (ACE_Command_Base *cmd,
// Dispatches all command objects enqueued in the most recent event
// handler context.
-template<class TQ> int
-ACE_Thread_Timer_Queue_Adapter<TQ>::dispatch_commands (void)
+template<class TQ, class TYPE> int
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::dispatch_commands (void)
{
// Serialize access to the command queue.
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, this->command_mutex_, -1);
diff --git a/ACE/ace/Timer_Queue_Adapters.h b/ACE/ace/Timer_Queue_Adapters.h
index 08ea47075f3..4611239fb02 100644
--- a/ACE/ace/Timer_Queue_Adapters.h
+++ b/ACE/ace/Timer_Queue_Adapters.h
@@ -49,7 +49,7 @@ class ACE_Sig_Set;
*
* @todo This adapter does not automatically reschedule repeating timers.
*/
-template <class TQ>
+template <class TQ, class TYPE = ACE_Event_Handler*>
class ACE_Async_Timer_Queue_Adapter : public ACE_Event_Handler
{
public:
@@ -70,7 +70,7 @@ public:
* calling expire(). Note that interval timers are not implemented
* yet.
*/
- long schedule (ACE_Event_Handler *type,
+ long schedule (TYPE type,
const void *act,
const ACE_Time_Value &future_time,
const ACE_Time_Value &interval = ACE_Time_Value::zero);
@@ -119,7 +119,7 @@ private:
* use.
*
*/
-template <class TQ>
+template <class TQ, class TYPE = ACE_Event_Handler*>
class ACE_Thread_Timer_Queue_Adapter : public ACE_Task_Base
{
public:
@@ -145,7 +145,7 @@ public:
/// Schedule the timer according to the semantics of the <TQ>; wakes
/// up the dispatching thread.
- long schedule (ACE_Event_Handler *handler,
+ long schedule (TYPE handler,
const void *act,
const ACE_Time_Value &future_time,
const ACE_Time_Value &interval = ACE_Time_Value::zero);
diff --git a/ACE/ace/Timer_Queue_Adapters.inl b/ACE/ace/Timer_Queue_Adapters.inl
index 3252b186e07..16901a15bd6 100644
--- a/ACE/ace/Timer_Queue_Adapters.inl
+++ b/ACE/ace/Timer_Queue_Adapters.inl
@@ -4,14 +4,14 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template<class TQ> ACE_INLINE TQ *
-ACE_Thread_Timer_Queue_Adapter<TQ>::timer_queue (void) const
+template<class TQ, class TYPE> ACE_INLINE TQ *
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::timer_queue (void) const
{
return this->timer_queue_;
}
-template<class TQ> ACE_INLINE int
-ACE_Thread_Timer_Queue_Adapter<TQ>::timer_queue (TQ *tq)
+template<class TQ, class TYPE> ACE_INLINE int
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::timer_queue (TQ *tq)
{
if (this->delete_timer_queue_)
delete this->timer_queue_;
@@ -20,8 +20,8 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::timer_queue (TQ *tq)
return 0;
}
-template<class TQ> ACE_INLINE ACE_thread_t
-ACE_Thread_Timer_Queue_Adapter<TQ>::thr_id (void) const
+template<class TQ, class TYPE> ACE_INLINE ACE_thread_t
+ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::thr_id (void) const
{
return this->thr_id_;
}
diff --git a/ACE/ace/Timer_Queue_T.cpp b/ACE/ace/Timer_Queue_T.cpp
index 2ac9a29e9aa..f7d8f00675e 100644
--- a/ACE/ace/Timer_Queue_T.cpp
+++ b/ACE/ace/Timer_Queue_T.cpp
@@ -18,6 +18,7 @@
#include "ace/Guard_T.h"
#include "ace/Log_Msg.h"
#include "ace/Reactor_Timer_Interface.h"
+#include "ace/Reverse_Lock_T.h"
#include "ace/Null_Mutex.h"
#include "ace/OS_NS_sys_time.h"
@@ -267,6 +268,9 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value &cur_ti
while ((result = this->dispatch_info_i (cur_time, info)) != 0)
{
+ ACE_MT (ACE_Reverse_Lock<ACE_LOCK> rev_lk(this->mutex_));
+ ACE_MT (ACE_GUARD_RETURN (ACE_Reverse_Lock<ACE_LOCK>, rmon, rev_lk, -1));
+
const void *upcall_act = 0;
this->preinvoke (info, cur_time, upcall_act);
@@ -283,6 +287,66 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value &cur_ti
return number_of_timers_expired;
}
+template <class TYPE, class FUNCTOR, class ACE_LOCK> void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::recompute_next_abs_interval_time
+ (ACE_Timer_Node_T<TYPE> *expired,
+ const ACE_Time_Value &cur_time)
+{
+ if ( expired->get_timer_value () <= cur_time )
+ {
+ /*
+ * Somehow the current time is past when this time was
+ * supposed to expire (e.g., timer took too long,
+ * somebody changed system time, etc.). There used to
+ * be a simple loop here that skipped ahead one timer
+ * interval at a time, but that was horribly inefficient
+ * (an O(n) algorithm) when the timer duration was small
+ * relative to the amount of time skipped.
+ *
+ * So, we replace the loop with a simple computation,
+ * which also happens to be O(1). All times get
+ * normalized in the computation to microseconds.
+ *
+ * For reference, the loop looked like this:
+ *
+ * do
+ * expired->set_timer_value (expired->get_timer_value () +
+ * expired->get_interval ());
+ * while (expired->get_timer_value () <= cur_time);
+ *
+ */
+
+ // Compute the duration of the timer's interval
+ ACE_UINT64 interval_usec;
+ expired->get_interval ().to_usec (interval_usec);
+
+ // Compute the span between the current time and when
+ // the timer would have expired in the past (and
+ // normalize to microseconds).
+ ACE_Time_Value old_diff = cur_time - expired->get_timer_value ();
+ ACE_UINT64 old_diff_usec;
+ old_diff.to_usec (old_diff_usec);
+
+ // Compute the delta time in the future when the timer
+ // should fire as if it had advanced incrementally. The
+ // modulo arithmetic accomodates the likely case that
+ // the current time doesn't fall precisely on a timer
+ // firing interval.
+ ACE_UINT64 new_timer_usec =
+ interval_usec - (old_diff_usec % interval_usec);
+
+ // Compute the absolute time in the future when this
+ // interval timer should expire.
+ ACE_Time_Value new_timer_value
+ (cur_time.sec ()
+ + static_cast<time_t>(new_timer_usec / ACE_ONE_SECOND_IN_USECS),
+ cur_time.usec ()
+ + static_cast<suseconds_t>(new_timer_usec % ACE_ONE_SECOND_IN_USECS));
+
+ expired->set_timer_value (new_timer_value);
+ }
+}
+
template <class TYPE, class FUNCTOR, class ACE_LOCK> int
ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dispatch_info_i (const ACE_Time_Value &cur_time,
ACE_Timer_Node_Dispatch_Info_T<TYPE> &info)
@@ -306,10 +370,7 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dispatch_info_i (const ACE_Time_Valu
{
// Make sure that we skip past values that have already
// "expired".
- do
- expired->set_timer_value (expired->get_timer_value () +
- expired->get_interval ());
- while (expired->get_timer_value () <= cur_time);
+ this->recompute_next_abs_interval_time (expired, cur_time);
// Since this is an interval timer, we need to reschedule
// it.
diff --git a/ACE/ace/Timer_Queue_T.h b/ACE/ace/Timer_Queue_T.h
index 8aef637579e..4ed6fd4a30f 100644
--- a/ACE/ace/Timer_Queue_T.h
+++ b/ACE/ace/Timer_Queue_T.h
@@ -431,6 +431,10 @@ protected:
virtual int dispatch_info_i (const ACE_Time_Value &current_time,
ACE_Timer_Node_Dispatch_Info_T<TYPE> &info);
+ /// Recompute when the next time is that this interval timer should fire.
+ void recompute_next_abs_interval_time (ACE_Timer_Node_T<TYPE>* expired,
+ const ACE_Time_Value &cur_time);
+
/// Synchronization variable for ACE_Timer_Queue.
/// @note The right name would be lock_, but HP/C++ will choke on that!
ACE_LOCK mutex_;
diff --git a/ACE/ace/Timer_Wheel_T.cpp b/ACE/ace/Timer_Wheel_T.cpp
index b860c1604dd..d7734e6b120 100644
--- a/ACE/ace/Timer_Wheel_T.cpp
+++ b/ACE/ace/Timer_Wheel_T.cpp
@@ -148,7 +148,7 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::open_i
this->free_list_->resize (prealloc + this->spoke_count_);
- this->wheel_time_.msec (1 << (this->res_bits_ + this->spoke_bits_));
+ this->wheel_time_.msec (1 << (this->res_bits_));
ACE_NEW (this->spokes_, ACE_Timer_Node_T<TYPE>* [this->spoke_count_]);
@@ -834,10 +834,7 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value& cur_ti
{
// Make sure that we skip past values that have already
// "expired".
- do
- n->set_timer_value (n->get_timer_value () +
- n->get_interval ());
- while (n->get_timer_value () <= cur_time);
+ this->recompute_next_abs_interval_time (n, cur_time);
this->reschedule (n);
}
diff --git a/ACE/ace/TkReactor/TkReactor.cpp b/ACE/ace/TkReactor/TkReactor.cpp
index 23b446230f4..59fc0280296 100644
--- a/ACE/ace/TkReactor/TkReactor.cpp
+++ b/ACE/ace/TkReactor/TkReactor.cpp
@@ -1,10 +1,9 @@
+// $Id$
#include "ace/TkReactor/TkReactor.h"
#include "ace/SOCK_Acceptor.h"
#include "ace/SOCK_Connector.h"
-ACE_RCSID(ace, TkReactor, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_TkReactor)
diff --git a/ACE/ace/TkReactor/ace_tkreactor.mpc b/ACE/ace/TkReactor/ace_tkreactor.mpc
new file mode 100644
index 00000000000..97e20718338
--- /dev/null
+++ b/ACE/ace/TkReactor/ace_tkreactor.mpc
@@ -0,0 +1,11 @@
+// -*- MPC -*- now wouldn't this be cool...
+// $Id$
+
+project(ACE_TkReactor) : acedefaults, install, acelib, ace_output, ace_tk {
+ sharedname = ACE_TkReactor
+ dynamicflags += ACE_TKREACTOR_BUILD_DLL
+
+ specific {
+ install_dir = ace/TkReactor
+ }
+}
diff --git a/ACE/ace/Token.cpp b/ACE/ace/Token.cpp
index 5018881ff6f..d92991bafeb 100644
--- a/ACE/ace/Token.cpp
+++ b/ACE/ace/Token.cpp
@@ -6,7 +6,7 @@
# include "ace/Token.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Token, "$Id$")
+
#if defined (ACE_HAS_THREADS)
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/Token_Collection.cpp b/ACE/ace/Token_Collection.cpp
index 8ed4fca1d39..7133d009230 100644
--- a/ACE/ace/Token_Collection.cpp
+++ b/ACE/ace/Token_Collection.cpp
@@ -1,3 +1,4 @@
+// $Id$
#include "ace/Token_Collection.h"
#if defined (ACE_HAS_TOKENS_LIBRARY)
@@ -7,10 +8,6 @@
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Token_Collection,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Token_Collection::ACE_Token_Collection (bool debug,
diff --git a/ACE/ace/Token_Collection.h b/ACE/ace/Token_Collection.h
index fa91532aaa6..5b4b8589ac1 100644
--- a/ACE/ace/Token_Collection.h
+++ b/ACE/ace/Token_Collection.h
@@ -204,18 +204,6 @@ protected:
typedef ACE_Map_Manager<TOKEN_NAME, ACE_Token_Proxy *, ACE_Null_Mutex>
COLLECTION;
- /// Allows iterations through collection_
- /**
- * @deprecated Deprecated typedef. Use COLLECTION::ITERATOR trait instead.
- */
- typedef COLLECTION::ITERATOR COLLECTION_ITERATOR;
-
- /// Allows iterations through collection_
- /**
- * @deprecated Deprecated typedef. Use COLLECTION::ENTRY trait instead.
- */
- typedef COLLECTION::ENTRY COLLECTION_ENTRY;
-
/// COLLECTION maintains a mapping from token names to ACE_Tokens*.
COLLECTION collection_;
diff --git a/ACE/ace/Token_Invariants.cpp b/ACE/ace/Token_Invariants.cpp
index 5e53f777087..bbf55dc69cc 100644
--- a/ACE/ace/Token_Invariants.cpp
+++ b/ACE/ace/Token_Invariants.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Token_Invariants.h"
#if defined (ACE_HAS_TOKENS_LIBRARY)
@@ -5,10 +7,6 @@
#include "ace/Object_Manager.h"
#include "ace/os_include/os_typeinfo.h"
-ACE_RCSID (ace,
- Token_Invariants,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Token_Invariant_Manager *ACE_Token_Invariant_Manager::instance_ = 0;
diff --git a/ACE/ace/Token_Invariants.h b/ACE/ace/Token_Invariants.h
index 8bc294106ed..3fda4988025 100644
--- a/ACE/ace/Token_Invariants.h
+++ b/ACE/ace/Token_Invariants.h
@@ -195,20 +195,6 @@ protected:
typedef ACE_Map_Manager<TOKEN_NAME, ACE_Mutex_Invariants *, ACE_Null_Mutex>
MUTEX_COLLECTION;
- /// Allows iterations through collection.
- /**
- * @deprecated Deprecated typedef. Use MUTEX_COLLECTION::ITERATOR trait
- * instead.
- */
- typedef MUTEX_COLLECTION::ITERATOR MUTEX_COLLECTION_ITERATOR;
-
- /// Allows iterations through collection.
- /**
- * @deprecated Deprecated typedef. Use MUTEX_COLLECTION::ENTRY trait
- * instead.
- */
- typedef MUTEX_COLLECTION::ENTRY MUTEX_COLLECTION_ENTRY;
-
/// MUTEX_COLLECTION maintains a mapping from token names to mutexes.
MUTEX_COLLECTION mutex_collection_;
@@ -216,20 +202,6 @@ protected:
typedef ACE_Map_Manager<TOKEN_NAME, ACE_RWLock_Invariants *, ACE_Null_Mutex>
RWLOCK_COLLECTION;
- /// Allows iterations through collection.
- /**
- * @deprecated Deprecated typedef. Use RWLOCK_COLLECTION::ITERATOR trait
- * instead.
- */
- typedef RWLOCK_COLLECTION::ITERATOR RWLOCK_COLLECTION_ITERATOR;
-
- /// Allows iterations through collection.
- /**
- * @deprecated Deprecated typedef. Use RWLOCK_COLLECTION::ENTRY trait
- * instead.
- */
- typedef RWLOCK_COLLECTION::ENTRY RWLOCK_COLLECTION_ENTRY;
-
/// MUTEX_COLLECTION maintains a mapping from token names to mutexes.
RWLOCK_COLLECTION rwlock_collection_;
diff --git a/ACE/ace/Token_Manager.cpp b/ACE/ace/Token_Manager.cpp
index f5eb16636ed..0487ac8f67f 100644
--- a/ACE/ace/Token_Manager.cpp
+++ b/ACE/ace/Token_Manager.cpp
@@ -1,3 +1,5 @@
+// $Id$
+
#include "ace/Token_Manager.h"
#if defined (ACE_HAS_TOKENS_LIBRARY)
@@ -9,10 +11,6 @@
#include "ace/Token_Manager.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (ace,
- Token_Manager,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// singleton token manager
diff --git a/ACE/ace/Token_Manager.h b/ACE/ace/Token_Manager.h
index 619fa418d20..9df69aafd7a 100644
--- a/ACE/ace/Token_Manager.h
+++ b/ACE/ace/Token_Manager.h
@@ -120,20 +120,6 @@ private:
typedef ACE_Map_Manager<TOKEN_NAME, ACE_Tokens *, ACE_Null_Mutex>
COLLECTION;
- /// Allows iterations through collection_
- /**
- * @deprecated Deprecated typedef. Use COLLECTION::ITERATOR trait
- * instead.
- */
- typedef COLLECTION::ITERATOR COLLECTION_ITERATOR;
-
- /// Allows iterations through collection_
- /**
- * @deprecated Deprecated typedef. Use COLLECTION::ENTRY trait
- * instead.
- */
- typedef COLLECTION::ENTRY COLLECTION_ENTRY;
-
/// COLLECTION maintains a mapping from token names to ACE_Tokens*.
COLLECTION collection_;
};
diff --git a/ACE/ace/Token_Request_Reply.cpp b/ACE/ace/Token_Request_Reply.cpp
index 24c1098238f..5fc3653038e 100644
--- a/ACE/ace/Token_Request_Reply.cpp
+++ b/ACE/ace/Token_Request_Reply.cpp
@@ -8,7 +8,7 @@
#include "ace/Token_Request_Reply.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, Token_Request_Reply, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Tokenizer_T.cpp b/ACE/ace/Tokenizer_T.cpp
new file mode 100644
index 00000000000..5bb51295701
--- /dev/null
+++ b/ACE/ace/Tokenizer_T.cpp
@@ -0,0 +1,242 @@
+// $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 ACE_CHAR_T>
+ACE_Tokenizer_T<ACE_CHAR_T>::ACE_Tokenizer_T (ACE_CHAR_T *buffer)
+ : buffer_ (buffer),
+ index_ (0),
+ preserves_index_ (0),
+ delimiter_index_ (0)
+{
+}
+
+template <class ACE_CHAR_T>
+int
+ACE_Tokenizer_T<ACE_CHAR_T>::delimiter (ACE_CHAR_T d)
+{
+ if (delimiter_index_ == MAX_DELIMITERS)
+ return -1;
+
+ delimiters_[delimiter_index_].delimiter_ = d;
+ delimiters_[delimiter_index_].replace_ = 0;
+ ++delimiter_index_;
+ return 0;
+}
+
+template <class ACE_CHAR_T>
+int
+ACE_Tokenizer_T<ACE_CHAR_T>::delimiter_replace (ACE_CHAR_T d,
+ ACE_CHAR_T 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 ACE_CHAR_T>
+int
+ACE_Tokenizer_T<ACE_CHAR_T>::preserve_designators (ACE_CHAR_T start,
+ ACE_CHAR_T 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 ACE_CHAR_T>
+int
+ACE_Tokenizer_T<ACE_CHAR_T>::is_delimiter (ACE_CHAR_T d,
+ int &replace,
+ ACE_CHAR_T &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 ACE_CHAR_T>
+int
+ACE_Tokenizer_T<ACE_CHAR_T>::is_preserve_designator (ACE_CHAR_T start,
+ ACE_CHAR_T &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 ACE_CHAR_T>
+ACE_CHAR_T *
+ACE_Tokenizer_T<ACE_CHAR_T>::next (void)
+{
+ // Check if the previous pass was the last one in the buffer.
+ if (index_ == -1)
+ {
+ index_ = 0;
+ return 0;
+ }
+
+ // Check if a buffer has been passed
+ if (!buffer_)
+ {
+ return 0;
+ }
+
+ ACE_CHAR_T replacement = 0;
+ int replace;
+ ACE_CHAR_T *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.
+ ACE_CHAR_T 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 is NESTED inside this token
+ // We can't strip such preserve designators, just skip
+ // over them so that delimiters nested within arn't seen.
+ if (this->is_preserve_designator (buffer_[index_],
+ stop,
+ strip))
+ {
+ ++index_; // Skip starting preserve_designator
+ while (('\0' != buffer_[index_]) && (stop != buffer_[index_]))
+ ++index_; // Skip enclosed character
+ }
+
+ // 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..097f9cc3965
--- /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 ACE_CHAR_T>
+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 (ACE_CHAR_T *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 (ACE_CHAR_T 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_CHAR_T d, ACE_CHAR_T 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_CHAR_T start, ACE_CHAR_T stop, int strip=1);
+
+ /// Returns the next token.
+ ACE_CHAR_T *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 (ACE_CHAR_T d, int &replace, ACE_CHAR_T &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 (ACE_CHAR_T start, ACE_CHAR_T &stop, int &strip);
+
+ ACE_CHAR_T *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_CHAR_T start_;
+ ACE_CHAR_T 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_CHAR_T delimiter_;
+ ACE_CHAR_T 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/Trace.cpp b/ACE/ace/Trace.cpp
index f83e8e96511..c9f266375b3 100644
--- a/ACE/ace/Trace.cpp
+++ b/ACE/ace/Trace.cpp
@@ -1,12 +1,7 @@
// $Id$
-
#include "ace/Trace.h"
-ACE_RCSID (ace,
- Trace,
- "$Id$")
-
// Turn off tracing for the duration of this file.
#if defined (ACE_NTRACE)
#undef ACE_NTRACE
@@ -24,7 +19,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
int ACE_Trace::nesting_indent_ = ACE_Trace::DEFAULT_INDENT;
// Is tracing enabled?
-int ACE_Trace::enable_tracing_ = ACE_Trace::DEFAULT_TRACING;
+bool ACE_Trace::enable_tracing_ = ACE_Trace::DEFAULT_TRACING;
ACE_ALLOC_HOOK_DEFINE(ACE_Trace)
@@ -37,7 +32,7 @@ ACE_Trace::dump (void) const
// Determine whether or not tracing is enabled
-int
+bool
ACE_Trace::is_tracing (void)
{
return ACE_Trace::enable_tracing_;
@@ -48,7 +43,7 @@ ACE_Trace::is_tracing (void)
void
ACE_Trace::start_tracing (void)
{
- ACE_Trace::enable_tracing_ = 1;
+ ACE_Trace::enable_tracing_ = true;
}
// Disable the tracing facility.
@@ -56,7 +51,7 @@ ACE_Trace::start_tracing (void)
void
ACE_Trace::stop_tracing (void)
{
- ACE_Trace::enable_tracing_ = 0;
+ ACE_Trace::enable_tracing_ = false;
}
// Change the nesting indentation level.
diff --git a/ACE/ace/Trace.h b/ACE/ace/Trace.h
index 4fdb86a3367..7c0c202c1c4 100644
--- a/ACE/ace/Trace.h
+++ b/ACE/ace/Trace.h
@@ -49,8 +49,8 @@ public:
~ACE_Trace (void);
// = Control the tracing level.
- /// Determine if tracing is enabled (return == 1) or not (== 0)
- static int is_tracing(void);
+ /// Determine if tracing is enabled or not
+ static bool is_tracing(void);
/// Enable the tracing facility.
static void start_tracing (void);
@@ -79,7 +79,7 @@ private:
static int nesting_indent_;
/// Is tracing enabled?
- static int enable_tracing_;
+ static bool enable_tracing_;
/// Default values.
enum
diff --git a/ACE/ace/UNIX_Addr.cpp b/ACE/ace/UNIX_Addr.cpp
index 8dd3c52a36c..2a4d1525839 100644
--- a/ACE/ace/UNIX_Addr.cpp
+++ b/ACE/ace/UNIX_Addr.cpp
@@ -2,7 +2,7 @@
#include "ace/UNIX_Addr.h"
-ACE_RCSID(ace, UNIX_Addr, "$Id$")
+
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
diff --git a/ACE/ace/UPIPE_Acceptor.cpp b/ACE/ace/UPIPE_Acceptor.cpp
index f3d17b8dd2b..ff98bfb87ea 100644
--- a/ACE/ace/UPIPE_Acceptor.cpp
+++ b/ACE/ace/UPIPE_Acceptor.cpp
@@ -2,7 +2,7 @@
#include "ace/UPIPE_Acceptor.h"
-ACE_RCSID(ace, UPIPE_Acceptor, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/ace/UPIPE_Connector.cpp b/ACE/ace/UPIPE_Connector.cpp
index 2af0ab5ee16..8119b545a4a 100644
--- a/ACE/ace/UPIPE_Connector.cpp
+++ b/ACE/ace/UPIPE_Connector.cpp
@@ -2,7 +2,7 @@
#include "ace/UPIPE_Connector.h"
-ACE_RCSID(ace, UPIPE_Connector, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/ace/UPIPE_Stream.cpp b/ACE/ace/UPIPE_Stream.cpp
index fa9d389d6ba..a4330d555c3 100644
--- a/ACE/ace/UPIPE_Stream.cpp
+++ b/ACE/ace/UPIPE_Stream.cpp
@@ -2,7 +2,7 @@
#include "ace/UPIPE_Stream.h"
-ACE_RCSID(ace, UPIPE_Stream, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -215,7 +215,7 @@ ACE_UPIPE_Stream::recv_n (char *buf,
len = this->recv (buf + bytes_read,
n - bytes_read,
timeout);
-
+
if (len == -1)
{
return -1;
diff --git a/ACE/ace/UUID.cpp b/ACE/ace/UUID.cpp
index d43bbc8139c..d9f537d7088 100644
--- a/ACE/ace/UUID.cpp
+++ b/ACE/ace/UUID.cpp
@@ -15,194 +15,114 @@
#include "ace/OS_NS_unistd.h"
#include "ace/ACE.h"
-ACE_RCSID (ace,
- UUID,
- "$Id$")
-
-
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_;
- }
-
- const UUID_Node::Node_ID &
- UUID_Node::node_ID (void) const
- {
- return node_ID_;
- }
-
- void
- UUID_Node::node_ID (Node_ID& node_ID)
- {
- for (int i = 0; i < UUID_Node::NODE_ID_SIZE; ++i)
- node_ID_[i] = node_ID[i];
- }
+ // NIL version of the UUID
+ const UUID UUID::NIL_UUID;
- const UUID_Node &
- UUID_Node::operator = (const UUID_Node & 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;
-
- /// 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)
- {
-
- }
-
- /// 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->init ();
this->from_string_i (uuid_string);
}
- 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_)
- {
-
- }
-
- UUID::~UUID (void)
- {
-
- }
-
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);
+ // 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 ();
+ }
+
+ // 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_;
}
+
return *this;
}
- const ACE_CString*
- UUID::to_string (void) const
+ const ACE_CString * UUID::to_string (void) const
{
- /// Only compute the string representation once.
- if (this->as_string_.get () == 0)
- {
- // 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;
+ // Compute the string representation only once.
+ if (0 != this->as_string_.get ())
+ return this->as_string_.get ();
- 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]
- );
- }
+ // 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;
+
+ if (36 == UUID_STRING_LENGTH)
+ {
+ ACE_NEW_RETURN (buf,
+ char[UUID_STRING_LENGTH + 1],
+ 0);
- // Save the string.
- ACE_CString * as_string = 0;
+ // Let the auto array pointer manage the buffer.
+ auto_clean.reset (buf);
- ACE_NEW_RETURN (as_string,
- ACE_CString (buf, UUID_STRING_LENGTH),
+ 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]);
+ }
+ else
+ {
+ UUID_STRING_LENGTH += 2; //for '-'
+ ACE_NEW_RETURN (buf,
+ char[UUID_STRING_LENGTH + 1],
0);
- this->as_string_.reset (as_string);
+ // 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->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 ());
}
+ // Save the string.
+ ACE_CString * as_string = 0;
+
+ 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 +235,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 +255,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 +267,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 +288,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 +306,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);
+ int const 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 +335,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 +369,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)
{
@@ -469,7 +388,7 @@ namespace ACE_Utils
UUID*
UUID_Generator::generate_UUID (ACE_UINT16 version, u_char variant)
{
- UUID* uuid;
+ UUID* uuid = 0;
ACE_NEW_RETURN (uuid,
UUID,
0);
@@ -555,7 +474,7 @@ namespace ACE_Utils
now.to_usec (time);
time = time * 10;
timestamp = time + timeOffset;
-}
+ }
ACE_SYNCH_MUTEX*
UUID_Generator::lock (void)
@@ -564,8 +483,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 +491,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..f357ab8a70e 100644
--- a/ACE/ace/UUID.h
+++ b/ACE/ace/UUID.h
@@ -21,6 +21,7 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "ace/Auto_Ptr.h"
#include "ace/SString.h"
#include "ace/Singleton.h"
#include "ace/Synch_Traits.h"
@@ -29,7 +30,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 +44,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 +64,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 +84,8 @@ namespace ACE_Utils
class ACE_Export UUID
{
public:
+ /// The size of a binary UUID.
+ enum { BINARY_SIZE = 16 };
/// Constructor
UUID (void);
@@ -117,10 +113,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 +130,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 +155,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 +196,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 +224,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 +251,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/Unbounded_Set.h b/ACE/ace/Unbounded_Set.h
index 70a9f63e3f7..9a235126c08 100644
--- a/ACE/ace/Unbounded_Set.h
+++ b/ACE/ace/Unbounded_Set.h
@@ -50,7 +50,7 @@ public:
// = Initialization method.
ACE_Unbounded_Set_Iterator (ACE_Unbounded_Set<T> &s, bool end = false);
-
+
ACE_Unbounded_Set_Iterator (const base_type &s);
};
@@ -63,13 +63,13 @@ class ACE_Unbounded_Set_Const_Iterator : public
ACE_Unbounded_Set_Ex_Const_Iterator<T, ACE_Unbounded_Set_Default_Comparator<T> >
{
public:
-
+
typedef ACE_Unbounded_Set_Ex_Const_Iterator<T, ACE_Unbounded_Set_Default_Comparator<T> > base_type;
-
+
// = Initialization method.
ACE_Unbounded_Set_Const_Iterator (const ACE_Unbounded_Set<T> &s,
bool end = false);
-
+
ACE_Unbounded_Set_Const_Iterator (const base_type &s);
};
diff --git a/ACE/ace/Unbounded_Set.inl b/ACE/ace/Unbounded_Set.inl
index 0f2847e9cc3..a7266f2802d 100644
--- a/ACE/ace/Unbounded_Set.inl
+++ b/ACE/ace/Unbounded_Set.inl
@@ -13,7 +13,7 @@ ACE_Unbounded_Set_Default_Comparator<T>::operator () (const T &lhs, const T &rh
}
template<typename T>
-ACE_Unbounded_Set_Iterator<T>::ACE_Unbounded_Set_Iterator (ACE_Unbounded_Set<T> &s,
+ACE_Unbounded_Set_Iterator<T>::ACE_Unbounded_Set_Iterator (ACE_Unbounded_Set<T> &s,
bool end)
: base_type (s, end)
{
diff --git a/ACE/ace/Unbounded_Set_Ex.cpp b/ACE/ace/Unbounded_Set_Ex.cpp
index 10d035543b6..f890c243fb2 100644
--- a/ACE/ace/Unbounded_Set_Ex.cpp
+++ b/ACE/ace/Unbounded_Set_Ex.cpp
@@ -76,7 +76,7 @@ ACE_Unbounded_Set_Ex<T, C>::dump (void) const
const_iterator const the_end = this->end ();
for (const_iterator i (this->begin ());
- i != end;
+ i != the_end;
++i)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("count = %u\n"), count++));
diff --git a/ACE/ace/Unbounded_Set_Ex.h b/ACE/ace/Unbounded_Set_Ex.h
index 31f92e3009d..acf54ebd426 100644
--- a/ACE/ace/Unbounded_Set_Ex.h
+++ b/ACE/ace/Unbounded_Set_Ex.h
@@ -16,6 +16,7 @@
#include "ace/Node.h"
#include "ace/os_include/os_stddef.h"
+#include <iterator>
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -43,6 +44,16 @@ template <class T, class C>
class ACE_Unbounded_Set_Ex_Iterator
{
public:
+ /// Type definition of the container type.
+ typedef ACE_Unbounded_Set_Ex<T, C> container_type;
+
+ // = std::iterator_traits typedefs/traits.
+ typedef std::forward_iterator_tag iterator_category;
+ typedef typename container_type::value_type value_type;
+ typedef typename container_type::reference reference;
+ typedef typename container_type::pointer pointer;
+ typedef typename container_type::difference_type difference_type;
+
// = Initialization method.
ACE_Unbounded_Set_Ex_Iterator (ACE_Unbounded_Set_Ex<T, C> &s, bool end = false);
@@ -102,6 +113,15 @@ template <class T, class C>
class ACE_Unbounded_Set_Ex_Const_Iterator
{
public:
+ typedef ACE_Unbounded_Set_Ex<T, C> container_type;
+
+ // = std::iterator_traits typedefs/traits.
+ typedef std::forward_iterator_tag iterator_category;
+ typedef typename container_type::const_value_type value_type;
+ typedef typename container_type::const_reference reference;
+ typedef typename container_type::const_pointer pointer;
+ typedef typename container_type::difference_type difference_type;
+
// = Initialization method.
ACE_Unbounded_Set_Ex_Const_Iterator (const ACE_Unbounded_Set_Ex<T, C> &s,
bool end = false);
@@ -206,6 +226,15 @@ public:
typedef C COMP;
typedef ACE_Node<T, C> NODE;
+ // = STL typedefs/traits.
+ typedef T value_type;
+ typedef T const const_value_type;
+ typedef value_type & reference;
+ typedef const_value_type & const_reference;
+ typedef value_type * pointer;
+ typedef const_value_type * const_pointer;
+ typedef ptrdiff_t difference_type;
+
// = Initialization and termination methods.
/// Constructor. Use user specified allocation strategy
/// if specified.
diff --git a/ACE/ace/Value_Ptr.h b/ACE/ace/Value_Ptr.h
index 70570f9c34b..fc7fbf916c8 100644
--- a/ACE/ace/Value_Ptr.h
+++ b/ACE/ace/Value_Ptr.h
@@ -103,11 +103,6 @@ namespace ACE
return *this;
}
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
-
- // Compiler can't handle member templates so we lose converting
- // copy operations.
-
/// Converting copy constructor.
template <typename U>
Value_Ptr (Value_Ptr<U> const & other)
@@ -123,12 +118,8 @@ namespace ACE
return *this;
}
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
-
private:
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
-
/// Copying method invoked when copy constructing.
template <typename U>
T * create_from (U const * p) const
@@ -136,24 +127,8 @@ namespace ACE
return p ? VP_traits<U>::clone (p) : 0;
}
-#else
-
- // Compiler can't handle member templates so we lose converting
- // copy operations.
-
- /// Copying method invoked when copy constructing.
- T * create_from (T const * p) const
- {
- return p ? VP_traits<T>::clone (p) : 0;
- }
-
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
-
private:
-
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
template <typename U> friend class Value_Ptr;
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
/// Object owned by this @c Value_Ptr.
T * p_;
diff --git a/ACE/ace/Vector_T.cpp b/ACE/ace/Vector_T.cpp
index d66abd411ac..0dcf63f7ea7 100644
--- a/ACE/ace/Vector_T.cpp
+++ b/ACE/ace/Vector_T.cpp
@@ -40,7 +40,7 @@ void ACE_Vector<T, DEFAULT_SIZE>::push_back (const T& elem)
}
else
ACE_Array<T>::size (length_ + 1);
-
+
++length_;
(*this)[length_-1] = elem;
}
@@ -48,14 +48,6 @@ void ACE_Vector<T, DEFAULT_SIZE>::push_back (const T& elem)
template <class T, size_t DEFAULT_SIZE>
void ACE_Vector<T, DEFAULT_SIZE>::dump (void) const
{
-#if defined (ACE_HAS_DUMP)
-#if 0
- // Can't do this unless the vector is an object with a dump
- // function.
- for (size_t i = 0; i < this->size (); ++i)
- (*this)[i].dump ();
-#endif /* 0 */
-#endif /* ACE_HAS_DUMP */
}
// Compare this vector with <s> for equality.
@@ -75,61 +67,6 @@ ACE_Vector<T, DEFAULT_SIZE>::operator== (const ACE_Vector<T, DEFAULT_SIZE> &s) c
return true;
}
-#if 0
-template<class T>
-int compare(const ACE_Vector<T>& v1,
- const ACE_Vector<T>& v2,
- const size_t from_ndx,
- const size_t to_ndx)
-{
- size_t last1 = v1.size () - 1;
- size_t last2 = v2.size () - 1;
- if (last1 < from_ndx || last1 < to_ndx)
- return false;
- if (last2 < from_ndx || last2 < to_ndx)
- return false;
- if (last1 != last2)
- return false;
-
- // cout<<"compare() <================="<<endl;
- for (size_t i = from_ndx; i <= to_ndx; ++i)
- // cout<<"V1["<<i<<"]="<<v1[i];
- // cout<<", V2["<<i<<"]="<<v2[i];
- // cout<<": NOT EQUAL == "<<(v1[i]!=v2[i])<<endl;
- if (v1[i] != v2[i])
- return false;
-
- // cout<<"compare() ====================>"<<endl;
- return true;
-}
-
-template<class T>
-int partial_compare(const ACE_Vector<T>& v1,
- const ACE_Vector<T>& v2,
- const size_t from_ndx,
- const size_t to_ndx)
-{
- size_t last1 = v1.size () - 1;
- size_t last2 = v2.size () - 1;
-
- if (last1 < from_ndx || last1 < to_ndx)
- return false;
- if (last2 < from_ndx || last2 < to_ndx)
- return false;
-
- // cout<<"partial_compare() <================="<<endl;
- for (size_t i = from_ndx; i <= to_ndx; ++i)
- // cout<<"V1["<<i<<"]="<<v1[i];
- // cout<<", V2["<<i<<"]="<<v2[i];
- // cout<<": NOT EQUAL == "<<(v1[i]!=v2[i])<<endl;
- if (v1[i] != v2[i])
- return false;
-
- // cout<<"partial_compare() ====================>"<<endl;
- return true;
-}
-#endif
-
// ****************************************************************
template <class T, size_t DEFAULT_SIZE> int
diff --git a/ACE/ace/Vector_T.h b/ACE/ace/Vector_T.h
index 0327c07beff..9d397fef79e 100644
--- a/ACE/ace/Vector_T.h
+++ b/ACE/ace/Vector_T.h
@@ -16,7 +16,7 @@
#include /**/ "ace/pre.h"
-#include "ace/Array.h"
+#include "ace/Containers_T.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -202,58 +202,6 @@ protected:
friend class ACE_Vector_Iterator<T, DEFAULT_SIZE>;
};
-#if 0
-/*
- * Not sure about including these functions, if for no other reason,
- * because they polute the global namespace!
- */
-
-/**
- * Compare two vectors in the range of [from_ndx..to_ndx]. This
- * template function requires class T to have the bool operator!=()
- * declared in the class. It is safe to define vectors of scalar data
- * types, like int, double, etc., including class ACE_TString.
- *
- * @param v1 The first vector (out of the two) to be compared.
- * @param v2 The Second vector (out of the two) to be compared.
- * @param from_ndx Compare vector v1 and v2, starting with the
- * "from_ndx" index .
- * @param to_ndx Compare vector v1 and v2, from "from_ndx" to
- * "to_ndx".
- * @return Returns true if v1==v2 in the specified index range,
- * returns false otherwise. Also, returns false in case if
- * v1's size is not equal to v2's size.
- */
-template<class T>
-int compare (const ACE_Vector<T>& v1,
- const ACE_Vector<T>& v2,
- const size_t from_ndx,
- const size_t to_ndx);
-
-/**
- * Does a partial comparison of two vectors in the range of
- * [from_ndx..to_ndx]. The only difference between this function and
- * the template compare&lt;T&gt; function is that this function does
- * not require v1 and v2 to be of equal size.
- *
- * @param v1 The first vector (out of the two) to be compared.
- * @param v2 The Second vector (out of the two) to be compared.
- * @param from_ndx Compare vector v1 and v2, starting with the
- * "from_ndx" index .
- * @param to_ndx Compare vector v1 and v2, from "from_ndx" to
- * "to_ndx".
- * @return Returns true if vector v1 and v2 are equal in the specified
- * index range.
- */
-
-template<class T>
-int partial_compare (const ACE_Vector<T>& v1,
- const ACE_Vector<T>& v2,
- const size_t from_ndx,
- const size_t to_ndx);
-#endif /* 0 */
-// ****************************************************************
-
/**
* @class ACE_Vector_Iterator
*
diff --git a/ACE/ace/Version.h b/ACE/ace/Version.h
index a07457704b8..962f27680ed 100644
--- a/ACE/ace/Version.h
+++ b/ACE/ace/Version.h
@@ -1,9 +1,9 @@
// -*- C++ -*-
// $Id$
-// This is file was automatically generated by \$ACE_ROOT/bin/make_release.
+// This is file was automatically generated by \$ACE_ROOT/bin/make_release.py
-#define ACE_MAJOR_VERSION 5
-#define ACE_MINOR_VERSION 6
-#define ACE_BETA_VERSION 9
-#define ACE_VERSION "5.6.9"
+#define ACE_MAJOR_VERSION 6
+#define ACE_MINOR_VERSION 0
+#define ACE_BETA_VERSION 3
+#define ACE_VERSION "6.0.3"
diff --git a/ACE/ace/WFMO_Reactor.cpp b/ACE/ace/WFMO_Reactor.cpp
index d498cc77da8..dc31128812b 100644
--- a/ACE/ace/WFMO_Reactor.cpp
+++ b/ACE/ace/WFMO_Reactor.cpp
@@ -14,7 +14,7 @@
#include "ace/WFMO_Reactor.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(ace, WFMO_Reactor, "$Id$")
+
#include "ace/Auto_Ptr.h"
@@ -1683,7 +1683,10 @@ ACE_WFMO_Reactor::event_handling (ACE_Time_Value *max_wait_time,
// Make sure we are not closed
if (!this->open_for_business_ || this->deactivated_)
- return -1;
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
// Stash the current time -- the destructor of this object will
// automatically compute how much time elapsed since this method was
@@ -1756,6 +1759,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)
{
@@ -1951,7 +1955,6 @@ ACE_WFMO_Reactor::dispatch_handles (DWORD wait_status)
{
const bool ok = (
#if ! defined(__BORLANDC__) \
- && !defined (ghs) \
&& !defined (__MINGW32__) \
&& !defined (_MSC_VER)
// wait_status is unsigned in Borland, Green Hills,
diff --git a/ACE/ace/WFMO_Reactor.h b/ACE/ace/WFMO_Reactor.h
index 28ab036282a..d1eb7d99430 100644
--- a/ACE/ace/WFMO_Reactor.h
+++ b/ACE/ace/WFMO_Reactor.h
@@ -112,7 +112,7 @@ public:
* @class Common_Info
*
* @brief This struct contains the necessary information for every
- * <Event_Handler> entry. The reason the event is not in this
+ * Event_Handler entry. The reason the event is not in this
* structure is because we need to pass an event array into
* WaitForMultipleObjects and therefore keeping the events
* seperate makes sense.
@@ -124,25 +124,25 @@ public:
/// event
bool io_entry_;
- /// The assosiated <Event_Handler>
+ /// The assosiated Event_Handler
ACE_Event_Handler *event_handler_;
- /// The I/O handle related to the <Event_Handler>. This entry is
- /// only valid if the <io_entry_> flag is true.
+ /// The I/O handle related to the Event_Handler. This entry is
+ /// only valid if the io_entry_ flag is true.
ACE_HANDLE io_handle_;
/**
- * This is the set of events that the <Event_Handler> is
- * interested in. This entry is only valid if the <io_entry_> flag
+ * This is the set of events that the Event_Handler is
+ * interested in. This entry is only valid if the io_entry_ flag
* is true.
*/
long network_events_;
/**
- * This flag indicates that <WFMO_Reactor> created the event on
+ * This flag indicates that WFMO_Reactor created the event on
* behalf of the user. Therefore we need to clean this up when the
- * <Event_Handler> removes itself from <WFMO_Reactor>. This entry
- * is only valid if the <io_entry_> flag is true.
+ * Event_Handler removes itself from WFMO_Reactor. This entry
+ * is only valid if the io_entry_ flag is true.
*/
bool delete_event_;
@@ -150,8 +150,8 @@ public:
bool delete_entry_;
/**
- * These are the masks related to <handle_close> for the
- * <Event_Handler>. This is only valid when <delete_entry_> is
+ * These are the masks related to handle_close() for the
+ * Event_Handler. This is only valid when delete_entry_ is
* set.
*/
ACE_Reactor_Mask close_masks_;
@@ -302,7 +302,7 @@ public:
/// Destructor.
virtual ~ACE_WFMO_Reactor_Handler_Repository (void);
- /// Initialize the repository of the approriate @a size.
+ /// Initialize the repository of the appropriate @a size.
int open (size_t size);
/// Close down the handler repository.
@@ -314,7 +314,7 @@ public:
/// the simple event entry.
int bind (ACE_HANDLE, ACE_Event_Handler *);
- /// Insert I/O <Event_Handler> entry into the system. This method
+ /// Insert I/O Event_Handler entry into the system. This method
/// assumes that the lock are head *before* this method is invoked.
int bind_i (bool io_entry,
ACE_Event_Handler *event_handler,
@@ -363,7 +363,7 @@ public:
/**
* This method is used to calculate the network mask after a mask_op
- * request to <WFMO_Reactor>. Note that because the <Event_Handler>
+ * request to <WFMO_Reactor>. Note that because the Event_Handler
* may already be in the handler repository, we may have to find the
* old event and the old network events
*/
@@ -561,7 +561,7 @@ public:
/**
* Get the maximum number of times that the
- * <ACE_WFMO_Reactor_Notify::handle_input> method will iterate and
+ * ACE_WFMO_Reactor_Notify::handle_input() method will iterate and
* dispatch the ACE_Event_Handlers that are passed in via the
* notify queue before breaking out of its
* <ACE_Message_Queue::dequeue> loop.
@@ -592,7 +592,7 @@ private:
*/
virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
- /// An auto event is used so that we can <signal> it to wakeup one
+ /// An auto event is used so that we can signal() it to wakeup one
/// thread up (e.g., when the <notify> method is called).
ACE_Auto_Event wakeup_one_thread_;
@@ -808,7 +808,7 @@ public:
* <ACE_INVALID_HANDLE>, WFMO_Reactor will create an event for
* associating it with the I/O handle. When the <event_handle> is
* signalled, the appropriate <handle_*> callback will be invoked on
- * the <Event_Handler>
+ * the Event_Handler
*/
virtual int register_handler (ACE_HANDLE event_handle,
ACE_HANDLE io_handle,
@@ -827,7 +827,7 @@ public:
/**
* This is a simple version of the above <register_handler> method
* where the I/O handle will always come from <get_handle> on the
- * <Event_Handler> and the event handle will always be created by
+ * Event_Handler and the event handle will always be created by
* <WFMO_Reactor>
*/
virtual int register_handler (ACE_Event_Handler *event_handler,
@@ -874,10 +874,10 @@ public:
* either be the <event_handle> or the <io_handle>
*
* For the case of I/O entries, this removes the @a mask binding of
- * <Event_Handler> whose handle is @a handle from <WFMO_Reactor>. If
+ * Event_Handler whose handle is @a handle from <WFMO_Reactor>. If
* there are no more bindings for this <event_handler> then it is
* removed from the WFMO_Reactor. For simple event entries, mask is
- * mostly ignored and the <Event_Handler> is always removed from
+ * mostly ignored and the Event_Handler is always removed from
* <WFMO_Reactor>
*/
virtual int remove_handler (ACE_HANDLE handle,
@@ -885,7 +885,7 @@ public:
/**
* Removes all the @a mask bindings for handles in the @a handle_set
- * bind of <Event_Handler>. If there are no more bindings for any
+ * bind of Event_Handler. If there are no more bindings for any
* of these handles then they are removed from WFMO_Reactor.
*/
virtual int remove_handler (const ACE_Handle_Set &handle_set,
@@ -903,13 +903,13 @@ public:
ACE_Sig_Action *old_disp = 0,
int sigkey = -1);
- /// Calls <remove_handler> for every signal in @a sigset.
+ /// Calls remove_handler() for every signal in @a sigset.
virtual int remove_handler (const ACE_Sig_Set &sigset);
// = Suspend and resume Handlers.
/// Suspend @a event_handler temporarily. Use
- /// <ACE_Event_Handler::get_handle> to get the handle.
+ /// ACE_Event_Handler::get_handle() to get the handle.
virtual int suspend_handler (ACE_Event_Handler *event_handler);
/// Suspend @a handle temporarily.
@@ -918,7 +918,7 @@ public:
/// Suspend all @a handles in handle set temporarily.
virtual int suspend_handler (const ACE_Handle_Set &handles);
- /// Suspend all <handles> temporarily.
+ /// Suspend all handles temporarily.
virtual int suspend_handlers (void);
/// Resume @a event_handler. Use <ACE_Event_Handler::get_handle> to
@@ -975,7 +975,7 @@ public:
/**
* Resets the interval of the timer represented by @a timer_id to
* @a interval, which is specified in relative time to the current
- * <gettimeofday>. If @a interval is equal to
+ * gettimeofday(). If @a interval is equal to
* ACE_Time_Value::zero, the timer will become a non-rescheduling
* timer. Returns 0 if successful, -1 if not.
*/
@@ -1019,15 +1019,15 @@ public:
ACE_Reactor_Mask masks_to_be_added);
/**
- * Remove <masks_to_be_deleted> to the <handle>'s entry in
- * WFMO_Reactor. The Event_Handler associated with <handle> must
+ * Remove @a masks_to_be_deleted to the <handle>'s entry in
+ * WFMO_Reactor. The Event_Handler associated with @a event_handler must
* already have been registered with WFMO_Reactor.
*/
virtual int cancel_wakeup (ACE_Event_Handler *event_handler,
ACE_Reactor_Mask masks_to_be_deleted);
/**
- * Remove <masks_to_be_deleted> to the <handle>'s entry in
+ * Remove @a masks_to_be_deleted to the <handle>'s entry in
* WFMO_Reactor. The Event_Handler associated with <handle> must
* already have been registered with WFMO_Reactor.
*/
diff --git a/ACE/ace/WIN32_Asynch_IO.cpp b/ACE/ace/WIN32_Asynch_IO.cpp
index 21ccc7a85cd..047974f962f 100644
--- a/ACE/ace/WIN32_Asynch_IO.cpp
+++ b/ACE/ace/WIN32_Asynch_IO.cpp
@@ -2,10 +2,6 @@
#include "ace/WIN32_Asynch_IO.h"
-ACE_RCSID (ace,
- Win32_Asynch_IO,
- "$Id$")
-
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) && \
(defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 == 1))
@@ -847,11 +843,13 @@ ACE_WIN32_Asynch_Write_Stream::write (ACE_Message_Block &message_block,
-1);
// Shared write
- int return_val = this->shared_write (result);
+ int const return_val = this->shared_write (result);
// Upon errors
if (return_val == -1)
- delete result;
+ {
+ delete result;
+ }
return return_val;
}
@@ -1024,8 +1022,10 @@ ACE_WIN32_Asynch_Write_Stream::shared_write (ACE_WIN32_Asynch_Write_Stream_Resul
result,
0);
if (initiate_result == 0)
- // Immediate success: the OVERLAPPED will still get queued.
- return 0;
+ {
+ // Immediate success: the OVERLAPPED will still get queued.
+ return 0;
+ }
#else
initiate_result = ::WriteFile (result->handle (),
result->message_block ().rd_ptr (),
@@ -3644,7 +3644,9 @@ ACE_WIN32_Asynch_Write_Dgram::send (ACE_Message_Block *message_block,
do
{
- if (msg_len >= 0 && iovcnt < ACE_IOV_MAX)
+ //if (msg_len >= 0 && iovcnt < ACE_IOV_MAX)
+ // msg_len >= 0 is always true since msg_len is unsigned
+ if (iovcnt < ACE_IOV_MAX)
{
u_long this_chunk_length;
if (msg_len > ULONG_MAX)
diff --git a/ACE/ace/WIN32_Asynch_IO.h b/ACE/ace/WIN32_Asynch_IO.h
index cd3dc63a213..502fb129095 100644
--- a/ACE/ace/WIN32_Asynch_IO.h
+++ b/ACE/ace/WIN32_Asynch_IO.h
@@ -111,10 +111,10 @@ public:
/// Destructor.
virtual ~ACE_WIN32_Asynch_Result (void);
- /// Simulate error value to use in the post_completion ()
+ /// Simulate error value to use in the post_completion()
void set_error (u_long errcode);
- /// Simulate value to use in the post_completion ()
+ /// Simulate value to use in the post_completion()
void set_bytes_transferred (size_t nbytes);
protected:
@@ -158,8 +158,8 @@ class ACE_Export ACE_WIN32_Asynch_Operation : public virtual ACE_Asynch_Operatio
public:
/**
* Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the @a handler to get the
+ * each asynchronous call. If (@a handle == ACE_INVALID_HANDLE),
+ * ACE_Handler::handle() will be called on the @a handler to get the
* correct handle.
*/
int open (const ACE_Handler::Proxy_Ptr &handler_proxy,
@@ -310,7 +310,7 @@ protected:
* @brief This class is a factory for starting off asynchronous reads
* on a stream.
*
- * Once <open> is called, multiple asynchronous <read>s can
+ * Once open() is called, multiple asynchronous read()s can
* started using this class. An ACE_Asynch_Read_Stream::Result
* will be passed back to the @a handler when the asynchronous
* reads completes through the <ACE_Handler::handle_read_stream>
@@ -351,8 +351,8 @@ public:
/**
* Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the @a handler to get the
+ * each asynchronous call. If (@a handle == ACE_INVALID_HANDLE),
+ * ACE_Handler::handle() will be called on the @a handler to get the
* correct handle.
*/
int open (const ACE_Handler::Proxy_Ptr &handler_proxy,
@@ -489,11 +489,11 @@ protected:
* on a stream.
*
*
- * Once <open> is called, multiple asynchronous <writes>s can
+ * Once open() is called, multiple asynchronous <writes>s can
* started using this class. A ACE_Asynch_Write_Stream::Result
* will be passed back to the @a handler when the asynchronous
* write completes through the
- * <ACE_Handler::handle_write_stream> callback.
+ * ACE_Handler::handle_write_stream() callback.
*/
class ACE_Export ACE_WIN32_Asynch_Write_Stream : public virtual ACE_Asynch_Write_Stream_Impl,
public ACE_WIN32_Asynch_Operation
@@ -530,8 +530,8 @@ public:
/**
* Initializes the factory with information which will be used with
- * each asynchronous call. If (<handle> == ACE_INVALID_HANDLE),
- * <ACE_Handler::handle> will be called on the @a handler to get the
+ * each asynchronous call. If (@a handle == ACE_INVALID_HANDLE),
+ * ACE_Handler::handle() will be called on the @a handler to get the
* correct handle.
*/
int open (const ACE_Handler::Proxy_Ptr &handler_proxy,
diff --git a/ACE/ace/WIN32_Proactor.cpp b/ACE/ace/WIN32_Proactor.cpp
index 18064da3272..bbbf6835319 100644
--- a/ACE/ace/WIN32_Proactor.cpp
+++ b/ACE/ace/WIN32_Proactor.cpp
@@ -1,6 +1,6 @@
// $Id$
-// ACE_RCSID(ace, Proactor, "$Id$")
+//
#include "ace/WIN32_Proactor.h"
diff --git a/ACE/ace/XTI_ATM_Mcast.cpp b/ACE/ace/XTI_ATM_Mcast.cpp
index 854e2a36489..dd7dde50228 100644
--- a/ACE/ace/XTI_ATM_Mcast.cpp
+++ b/ACE/ace/XTI_ATM_Mcast.cpp
@@ -2,7 +2,7 @@
#include "ace/XTI_ATM_Mcast.h"
-ACE_RCSID(ace, XTI_ATM_Mcast, "$Id$")
+
#if defined (ACE_HAS_XTI_ATM)
diff --git a/ACE/ace/XtReactor/XtReactor.cpp b/ACE/ace/XtReactor/XtReactor.cpp
index 8159b24bf4d..07b90eeb92e 100644
--- a/ACE/ace/XtReactor/XtReactor.cpp
+++ b/ACE/ace/XtReactor/XtReactor.cpp
@@ -5,8 +5,6 @@
#include "ace/SOCK_Acceptor.h"
#include "ace/SOCK_Connector.h"
-ACE_RCSID(ace, XtReactor, "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE (ACE_XtReactor)
@@ -203,74 +201,18 @@ ACE_XtReactor::register_handler_i (ACE_HANDLE handle,
// Make sure we have a valid context
ACE_ASSERT (this->context_ != 0);
+#if defined ACE_WIN32
+ // Let's handle this special case before we do any real work.
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
+ ACE_NOTSUP_RETURN(-1);
+#endif /* ACE_WIN32 */
+
int result = ACE_Select_Reactor::register_handler_i (handle,
handler, mask);
if (result == -1)
return -1;
- int condition = 0;
-
-#if !defined ACE_WIN32
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
- ACE_SET_BITS (condition, XtInputReadMask);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
- ACE_SET_BITS (condition, XtInputWriteMask);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
- ACE_SET_BITS (condition, XtInputExceptMask);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
- ACE_SET_BITS (condition, XtInputReadMask);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)){
- ACE_SET_BITS (condition, XtInputWriteMask); // connected, you may write
- ACE_SET_BITS (condition, XtInputReadMask); // connected, you have data/err
- }
-#else
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
- ACE_SET_BITS (condition, XtInputReadWinsock);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
- ACE_SET_BITS (condition, XtInputWriteWinsock);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
- ACE_NOTSUP_RETURN(-1);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
- ACE_SET_BITS (condition, XtInputReadWinsock);
- if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)){
- ACE_SET_BITS (condition, XtInputWriteWinsock); // connected, you may write
- ACE_SET_BITS (condition, XtInputReadWinsock); // connected, you have data/err
- }
-#endif /* !ACE_WIN32 */
-
- if (condition != 0)
- {
- ACE_XtReactorID *XtID = this->ids_;
-
- while(XtID)
- {
- if (XtID->handle_ == handle)
- {
- ::XtRemoveInput (XtID->id_);
-
- XtID->id_ = ::XtAppAddInput (this->context_,
- (int) handle,
- (XtPointer) condition,
- InputCallbackProc,
- (XtPointer) this);
- return 0;
- }
- else
- XtID = XtID->next_;
- }
-
- ACE_NEW_RETURN (XtID,
- ACE_XtReactorID,
- -1);
- XtID->next_ = this->ids_;
- XtID->handle_ = handle;
- XtID->id_ = ::XtAppAddInput (this->context_,
- (int) handle,
- (XtPointer) condition,
- InputCallbackProc,
- (XtPointer) this);
- this->ids_ = XtID;
- }
+ synchronize_XtInput (handle);
return 0;
}
@@ -290,61 +232,137 @@ ACE_XtReactor::remove_handler_i (ACE_HANDLE handle,
{
ACE_TRACE ("ACE_XtReactor::remove_handler_i");
- // In the registration phase we registered first with
- // ACE_Select_Reactor and then with X. Now we are now doing things
- // in reverse order.
+ int result = ACE_Select_Reactor::remove_handler_i (handle,
+ mask);
+ if (result == -1)
+ return -1;
- // First clean up the corresponding X11Input.
- this->remove_XtInput (handle);
+ synchronize_XtInput (handle);
+ return 0;
+}
- // Now let the reactor do its work.
- return ACE_Select_Reactor::remove_handler_i (handle,
+int
+ACE_XtReactor::remove_handler_i (const ACE_Handle_Set &handles,
+ ACE_Reactor_Mask mask)
+{
+ return ACE_Select_Reactor::remove_handler_i (handles,
mask);
}
+int
+ACE_XtReactor::suspend_i (ACE_HANDLE handle)
+{
+ ACE_TRACE ("ACE_XtReactor::suspend_i");
+
+ int result = ACE_Select_Reactor::suspend_i (handle);
+
+ if (result == -1)
+ return -1;
+
+ synchronize_XtInput (handle);
+ return 0;
+}
+
+int
+ACE_XtReactor::resume_i (ACE_HANDLE handle)
+{
+ ACE_TRACE ("ACE_XtReactor::resume_i");
+
+ int result = ACE_Select_Reactor::resume_i (handle);
+
+ if (result == -1)
+ return -1;
+
+ synchronize_XtInput (handle);
+ return 0;
+}
+
void
-ACE_XtReactor::remove_XtInput (ACE_HANDLE handle)
+ACE_XtReactor::synchronize_XtInput(ACE_HANDLE handle)
{
- ACE_TRACE ("ACE_XtReactor::remove_XtInput");
+ ACE_TRACE ("ACE_XtReactor::synchronize_XtInput");
- ACE_XtReactorID *XtID = this->ids_;
+ // The idea here is to call this function after the base class has
+ // processed the register/remove/suspend/resume_handler request. The
+ // resulting mask is used to find out which XtInput mask we need.
- if (XtID)
- {
- if (XtID->handle_ == handle)
- {
- ::XtRemoveInput (XtID->id_);
- this->ids_ = XtID->next_;
- delete XtID;
- return;
- }
+ // Find existing handler in linked list.
+ ACE_XtReactorID **XtID = &(this->ids_);
+
+ while (*XtID && (*XtID)->handle_ != handle)
+ XtID = &((*XtID)->next_);
+
+ // Remove existing input handler.
+ if (*XtID)
+ ::XtRemoveInput ((*XtID)->id_);
- ACE_XtReactorID *NextID = XtID->next_;
+ int condition = compute_Xt_condition (handle);
- while (NextID)
+ if (condition == 0) // No input handler needed.
+ {
+ if (*XtID)
{
- if (NextID->handle_ == handle)
- {
- ::XtRemoveInput(NextID->id_);
- XtID->next_ = NextID->next_;
- delete NextID;
- return;
- }
- else
- {
- XtID = NextID;
- NextID = NextID->next_;
- }
+ // Remove linked list entry.
+ ACE_XtReactorID *toDelete = *XtID;
+ *XtID = (*XtID)->next_;
+ delete toDelete;
}
+ return;
+ }
+
+ if (*XtID == 0)
+ {
+ // Create new node.
+ ACE_XtReactorID *tmp = new ACE_XtReactorID;
+ tmp->next_ = this->ids_;
+ tmp->handle_ = handle;
+ this->ids_ = tmp;
+ XtID = &(this->ids_);
}
+
+ // Finally, add input handler.
+ (*XtID)->id_ = ::XtAppAddInput (this->context_,
+ (int) handle,
+ (XtPointer) condition,
+ InputCallbackProc,
+ (XtPointer) this);
}
int
-ACE_XtReactor::remove_handler_i (const ACE_Handle_Set &handles,
- ACE_Reactor_Mask mask)
+ACE_XtReactor::compute_Xt_condition(ACE_HANDLE handle)
{
- return ACE_Select_Reactor::remove_handler_i (handles,
- mask);
+ ACE_TRACE ("ACE_XtReactor::compute_Xt_condition");
+
+ // Retrieve current wait mask from base class.
+ // The returned value is either a combination of READ/WRITE/EXCEPT_MASK
+ // or -1.
+ int mask =this->bit_ops(handle,
+ 0,
+ this->wait_set_,
+ ACE_Reactor::GET_MASK);
+
+ if (mask == -1) // No active mask.
+ return 0;
+
+ int condition = 0;
+
+#if !defined ACE_WIN32
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
+ ACE_SET_BITS (condition, XtInputReadMask);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
+ ACE_SET_BITS (condition, XtInputWriteMask);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
+ ACE_SET_BITS (condition, XtInputExceptMask);
+#else
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
+ ACE_SET_BITS (condition, XtInputReadWinsock);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
+ ACE_SET_BITS (condition, XtInputWriteWinsock);
+ // EXCEPT_MASK is not supported for WIN32. As this was
+ // already handled in register_handler_i, no check here.
+#endif /* !ACE_WIN32 */
+
+ return condition;
}
// The following functions ensure that there is an Xt timeout for the
diff --git a/ACE/ace/XtReactor/XtReactor.h b/ACE/ace/XtReactor/XtReactor.h
index f3483fcd35a..ec6d7cf70e8 100644
--- a/ACE/ace/XtReactor/XtReactor.h
+++ b/ACE/ace/XtReactor/XtReactor.h
@@ -101,8 +101,17 @@ protected:
virtual int remove_handler_i (const ACE_Handle_Set &handles,
ACE_Reactor_Mask);
- /// Removes an Xt handle.
- virtual void remove_XtInput (ACE_HANDLE handle);
+ /// Suspend the <Event_Handler> associated with @a handle
+ virtual int suspend_i (ACE_HANDLE handle);
+
+ /// Resume the <Event_Handler> associated with @a handle
+ virtual int resume_i (ACE_HANDLE handle);
+
+ /// Synchronize XtInputHandler for @a handle
+ virtual void synchronize_XtInput(ACE_HANDLE handle);
+
+ /// Compute needed Xt condition by looking at base class wait set.
+ virtual int compute_Xt_condition(ACE_HANDLE handle);
/// Wait for events to occur.
virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &,
diff --git a/ACE/ace/XtReactor/ace_xtreactor.mpc b/ACE/ace/XtReactor/ace_xtreactor.mpc
new file mode 100644
index 00000000000..ebf4a84be7c
--- /dev/null
+++ b/ACE/ace/XtReactor/ace_xtreactor.mpc
@@ -0,0 +1,11 @@
+// -*- MPC -*- now wouldn't this be cool...
+// $Id$
+
+project(ACE_XtReactor) : acedefaults, install, acelib, ace_output, ace_xt {
+ sharedname = ACE_XtReactor
+ dynamicflags += ACE_XTREACTOR_BUILD_DLL
+
+ specific {
+ install_dir = ace/XtReactor
+ }
+}
diff --git a/ACE/ace/ace.mpc b/ACE/ace/ace.mpc
index 5dfcba00478..9bbca7bbc5f 100644
--- a/ACE/ace/ace.mpc
+++ b/ACE/ace/ace.mpc
@@ -4,7 +4,7 @@
project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf, uuid, filecache, versioned_namespace, pkgconfig, support_ostream {
avoids = ace_for_tao
sharedname = ACE
- dynamicflags = ACE_BUILD_DLL
+ dynamicflags += ACE_BUILD_DLL
Source_Files(ACE_COMPONENTS) {
ACE.cpp
@@ -78,7 +78,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Functor.cpp
Functor_String.cpp
Get_Opt.cpp
- gethrtime.cpp
Handle_Ops.cpp
Handle_Set.cpp
Hashable.cpp
@@ -291,6 +290,7 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Asynch_Acceptor.cpp
Asynch_Connector.cpp
Atomic_Op_T.cpp
+ Atomic_Op_GCC_T.cpp
Auto_Functor.cpp
Auto_IncDec_T.cpp
Auto_Ptr.cpp
@@ -347,7 +347,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Stream_Modules.cpp
String_Base.cpp
Svc_Handler.cpp
- Synch_T.cpp
Refcountable_T.cpp
TSS_T.cpp
Task_Ex_T.cpp
@@ -360,6 +359,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
@@ -380,7 +380,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Reverse_Lock_T.inl
TSS_T.inl
ace_wchar.inl
- OS.inl
}
Header_Files {
@@ -388,7 +387,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
recurse = 1
ACE_export.h
- Array.h
Bound_Ptr.h
CE_Screen_Output.h
Codeset_Symbols.h
@@ -396,7 +394,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Codeset_Symbols.h
Condition_T.h
Default_Constants.h
- Exception_Macros.h
Global_Macros.h
Guard_T.h
Hash_Map_Manager.h
@@ -407,8 +404,6 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Lock_Adapter_T.h
Log_Priority.h
Malloc_Base.h
- Map.h
- Method_Object.h
Metrics_Cache.h
Metrics_Cache_T.h
Memory_Pool.h
@@ -420,28 +415,21 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Null_Semaphore.h
Numeric_Limits.h
OS.h
- OS_Dirent.h
OS_Memory.h
OS_NS_macros.h
- OS_String.h
OS_Thread_Adapter.h
- Obstack.h
Object_Manager_Base.h
Obstack.h
- Pair.h
Proactor_Impl.h
Reactor_Impl.h
Reactor_Timer_Interface.h
- Refcountable.h
Refcounted_Auto_Ptr.h
Reverse_Lock_T.h
Select_Reactor.h
- Service_Templates.h
SOCK_Netlink.h
SStringfwd.h
Stack_Trace.h
Static_Object_Lock.h
- Strategies.h
String_Base_Const.h
Svc_Conf.h
Svc_Conf_Param.h
@@ -479,6 +467,38 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
}
Pkgconfig_Files {
- ACE.pc.in
+ ACE.pc.in
+ }
+
+ InstallData_Files {
+ gendir = bin
+ ../bin/MakeProjectCreator
+ ../bin/DependencyGenerator
+ ../bin/mwc.pl
+ ../bin/mpc.pl
+ ../bin/add_rel_link.sh
+ ../bin/depgen.pl
+ }
+ InstallData_Files {
+ gendir = include
+ ../include/makeinclude
+ }
+ InstallData_Files {
+ gendir = .
+ ../README
+ ../VERSION
+ ../PROBLEM-REPORT-FORM
+ ../NEWS
+ ../COPYING
+ ../AUTHORS
+ ../THANKS
+ ../docs
+ }
+
+ verbatim(gnuace, postinstall) {
+" perl -i -pe's!\\$$[{(]ACE_ROOT[})]!$(INSTALL_PREFIX)/include!g unless /^\\s*include / || /^INS/' $(DESTDIR)$(INSTALL_PREFIX)/share/ace/include/makeinclude/wrapper_macros.GNU"
+" perl -i -pe'BEGIN {$$lib = qq($(INSTALL_PREFIX)/$(INSTALL_LIB)); $$lp = qq(-value_project libpaths+=$$lib\\n); $$cl = qq(command_line =)}' -e'if ($$. == 1 && /^$$cl (.*)/ && $$1 !~ /$$lib\\b/) {chomp; print qq($$_ $$lp); $$_ = qq()}' -e'elsif ($$. == 1 && !/^$$cl/) {print qq($$cl $$lp)}' $(DESTDIR)$(INSTALL_PREFIX)/share/ace/bin/MakeProjectCreator/config/MPC.cfg"
+" perl -i -ne'print unless /^\\s*ARCH\\s*[+?:]?=/' $(DESTDIR)$(INSTALL_PREFIX)/share/ace/include/makeinclude/platform_macros.GNU"
+" echo export ACE_ROOT=$(INSTALL_PREFIX)/share/ace> $(DESTDIR)$(INSTALL_PREFIX)/share/ace/ace-devel.sh"
}
}
diff --git a/ACE/ace/ace.mwc b/ACE/ace/ace.mwc
index 284d82c8e51..0c1e23123f2 100644
--- a/ACE/ace/ace.mwc
+++ b/ACE/ace/ace.mwc
@@ -1,18 +1,6 @@
// -*- MPC -*-
-//
// $Id$
workspace {
- ace.mpc
- ace_for_tao.mpc
- ace_flreactor.mpc
- ace_foxreactor.mpc
- ace_qt3reactor.mpc
- ace_qt4reactor.mpc
- ace_tkreactor.mpc
- ace_xtreactor.mpc
- ETCL
- Monitor_Control
- QoS
- SSL
}
+
diff --git a/ACE/ace/ace_ce_dll.cfg b/ACE/ace/ace_ce_dll.cfg
deleted file mode 100644
index 80c479b3205..00000000000
--- a/ACE/ace/ace_ce_dll.cfg
+++ /dev/null
@@ -1 +0,0 @@
-WCE_CFG=WCE200; \ No newline at end of file
diff --git a/ACE/ace/ace_flreactor.mpc b/ACE/ace/ace_flreactor.mpc
deleted file mode 100644
index 435e816148a..00000000000
--- a/ACE/ace/ace_flreactor.mpc
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- MPC -*- now wouldn't this be cool...
-// $Id$
-
-project(ACE_FlReactor) : acedefaults, install, acelib, ace_output, ace_fl{
-
- sharedname = ACE_FlReactor
- dynamicflags = ACE_FLREACTOR_BUILD_DLL
-
- Source_Files {
- FlReactor
- }
-
- Header_Files {
- FlReactor
- }
-
- Inline_Files {
- FlReactor
- }
-
- Template_Files {
- FlReactor
- }
-
- Resource_Files {
- FlReactor
- }
-
- Pkgconfig_Files {
- FlReactor/ACE_FlReactor.pc.in
- }
-}
diff --git a/ACE/ace/ace_for_tao.mpc b/ACE/ace/ace_for_tao.mpc
index c4625e51f6a..d1d40a29fbe 100644
--- a/ACE/ace/ace_for_tao.mpc
+++ b/ACE/ace/ace_for_tao.mpc
@@ -15,7 +15,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
macros += ACE_LACKS_ACE_TOKEN
requires = ace_for_tao ace_svcconf
sharedname = ACE_FOR_TAO
- dynamicflags = ACE_BUILD_DLL
+ dynamicflags += ACE_BUILD_DLL
Source_Files(ACE_COMPONENTS) {
ACE.cpp
@@ -84,6 +84,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Mem_Map.cpp
Message_Block.cpp
Message_Queue.cpp
+ Message_Queue_NT.cpp
MMAP_Memory_Pool.cpp
Monitor_Admin.cpp
Monitor_Admin_Manager.cpp
@@ -141,6 +142,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Parse_Node.cpp
Pipe.cpp
Process.cpp
+ Process_Manager.cpp
Reactor.cpp
Reactor_Impl.cpp
Reactor_Notification_Strategy.cpp
@@ -190,12 +192,12 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
TSS_Adapter.cpp
// Dev_Poll_Reactor isn't available on Windows.
- conditional(automake,make,gnuace) {
+ conditional(!prop:windows) {
Dev_Poll_Reactor.cpp
}
// ACE_Token implementation uses semaphores on Windows and VxWorks.
- conditional(vc6,vc71,vc8,vc9,vc10,nmake,bmake) {
+ conditional(prop:windows) {
NT_Service.cpp // Required by ace_for_tao sponsors
Semaphore.cpp
Process_Mutex.cpp
@@ -260,7 +262,6 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Stream_Modules.cpp
String_Base.cpp
Svc_Handler.cpp
- Synch_T.cpp
TSS_T.cpp
Task_Ex_T.cpp
Task_T.cpp
@@ -271,6 +272,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
@@ -284,9 +286,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Guard_T.inl
Handle_Gobbler.inl
Lock_Adapter_T.inl
- OS.inl
OS_Memory.inl
- OS_String.inl
Refcounted_Auto_Ptr.inl
Reverse_Lock_T.inl
TSS_T.inl
@@ -297,7 +297,6 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Header_Files {
ACE_export.h
- Array.h
Based_Pointer_Repository.h
Bound_Ptr.h
CORBA_macros.h
@@ -321,14 +320,12 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Null_Mutex.h
Null_Semaphore.h
Numeric_Limits.h
- OS.h
- OS_Dirent.h
OS_Memory.h
OS_NS_macros.h
- OS_String.h
OS_Thread_Adapter.h
Object_Manager_Base.h
- Pair.h
+ Process.h
+ Process_Manager.h
Reactor_Impl.h
Reactor_Timer_Interface.h
Refcounted_Auto_Ptr.h
@@ -336,7 +333,6 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Select_Reactor.h
SStringfwd.h
Static_Object_Lock.h
- Strategies.h
String_Base_Const.h
Svc_Conf.h
Svc_Conf_Tokens.h
@@ -356,8 +352,6 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
config-minimal.h
config-win32-borland.h
config-win32-common.h
- config-win32-ghs.h
- config-win32-msvc-6.h
config-win32-msvc-7.h
config-win32-msvc.h
config-win32.h
diff --git a/ACE/ace/ace_foxreactor.mpc b/ACE/ace/ace_foxreactor.mpc
deleted file mode 100644
index ac11c3b70ad..00000000000
--- a/ACE/ace/ace_foxreactor.mpc
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- MPC -*- now wouldn't this be cool...
-// $Id$
-
-project(ACE_FoxReactor) : acedefaults, install, acelib, ace_output, ace_fox {
-
- sharedname = ACE_FoxReactor
- dynamicflags = ACE_FOXREACTOR_BUILD_DLL
-
- Source_Files {
- FoxReactor
- }
-
- Header_Files {
- FoxReactor
- }
-
- Inline_Files {
- FoxReactor
- }
-
- Template_Files {
- FoxReactor
- }
-
- Resource_Files {
- FoxReactor
- }
-
- Pkgconfig_Files {
- FoxReactor/ACE_FoxReactor.pc.in
- }
-}
diff --git a/ACE/ace/ace_qt3reactor.mpc b/ACE/ace/ace_qt3reactor.mpc
deleted file mode 100644
index 0667ee63dae..00000000000
--- a/ACE/ace/ace_qt3reactor.mpc
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- MPC -*- now wouldn't this be cool...
-// $Id$
-
-project(ACE_Qt3Reactor_moc) : acedefaults, ace_qt3 {
- custom_only = 1
- MOC_Files {
- QtReactor/QtReactor.h
- }
-}
-
-project(ACE_Qt3Reactor) : acedefaults, install, acelib, ace_output, ace_qt3 {
- after += ACE_Qt3Reactor_moc
- sharedname = ACE_QtReactor
- dynamicflags = ACE_QTREACTOR_BUILD_DLL
-
- MOC_Files {
- }
-
- Source_Files {
- QtReactor/QtReactor_moc.cpp
- QtReactor/QtReactor.cpp
- }
-
- Header_Files {
- QtReactor
- }
-
- Inline_Files {
- QtReactor
- }
-
- Template_Files {
- QtReactor
- }
-
- Resource_Files {
- QtReactor
- }
-
- Pkgconfig_Files {
- QtReactor/ACE_QtReactor.pc.in
- }
-}
diff --git a/ACE/ace/ace_qt4reactor.mpc b/ACE/ace/ace_qt4reactor.mpc
deleted file mode 100644
index 6ed633adf4e..00000000000
--- a/ACE/ace/ace_qt4reactor.mpc
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- MPC -*- now wouldn't this be cool...
-// $Id$
-
-project(ACE_Qt4Reactor_moc) : acedefaults, ace_qt4 {
- custom_only = 1
- MOC_Files {
- QtReactor
- }
-}
-
-project(ACE_Qt4Reactor) : acedefaults, install, acelib, ace_output, ace_qt4 {
- after += ACE_Qt4Reactor_moc
- sharedname = ACE_QtReactor
- dynamicflags = ACE_QTREACTOR_BUILD_DLL
-
- MOC_Files {
- }
-
- Source_Files {
- QtReactor/QtReactor_moc.cpp
- QtReactor/QtReactor.cpp
- }
-
- Header_Files {
- QtReactor
- }
-
- Inline_Files {
- QtReactor
- }
-
- Template_Files {
- QtReactor
- }
-
- Resource_Files {
- QtReactor
- }
-
- Pkgconfig_Files {
- QtReactor/ACE_QtReactor.pc.in
- }
-}
diff --git a/ACE/ace/ace_tkreactor.mpc b/ACE/ace/ace_tkreactor.mpc
deleted file mode 100644
index 78fe7e79f30..00000000000
--- a/ACE/ace/ace_tkreactor.mpc
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- MPC -*- now wouldn't this be cool...
-// $Id$
-
-project(ACE_TkReactor) : acedefaults, install, acelib, ace_output, ace_tk {
-
- sharedname = ACE_TkReactor
- dynamicflags = ACE_TKREACTOR_BUILD_DLL
-
- Source_Files {
- TkReactor
- }
-
- Header_Files {
- TkReactor
- }
-
- Inline_Files {
- TkReactor
- }
-
- Template_Files {
- TkReactor
- }
-
- Resource_Files {
- TkReactor
- }
-
- Pkgconfig_Files {
- TkReactor/ACE_TkReactor.pc.in
- }
-}
diff --git a/ACE/ace/ace_wchar.cpp b/ACE/ace/ace_wchar.cpp
index 654b648a7dc..381e2d4fb0e 100644
--- a/ACE/ace/ace_wchar.cpp
+++ b/ACE/ace/ace_wchar.cpp
@@ -5,7 +5,7 @@
#include "ace/config-macros.h"
#include "ace/ace_wchar.h"
-ACE_RCSID(ace, ace_wchar, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/ace_wchar.h b/ACE/ace/ace_wchar.h
index a985f5cc28a..6c270cffa94 100644
--- a/ACE/ace/ace_wchar.h
+++ b/ACE/ace/ace_wchar.h
@@ -19,38 +19,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-// These macros have been deprecated and should be replaced by their
-// ACE_TEXT_* equivalents. These macros are just hacks and may not
-// completely provide the old functionality.
-#if defined (ACE_LEGACY_MODE)
-// Convert the old unicode indicators
-# if defined (ACE_HAS_MOSTLY_UNICODE_APIS)
-# define ACE_USES_WCHAR
-# endif /* ACE_HAS_MOSTLY_UNICODE_APIS */
-# if defined (ACE_HAS_UNICODE)
-# define ACE_HAS_WCHAR
-# endif /* ACE_HAS_UNICODE */
-
-// These are defined to get older stuff to compile
-// FUZZ: disable check_for_tchar
-# define ASYS_TCHAR ACE_TCHAR
-# define ASYS_TEXT ACE_TEXT
-# define ASYS_ONLY_MULTIBYTE_STRING ACE_TEXT_ALWAYS_CHAR
-# define ASYS_MULTIBYTE_STRING ACE_TEXT_CHAR_TO_TCHAR
-# define ASYS_WIDE_STRING ACE_TEXT_CHAR_TO_TCHAR
-# define ACE_WIDE_STRING ACE_TEXT_CHAR_TO_TCHAR
-
-# if defined (ACE_USES_WCHAR)
-# define ASYS_ONLY_WIDE_STRING(STRING) STRING
-# else /* ACE_USES_WCHAR */
-# define ASYS_ONLY_WIDE_STRING(STRING) \
- ACE_Ascii_To_Wide (STRING).wchar_rep ()
-# endif /* ACE_USES_WCHAR */
-
-# define ACE_TEXT_STRING ACE_TString
-
-#endif /* ACE_LEGACY_MODE */
-
#if defined (ACE_HAS_XPG4_MULTIBYTE_CHAR)
# if !defined (ACE_HAS_WCHAR)
# define ACE_HAS_WCHAR
@@ -123,9 +91,6 @@ using std::size_t;
typedef wchar_t ACE_TCHAR;
typedef char ACE_ANTI_TCHAR;
# define ACE_TEXT(STRING) ACE_TEXT_WIDE (STRING)
-# if !defined (ACE_LACKS_DEPRECATED_MACROS)
-# define ACE_LIB_TEXT(STRING) ACE_TEXT_WIDE (STRING)
-# endif
# define ACE_TEXT_ALWAYS_CHAR(STRING) ACE_Wide_To_Ascii (STRING).char_rep ()
# define ACE_TEXT_ALWAYS_WCHAR(STRING) STRING
# define ACE_TEXT_CHAR_TO_TCHAR(STRING) ACE_Ascii_To_Wide (STRING).wchar_rep ()
@@ -135,9 +100,6 @@ typedef char ACE_ANTI_TCHAR;
typedef char ACE_TCHAR;
typedef wchar_t ACE_ANTI_TCHAR;
# define ACE_TEXT(STRING) STRING
-# if !defined (ACE_LACKS_DEPRECATED_MACROS)
-# define ACE_LIB_TEXT(STRING) STRING
-# endif
# define ACE_TEXT_ALWAYS_CHAR(STRING) STRING
# define ACE_TEXT_ALWAYS_WCHAR(STRING) ACE_Ascii_To_Wide (STRING).wchar_rep ()
# define ACE_TEXT_CHAR_TO_TCHAR(STRING) STRING
@@ -186,10 +148,10 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Wide_To_Ascii
{
public:
- /// Ctor must take a wchar string.
+ /// Constructor must take a wchar string.
ACE_Wide_To_Ascii (const wchar_t *s);
- /// Dtor will free up the memory.
+ /// Destructor will free up the memory.
~ACE_Wide_To_Ascii (void);
/// Return the internal char* representation.
@@ -224,10 +186,10 @@ private:
class ACE_Ascii_To_Wide
{
public:
- /// Ctor must take a wchar string.
+ /// Constructor must take a wchar string.
ACE_Ascii_To_Wide (const char *s);
- /// Dtor will free up the memory.
+ /// Destructor will free up the memory.
~ACE_Ascii_To_Wide (void);
/// Return the internal wchar* representation.
@@ -250,11 +212,6 @@ private:
ACE_Ascii_To_Wide operator= (ACE_Ascii_To_Wide &);
};
-#if defined (ACE_LEGACY_MODE)
-typedef ACE_Ascii_To_Wide ACE_OS_CString;
-typedef ACE_Wide_To_Ascii ACE_OS_WString;
-#endif /* ACE_LEGACY_MODE */
-
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_WCHAR */
diff --git a/ACE/ace/ace_xtreactor.mpc b/ACE/ace/ace_xtreactor.mpc
deleted file mode 100644
index 0e2f3185883..00000000000
--- a/ACE/ace/ace_xtreactor.mpc
+++ /dev/null
@@ -1,32 +0,0 @@
-// -*- MPC -*- now wouldn't this be cool...
-// $Id$
-
-project(ACE_XtReactor) : acedefaults, install, acelib, ace_output, ace_xt {
-
- sharedname = ACE_XtReactor
- dynamicflags = ACE_XTREACTOR_BUILD_DLL
-
- Source_Files {
- XtReactor
- }
-
- Header_Files {
- XtReactor
- }
-
- Inline_Files {
- XtReactor
- }
-
- Template_Files {
- XtReactor
- }
-
- Resource_Files {
- XtReactor
- }
-
- Pkgconfig_Files {
- XtReactor/ACE_XtReactor.pc.in
- }
-}
diff --git a/ACE/ace/checked_iterator.h b/ACE/ace/checked_iterator.h
index ac5e44f6dfc..98df3d757b0 100644
--- a/ACE/ace/checked_iterator.h
+++ b/ACE/ace/checked_iterator.h
@@ -32,12 +32,12 @@
* @author Ossama Othman
*/
-# if defined (_MSC_VER) && (_MSC_FULL_VER >= 140050000)
+# if defined (_MSC_VER) && (_MSC_FULL_VER >= 140050000) && (!defined (_STLPORT_VERSION))
// Checked iterators are currently only supported in MSVC++ 8 or better.
# include <iterator>
-# endif /* _MSC_VER >= 1400 */
+# endif /* _MSC_VER >= 1400 && !_STLPORT_VERSION */
-# if defined (_MSC_VER) && (_MSC_FULL_VER >= 140050000)
+# if defined (_MSC_VER) && (_MSC_FULL_VER >= 140050000) && (!defined (_STLPORT_VERSION))
template <typename PTR>
stdext::checked_array_iterator<PTR>
ACE_make_checked_array_iterator (PTR buf, size_t len)
@@ -53,6 +53,6 @@ ACE_make_checked_array_iterator (PTR buf, size_t /* len */)
// the buffer itself.
return buf;
}
-# endif /* _MSC_VER >= 1400 */
+# endif /* _MSC_VER >= 1400 && !_STLPORT_VERSION */
#endif /* ACE_CHECKED_ITERATOR_H */
diff --git a/ACE/ace/config-WinCE.h b/ACE/ace/config-WinCE.h
index 9fa49a63018..d1d51ff3674 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)
@@ -64,6 +53,7 @@
// the information using getenv.
#define ACE_DEFAULT_LD_SEARCH_PATH ACE_TEXT (".\\;\\windows")
+#define ACE_LACKS_ABORT
#define ACE_LACKS_FCNTL_H
#define ACE_LACKS_SYS_TYPES_H
#define ACE_LACKS_GETCWD
@@ -72,6 +62,7 @@
#define ACE_LACKS_GMTIME
#define ACE_LACKS_GMTIME_R
#define ACE_LACKS_LOCALTIME
+#define ACE_LACKS_STRTOK_R
#define ACE_LACKS_PERROR
#define ACE_LACKS_STRFTIME
#define ACE_LACKS_WIN32_SETFILEPOINTEREX
@@ -85,8 +76,6 @@
#define ACE_LACKS_RAISE
#define ACE_LACKS_BSEARCH
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-
#define ACE_LACKS_MSG_WFMO
#define ACE_LACKS_UMASK
#define ACE_HAS_TYPES_H
@@ -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,29 +156,18 @@
#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
-// @@ For some reason, WinCE forgot to define this.
-// Need to find out what it is. (Used in MapViewOfFile ().)
+#if !defined (FILE_MAP_COPY)
#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..04869085c1d 100644
--- a/ACE/ace/config-aix-5.x.h
+++ b/ACE/ace/config-aix-5.x.h
@@ -40,61 +40,51 @@
# 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_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
@@ -102,8 +92,7 @@
# define ACE_HAS_STRING_CLASS
# include "ace/config-g++-common.h"
- // Denotes that GNU has cstring.h as standard, to redefine memchr().
-# define ACE_HAS_GNU_CSTRING_H
+
# define ACE_HAS_SSIZE_T
# if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 0))
@@ -118,7 +107,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 */
@@ -218,9 +207,6 @@
#define ACE_HAS_STREAMS
// #define ACE_HAS_STREAM_PIPES
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// AIX bzero()
#define ACE_HAS_STRINGS
@@ -326,12 +312,13 @@
#undef ACE_LACKS_NETINET_TCP_H
#define ACE_HAS_3_PARAM_READDIR_R
-#define ACE_HAS_POSIX_GETPWNAM_R
#define ACE_HAS_SCANDIR
#define ACE_SCANDIR_CMP_USES_VOIDPTR
#define ACE_SCANDIR_SEL_LACKS_CONST
#define ACE_HAS_SIGSUSPEND
#define ACE_HAS_TIMEZONE /* Call tzset() to set timezone */
#define ACE_LACKS_ISCTYPE
+#define ACE_HAS_STRSIGNAL
+#define ACE_NEEDS_STRSIGNAL_RANGE_CHECK
#endif /* ACE_CONFIG_AIX_5_X_H */
diff --git a/ACE/ace/config-aix-7.h b/ACE/ace/config-aix-7.h
new file mode 100644
index 00000000000..f4aff28cde6
--- /dev/null
+++ b/ACE/ace/config-aix-7.h
@@ -0,0 +1,29 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file config-aix-7.h
+ *
+ * $Id$
+ *
+ * This is the config file for AIX 7 and higher.
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
+#ifndef ACE_CONFIG_AIX_7_H
+#define ACE_CONFIG_AIX_7_H
+
+// Diffs from prior AIX versions are related to scandir() arguments.
+#include "ace/config-aix-5.x.h"
+
+#ifdef ACE_SCANDIR_CMP_USES_VOIDPTR
+# undef ACE_SCANDIR_CMP_USES_VOIDPTR
+#endif /* ACE_SCANDIR_CMP_USES_VOIDPTR */
+
+#ifdef ACE_SCANDIR_SEL_LACKS_CONST
+# undef ACE_SCANDIR_SEL_LACKS_CONST
+#endif /* ACE_SCANDIR_SEL_LACKS_CONST */
+
+#endif /* ACE_CONFIG_AIX_7_H */
diff --git a/ACE/ace/config-cray.h b/ACE/ace/config-cray.h
deleted file mode 100644
index 77597e1a736..00000000000
--- a/ACE/ace/config-cray.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_CRAY_H
-#define ACE_CONFIG_CRAY_H
-#include /**/ "ace/pre.h"
-
-/*
- The following predefined macros are used within ACE ifdefs.
- These are defined when using the Cray compilers. _CRAYMPP
- is defined, for example, if you are running on a Cray T3E
- massively parallel machine. Moreover, in the case of the T3E,
- _CRAYT3E will be defined. This is used to determine the
- ACE_SIZEOF defines for primitive types.
-
- _UNICOS is defined as either the major version of UNICOS being run,
- e.g. 9 or 10 on the vector machines (e.g. C90, T90, J90, YMP, ...)
- or the major+minor+level UNICOS/mk version, e.g. 2.0.3 => 203,
- being run on an MPP machine.
-
- Summary:
-
- _CRAYMPP (defined only if running on MPP machine, e.g. T3E, UNICOS/mk)
- _CRAYT3E (defined specifically if compiling on a Cray T3E)
- _UNICOS (defined if running UNICOS or UNICOS/mk)
-
- Tested on UNICOS 10.0.0.5, UNICOS/mk 2.0.4.57
- Compiles on UNICOS 9.0.2.8, but some tests deadlock
-
- Contributed by Doug Anderson <dla@home.com>
-*/
-
-#if defined (_UNICOS) && !defined (MAXPATHLEN)
-#define MAXPATHLEN 1023
-#endif /* _UNICOS */
-
-#define ACE_DEFAULT_CLOSE_ALL_HANDLES 0
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#define ACE_HAS_SSIZE_T
-
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_MT_SAFE 1
-
-#define ACE_HAS_THREADS
-
-#define ACE_HAS_PTHREADS
-
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-#define ACE_HAS_POSIX_TIME
-
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-#define ACE_HAS_DIRENT
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-#define ACE_HAS_NONCONST_READLINK
-
-#define ACE_HAS_CHARPTR_SOCKOPT
-
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_HAS_NONCONST_INET_ADDR
-
-// has man pages, but links with missing symbols and I can't find lib yet
-/* #define ACE_HAS_REGEX */
-
-#define ACE_HAS_SIG_MACROS
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-#if _UNICOS > 9
-# define ACE_HAS_SIGWAIT
-#endif
-
-#define ACE_HAS_SIG_ATOMIC_T
-
-#define ACE_HAS_SIGISMEMBER_BUG
-
-#define ACE_HAS_MSG
-
-#define ACE_HAS_STRERROR
-
-#define ACE_HAS_GPERF
-
-// Special modifications that apply to UNICOS/mk
-#if defined(_CRAYMPP)
-
-# define ACE_HAS_SIGINFO_T
-# define ACE_HAS_UCONTEXT_T
-
-#endif
-
-// The Cray T90 supposedly supports SYSV SHMEM, but I was unable to get it
-// working. Of course, all other Cray PVP and MPP systems do NOT support it,
-// so it's probably good to just define like this for consistency
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_MMAP
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_PTHREAD_CLEANUP
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-
-#if !defined(_CRAYMPP)
-
-#define ACE_LACKS_PTHREAD_CANCEL
-#define ACE_LACKS_PTHREAD_KILL
-
-#endif
-
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_PRI_T
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_MPROTECT
-#define ACE_LACKS_MSYNC
-#define ACE_LACKS_READV
-#define ACE_LACKS_RLIMIT
-
-// we probably want to fake not having this, since Cray memory mgmt is different
-#define ACE_LACKS_SBRK
-
-#define ACE_LACKS_SETSCHED
-
-#define ACE_LACKS_SIGINFO_H
-
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_WRITEV
-
-// Cray vector machines are "word" oriented, and modern ones are hard 64-bit.
-// "char" is somewhat of a special case. Most problems arise when code thinks
-// it can address 32-bit quantities and the like. MPP crays are typically
-// byte oriented, e.g. T3E uses Alpha processors, so we don't need as much
-// special treatment.
-
-#ifndef _CRAYMPP
-
-# define ACE_SIZEOF_CHAR 1
-# define ACE_SIZEOF_SHORT 8
-# define ACE_SIZEOF_INT 8
-# define ACE_SIZEOF_LONG 8
-# define ACE_SIZEOF_LONG_LONG 8
-# define ACE_SIZEOF_FLOAT 8
-# define ACE_SIZEOF_DOUBLE 8
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# define ACE_SIZEOF_VOID_P 8
-
-#elif defined(_CRAYT3E)
-
-# define ACE_SIZEOF_CHAR 1
-# define ACE_SIZEOF_SHORT 4
-# define ACE_SIZEOF_INT 8
-# define ACE_SIZEOF_LONG 8
-# define ACE_SIZEOF_LONG_LONG 8
-# define ACE_SIZEOF_FLOAT 4
-# define ACE_SIZEOF_DOUBLE 8
-# define ACE_SIZEOF_LONG_DOUBLE 8
-# define ACE_SIZEOF_VOID_P 8
-
-#endif
-
-// Ones to check out at some point
-
-/* #define ACE_HAS_SYS_SIGLIST */
-
-// C++ Compiler stuff to verify
-/* #define ACE_NEW_THROWS_EXCEPTIONS */
-/* #define ACE_HAS_TEMPLATE_TYPEDEFS */
-
-// thread issues to check out
-/* #define ACE_LACKS_TIMEDWAIT_PROTOTYPES */
-
-// Cray does seem to support it, in -lnsl and has tiuser.h header
-/* #define ACE_HAS_TLI */
-/* #define ACE_HAS_TIUSER_H */
-/* #define ACE_HAS_TLI_PROTOTYPES */
-
-/* #define ACE_LACKS_NAMED_POSIX_SEM */
-
-/* #define ACE_HAS_SYS_ERRLIST */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_CRAY_H */
diff --git a/ACE/ace/config-cxx-common.h b/ACE/ace/config-cxx-common.h
deleted file mode 100644
index 8c6b727502c..00000000000
--- a/ACE/ace/config-cxx-common.h
+++ /dev/null
@@ -1,86 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-#ifndef ACE_CXX_COMMON_H
-#define ACE_CXX_COMMON_H
-#include /**/ "ace/pre.h"
-
-#if !defined (ACE_CONFIG_INCLUDE_CXX_COMMON)
-# error ace/config-cxx-common.h: ACE configuration error! Do not #include this file directly!
-#endif
-
-#if defined (__DECCXX)
-# if !defined (linux)
-# define ACE_HAS_STRING_CLASS
-# if (__DECCXX_VER >= 60090010)
-# define ACE_HAS_STDCPP_STL_INCLUDES
-# endif /* __DECCXX_VER < 60090010 */
-# endif /* ! linux */
-
-# define DEC_CXX
-# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_SIGNED_CHAR
-# define ACE_HAS_CPLUSPLUS_HEADERS
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-# if (__DECCXX_VER >= 60090010)
- // DEC CXX 6.0 supports exceptions, etc., by default. Exceptions
- // are enabled by platform_osf1_4.x.GNU/wrapper_macros.GNU.
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-
-# define ACE_ENDLESS_LOOP \
- unsigned int ace_endless_loop____ = 0; if (ace_endless_loop____) break;
-
-# if defined (__USE_STD_IOSTREAM)
-# define ACE_LACKS_CHAR_RIGHT_SHIFTS
-# define ACE_LACKS_IOSTREAM_FX
-# define ACE_LACKS_UNBUFFERED_STREAMBUF
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# else /* ! __USE_STD_IOSTREAM */
-# define ACE_USES_OLD_IOSTREAMS
-# endif /* ! __USE_STD_IOSTREAM */
-
-// 9: nested comment not allowed. (/usr/include/pdsc.h!) (nestcomment)
-// 177: variable was declared but never referenced (declbutnotref)
-// 193: zero used for undefined preprocessing identifier (undpreid)
-// 236: controlling expression is constant (boolexprconst)
-// 401: base_class_with_nonvirtual_dtor (basclsnondto)
-// 1016: expected type is incompatible with declared type of int (incint)
-// 1136: conversion to smaller size integer could lose data (intconlosbit)
-
-# pragma message disable basclsnondto
-# pragma message disable boolexprconst
-# pragma message disable undpreid
-# pragma message disable notusetmpfunprm
-# pragma message disable bltinclnk
-
-# if (__DECCXX_VER >= 60190029)
- // 6.1-029 and later support msg 1136. Disable it because it
- // causes warnings from ACE and/or TAO.
-# pragma message disable intconlosbit
-# endif /* __DECCXX_VER >= 60190029 */
-
-# if (__DECCXX_VER == 60190027)
- // Seems that this version of cxx doesn't have reset
-# define ACE_AUTO_PTR_LACKS_RESET
-# endif /* __DECCXX_VER == 60190027 */
-
-# if defined (DIGITAL_UNIX) && DIGITAL_UNIX >= 0x40D
- // variable "PTHREAD_THIS_CATCH_NP" was declared but never referenced
-# pragma message disable declbutnotref
-# endif /* DIGITAL_UNIX >= 4.0f */
-
-# else /* __DECCXX_VER < 60090010 */
-# define ACE_LACKS_PRAGMA_ONCE
-# endif /* __DECCXX_VER < 60090010 */
-#else /* ! __DECCXX */
-# error ace/config-cxx-common.h can only be used with Compaq CXX!
-#endif /* ! __DECCXX */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CXX_COMMON_H */
diff --git a/ACE/ace/config-cygwin32.h b/ACE/ace/config-cygwin32.h
index c8f04092a2b..198da4f12a9 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
@@ -61,9 +63,7 @@
#define ACE_HAS_VOIDPTR_SOCKOPT 1
#define ACE_HAS_UALARM 1
-#define ACE_HAS_SYS_ERRLIST 1
#define ACE_HAS_STRNLEN 1
-#define ACE_HAS_POSIX_GETPWNAM_R 1
#define ACE_HAS_POSIX_NONBLOCK 1
#define ACE_HAS_POSIX_TIME
#define ACE_HAS_CLOCK_GETTIME 1
@@ -72,11 +72,9 @@
#define ACE_DEFAULT_BASE_ADDR ((char *) 0x8000000)
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
#define ACE_HAS_SVR4_DYNAMIC_LINKING
-//#define ACE_HAS_SYSV_IPC
#define ACE_HAS_VOIDPTR_MMAP
#define ACE_HAS_CPLUSPLUS_HEADERS
#define ACE_HAS_POLL
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
#define ACE_HAS_SOCKADDR_MSG_NAME 1
#define ACE_LACKS_PRI_T 1
#define ACE_HAS_3_PARAM_READDIR_R
@@ -110,8 +108,7 @@
#define ACE_HAS_VOIDPTR_GETTIMEOFDAY
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
+#define ACE_HAS_STRSIGNAL
// Compiler supports the ssize_t typedef.
#define ACE_HAS_SSIZE_T
@@ -196,9 +193,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-doxygen.h b/ACE/ace/config-doxygen.h
deleted file mode 100644
index 01e91d0e5ec..00000000000
--- a/ACE/ace/config-doxygen.h
+++ /dev/null
@@ -1,126 +0,0 @@
-// -*- C++ -*-
-
-/**
- * This is a configuration file to define all the macros that Doxygen
- * needs
- *
- * @file config-doxygen.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author Darrell Brunsch <brunsch@uci.edu>
- *
- */
-#ifndef ACE_CONFIG_DOXYGEN_H
-#define ACE_CONFIG_DOXYGEN_H
-
-/// Make sure that we always turn inlining on.
-#define __ACE_INLINE__
-
-/// Make the wchar_t interfaces available.
-#define ACE_HAS_WCHAR
-
-/// Make all the emulation versions of string operations visible
-// #define ACE_LACKS_WCSTOK
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_STRCASECMP
-#define ACE_LACKS_STRRCHR
-#define ACE_LACKS_WCSCAT
-#define ACE_LACKS_WCSCHR
-#define ACE_LACKS_WCSCMP
-#define ACE_LACKS_WCSCPY
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSLEN
-#define ACE_LACKS_WCSNCAT
-#define ACE_LACKS_WCSNCMP
-#define ACE_LACKS_WCSNCPY
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_WCSPBRK
-#define ACE_LACKS_WCSRCHR
-#define ACE_LACKS_WCSCSPN
-#define ACE_LACKS_WCSSPN
-#define ACE_LACKS_WCSSTR
-
-/// Support for threads enables several important classes
-#define ACE_HAS_THREADS
-
-/// Support for Win32 enables the WFMO_Reactor and several Async I/O
-/// classes
-#define ACE_WIN32
-
-/// Enable support for POSIX Asynchronous I/O calls
-#define ACE_HAS_AIO_CALLS
-
-/// Enable support for TLI interfaces
-#define ACE_HAS_TLI
-
-/// Enable support for the SSL wrappers
-#define ACE_HAS_SSL 1
-
-/// Enable exceptions
-#define ACE_HAS_EXCEPTIONS
-
-/// Enable timeprobes
-#define ACE_COMPILE_TIMEPROBES
-
-/// Enable unicode to generate ACE_Registry_Name_Space
-#define UNICODE
-
-/// These defines make sure that Svc_Conf_y.cpp and Svc_Conf_l.cpp are correctly
-/// parsed
-#define __cplusplus
-#define ACE_YY_USE_PROTOS
-
-/// TAO features that should be documented too
-#define TAO_HAS_RT_CORBA 1
-#define TAO_HAS_MINIMUM_CORBA 0
-#define TAO_HAS_AMI 1
-#define TAO_HAS_INTERCEPTORS 1
-#define TAO_HAS_SCIOP 1
-#define TAO_HAS_COIOP 1
-#define TAO_HAS_TRANSPORT_CURRENT 1
-
-/// Generate token library documentation
-#define ACE_HAS_TOKENS_LIBRARY
-
-/// Generate ACE ATM classes documentation
-#define ACE_HAS_ATM
-
-/// Generate ACE XTI ATM class documentation
-#define ACE_HAS_XTI_ATM
-
-/// Generate ACE_Dev_Poll_Reactor documentation
-#define ACE_HAS_DEV_POLL
-
-/// Generate ACE_Event_Handler_T documentation
-#define ACE_HAS_TEMPLATE_TYPEDEFS
-
-/// Generate ACE_Log_Msg_NT_Event_Log documentation
-#define ACE_HAS_LOG_MSG_NT_EVENT_LOG
-
-/// Generate icmp documentation
-#define ACE_HAS_ICMP_SUPPORT 1
-
-/// Don't expand ACE_RCSID macro
-#define ACE_USE_RCSID 0
-
-/// Parse some ACE_SSL classes that depend on recent versions of
-/// OpenSSL.
-#define OPENSSL_VERSION_NUMBER 0x00905820L
-
-/// Enable IPv6
-#define ACE_HAS_IPV6
-
-/// Enable netlink socket support
-#define ACE_HAS_NETLINK
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_INLINE
-#define ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#define ACE_END_VERSIONED_NAMESPACE_DECL
-#define TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-#define TAO_END_VERSIONED_NAMESPACE_DECL
-
-#endif /* ACE_CONFIG_DOXYGEN_H */
diff --git a/ACE/ace/config-freebsd.h b/ACE/ace/config-freebsd.h
index 02773d5be42..907fe1b8185 100644
--- a/ACE/ace/config-freebsd.h
+++ b/ACE/ace/config-freebsd.h
@@ -11,262 +11,160 @@
# define ACE_MT_SAFE 1
#endif
-#if ACE_MT_SAFE
- // Yes, we do have threads.
-# define ACE_HAS_THREADS 1
-#else
- // Set to 0 since that's what config-posix.h checks for.
-# define ACE_HAS_THREADS 0
-#endif /* ACE_MT_SAFE */
-
-#include "ace/config-posix.h"
-
-#include <osreldate.h>
// Make sure we source in the OS version.
+#include <osreldate.h>
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if (__FreeBSD_version < 220000)
-#if defined (ACE_HAS_THREADS)
-#error Threads are not supported.
-#endif /* ACE_HAS_THREADS */
-#endif /* __FreeBSD_version < 220000 */
+#include "ace/config-posix.h"
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
+#include "ace/config-g++-common.h"
#if defined (ACE_HAS_PENTIUM)
# undef ACE_HAS_PENTIUM
#endif /* ACE_HAS_PENTIUM */
-// Platform specific directives
-// gcc defines __FreeBSD__ automatically for us.
-#ifdef ACE_HAS_THREADS
-#if !defined (_THREAD_SAFE)
-#define _THREAD_SAFE
-#endif /* _THREAD_SAFE */
-#endif
-
-#define ACE_HAS_GPERF
-
-#if (__FreeBSD_version < 420000)
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
-#define ACE_LACKS_PTHREAD_CANCEL
-#endif /* __FreeBSD_version < 420000 */
-
+#define ACE_HAS_3_PARAM_READDIR_R
+#define ACE_HAS_3_PARAM_WCSTOK
+#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
+#define ACE_HAS_ALLOCA
#define ACE_HAS_ALT_CUSERID
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-// Optimize ACE_Handle_Set for select().
+#define ACE_HAS_AUTOMATIC_INIT_FINI
+#define ACE_HAS_CHARPTR_DL
+#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+#define ACE_HAS_DIRENT
+#define ACE_HAS_GETRUSAGE
+#define ACE_HAS_GPERF
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+#define ACE_HAS_IP_MULTICAST
+#define ACE_HAS_MSG
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_CHARPTR_DL
-
-#if (__FreeBSD_version < 400000)
-#define ACE_LACKS_SIGSET
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_SETSCHED
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
-#endif
-
-#define ACE_NEEDS_SCHED_H
-
-#if (__FreeBSD_version < 400000)
-enum schedparam_policy {
- SCHED_RR,
- SCHED_IO,
- SCHED_FIFO,
- SCHED_OTHER
-};
-#endif
-
-// Use of <malloc.h> is deprecated.
-#define ACE_LACKS_MALLOC_H
-
-
-// This won't be necessary after it is fixed in the system include headers.
-extern "C" { char * cuserid (char *s); }
-
-// Platform supports POSIX timers via struct timespec.
+#define ACE_HAS_POSIX_NONBLOCK
#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_UALARM
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-#if (__FreeBSD_version < 501000)
-#define ACE_LACKS_STDINT_H
-#endif
-
-#define ACE_HAS_SYSCTL
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+#define ACE_HAS_RTLD_LAZY_V
+#define ACE_HAS_SEMUN
+#define ACE_HAS_SIGISMEMBER_BUG
+#define ACE_HAS_SIGSUSPEND
+#define ACE_HAS_SIGWAIT
+#define ACE_HAS_SIG_ATOMIC_T
#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
+#define ACE_HAS_SOCKADDR_IN_SIN_LEN
+#define ACE_HAS_SSIZE_T
+#define ACE_HAS_STRSIGNAL
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_HAS_SVR4_SIGNAL_T
+#define ACE_HAS_SYSCTL
#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
+#define ACE_HAS_SYS_FILIO_H
+#define ACE_HAS_SYS_SOCKIO_H
#define ACE_HAS_SYS_SYSCALL_H
+#define ACE_HAS_TERMIOS
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
+#define ACE_HAS_UALARM
-#if (__FreeBSD_version >= 220000)
-#define ACE_HAS_VASPRINTF
-#endif
-
-#if (__FreeBSD_version >= 300000)
-#define ACE_HAS_SIGINFO_T
-#endif /* __FreeBSD_version >= 300000 */
-
-#if (__FreeBSD_version >= 320000)
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#endif /* __FreeBSD_version >= 320000 */
-
-#if (__FreeBSD_version >= 440000)
-#define ACE_HAS_GETPROGNAME
-#define ACE_HAS_SETPROGNAME
-#endif
-
-#if (__FreeBSD_version < 501000)
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-#endif
+#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_LACKS_SIGINFO_H
+#define ACE_LACKS_CONDATTR_PSHARED
+#define ACE_LACKS_ISCTYPE
+#define ACE_LACKS_ITOW
#define ACE_LACKS_LOG2
+#define ACE_LACKS_MALLOC_H
+#define ACE_LACKS_MUTEXATTR_PSHARED
+#define ACE_LACKS_SIGINFO_H
#define ACE_LACKS_SI_ADDR
-#define ACE_LACKS_ISCTYPE
-
-// Compiler/platform supports SVR4 signal typedef
-#define ACE_HAS_SVR4_SIGNAL_T
-
-// Compiler/platform supports alloca().
-// 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/platform supports SVR4 dynamic linking semantics..
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_LACKS_STROPTS_H
+#define ACE_LACKS_STRRECVFD
+#define ACE_LACKS_THREAD_PROCESS_SCOPING
+#define ACE_LACKS_TIMESPEC_T
+#define ACE_LACKS_WCSDUP
+#define ACE_LACKS_WCSICMP
+#define ACE_LACKS_WCSNICMP
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
+#define ACE_NEEDS_SCHED_H
-// Explicit dynamic linking permits "lazy" symbol resolution
-#define ACE_HAS_RTLD_LAZY_V
+// Defines the page size of the system.
+#define ACE_PAGE_SIZE 4096
-// platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
+// Note, on FreeBSD 5, POSIX aio is now an optional kernel module which
+// must be loaded.
+// Read the aio(4) man page for what to do, otherwise any aio_* call
+// will coredump.
-// platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
+// By default use Proactor which does not use POSIX Real-time Signals.
+#ifdef ACE_HAS_AIO_CALLS
+# ifndef ACE_POSIX_AIOCB_PROACTOR
+# define ACE_POSIX_AIOCB_PROACTOR
+# endif /* ACE_POSIX_AIOCB_PROACTOR */
+#endif /* ACE_HAS_AIO_CALLS */
-// Lacks perfect filtering, must bind group address.
#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-// Compiler/platform has <alloca.h>
-//#define ACE_HAS_ALLOCA_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform supports sys_siglist array.
-// *** This refers to (_sys_siglist) instead of (sys_siglist)
-// #define ACE_HAS_SYS_SIGLIST
+//
+// Version specific settings
+//
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
+#if (__FreeBSD_version >= 220000)
+# define ACE_HAS_VASPRINTF
+#endif
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
+#if (__FreeBSD_version >= 300000)
+# define ACE_HAS_SIGINFO_T
+#endif /* __FreeBSD_version >= 300000 */
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
+#if (__FreeBSD_version >= 320000)
+# define ACE_HAS_REENTRANT_FUNCTIONS
+# define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#endif /* __FreeBSD_version >= 320000 */
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SYS_SOCKIO_H
+#if (__FreeBSD_version > 400000)
+# define ACE_HAS_UCONTEXT_T
+# define ACE_HAS_SOCKLEN_T
+# define ACE_HAS_GETIFADDRS
+# define ACE_HAS_PTHREADS_UNIX98_EXT
+#endif
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
+#if (__FreeBSD_version < 400000)
+# define ACE_LACKS_SIGSET
+# define ACE_LACKS_RWLOCK_T
+# define ACE_LACKS_READDIR_R
+# define ACE_LACKS_SETSCHED
+# define ACE_LACKS_PTHREAD_THR_SIGSETMASK
+# define ACE_LACKS_UCONTEXT_H
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
+enum schedparam_policy {
+ SCHED_RR,
+ SCHED_IO,
+ SCHED_FIFO,
+ SCHED_OTHER
+};
+#endif
-// Platform/compiler supports timezone * as second parameter to gettimeofday().
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
+#if (__FreeBSD_version < 420000)
+# define ACE_LACKS_GETPGID
+# define ACE_LACKS_SETPGID
+# define ACE_LACKS_SETREGID
+# define ACE_LACKS_SETREUID
+# define ACE_LACKS_PTHREAD_CANCEL
+#endif /* __FreeBSD_version < 420000 */
-#define ACE_HAS_MSG
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
+#if (__FreeBSD_version >= 440000)
+# define ACE_HAS_GETPROGNAME
+# define ACE_HAS_SETPROGNAME
+#endif
#if (__FreeBSD_version < 500100)
-# define ACE_HAS_NONCONST_MSGSND
+# define ACE_HAS_NONCONST_MSGSND
#endif
-// Thread specific settings
-// Yes, we do have threads.
-#ifdef ACE_HAS_THREADS
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_DIRENT
-
-#define ACE_HAS_SIGWAIT
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-#if (__FreeBSD_version > 400000)
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_SOCKLEN_T
-#define ACE_HAS_GETIFADDRS
-#define ACE_HAS_PTHREADS_UNIX98_EXT
+#if (__FreeBSD_version < 501000)
+# define ACE_LACKS_STDINT_H
#endif
-// Note, on FreeBSD 5, POSIX aio is now an optional kernel module which
-// must be loaded.
-// Read the aio(4) man page for what to do, otherwise any aio_* call
-// will coredump.
-
-// By default use Proactor which does not use POSIX Real-time Signals.
-#ifdef ACE_HAS_AIO_CALLS
-# ifndef ACE_POSIX_AIOCB_PROACTOR
-# define ACE_POSIX_AIOCB_PROACTOR
-# endif /* ACE_POSIX_AIOCB_PROACTOR */
-#endif /* ACE_HAS_AIO_CALLS */
-
-#define ACE_LACKS_STROPTS_H
-
-// Needed when ACE_HAS_WCHAR is defined.
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSDUP
-#define ACE_LACKS_ITOW
-#define ACE_HAS_3_PARAM_WCSTOK
-#define ACE_HAS_3_PARAM_READDIR_R
-
#if (__FreeBSD_version >= 501000)
-# define ACE_HAS_PTHREAD_SETSTACK
+# define ACE_HAS_PTHREAD_SETSTACK
#endif
#if (__FreeBSD_version < 700007)
@@ -279,6 +177,10 @@ extern "C" { char * cuserid (char *s); }
# define ACE_HAS_LKSCTP
#endif
+#if (__FreeBSD_version < 700038)
+# define ACE_HAS_VOID_UNSETENV
+#endif
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-g++-common.h b/ACE/ace/config-g++-common.h
index 7236238bb00..ed7a653eafc 100644
--- a/ACE/ace/config-g++-common.h
+++ b/ACE/ace/config-g++-common.h
@@ -10,45 +10,29 @@
#define ACE_GNUG_COMMON_H
#include /**/ "ace/pre.h"
+#if !defined (ACE_CC_NAME)
+# define ACE_CC_NAME ACE_TEXT ("g++")
+#endif
+#define ACE_CC_MAJOR_VERSION __GNUC__
+#define ACE_CC_MINOR_VERSION __GNUC_MINOR__
+#define ACE_CC_BETA_VERSION (0)
+
#define ACE_HAS_CPLUSPLUS_HEADERS
#define ACE_HAS_STDCPP_STL_INCLUDES
-#define ACE_HAS_TEMPLATE_TYPEDEFS
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
#define ACE_TEMPLATES_REQUIRE_SOURCE
-#if ( __GNUC__ == 2 && __GNUC_MINOR__ < 97 )
- // gcc 2.97 and lower use old iostreams
-# define ACE_USES_OLD_IOSTREAMS
-#endif /* __GNUC__ >= 2.97 */
-
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
# define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
#endif /* __GNUC__ >= 3.4 */
-#if (__GNUC__ < 3)
-# define ACE_LACKS_MEMBER_TEMPLATES
-# define ACE_LACKS_NUMERIC_LIMITS
-# define ACE_LACKS_ISCTYPE
-#endif /* __GNUC__ < 3 */
-
-// __EXCEPTIONS is defined with -fexceptions, the egcs default. It
-// is not defined with -fno-exceptions, the ACE default for g++.
-// ACE_HAS_EXCEPTIONS is defined in
-// include/makeinclude/wrapper_macros.GNU, so this really isn't
-// necessary. Just in case . . .
-#if defined (__EXCEPTIONS) && !defined (ACE_HAS_EXCEPTIONS)
-# define ACE_HAS_EXCEPTIONS
-#endif /* __EXCEPTIONS && ! ACE_HAS_EXCEPTIONS */
-
-#if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# if (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
+#define ACE_NEW_THROWS_EXCEPTIONS
+#if (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
// Versions of g++ prior to 3.3 had a buggy operator // new(nothrow)[]().
-# define ACE_HAS_NEW_NOTHROW
-# endif /* __GNUC__ >= 3.3 */
-#endif /* ACE_HAS_EXCEPTIONS */
+# define ACE_HAS_NEW_NOTHROW
+#endif /* __GNUC__ >= 3.3 */
#if (defined (i386) || defined (__i386__)) && !defined (ACE_SIZEOF_LONG_DOUBLE)
# define ACE_SIZEOF_LONG_DOUBLE 12
@@ -79,6 +63,10 @@
#define ACE_HAS_GCC_DEPRECATED_ATTRIBUTE 1
#endif
+#if !defined (ACE_HAS_GCC_FORMAT_ATTRIBUTE)
+#define ACE_HAS_GCC_FORMAT_ATTRIBUTE 1
+#endif
+
#if (ACE_HAS_GCC_CONSTRUCTOR_ATTRIBUTE == 1)
# define ACE_GCC_CONSTRUCTOR_ATTRIBUTE __attribute__ ((constructor))
#endif
@@ -91,6 +79,11 @@
#define ACE_DEPRECATED __attribute__ ((deprecated))
#endif
+#if (ACE_HAS_GCC_FORMAT_ATTRIBUTE == 1)
+# define ACE_GCC_FORMAT_ATTRIBUTE(TYPE, STR_INDEX, FIRST_INDEX) \
+ __attribute__ ((format (TYPE, STR_INDEX, FIRST_INDEX)))
+#endif
+
// GNU g++ >= 4.x implements "#pragma once".
#if (__GNUC__ < 4) && !defined (ACE_LACKS_PRAGMA_ONCE)
// We define it with a -D with make depend.
@@ -99,7 +92,7 @@
// Take advantage of G++ (>= 4.x) visibility attributes to generate
// improved shared library binaries.
-#if (__GNUC__ >= 4) && !defined (__MINGW32__)
+#if (__GNUC__ >= 4) && !defined (__MINGW32__) && !defined (ACE_HAS_CEGCC)
# if defined (ACE_HAS_CUSTOM_EXPORT_MACROS) && ACE_HAS_CUSTOM_EXPORT_MACROS == 0
# undef ACE_HAS_CUSTOM_EXPORT_MACROS
@@ -150,13 +143,29 @@
# endif /* ACE_HAS_CUSTOM_EXPORT_MACROS == 0 */
#endif /* __GNU__ >= 4 */
-#if defined (ACE_HAS_GNU_REPO)
- // -frepo causes unresolved symbols of basic_string left- and
- // right-shift operators with ACE_HAS_STRING_CLASS.
-# if defined (ACE_HAS_STRING_CLASS)
-# undef ACE_HAS_STRING_CLASS
-# endif /* ACE_HAS_STRING_CLASS */
-#endif /* ! ACE_HAS_GNU_REPO */
+// GCC >= 4.1 provides __sync_XXXX builtins for use in atomic operations
+// although the builtins are provided globally they are not supported on all platforms
+#if defined (ACE_HAS_THREADS)
+#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1))
+# if defined (__powerpc__)
+// The builtins seem to be provided for all powerpc platforms
+# define ACE_HAS_GCC_ATOMIC_BUILTINS 1
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ == 1) && (__GNUC_PATCHLEVEL__ == 1))
+// PPU GCC 4.1.1 doesn't have builtin atomic ops for size 1/2
+# define ACE_LACKS_GCC_ATOMIC_BUILTINS_2
+# define ACE_LACKS_GCC_ATOMIC_BUILTINS_1
+# endif
+# endif
+# if defined (__ia64)
+// The builtins seem to be provided for the IA64 platforms
+# define ACE_HAS_GCC_ATOMIC_BUILTINS 1
+# endif
+# if defined (__amd64__) || defined (__x86_64__)
+// The builtin's are provided also for 64bit linux
+# define ACE_HAS_GCC_ATOMIC_BUILTINS 1
+# endif
+#endif
+#endif /* ACE_HAS_THREADS */
#include /**/ "ace/post.h"
#endif /* ACE_GNUG_COMMON_H */
diff --git a/ACE/ace/config-ghs-common.h b/ACE/ace/config-ghs-common.h
deleted file mode 100644
index 8ffa331d8fd..00000000000
--- a/ACE/ace/config-ghs-common.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is designed to be included by another,
-// specific configuration file. It provides config information common
-// to all Green Hills platforms.
-
-#ifndef ACE_GHS_COMMON_H
-#define ACE_GHS_COMMON_H
-#include /**/ "ace/pre.h"
-
-#if !defined (ACE_CONFIG_INCLUDE_GHS_COMMON)
-# error ace/config-ghs-common.h: ACE configuration error! Do not #include this file directly!
-#endif
-
-#if defined (ghs)
-
-# if defined (sun)
- // Need nonstatic Object_Manager on Solaris to prevent seg fault
- // on startup.
-# define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-# endif /* sun */
-
-# if defined (__STANDARD_CXX)
- // Green Hills 1.8.9, but not 1.8.8.
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_LACKS_AUTO_PTR
-# define ACE_LACKS_CHAR_RIGHT_SHIFTS
-# define ACE_LACKS_UNBUFFERED_STREAMBUF
-# else
-# define ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
-# endif /* __STANDARD_CXX */
-
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_LONGLONG_T
-# define ACE_LACKS_SIGNED_CHAR
-
-#else /* ! ghs */
-# error ace/config-ghs-common.h can only be used with Green Hills compilers!
-#endif /* ! ghs */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_GHS_COMMON_H */
diff --git a/ACE/ace/config-hpux-11.00.h b/ACE/ace/config-hpux-11.00.h
index 6a3441d6cca..eabd4a4bb20 100644
--- a/ACE/ace/config-hpux-11.00.h
+++ b/ACE/ace/config-hpux-11.00.h
@@ -24,15 +24,7 @@
// aC++...
// Precompiler needs extra flags to ignore "invalid #pragma directive"
-# ifndef ACE_USING_MCPP_PREPROCESSOR
-# define ACE_CC_PREPROCESSOR_ARGS "-E +W 67"
-# endif
-// Compiler supports C++ exception handling. It's on by default. If the
-// +noeh compiler option is used to disable exceptions, the compiler defines
-// __HPACC_NOEH.
-# if !defined (__HPACC_NOEH)
-# define ACE_HAS_EXCEPTIONS 1
-# endif
+# define ACE_CC_PREPROCESSOR_ARGS "-E +W 67"
// If the -AA compile option is used, the compiler defines _HP_NAMESPACE_STD.
// The -AA option enables the 2.0 standard C++ library. If not used, then
@@ -57,10 +49,6 @@
# define ACE_LACKS_NUMERIC_LIMITS
# endif /* _HP_NAMESPACE_STD */
-// Compiler implements templates that support typedefs inside of classes
-// used as formal arguments to a template class.
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-
# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
// Platform lacks streambuf "linebuffered ()".
@@ -217,13 +205,6 @@
// Compiler/platform supports poll().
#define ACE_HAS_POLL
-/* Platform supports "position-independent" features provided by
- ACE_Based_Pointer<>. */
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-
-/* Platform supports POSIX getpwnam_r() function */
-#define ACE_HAS_POSIX_GETPWNAM_R 1
-
// Platform supports POSIX O_NONBLOCK semantics.
#define ACE_HAS_POSIX_NONBLOCK
@@ -284,17 +265,11 @@
#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-/* Platform/compiler supports _sys_errlist symbol */
-#define ACE_HAS_SYS_ERRLIST 1
-
#define ACE_HAS_UALARM
// Platform supports ucontext_t (which is used in the extended signal API).
#define ACE_HAS_UCONTEXT_T
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// Platform/compiler supports void * as second parameter to gettimeofday().
#define ACE_HAS_VOIDPTR_GETTIMEOFDAY
@@ -337,12 +312,12 @@
#define ACE_LACKS_SUSECONDS_T
#define ACE_LACKS_SYS_SYSCTL_H
-// @@ TODO: It looks like HP-UX provides strtoll, strtoull, wcstoll and
-// wcstoull but some more work is needed to plug them in correctly.
-#define ACE_LACKS_STRTOLL
-#define ACE_LACKS_WCSTOLL
-#define ACE_LACKS_STRTOULL
-#define ACE_LACKS_WCSTOULL
+#if !(defined(__STDC_EXT__) || defined(_INCLUDE_LONGLONG) || defined(_INCLUDE_STDC__SOURCE_199901))
+# define ACE_LACKS_STRTOLL
+# define ACE_LACKS_WCSTOLL
+# define ACE_LACKS_STRTOULL
+# define ACE_LACKS_WCSTOULL
+#endif
#define ACE_LACKS_ISWASCII
@@ -367,6 +342,7 @@
#define ACE_HAS_3_PARAM_READDIR_R
+#define ACE_LACKS_STRUCT_LIFNUM
//////////////////////////////////////////////////////////////////////////
//
diff --git a/ACE/ace/config-icc-common.h b/ACE/ace/config-icc-common.h
index 7d66c02ac6e..6d1f1ff58d3 100644
--- a/ACE/ace/config-icc-common.h
+++ b/ACE/ace/config-icc-common.h
@@ -8,7 +8,6 @@
# define ACE_HAS_CPLUSPLUS_HEADERS
# define ACE_HAS_STDCPP_STL_INCLUDES
-# define ACE_HAS_TEMPLATE_TYPEDEFS
# define ACE_HAS_STANDARD_CPP_LIBRARY 1
# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
@@ -61,18 +60,7 @@
# define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) __extension__ extern template class SINGLETON_TYPE<CLASS, LOCK>;
#endif /* ACE_HAS_CUSTOM_EXPORT_MACROS == 0 */
-// __EXCEPTIONS is defined with -fexceptions, the egcs default. It
-// is not defined with -fno-exceptions, the ACE default for g++.
-// ACE_HAS_EXCEPTIONS is defined in
-// include/makeinclude/wrapper_macros.GNU, so this really isn't
-// necessary. Just in case . . .
-# if defined (__EXCEPTIONS) && !defined (ACE_HAS_EXCEPTIONS)
-# define ACE_HAS_EXCEPTIONS
-# endif /* __EXCEPTIONS && ! ACE_HAS_EXCEPTIONS */
-
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
+#define ACE_NEW_THROWS_EXCEPTIONS
#if (defined (i386) || defined (__i386__)) && !defined (ACE_SIZEOF_LONG_DOUBLE)
# define ACE_SIZEOF_LONG_DOUBLE 12
diff --git a/ACE/ace/config-integritySCA.h b/ACE/ace/config-integritySCA.h
index 1669c3028ed..903450b356f 100644
--- a/ACE/ace/config-integritySCA.h
+++ b/ACE/ace/config-integritySCA.h
@@ -26,13 +26,9 @@
#define ACE_LACKS_GETEGID
#define ACE_LACKS_GETGID
-#ifndef ACE_HAS_EXCEPTIONS
- #define ACE_HAS_EXCEPTIONS
-#endif
#define ACE_NEW_THROWS_EXCEPTIONS
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_TEMPLATES_REQUIRE_SOURCE 1
-#define ACE_HAS_TEMPLATE_TYPEDEFS
#define TAO_USE_SEQUENCE_TEMPLATES
#define ACE_NEEDS_FUNC_DEFINITIONS
#define _REENTRANT
@@ -47,7 +43,6 @@
/***** ANSI defines *****/
#define ACE_LACKS_TEMPNAM /* believe it or not, this is ANSI C */
-#define ACE_HAS_STRERROR
#define ACE_LACKS_PUTENV_PROTOTYPE
#define ACE_LACKS_SENDMSG
@@ -104,16 +99,12 @@
#define ACE_LACKS_RWLOCK_T
#define ACE_LACKS_SEMBUF_T
#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-#define ACE_LACKS_USER
-#define ACE_LACKS_FILE_FCNTL
#define ACE_LACKS_FCNTL
#define ACE_LACKS_UMASK
#define ACE_LACKS_SEEK
-#define ACE_LACKS_SHARED_MEMORY
#define ACE_LACKS_MSYNC
#define ACE_LACKS_PID_STUFF
#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_IPC_H
#define ACE_LACKS_SETGID
#define ACE_LACKS_PIPE
#define ACE_LACKS_SYS_PARAM_H
@@ -193,7 +184,6 @@ extern "C"
#define ACE_LACKS_GETPPID
#define NSIG (SIGRTMAX+1)
#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_USE_RCSID 0
#define ACE_LACKS_CUSERID
#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 0x5000
#define fileno(file) ((file)->io_channel) //Hack to get Svc_Conf_l.cpp compiled
diff --git a/ACE/ace/config-irix6.5.x-sgic++.h b/ACE/ace/config-irix6.5.x-sgic++.h
deleted file mode 100644
index d3fada546a2..00000000000
--- a/ACE/ace/config-irix6.5.x-sgic++.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// Use this file for IRIX 6.5.x
-
-#ifndef ACE_CONFIG_IRIX65X_H
-#define ACE_CONFIG_IRIX65X_H
-#include /**/ "ace/pre.h"
-
-// Include IRIX 6.[234] configuration
-#include "ace/config-irix6.x-sgic++.h"
-
-// Irix 6.5 man pages show that they exist
-#undef ACE_LACKS_CONDATTR_PSHARED
-#undef ACE_LACKS_MUTEXATTR_PSHARED
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_IRIX65X_H */
diff --git a/ACE/ace/config-irix6.x-common.h b/ACE/ace/config-irix6.x-common.h
deleted file mode 100644
index 7664ce4bf8e..00000000000
--- a/ACE/ace/config-irix6.x-common.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/* -*- C++ -*- */
-//
-// $Id$
-//
-// This file contains the common configuration options for both
-// SGI/MIPSPro C++ and g++ under IRIX 6.X
-//
-// For IRIX 6.2 there are several patches that should be applied to
-// get reliable operation with multi-threading and exceptions.
-// Specifically you should get a reasonable current IRIX, Compiler
-// and POSIX patch-sets.
-
-// For IRIX 6.[34] it's less critical, but it's still recommended
-// that you apply the applicable patch-sets (IRIX and Compiler I believe).
-
-// These patches are updated frequently, so you should ask your support
-// contact or search SGI's web site (http://www.sgi.com) for the latest
-// version.
-
-// Use this file for IRIX 6.[234] if you have the pthreads patches
-// installed.
-
-#ifndef ACE_CONFIG_IRIX6X_COMMON_H
-
-#ifndef IRIX6
-# define IRIX6
-#endif
-
-#if ! defined(ACE_CONFIG_H)
-#error "This file may only be included by config-irix6.x-sgic++.h, config-irix6.x-kcc.h or config-irix6.x-g++.h"
-#endif
-
-// The Irix 6.x float.h doesn't allow us to distinguish between a
-// double and a long double. So, we have to hard-code this. Thanks
-// to Bob Laferriere <laferrie@gsao.med.ge.com> for figuring it out.
-#if defined (_MIPS_SIM) /* 6.X System */
-# include <sgidefs.h>
-# if defined (__GNUC__)
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# elif defined (_MIPS_SIM_NABI32) && (_MIPS_SIM == _MIPS_SIM_NABI32)
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# elif defined (_MIPS_SIM_ABI32) && (_MIPS_SIM == _MIPS_SIM_ABI32)
-# define ACE_SIZEOF_LONG_DOUBLE 8
-# elif defined (_MIPS_SIM_ABI64) && (_MIPS_SIM == _MIPS_SIM_ABI64)
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# elif !defined (ACE_SIZEOF_LONG_DOUBLE)
-# define ACE_SIZEOF_LONG_DOUBLE 8
-# endif
-#else
-# define ACE_SIZEOF_LONG_DOUBLE 8 /* 5.3 System */
-#endif
-
-// petern, Next part of it:
-
-// Platform supports getpagesize() call.
-#define ACE_HAS_GETPAGESIZE
-
-// Platform has no implementation of pthread_condattr_setpshared(),
-// even though it supports pthreads! (like Irix 6.2)
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-
-#define ACE_LACKS_SUSECONDS_T
-
-// Platform/compiler has the sigwait(2) prototype
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Platform requires void * for mmap().
-#define ACE_HAS_VOIDPTR_MMAP
-
-// Platform supports recvmsg and sendmsg.
-#define ACE_HAS_MSG
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYS_SYSCALL_H
-
-// Compiler/platform supports alloca()
-// 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/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-// Irix needs to define bzero() in this odd file <bstring.h>
-#define ACE_HAS_BSTRING
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Platform contains <poll.h>.
-#define ACE_HAS_POLL
-
-// Platform supports the /proc file system.
-#define ACE_HAS_PROC_FS
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Platform supports SVR4 extended signals.
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Platform supports STREAMS.
-#define ACE_HAS_STREAMS
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform supports struct strbuf.
-#define ACE_HAS_STRBUF_T
-
-// Compiler/platform supports SVR4 dynamic linking semantics.
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-#ifdef ACE_LACKS_PERFECT_MULTICAST_FILTERING
- #undef ACE_LACKS_PERFECT_MULTICAST_FILTERING
-#endif
-#define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-
-//**************************************************************
-// Not so sure how next lines should look like
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-//**************************************************************
-
-// IRIX 6.4 and below do not support reentrant netdb functions
-// (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
-// gethostbyname_r, getservbyname_r).
-#if (ACE_IRIX_VERS <= 64) && !defined (ACE_HAS_NETDB_REENTRANT_FUNCTIONS)
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#endif /* ACE_HAS_NETDB_REENTRANT_FUNCTIONS */
-
-#define ACE_HAS_DIRENT
-// Unless the thread enabled version is used the readdir_r interface
-// does not get defined in IRIX 6.2
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_RWLOCK_T
-
-#define ACE_HAS_GPERF
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_BROKEN_DGRAM_SENDV
-
-#define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-#define ACE_PI_CONTROL_BLOCK_ALIGN_LONGS 2
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-// IRIX 6.5 supports AIO
-#define ACE_HAS_AIO_CALLS
-#define ACE_POSIX_AIOCB_PROACTOR
-#define ACE_HAS_SGIDLADD
-#define ACE_HAS_P_READ_WRITE
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_STDINT_H
-#define ACE_HAS_SYSENT_H
-#define ACE_HAS_SYSV_SYSINFO
-#define ACE_HAS_SYS_SYSTEMINFO_H
-
-// Platform has support for multi-byte character support compliant
-// with the XPG4 Worldwide Portability Interface wide-character
-// classification.
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-// We need to setup a very high address or Naming_Test won't run.
-#define ACE_DEFAULT_BASE_ADDR ((char *) (1024U * 1024 * 1024))
-
-#define ACE_LACKS_SIGNED_CHAR
-
-// Platform supports reentrant functions (i.e., all the POSIX *_r
-// functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform does not support reentrant password file accessor functiions.
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-
-// uses ctime_r & asctime_r with only two parameters vs. three
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-#define ACE_HAS_UALARM
-
-// Scheduling functions are declared in <sched.h>
-#define ACE_NEEDS_SCHED_H
-
-// Compile using multi-thread libraries by default
-#if !defined (ACE_MT_SAFE)
- #define ACE_MT_SAFE 1
-#endif /* ACE_MT_SAFE */
-
-#if (ACE_MT_SAFE != 0)
-
-// Add threading support
-
-#define ACE_HAS_IRIX62_THREADS
-
-// Needed for the threading stuff?
-#include /**/ <task.h>
-#define PTHREAD_MIN_PRIORITY PX_PRIO_MIN
-#define PTHREAD_MAX_PRIORITY PX_PRIO_MAX
-
-// ACE supports threads.
-#define ACE_HAS_THREADS
-
-// Platform has no implementation of pthread_condattr_setpshared(),
-// even though it supports pthreads! (like Irix 6.2)
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-
-// IRIX 6.2 supports a variant of POSIX Pthreads, supposedly POSIX 1c
-#define ACE_HAS_PTHREADS
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// The pthread_cond_timedwait call does not reset the timer.
-#define ACE_LACKS_COND_TIMEDWAIT_RESET 1
-
-// When threads are enabled READDIR_R is supported on IRIX.
-#undef ACE_LACKS_READDIR_R
-
-#endif /* (ACE_MT_SAFE == 0) */
-
-
-#endif /* ACE_CONFIG_IRIX6X_COMMON_H */
diff --git a/ACE/ace/config-irix6.x-g++.h b/ACE/ace/config-irix6.x-g++.h
deleted file mode 100644
index 69455f27120..00000000000
--- a/ACE/ace/config-irix6.x-g++.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for the SGI
-// Indigo2EX running Irix 6.2 platform using the GNU C++ Compiler
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include /**/ "ace/pre.h"
-
-// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
-// this must appear before its #include.
-#define ACE_HAS_STRING_CLASS
-
-#include "ace/config-g++-common.h"
-#include "ace/config-irix6.x-common.h"
-
-// Denotes that GNU has cstring.h as standard
-// which redefines memchr()
-#define ACE_HAS_GNU_CSTRING_H
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-irix6.x-sgic++.h b/ACE/ace/config-irix6.x-sgic++.h
deleted file mode 100644
index 89ab6071509..00000000000
--- a/ACE/ace/config-irix6.x-sgic++.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Use this file for IRIX 6.[234] if you have the pthreads patches
-// installed.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include /**/ "ace/pre.h"
-
-#include "ace/config-irix6.x-common.h"
-
-// This is the config file for IRIX 6.2, 6.4 and hopefully 6.3, using
-// the SGI C++ compiler (7.1 or higher).
-
-// The following three should be enabled/disabled together.
-#if _COMPILER_VERSION < 720
-#define ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
-#endif /* _COMPILER_VERSION < 720 */
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_NEEDS_FUNC_DEFINITIONS
-
-// Platform supports STREAM pipes (note that this is disabled by
-// default, see the manual page on pipe(2) to find out how to enable
-// it).
-// #define ACE_HAS_STREAM_PIPES
-
-#if defined (_COMPILER_VERSION)
-# define ACE_CC_NAME ACE_TEXT ("SGI/MIPSPro")
-# define ACE_CC_MAJOR_VERSION (_COMPILER_VERSION / 100)
-# define ACE_CC_MINOR_VERSION (_COMPILER_VERSION % 100)
-# define ACE_CC_BETA_VERSION (0)
-#endif /* _COMPILER_VERSION */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-kfreebsd.h b/ACE/ace/config-kfreebsd.h
new file mode 100644
index 00000000000..1640003707e
--- /dev/null
+++ b/ACE/ace/config-kfreebsd.h
@@ -0,0 +1,618 @@
+// $Id$
+
+#ifndef ACE_CONFIG_KFREEBSD_H
+#define ACE_CONFIG_KFREEBSDH
+#include "ace/config-g++-common.h"
+
+
+/* Uses ctime_r & asctime_r with only two parameters vs. three. */
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R 1
+
+/* Define to 1 if platform has 3 parameter readdir_r() */
+#define ACE_HAS_3_PARAM_READDIR_R 1
+
+/* Define to 1 if platform has 3 parameter wcstok() */
+#define ACE_HAS_3_PARAM_WCSTOK 1
+
+/* Platform has BSD 4.4 sendmsg()/recvmsg() APIs. */
+#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG 1
+
+/* Platform supports Asynchronous IO calls */
+#define ACE_HAS_AIO_CALLS 1
+
+/* Use ACE's alternate cuserid() implementation since a system cuserid() may
+ not exist, or it is not desirable to use it. The implementation requires
+ ACE_LACKS_PWD_FUNCTIONS to be undefined and that the geteuid() system call
+ exists. */
+#define ACE_HAS_ALT_CUSERID 1
+
+/* Compiler/platform correctly calls init()/fini() for shared libraries. */
+#define ACE_HAS_AUTOMATIC_INIT_FINI 1
+
+/* Define to 1 if platform has bswap_16(). */
+#define ACE_HAS_BSWAP_16 1
+
+/* Define to 1 if platform has bswap_32(). */
+#define ACE_HAS_BSWAP_32 1
+
+/* Define to 1 if platform has bswap_64(). */
+#define ACE_HAS_BSWAP_64 1
+
+/* Define to 1 if platform has the <byteswap.h> header file. */
+#define ACE_HAS_BYTESWAP_H 1
+
+/* Define to 1 if platform has clock_gettime(). */
+#define ACE_HAS_CLOCK_GETTIME 1
+
+/* Define to 1 if platform has clock_settime(). */
+#define ACE_HAS_CLOCK_SETTIME 1
+
+/* Prototypes for both signal() and struct sigaction are consistent. */
+#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1
+
+/* Define to 1 if the system has the type `cpu_set_t'. */
+#define ACE_HAS_CPU_SET_T 1
+
+/* Platform supports operations on directories via struct dirent, readdir_r,
+ etc. */
+#define ACE_HAS_DIRENT 1
+
+/* Compiler supports C++ exception handling. */
+#define ACE_HAS_EXCEPTIONS 1
+
+/* Define to 1 if platform has getifaddrs(). */
+#define ACE_HAS_GETIFADDRS 1
+
+/* Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must be
+ defined, except on Win32). */
+#define ACE_HAS_GETPAGESIZE 1
+
+/* Define to 1 if platform has getrusage(). */
+#define ACE_HAS_GETRUSAGE 1
+
+/* Define to 1 if platform has the declaration of getrusage(). */
+#define ACE_HAS_GETRUSAGE_PROTOTYPE 1
+
+/* Denotes that GNU has cstring.h as standard which redefines memchr() */
+#define ACE_HAS_GNU_CSTRING_H 1
+
+/* The GPERF utility is compiled for this platform */
+#define ACE_HAS_GPERF 1
+
+/* Optimize ACE_Handle_Set::count_bits for select() operations (common case)
+ */
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT 1
+
+/* Defined to 1 if platform supports ICMP over raw sockets */
+#define ACE_HAS_ICMP_SUPPORT 1
+
+/* Define to 1 if the system has the type `int16_t'. */
+#define ACE_HAS_INT16_T 1
+
+/* Define to 1 if the system has the type `int32_t'. */
+#define ACE_HAS_INT32_T 1
+
+/* Define to 1 if the system has the type `int64_t'. */
+#define ACE_HAS_INT64_T 1
+
+/* Define to 1 if the system has the type `int8_t'. */
+#define ACE_HAS_INT8_T 1
+
+/* Platform supports IPv6 */
+#define ACE_HAS_IPV6 1
+
+/* Platform supports IP multicast */
+#define ACE_HAS_IP_MULTICAST 1
+
+/* Define to 1 if platform has the declaration of isastream(). */
+#define ACE_HAS_ISASTREAM_PROTOTYPE 1
+
+/* Platform supports lseek64(). This should not be defined if ACE_HAS_LLSEEK
+ is defined. */
+#define ACE_HAS_LSEEK64 1
+
+/* Define to 1 if platform has memchr(). */
+#define ACE_HAS_MEMCHR 1
+
+/* Define to 1 if unrolled ACE_OS::fast_memcpy() is faster than system
+ memcpy() */
+#define ACE_HAS_MEMCPY_LOOP_UNROLL 1
+
+/* Define to 1 if platform has mkdir(). */
+#define ACE_HAS_MKDIR 1
+
+/* Platform supports recvmsg and sendmsg */
+#define ACE_HAS_MSG 1
+
+/* Compiler supports timed mutex acquisitions (e.g.
+ pthread_mutex_timedlock()). */
+#define ACE_HAS_MUTEX_TIMEOUTS 1
+
+/* Define to 1 if platform has nanosleep(). */
+#define ACE_HAS_NANOSLEEP 1
+
+/* Define to 1 if platform has the <new.h> header file. */
+#ifdef ACE_HAS_NEW_H
+#undef ACE_HAS_NEW_H
+#endif
+
+#ifndef ACE_LACKS_NEW_H
+#define ACE_LACKS_NEW_H 1
+#endif
+
+/* Platform provides new style C++ <new> header */
+#define ACE_HAS_NEW_NO_H 1
+
+/* Platform's select() uses non-const timeval* (only found on Linux right now)
+ */
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
+
+/* Platform has swab(char*, char*, ssize_t) variant. */
+#define ACE_HAS_NONCONST_SWAB 1
+
+/* Platform contains <poll.h> */
+#define ACE_HAS_POLL 1
+
+/* Platform supports POSIX O_NONBLOCK semantics */
+#define ACE_HAS_POSIX_NONBLOCK 1
+
+/* Platform supports POSIX real-time semaphores (e.g., VxWorks and Solaris) */
+#define ACE_HAS_POSIX_SEM 1
+
+/* Platform supports the POSIX struct timespec type */
+#define ACE_HAS_POSIX_TIME 1
+
+/* Platform supports the /proc file system and defines tid_t in <sys/procfs.h>
+ */
+#define ACE_HAS_PROC_FS 1
+
+/* Define to 1 if platform has POSIX threads */
+#define ACE_HAS_PTHREADS 1
+
+/* Platform has the UNIX98 extensions to Pthreads (rwlocks) */
+#define ACE_HAS_PTHREADS_UNIX98_EXT 1
+
+/* Define to 1 if platform has pthread_getconcurrency(). */
+#define ACE_HAS_PTHREAD_GETCONCURRENCY 1
+
+/* Define to 1 if platform has pthread_mutexattr_setkind_np(). */
+#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP 1
+
+/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
+ PTHREAD_PROCESS_SHARED values */
+#define ACE_HAS_PTHREAD_PROCESS_ENUM 1
+
+/* Define to 1 if platform has pthread_setconcurrency(). */
+#define ACE_HAS_PTHREAD_SETCONCURRENCY 1
+
+/* Define to 1 if platform has the declaration of pthread_sigmask(). */
+#define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE 1
+
+/* Platform has pread() and pwrite() support. */
+#define ACE_HAS_P_READ_WRITE 1
+
+/* Define to 1 to configure Reactor to use a user-space queue for
+ notifications */
+#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1
+
+/* Mutexes are inherently recursive (e.g., Win32) */
+/* #undef ACE_HAS_RECURSIVE_MUTEXES */
+
+/* Platform will recurse infinitely on thread exits from TSS cleanup routines
+ (e.g., AIX) */
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS 1
+
+/* Platform supports reentrant functions (i.e., all the POSIX *_r functions).
+ */
+#define ACE_HAS_REENTRANT_FUNCTIONS 1
+
+/* Define to 1 if platform has sched_getaffinity(). */
+#define ACE_HAS_SCHED_GETAFFINITY 1
+
+/* Define to 1 if platform has sched_setaffinity(). */
+#define ACE_HAS_SCHED_SETAFFINITY 1
+
+/* Platform has shm_open() */
+#define ACE_HAS_SHM_OPEN 1
+
+/* Platform's sigaction() function takes const sigaction* as 2nd parameter */
+#define ACE_HAS_SIGACTION_CONSTP2 1
+
+/* Define to 1 if the system has the type `siginfo_t'. */
+#define ACE_HAS_SIGINFO_T 1
+
+/* Define to 1 if platform has sigsuspend(). */
+#define ACE_HAS_SIGSUSPEND 1
+
+/* Define to 1 if platform has sigtimedwait(). */
+#define ACE_HAS_SIGTIMEDWAIT 1
+
+/* Define to 1 if platform has sigwait(). */
+#define ACE_HAS_SIGWAIT 1
+
+/* Define to 1 if the system has the type 'sig_atomic_t'. */
+#define ACE_HAS_SIG_ATOMIC_T 1
+
+/* Compiler requires extern "C" functions for signals. */
+#define ACE_HAS_SIG_C_FUNC 1
+
+/* Define to 1 if platform has snprintf(). */
+#define ACE_HAS_SNPRINTF 1
+
+/* Define to 1 if `sin6_len' is a member of `sockaddr_in6'. */
+#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN 1
+
+/* Define to 1 if `sin_len' is a member of `sockaddr_in'. */
+#define ACE_HAS_SOCKADDR_IN_SIN_LEN 1
+
+/* Platform requires (struct sockaddr *) for msg_name field of struct msghdr.
+ */
+#define ACE_HAS_SOCKADDR_MSG_NAME 1
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#define ACE_HAS_SOCKLEN_T 1
+
+/* Define to 1 if the system has the type `ssize_t'. */
+#define ACE_HAS_SSIZE_T 1
+
+/* Platform/compiler supports Standard C++ Library */
+#define ACE_HAS_STANDARD_CPP_LIBRARY 1
+
+/* Compiler supports standard C++ template class member specializations */
+#define ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION 1
+
+/* Compiler supports standard C++ template specializations (e.g. "template <>"
+ syntax.) */
+#define ACE_HAS_STD_TEMPLATE_SPECIALIZATION 1
+
+/* Compiler/platform supports struct strbuf */
+#define ACE_HAS_STRBUF_T 1
+
+/* Platform supports STREAMS */
+#define ACE_HAS_STREAMS 1
+
+/* Define to 1 if platform has strerror(). */
+#define ACE_HAS_STRERROR 1
+
+/* Platform has <strings.h> (which contains bzero() prototype) */
+#define ACE_HAS_STRINGS 1
+
+/* Platform/Compiler supports a String class (e.g., GNU or Win32). */
+#define ACE_HAS_STRING_CLASS 1
+
+/* Define to 1 if platform has strnlen(). */
+#define ACE_HAS_STRNLEN 1
+
+/* Compiler/platform supports SVR4 dynamic linking semantics */
+#define ACE_HAS_SVR4_DYNAMIC_LINKING 1
+
+/* Define to 1 if platform has sysctl(). */
+#define ACE_HAS_SYSCTL 1
+
+/* Platform supports System V IPC (most versions of UNIX, but not Win32) */
+#define ACE_HAS_SYSV_IPC 1
+
+/* Platform/compiler supports _sys_errlist symbol */
+#define ACE_HAS_SYS_ERRLIST 1
+
+/* Define to 1 if platform has the <sys/filio.h> header file. */
+#define ACE_HAS_SYS_FILIO_H 1
+
+/* Compiler/platform supports _sys_siglist array */
+#define ACE_HAS_SYS_SIGLIST 1
+
+/* Define to 1 if platform has the <sys/sockio.h> header file. */
+#define ACE_HAS_SYS_SOCKIO_H 1
+
+/* Define to 1 if platform has the <sys/syscall.h> header file. */
+#define ACE_HAS_SYS_SYSCALL_H 1
+
+/* Define to 1 if system supports POSIX tty API. */
+#define ACE_HAS_TERMIOS 1
+
+/* Platform supports threads. */
+#define ACE_HAS_THREADS 1
+
+/* Compiler/platform has thread-specific storage */
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE 1
+
+/* Define to 1 if platform has global timezone variable */
+#define ACE_HAS_TIMEZONE 1
+
+/* Platform/compiler supports timezone * as second parameter to gettimeofday()
+ and has a prototype. */
+#define ACE_HAS_TIMEZONE_GETTIMEOFDAY 1
+
+/* Compiler supports the C++ typename keyword */
+#define ACE_HAS_TYPENAME_KEYWORD 1
+
+/* Define to 1 if platform has ualarm(). */
+#define ACE_HAS_UALARM 1
+
+/* Define to 1 if the system has the type `ucontext_t'. */
+#define ACE_HAS_UCONTEXT_T 1
+
+/* Define to 1 if the system has the type `uint16_t'. */
+#define ACE_HAS_UINT16_T 1
+
+/* Define to 1 if the system has the type `uint32_t'. */
+#define ACE_HAS_UINT32_T 1
+
+/* Define to 1 if the system has the type `uint64_t'. */
+#define ACE_HAS_UINT64_T 1
+
+/* Define to 1 if the system has the type `uint8_t'. */
+#define ACE_HAS_UINT8_T 1
+
+/* Define to 1 if platform has vasprintf(). */
+#define ACE_HAS_VASPRINTF 1
+
+/* Define to 1 if platform has vfwprintf(). */
+#define ACE_HAS_VFWPRINTF 1
+
+/* Platform requires void * for mmap(). */
+#define ACE_HAS_VOIDPTR_MMAP 1
+
+/* OS/compiler uses void * arg 4 setsockopt() rather than const char * */
+#define ACE_HAS_VOIDPTR_SOCKOPT 1
+
+/* Define to 1 if platform has vswprintf(). */
+#define ACE_HAS_VSWPRINTF 1
+
+/* Platform/compiler supports wchar_t */
+#define ACE_HAS_WCHAR 1
+
+/* Define to 1 if platform has wcsnlen(). */
+#define ACE_HAS_WCSNLEN 1
+
+/* Platform has support for multi-byte character support compliant with the
+ XPG4 Worldwide Portability Interface wide-character classification. */
+#define ACE_HAS_XPG4_MULTIBYTE_CHAR 1
+
+/* Platform has Xt Intrinsics Toolkit */
+#define ACE_HAS_XT 1
+
+/* Define to signed 64 bit integer type */
+#define ACE_INT64_TYPE signed long long
+
+/* Define to the type of arg 2 for `ioctl'. */
+#define ACE_IOCTL_TYPE_ARG2 int
+
+/* Define to 1 if platform lacks getipnodebyaddr(). */
+#define ACE_LACKS_GETIPNODEBYADDR 1
+
+/* Define to 1 if platform lacks getipnodebyname(). */
+#define ACE_LACKS_GETIPNODEBYNAME 1
+
+/* iostream header does not declare ipfx (), opfx (), etc. */
+#define ACE_LACKS_IOSTREAM_FX 1
+
+/* Define to 1 if platform lacks itow(). */
+#define ACE_LACKS_ITOW 1
+
+/* Platform lacks streambuf "linebuffered ()". */
+#define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
+
+/* Platform does not have Motif X toolkit available */
+#define ACE_LACKS_MOTIF 1
+
+/* Platform defines ACE_HAS_MSG, but lacks msg_accrights{len}. */
+#define ACE_LACKS_MSG_ACCRIGHTS 1
+
+/* Platform lacks named POSIX semaphores (e.g., Chorus) */
+#define ACE_LACKS_NAMED_POSIX_SEM 1
+
+/* Compiler complains about use of obsolete "pragma once" */
+#define ACE_LACKS_PRAGMA_ONCE 1
+
+/* Define to 1 if the system lacks the type 'pri_t'. */
+#define ACE_LACKS_PRI_T 1
+
+/* Define to 1 if platform lacks pthread_thr_sigsetmask(). */
+#define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
+
+/* Platform lacks readers/writer locks. */
+#define ACE_LACKS_RWLOCK_T 1
+
+/* Define to 1 if platform lacks the <siginfo.h> header file. */
+#define ACE_LACKS_SIGINFO_H 1
+
+/* Define to 1 if platform lacks the <termio.h> header file. */
+#define ACE_LACKS_TERMIO_H 1
+
+/* Define to 1 if platform lacks the declarations of recv_timedwait,
+ send_timedwait, etc. */
+#define ACE_LACKS_TIMEDWAIT_PROTOTYPES 1
+
+/* Platform does not define timepec_t as a typedef for struct timespec. */
+#define ACE_LACKS_TIMESPEC_T 1
+
+/* */
+#define ACE_LACKS_UNBUFFERED_STREAMBUF 1
+
+/* Define to 1 if the system lacks the type `u_long_long_t'. */
+#define ACE_LACKS_U_LONGLONG_T 1
+
+/* Define to 1 if platform lacks wcsnicmp(). */
+#define ACE_LACKS_WCSNICMP 1
+
+/* Compile using multi-thread libraries */
+#define ACE_MT_SAFE 1
+
+/* Size of the native "double" type */
+#define ACE_SIZEOF_DOUBLE 8
+
+/* Size of the native "float" type */
+#define ACE_SIZEOF_FLOAT 4
+
+/* Size of the native "int" type */
+#define ACE_SIZEOF_INT 4
+
+/* Size of the native "long" type */
+#define ACE_SIZEOF_LONG 4
+
+/* Size of the native "long double" type */
+#define ACE_SIZEOF_LONG_DOUBLE 12
+
+/* Size of the native "long long" type */
+#define ACE_SIZEOF_LONG_LONG 8
+
+/* Size of the native "short" type */
+#define ACE_SIZEOF_SHORT 2
+
+/* Size of the native "pointer to void" type */
+#define ACE_SIZEOF_VOID_P 4
+
+/* Size of the native "wchar_t" type */
+#define ACE_SIZEOF_WCHAR 4
+
+/* Define to unsigned 64 bit integer type */
+#define ACE_UINT64_TYPE unsigned long long
+
+/* Enable IPv6 support on platforms that don't have IPv6 turned on by default
+ */
+#define ACE_USES_IPV4_IPV6_MIGRATION 1
+
+/* Platform has its standard C++ library in the namespace std. */
+#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <fstream> header file. */
+#define HAVE_FSTREAM 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <iomanip> header file. */
+#define HAVE_IOMANIP 1
+
+/* Define to 1 if you have the <ios> header file. */
+#define HAVE_IOS 1
+
+/* Define to 1 if you have the <iostream> header file. */
+#define HAVE_IOSTREAM 1
+
+/* Define to 1 if you have the <iostream.h> header file. */
+/* #undef HAVE_IOSTREAM_H */
+
+/* Define to 1 if you have the <istream> header file. */
+#define HAVE_ISTREAM 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <ostream> header file. */
+#define HAVE_OSTREAM 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <streambuf> header file. */
+#define HAVE_STREAMBUF 1
+
+/* Define to 1 if you have the `strftime' function. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "ace-bugs@cs.wustl.edu"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "ACE"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "ACE 5.6.3"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "ace"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "5.6.3"
+
+/* The size of `double', as computed by sizeof. */
+#define SIZEOF_DOUBLE 8
+
+/* The size of `float', as computed by sizeof. */
+#define SIZEOF_FLOAT 4
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT 4
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 4
+
+/* The size of `long double', as computed by sizeof. */
+#define SIZEOF_LONG_DOUBLE 12
+
+/* The size of `long long', as computed by sizeof. */
+#define SIZEOF_LONG_LONG 8
+
+/* The size of `short', as computed by sizeof. */
+#define SIZEOF_SHORT 2
+
+/* The size of `signed char', as computed by sizeof. */
+#define SIZEOF_SIGNED_CHAR 1
+
+/* The size of `void *', as computed by sizeof. */
+#define SIZEOF_VOID_P 4
+
+/* The size of `wchar_t', as computed by sizeof. */
+#define SIZEOF_WCHAR_T 4
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+
+/* Enable ACE inlining */
+#define __ACE_INLINE__ 1
+
+
+#endif /* ACE_CONFIG_KFREEBSDH */
+
+
diff --git a/ACE/ace/config-linux-common.h b/ACE/ace/config-linux-common.h
deleted file mode 100644
index 7122d00a974..00000000000
--- a/ACE/ace/config-linux-common.h
+++ /dev/null
@@ -1,454 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Do not use this configuration file directly since it's designed to
-// be included by another, specific configuration file, such as
-// config-linux.h. It provides config information common to all Linux
-// platforms. It automatically determines the CPU architecture,
-// compiler (g++ or egcs), and libc (libc5 or glibc), and configures
-// based on those.
-
-#ifndef ACE_LINUX_COMMON_H
-#define ACE_LINUX_COMMON_H
-#include /**/ "ace/pre.h"
-
-#define ACE_HAS_BYTESEX_H
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// Needed to differentiate between libc 5 and libc 6 (aka glibc).
-#include <features.h>
-
-#if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)
-# define ACE_HAS_PTHREADS_UNIX98_EXT
-#endif /* _XOPEN_SOURCE - 0 >= 500 */
-
-#if !defined (ACE_LACKS_LINUX_NPTL)
-
-# include "ace/config-posix.h"
-
- // Temporary fix because NPTL kernels do have shm_open but there is a problem
- // with shm_open/shm_unlink pairing in ACE which needs to be fixed when I have time.
-# if defined (ACE_HAS_SHM_OPEN)
-# undef ACE_HAS_SHM_OPEN
-# endif /* ACE_HAS_SHM_OPEN */
-
-# if defined (ACE_USES_FIFO_SEM)
- // Don't use this for Linux NPTL since this has complete
- // POSIX semaphores which are more efficient
-# undef ACE_USES_FIFO_SEM
-# endif /* ACE_USES_FIFO_SEM */
-
-# if defined (ACE_HAS_POSIX_SEM)
- // Linux NPTL may not define the right POSIX macro
- // but they have the actual runtime support for this stuff
-# if !defined (ACE_HAS_POSIX_SEM_TIMEOUT) && (((_POSIX_C_SOURCE - 0) >= 200112L) || (_XOPEN_SOURCE >= 600))
-# define ACE_HAS_POSIX_SEM_TIMEOUT
-# endif /* !ACE_HAS_POSIX_SEM_TIMEOUT && (((_POSIX_C_SOURCE - 0) >= 200112L) || (_XOPEN_SOURCE >= 600)) */
-# endif /* ACE_HAS_POSIX_SEM */
-#endif /* !ACE_LACKS_LINUX_NPTL */
-
-// First the machine specific part
-
-#if defined (__powerpc__) || defined (__x86_64__)
-# if !defined (ACE_DEFAULT_BASE_ADDR)
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x40000000)
-# endif /* ! ACE_DEFAULT_BASE_ADDR */
-#elif defined (__ia64)
-# if !defined (ACE_DEFAULT_BASE_ADDR)
-// Zero base address should work fine for Linux of IA-64: it just lets
-// the kernel to choose the right value.
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x0000000000000000)
-# endif /* ! ACE_DEFAULT_BASE_ADDR */
-#endif /* ! __powerpc__ && ! __ia64 */
-
-// Then glibc/libc5 specific parts
-
-#if defined(__GLIBC__)
-# if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
-# define ACE_HAS_NONCONST_SETRLIMIT
-# endif
-# if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 3)
-# define ACE_HAS_RUSAGE_WHO_ENUM enum __rusage_who
-# define ACE_HAS_RLIMIT_RESOURCE_ENUM enum __rlimit_resource
-# endif
-# define ACE_HAS_SOCKLEN_T
-# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-
- // glibc defines both of these, used in OS_String.
-# if defined (_GNU_SOURCE)
-# define ACE_HAS_STRNLEN
-# define ACE_HAS_WCSNLEN
-
- // This is probably not a 100%-sure-fire check... Red Hat Linux 9
- // and Enterprise Linux 3 and up have a new kernel that can send signals
- // across threads. This was not possible prior because there was no real
- // difference between a process and a thread. With this, the
- // ACE_POSIX_SIG_Proactor is the only chance of getting asynch I/O working.
- // There are restrictions, such as all socket operations being silently
- // converted to synchronous by the kernel, that make aio a non-starter
- // for most Linux platforms at this time. But we'll start to crawl...
-# define ACE_POSIX_SIG_PROACTOR
-# endif
-
- // To avoid the strangeness with Linux's ::select (), which modifies
- // its timeout argument, use ::poll () instead.
-# define ACE_HAS_POLL
-
-// Don't define _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED in ACE to make
-// getpgid() prototype visible. ACE shouldn't depend on feature test
-// macros to make prototypes visible.
-# define ACE_LACKS_GETPGID_PROTOTYPE
-
-// @note the following defines are necessary with glibc 2.0 (0.961212-5)
-// on Alpha. I assume that they're necessary on Intel as well,
-// but that may depend on the version of glibc that is used.
-//# define ACE_HAS_DLFCN_H_BROKEN_EXTERN_C
-# define ACE_HAS_VOIDPTR_SOCKOPT
-
-// Don't define _POSIX_SOURCE in ACE to make strtok() prototype
-// visible. ACE shouldn't depend on feature test macros to make
-// prototypes visible.
-# define ACE_LACKS_STRTOK_R_PROTOTYPE
-// @note end of glibc 2.0 (0.961212-5)-specific configuration.
-
-# if __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1
- // These were suggested by Robert Hanzlik <robi@codalan.cz> to get
- // ACE to compile on Linux using glibc 2.1 and libg++/gcc 2.8.
-# undef ACE_HAS_BYTESEX_H
-# define ACE_HAS_SIGINFO_T
-# define ACE_LACKS_SIGINFO_H
-# define ACE_HAS_UCONTEXT_T
-
- // Pre-glibc (RedHat 5.2) doesn't have sigtimedwait.
-# define ACE_HAS_SIGTIMEDWAIT
-# endif /* __GLIBC__ 2.1+ */
-#else /* ! __GLIBC__ */
- // Fixes a problem with some non-glibc versions of Linux...
-# define ACE_LACKS_MADVISE
-# define ACE_LACKS_MSG_ACCRIGHTS
-#endif /* ! __GLIBC__ */
-
-// Don't define _LARGEFILE64_SOURCE in ACE to make llseek() or
-// lseek64() prototype visible. ACE shouldn't depend on feature test
-// macros to make prototypes visible.
-#if __GLIBC__ > 1
-# if __GLIBC_MINOR__ == 0
-# define ACE_HAS_LLSEEK
-# define ACE_LACKS_LLSEEK_PROTOTYPE
-# else /* __GLIBC_MINOR__ > 0 */
-# define ACE_HAS_LSEEK64
-# define ACE_LACKS_LSEEK64_PROTOTYPE
-# endif
-#endif /* __GLIBC__ > 1 */
-
-#if __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1
-# define ACE_HAS_P_READ_WRITE
-# define ACE_LACKS_PREAD_PROTOTYPE
-// Use ACE's alternate cuserid() implementation since the use of the
-// system cuserid() is discouraged.
-# define ACE_HAS_ALT_CUSERID
-#endif /* __GLIBC__ > 1 && __GLIBC_MINOR__ >= 0 */
-
-#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)
-# define ACE_HAS_ISASTREAM_PROTOTYPE
-# define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
-# define ACE_HAS_CPU_SET_T
-#endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 3) */
-
-// Then the compiler specific parts
-
-#if defined (__INTEL_COMPILER)
-# include "ace/config-icc-common.h"
-#elif defined (__GNUG__)
- // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
- // this must appear before its #include.
-# define ACE_HAS_STRING_CLASS
-# include "ace/config-g++-common.h"
-#define ACE_CC_NAME ACE_TEXT ("g++")
-#define ACE_CC_MAJOR_VERSION __GNUC__
-#define ACE_CC_MINOR_VERSION __GNUC_MINOR__
-//#define ACE_CC_BETA_VERSION 0 /* ??? */
-#elif defined (__DECCXX)
-# define ACE_CONFIG_INCLUDE_CXX_COMMON
-# include "ace/config-cxx-common.h"
-#elif defined (__SUNCC_PRO)
-# include "ace/config-suncc-common.h"
-#elif defined (__PGI)
-// Portable group compiler
-# define ACE_HAS_CPLUSPLUS_HEADERS
-# define ACE_HAS_STDCPP_STL_INCLUDES
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# define ACE_LACKS_SWAB
-#elif defined (__GNUC__)
-/**
- * GNU C compiler.
- *
- * We need to recognize the GNU C compiler since TAO has at least one
- * C source header and file
- * (TAO/orbsvcs/orbsvcs/SSLIOP/params_dup.{h,c}) that may indirectly
- * include this
- */
-#else /* ! __GNUG__ && !__DECCXX && !__INTEL_COMPILER && && !__PGI */
-# ifdef __cplusplus /* Let it slide for C compilers. */
-# error unsupported compiler in ace/config-linux-common.h
-# endif /* __cplusplus */
-#endif /* ! __GNUG__*/
-
-// Completely common part :-)
-
-// Platform/compiler has the sigwait(2) prototype
-# define ACE_HAS_SIGWAIT
-
-# define ACE_HAS_SIGSUSPEND
-
-# define ACE_HAS_UALARM
-
-#if __GLIBC__ >= 2
-#ifndef ACE_HAS_POSIX_REALTIME_SIGNALS
-#define ACE_HAS_POSIX_REALTIME_SIGNALS
-#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-
-#ifndef ACE_HAS_AIO_CALLS
-#define ACE_HAS_AIO_CALLS
-#endif /* ACE_HAS_AIO_CALLS */
-#endif
-
-#if __GLIBC__ >= 2
-// glibc 2 and higher has wchar support
-# define ACE_HAS_XPG4_MULTIBYTE_CHAR
-# define ACE_HAS_VFWPRINTF
-#endif
-
-#if __GLIBC__ < 2
-// These are present in glibc 2 and higher
-# define ACE_LACKS_WCSTOK
-# define ACE_LACKS_WCSDUP_PROTOTYPE
-#endif /* __GLIBC__ < 2 */
-
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_ISWASCII
-
-#if __GLIBC__ >= 2
-# define ACE_HAS_3_PARAM_WCSTOK
-#endif
-
-#define ACE_HAS_3_PARAM_READDIR_R
-
-#if !defined (ACE_DEFAULT_BASE_ADDR)
-# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-#endif /* ! ACE_DEFAULT_BASE_ADDR */
-
-// Compiler/platform supports alloca().
-// 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/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_SYS_SYSINFO_H
-#define ACE_HAS_LINUX_SYSINFO
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_GETRUSAGE_PROTOTYPE
-
-#define ACE_HAS_BYTESWAP_H
-#define ACE_HAS_BSWAP_16
-#define ACE_HAS_BSWAP_32
-
-#if defined __GNUC__ && __GNUC__ >= 2
-# define ACE_HAS_BSWAP_64
-#endif
-
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// ONLY define this if you have config'd multicast into a 2.0.34 or
-// prior kernel. It is enabled by default in 2.0.35 kernels.
-#if !defined (ACE_HAS_IP_MULTICAST)
-# define ACE_HAS_IP_MULTICAST
-#endif /* ! ACE_HAS_IP_MULTICAST */
-
-// At least for IPv4, Linux lacks perfect filtering.
-#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-
-#define ACE_HAS_BIG_FD_SET
-
-// Linux defines struct msghdr in /usr/include/socket.h
-#define ACE_HAS_MSG
-
-// Linux "improved" the interface to select() so that it modifies
-// the struct timeval to reflect the amount of time not slept
-// (see NOTES in Linux's select(2) man page).
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
-
-#define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1
-
-#define ACE_HAS_GETPAGESIZE 1
-
-#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
-// glibc supports wchar, but lacks fgetwc and ungetwc
-# define ACE_LACKS_FGETWC
-# define ACE_HAS_NONCONST_MSGSND
-# define ACE_LACKS_STRNLEN_PROTOTYPE
-#endif
-
-// glibc requires _XOPEN_SOURCE_EXTENDED to make this prototype
-// visible, so force ACE to declare one. Yuk!
-#ifndef _XOPEN_SOURCE_EXTENDED
-# define ACE_LACKS_MKSTEMP_PROTOTYPE
-#endif /* !_XOPEN_SOURCE_EXTENDED */
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-// Platform supplies scandir()
-#define ACE_HAS_SCANDIR
-// Although the scandir man page says otherwise, this setting is correct.
-#define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR
-
-// A conflict appears when including both <ucontext.h> and
-// <sys/procfs.h> with recent glibc headers.
-//#define ACE_HAS_PROC_FS
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYS_SYSCALL_H
-
-// Platform/compiler supports global timezone variable.
-#define ACE_HAS_TIMEZONE
-
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Don't define _XOPEN_SOURCE in ACE to make strptime() prototype
-// visible. ACE shouldn't depend on feature test macros to make
-// prototypes visible.
-#define ACE_LACKS_STRPTIME_PROTOTYPE
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-#define ACE_HAS_POSIX_TIME
-
-#define ACE_HAS_GPERF
-
-#define ACE_HAS_DIRENT
-
-// Starting with FC9 rawhide this file is not available anymore but
-// this define is set
-#if defined _XOPEN_STREAMS && _XOPEN_STREAMS == -1
-# define ACE_LACKS_STROPTS_H
-# define ACE_LACKS_STRRECVFD
-#endif
-
-#if !defined (ACE_LACKS_STROPTS_H)
-# define ACE_HAS_STRBUF_T
-#endif
-
-#if defined (__ia64) || defined(__alpha) || defined (__x86_64__)
-// On 64 bit platforms, the "long" type is 64-bits. Override the
-// default 32-bit platform-specific format specifiers appropriately.
-# define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%lu"
-# define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%ld"
-# define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%lu"
-#endif /* __ia64 */
-
-#define ACE_SIZEOF_WCHAR 4
-
-#define ACE_LACKS_GETIPNODEBYADDR
-#define ACE_LACKS_GETIPNODEBYNAME
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-// Linux implements sendfile().
-#define ACE_HAS_SENDFILE 1
-
-#define ACE_HAS_VOIDPTR_MMAP
-
-#define ACE_HAS_ICMP_SUPPORT 1
-
-#define ACE_HAS_VASPRINTF
-
-// According to man pages Linux uses different (compared to UNIX systems) types
-// for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP
-// in setsockopt/getsockopt.
-#define ACE_HAS_IP_MULTICAST_TTL_AS_INT 1
-#define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1
-#define ACE_HAS_IP_MULTICAST_LOOP_AS_INT 1
-
-#if defined (ACE_LACKS_NETWORKING)
-# include "ace/config-posix-nonetworking.h"
-#else
-# define ACE_HAS_NETLINK
-# define ACE_HAS_GETIFADDRS
-#endif
-
-#if !defined (ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO)
-// Detect if getsockname() and getpeername() returns random values in
-// the sockaddr_in::sin_zero field by evaluation of the kernel
-// version. Since version 2.5.47 this problem is fixed.
-# if !defined (ACE_LACKS_LINUX_VERSION_H)
-# include <linux/version.h>
-# endif /* !ACE_LACKS_LINUX_VERSION_H */
-# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,47))
-# define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO 0
-# else
-# define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO 1
-# endif /* (LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,47)) */
-#endif /* ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO */
-
-#if defined (ACE_HAS_EVENT_POLL)
-// The sys_epoll interface was introduced in Linux kernel 2.5.45.
-// Don't support backported versions since they appear to be buggy.
-// The obsolete ioctl()-based interface is no longer supported.
-#if 0
-// linux/version.h may not be accurate. It's not for Fedora Core 2...
-# if !defined (ACE_LACKS_LINUX_VERSION_H)
-# include <linux/version.h>
-# endif /* !ACE_LACKS_LINUX_VERSION_H */
-# if (LINUX_VERSION_CODE < KERNEL_VERSION (2,5,45))
-# undef ACE_HAS_EVENT_POLL
-# error Disabling Linux epoll support. Kernel used in C library is too old.
-# error Linux kernel 2.5.45 or better is required.
-# endif /* LINUX_VERSION_CODE < KERNEL_VERSION (2,5,45) */
-#endif /* ACE_HAS_EVENT_POLL */
-#endif
-
-#if !defined (ACE_HAS_EVENT_POLL) && !defined (ACE_HAS_DEV_POLL)
-# if !defined (ACE_LACKS_LINUX_VERSION_H)
-# include <linux/version.h>
-# endif /* !ACE_LACKS_LINUX_VERSION_H */
-# if (LINUX_VERSION_CODE > KERNEL_VERSION (2,6,0))
-# define ACE_HAS_EVENT_POLL
-# endif
-#endif
-
-#include /**/ "ace/post.h"
-
-#endif /* ACE_LINUX_COMMON_H */
diff --git a/ACE/ace/config-linux.h b/ACE/ace/config-linux.h
index 7f6510f7d05..b4fff00a671 100644
--- a/ACE/ace/config-linux.h
+++ b/ACE/ace/config-linux.h
@@ -9,66 +9,375 @@
#define ACE_CONFIG_LINUX_H
#include /**/ "ace/pre.h"
+#if !defined (ACE_MT_SAFE)
+# define ACE_MT_SAFE 1
+#endif
+
+#if !defined (__ACE_INLINE__)
+# define __ACE_INLINE__
+#endif /* ! __ACE_INLINE__ */
+
#define ACE_PLATFORM_CONFIG config-linux.h
-#include "ace/config-linux-common.h"
+#define ACE_HAS_BYTESEX_H
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
+// Needed to differentiate between libc 5 and libc 6 (aka glibc).
+#include <features.h>
-#if !defined (ACE_MT_SAFE)
-#define ACE_MT_SAFE 1 // JCEJ 12/22/96 #1
-#endif
+#if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)
+# define ACE_HAS_PTHREADS_UNIX98_EXT
+#endif /* _XOPEN_SOURCE - 0 >= 500 */
+
+# include "ace/config-posix.h"
+
+#if !defined (ACE_LACKS_LINUX_NPTL)
+
+ // Temporary fix because NPTL kernels do have shm_open but there is a problem
+ // with shm_open/shm_unlink pairing in ACE which needs to be fixed when I have time.
+# if defined (ACE_HAS_SHM_OPEN)
+# undef ACE_HAS_SHM_OPEN
+# endif /* ACE_HAS_SHM_OPEN */
-#if ACE_MT_SAFE
-// Yes, we do have threads.
-#define ACE_HAS_THREADS
-// And they're even POSIX pthreads (LinuxThreads implementation)
-#define ACE_HAS_PTHREADS
-
-// On linux this is part of pthreads
-# if (defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L)
-# if !defined (ACE_HAS_CLOCK_GETTIME)
-# if !defined(__PGI)
-# define ACE_HAS_CLOCK_GETTIME
-# endif /* __PGI */
-# define ACE_HAS_CLOCK_SETTIME
-# endif /* !ACE_HAS_CLOCK_GETTIME */
-# endif /* _POSIX_C_SOURCE >= 199309L */
-
-#if !defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# define ACE_LACKS_RWLOCK_T
+# if defined (ACE_USES_FIFO_SEM)
+ // Don't use this for Linux NPTL since this has complete
+ // POSIX semaphores which are more efficient
+# undef ACE_USES_FIFO_SEM
+# endif /* ACE_USES_FIFO_SEM */
+
+# if defined (ACE_HAS_POSIX_SEM)
+ // Linux NPTL may not define the right POSIX macro
+ // but they have the actual runtime support for this stuff
+# if !defined (ACE_HAS_POSIX_SEM_TIMEOUT) && (((_POSIX_C_SOURCE - 0) >= 200112L) || (_XOPEN_SOURCE >= 600))
+# define ACE_HAS_POSIX_SEM_TIMEOUT
+# endif /* !ACE_HAS_POSIX_SEM_TIMEOUT && (((_POSIX_C_SOURCE - 0) >= 200112L) || (_XOPEN_SOURCE >= 600)) */
+# endif /* ACE_HAS_POSIX_SEM */
+#endif /* !ACE_LACKS_LINUX_NPTL */
+
+// AIO support pulls in the rt library, which pulls in the pthread
+// library. Disable AIO in single-threaded builds.
+#if defined (ACE_HAS_THREADS)
+# define ACE_HAS_CLOCK_GETTIME
+# define ACE_HAS_CLOCK_SETTIME
#else
-# define ACE_HAS_RECURSIVE_MUTEXES
-#endif /* !ACE_HAS_PTHREADS_UNIX98_EXT */
+# undef ACE_HAS_AIO_CALLS
+#endif
+
+// First the machine specific part
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE // jcej 12/22/96 #2
+#if defined (__powerpc__) || defined (__x86_64__)
+# if !defined (ACE_DEFAULT_BASE_ADDR)
+# define ACE_DEFAULT_BASE_ADDR ((char *) 0x40000000)
+# endif /* ! ACE_DEFAULT_BASE_ADDR */
+#elif defined (__ia64)
+# if !defined (ACE_DEFAULT_BASE_ADDR)
+// Zero base address should work fine for Linux of IA-64: it just lets
+// the kernel to choose the right value.
+# define ACE_DEFAULT_BASE_ADDR ((char *) 0x0000000000000000)
+# endif /* ! ACE_DEFAULT_BASE_ADDR */
+#endif /* ! __powerpc__ && ! __ia64 */
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS // JCEJ 1/7-8/96
+// Then glibc/libc5 specific parts
#if defined(__GLIBC__)
-// Platform supports reentrant functions (i.e., all the POSIX *_r
-// functions).
-#define ACE_HAS_REENTRANT_FUNCTIONS
+# if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 3)
+# define ACE_HAS_RUSAGE_WHO_ENUM enum __rusage_who
+# define ACE_HAS_RLIMIT_RESOURCE_ENUM enum __rlimit_resource
+# define ACE_LACKS_ISCTYPE
+# endif
+# define ACE_HAS_SOCKLEN_T
+# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
- // Older versions of glibc lacked reentrant netdb functions
-# define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+ // glibc defines both of these, used in OS_String.
+# if defined (_GNU_SOURCE)
+# define ACE_HAS_STRNLEN
+# define ACE_HAS_WCSNLEN
- // glibc < 2.1 lacks pthread_attr_setstacksize()
-# define ACE_LACKS_PTHREAD_ATTR_SETSTACKSIZE
-#endif /* (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1) */
+ // This is probably not a 100%-sure-fire check... Red Hat Linux 9
+ // and Enterprise Linux 3 and up have a new kernel that can send signals
+ // across threads. This was not possible prior because there was no real
+ // difference between a process and a thread. With this, the
+ // ACE_POSIX_SIG_Proactor is the only chance of getting asynch I/O working.
+ // There are restrictions, such as all socket operations being silently
+ // converted to synchronous by the kernel, that make aio a non-starter
+ // for most Linux platforms at this time. But we'll start to crawl...
+# define ACE_POSIX_SIG_PROACTOR
+# endif
-// uses ctime_r & asctime_r with only two parameters vs. three
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+ // To avoid the strangeness with Linux's ::select (), which modifies
+ // its timeout argument, use ::poll () instead.
+# define ACE_HAS_POLL
+
+# define ACE_HAS_SIGINFO_T
+# define ACE_LACKS_SIGINFO_H
+# define ACE_HAS_UCONTEXT_T
+# define ACE_HAS_SIGTIMEDWAIT
+
+#else /* ! __GLIBC__ */
+ // Fixes a problem with some non-glibc versions of Linux...
+# define ACE_LACKS_MADVISE
+# define ACE_LACKS_MSG_ACCRIGHTS
+#endif /* ! __GLIBC__ */
+
+#define ACE_HAS_LSEEK64
+//#define ACE_LACKS_LSEEK64_PROTOTYPE
+
+#define ACE_HAS_P_READ_WRITE
+// Use ACE's alternate cuserid() implementation since the use of the
+// system cuserid() is discouraged.
+#define ACE_HAS_ALT_CUSERID
+
+#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)
+# define ACE_HAS_ISASTREAM_PROTOTYPE
+# define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
+# define ACE_HAS_CPU_SET_T
+#endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 3) */
+
+// Then the compiler specific parts
+
+#if defined (__INTEL_COMPILER)
+# include "ace/config-icc-common.h"
+#elif defined (__GNUG__)
+ // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
+ // this must appear before its #include.
+# define ACE_HAS_STRING_CLASS
+# include "ace/config-g++-common.h"
+# ifdef __clang__
+# undef ACE_HAS_GCC_ATOMIC_BUILTINS
+# endif
+#elif defined (__SUNCC_PRO) || defined (__SUNPRO_CC)
+# include "ace/config-suncc-common.h"
+#elif defined (__PGI)
+// Portable group compiler
+# define ACE_HAS_CPLUSPLUS_HEADERS
+# define ACE_HAS_STDCPP_STL_INCLUDES
+# define ACE_HAS_STANDARD_CPP_LIBRARY 1
+# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+# define ACE_LACKS_SWAB
+#elif defined (__GNUC__)
+/**
+ * GNU C compiler.
+ *
+ * We need to recognize the GNU C compiler since TAO has at least one
+ * C source header and file
+ * (TAO/orbsvcs/orbsvcs/SSLIOP/params_dup.{h,c}) that may indirectly
+ * include this
+ */
+#else /* ! __GNUG__ && !__DECCXX && !__INTEL_COMPILER && && !__PGI */
+# ifdef __cplusplus /* Let it slide for C compilers. */
+# error unsupported compiler in ace/config-linux.h
+# endif /* __cplusplus */
+#endif /* ! __GNUG__*/
+
+// Completely common part :-)
+
+// Platform/compiler has the sigwait(2) prototype
+#define ACE_HAS_SIGWAIT
+
+#define ACE_HAS_SIGSUSPEND
+
+#define ACE_HAS_UALARM
+
+#define ACE_HAS_STRSIGNAL
+
+#ifndef ACE_HAS_POSIX_REALTIME_SIGNALS
+# define ACE_HAS_POSIX_REALTIME_SIGNALS
+#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
+
+#define ACE_HAS_XPG4_MULTIBYTE_CHAR
+#define ACE_HAS_VFWPRINTF
+
+#define ACE_LACKS_ITOW
+#define ACE_LACKS_WCSICMP
+#define ACE_LACKS_WCSNICMP
+#define ACE_LACKS_ISWASCII
+
+#define ACE_HAS_3_PARAM_WCSTOK
+
+#define ACE_HAS_3_PARAM_READDIR_R
+
+#if !defined (ACE_DEFAULT_BASE_ADDR)
+# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
+#endif /* ! ACE_DEFAULT_BASE_ADDR */
+
+#define ACE_HAS_ALLOCA
+
+// Compiler/platform has <alloca.h>
+#define ACE_HAS_ALLOCA_H
+#define ACE_HAS_SYS_SYSINFO_H
+#define ACE_HAS_LINUX_SYSINFO
+
+// Compiler/platform has the getrusage() system call.
+#define ACE_HAS_GETRUSAGE
+#define ACE_HAS_GETRUSAGE_PROTOTYPE
+
+#define ACE_HAS_BYTESWAP_H
+#define ACE_HAS_BSWAP_16
+#define ACE_HAS_BSWAP_32
+
+#if defined (__GNUC__)
+# define ACE_HAS_BSWAP_64
#endif
+#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+
+// Optimize ACE_Handle_Set for select().
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+
+// ONLY define this if you have config'd multicast into a 2.0.34 or
+// prior kernel. It is enabled by default in 2.0.35 kernels.
+#if !defined (ACE_HAS_IP_MULTICAST)
+# define ACE_HAS_IP_MULTICAST
+#endif /* ! ACE_HAS_IP_MULTICAST */
+
+// At least for IPv4, Linux lacks perfect filtering.
+#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
+# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
+#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
+
+#define ACE_HAS_BIG_FD_SET
+
+// Linux defines struct msghdr in /usr/include/socket.h
+#define ACE_HAS_MSG
+
+// Linux "improved" the interface to select() so that it modifies
+// the struct timeval to reflect the amount of time not slept
+// (see NOTES in Linux's select(2) man page).
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+
+#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
+
+#define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1
+
+#define ACE_HAS_GETPAGESIZE 1
+
+// Platform defines struct timespec but not timespec_t
+#define ACE_LACKS_TIMESPEC_T
+
+// 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.
+//#define ACE_HAS_PROC_FS
+
+// Platform supports System V IPC (most versions of UNIX, but not Win32)
+#define ACE_HAS_SYSV_IPC
+
+// Compiler/platform contains the <sys/syscall.h> file.
+#define ACE_HAS_SYS_SYSCALL_H
+
+// Platform/compiler supports global timezone variable.
+#define ACE_HAS_TIMEZONE
+
+#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
+
+// Compiler supports the ssize_t typedef.
+#define ACE_HAS_SSIZE_T
+
+// Compiler/platform defines the sig_atomic_t typedef.
+#define ACE_HAS_SIG_ATOMIC_T
+
+// Compiler/platform defines a union semun for SysV shared memory.
+#define ACE_HAS_SEMUN
+
+#define ACE_HAS_POSIX_TIME
+
+#define ACE_HAS_GPERF
+
+#define ACE_HAS_DIRENT
+
+// Starting with FC9 rawhide this file is not available anymore but
+// this define is set
+#if defined _XOPEN_STREAMS && _XOPEN_STREAMS == -1
+# define ACE_LACKS_STROPTS_H
+# define ACE_LACKS_STRRECVFD
+#endif
+
+#if !defined (ACE_LACKS_STROPTS_H)
+# define ACE_HAS_STRBUF_T
+#endif
+
+#if defined (__ia64) || defined(__alpha) || defined (__x86_64__) || defined(__powerpc64__)
+// On 64 bit platforms, the "long" type is 64-bits. Override the
+// default 32-bit platform-specific format specifiers appropriately.
+# define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%lu"
+# define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%ld"
+# define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%lu"
+#endif /* __ia64 */
+
+#define ACE_SIZEOF_WCHAR 4
+
+#if defined (__powerpc__) && !defined (ACE_SIZEOF_LONG_DOUBLE)
+// 32bit PowerPC Linux uses 128bit long double
+# define ACE_SIZEOF_LONG_DOUBLE 16
+#endif
+
+#define ACE_LACKS_GETIPNODEBYADDR
+#define ACE_LACKS_GETIPNODEBYNAME
+
+// Platform has POSIX terminal interface.
+#define ACE_HAS_TERMIOS
+
+// Linux implements sendfile().
+#define ACE_HAS_SENDFILE 1
+
+#define ACE_HAS_VOIDPTR_MMAP
+
+#define ACE_HAS_ICMP_SUPPORT 1
+
+#define ACE_HAS_VASPRINTF
+
+// According to man pages Linux uses different (compared to UNIX systems) types
+// for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP
+// in setsockopt/getsockopt.
+#define ACE_HAS_IP_MULTICAST_TTL_AS_INT 1
+#define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1
+#define ACE_HAS_IP_MULTICAST_LOOP_AS_INT 1
+
+#if defined (ACE_LACKS_NETWORKING)
+# include "ace/config-posix-nonetworking.h"
#else
-// AIO support pulls in the rt library, which pulls in the pthread
-// library. Disable AIO in single-threaded builds.
-# undef ACE_HAS_AIO_CALLS
-#endif /* ACE_MT_SAFE */
+# define ACE_HAS_NETLINK
+# define ACE_HAS_GETIFADDRS
+#endif
+
+#if !defined (ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO)
+// Detect if getsockname() and getpeername() returns random values in
+// the sockaddr_in::sin_zero field by evaluation of the kernel
+// version. Since version 2.5.47 this problem is fixed.
+# if !defined (ACE_LACKS_LINUX_VERSION_H)
+# include <linux/version.h>
+# endif /* !ACE_LACKS_LINUX_VERSION_H */
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,47))
+# define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO 0
+# else
+# define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO 1
+# endif /* (LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,47)) */
+#endif /* ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO */
+
+#if !defined (ACE_HAS_EVENT_POLL) && !defined (ACE_HAS_DEV_POLL)
+# if !defined (ACE_LACKS_LINUX_VERSION_H)
+# include <linux/version.h>
+# endif /* !ACE_LACKS_LINUX_VERSION_H */
+# if (LINUX_VERSION_CODE > KERNEL_VERSION (2,6,0))
+# define ACE_HAS_EVENT_POLL
+# endif
+#endif
+
+
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_HAS_AUTOMATIC_INIT_FINI
+#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
+#define ACE_HAS_RECURSIVE_MUTEXES
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_REENTRANT_FUNCTIONS
#include /**/ "ace/post.h"
diff --git a/ACE/ace/config-lite.h b/ACE/ace/config-lite.h
index 0835426e27c..63a86be9771 100644
--- a/ACE/ace/config-lite.h
+++ b/ACE/ace/config-lite.h
@@ -27,12 +27,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-// Empty ACE_OS namespace to help identify compiler errors more
-// easily. -- @@ Do we really need this?
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-namespace ACE_OS {}
-ACE_END_VERSIONED_NAMESPACE_DECL
-
// ============================================================================
// UNICODE macros (to be added later)
// ============================================================================
@@ -122,13 +116,13 @@ ACE_END_VERSIONED_NAMESPACE_DECL
// Once all C++ compilers support the standard reverse_iterator
// adapters, we can drop this generator macro or at least drop the
// MSVC++ or Sun Studio preprocessor conditional blocks.
-#if defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x590 \
+#if defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x5110 \
&& !defined (_STLPORT_VERSION)
// If we're not using the stlport4 C++ library (which has standard
// iterators), we need to ensure this is included in order to test
// the _RWSTD_NO_CLASS_PARTIAL_SPEC feature test macro below.
# include <Cstd/stdcomp.h>
-#endif /* __SUNPRO_CC <= 0x580 */
+#endif /* __SUNPRO_CC <= 0x5110 */
#if (defined (_MSC_VER) && (_MSC_VER <= 1310) && defined (_WIN64)) \
|| defined (ACE_HAS_BROKEN_STD_REVERSE_ITERATOR)
// VC 7.1 and the latest 64-bit platform SDK still don't define a standard
@@ -137,7 +131,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
typedef std::reverse_iterator<iterator, value_type> reverse_iterator; \
typedef std::reverse_iterator<const_iterator, \
value_type const> const_reverse_iterator;
-#elif defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x590 \
+#elif defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x5110 \
&& defined (_RWSTD_NO_CLASS_PARTIAL_SPEC)
# define ACE_DECLARE_STL_REVERSE_ITERATORS \
typedef std::reverse_iterator<iterator, \
diff --git a/ACE/ace/config-lynxos.h b/ACE/ace/config-lynxos.h
index 14cb556ec1a..957a5cf236b 100644
--- a/ACE/ace/config-lynxos.h
+++ b/ACE/ace/config-lynxos.h
@@ -7,32 +7,34 @@
#define ACE_CONFIG_H
#include /**/ "ace/pre.h"
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
+// System include files are not in sys/, this gets rid of warning.
+#define __NO_INCLUDE_WARN__
+
+#define __FREEBSDCODE__
+#include <param.h>
+#undef __FREEBSDCODE__
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
+#include "ace/config-g++-common.h"
// Compile using multi-thread libraries.
#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
+# define ACE_MT_SAFE 1
#endif
#include "ace/config-posix.h"
#if defined (__x86__)
-# define ACE_HAS_PENTIUM
+# define ACE_HAS_PENTIUM
#elif defined (__powerpc__)
- // It looks like the default stack size is 15000.
- // ACE's Recursive_Mutex_Test needs more.
-# define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
- // This doesn't work on LynxOS 3.0.0, because it resets the TimeBaseRegister.
- // # define ACE_HAS_POWERPC_TIMER
+ // It looks like the default stack size is 15000.
+ // ACE's Recursive_Mutex_Test needs more.
+# define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
+ // This doesn't work on LynxOS 3.0.0, because it resets the TimeBaseRegister.
+ // # define ACE_HAS_POWERPC_TIMER
#endif /* __x86__ || __powerpc__ */
-#define ACE_DEFAULT_BASE_ADDR ((char *) 0)
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_3_PARAM_READDIR_R
#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
#define ACE_HAS_ALLOCA
#define ACE_HAS_ALLOCA_H
@@ -45,13 +47,19 @@
#define ACE_HAS_CLOCK_SETTIME
#define ACE_HAS_CPLUSPLUS_HEADERS
#define ACE_HAS_DIRENT
+#define ACE_HAS_GETIFADDRS
#define ACE_HAS_GETPAGESIZE
#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_GNU_CSTRING_H
+#define ACE_HAS_GETRUSAGE_PROTOTYPE
#define ACE_HAS_GPERF
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
#define ACE_HAS_ICMP_SUPPORT 1
#define ACE_HAS_IP_MULTICAST
+#define ACE_HAS_MEMCHR
+#define ACE_HAS_MKDIR
#define ACE_HAS_MSG
+#define ACE_HAS_NANOSLEEP
+#define ACE_HAS_NEW_NOTHROW
#define ACE_HAS_NONCONST_CLOCK_SETTIME
#define ACE_HAS_NONCONST_MSGSND
#define ACE_HAS_NONCONST_READV
@@ -60,41 +68,50 @@
#define ACE_HAS_NONCONST_WRITEV
#define ACE_HAS_POSIX_NONBLOCK
#define ACE_HAS_POSIX_TIME
+#define ACE_HAS_PTHREADS_UNIX98_EXT
+#define ACE_HAS_PTHREAD_GETCONCURRENCY
+#define ACE_HAS_PTHREAD_SETCONCURRENCY
+#define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+#define ACE_HAS_REENTRANT_FUNCTIONS
#define ACE_HAS_SCANDIR
+#define ACE_HAS_SIGACTION_CONSTP2
#define ACE_HAS_SIGINFO_T
+#define ACE_HAS_SIGSUSPEND
#define ACE_HAS_SIGTIMEDWAIT
#define ACE_HAS_SIGWAIT
#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_SIG_C_FUNC
+#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN
+#define ACE_HAS_SOCKADDR_IN_SIN_LEN
+#define ACE_HAS_SOCKADDR_MSG_NAME
+#define ACE_HAS_SOCKLEN_T
#define ACE_HAS_SSIZE_T
#define ACE_HAS_STREAMS
-#define ACE_HAS_STRERROR
-#define ACE_HAS_SYS_SIGLIST
+#define ACE_HAS_STRINGS
+#define ACE_HAS_STRING_CLASS
+#define ACE_HAS_SYSCTL
+#define ACE_HAS_SYS_FILIO_H
#define ACE_HAS_SYS_SOCKIO_H
#define ACE_HAS_TERMIOS
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
+
#define ACE_LACKS_ALPHASORT_PROTOTYPE
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_GETPGID
#define ACE_LACKS_ISCTYPE
#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MKSTEMP_PROTOTYPE
-#define ACE_LACKS_MKTEMP_PROTOTYPE
-#define ACE_LACKS_PUTENV_PROTOTYPE
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
#define ACE_LACKS_REALPATH
-#define ACE_LACKS_RLIMIT_NOFILE
-#define ACE_LACKS_RWLOCK_T
#define ACE_LACKS_SCANDIR_PROTOTYPE
-#define ACE_LACKS_SETEGID
-#define ACE_LACKS_SETEUID
#define ACE_LACKS_SIGINFO_H
#define ACE_LACKS_STRPTIME
#define ACE_LACKS_SUSECONDS_T
-#define ACE_LACKS_SWAB_PROTOTYPE
#define ACE_LACKS_TIMESPEC_T
#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_VSNPRINTF
-#define ACE_LACKS_WCHAR_H
+#define ACE_LACKS_STD_WSTRING
+
+#define ACE_DEFAULT_BASE_ADDR ((char *) 0)
+#define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
#define ACE_MALLOC_ALIGN 8
#define ACE_PAGE_SIZE 4096
#define ACE_POSIX_SIG_PROACTOR
@@ -103,78 +120,68 @@
// LynxOS has poll.h but it is unusable since implementation is not provided
#define ACE_LACKS_POLL_H
-#if ACE_MT_SAFE == 1
- // Platform supports threads.
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-# define ACE_LACKS_NULL_PTHREAD_STATUS
-# define ACE_LACKS_THREAD_PROCESS_SCOPING
-# define ACE_LACKS_PTHREAD_ATTR_SETSTACK
-# if ACE_LYNXOS_MAJOR == 4 && ACE_LYNXOS_MINOR == 0
-# define ACE_LACKS_SETDETACH
-# define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
-# endif
-#endif /* ACE_MT_SAFE */
-
-// By default, don't include RCS Id strings in object code.
-#if !defined (ACE_USE_RCSID)
-# define ACE_USE_RCSID 0
-#endif /* ! ACE_USE_RCSID */
-
-// System include files are not in sys/, this gets rid of warning.
-#define __NO_INCLUDE_WARN__
-
-// "changes signedness" error (OS.i and many other files)
-#define ACE_HAS_SOCKLEN_T
-// LSOCK.cpp uses a macro from param.h, not included
-#define ALIGNBYTES (sizeof(int) - 1)
-#define ALIGN(p) (((unsigned)p + ALIGNBYTES) & ~ALIGNBYTES)
+#if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
+# define ACE_HAS_BROKEN_THREAD_KEYFREE
+#endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
#if ACE_LYNXOS_MAJOR == 4 && ACE_LYNXOS_MINOR == 0
-# define ACE_LACKS_GETOPT_PROTOTYPE
-# define ACE_LACKS_INET_ATON_PROTOTYPE
-# define ACE_LACKS_REGEX_H
-# define ACE_LACKS_STRCASECMP_PROTOTYPE
-# define ACE_LACKS_STRNCASECMP_PROTOTYPE
-# define ACE_LACKS_SYS_SELECT_H
-# define ACE_HAS_NONCONST_GETBY
-# define ACE_HAS_NONCONST_INET_ADDR
+// LynxOS 4.0
+# define ACE_LACKS_GETOPT_PROTOTYPE
+# define ACE_LACKS_INET_ATON_PROTOTYPE
+# define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
+# define ACE_LACKS_REGEX_H
+# define ACE_LACKS_RWLOCK_T
+# define ACE_LACKS_SETDETACH
+# define ACE_LACKS_STRCASECMP_PROTOTYPE
+# define ACE_LACKS_STRNCASECMP_PROTOTYPE
+# define ACE_LACKS_SYS_SELECT_H
+# define ACE_LACKS_THREAD_PROCESS_SCOPING
#endif
#if (ACE_LYNXOS_MAJOR > 4) || (ACE_LYNXOS_MAJOR == 4 && ACE_LYNXOS_MINOR >= 2)
-// LynxOS 4.2 additons
-# define ACE_HAS_POSIX_SEM_TIMEOUT
-# define ACE_HAS_MUTEX_TIMEOUTS
+// LynxOS 4.2 and 5.0
+# define ACE_HAS_POSIX_SEM_TIMEOUT
+# define ACE_HAS_MUTEX_TIMEOUTS
#endif
-#if (ACE_LYNXOS_MAJOR >=5)
-// LynxOS 5.0 Additons
-# define ACE_HAS_LYNXOS50_SIGNALS
-# define ACE_HAS_NONCONST_GETBY
-# define ACE_HAS_NONCONST_INET_ADDR
-# define ACE_LACKS_INET_ATON_PROTOTYPE
-# define ACE_LACKS_MKSTEMP
-# define ACE_LACKS_RLIMIT
-# define ACE_LACKS_SEMBUF_T
-# define ACE_LACKS_STROPTS_H
-# define ACE_LACKS_STRRECVFD
-# define ACE_LACKS_SYS_SEM_H
-# define _sys_siglist __sys_siglist
-#else
-// LynxOS 5.0 Removals
-# define ACE_HAS_LYNXOS_SIGNALS
+#if (ACE_LYNXOS_MAJOR < 5)
+// LynxOS 4.x
+# define ACE_HAS_LYNXOS4_GETPWNAM_R
+# define ACE_HAS_LYNXOS4_SIGNALS
# define ACE_HAS_SEMUN
# define ACE_HAS_STRBUF_T
# define ACE_HAS_SYSV_IPC
-# define ACE_LACKS_USECONDS_T
+# define ACE_LACKS_CONST_TIMESPEC_PTR
+# define ACE_LACKS_GETPGID
# define ACE_LACKS_ISBLANK
+# define ACE_LACKS_MKSTEMP_PROTOTYPE
+# define ACE_LACKS_MKTEMP_PROTOTYPE
+# define ACE_LACKS_PTHREAD_ATTR_SETSTACK
+# define ACE_LACKS_PUTENV_PROTOTYPE
+# define ACE_LACKS_SETEGID
# define ACE_LACKS_SETENV
+# define ACE_LACKS_SETEUID
+# define ACE_LACKS_SWAB_PROTOTYPE
# define ACE_LACKS_UNSETENV
+# define ACE_LACKS_USECONDS_T
+# define ACE_LACKS_VSNPRINTF
+# define ACE_LACKS_WCHAR_H
+# define ACE_SYS_SIGLIST sys_siglist
+# if !defined (ACE_HAS_THREADS)
+# undef ACE_HAS_AIO_CALLS
+# endif
+#else
+// LynxOS 5.0
+# define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+# define ACE_HAS_NONCONST_INET_ADDR
+# define ACE_LACKS_INET_ATON_PROTOTYPE
+# define ACE_LACKS_SEMBUF_T
+# define ACE_LACKS_STROPTS_H
+# define ACE_LACKS_STRRECVFD
+# define ACE_LACKS_SYS_SEM_H
+# define ACE_SYS_SIGLIST __sys_siglist
#endif
-#if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
-# define ACE_HAS_BROKEN_THREAD_KEYFREE
-#endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
-
#include /**/ "ace/post.h"
+
#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-macosx-iphone-hardware.h b/ACE/ace/config-macosx-iphone-hardware.h
new file mode 100644
index 00000000000..087146899ac
--- /dev/null
+++ b/ACE/ace/config-macosx-iphone-hardware.h
@@ -0,0 +1,15 @@
+// $Id$
+#ifndef ACE_CONFIG_MACOSX_IPHONE_HARDWARE_H
+#define ACE_CONFIG_MACOSX_IPHONE_HARDWARE_H
+
+#define ACE_HAS_IPHONE
+#define ACE_SIZEOF_LONG_DOUBLE 8
+
+#include "ace/config-macosx-snowleopard.h"
+
+#ifdef ACE_HAS_SYSV_IPC
+#undef ACE_HAS_SYSV_IPC
+#endif
+
+#endif ACE_CONFIG_MACOSX_IPHONE_HARDWARE_H
+
diff --git a/ACE/ace/config-macosx-iphone-simulator.h b/ACE/ace/config-macosx-iphone-simulator.h
new file mode 100644
index 00000000000..86ca00538fc
--- /dev/null
+++ b/ACE/ace/config-macosx-iphone-simulator.h
@@ -0,0 +1,9 @@
+// $Id$
+#ifndef ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H
+#define ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H
+
+#define ACE_HAS_IPHONE
+#include "ace/config-macosx-snowleopard.h"
+
+#endif ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H
+
diff --git a/ACE/ace/config-macosx-leopard.h b/ACE/ace/config-macosx-leopard.h
index b706244df69..5c9ff1b20a6 100644
--- a/ACE/ace/config-macosx-leopard.h
+++ b/ACE/ace/config-macosx-leopard.h
@@ -6,6 +6,11 @@
#ifndef ACE_CONFIG_MACOSX_LEOPARD_H
#define ACE_CONFIG_MACOSX_LEOPARD_H
+#define ACE_HAS_MAC_OSX
+#define ACE_HAS_NET_IF_DL_H
+
+#define ACE_HAS_VOID_UNSETENV
+
#if ! defined (__ACE_INLINE__)
#define __ACE_INLINE__
#endif /* ! __ACE_INLINE__ */
@@ -85,9 +90,6 @@
//Platform supports sigsuspend()
#define ACE_HAS_SIGSUSPEND
-//Platform/compiler has macros for sig{empty,fill,add,del}set (e.g., SCO and FreeBSD)
-#define ACE_HAS_SIG_MACROS
-
#define ACE_LACKS_GETPGID
#define ACE_LACKS_RWLOCK_T
@@ -96,12 +98,8 @@
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-//?
-#define ACE_LACKS_SIGSET
-
#define ACE_NEEDS_SCHED_H
-// Use of <malloc.h> is deprecated.
#define ACE_LACKS_MALLOC_H
#define ACE_HAS_ALT_CUSERID
@@ -115,6 +113,7 @@
#define ACE_LACKS_STRRECVFD
+#define ACE_HAS_SOCKADDR_IN_SIN_LEN
#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN
// Platform supports System V IPC (most versions of UNIX, but not Win32)
@@ -147,9 +146,6 @@
// Compiler supports the ssize_t typedef.
#define ACE_HAS_SSIZE_T
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// Compiler/platform provides the sockio.h file.
#define ACE_HAS_SYS_SOCKIO_H
@@ -180,7 +176,6 @@
# define ACE_HAS_THREADS
// And they're even POSIX pthreads
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_PTHREAD_SCHEDPARAM
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
#endif /* ACE_MT_SAFE == 1 */
@@ -231,4 +226,4 @@
#error "Compiler must be upgraded, see http://developer.apple.com"
#endif /* __APPLE_CC__ */
-#endif /* ACE_CONFIG_MACOSX_TIGER_H */
+#endif /* ACE_CONFIG_MACOSX_LEOPARD_H */
diff --git a/ACE/ace/config-macosx-lion.h b/ACE/ace/config-macosx-lion.h
new file mode 100644
index 00000000000..76dbaf8916b
--- /dev/null
+++ b/ACE/ace/config-macosx-lion.h
@@ -0,0 +1,19 @@
+// $Id$
+#ifndef ACE_CONFIG_MACOSX_SNOWLEOPARD_H
+#define ACE_CONFIG_MACOSX_SNOWLEOPARD_H
+
+
+#include "ace/config-macosx-leopard.h"
+
+#ifdef __clang__
+#ifdef ACE_HAS_GCC_ATOMIC_BUILTINS
+#undef ACE_HAS_GCC_ATOMIC_BUILTINS
+#endif
+
+#define ACE_ANY_OPS_USE_NAMESPACE
+
+#endif
+
+#define ACE_LACKS_UCONTEXT_H
+
+#endif // ACE_CONFIG_MACOSX_SNOWLEOPARD_H
diff --git a/ACE/ace/config-macosx-panther.h b/ACE/ace/config-macosx-panther.h
index b6bc04449c8..5075f385fb8 100644
--- a/ACE/ace/config-macosx-panther.h
+++ b/ACE/ace/config-macosx-panther.h
@@ -46,9 +46,6 @@
//Platform supports sigsuspend()
#define ACE_HAS_SIGSUSPEND
-//Platform/compiler has macros for sig{empty,fill,add,del}set (e.g., SCO and FreeBSD)
-#define ACE_HAS_SIG_MACROS
-
//#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
#define ACE_LACKS_GETPGID
#define ACE_LACKS_RWLOCK_T
@@ -58,9 +55,6 @@
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-//?
-#define ACE_LACKS_SIGSET
-
#define ACE_NEEDS_SCHED_H
// Use of <malloc.h> is deprecated.
@@ -113,9 +107,6 @@
// Compiler supports the ssize_t typedef.
#define ACE_HAS_SSIZE_T
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// Compiler/platform provides the sockio.h file.
#define ACE_HAS_SYS_SOCKIO_H
diff --git a/ACE/ace/config-macosx-snowleopard.h b/ACE/ace/config-macosx-snowleopard.h
new file mode 100644
index 00000000000..76dbaf8916b
--- /dev/null
+++ b/ACE/ace/config-macosx-snowleopard.h
@@ -0,0 +1,19 @@
+// $Id$
+#ifndef ACE_CONFIG_MACOSX_SNOWLEOPARD_H
+#define ACE_CONFIG_MACOSX_SNOWLEOPARD_H
+
+
+#include "ace/config-macosx-leopard.h"
+
+#ifdef __clang__
+#ifdef ACE_HAS_GCC_ATOMIC_BUILTINS
+#undef ACE_HAS_GCC_ATOMIC_BUILTINS
+#endif
+
+#define ACE_ANY_OPS_USE_NAMESPACE
+
+#endif
+
+#define ACE_LACKS_UCONTEXT_H
+
+#endif // ACE_CONFIG_MACOSX_SNOWLEOPARD_H
diff --git a/ACE/ace/config-macosx-tiger.h b/ACE/ace/config-macosx-tiger.h
index 60049cb3b79..3dd018602b0 100644
--- a/ACE/ace/config-macosx-tiger.h
+++ b/ACE/ace/config-macosx-tiger.h
@@ -76,9 +76,6 @@
//Platform supports sigsuspend()
#define ACE_HAS_SIGSUSPEND
-//Platform/compiler has macros for sig{empty,fill,add,del}set (e.g., SCO and FreeBSD)
-#define ACE_HAS_SIG_MACROS
-
#define ACE_LACKS_GETPGID
#define ACE_LACKS_RWLOCK_T
@@ -87,12 +84,8 @@
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-//?
-#define ACE_LACKS_SIGSET
-
#define ACE_NEEDS_SCHED_H
-// Use of <malloc.h> is deprecated.
#define ACE_LACKS_MALLOC_H
#define ACE_HAS_ALT_CUSERID
@@ -138,9 +131,6 @@
// Compiler supports the ssize_t typedef.
#define ACE_HAS_SSIZE_T
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// Compiler/platform provides the sockio.h file.
#define ACE_HAS_SYS_SOCKIO_H
@@ -212,6 +202,9 @@
// gperf seems to need this
//#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
+#define ACE_LACKS_UNSETENV
+#define ACE_LACKS_ISCTYPE
+
#if defined(__APPLE_CC__) && (__APPLE_CC__ < 1173)
#error "Compiler must be upgraded, see http://developer.apple.com"
#endif /* __APPLE_CC__ */
diff --git a/ACE/ace/config-macosx.h b/ACE/ace/config-macosx.h
index 513a2d3d890..25444af91a3 100644
--- a/ACE/ace/config-macosx.h
+++ b/ACE/ace/config-macosx.h
@@ -47,13 +47,12 @@
//Platform supports sigsuspend()
#define ACE_HAS_SIGSUSPEND
-//Platform/compiler has macros for sig{empty,fill,add,del}set (e.g., SCO and FreeBSD)
-#define ACE_HAS_SIG_MACROS
-
//#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
#define ACE_LACKS_GETPGID
#define ACE_LACKS_RWLOCK_T
+#define ACE_HAS_SIOCGIFCONF
+
// Optimize ACE_Handle_Set for select().
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
@@ -61,12 +60,8 @@
#define ACE_HAS_SYSCTL
-//?
-#define ACE_LACKS_SIGSET
-
#define ACE_NEEDS_SCHED_H
-// Use of <malloc.h> is deprecated.
#define ACE_LACKS_MALLOC_H
#define ACE_HAS_ALT_CUSERID
@@ -115,9 +110,6 @@
// Compiler supports the ssize_t typedef.
#define ACE_HAS_SSIZE_T
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// Compiler/platform provides the sockio.h file.
#define ACE_HAS_SYS_SOCKIO_H
diff --git a/ACE/ace/config-macros.h b/ACE/ace/config-macros.h
index 0723d7430ef..3f8efffcc44 100644
--- a/ACE/ace/config-macros.h
+++ b/ACE/ace/config-macros.h
@@ -26,6 +26,10 @@
#include "ace/Version.h"
#include "ace/Versioned_Namespace.h"
+#if !defined (ACE_HAS_EXCEPTIONS)
+#define ACE_HAS_EXCEPTIONS
+#endif /* !ACE_HAS_EXCEPTIONS */
+
// ACE_HAS_TLI is used to decide whether to try any XTI/TLI functionality
// so if it isn't set, set it. Capabilities and differences between
// XTI and TLI favor XTI, but when deciding to do anything, as opposed to
@@ -54,19 +58,6 @@
# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
#endif /* ! ACE_DEFAULT_LOG_STREAM */
-// These two are only for backward compatibility. You should avoid
-// using them if not necessary.
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
-/**
- * @deprecated The ACE_SYNCH_1 macro is deprecated
- */
-# define ACE_SYNCH_1 ACE_SYNCH_DECL
-/**
- * @deprecated The ACE_SYNCH_2 macro is deprecated
- */
-# define ACE_SYNCH_2 ACE_SYNCH_USE
-#endif
-
// For Win32 compatibility...
# if !defined (ACE_WSOCK_VERSION)
# define ACE_WSOCK_VERSION 0, 0
@@ -74,9 +65,6 @@
# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
# define ACE_MT(X) X
-# if !defined (_REENTRANT)
-# define _REENTRANT
-# endif /* _REENTRANT */
# else
# define ACE_MT(X)
# endif /* ACE_MT_SAFE */
@@ -87,34 +75,9 @@
# if defined (ACE_HAS_VALGRIND)
# define ACE_INITIALIZE_MEMORY_BEFORE_USE
+# define ACE_LACKS_DLCLOSE
# endif /* ACE_HAS_VALGRIND */
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
-/**
- * @deprecated The @c ACE_HAS_USING macros are deprecated
- */
-# define ACE_USING using
-#endif /* !ACE_LACKS_DEPRECATED_MACROS */
-
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
-/**
- * @deprecated The @c ACE_TYPENAME macros is deprecated. Use standard
- * C++ keyword typename instead.
- */
-# define ACE_TYPENAME typename
-#endif /* !ACE_LACKS_DEPRECATED_MACROS */
-
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
-/**
- * @deprecated The @c ACE_TEMPLATE_SPECIALIZATION and
- * @c ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION macros are
- * deprecated. Use standard C++ template specialization
- * syntax instead.
- */
-# define ACE_TEMPLATE_SPECIALIZATION template<>
-# define ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
-#endif /* !ACE_LACKS_DEPRECATED_MACROS */
-
// =========================================================================
// Perfect Multicast filting refers to RFC 3376, where a socket is only
// delivered dgrams for groups joined even if it didn't bind the group
@@ -155,45 +118,6 @@
# endif /* ACE_USES_FIFO_SEM */
// =========================================================================
-// RCSID Macros
-// =========================================================================
-
-// By default, DO NOT include RCS Id strings in object code.
-#if ! defined (ACE_USE_RCSID)
-# define ACE_USE_RCSID 0
-#endif /* #if ! defined (ACE_USE_RCSID) */
-
-#if (defined (ACE_USE_RCSID) && (ACE_USE_RCSID != 0))
-# if ! defined (ACE_RCSID)
-
- // This hack has the following purposes:
- // 1. To define the RCS id string variable as a static char*, so
- // that there won't be any duplicate extern symbols at link
- // time.
- // 2. To have a RCS id string variable with a unique name for each
- // file.
- // 3. To avoid warnings of the type "variable declared and never
- // used".
-
-# define ACE_RCSID(path, file, id) \
- static inline const char* get_rcsid_ ## path ## _ ## file (const char*) \
- { \
- return id ; \
- } \
- static const char* rcsid_ ## path ## _ ## file = \
- get_rcsid_ ## path ## _ ## file ( rcsid_ ## path ## _ ## file ) ;
-
-# endif /* #if ! defined (ACE_RCSID) */
-#else
-
- // RCS id strings are not wanted.
-# if defined (ACE_RCSID)
-# undef ACE_RCSID
-# endif /* #if defined (ACE_RCSID) */
-# define ACE_RCSID(path, file, id) /* noop */
-#endif /* #if (defined (ACE_USE_RCSID) && (ACE_USE_RCSID != 0)) */
-
-// =========================================================================
// INLINE macros
//
// These macros handle all the inlining of code via the .i or .inl files
@@ -218,31 +142,6 @@
# define ACE_INLINE
#endif /* __ACE_INLINE__ */
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
- // =========================================================================
- // EXPLICIT macro
- // =========================================================================
-
- /**
- * @deprecated explicit is deprecated. ACE requires C++
- * "explicit" keyword support.
- */
- # define ACE_EXPLICIT explicit
-#endif /* ACE_LACKS_DEPRECATED_MACROS */
-
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
- // =========================================================================
- // MUTABLE macro
- // =========================================================================
-
- /**
- * @deprecated ACE_MUTABLE is deprecated. ACE requires C++ "mutable"
- * keyword support.
- */
- # define ACE_MUTABLE mutable
- # define ACE_CONST_WHEN_MUTABLE const
-#endif /* ACE_LACKS_DEPRECATED_MACROS */
-
// ============================================================================
// EXPORT macros
//
@@ -305,60 +204,6 @@
# define ACE_sap_any_cast(TYPE) reinterpret_cast<TYPE> (const_cast<ACE_Addr &> (ACE_Addr::sap_any))
-#if !defined (ACE_LACKS_DEPRECATED_MACROS)
- /**
- * @deprecated ACE_{static,reinterpret,dynamic,const}_cast@<@> is
- * deprecated. Directly use standard C++ casts instead.
- */
- # define ACE_static_cast(TYPE, EXPR) static_cast<TYPE> (EXPR)
- # define ACE_static_cast_1_ptr(TYPE, T1, EXPR) static_cast<TYPE<T1> *> (EXPR)
- # define ACE_static_cast_2_ptr(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> *> (EXPR)
- # define ACE_static_cast_3_ptr(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> *> (EXPR)
- # define ACE_static_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
- # define ACE_static_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
- # define ACE_static_cast_1_ref(TYPE, T1, EXPR) static_cast<TYPE<T1> &> (EXPR)
- # define ACE_static_cast_2_ref(TYPE, T1, T2, EXPR) static_cast<TYPE<T1, T2> &> (EXPR)
- # define ACE_static_cast_3_ref(TYPE, T1, T2, T3, EXPR) static_cast<TYPE<T1, T2, T3> &> (EXPR)
- # define ACE_static_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) static_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
- # define ACE_static_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) static_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-
- # define ACE_const_cast(TYPE, EXPR) const_cast<TYPE> (EXPR)
- # define ACE_const_cast_1_ptr(TYPE, T1, EXPR) const_cast<TYPE<T1> *> (EXPR)
- # define ACE_const_cast_2_ptr(TYPE, T1, T2, EXPR) const_cast<TYPE<T1, T2> *> (EXPR)
- # define ACE_const_cast_3_ptr(TYPE, T1, T2, T3, EXPR) const_cast<TYPE<T1, T2, T3> *> (EXPR)
- # define ACE_const_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) const_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
- # define ACE_const_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) const_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
- # define ACE_const_cast_1_ref(TYPE, T1, EXPR) const_cast<TYPE<T1> &> (EXPR)
- # define ACE_const_cast_2_ref(TYPE, T1, T2, EXPR) const_cast<TYPE<T1, T2> &> (EXPR)
- # define ACE_const_cast_3_ref(TYPE, T1, T2, T3, EXPR) const_cast<TYPE<T1, T2, T3> &> (EXPR)
- # define ACE_const_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) const_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
- # define ACE_const_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) const_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-
- # define ACE_reinterpret_cast(TYPE, EXPR) reinterpret_cast<TYPE> (EXPR)
- # define ACE_reinterpret_cast_1_ptr(TYPE, T1, EXPR) reinterpret_cast<TYPE<T1> *> (EXPR)
- # define ACE_reinterpret_cast_2_ptr(TYPE, T1, T2, EXPR) reinterpret_cast<TYPE<T1, T2> *> (EXPR)
- # define ACE_reinterpret_cast_3_ptr(TYPE, T1, T2, T3, EXPR) reinterpret_cast<TYPE<T1, T2, T3> *> (EXPR)
- # define ACE_reinterpret_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
- # define ACE_reinterpret_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
- # define ACE_reinterpret_cast_1_ref(TYPE, T1, EXPR) reinterpret_cast<TYPE<T1> &> (EXPR)
- # define ACE_reinterpret_cast_2_ref(TYPE, T1, T2, EXPR) reinterpret_cast<TYPE<T1, T2> &> (EXPR)
- # define ACE_reinterpret_cast_3_ref(TYPE, T1, T2, T3, EXPR) reinterpret_cast<TYPE<T1, T2, T3> &> (EXPR)
- # define ACE_reinterpret_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
- # define ACE_reinterpret_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) reinterpret_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-
- # define ACE_dynamic_cast(TYPE, EXPR) dynamic_cast<TYPE> (EXPR)
- # define ACE_dynamic_cast_1_ptr(TYPE, T1, EXPR) dynamic_cast<TYPE<T1> *> (EXPR)
- # define ACE_dynamic_cast_2_ptr(TYPE, T1, T2, EXPR) dynamic_cast<TYPE<T1, T2> *> (EXPR)
- # define ACE_dynamic_cast_3_ptr(TYPE, T1, T2, T3, EXPR) dynamic_cast<TYPE<T1, T2, T3> *> (EXPR)
- # define ACE_dynamic_cast_4_ptr(TYPE, T1, T2, T3, T4, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4> *> (EXPR)
- # define ACE_dynamic_cast_5_ptr(TYPE, T1, T2, T3, T4, T5, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4, T5> *> (EXPR)
- # define ACE_dynamic_cast_1_ref(TYPE, T1, EXPR) dynamic_cast<TYPE<T1> &> (EXPR)
- # define ACE_dynamic_cast_2_ref(TYPE, T1, T2, EXPR) dynamic_cast<TYPE<T1, T2> &> (EXPR)
- # define ACE_dynamic_cast_3_ref(TYPE, T1, T2, T3, EXPR) dynamic_cast<TYPE<T1, T2, T3> &> (EXPR)
- # define ACE_dynamic_cast_4_ref(TYPE, T1, T2, T3, T4, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4> &> (EXPR)
- # define ACE_dynamic_cast_5_ref(TYPE, T1, T2, T3, T4, T5, EXPR) dynamic_cast<TYPE<T1, T2, T3, T4, T5> &> (EXPR)
-#endif /* ACE_LACKS_DEPRECATED_MACROS */
-
# if !defined (ACE_CAST_CONST)
// Sun CC 4.2, for example, requires const in reinterpret casts of
// data members in const member functions. But, other compilers
@@ -380,7 +225,7 @@
#if !defined (ACE_UNUSED_ARG)
# if defined (__GNUC__) && ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)))
# define ACE_UNUSED_ARG(a) (void) (a)
-# elif defined (__GNUC__) || defined (ghs) || defined (__hpux) || defined (__sgi) || defined (__DECCXX) || defined (__rational__) || defined (__USLC__) || defined (ACE_RM544) || defined (__DCC__) || defined (__PGI) || defined (__TANDEM)
+# elif defined (__GNUC__) || defined (ghs) || defined (__hpux) || defined (__DECCXX) || defined (__rational__) || defined (__USLC__) || defined (ACE_RM544) || defined (__DCC__) || defined (__PGI) || defined (__TANDEM)
// Some compilers complain about "statement with no effect" with (a).
// This eliminates the warnings, and no code is generated for the null
// conditional statement. @note that may only be true if -O is enabled,
@@ -395,11 +240,11 @@
# endif /* ghs || __GNUC__ || ..... */
#endif /* !ACE_UNUSED_ARG */
-#if defined (_MSC_VER) || defined(__sgi) || defined (ghs) || defined (__DECCXX) || defined(__BORLANDC__) || defined (ACE_RM544) || defined (__USLC__) || defined (__DCC__) || defined (__PGI) || defined (__TANDEM) || (defined (__HP_aCC) && (__HP_aCC >= 60500))
+#if defined (_MSC_VER) || defined (ghs) || defined (__DECCXX) || defined(__BORLANDC__) || defined (ACE_RM544) || defined (__USLC__) || defined (__DCC__) || defined (__PGI) || defined (__TANDEM) || (defined (__HP_aCC) && (__HP_aCC < 40000 || __HP_aCC >= 60500))
# define ACE_NOTREACHED(a)
-#else /* __sgi || ghs || ..... */
+#else /* ghs || ..... */
# define ACE_NOTREACHED(a) a
-#endif /* __sgi || ghs || ..... */
+#endif /* ghs || ..... */
// ============================================================================
// ACE_ALLOC_HOOK* macros
@@ -455,7 +300,8 @@
#if defined (ACE_WIN32)
# define ACE_WIN32CALL_RETURN(X,TYPE,FAILVALUE) \
do { \
- TYPE ace_result_ = (TYPE) X; \
+ TYPE ace_result_; \
+ ace_result_ = (TYPE) X; \
if (ace_result_ == FAILVALUE) \
ACE_OS::set_errno_to_last_error (); \
return ace_result_; \
@@ -643,6 +489,14 @@ extern "C" u_long CLS##_Export _get_dll_unload_policy (void) \
# define ACE_GCC_DESTRUCTOR_ATTRIBUTE
#endif
+#ifndef ACE_HAS_TEMPLATE_TYPEDEFS
+#define ACE_HAS_TEMPLATE_TYPEDEFS
+#endif
+
+#ifndef ACE_GCC_FORMAT_ATTRIBUTE
+# define ACE_GCC_FORMAT_ATTRIBUTE(TYPE, STR_INDEX, FIRST_INDEX)
+#endif
+
#ifndef ACE_DEPRECATED
# define ACE_DEPRECATED
#endif
diff --git a/ACE/ace/config-minimal.h b/ACE/ace/config-minimal.h
deleted file mode 100644
index e7937690ee5..00000000000
--- a/ACE/ace/config-minimal.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file is designed to build only the minimal
-// ACE_OS adaptation layer.
-
-#ifndef ACE_CONFIG_MINIMAL_H
-#define ACE_CONFIG_MINIMAL_H
-#include /**/ "ace/pre.h"
-
-#define ACE_HAS_MINIMAL_ACE_OS
-
-// Only instantiate the ACE_OS_Object_Manager.
-#define ACE_MAIN_OBJECT_MANAGER \
- ACE_OS_Object_Manager ace_os_object_manager;
-
-#if !defined(ACE_USE_THREAD_MANAGER_ADAPTER)
- // To prevent use of ACE_Thread_Exit functions in
- // ACE_Thread_Adapter::invoke ().
-# define ACE_USE_THREAD_MANAGER_ADAPTER
-#endif /* ! ACE_USE_THREAD_MANAGER_ADAPTER */
-
-#if defined (ACE_ASSERT)
-# undef ACE_ASSERT
-#endif /* ACE_ASSERT */
-#define ACE_ASSERT(x)
-
-#if defined (ACE_DEBUG)
-# undef ACE_DEBUG
-#endif /* ACE_DEBUG */
-#define ACE_DEBUG(x)
-
-#if defined (ACE_ERROR)
-# undef ACE_ERROR
-#endif /* ACE_ERROR */
-#define ACE_ERROR(x)
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_MINIMAL_H */
diff --git a/ACE/ace/config-mvs.h b/ACE/ace/config-mvs.h
deleted file mode 100644
index 785f94209d2..00000000000
--- a/ACE/ace/config-mvs.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Config file for MVS with OpenEdition
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include /**/ "ace/pre.h"
-
-// The following #defines are hacks to get around things
-// that seem to be missing or different in MVS land
-#define MAXPATHLEN 1024 /* sys/param.h not on MVS */
-#define NSIG 44 /* missing from Signal.h */
-#define MAXHOSTNAMELEN 256 /* missing form netdb.h */
-#define howmany __howmany /* MVS uses different names than most others */
-#define MAXNAMLEN __DIR_NAME_MAX
-#if defined (log) /* log is a macro in math.h */
-# undef log /* conflicts with log function in ACE */
-#endif /* log */
-
-#define ACE_MVS
-
-// Preprocesor requires an extra argument
-#ifndef ACE_USING_MCPP_PREPROCESSOR
-# define ACE_CC_PREPROCESSOR_ARGS "-+ -E"
-#endif
-
-// See the README file in this directory
-// for a description of the following ACE_ macros
-
-#if __COMPILER_VER__ >= 0x21020000 /* OS/390 r2 or higher */
-# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-# define ACE_HAS_UCONTEXT_T
-#else /* __COMPILER_VER__ < 0x21020000 */
-# define ACE_LACKS_UCONTEXT_H
-#endif /* __COMPILER_VER__ < 0x21020000 */
-
-#if __COMPILER_VER__ < 0x22060000 /* before OS/390 r2.6 */
-# define ACE_LACKS_LONGLONG_T
-#endif /* __COMPILER_VER__ < 0x22060000 */
-
-#define ERRMAX __sys_nerr
-
-#define ACE_HAS_3_PARAM_WCSTOK
-#define ACE_HAS_BROKEN_CTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETPAGESIZE
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_LIMITED_RUSAGE_T
-#define ACE_HAS_MSG
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_NONSCALAR_THREAD_KEY_T
-#define ACE_HAS_POLL
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP
-#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SIG_C_FUNC
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
-#define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_TEMPLATE_TYPEDEFS
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THR_C_DEST
-#define ACE_HAS_THR_C_FUNC
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_HAS_UALARM
-#define ACE_HAS_UTIME
-#define ACE_HAS_VOIDPTR_MMAP
-#define ACE_HAS_VOIDPTR_SOCKOPT
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_INET_ATON
-#define ACE_LACKS_MSGBUF_T
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_IOSTREAM_FX
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MALLOC_H
-#define ACE_LACKS_PARAM_H
-#define ACE_LACKS_SYS_PARAM_H
-#define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_READDIR_R
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SCHED_H
-#define ACE_LACKS_SETSCHED
-#define ACE_LACKS_SEMAPHORE_H
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_STDINT_H
-#define ACE_LACKS_SYS_NERR
-#define ACE_LACKS_SYS_SELECT_H
-#define ACE_LACKS_SYS_SYSCTL_H
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_NETINET_TCP_H
-#define ACE_LACKS_TCP_H
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_FD_MASK
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-#define ACE_SIZEOF_FLOAT 4
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_LONG_DOUBLE 16
-#define ACE_HAS_EBCDIC
-
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-#define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)
-#define IN_MULTICAST(a) IN_CLASSD(a)
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-netbsd.h b/ACE/ace/config-netbsd.h
index 999b66ce5e5..e4a2fd160c1 100644
--- a/ACE/ace/config-netbsd.h
+++ b/ACE/ace/config-netbsd.h
@@ -35,13 +35,11 @@
#define ACE_HAS_CLOCK_GETTIME 1
#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1
#define ACE_HAS_DIRENT 1
-#define ACE_HAS_EXCEPTIONS 1
#define ACE_HAS_GETIFADDRS 1
#define ACE_HAS_GETPAGESIZE 1
#define ACE_HAS_GETPROGNAME 1
#define ACE_HAS_GETRUSAGE 1
#define ACE_HAS_GETRUSAGE_PROTOTYPE 1
-#define ACE_HAS_GNU_CSTRING_H 1
#define ACE_HAS_GPERF 1
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT 1
#define ACE_HAS_IP_MULTICAST 1
@@ -50,7 +48,6 @@
#define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
#define ACE_HAS_ONLY_SCHED_OTHER 1
#define ACE_HAS_POLL 1
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
#define ACE_HAS_POSIX_NONBLOCK 1
#define ACE_HAS_POSIX_TIME 1
#define ACE_HAS_P_READ_WRITE 1
@@ -71,15 +68,12 @@
#define ACE_HAS_SOCKLEN_T 1
#define ACE_HAS_SSIZE_T 1
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-#define ACE_HAS_STDEXCEPT_NO_H 1
-#define ACE_HAS_STRERROR 1
#define ACE_HAS_STRINGS 1
#define ACE_HAS_STRING_CLASS 1
#define ACE_HAS_SVR4_DYNAMIC_LINKING 1
#define ACE_HAS_SYSV_IPC 1
-#define ACE_HAS_SYS_ERRLIST 1
#define ACE_HAS_SYS_FILIO_H 1
-#define ACE_HAS_SYS_SIGLIST 1
+#define ACE_HAS_STRSIGNAL
#define ACE_HAS_SYS_SOCKIO_H 1
#define ACE_HAS_SYS_SYSCALL_H 1
#define ACE_HAS_SYSCTL
@@ -109,7 +103,6 @@
#define ACE_LACKS_PRI_T 1
#define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
#define ACE_LACKS_PTHREAD_YIELD 1
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS 1
#define ACE_LACKS_RWLOCKATTR_PSHARED 1
#define ACE_LACKS_RWLOCK_T 1
#define ACE_LACKS_SETSCHED 1
@@ -123,8 +116,6 @@
#define ACE_LACKS_WCSICMP 1
#define ACE_LACKS_WCSNICMP 1
#define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR 1
-#define ACE_LACKS_WSCANF
-#define ACE_LACKS_SWSCANF
#define ACE_LACKS_ISCTYPE
#if defined(__x86_64__)
diff --git a/ACE/ace/config-openbsd.h b/ACE/ace/config-openbsd.h
index 1e7128491db..6926bbb182c 100644
--- a/ACE/ace/config-openbsd.h
+++ b/ACE/ace/config-openbsd.h
@@ -2,235 +2,140 @@
// $Id$
// The following configuration file is designed to work for OpenBSD
-// platforms using GNU g++.
#ifndef ACE_CONFIG_H
#define ACE_CONFIG_H
#include /**/ "ace/pre.h"
-#if defined (ACE_HAS_THREADS)
-#include /**/ <pthread.h>
-#endif /* ACE_HAS_THREADS */
-
-#include "ace/config-posix.h"
-
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
+#if !defined (ACE_MT_SAFE)
+# define ACE_MT_SAFE 1
+#endif
// Platform specific directives
-// gcc defines __OpenBSD__ automatically for us.
#include <sys/param.h>
-#if defined (ACE_HAS_THREADS)
-#if !defined (_THREAD_SAFE)
-#define _THREAD_SAFE
-#endif /* _THREAD_SAFE */
-
-// Check if pthreads and native exceptions are being used together.
-// This causes SEGVs to tbe thrown somewhat randomly for some
-// reason. According to newsgroup postings, it appears to be an
-// OpenBSD or gcc bug.
-#if defined (ACE_USES_NATIVE_EXCEPTIONS)
-#error "OpenBSD pthreads and native exceptions currently do not work. See OpenBSD bug #1750"
-#endif /* ACE_USES_NATIVE_EXCEPTIONS */
-
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_HAS_GPERF
+#include "ace/config-posix.h"
-// Platform specific directives
-/* Are the following true? */
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
+#include "ace/config-g++-common.h"
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_3_PARAM_READDIR_R
+#define ACE_HAS_3_PARAM_WCSTOK
+#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
+#define ACE_HAS_ALLOCA
#define ACE_HAS_ALT_CUSERID
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-
-#define ACE_LACKS_RWLOCK_T
-#define ACE_HAS_SIG_MACROS
+#define ACE_HAS_AUTOMATIC_INIT_FINI
#define ACE_HAS_CHARPTR_DL
+#define ACE_HAS_CLOCK_GETTIME
+#define ACE_HAS_CLOCK_SETTIME
+#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
#define ACE_HAS_DIRENT
-
-// OpenBSD 3.6
-#if (OpenBSD < 200411)
-# define ACE_USES_ASM_SYMBOL_IN_DLSYM
-#endif
-
-#define ACE_LACKS_UCONTEXT_H
-
-// ucontext_t is in OpenBSD 3.5 and later.
-#if (OpenBSD >= 200405)
-# define ACE_HAS_UCONTEXT_T
-#endif /* OpenBSD >= 200405 */
-
-
-// OpenBSD has sigwait defined
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIGINFO_T
-
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_LACKS_LOG2
-#define ACE_LACKS_ISCTYPE
-#define ACE_HAS_SOCKLEN_T
-
+#define ACE_HAS_GETIFADDRS
+#define ACE_HAS_GETPAGESIZE
+#define ACE_HAS_GETRUSAGE
+#define ACE_HAS_GPERF
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+#define ACE_HAS_ICMP_SUPPORT 1
+#define ACE_HAS_IPV6
+#define ACE_HAS_IP_MULTICAST
+#define ACE_HAS_MEMCHR
+#define ACE_HAS_MKDIR
+#define ACE_HAS_MSG
+#define ACE_HAS_NANOSLEEP
+#define ACE_HAS_NEW_NO_H
+#define ACE_HAS_NONCONST_MSGSND
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+#define ACE_HAS_NONCONST_SWAB
#define ACE_HAS_POLL
-
-// Use of <malloc.h> is deprecated.
-#define ACE_LACKS_MALLOC_H
-
-// NetBSD appears to have a sigset_t type.
-// #define ACE_LACKS_SIGSET
-
-// Platform supports POSIX timers via struct timespec.
+#define ACE_HAS_POSIX_NONBLOCK
#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_UALARM
-
-// Platform defines struct timespec but not timespec_t
-#define ACE_LACKS_TIMESPEC_T
-
-#define ACE_LACKS_STDINT_H
-#define ACE_LACKS_STROPTS_H
-#define ACE_LACKS_WCHAR_H
-
-#define ACE_LACKS_STRRECVFD
-
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
+#define ACE_HAS_PTHREADS_UNIX98_EXT
+#define ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP
+#define ACE_HAS_PTHREAD_GETCONCURRENCY
+#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
+#define ACE_HAS_PTHREAD_NP_H
+#define ACE_HAS_PTHREAD_RESUME_NP
+#define ACE_HAS_PTHREAD_SETCONCURRENCY
+#define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
+#define ACE_HAS_PTHREAD_SUSPEND_NP
+#define ACE_HAS_P_READ_WRITE
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+#define ACE_HAS_REENTRANT_FUNCTIONS
+#define ACE_HAS_RTLD_LAZY_V
+#define ACE_HAS_SCANDIR
+#define ACE_HAS_SEMUN
+#define ACE_HAS_SIGACTION_CONSTP2
+#define ACE_HAS_SIGINFO_T
+#define ACE_HAS_SIGSUSPEND
+#define ACE_HAS_SIGWAIT
+#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_SIG_C_FUNC
#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
+#define ACE_HAS_SOCKADDR_IN_SIN_LEN
+#define ACE_HAS_SOCKADDR_MSG_NAME
+#define ACE_HAS_SOCKLEN_T
+#define ACE_HAS_SSIZE_T
+#define ACE_HAS_STRINGS
+#define ACE_HAS_STRING_CLASS
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_HAS_SVR4_SIGNAL_T
+#define ACE_HAS_SYSCTL
#define ACE_HAS_SYSV_IPC
-
-// Compiler/platform contains the <sys/syscall.h> file.
+#define ACE_HAS_SYS_FILIO_H
+#define ACE_HAS_STRSIGNAL
+#define ACE_HAS_SYS_SOCKIO_H
#define ACE_HAS_SYS_SYSCALL_H
+#define ACE_HAS_TERMIOS
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
+#define ACE_HAS_UALARM
+#define ACE_HAS_VASPRINTF
+#define ACE_HAS_VOIDPTR_MMAP
+#define ACE_HAS_VOIDPTR_SOCKOPT
+#define ACE_HAS_VOID_UNSETENV
+#define ACE_HAS_WCHAR
+#define ACE_HAS_XPG4_MULTIBYTE_CHAR
+#define ACE_HAS_SYS_SIGINFO_H
+
+#define ACE_LACKS_GETIPNODEBYADDR
+#define ACE_LACKS_GETIPNODEBYNAME
+#define ACE_LACKS_ISCTYPE
+#define ACE_LACKS_ISWASCII
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+#define ACE_LACKS_PERFECT_MULTICAST_FILTERING
+#define ACE_LACKS_SETSCHED
+#define ACE_LACKS_STROPTS_H
+#define ACE_LACKS_STRRECVFD
+#define ACE_LACKS_TIMESPEC_T
+#define ACE_LACKS_UCONTEXT_H
-// OpenBSD supports the getifaddrs interface
-#define ACE_HAS_GETIFADDRS
-
-// Compiler/platform supports SVR4 signal typedef
-#define ACE_HAS_SVR4_SIGNAL_T
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform supports alloca().
-// 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/platform supports SVR4 dynamic linking semantics..
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-// Compiler/platform correctly calls init()/fini() for shared libraries.
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Explicit dynamic linking permits "lazy" symbol resolution
-#define ACE_HAS_RTLD_LAZY_V
+#define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
+#define ACE_PAGE_SIZE 4096
+#define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR
+#define ACE_SCANDIR_SEL_LACKS_CONST
-// platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
+// OpenBSD 3.6
+#if (OpenBSD < 200411)
+# define ACE_USES_ASM_SYMBOL_IN_DLSYM
+#endif
-// platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
+// ucontext_t is in OpenBSD 3.5 and later.
+#if (OpenBSD >= 200405)
+# define ACE_HAS_UCONTEXT_T
+#endif /* OpenBSD >= 200405 */
// Lacks perfect filtering, must bind group address.
#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
+# define ACE_LACKS_PERFECT_MULTICAST_FILTERING
#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
-// Compiler/platform has <alloca.h>
-//#define ACE_HAS_ALLOCA_H
-
-// Compiler/platform has the getrusage() system call.
-#define ACE_HAS_GETRUSAGE
-
-// Compiler/platform defines the sig_atomic_t typedef.
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler/platform defines a union semun for SysV shared memory.
-#define ACE_HAS_SEMUN
-
-// Compiler supports the ssize_t typedef.
-#define ACE_HAS_SSIZE_T
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-// Compiler/platform provides the sockio.h file.
-#define ACE_HAS_SYS_SOCKIO_H
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Platform provides <sys/filio.h> header.
-#define ACE_HAS_SYS_FILIO_H
-
-#define ACE_HAS_SYSCTL
-
-// Platform/compiler supports timezone * as second parameter to gettimeofday().
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
// OpenBSD's dlsym call segfaults when passed an invalid handle.
-// It seems as if most other OSs detect this and just report an
-// error.
+// It seems as if most other OSs detect this and just report an error.
#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
-#define ACE_HAS_MSG
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#define ACE_HAS_NONCONST_MSGSND
-
-#ifdef ACE_HAS_THREADS
-// Thread specific settings
-
-// And they're even POSIX pthreads
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-#endif /* ACE_HAS_THREADS */
-
-#define ACE_HAS_SIGWAIT
-
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_DIRENT
-
-#if !defined (ACE_HAS_THREADS)
-// OpenBSD really has readdir_r () in single threaded mode,
-// but the #ifdefs in OS.i select one with the wrong parameter
-// sets if the ACE_HAS_POSIX_STD isn't defined (which is defined
-// when ACE_HAS_THREADS is defined.)
-
-#define ACE_LACKS_READDIR_R
-
-#endif /* ! ACE_HAD_THREADS */
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-// OpenBSD 3.2 lacks sched_setscheduler (see /usr/src/lib/libc_r/TODO)
-#define ACE_LACKS_SETSCHED
-
-// OpenBSD supports IPv6 by default, but ACE IPv6 code
-// has compile errors.
-//#define ACE_HAS_IPV6
-
-#define ACE_HAS_3_PARAM_READDIR_R
+#define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%ld"
+#define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%lu"
#include /**/ "ace/post.h"
+
#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-openvms.h b/ACE/ace/config-openvms.h
index 667ca261a54..da1e6b857af 100644
--- a/ACE/ace/config-openvms.h
+++ b/ACE/ace/config-openvms.h
@@ -6,10 +6,6 @@
#ifndef ACE_CONFIG_H
#define ACE_CONFIG_H
-#if !defined (ACE_USE_RCSID)
-# define ACE_USE_RCSID 0
-#endif
-
#ifdef __cplusplus
#pragma message disable CODCAUUNR
#pragma message disable CODEUNREACHABLE
@@ -91,9 +87,6 @@
#define ACE_LACKS_SYMLINKS 1
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS 1
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS 1
-
#define ACE_HAS_P_READ_WRITE
#define ACE_HAS_CHARPTR_DL 1
#define ACE_HAS_CLOCK_GETTIME 1
@@ -106,7 +99,6 @@
#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R 1
#define ACE_HAS_3_PARAM_WCSTOK 1
#define ACE_HAS_SIGSUSPEND 1
-#define ACE_HAS_SIG_MACROS 1
#define ACE_HAS_SIGWAIT 1
#define ACE_HAS_SIGTIMEDWAIT 1
@@ -114,7 +106,6 @@
#define ACE_HAS_SIGISMEMBER_BUG
#define ACE_HAS_STRNLEN 1
#define ACE_HAS_STREAMS 1
-#define ACE_HAS_STRERROR 1
#define ACE_HAS_UALARM 1
#define ACE_HAS_VOIDPTR_MMAP 1
#define ACE_HAS_VOIDPTR_SOCKOPT 1
@@ -143,7 +134,7 @@
#define ACE_LACKS_STRRECVFD 1
#define ACE_LACKS_T_ERRNO 1
-/* POSIX threads ompatibilities */
+/* POSIX threads compatibilities */
#define ACE_LACKS_RWLOCK_T 1
#define ACE_LACKS_PTHREAD_KILL 1
#define ACE_LACKS_THREAD_PROCESS_SCOPING 1
@@ -172,7 +163,6 @@
#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1
#define ACE_HAS_CPLUSPLUS_HEADERS 1
-#define ACE_HAS_EXCEPTIONS 1
#define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
#define ACE_HAS_GPERF 1
@@ -185,7 +175,6 @@
#define ACE_HAS_STRING_CLASS 1
#define ACE_HAS_SVR4_DYNAMIC_LINKING 1
-#define ACE_HAS_TEMPLATE_TYPEDEFS 1
#define ACE_LACKS_NAMED_POSIX_SEM 1
#define ACE_LACKS_SYSV_SHMEM 1
#define ACE_LACKS_UNIX_DOMAIN_SOCKETS 1
@@ -197,4 +186,7 @@
#define ACE_LACKS_SETENV
#define ACE_LACKS_UNSETENV
+#define ACE_HAS_SOCK_BUF_SIZE_MAX
+#define ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE 65535
+
#endif
diff --git a/ACE/ace/config-qnx-neutrino.h b/ACE/ace/config-qnx-neutrino.h
deleted file mode 100644
index 530d60ccd73..00000000000
--- a/ACE/ace/config-qnx-neutrino.h
+++ /dev/null
@@ -1,138 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// The following configuration file is designed to work for Neutrino
-// 2.0 (Beta) with GNU C++ and the POSIX (pthread) threads package.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include /**/ "ace/pre.h"
-
-#define _POSIX_C_SOURCE 199506
-#define _QNX_SOURCE
-
-// These constants are in i386-nto/include/limits.h, but egcs
-// picks up its own limits.h instead:
-#define _POSIX_NAME_MAX 14 /* Max bytes in a filename */
-#define _POSIX_PATH_MAX 256 /* Num. bytes in pathname (excl. NULL) */
-
-#if defined(__OPTIMIZE__)
-# if defined(__X86__)
- // string.h can't be used by ACE with __OPTIMIZE__.
-# undef __OPTIMIZE__
-# include <string.h>
-# define __OPTIMIZE__
-# endif /* __X86__ */
-#endif /* __OPTIMIZE__ */
-
-#include "ace/config-g++-common.h"
-
-// The following defines the Neutrino compiler.
-// gcc should know to call g++ as necessary
-#ifdef __GNUC__
-# define ACE_CC_NAME ACE_TEXT ("gcc")
-#else
-# define ACE_CC_NAME ACE_TEXT ("NTO compiler ??")
-#endif
-
-// /usr/nto/include/float.h defines
-// FLT_MAX_EXP 127
-// DBL_MAX_EXP 1023
-// ace expects 128 & 1024 respectively
-// to set the following macros in ace/Basic_Types.h
-// These macros are:
-// #define ACE_SIZEOF_DOUBLE 8
-// #define ACE_SIZEOF_FLOAT 4
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-// 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
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CLOCK_SETTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETPAGESIZE
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#define ACE_HAS_INLINED_OSCALLS
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_MSG
-#define ACE_HAS_MT_SAFE_MKTIME
-#define ACE_HAS_MUTEX_TIMEOUTS
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_NONCONST_SWAB
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_P_READ_WRITE
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_HAS_SELECT_H
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGISMEMBER_BUG
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SIG_MACROS
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_TERMIOS
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THR_C_DEST
-#define ACE_HAS_THR_C_FUNC
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_HAS_UALARM
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_VOIDPTR_MMAP
-#define ACE_HAS_VOIDPTR_SOCKOPT
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_CUSERID
-#define ACE_LACKS_FORK
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_NAMED_POSIX_SEM
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_POLL_H
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_SO_SNDBUF
-#define ACE_LACKS_SO_RCVBUF
-#define ACE_LACKS_SOCKETPAIR
-#define ACE_LACKS_STROPTS_H
-#define ACE_LACKS_STREAM_MODULES
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYS_MSG_H
-#define ACE_LACKS_SYS_SHM_H
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_TCP_NODELAY
-#define ACE_LACKS_TELLDIR
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_TRUNCATE
-#define ACE_LACKS_T_ERRNO
-#define ACE_LACKS_UALARM_PROTOTYPE
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-#define ACE_LACKS_U_LONGLONG_T
-#define ACE_MT_SAFE 1
-#define ACE_NEEDS_FUNC_DEFINITIONS
-#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_THR_PRI_FIFO_DEF 10
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-qnx-rtp-62x.h b/ACE/ace/config-qnx-rtp-62x.h
deleted file mode 100644
index 997ab989c84..00000000000
--- a/ACE/ace/config-qnx-rtp-62x.h
+++ /dev/null
@@ -1,133 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// The following configuration file is designed to work for QNX RTP 621
-// GNU C++ and the POSIX (pthread) threads package. You can get QNX
-// RTP at http://get.qnx.com
-#ifndef ACE_CONFIG_QNX_RTP_62x_H
-#define ACE_CONFIG_QNX_RTP_62x_H
-#include /**/ "ace/pre.h"
-#include /**/ "ace/config-qnx-rtp-common.h"
-
-/////////////////////////////////////////////////////////////////
-// Definition of the features that are available.
-//
-// ACE_HAS Section
-/////////////////////////////////////////////////////////////////
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_HAS_3_PARAM_WCSTOK
-#define ACE_HAS_3_PARAM_READDIR_R
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-// 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
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_ALT_CUSERID
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CLOCK_SETTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETPAGESIZE
-#define ACE_HAS_GETIFADDRS
-// Enable gperf, this is a hosted configuration.
-#define ACE_HAS_GPERF
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-//#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_MSG
-#define ACE_HAS_MT_SAFE_MKTIME
-#define ACE_HAS_MUTEX_TIMEOUTS
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_NONCONST_SWAB
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_P_READ_WRITE
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_HAS_SELECT_H
-#define ACE_HAS_SHM_OPEN
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGISMEMBER_BUG
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SIG_MACROS
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
-#define ACE_HAS_SOCKLEN_T
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_TERMIOS
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THR_C_DEST
-#define ACE_HAS_THR_C_FUNC
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_HAS_UALARM
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_VOIDPTR_MMAP
-#define ACE_HAS_VOIDPTR_SOCKOPT
-
-/////////////////////////////////////////////////////////////////
-// Definition of the features that are not available.
-//
-// ACE_LACKS Section
-/////////////////////////////////////////////////////////////////
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-// lacks mqueue mgr or speed-up named sem by shm emulation
-#define ACE_LACKS_NAMED_POSIX_SEM
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-// Multicast_Tests reports for NTO 621 frames from unsubscribed groups
-#define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-#define ACE_LACKS_POLL_H
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SO_SNDBUF
-#define ACE_LACKS_SO_RCVBUF
-#define ACE_LACKS_STREAM_MODULES
-#define ACE_LACKS_STROPTS_H
-#define ACE_LACKS_STRPTIME
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYS_MSG_H
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_SYS_SHM_H
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_T_ERRNO
-#define ACE_LACKS_U_LONGLONG_T
-#define ACE_LACKS_ALPHASORT
-#define ACE_LACKS_FD_MASK
-#define ACE_LACKS_NFDBITS
-#define ACE_LACKS_ISCTYPE
-
-#define ACE_LACKS_RLIMIT // QNX rlimit syscalls don't work properly with ACE.
-
-#define ACE_MT_SAFE 1
-#define ACE_NEEDS_FUNC_DEFINITIONS
-#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 64000
-#define ACE_THR_PRI_FIFO_DEF 10
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-#define ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK 1
-
-#define ACE_SIZEOF_WCHAR 4
-
-// No prototypes
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_WCSDUP
-// The default value of FD_SETSIZE is 32, but actually x86 NTO
-// supports by default at least 1000 descriptors in fd_set.
-#if defined( FD_SETSIZE )
-#undef FD_SETSIZE
-#endif
-#define FD_SETSIZE 1000
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_QNX_RTP_62x_H*/
diff --git a/ACE/ace/config-qnx-rtp-common.h b/ACE/ace/config-qnx-rtp-common.h
deleted file mode 100644
index 13fa05aa7c7..00000000000
--- a/ACE/ace/config-qnx-rtp-common.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// several macros common to various qnx neutrino version.
-
-#ifndef ACE_CONFIG_QNX_RTP_COMMON_H
-#define ACE_CONFIG_QNX_RTP_COMMON_H
-#include /**/ "ace/pre.h"
-
-#define _POSIX_C_SOURCE 199506
-#define _QNX_SOURCE
-
-// These constants are in i386-nto/include/limits.h, but egcs
-// picks up its own limits.h instead:
-#define _POSIX_NAME_MAX 14 /* Max bytes in a filename */
-#define _POSIX_PATH_MAX 256 /* Num. bytes in pathname (excl. NULL) */
-
-#if defined(__OPTIMIZE__)
-# if defined(__X86__)
- // string.h can't be used by ACE with __OPTIMIZE__.
-# undef __OPTIMIZE__
-# include <string.h>
-# define __OPTIMIZE__
-# endif /* __X86__ */
-#endif /* __OPTIMIZE__ */
-
-#include "ace/config-g++-common.h"
-
-// The following defines the Neutrino compiler.
-// gcc should know to call g++ as necessary
-#ifdef __GNUC__
-# define ACE_CC_NAME ACE_TEXT ("gcc")
-#else
-# define ACE_CC_NAME ACE_TEXT ("QNX-RTP compiler ??")
-#endif
-
-// /usr/nto/include/float.h defines
-// FLT_MAX_EXP 127
-// DBL_MAX_EXP 1023
-// ace expects 128 & 1024 respectively
-// to set the following macros in ace/Basic_Types.h
-// These macros are:
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_FLOAT 4
-
-// At least qnx 6.3.2 uses a void return for unsetenv
-// This assumes that older versions do too.
-#define ACE_HAS_VOID_UNSETENV
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_QNX_RTP_COMMON_H */
diff --git a/ACE/ace/config-qnx-rtp-pre62x.h b/ACE/ace/config-qnx-rtp-pre62x.h
deleted file mode 100644
index 9324096ee2f..00000000000
--- a/ACE/ace/config-qnx-rtp-pre62x.h
+++ /dev/null
@@ -1,154 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// The following configuration file is designed to work for QNX RTP
-// GNU C++ and the POSIX (pthread) threads package. You can get QNX
-// RTP at http://get.qnx.com
-
-#ifndef ACE_CONFIG_RTP_PRE62x_H
-#define ACE_CONFIG_RTP_PRE62x_H
-#include /**/ "ace/pre.h"
-#include /**/ "ace/config-qnx-rtp-common.h"
-
-/////////////////////////////////////////////////////////////////
-// Definition of the features that are available.
-//
-// ACE_HAS Section
-/////////////////////////////////////////////////////////////////
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-// 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
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CLOCK_SETTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETPAGESIZE
-// Enable gperf, this is a hosted configuration.
-#define ACE_HAS_GPERF
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-//#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#define ACE_HAS_INLINED_OSCALLS
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_MSG
-#define ACE_HAS_MT_SAFE_MKTIME
-#define ACE_HAS_MUTEX_TIMEOUTS
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
-#define ACE_HAS_P_READ_WRITE
-#define ACE_HAS_REENTRANT_FUNCTIONS
-#define ACE_HAS_SELECT_H
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIGISMEMBER_BUG
-#define ACE_HAS_SIGWAIT
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SIG_MACROS
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
-// #define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_SOCKLEN_T
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_TERMIOS
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_HAS_THR_C_DEST
-#define ACE_HAS_THR_C_FUNC
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-#define ACE_HAS_UALARM
-#define ACE_HAS_UCONTEXT_T
-#define ACE_HAS_VOIDPTR_MMAP
-#define ACE_HAS_VOIDPTR_SOCKOPT
-
-/////////////////////////////////////////////////////////////////
-// Definition of the features that are not available.
-//
-// ACE_LACKS Section
-/////////////////////////////////////////////////////////////////
-#define ACE_LACKS_CONDATTR_PSHARED
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MUTEXATTR_PSHARED
-#define ACE_LACKS_NAMED_POSIX_SEM
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_SO_SNDBUF
-#define ACE_LACKS_SO_RCVBUF
-#define ACE_LACKS_SOCKETPAIR
-// Even if the QNX RTP docs says that socket pair are
-// available, there is actually no implementation of
-// soket-pairs.
-#define ACE_LACKS_STREAM_MODULES
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYS_MSG_H
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_ALPHASORT
-//#define ACE_LACKS_TCP_NODELAY // Based on the QNX RTP documentation, this option seems to
- // to be supported.
-#define ACE_LACKS_TELLDIR
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_TRUNCATE
-#define ACE_LACKS_T_ERRNO
-#define ACE_LACKS_UALARM_PROTOTYPE
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
-#define ACE_LACKS_U_LONGLONG_T
-#define ACE_LACKS_FD_MASK
-#define ACE_LACKS_NFDBITS
-
-#define ACE_LACKS_RLIMIT // QNX rlimit syscalls don't work properly with ACE.
-
-#define ACE_MT_SAFE 1
-#define ACE_NEEDS_FUNC_DEFINITIONS
-#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 64000
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-#define ACE_THR_PRI_FIFO_DEF 10
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-#define ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK 1
-
-#define ACE_SIZEOF_WCHAR 4
-
-// Not really, but the prototype returns wchar_t instead of wchar_t *
-#define ACE_LACKS_WCSSTR
-
-// No prototypes
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_WCSICMP
-#define ACE_LACKS_WCSNICMP
-#define ACE_LACKS_WCSDUP
-
-// And these have prototypes but no implementation
-#define ACE_LACKS_WCSLEN
-#define ACE_LACKS_WCSNCMP
-#define ACE_LACKS_WCSCPY
-#define ACE_LACKS_WCSNCPY
-#define ACE_LACKS_TOWLOWER
-#define ACE_LACKS_TOWUPPER
-#define ACE_LACKS_WCSCMP
-#define ACE_LACKS_WCSCAT
-#define ACE_LACKS_WCSNCAT
-#define ACE_LACKS_WCSSPN
-#define ACE_LACKS_WCSCHR
-#define ACE_LACKS_WCSPBRK
-#define ACE_LACKS_WCSRCHR
-
-#define ACE_LACKS_ACE_IOSTREAM
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_RTP_PRE62x_H */
diff --git a/ACE/ace/config-qnx-rtp.h b/ACE/ace/config-qnx-rtp.h
deleted file mode 100644
index 513d6eb1b00..00000000000
--- a/ACE/ace/config-qnx-rtp.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// The following configuration file is designed to work for QNX RTP
-// GNU C++ and the POSIX (pthread) threads package. You can get QNX
-// RTP at http://get.qnx.com.
-// This header is intended to switch between configuration for
-// various NTO versions.
-#ifndef ACE_CONFIG_QNX_RTP_H
-#define ACE_CONFIG_QNX_RTP_H
-#include /**/ "ace/pre.h"
-
-#include <sys/neutrino.h>
-#if !defined(_NTO_VERSION)
-# error "Could not detect QNX version from macro _NTO_VERSION"
-#else
-# define ACE_NTO_VERS _NTO_VERSION
-# if ACE_NTO_VERS < 620
-# include /**/ "ace/config-qnx-rtp-pre62x.h"
-# else
-# include /**/ "ace/config-qnx-rtp-62x.h"
-# endif
-#endif
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_QNX_RTP_H */
diff --git a/ACE/ace/config-qnx.h b/ACE/ace/config-qnx.h
new file mode 100644
index 00000000000..612e9ff0181
--- /dev/null
+++ b/ACE/ace/config-qnx.h
@@ -0,0 +1,196 @@
+// -*- C++ -*-
+// $Id$
+// The following configuration file is designed to work for QNX RTP
+// GNU C++ and the POSIX (pthread) threads package. You can get QNX
+// RTP at http://get.qnx.com.
+// This header is intended to switch between configuration for
+// various NTO versions.
+#ifndef ACE_CONFIG_QNX_H
+#define ACE_CONFIG_QNX_H
+#include /**/ "ace/pre.h"
+
+#include <sys/neutrino.h>
+#if !defined(_NTO_VERSION)
+# error "Could not detect QNX version from macro _NTO_VERSION"
+#endif
+
+#define _POSIX_C_SOURCE 199506
+
+// The following defines the Neutrino compiler.
+// gcc should know to call g++ as necessary
+#ifdef __GNUC__
+# define ACE_CC_NAME ACE_TEXT ("gcc")
+#else
+# define ACE_CC_NAME ACE_TEXT ("QNX-RTP compiler ??")
+#endif
+
+#include "ace/config-g++-common.h"
+
+// /usr/nto/include/float.h defines
+// FLT_MAX_EXP 127
+// DBL_MAX_EXP 1023
+// ace expects 128 & 1024 respectively
+// to set the following macros in ace/Basic_Types.h
+// These macros are:
+#define ACE_SIZEOF_DOUBLE 8
+#define ACE_SIZEOF_FLOAT 4
+
+// At least qnx 6.3.2 uses a void return for unsetenv
+// This assumes that older versions do too.
+#define ACE_HAS_VOID_UNSETENV
+
+/////////////////////////////////////////////////////////////////
+// Definition of the features that are available.
+//
+// ACE_HAS Section
+/////////////////////////////////////////////////////////////////
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_3_PARAM_WCSTOK
+#define ACE_HAS_3_PARAM_READDIR_R
+#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
+// 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
+#define ACE_HAS_ALLOCA_H
+#define ACE_HAS_ALT_CUSERID
+#define ACE_HAS_AUTOMATIC_INIT_FINI
+#define ACE_HAS_CLOCK_GETTIME
+#define ACE_HAS_CLOCK_SETTIME
+#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+#define ACE_HAS_DIRENT
+#define ACE_HAS_GETPAGESIZE
+#define ACE_HAS_GETIFADDRS
+#define ACE_HAS_GPERF
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+#define ACE_HAS_IP_MULTICAST
+#define ACE_HAS_MSG
+#define ACE_HAS_MT_SAFE_MKTIME
+#define ACE_HAS_MUTEX_TIMEOUTS
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+#define ACE_HAS_NONCONST_SWAB
+#define ACE_HAS_POSIX_SEM
+#define ACE_HAS_POSIX_TIME
+#define ACE_HAS_P_READ_WRITE
+#define ACE_HAS_REENTRANT_FUNCTIONS
+#define ACE_HAS_SELECT_H
+#define ACE_HAS_SHM_OPEN
+#define ACE_HAS_SIGINFO_T
+#define ACE_HAS_SIGISMEMBER_BUG
+#define ACE_HAS_SIGWAIT
+#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_SIOCGIFCONF
+#define ACE_HAS_SOCKADDR_IN_SIN_LEN
+#define ACE_HAS_SOCKLEN_T
+#define ACE_HAS_SSIZE_T
+#define ACE_HAS_STRINGS
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_HAS_SVR4_GETTIMEOFDAY
+#define ACE_HAS_TERMIOS
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+#define ACE_HAS_THR_C_DEST
+#define ACE_HAS_THR_C_FUNC
+#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
+#define ACE_HAS_UALARM
+#define ACE_HAS_UCONTEXT_T
+#define ACE_HAS_VOIDPTR_MMAP
+#define ACE_HAS_VOIDPTR_SOCKOPT
+#define ACE_HAS_NET_IF_DL_H
+#define ACE_HAS_SYS_SIGINFO_H
+#define ACE_HAS_GETTIMEOFDAY 1
+#define ACE_HAS_GETRUSAGE 1
+#define ACE_HAS_GETRUSAGE_PROTOTYPE 1
+#define ACE_HAS_NEW_NO_H 1
+#define ACE_IOCTL_TYPE_ARG2 u_long
+#define ACE_HAS_TIMEZONE 1
+#define ACE_HAS_SOCKADDR_MSG_NAME 1
+#define ACE_HAS_SIG_C_FUNC 1
+#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN 1
+#define ACE_HAS_STANDARD_CPP_LIBRARY 1
+#define ACE_HAS_STRING_CLASS 1
+#define ACE_HAS_STRSIGNAL
+#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
+#define ACE_HAS_POSIX_NONBLOCK 1
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS 1
+
+/////////////////////////////////////////////////////////////////
+// Definition of the features that are not available.
+//
+// ACE_LACKS Section
+/////////////////////////////////////////////////////////////////
+#define ACE_LACKS_CONST_TIMESPEC_PTR
+#define ACE_LACKS_LINEBUFFERED_STREAMBUF
+#define ACE_LACKS_MADVISE
+// Multicast_Tests reports for NTO 621 frames from unsubscribed groups
+#define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
+#define ACE_LACKS_RWLOCK_T
+#define ACE_LACKS_SO_SNDBUF
+#define ACE_LACKS_SO_RCVBUF
+#define ACE_LACKS_STREAM_MODULES
+#define ACE_LACKS_STROPTS_H
+#define ACE_LACKS_STRRECVFD
+#define ACE_LACKS_SYSCALL
+#define ACE_LACKS_SYSV_SHMEM
+#define ACE_LACKS_SYS_SHM_H
+#define ACE_LACKS_TIMESPEC_T
+#define ACE_LACKS_T_ERRNO
+#define ACE_LACKS_U_LONGLONG_T
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+#define ACE_HAS_SYS_SOCKIO_H 1
+#define ACE_HAS_SYSCTL
+#define ACE_HAS_SIGACTION_CONSTP2 1
+
+#if _NTO_VERSION < 650
+# define ACE_LACKS_NFDBITS
+# define ACE_LACKS_FD_MASK
+# define ACE_LACKS_SYS_MSG_H
+# define ACE_LACKS_ALPHASORT
+# define ACE_LACKS_STRPTIME
+# define ACE_LACKS_POLL_H
+#else
+# define ACE_HAS_POLL 1
+# define ACE_HAS_WCHAR 1
+# define ACE_HAS_XPG4_MULTIBYTE_CHAR 1
+#endif
+
+#define ACE_LACKS_ISCTYPE
+
+#define ACE_LACKS_RLIMIT // QNX rlimit syscalls don't work properly with ACE.
+
+#define ACE_MT_SAFE 1
+#define ACE_NEEDS_FUNC_DEFINITIONS
+#define ACE_NEEDS_HUGE_THREAD_STACKSIZE 64000
+#define ACE_THR_PRI_FIFO_DEF 10
+#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+#define ACE_HAS_SIGTIMEDWAIT
+#define ACE_HAS_SIGSUSPEND
+
+#define ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK 1
+
+#define ACE_SIZEOF_WCHAR 4
+
+// No prototypes
+#define ACE_LACKS_ITOW
+#define ACE_LACKS_WCSICMP
+#define ACE_LACKS_WCSNICMP
+#define ACE_LACKS_WCSDUP
+#define ACE_LACKS_STD_WSTRING
+
+#if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
+# define ACE_HAS_THREADS
+# define ACE_HAS_PTHREADS
+# define ACE_HAS_PTHREADS_UNIX98_EXT 1
+# define ACE_LACKS_PTHREAD_THR_SIGSETMASK
+# define ACE_HAS_PTHREAD_GETCONCURRENCY
+#endif /* ACE_MT_SAFE */
+
+
+// The default value of FD_SETSIZE is 32, but actually x86 NTO
+// supports by default at least 1000 descriptors in fd_set.
+#if defined( FD_SETSIZE )
+#undef FD_SETSIZE
+#endif
+#define FD_SETSIZE 1000
+
+#include /**/ "ace/post.h"
+#endif /* ACE_CONFIG_QNX_H */
diff --git a/ACE/ace/config-rtems.h b/ACE/ace/config-rtems.h
index a7f2d2622d2..5a42dc79ec4 100644
--- a/ACE/ace/config-rtems.h
+++ b/ACE/ace/config-rtems.h
@@ -56,7 +56,6 @@
#define ACE_LACKS_MKSTEMP
#define ACE_LACKS_STRDUP
#define ACE_LACKS_STRTOK_R
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
#define ACE_LACKS_REALPATH
#define ACE_LACKS_TEMPNAM
#define ACE_LACKS_TZSET
@@ -76,7 +75,6 @@
# define ACE_HAS_PTHREAD_SCHEDPARAM
# define ACE_LACKS_THREAD_PROCESS_SCOPING
#else
-# define ACE_HAS_POSIX_GETPWNAM_R
# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#endif
@@ -98,9 +96,7 @@
#define ACE_HAS_SIGINFO_T
#define ACE_HAS_SIGSUSPEND
#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
#define ACE_HAS_VOIDPTR_GETTIMEOFDAY
-#define ACE_HAS_SYS_ERRLIST
#define ACE_HAS_SYS_FILIO_H
#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
#define ACE_LACKS_EXEC
diff --git a/ACE/ace/config-sco-5.0.0-nothread.h b/ACE/ace/config-sco-5.0.0-nothread.h
deleted file mode 100644
index 5c7b0b06c0f..00000000000
--- a/ACE/ace/config-sco-5.0.0-nothread.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include /**/ "ace/pre.h"
-
-#include "ace/config-g++-common.h"
-#include "ace/config-sco-5.0.0.h"
-
-#define ACE_HAS_GNU_CSTRING_H
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-sco-5.0.0.h b/ACE/ace/config-sco-5.0.0.h
deleted file mode 100644
index d5fd5783e09..00000000000
--- a/ACE/ace/config-sco-5.0.0.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_SCO_5_0_0_H
-#define ACE_CONFIG_SCO_5_0_0_H
-#include /**/ "ace/pre.h"
-
-// Compiling for SCO.
-#if !defined (SCO)
-#define SCO
-#endif /* SCO */
-
-#if defined (SCO) && !defined (MAXPATHLEN)
-#define MAXPATHLEN 1023
-#endif /* SCO */
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_SIG_MACROS
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_STRRECVFD
-#define ACE_NEEDS_FTRUNCATE
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
-#define ACE_DEFAULT_CLOSE_ALL_HANDLES 0
-
-// Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_NONCONST_MSGSND
-#define ACE_HAS_BIG_FD_SET
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-// Compiler/platform contains the <sys/syscall.h> file.
-//#define ACE_HAS_SYS_SYSCALL_H
-
-// Fixes a problem with HP/UX not wrapping the mmap(2) header files
-// with extern "C".
-//#define ACE_HAS_BROKEN_MMAP_H
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Compiler/platform has correctly prototyped header files.
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform supports poll().
-// #define ACE_HAS_POLL
-
-// Platform supports POSIX O_NONBLOCK semantics.
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-
-// Compiler supports the ssize_t typedef.
-//#define ACE_HAS_SSIZE_T
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// Note, this only works if the flag is set above!
-//#define ACE_HAS_GETRUSAGE
-
-// Platform uses int for select() rather than fd_set.
-#define ACE_HAS_SELECT_H
-
-// Platform has prototypes for ACE_TLI.
-#define ACE_HAS_TLI_PROTOTYPES
-// Platform has the XLI version of ACE_TLI.
-// #define ACE_HAS_XLI
-
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-#define ACE_LACKS_STRCASECMP
-
-// #define ACE_HAS_POSIX_TIME
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_DIRENT
-#define ACE_LACKS_READDIR_R
-#define ACE_HAS_GPERF
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_SCO_5_0_0_H */
diff --git a/ACE/ace/config-suncc-common.h b/ACE/ace/config-suncc-common.h
index 2a6046a867f..6c72d03dd24 100644
--- a/ACE/ace/config-suncc-common.h
+++ b/ACE/ace/config-suncc-common.h
@@ -8,7 +8,6 @@
# define ACE_HAS_CPLUSPLUS_HEADERS
# define ACE_HAS_STDCPP_STL_INCLUDES
-# define ACE_HAS_TEMPLATE_TYPEDEFS
# define ACE_HAS_STANDARD_CPP_LIBRARY 1
# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
@@ -30,18 +29,7 @@
# define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) __extension__ extern template class SINGLETON_TYPE<CLASS, LOCK>;
#endif /* ACE_HAS_CUSTOM_EXPORT_MACROS == 0 */
-// __EXCEPTIONS is defined with -fexceptions, the egcs default. It
-// is not defined with -fno-exceptions, the ACE default for g++.
-// ACE_HAS_EXCEPTIONS is defined in
-// include/makeinclude/wrapper_macros.GNU, so this really isn't
-// necessary. Just in case . . .
-# if defined (__EXCEPTIONS) && !defined (ACE_HAS_EXCEPTIONS)
-# define ACE_HAS_EXCEPTIONS
-# endif /* __EXCEPTIONS && ! ACE_HAS_EXCEPTIONS */
-
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
+#define ACE_NEW_THROWS_EXCEPTIONS
#if (defined (i386) || defined (__i386__)) && !defined (ACE_SIZEOF_LONG_DOUBLE)
# define ACE_SIZEOF_LONG_DOUBLE 12
diff --git a/ACE/ace/config-sunos5.10.h b/ACE/ace/config-sunos5.10.h
index ca5b979495b..6bec278ac36 100644
--- a/ACE/ace/config-sunos5.10.h
+++ b/ACE/ace/config-sunos5.10.h
@@ -61,4 +61,6 @@
# define ACE_HAS_VOID_PTR_SCTP_GETPADDRS
#endif
+#define ACE_HAS_SOLARIS_ATOMIC_LIB
+
#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-sunos5.4-g++.h b/ACE/ace/config-sunos5.4-g++.h
index 5d19e14e798..e5b2f7e0644 100644
--- a/ACE/ace/config-sunos5.4-g++.h
+++ b/ACE/ace/config-sunos5.4-g++.h
@@ -17,7 +17,6 @@
#define ACE_HAS_STRING_CLASS
#include "ace/config-g++-common.h"
-#define ACE_HAS_GNU_CSTRING_H
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
@@ -35,9 +34,6 @@
// Sun has the wrong prototype for sendmsg.
#define ACE_HAS_NONCONST_SENDMSG
-// The SunOS 5.x version of rand_r is inconsistent with the header files...
-#define ACE_HAS_BROKEN_RANDR
-
// Platform supports system configuration information.
#define ACE_HAS_SYS_SYSTEMINFO_H
#define ACE_HAS_SYSV_SYSINFO
@@ -106,9 +102,6 @@
// Platform supports STREAM pipes.
#define ACE_HAS_STREAM_PIPES
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// Compiler/platform supports struct strbuf.
#define ACE_HAS_STRBUF_T
@@ -127,8 +120,7 @@
// Platform provides <sys/filio.h> header.
#define ACE_HAS_SYS_FILIO_H
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
+#define ACE_HAS_STRSIGNAL
/* Turn off the following defines if you want to disable threading. */
// Compile using multi-thread libraries.
diff --git a/ACE/ace/config-sunos5.4-sunc++-4.x.h b/ACE/ace/config-sunos5.4-sunc++-4.x.h
index bbf9816e616..6da030be8c1 100644
--- a/ACE/ace/config-sunos5.4-sunc++-4.x.h
+++ b/ACE/ace/config-sunos5.4-sunc++-4.x.h
@@ -26,9 +26,6 @@
// Sun has the wrong prototype for sendmsg.
#define ACE_HAS_NONCONST_SENDMSG
-// The SunOS 5.x version of rand_r is inconsistent with the header files...
-#define ACE_HAS_BROKEN_RANDR
-
// Platform supports system configuration information.
#define ACE_HAS_SYS_SYSTEMINFO_H
#define ACE_HAS_SYSV_SYSINFO
@@ -100,9 +97,6 @@
// Platform supports STREAM pipes.
#define ACE_HAS_STREAM_PIPES
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// Compiler/platform supports struct strbuf.
#define ACE_HAS_STRBUF_T
@@ -124,8 +118,7 @@
// Platform provides <sys/filio.h> header.
#define ACE_HAS_SYS_FILIO_H
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
+#define ACE_HAS_STRSIGNAL
/* Turn off the following defines if you want to disable threading. */
// Compile using multi-thread libraries.
@@ -180,11 +173,9 @@
#define ACE_HAS_GPERF
#define ACE_HAS_DIRENT
-# if defined (ACE_HAS_EXCEPTIONS)
- // If exceptions are enabled and we are using Sun/CC then
- // <operator new> throws an exception instead of returning 0.
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
+// If exceptions are enabled and we are using Sun/CC then
+// <operator new> throws an exception instead of returning 0.
+#define ACE_NEW_THROWS_EXCEPTIONS
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-sunos5.5.h b/ACE/ace/config-sunos5.5.h
index 173b8526faf..3894f67ad7e 100644
--- a/ACE/ace/config-sunos5.5.h
+++ b/ACE/ace/config-sunos5.5.h
@@ -44,17 +44,11 @@
// If -compat=4 is turned on, the old 4.2 settings for iostreams are used,
// but the newer, explicit instantiation is used (above)
# if (__SUNPRO_CC_COMPAT >= 5)
-# define ACE_HAS_TEMPLATE_TYPEDEFS
# define ACE_HAS_STANDARD_CPP_LIBRARY 1
# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
# define ACE_HAS_THR_C_DEST
# endif /* __SUNPRO_CC_COMPAT >= 5 */
-# if defined (ACE_HAS_EXCEPTIONS)
-# define ACE_HAS_NEW_NOTHROW
-# else
- // See /opt/SUNWspro_5.0/SC5.0/include/CC/stdcomp.h:
-# define _RWSTD_NO_EXCEPTIONS 1
-# endif /* ! ACE_HAS_EXCEPTIONS */
+# define ACE_HAS_NEW_NOTHROW
# elif (__SUNPRO_CC == 0x420) || (__SUNPRO_CC == 0x410)
# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
# endif /* __SUNPRO_CC >= 0x500 */
@@ -67,24 +61,9 @@
# define ACE_LACKS_LINEBUFFERED_STREAMBUF
# define ACE_LACKS_SIGNED_CHAR
- // ACE_HAS_EXCEPTIONS precludes -noex in
- // include/makeinclude/platform_macros.GNU. But beware, we have
- // seen problems with exception handling on multiprocessor
- // UltraSparcs: threaded executables core dump when threads exit.
- // This problem does not seem to appear on single-processor UltraSparcs.
- // And, it is solved with the application of patch
- // 104631-02 "C++ 4.2: Jumbo Patch for C++ 4.2 on Solaris SPARC"
- // to Sun C++ 4.2.
- // To provide optimum performance, ACE_HAS_EXCEPTIONS is disabled by
- // default. It can be enabled by adding "exceptions=1" to the "make"
- // invocation. See include/makeinclude/platform_sunos5_sunc++.GNU
- // for details.
-
-# if defined (ACE_HAS_EXCEPTIONS)
- // If exceptions are enabled and we are using Sun/CC then
- // <operator new> throws an exception instead of returning 0.
-# define ACE_NEW_THROWS_EXCEPTIONS
-# endif /* ACE_HAS_EXCEPTIONS */
+// If exceptions are enabled and we are using Sun/CC then
+// <operator new> throws an exception instead of returning 0.
+#define ACE_NEW_THROWS_EXCEPTIONS
/* If you want to disable threading with Sun CC, remove -mt
from your CFLAGS, e.g., using make threads=0. */
@@ -116,10 +95,10 @@
// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
// this must appear before its #include.
# define ACE_HAS_STRING_CLASS
+
# include "ace/config-g++-common.h"
+
# define ACE_HAS_HI_RES_TIMER
- // Denotes that GNU has cstring.h as standard, to redefine memchr().
-# define ACE_HAS_GNU_CSTRING_H
# define ACE_HAS_XPG4_MULTIBYTE_CHAR
# if !defined (ACE_MT_SAFE) || ACE_MT_SAFE != 0
@@ -132,33 +111,15 @@
# endif /* _REENTRANT */
# endif /* !ACE_MT_SAFE */
-#elif defined (ghs)
-
-# if !defined (ACE_MT_SAFE) || ACE_MT_SAFE != 0
- // ACE_MT_SAFE is #defined below, for all compilers.
-# if !defined (_REENTRANT)
- /* If you want to disable threading, comment out the following
- line. Or, add -DACE_MT_SAFE=0 to your CFLAGS, e.g., using
- make threads=0. */
-# define _REENTRANT
-# endif /* _REENTRANT */
-# endif /* !ACE_MT_SAFE */
-
-# define ACE_CONFIG_INCLUDE_GHS_COMMON
-# include "ace/config-ghs-common.h"
-
- // To avoid warning about inconsistent declaration between Sun's
- // stdlib.h and Green Hills' ctype.h.
-# include <stdlib.h>
-
- // IOStream_Test never halts with Green Hills 1.8.9.
-# define ACE_LACKS_ACE_IOSTREAM
+# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 3))
+# define ACE_LACKS_STD_WSTRING 1
+# endif
-#else /* ! __SUNPRO_CC && ! __GNUG__ && ! ghs */
+#else /* ! __SUNPRO_CC && ! __GNUG__ */
# ifdef __cplusplus /* Let it slide for C compilers. */
# error unsupported compiler in ace/config-sunos5.5.h
# endif /* __cplusplus */
-#endif /* ! __SUNPRO_CC && ! __GNUG__ && ! ghs */
+#endif /* ! __SUNPRO_CC && ! __GNUG__ */
#if !defined (__ACE_INLINE__)
// @note If you have link problems with undefined inline template
@@ -264,9 +225,6 @@
// Platform supports STREAM pipes.
#define ACE_HAS_STREAM_PIPES
-// Compiler/platform supports strerror ().
-#define ACE_HAS_STRERROR
-
// Compiler/platform supports struct strbuf.
#define ACE_HAS_STRBUF_T
@@ -282,8 +240,7 @@
// Platform provides <sys/filio.h> header.
#define ACE_HAS_SYS_FILIO_H
-// Compiler/platform supports sys_siglist array.
-#define ACE_HAS_SYS_SIGLIST
+#define ACE_HAS_STRSIGNAL
// SunOS 5.5.x does not support mkstemp
#define ACE_LACKS_MKSTEMP
@@ -293,12 +250,6 @@
# define ACE_HAS_CHARPTR_SHMDT
#endif
-// Platform has posix getpwnam_r
-#if (defined (_POSIX_C_SOURCE) && _POSIX_C_SOURCE - 0 >= 199506L) || \
- defined(_POSIX_PTHREAD_SEMANTICS)
-# define ACE_HAS_POSIX_GETPWNAM_R
-#endif /* _POSIX_C_SOURCE || _POSIX_PTHREAD_SEMANTICS */
-
#if !defined (ACE_MT_SAFE) || (ACE_MT_SAFE == 1)
#if defined (_REENTRANT) || \
(defined (_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L)) || \
@@ -374,16 +325,7 @@
# define ACE_CC_MAJOR_VERSION (__SUNPRO_CC >> 8)
# define ACE_CC_MINOR_VERSION (__SUNPRO_CC & 0x00ff)
# define ACE_CC_BETA_VERSION (0)
-#elif defined (__GNUG__)
-# define ACE_CC_MAJOR_VERSION __GNUC__
-# define ACE_CC_MINOR_VERSION __GNUC_MINOR__
-# define ACE_CC_BETA_VERSION (0)
-# if __GNUC_MINOR__ >= 90
-# define ACE_CC_NAME ACE_TEXT ("egcs")
-# else
-# define ACE_CC_NAME ACE_TEXT ("g++")
-# endif /* __GNUC_MINOR__ */
-#endif /* __GNUG__ */
+#endif /* __SUNPRO_CC */
#if defined (i386) && (_FILE_OFFSET_BITS==32)
# define ACE_HAS_X86_STAT_MACROS
diff --git a/ACE/ace/config-sunos5.6.h b/ACE/ace/config-sunos5.6.h
index c70539d8cde..c10afb06ad7 100644
--- a/ACE/ace/config-sunos5.6.h
+++ b/ACE/ace/config-sunos5.6.h
@@ -38,13 +38,7 @@
#ifndef ACE_TEMPLATES_REQUIRE_SOURCE
#define ACE_TEMPLATES_REQUIRE_SOURCE 1
#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-#ifndef ACE_HAS_TEMPLATE_TYPEDEFS
-#define ACE_HAS_TEMPLATE_TYPEDEFS 1
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
// Forte 7 seems to botch this one...
-#if __SUNPRO_CC == 0x540
-#undef ACE_HAS_TEMPLATE_TYPEDEFS
-#endif
#ifndef ACE_HAS_THR_C_DEST
#define ACE_HAS_THR_C_DEST 1
#endif /* ACE_HAS_THR_C_DEST */
@@ -84,7 +78,6 @@
// SunOS 5.6 and above support mkstemp
#undef ACE_LACKS_MKSTEMP
-
// SunOS 5.6 has AIO calls.
#if !defined (ACE_HAS_AIO_CALLS)
#define ACE_HAS_AIO_CALLS
@@ -107,9 +100,6 @@
#define ACE_POSIX_AIOCB_PROACTOR
#endif /* ACE_POSIX_AIOCB_PROACTOR */
-// SunOS 5.6 has a buggy select
-#define ACE_HAS_LIMITED_SELECT
-
// SunOS 5.6 introduced shm_open, but need to turn on POSIX.1b or higher
// to pick it up.
#if defined (_POSIX_C_SOURCE) && (_POSIX_C_SOURCE > 2)
diff --git a/ACE/ace/config-sunos5.7.h b/ACE/ace/config-sunos5.7.h
index 7a48cf4afbc..38476485251 100644
--- a/ACE/ace/config-sunos5.7.h
+++ b/ACE/ace/config-sunos5.7.h
@@ -25,17 +25,10 @@
// SunOS 5.7 has getloadavg()
#undef ACE_LACKS_GETLOADAVG
-#if defined (ghs)
- // SunOS 5.7's /usr/include/sys/procfs_isa.h needs uint64_t,
- // but /usr/include/sys/int_types.h doesn't #define it because
- // _NO_LONGLONG is #
-# undef ACE_HAS_PROC_FS
-# undef ACE_HAS_PRUSAGE_T
-
-#elif defined (__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
+#if defined (__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
// Wide character methods are in std:: when using SunCC 5.3
# define ACE_WCHAR_IN_STD_NAMESPACE
-#endif /* __GNUG__ || ghs */
+#endif
// SunOS 5.7 supports SCHED_FIFO and SCHED_RR, as well as SCHED_OTHER.
#undef ACE_HAS_ONLY_SCHED_OTHER
@@ -54,10 +47,6 @@
#define ACE_HAS_AIO_CALLS
#endif /* !ACE_HAS_AIO_CALLS */
-#ifdef ACE_HAS_LIMITED_SELECT
-#undef ACE_HAS_LIMITED_SELECT
-#endif /* ACE_HAS_LIMITED_SELECT */
-
// SunOS 5.7 has socklen_t
#define ACE_HAS_SOCKLEN_T
diff --git a/ACE/ace/config-tandem-nsk-mips-v2.h b/ACE/ace/config-tandem-nsk-mips-v2.h
index 5e906d82826..48f1107c86b 100644
--- a/ACE/ace/config-tandem-nsk-mips-v2.h
+++ b/ACE/ace/config-tandem-nsk-mips-v2.h
@@ -180,14 +180,11 @@ typedef enum CMA_T_SCHED_POLICY {
#define ACE_LACKS_WCTYPE_H
// Platform supports the POSIX regular expression library.
-// [Note Tandem NSK platform does have regular expresson support but it
+// [Note Tandem NSK platform does have regular expression support but it
// does not follow the assumptions made by ACE. To use it would need
// to make some ACE modifications.]
//#define ACE_HAS_REGEX
-// Compiler/platform supports strerror ()
-#define ACE_HAS_STRERROR
-
// Platform doesn't have truncate()
#define ACE_LACKS_TRUNCATE
@@ -339,9 +336,6 @@ typedef enum CMA_T_SCHED_POLICY {
// Compiler specific parts
//=========================================================================
-// Compiler supports C++ exception handling
-#define ACE_HAS_EXCEPTIONS
-
// Compiler/platform has correctly prototyped header files
#define ACE_HAS_CPLUSPLUS_HEADERS
@@ -358,10 +352,6 @@ typedef enum CMA_T_SCHED_POLICY {
// .cpp files).
#define ACE_TEMPLATES_REQUIRE_SOURCE
-// Compiler implements templates that support typedefs inside
-// of classes used as formal arguments to a template class.
-#define ACE_HAS_TEMPLATE_TYPEDEFS
-
// Platform has its standard c++ library in the namespace std.
#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
@@ -376,9 +366,6 @@ typedef enum CMA_T_SCHED_POLICY {
// Build options
//=========================================================================
-// Disable the inclusion of RCS ids in the generated code.
-#define ACE_USE_RCSID 0
-
// For debugging problems in os calls (but this doesn't work too well
// since output is not interleaved properly with output from ACE_TRACE
//# define ACE_OS_TRACE(X) ::printf(X)
diff --git a/ACE/ace/config-tandem-nsk-mips-v3.h b/ACE/ace/config-tandem-nsk-mips-v3.h
index 05b0107b7b6..0fb12f5f9ff 100644
--- a/ACE/ace/config-tandem-nsk-mips-v3.h
+++ b/ACE/ace/config-tandem-nsk-mips-v3.h
@@ -186,9 +186,6 @@ typedef enum CMA_T_SCHED_POLICY {
// to make some ACE modifications.]
//#define ACE_HAS_REGEX
-// Compiler/platform supports strerror ()
-#define ACE_HAS_STRERROR
-
// Platform doesn't have truncate()
#define ACE_LACKS_TRUNCATE
@@ -374,9 +371,6 @@ typedef enum CMA_T_SCHED_POLICY {
// Compiler specific parts
//=========================================================================
-// Compiler supports C++ exception handling
-#define ACE_HAS_EXCEPTIONS 1
-
// Compiler/platform has correctly prototyped header files
#define ACE_HAS_CPLUSPLUS_HEADERS
@@ -393,10 +387,6 @@ typedef enum CMA_T_SCHED_POLICY {
// .cpp files).
#define ACE_TEMPLATES_REQUIRE_SOURCE
-// Compiler implements templates that support typedefs inside
-// of classes used as formal arguments to a template class.
-#define ACE_HAS_TEMPLATE_TYPEDEFS
-
// Platform/Compiler supports a String class
#define ACE_HAS_STRING_CLASS
#define ACE_HAS_STDCPP_STL_INCLUDES
@@ -427,7 +417,7 @@ typedef enum CMA_T_SCHED_POLICY {
#if defined(USE_EXPLICIT_EXPORT)
#define ACE_LACKS_INLINE_FUNCTIONS
-#define ACE_HAS_CUSTOM_EXPORT_MACROS
+#define ACE_HAS_CUSTOM_EXPORT_MACROS 1
#define ACE_Proper_Export_Flag export$
#define ACE_Proper_Import_Flag import$
#define ACE_EXPORT_SINGLETON_DECLARATION(T) template class export$ T
@@ -441,9 +431,6 @@ typedef enum CMA_T_SCHED_POLICY {
// Build options
//=========================================================================
-// Disable the inclusion of RCS ids in the generated code.
-#define ACE_USE_RCSID 0
-
// For debugging problems in os calls (but this doesn't work too well
// since output is not interleaved properly with output from ACE_TRACE
//# define ACE_OS_TRACE(X) ::printf(X)
diff --git a/ACE/ace/config-tandem.h b/ACE/ace/config-tandem.h
deleted file mode 100644
index 896405094c9..00000000000
--- a/ACE/ace/config-tandem.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* -*- C++ -*- */
-// Testing TANDEM
-// $Id$
-
-// The following configuration file is designed to work for Tandems NonStop-UX
-// 4.2MP platforms using the NCC 3.20 compiler.
-
-// Note this is a test version it might include several errors I
-// have done a test and set/unset until I errors disappered.
-// Some of the options that should be set aren't because of the simple fact
-// that i haven't the time to check what is wrong.
-// e.g. widecharacter are supported but a wcstok which only take 2 parameters
-// are included by the compiler, to get the correct wcstok that takes 3 params
-// we must set _XOPEN_SOURCE and we get ALOT of errors and warnings.
-// So this config is done to get things to start to work it isn't finished.
-// Janne (Jan.Perman@osd.Ericsson.se)
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include /**/ "ace/pre.h"
-
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#define ACE_HAS_IDTYPE_T
-// Optimize ACE_Handle_Set for select().
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Tandem doesn't include this although they are defined
-// in sys/time.h and sys/resource.h
-#define ACE_LACKS_RLIMIT_PROTOTYPE // jjpp
-// Tandem has a function to set t_errno (set_t_errno)
-#define ACE_HAS_SET_T_ERRNO // jjpp
-
-//Platform supports System V IPC (most versions of UNIX, but not Win32)
-#define ACE_HAS_SYSV_IPC
-
-// OS/compiler omits the const from the sendmsg() prototype.
-#define ACE_HAS_NONCONST_SENDMSG
-
-//Platform supports system configuration information
-#define ACE_HAS_SYS_SYSTEMINFO_H
-#define ACE_HAS_SYSV_SYSINFO
-
-//Platform supports the POSIX regular expression library
-#define ACE_HAS_REGEX
-
-// Platform supports recvmsg and sendmsg
-#define ACE_HAS_MSG
-
-//Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYS_SYSCALL_H
-
-//Platform provides <sysent.h> header
-#define ACE_HAS_SYSENT_H
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-//Platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Compiler/platform has correctly prototyped header files
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-//Compiler/platform supports alloca()
-// 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/platform has <alloca.h>
-#define ACE_HAS_ALLOCA_H
-
-//Platform contains <poll.h>
-#define ACE_HAS_POLL
-
-// Platform supports the POSIX struct timespec type
-#define ACE_HAS_POSIX_TIME // As i understand it, but i'm in deep water
-//Platform supports the SVR4 timestruc_t type
-
-// To get this to work a patch in sys/signal must be made
-// typedef void SIG_FUNC_TYPE(int);
-//#if defined (__cplusplus)
-// void (*sa_handler)(int);
-//#else
-// ...
-//#endif
-//#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_TANDEM_SIGNALS
-//Compiler/platform defines the sig_atomic_t typedef
-#define ACE_HAS_SIG_ATOMIC_T
-//Platform supports SVR4 extended signals
-#define ACE_HAS_SIGINFO_T
-//Platform supports ucontext_t (which is used in the extended signal API).
-#define ACE_HAS_UCONTEXT_T
-
-// Platform/compiler has the sigwait(2) prototype
-#define ACE_HAS_SIGWAIT
-
-//Compiler/platform provides the sockio.h file
-#define ACE_HAS_SYS_SOCKIO_H
-
-// Compiler supports the ssize_t typedef
-#define ACE_HAS_SSIZE_T // Limits.h must be included
-
-//Platform supports STREAMS
-#define ACE_HAS_STREAMS
-
-#define ACE_HAS_STREAM_PIPES
-//Platform supports STREAM pipes
-
-//Compiler/platform supports strerror ()
-#define ACE_HAS_STRERROR
-
-//Compiler/platform supports struct strbuf
-#define ACE_HAS_STRBUF_T
-
-//Compiler/platform supports SVR4 dynamic linking semantics
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-//Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)...
-#define ACE_HAS_SVR4_TLI
-
-//Platform provides <sys/filio.h> header
-#define ACE_HAS_SYS_FILIO_H
-
-//Platform supports TLI timod STREAMS module
-#define ACE_HAS_TIMOD_H
-//Platform supports TLI tiuser header
-#define ACE_HAS_TIUSER_H
-
-//Platform supports TLI
-#define ACE_HAS_TLI
-//Platform provides TLI function prototypes
-#define ACE_HAS_TLI_PROTOTYPES
-
-//Platform lacks streambuf "linebuffered ()".
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-// Platform lacks "signed char" type (broken!)
-#define ACE_LACKS_SIGNED_CHAR
-
-
-#define ACE_PAGE_SIZE 4096
-// Defines the page size of the system (not used on Win32 or
-// with ACE_HAS_GETPAGESIZE).
-
-/****** THREAD SPECIFIC **********/
-/* If you want to remove threading then comment out the following four #defines .*/
-#if !defined (ACE_MT_SAFE)
- #define ACE_MT_SAFE 1 //Compile using multi-thread libraries
-#endif
-#define ACE_HAS_THREADS //Platform supports threads
-#define ACE_HAS_STHREADS //Platform supports Solaris threads
-
-// Compiler/platform has threadspecific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-//Platform supports thr_keydelete (e.g,. UNIXWARE)
-
-#define ACE_HAS_THR_MINSTACK // Tandem uses thr_minstack instead of thr_min_stack
-#define ACE_LACKS_PRI_T // Tandem lacks pri_t
-#define ACE_HAS_THR_KEYDELETE
-
-//*************************************
-
-/*********************************/
-
-/******* SIGNAL STUFF *******/
-
-//Platform uses non-const char * in calls to gethostbyaddr, gethostbyname,
-// getservbyname
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_HAS_NONCONST_INET_ADDR
-// Platform's select() uses non-const timeval* (only found on Linux right now)
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-// And on Tandem :-)
-//Uses ctime_r & asctime_r with only two parameters vs. three.
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-//Platform has special header for select().
-#define ACE_HAS_SELECT_H
-// Platform/compiler supports Standard C++ Library
-#define ACE_HAS_STANDARD_CPP_LIBRARY
-//Platform lacks madvise() (e.g., Linux)
-#define ACE_LACKS_MADVISE
-//Compiler/platform lacks strcasecmp() (e.g., DG/UX, UNIXWARE, VXWORKS)
-#define ACE_LACKS_STRCASECMP
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-tru64.h b/ACE/ace/config-tru64.h
deleted file mode 100644
index 707196475bd..00000000000
--- a/ACE/ace/config-tru64.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// The following configuration file is designed to work for the
-// Digital UNIX V4.0a and later platforms. It relies on
-// config-osf1-4.0.h, and adds deltas for newer platforms.
-
-#ifndef ACE_CONFIG_TRU64_H
-#define ACE_CONFIG_TRU64_H
-#include /**/ "ace/pre.h"
-
-#if !defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-
-/*clearerr is not defined when _REENTRANT is not defined*/
-#if ACE_MT_SAFE == 0
-#define ACE_LACKS_CLEARERR
-#endif /* ACE_MT_SAFE == 0 */
-
-#include "ace/config-posix.h"
-
-// Configuration-specific #defines:
-// 1) g++ or cxx
-// 2) pthreads or DCE threads
-#if defined (__GNUG__)
- // g++ with pthreads
-
- // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
- // this must appear before its #include.
-# define ACE_HAS_STRING_CLASS
-
-# include "ace/config-g++-common.h"
-
-# define ACE_HAS_GNU_CSTRING_H
-# define ACE_HAS_REENTRANT_FUNCTIONS
-#elif defined (__DECCXX)
-
-# define ACE_CONFIG_INCLUDE_CXX_COMMON
-# include "ace/config-cxx-common.h"
-
-#elif defined (__rational__)
-# define ACE_HAS_REENTRANT_FUNCTIONS
-# define ACE_HAS_STRING_CLASS
-# define ACE_LACKS_LINEBUFFERED_STREAMBUF
-# define ACE_LACKS_SIGNED_CHAR
-
- // Exceptions are enabled by platform_osf1_4.0_rcc.GNU.
-# define ACE_HAS_STDCPP_STL_INCLUDES
-#else
-# ifdef __cplusplus /* Let it slide for C compilers. */
-# error unsupported compiler on Digital Unix
-# endif /* __cplusplus */
-#endif /* ! __GNUG__ && ! __DECCXX && ! __rational__ */
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_HAS_BROKEN_IF_HEADER
-#define ACE_HAS_BROKEN_R_ROUTINES
-#if (ACE_MT_SAFE != 0)
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#endif /* ACE_MT_SAFE != 0 */
-#define ACE_LACKS_T_ERRNO
-#if !defined (DIGITAL_UNIX)
-# define DIGITAL_UNIX 0x400
-#endif /* ! DIGITAL_UNIX */
-
-#define ACE_SIZEOF_LONG 8
-
-#define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_NONCONST_SETRLIMIT
-#define ACE_HAS_BROKEN_T_ERROR
-#define ACE_HAS_NONCONST_WRITEV
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CLOCK_SETTIME
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_DIRENT
-#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_GPERF
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-#define ACE_HAS_IP_MULTICAST
-#define ACE_HAS_LLSEEK
-#define ACE_HAS_LONG_MAP_FAILED
-#define ACE_HAS_MSG
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_NONCONST_SENDMSG
-#define ACE_HAS_OSF1_GETTIMEOFDAY
-#define ACE_HAS_OSF_TIMOD_H
-#define ACE_HAS_POLL
-#define ACE_HAS_POSIX_NONBLOCK
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PRIOCNTL
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_STREAMS
-#define ACE_HAS_STRERROR
-#define ACE_HAS_STRPTIME
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_SVR4_SIGNAL_T
-#define ACE_HAS_SYS_SYSCALL_H
-#define ACE_HAS_SYSV_IPC
-#if (ACE_MT_SAFE == 0)
-// clearerr is not defined when _REENTRANT is not defined
-#define ACE_LACKS_CLEARERR
-#else /* ACE_MT_SAFE != 0 */
-#define ACE_HAS_THREADS
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-#define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
-#endif /* ACE_MT_SAFE != 0 */
-#define ACE_HAS_TIUSER_H
-#define ACE_HAS_XTI
-#define ACE_HAS_TLI_PROTOTYPES
-#define ACE_HAS_UALARM
-#define ACE_HAS_UCONTEXT_T
-#define ACE_LACKS_PRI_T
-#define ACE_LACKS_RWLOCK_T
-#define ACE_PAGE_SIZE 8192
-#define ACE_HAS_SIGTIMEDWAIT
-#define ACE_HAS_SIGSUSPEND
-
-// DJT 6/10/96 All these broken macro's can now be removed with the
-// approporiate ordering of the include files. The Platinum release
-// now temporarily supports both forms. Platform's implementation of
-// sendmsg() has a non-const msgheader parameter.
-#define ACE_HAS_NONCONST_SENDMSG
-#define ACE_HAS_IDTYPE_T
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-#if DIGITAL_UNIX >= 0x500
-# define ACE_HAS_XPG4_MULTIBYTE_CHAR 1
-#endif /* DIGITAL_UNIX >= 0x500 */
-
-#if DIGITAL_UNIX >= 0x40E
-# define ACE_LACKS_STDINT_H
-#endif /* DIGITAL_UNIX >= 0x40E */
-
-#if (DIGITAL_UNIX >= 0x400) && (DIGITAL_UNIX < 0x500)
-#define ACE_LACKS_PREAD_PROTOTYPE
-#endif /* (DIGITAL_UNIX >= 0x400) && (DIGITAL_UNIX < 0x500) */
-
-// gethostbyaddr does not handle IPv6-mapped-IPv4 addresses
-#define ACE_HAS_BROKEN_GETHOSTBYADDR_V4MAPPED
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_TRU64_H */
diff --git a/ACE/ace/config-unixware-7.1.0.h b/ACE/ace/config-unixware-7.1.0.h
deleted file mode 100644
index 61fda550ddf..00000000000
--- a/ACE/ace/config-unixware-7.1.0.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-
-/* ACE configuration header file */
-
-/* Include the commong gnu config file */
-#include "config-g++-common.h"
-
-/* For unixware 7.1 && g++ 2.91.57, see if this fixes my problem */
-#ifndef UNIXWARE_7_1
-#define UNIXWARE_7_1
-#endif
-
-/* Define if you have alloca, as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define if you have the strftime function. */
-#define HAVE_STRFTIME 1
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if lex declares yytext as a char * by default, not a char[]. */
-#define YYTEXT_POINTER 1
-
-/* Define _REENTRANT if reentrant functions should be used. */
-#ifndef _REENTRANT
-# define _REENTRANT 1
-#endif
-
-#define ACE_HAS_NEW_NO_H 1
-#define ACE_HAS_STDEXCEPT_NO_H 1
-
-#define ACE_THREAD_MIN_PRIORITY 0
-#if defined (ACE_THREAD_MIN_PRIORITY)
-# define PTHREAD_MIN_PRIORITY ACE_THREAD_MIN_PRIORITY
-#endif /* #if defined (ACE_THREAD_MIN_PRIORITY) */
-
-#define ACE_THREAD_MAX_PRIORITY 99
-#if defined (ACE_THREAD_MAX_PRIORITY)
-# define PTHREAD_MAX_PRIORITY ACE_THREAD_MAX_PRIORITY
-#endif /* #if defined (ACE_THREAD_MAX_PRIORITY) */
-
-/* Specify sizes of given built-in types. If a size isn't defined here,
- then ace/Basic_Types.h will attempt to deduce the size. */
-/* #undef ACE_SIZEOF_CHAR */
-#define ACE_SIZEOF_SHORT 2
-#define ACE_SIZEOF_INT 4
-#define ACE_SIZEOF_LONG 4
-#define ACE_SIZEOF_LONG_LONG 8
-#define ACE_SIZEOF_VOID_P 4
-#define ACE_SIZEOF_FLOAT 4
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-/* Enable ACE inlining */
-#define __ACE_INLINE__ 1
-
-/* OS has priocntl (2) */
-#define ACE_HAS_PRIOCNTL 1
-
-/* Platform has pread() and pwrite() support */
-#define ACE_HAS_P_READ_WRITE 1
-
-/* Compiler/platform supports alloca() */
-// 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 1
-
-/* Compiler/platform correctly calls init()/fini() for shared libraries */
-#define ACE_HAS_AUTOMATIC_INIT_FINI 1
-
-/* Platform doesn't cast MAP_FAILED to a (void *). */
-/* #undef ACE_HAS_BROKEN_MAP_FAILED */
-/* Staller: oh yes, let's do this! */
-#define ACE_HAS_BROKEN_MAP_FAILED
-
-/* Prototypes for both signal() and struct sigaction are consistent. */
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1
-
-/* Platform supports operations on directories via struct dirent,
- readdir_r, etc. */
-#define ACE_HAS_DIRENT 1
-
-/* Compiler supports C++ exception handling */
-// MM-Graz if ! defined inserted, to prevent warnings, because it is already
-// defined in config-g++common.h
-# if !defined (ACE_HAS_EXCEPTIONS)
-#define ACE_HAS_EXCEPTIONS 1
-# endif
-
-/* Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must be
- defined, except on Win32) */
-#define ACE_HAS_GETPAGESIZE 1
-
-/* Platform supports the getrusage() system call. */
-#define ACE_HAS_GETRUSAGE 1
-
-/* Platform has a getrusage () prototype in sys/resource.h that differs from
- the one in ace/OS.i. */
-#define ACE_HAS_GETRUSAGE_PROTOTYPE 1
-
-/* Denotes that GNU has cstring.h as standard which redefines memchr() */
-#define ACE_HAS_GNU_CSTRING_H
-
-/* The GPERF utility is compiled for this platform */
-#define ACE_HAS_GPERF 1
-
-/* Optimize ACE_Handle_Set::count_bits for select() operations (common case) */
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT 1
-
-/* Compiler/platform supports idtype_t. */
-#define ACE_HAS_IDTYPE_T 1
-
-/* Platform supports IP multicast */
-#define ACE_HAS_IP_MULTICAST 1
-
-/* Platform supports thr_keydelete (e.g,. UNIXWARE) */
-#define ACE_HAS_THR_KEYDELETE 1
-
-/* Platform calls thr_minstack() rather than thr_min_stack() (e.g., Tandem). */
-#define ACE_HAS_THR_MINSTACK 1
-
-/* Platform supports recvmsg and sendmsg */
-#define ACE_HAS_MSG 1
-
-/* Platform's select() uses non-const timeval* (only found on Linux right
- now) */
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
-
-/* Uses ctime_r & asctime_r with only two parameters vs. three. */
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R 1
-
-/* Platform is an Intel Pentium microprocessor. */
-/* There is a problem with the gethrtime() because of (apparently) a problem
- with the inline assembly instruction. Hopefully there is a way to resolve
- that with an improvement to the assembler
-*/
-#ifdef ACE_HAS_PENTIUM
-#undef ACE_HAS_PENTIUM
-#endif /* ACE_HAS_PENTIUM */
-
-
-/* Platform contains <poll.h> */
-#define ACE_HAS_POLL 1
-
-/* Platform supports POSIX O_NONBLOCK semantics */
-#define ACE_HAS_POSIX_NONBLOCK 1
-
-/* Platform supports the POSIX struct timespec type */
-#define ACE_HAS_POSIX_TIME 1
-
-/* Platform supports the /proc file system and defines tid_t
- in <sys/procfs.h> */
-#define ACE_HAS_PROC_FS 1
-
-/* Platform supports POSIX Threads */
-#define ACE_HAS_PTHREADS 1
-
-/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
- PTHREAD_PROCESS_SHARED values */
-#define ACE_HAS_PTHREAD_PROCESS_ENUM 1
-
-/* Platform will recurse infinitely on thread exits from TSS cleanup routines
- (e.g., AIX) */
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS 1
-
-/* Platform supports reentrant functions (i.e., all the POSIX *_r
- functions). */
-#define ACE_HAS_REENTRANT_FUNCTIONS 1
-
-/* Platform has support for multi-byte character support compliant with the
- XPG4 Worldwide Portability Interface wide-character classification. */
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR 1
-
-/* Platform does not support reentrant netdb functions (getprotobyname_r,
- getprotobynumber_r, gethostbyaddr_r, gethostbyname_r, getservbyname_r). */
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS 1
-
-/* Platform supports the POSIX regular expression library */
-#define ACE_HAS_REGEX 1
-
-/* Platform has special header for select(). */
-#define ACE_HAS_SELECT_H 1
-
-/* Platform has a function to set t_errno (e.g., Tandem). */
-#define ACE_HAS_SET_T_ERRNO 1
-
-/* Platform supports SVR4 extended signals */
-#define ACE_HAS_SIGINFO_T 1
-
-/* Platform/compiler has the sigwait(2) prototype */
-#define ACE_HAS_SIGWAIT 1
-
-/* Compiler/platform defines the sig_atomic_t typedef */
-#define ACE_HAS_SIG_ATOMIC_T 1
-
-/* Platform supports new BSD inet_addr len field. */
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN 1
-
-/* OS/compiler uses size_t * rather than int * for socket lengths */
-#define ACE_HAS_SIZET_SOCKET_LEN 1
-
-/* Compiler/platform provides the sys/sockio.h file */
-#define ACE_HAS_SYS_SOCKIO_H 1
-
-/* Compiler supports the ssize_t typedef */
-#define ACE_HAS_SSIZE_T 1
-
-/* Platform supports UNIX International Threads */
-#define ACE_HAS_STHREADS 1
-
-/* Platform has thr_yield() */
-#define ACE_HAS_THR_YIELD 1
-
-/* Compiler/platform supports struct strbuf */
-#define ACE_HAS_STRBUF_T 1
-
-/* Platform supports STREAMS */
-#define ACE_HAS_STREAMS 1
-
-/* Platform supports STREAM pipes */
-#define ACE_HAS_STREAM_PIPES 1
-
-/* Compiler/platform supports strerror () */
-#define ACE_HAS_STRERROR 1
-
-/* Platform/Compiler supports a String class (e.g., GNU or Win32). */
-#define ACE_HAS_STRING_CLASS 1
-
-/* Platform has <strings.h> (which contains bzero() prototype) */
-#define ACE_HAS_STRINGS 1
-
-/* Platform/compiler supports void * as second parameter to gettimeofday(). */
-#define ACE_HAS_VOIDPTR_GETTIMEOFDAY 1
-
-/* Compiler/platform supports SVR4 dynamic linking semantics */
-#define ACE_HAS_SVR4_DYNAMIC_LINKING 1
-
-/* Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)... */
-#define ACE_HAS_SVR4_TLI 1
-
-/* Compiler/platform contains the <sys/syscall.h> file. */
-#define ACE_HAS_SYS_SYSCALL_H 1
-
-/* Platform supports system configuration information */
-#define ACE_HAS_SYS_SYSTEMINFO_H
-#define ACE_HAS_SYSV_SYSINFO 1
-
-/* Platform supports System V IPC (most versions of UNIX, but not Win32) */
-#define ACE_HAS_SYSV_IPC 1
-
-/* Platform provides <sys/filio.h> header */
-#define ACE_HAS_SYS_FILIO_H 1
-
-/* Platform provides <sys/xti.h> header */
-#define ACE_HAS_SYS_XTI_H 1
-
-/* Platform has POSIX terminal interface. */
-#define ACE_HAS_TERMIOS 1
-
-/* Platform supports threads */
-#define ACE_HAS_THREADS 1
-
-/* Compiler/platform has thread-specific storage */
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE 1
-
-/* Platform supports TLI timod STREAMS module */
-#define ACE_HAS_TIMOD_H 1
-
-/* Platform supports TLI tiuser header */
-#define ACE_HAS_TIUSER_H 1
-
-/* Platform supports TLI. Also see ACE_TLI_TCP_DEVICE. */
-#define ACE_HAS_TLI 1
-
-/* Platform provides TLI function prototypes */
-#define ACE_HAS_TLI_PROTOTYPES 1
-
-/* Platform supports ualarm() */
-#define ACE_HAS_UALARM 1
-
-/* Platform supports ucontext_t (which is used in the extended signal API). */
-#define ACE_HAS_UCONTEXT_T 1
-
-/* Platform has <utime.h> header file */
-#define ACE_HAS_UTIME 1
-
-/* Platform requires void * for mmap(). */
-#define ACE_HAS_VOIDPTR_MMAP 1
-
-/* Platform has XTI (X/Open-standardized superset of TLI). Implies
- ACE_HAS_TLI but uses a different header file. */
-#define ACE_HAS_XTI 1
-
-/* Platform can not build ace/IOStream{,_T}.cpp. This does not necessarily
- mean that the platform does not support iostreams. */
-#define ACE_LACKS_ACE_IOSTREAM 1
-
-/* Platform does not have u_longlong_t typedef */
-#define ACE_LACKS_U_LONGLONG_T 1
-
-/* Platform lacks madvise() (e.g., Linux) */
-#define ACE_LACKS_MADVISE 1
-
-/* Platform lacks pri_t (e.g., Tandem NonStop UNIX). */
-#define ACE_LACKS_PRI_T 1
-
-/* Platform lacks pthread_thr_sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2) */
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
-
-/* Platfrom lack pthread_yield() support. */
-#define ACE_LACKS_PTHREAD_YIELD 1
-
-/* Platform lacks readers/writer locks. */
-#define ACE_LACKS_RWLOCK_T 1
-
-/* MIT pthreads platform lacks the timedwait prototypes */
-#define ACE_LACKS_TIMEDWAIT_PROTOTYPES 1
-
-/* Platform does not define timepec_t as a typedef for struct timespec. */
-#define ACE_LACKS_TIMESPEC_T 1
-
-/* Compile using multi-thread libraries */
-#define ACE_MT_SAFE 1
-
-/* Platform needs to #include <sched.h> to get thread scheduling defs. */
-#define ACE_NEEDS_SCHED_H 1
-
-/*********************************************************************/
-/* Compiler's template mechanim must see source code (i.e., .cpp files). This
- is used for GNU G++. */
-/* Staller -> make 0 */
-// #undef ACE_TEMPLATES_REQUIRE_SOURCE
-
-/*********************************************************************/
-
-/* The OS/platform supports the poll() event demultiplexor */
-#define ACE_USE_POLL 1
-
-/* Platform has its standard c++ library in the namespace std. */
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-
-/* The number of bytes in a double. */
-#define SIZEOF_DOUBLE 8
-
-/* The number of bytes in a float. */
-#define SIZEOF_FLOAT 4
-
-/* The number of bytes in a int. */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long. */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a long double. */
-#define SIZEOF_LONG_DOUBLE 12
-
-/* The number of bytes in a long long. */
-#define SIZEOF_LONG_LONG 8
-
-/* The number of bytes in a short. */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a signed char. */
-#define SIZEOF_SIGNED_CHAR 1
-
-/* The number of bytes in a void *. */
-#define SIZEOF_VOID_P 4
-
-/* Define if you have the execv function. */
-#define HAVE_EXECV 1
-
-/* Define if you have the execve function. */
-#define HAVE_EXECVE 1
-
-/* Define if you have the execvp function. */
-#define HAVE_EXECVP 1
-
-/* Define if you have the <dirent.h> header file. */
-#define HAVE_DIRENT_H 1
-
-/* Define if you have the <fstream> header file. */
-#define HAVE_FSTREAM 1
-
-/* Define if you have the <iomanip> header file. */
-#define HAVE_IOMANIP 1
-
-/* Define if you have the <iostream> header file. */
-#define HAVE_IOSTREAM 1
-
-/* Define if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
-
-/* Name of package */
-#define PACKAGE "ace"
-
-/* Added by Staller */
-#define ENUM_BOOLEAN // See file /usr/local/lib/gcc-lib/i486-pc-sysv5/egcs-2.91.60/include/sys/types.h
-#define howmany(x, y) (((x)+((y)-1))/(y))
-#define ACE_HAS_BROKEN_T_ERROR // make a nasty warning disappear in OS.i
-#define __USLC__ 1
-#define __IOCTL_VERSIONED__ // By Carlo!
-
-#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-unixware-7.1.0.udk.h b/ACE/ace/config-unixware-7.1.0.udk.h
deleted file mode 100644
index be98a631661..00000000000
--- a/ACE/ace/config-unixware-7.1.0.udk.h
+++ /dev/null
@@ -1,460 +0,0 @@
-/* -*- C++ -*- */
-#ifndef ACE_CONFIG_UNIXWARE_UDK_H
-#define ACE_CONFIG_UNIXWARE_UDK_H
-
-// $Id$
-
-// Configuration for the unixware UDK compiler. derived from the unixware/g++ config
-// which was itself derived from an autoconfig run.
-
-/* ACE configuration header file */
-
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-#ifndef UNIXWARE_7_1
-#define UNIXWARE_7_1
-#endif
-
-#define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-
-/* Define if you have the strftime function. */
-#define HAVE_STRFTIME 1
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if lex declares yytext as a char * by default, not a char[]. */
-#define YYTEXT_POINTER 1
-
-/* Define _REENTRANT if reentrant functions should be used. */
-#ifndef _REENTRANT
-# define _REENTRANT 1
-#endif
-
-#define ACE_HAS_NEW_NO_H 1
-#define ACE_HAS_STDEXCEPT_NO_H 1
-
-/*
- * TODO: These two next #defines have an #undef before them, in
- * case the variable being defined already had a value.
- * The #undefs are being picked up by configure, and are commented out!
- */
-#define ACE_THREAD_MIN_PRIORITY 0
-#if defined (ACE_THREAD_MIN_PRIORITY)
-/* # undef PTHREAD_MIN_PRIORITY */
-# define PTHREAD_MIN_PRIORITY ACE_THREAD_MIN_PRIORITY
-#endif /* #if defined (ACE_THREAD_MIN_PRIORITY) */
-
-#define ACE_THREAD_MAX_PRIORITY 99
-#if defined (ACE_THREAD_MAX_PRIORITY)
-/* # undef PTHREAD_MAX_PRIORITY */
-# define PTHREAD_MAX_PRIORITY ACE_THREAD_MAX_PRIORITY
-#endif /* #if defined (ACE_THREAD_MAX_PRIORITY) */
-
-
-
-/* UnixWare specific configuration parameters */
-/* #undef UNIXWARE */
-/* #undef UNIXWARE_2_0 */
-/* #undef UNIXWARE_2_1 */
-
-/* Specify sizes of given built-in types. If a size isn't defined here,
- then ace/Basic_Types.h will attempt to deduce the size. */
-/* #undef ACE_SIZEOF_CHAR */
-#define ACE_SIZEOF_SHORT 2
-#define ACE_SIZEOF_INT 4
-#define ACE_SIZEOF_LONG 4
-#define ACE_SIZEOF_LONG_LONG 8
-#define ACE_SIZEOF_VOID_P 4
-#define ACE_SIZEOF_FLOAT 4
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_LONG_DOUBLE 12
-
-/* Enable ACE inlining */
-#define __ACE_INLINE__ 1
-
-/* Platform supports Asynchronous IO calls */
-/* #define ACE_HAS_AIO_CALLS */
-
-/* Specify this if you don't want threads to inherit parent thread's
- ACE_Log_Msg properties. */
-/* #undef ACE_THREADS_DONT_INHERIT_LOG_MSG */
-
-/* OS has priocntl (2) */
-#define ACE_HAS_PRIOCNTL 1
-
-/* Platform has pread() and pwrite() support */
-#define ACE_HAS_P_READ_WRITE 1
-
-/* Compiler/platform correctly calls init()/fini() for shared libraries */
-#define ACE_HAS_AUTOMATIC_INIT_FINI 1
-
-/* Compiler handles explicit calling of template destructor correctly.
- See "ace/OS.h" for details. */
-/* Staller: already defined by config-g++-common.h
-#define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR 1
-*/
-
-/* Platform doesn't cast MAP_FAILED to a (void *). */
-/* #undef ACE_HAS_BROKEN_MAP_FAILED */
-/* Staller: oh yes, let's do this! */
-#define ACE_HAS_BROKEN_MAP_FAILED
-
-
-/* Prototypes for both signal() and struct sigaction are consistent. */
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES 1
-
-/* Compiler/platform has correctly prototyped header files */
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-/* Platform supports operations on directories via struct dirent,
- readdir_r, etc. */
-#define ACE_HAS_DIRENT
-
-/* Compiler supports C++ exception handling */
-# if !defined (ACE_HAS_EXCEPTIONS)
-#define ACE_HAS_EXCEPTIONS
-# endif
-
-/* Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must be
- defined, except on Win32) */
-#define ACE_HAS_GETPAGESIZE
-
-/* Platform supports the getrusage() system call. */
-#define ACE_HAS_GETRUSAGE
-
-/* Platform has a getrusage () prototype in sys/resource.h that differs from
- the one in ace/OS.i. */
-#define ACE_HAS_GETRUSAGE_PROTOTYPE
-
-/* The GPERF utility is compiled for this platform */
-#define ACE_HAS_GPERF
-
-/* Optimize ACE_Handle_Set::count_bits for select() operations (common case) */
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT 1
-
-/* Compiler/platform supports SunOS high resolution timers */
-/* #undef ACE_HAS_HI_RES_TIMER */
-
-/* Compiler/platform supports idtype_t. */
-#define ACE_HAS_IDTYPE_T
-
-/* Inline all the static class OS methods to remove call overhead */
-/* Note: This gets defined by OS.h if __ACE_INLINE__ is defined */
-/* #undef ACE_HAS_INLINED_OSCALLS */
-
-/* Platform supports IP multicast */
-#define ACE_HAS_IP_MULTICAST
-
-/* Platform supports thr_keydelete (e.g,. UNIXWARE) */
-#define ACE_HAS_THR_KEYDELETE
-
-/* Platform calls thr_minstack() rather than thr_min_stack() (e.g., Tandem). */
-#define ACE_HAS_THR_MINSTACK
-
-/* Some files, such as ace/streams.h, want to include new style C++ stream
- headers. These headers are iomanip, ios, iostream, istream, ostream,
- fstream and streambuf. If _all_ of these headers aren't available, then
- assume that only iostream.h and fstream.h are available. */
-/* #define ACE_USES_OLD_IOSTREAMS */
-
-/* Platform supports recvmsg and sendmsg */
-#define ACE_HAS_MSG
-
-/* Platform's select() uses non-const timeval* (only found on Linux right
- now) */
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-/* Uses ctime_r & asctime_r with only two parameters vs. three. */
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-
-/* Platform is an Intel Pentium microprocessor. */
-/* There is a problem with the gethrtime() because of (apparently) a problem
- with the inline assembly instruction. Hopefully there is a way to resolve
- that with an improvement to the assembler
-*/
-#ifdef ACE_HAS_PENTIUM
-//#undef ACE_HAS_PENTIUM
-#endif /* ACE_HAS_PENTIUM */
-
-
-/* Platform contains <poll.h> */
-#define ACE_HAS_POLL
-
-/* Platform supports POSIX O_NONBLOCK semantics */
-#define ACE_HAS_POSIX_NONBLOCK
-
-/* Platform supports the POSIX struct timespec type */
-#define ACE_HAS_POSIX_TIME
-
-/* Platform supports the /proc file system and defines tid_t
- in <sys/procfs.h> */
-#define ACE_HAS_PROC_FS
-
-/* Platform supports POSIX Threads */
-#define ACE_HAS_PTHREADS
-
-/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
- PTHREAD_PROCESS_SHARED values */
-#define ACE_HAS_PTHREAD_PROCESS_ENUM
-
-/* Platform will recurse infinitely on thread exits from TSS cleanup routines
- (e.g., AIX) */
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-
-/* Platform supports reentrant functions (i.e., all the POSIX *_r
- functions). */
-#define ACE_HAS_REENTRANT_FUNCTIONS
-
-/* Platform has support for multi-byte character support compliant with the
- XPG4 Worldwide Portability Interface wide-character classification. */
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-/* Platform does not support reentrant netdb functions (getprotobyname_r,
- getprotobynumber_r, gethostbyaddr_r, gethostbyname_r, getservbyname_r). */
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
-/* Platform supports the POSIX regular expression library */
-#define ACE_HAS_REGEX
-
-/* Platform has special header for select(). */
-#define ACE_HAS_SELECT_H
-
-/* Platform has a function to set t_errno (e.g., Tandem). */
-#define ACE_HAS_SET_T_ERRNO
-
-/* Platform supports SVR4 extended signals */
-#define ACE_HAS_SIGINFO_T
-
-/* Platform/compiler has the sigwait(2) prototype */
-#define ACE_HAS_SIGWAIT
-
-/* Compiler/platform defines the sig_atomic_t typedef */
-#define ACE_HAS_SIG_ATOMIC_T
-
-/* Platform supports new BSD inet_addr len field. */
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
-
-/* OS/compiler uses size_t * rather than int * for socket lengths */
-#define ACE_HAS_SIZET_SOCKET_LEN
-
-/* Compiler/platform provides the sys/sockio.h file */
-#define ACE_HAS_SYS_SOCKIO_H
-
-/* Compiler supports the ssize_t typedef */
-#define ACE_HAS_SSIZE_T
-
-/* Platform supports UNIX International Threads */
-#define ACE_HAS_STHREADS
-
-/* Platform has thr_yield() */
-#define ACE_HAS_THR_YIELD
-
-/* Platform/compiler supports Standard C++ Library */
-/* It seems that UDK provides std-like declarations for only portions
- such as <exception>
-*/
-#define ACE_HAS_STANDARD_CPP_LIBRARY 0
-
-/* Compiler/platform supports struct strbuf */
-#define ACE_HAS_STRBUF_T
-
-/* Platform supports STREAMS */
-#define ACE_HAS_STREAMS
-
-/* Platform supports STREAM pipes */
-#define ACE_HAS_STREAM_PIPES
-
-/* Compiler/platform supports strerror () */
-#define ACE_HAS_STRERROR
-
-/* Platform/Compiler supports a String class (e.g., GNU or Win32). */
-#define ACE_HAS_STRING_CLASS
-
-/* Platform has <strings.h> (which contains bzero() prototype) */
-#define ACE_HAS_STRINGS
-
-/* Platform/compiler supports void * as second parameter to gettimeofday(). */
-#define ACE_HAS_VOIDPTR_GETTIMEOFDAY
-
-/* Compiler/platform supports SVR4 dynamic linking semantics */
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-
-/* Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)... */
-#define ACE_HAS_SVR4_TLI
-
-/* Compiler/platform contains the <sys/syscall.h> file. */
-#define ACE_HAS_SYS_SYSCALL_H
-
-/* Platform supports system configuration information */
-#define ACE_HAS_SYS_SYSTEMINFO_H
-#define ACE_HAS_SYSV_SYSINFO 1
-
-/* Platform supports System V IPC (most versions of UNIX, but not Win32) */
-#define ACE_HAS_SYSV_IPC 1
-
-/* Platform provides <sys/filio.h> header */
-#define ACE_HAS_SYS_FILIO_H 1
-
-/* Platform provides <sys/xti.h> header */
-#define ACE_HAS_SYS_XTI_H 1
-
-/* Compiler implements templates that support typedefs inside of classes used
- as formal arguments to a template class. */
-#define ACE_HAS_TEMPLATE_TYPEDEFS 1
-
-/* Platform has POSIX terminal interface. */
-#define ACE_HAS_TERMIOS 1
-
-/* Platform supports threads */
-#define ACE_HAS_THREADS 1
-
-/* Compiler/platform has thread-specific storage */
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE 1
-
-/* Platform supports TLI timod STREAMS module */
-#define ACE_HAS_TIMOD_H 1
-
-/* Platform supports TLI tiuser header */
-#define ACE_HAS_TIUSER_H 1
-
-/* Platform supports TLI. Also see ACE_TLI_TCP_DEVICE. */
-#define ACE_HAS_TLI 1
-
-/* Platform provides TLI function prototypes */
-#define ACE_HAS_TLI_PROTOTYPES 1
-
-/* Platform supports ualarm() */
-#define ACE_HAS_UALARM 1
-
-/* Platform supports ucontext_t (which is used in the extended signal API). */
-#define ACE_HAS_UCONTEXT_T 1
-
-/* Platform has <utime.h> header file */
-#define ACE_HAS_UTIME 1
-
-/* Prints out console message in ACE_NOTSUP. Useful for tracking down origin
- of ACE_NOTSUP. */
-/* #undef ACE_HAS_VERBOSE_NOTSUP */
-
-/* Platform requires void * for mmap(). */
-#define ACE_HAS_VOIDPTR_MMAP 1
-
-/* Platform has XTI (X/Open-standardized superset of TLI). Implies
- ACE_HAS_TLI but uses a different header file. */
-#define ACE_HAS_XTI 1
-
-/* Platform can not build ace/IOStream{,_T}.cpp. This does not necessarily
- mean that the platform does not support iostreams. */
-#define ACE_LACKS_ACE_IOSTREAM 1
-
-/* Platform does not have u_longlong_t typedef */
-#define ACE_LACKS_U_LONGLONG_T 1
-
-/* Platform lacks madvise() (e.g., Linux) */
-#define ACE_LACKS_MADVISE 1
-
-/* Platform lacks pri_t (e.g., Tandem NonStop UNIX). */
-#define ACE_LACKS_PRI_T 1
-
-/* Platform lacks pthread_thr_sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2) */
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
-
-/* Platfrom lack pthread_yield() support. */
-#define ACE_LACKS_PTHREAD_YIELD 1
-
-/* Platform lacks readers/writer locks. */
-#define ACE_LACKS_RWLOCK_T 1
-
-/* MIT pthreads platform lacks the timedwait prototypes */
-#define ACE_LACKS_TIMEDWAIT_PROTOTYPES 1
-
-/* Platform does not define timepec_t as a typedef for struct timespec. */
-#define ACE_LACKS_TIMESPEC_T 1
-
-/* Compile using multi-thread libraries */
-#define ACE_MT_SAFE 1
-
-/* Platform needs to #include <sched.h> to get thread scheduling defs. */
-#define ACE_NEEDS_SCHED_H 1
-
-/* The OS/platform supports the poll() event demultiplexor */
-#define ACE_USE_POLL 1
-
-/* Platform has its standard c++ library in the namespace std. */
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-
-/* The number of bytes in a double. */
-#define SIZEOF_DOUBLE 8
-
-/* The number of bytes in a float. */
-#define SIZEOF_FLOAT 4
-
-/* The number of bytes in a int. */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long. */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a long double. */
-#define SIZEOF_LONG_DOUBLE 12
-
-/* The number of bytes in a long long. */
-#define SIZEOF_LONG_LONG 8
-
-/* The number of bytes in a short. */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a signed char. */
-#define SIZEOF_SIGNED_CHAR 1
-
-/* The number of bytes in a void *. */
-#define SIZEOF_VOID_P 4
-
-/* Define if you have the execv function. */
-#define HAVE_EXECV 1
-
-/* Define if you have the execve function. */
-#define HAVE_EXECVE 1
-
-/* Define if you have the execvp function. */
-#define HAVE_EXECVP 1
-
-/* Define if you have the <dirent.h> header file. */
-#define HAVE_DIRENT_H 1
-
-/* Define if you have the <fstream> header file. */
-#define HAVE_FSTREAM 1
-
-/* Define if you have the <iomanip> header file. */
-#define HAVE_IOMANIP 1
-
-/* Define if you have the <iostream> header file. */
-#define HAVE_IOSTREAM 1
-
-/* Define if you have the <pwd.h> header file. */
-#define HAVE_PWD_H 1
-
-/* Name of package */
-#define PACKAGE "ace"
-
-/* Version number of package */
-#define VERSION "4.6.37"
-
-/* Added by Staller */
-#define ENUM_BOOLEAN // See file /usr/local/lib/gcc-lib/i486-pc-sysv5/egcs-2.91.60/include/sys/types.h
-/* Hat nix gebracht
-#define ACE_DEFAULT_SELECT_REACTOR_SIZE 256 // this is like in linux config fileto avoid another error
-*/
-#define howmany(x, y) (((x)+((y)-1))/(y))
-#define ACE_HAS_BROKEN_T_ERROR // let disappear a nasty warning from OS.i
-#if !defined (__USLC__)
-# define __USLC__ 1
-#endif
-
-#define __IOCTL_VERSIONED__ // By Carlo!
-#endif /* ACE_UNIXWARE_UDK_H */
diff --git a/ACE/ace/config-visualage.h b/ACE/ace/config-visualage.h
deleted file mode 100644
index f4613f39c8f..00000000000
--- a/ACE/ace/config-visualage.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// This configuration file automatically includes the proper
-// configurations for IBM's VisualAge C++ compiler on Win32 and AIX.
-
-#ifndef CONFIG_VISUALAGE_H
-#define CONFIG_VISUALAGE_H
-#include /**/ "ace/pre.h"
-
-#ifdef __TOS_WIN__
- #include "ace/config-win32.h"
-#elif __TOS_AIX__
- #include "ace/config-aix-4.x.h"
-#else
- #include "PLATFORM NOT SPECIFIED"
-#endif /* __TOS_WIN__ */
-
-#include /**/ "ace/post.h"
-#endif //CONFIG_VISUALAGE_H
diff --git a/ACE/ace/config-vxworks.h b/ACE/ace/config-vxworks.h
index e2e0c2e35f7..2d77c978732 100644
--- a/ACE/ace/config-vxworks.h
+++ b/ACE/ace/config-vxworks.h
@@ -31,6 +31,8 @@
# define ACE_VXWORKS 0x660
# elif (_WRS_VXWORKS_MINOR == 7)
# define ACE_VXWORKS 0x670
+# elif (_WRS_VXWORKS_MINOR == 8)
+# define ACE_VXWORKS 0x680
# endif
# endif
# endif
@@ -44,6 +46,8 @@
# include "ace/config-vxworks6.6.h"
#elif (ACE_VXWORKS == 0x670)
# include "ace/config-vxworks6.7.h"
+#elif (ACE_VXWORKS == 0x680)
+# include "ace/config-vxworks6.8.h"
#else
#error Unknown or unsupported VxWorks version
#endif
diff --git a/ACE/ace/config-vxworks6.4.h b/ACE/ace/config-vxworks6.4.h
index dec2bd369b0..4162cb6c970 100644
--- a/ACE/ace/config-vxworks6.4.h
+++ b/ACE/ace/config-vxworks6.4.h
@@ -48,7 +48,7 @@
#elif defined (__DCC__)
# define ACE_HAS_STANDARD_CPP_LIBRARY 1
# define ACE_TEMPLATES_REQUIRE_SOURCE
-#else /* ! __GNUG__ && ! ghs && !__DCC__ */
+#else /* ! __GNUG__ && !__DCC__ */
# ifdef __cplusplus /* Let it slide for C compilers. */
# error unsupported compiler on VxWorks
# endif /* __cplusplus */
@@ -113,7 +113,6 @@
#define ACE_HAS_SIG_ATOMIC_T
#define ACE_HAS_SOCKADDR_IN_SIN_LEN
#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN
-#define ACE_HAS_STRERROR
#define ACE_HAS_THREADS
#define ACE_HAS_SYSCTL
#define ACE_LACKS_ALPHASORT
@@ -239,7 +238,6 @@
#define ACE_LACKS_STDINT_H
#define ACE_LACKS_UNAME
#define ACE_LACKS_UTSNAME_T
- #define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
#define ACE_LACKS_DLFCN_H
#define ACE_LACKS_WAIT
#define ACE_LACKS_WAITPID
@@ -338,11 +336,6 @@
# define ACE_NTRACE 1
#endif /* ACE_NTRACE */
-// By default, don't include RCS Id strings in object code.
-#if !defined (ACE_USE_RCSID)
-#define ACE_USE_RCSID 0
-#endif /* !ACE_USE_RCSID */
-
#if defined (ACE_HAS_IP_MULTICAST)
# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
#endif /* ACE_HAS_IP_MULTICAST */
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-vxworks6.8.h b/ACE/ace/config-vxworks6.8.h
new file mode 100644
index 00000000000..e092e8ca241
--- /dev/null
+++ b/ACE/ace/config-vxworks6.8.h
@@ -0,0 +1,21 @@
+//* -*- C++ -*- */
+// $Id$
+
+// The following configuration file is designed to work for VxWorks
+// 6.8 platforms using one of these compilers:
+// 1) The GNU g++ compiler that is shipped with VxWorks 6.8
+// 2) The Diab compiler that is shipped with VxWorks 6.8
+
+#ifndef ACE_CONFIG_VXWORKS_6_8_H
+#define ACE_CONFIG_VXWORKS_6_8_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_VXWORKS)
+# define ACE_VXWORKS 0x680
+#endif /* ! ACE_VXWORKS */
+
+#include "ace/config-vxworks6.7.h"
+
+#include /**/ "ace/post.h"
+#endif /* ACE_CONFIG_VXWORKS_6_8_H */
+
diff --git a/ACE/ace/config-win32-borland.h b/ACE/ace/config-win32-borland.h
index c6eeada4acb..eae8e463b2e 100644
--- a/ACE/ace/config-win32-borland.h
+++ b/ACE/ace/config-win32-borland.h
@@ -11,10 +11,6 @@
#error Use config-win32.h in config.h instead of this header
#endif /* ACE_CONFIG_WIN32_H */
-#if (__BORLANDC__ < 0x610)
-#error This version of CodeGear C++ is not supported.
-#endif
-
#define ACE_HAS_CUSTOM_EXPORT_MACROS
#define ACE_Proper_Export_Flag __declspec (dllexport)
#define ACE_Proper_Import_Flag __declspec (dllimport)
@@ -32,14 +28,16 @@
# 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)
-# ifndef ACE_USING_MCPP_PREPROCESSOR
-# define ACE_CC_PREPROCESSOR_ARGS "-q -P- -o%s"
-# endif
+#if (__BORLANDC__ >= 0x620)
+# define ACE_CC_PREPROCESSOR_ARGS "-q -Sl -o%s"
+#else
+# define ACE_CC_PREPROCESSOR_ARGS "-q -P- -o%s"
+#endif
// Automatically define WIN32 macro if the compiler tells us it is our
// target platform.
@@ -106,28 +104,26 @@
#define ACE_LACKS_STRRECVFD
#define ACE_USES_EXPLICIT_STD_NAMESPACE
-# define ACE_EXPORT_NESTED_CLASSES 1
-# define ACE_HAS_CPLUSPLUS_HEADERS 1
-# define ACE_HAS_EXCEPTIONS
-# define ACE_HAS_GNU_CSTRING_H 1
-# define ACE_HAS_NONCONST_SELECT_TIMEVAL
-# define ACE_HAS_SIG_ATOMIC_T
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_HAS_STDCPP_STL_INCLUDES 1
-# define ACE_HAS_STRERROR
-# define ACE_HAS_STRING_CLASS 1
-# define ACE_HAS_TEMPLATE_TYPEDEFS 1
-# 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
-# define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%Lu"
-# define ACE_INT64_FORMAT_SPECIFIER_ASCII "%Ld"
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
+#define ACE_HAS_TIME_T_LONG_MISMATCH
+
+#define ACE_EXPORT_NESTED_CLASSES 1
+#define ACE_HAS_CPLUSPLUS_HEADERS 1
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_STANDARD_CPP_LIBRARY 1
+#define ACE_HAS_STDCPP_STL_INCLUDES 1
+#define ACE_HAS_STRING_CLASS 1
+#define ACE_HAS_USER_MODE_MASKS 1
+#define ACE_LACKS_ACE_IOSTREAM 1
+#define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
+#define ACE_HAS_NEW_NOTHROW
+#define ACE_TEMPLATES_REQUIRE_SOURCE 1
+#define ACE_SIZEOF_LONG_DOUBLE 10
+#define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%Lu"
+#define ACE_INT64_FORMAT_SPECIFIER_ASCII "%Ld"
+#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+#define ACE_USES_STD_NAMESPACE_FOR_ABS 1
+#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
#if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
// must have _MT defined to include multithreading
@@ -137,17 +133,21 @@
// You must link with the multi threaded libraries. Add -tWM to your
// compiler options
# error You must link against multi-threaded libraries when using ACE (check your project settings)
-# endif /* !_MT && !ACE_HAS_WINCE */
+# endif /* !__MT__ */
#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_PRAGMA_ONCE 1
+#endif
+
+#if (__BORLANDC__ < 0x630)
# define ACE_LACKS_ISWCTYPE
+# define ACE_LACKS_ISCTYPE
#endif
-#if (__BORLANDC__ <= 0x610)
+#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
@@ -156,11 +156,16 @@
# endif
#endif
+#if (__BORLANDC__ == 0x621)
+// C++ Builder 2010 wcsncat seems broken
+# define ACE_LACKS_WCSNCAT
+#endif
#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
#define ACE_STRCASECMP_EQUIVALENT ::stricmp
#define ACE_STRNCASECMP_EQUIVALENT ::strnicmp
#define ACE_WTOF_EQUIVALENT ::_wtof
+#define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X)))
#define ACE_HAS_ITOA 1
#include /**/ "ace/post.h"
diff --git a/ACE/ace/config-win32-cegcc.h b/ACE/ace/config-win32-cegcc.h
index fcbb0d8e31a..b8fb5f044b1 100644
--- a/ACE/ace/config-win32-cegcc.h
+++ b/ACE/ace/config-win32-cegcc.h
@@ -14,15 +14,9 @@
# error Use config-win32.h in config.h instead of this header
#endif /* ACE_CONFIG_WIN32_H */
-#define ACE_CC_NAME ACE_TEXT ("g++")
#define ACE_CC_PREPROCESSOR "cpp"
#define ACE_CC_PREPROCESOR_ARGS ""
-// Why all this is not in config-g++-common.h?
-#define ACE_CC_MAJOR_VERSION __GNUC__
-#define ACE_CC_MINOR_VERSION __GNUC_MINOR__
-#define ACE_CC_BETA_VERSION (0)
-
#if !defined (ACE_HAS_CEGCC)
# error You do not seem to be using cegcc
#endif
@@ -35,11 +29,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,17 +48,13 @@
#undef ACE_LACKS_SEEKDIR
#undef ACE_LACKS_REWINDDIR
-#undef ACE_LACKS_USECONDS_T
-
#undef ACE_HAS_WTOF
-#define ACE_LACKS_SIGSET_DEFINITIONS
#define ACE_LACKS_SYS_SHM_H
#define ACE_LACKS_TERMIOS_H
#define ACE_LACKS_NETINET_TCP_H
#define ACE_LACKS_STRRECVFD
#define ACE_LACKS_STRPTIME
-#define ACE_HAS_STRERROR
#define ACE_LACKS_POLL_H
#define ACE_LACKS_REGEX_H
#define ACE_LACKS_SYS_MSG_H
@@ -87,28 +79,29 @@
#define ACE_LACKS_PDHMSG_H
#define ACE_HAS_NONCONST_WCSDUP
#define ACE_HAS_WINSOCK2_GQOS
+#define ACE_LACKS_CORRECT_ISWPRINT_TAB
//Changes to compile on CE gcc.
#undef ACE_HAS_TYPES_H
#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)
+
+#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 (_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..b05b08e2d55 100644
--- a/ACE/ace/config-win32-common.h
+++ b/ACE/ace/config-win32-common.h
@@ -10,7 +10,6 @@
#error Use config-win32.h in config.h instead of this header
#endif /* ACE_CONFIG_WIN32_H */
-
// Windows Mobile (CE) stuff is primarily further restrictions to what's
// in the rest of this file. Also, it defined ACE_HAS_WINCE, which is used
// in this file.
@@ -27,6 +26,12 @@
#if defined (_WIN64) || defined (WIN64)
# define ACE_WIN64
+// MPC template adds _AMD64_ but user projects not generated using MPC
+// may want to use _AMD64_ as well. Ensure it's there in all cases.
+# ifndef _AMD64_
+# define _AMD64_
+# endif
+
// Use 64-bit file offsets by default in the WIN64 case, similar to
// what 64-bit UNIX systems do.
//
@@ -114,7 +119,10 @@
// #endif
// Define the special export macros needed to export symbols outside a dll
-#if !defined(__BORLANDC__) && !defined (ACE_HAS_CUSTOM_EXPORT_MACROS)
+#if !defined(__BORLANDC__) && (!defined (ACE_HAS_CUSTOM_EXPORT_MACROS) || (ACE_HAS_CUSTOM_EXPORT_MACROS == 0))
+#if defined (ACE_HAS_CUSTOM_EXPORT_MACROS)
+#undef ACE_HAS_CUSTOM_EXPORT_MACROS
+#endif
#define ACE_HAS_CUSTOM_EXPORT_MACROS 1
#define ACE_Proper_Export_Flag __declspec (dllexport)
#define ACE_Proper_Import_Flag __declspec (dllimport)
@@ -159,17 +167,10 @@
// using static object managers.
#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
# define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-#elif (ACE_HAS_NONSTATIC_OBJECT_MANAGER == 0)
-# undef ACE_HAS_NONSTATIC_OBJECT_MANAGER
#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */
#define ACE_HAS_GPERF
-// By default, don't include RCS Id strings in object code.
-#if !defined (ACE_USE_RCSID)
-# define ACE_USE_RCSID 0
-#endif /* ! ACE_USE_RCSID */
-
// ---------------- platform features or lack of them -------------
// By default WIN32 has FD_SETSIZE of 64, which places the limit
@@ -262,6 +263,7 @@
#define ACE_LACKS_MODE_MASKS
#define ACE_LACKS_PTHREAD_H
#define ACE_LACKS_PWD_FUNCTIONS
+#define ACE_LACKS_RAND_R
#define ACE_LACKS_READLINK
#define ACE_LACKS_RLIMIT
#define ACE_LACKS_SBRK
@@ -304,12 +306,11 @@
#define ACE_MKDIR_LACKS_MODE
#define ACE_SIZEOF_LONG_LONG 8
-// Green Hills Native x86 does not support __int64 keyword
-// Neither does mingw32.
+
#if !defined (ACE_LACKS_LONGLONG_T) && !defined (__MINGW32__)
#define ACE_INT64_TYPE signed __int64
#define ACE_UINT64_TYPE unsigned __int64
-#endif /* (ghs) */
+#endif
#if defined (__MINGW32__)
#define ACE_INT64_TYPE signed long long
@@ -325,44 +326,13 @@
#define ACE_HAS_WTOI
#define ACE_HAS_WTOL
-// Compiler/platform correctly calls init()/fini() for shared
-// libraries. - applied for DLLs ?
-//define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform supports POSIX O_NONBLOCK semantics.
-//define ACE_HAS_POSIX_NONBLOCK
-
-// Platform contains <poll.h>.
-//define ACE_HAS_POLL
-
-// Platform supports the /proc file system.
-//define ACE_HAS_PROC_FS
-
// Platform supports the rusage struct.
#define ACE_HAS_GETRUSAGE
-// Compiler/platform supports SVR4 signal typedef.
-//define ACE_HAS_SVR4_SIGNAL_T
-
-// Platform provides <sys/filio.h> header.
-//define ACE_HAS_SYS_FILIO_H
-
-// Compiler/platform supports sys_siglist array.
-//define ACE_HAS_SYS_SIGLIST
-
-// Platform supports ACE_TLI timod STREAMS module.
-//define ACE_HAS_TIMOD_H
-
-// Platform supports ACE_TLI tiuser header.
-//define ACE_HAS_TIUSER_H
-
// Platform provides ACE_TLI function prototypes.
// For Win32, this is not really true, but saves a lot of hassle!
#define ACE_HAS_TLI_PROTOTYPES
-// Platform supports ACE_TLI.
-//define ACE_HAS_TLI
-
// I'm pretty sure NT lacks these
#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
@@ -519,7 +489,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 +522,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-dmc.h b/ACE/ace/config-win32-dmc.h
index 2c6a45ceaee..b69644d46cd 100644
--- a/ACE/ace/config-win32-dmc.h
+++ b/ACE/ace/config-win32-dmc.h
@@ -28,10 +28,8 @@
# define ACE_CC_MAJOR_VERSION (1)
# define ACE_CC_MINOR_VERSION (8)
# define ACE_CC_BETA_VERSION (9)
-# ifndef ACE_USING_MCPP_PREPROCESSOR
-# define ACE_CC_PREPROCESSOR "DMC.EXE"
-# define ACE_CC_PREPROCESSOR_ARGS "-E"
-# endif
+# define ACE_CC_PREPROCESSOR "DMC.EXE"
+# define ACE_CC_PREPROCESSOR_ARGS "-E"
// Microsoft's standard cpp library auto_ptr doesn't have reset ().
# define ACE_AUTO_PTR_LACKS_RESET
@@ -46,27 +44,19 @@
#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
// This section above was extracted from config-win32-msvc
-# define ACE_EXPORT_NESTED_CLASSES 1
-# define ACE_HAS_CPLUSPLUS_HEADERS 1
-//# define ACE_HAS_EXCEPTIONS 1
-# define ACE_HAS_GNU_CSTRING_H 1
-# define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
-# define ACE_HAS_SIG_ATOMIC_T 1
-# define ACE_HAS_STANDARD_CPP_LIBRARY 0
-# define ACE_HAS_STDCPP_STL_INCLUDES 1
-# define ACE_HAS_STRERROR 1
-# define ACE_HAS_STRING_CLASS 1
-# define ACE_HAS_TEMPLATE_TYPEDEFS 1
-# define ACE_HAS_USER_MODE_MASKS 1
-//# define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-# define ACE_LACKS_STRPTIME 1
-//# define ACE_LACKS_PRAGMA_ONCE 1
-//# define ACE_NEW_THROWS_EXCEPTIONS 1
-# define ACE_SIZEOF_LONG_DOUBLE 10
-# define ACE_TEMPLATES_REQUIRE_SOURCE 1
-// Changed ACE_TEXT to ACE_TEXT in the following two lines
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# define ACE_HAS_STRBUF_T
+#define ACE_EXPORT_NESTED_CLASSES 1
+#define ACE_HAS_CPLUSPLUS_HEADERS 1
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
+#define ACE_HAS_SIG_ATOMIC_T 1
+#define ACE_HAS_STANDARD_CPP_LIBRARY 0
+#define ACE_HAS_STDCPP_STL_INCLUDES 1
+#define ACE_HAS_STRING_CLASS 1
+#define ACE_HAS_USER_MODE_MASKS 1
+#define ACE_LACKS_STRPTIME 1
+#define ACE_SIZEOF_LONG_DOUBLE 10
+#define ACE_TEMPLATES_REQUIRE_SOURCE 1
+#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+#define ACE_HAS_STRBUF_T
#define ACE_HAS_3_PARAM_WCSTOK
#define ACE_USES_OLD_IOSTREAMS
#define ACE_LACKS_UCONTEXT_H
diff --git a/ACE/ace/config-win32-ghs.h b/ACE/ace/config-win32-ghs.h
deleted file mode 100644
index 2467d4845c4..00000000000
--- a/ACE/ace/config-win32-ghs.h
+++ /dev/null
@@ -1,95 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// The following configuration file contains defines for Green Hills compilers.
-
-#ifndef ACE_CONFIG_WIN32_GHS_H
-#define ACE_CONFIG_WIN32_GHS_H
-#include /**/ "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-#error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-#ifndef WIN32
-# define WIN32
-#endif /* WIN32 */
-
-#undef _M_IX86
-// This turns on ACE_HAS_PENTIUM
-#define _M_IX86 500
-// GHS does not provide DLL support
-#define ACE_HAS_DLL 0
-#define TAO_HAS_DLL 0
-#undef _DLL
-
-//Green Hills Native x86 does not support structural exceptions
-# undef ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS
-# undef ACE_HAS_WCHAR
-# define ACE_CONFIG_INCLUDE_GHS_COMMON
-# include "ace/config-ghs-common.h"
-
-// Changed ACE_TEXT to ACE_TEXT in the following line
-# define ACE_CC_NAME ACE_TEXT ("Green Hills C++")
-# define ACE_CC_MAJOR_VERSION (1)
-# define ACE_CC_MINOR_VERSION (8)
-# define ACE_CC_BETA_VERSION (9)
-# ifndef ACE_USING_MCPP_PREPROCESSOR
-# define ACE_CC_PREPROCESSOR "GCX.EXE"
-# define ACE_CC_PREPROCESSOR_ARGS "-E"
-# endif
-
-// GHS uses Microsoft's standard cpp library, which has auto_ptr.
-# undef ACE_LACKS_AUTO_PTR
-// Microsoft's standard cpp library auto_ptr doesn't have reset ().
-# define ACE_AUTO_PTR_LACKS_RESET
-
-#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
-
-// This section below was extracted from config-win32-msvc
-#define ACE_HAS_ITOA
-#define ACE_ITOA_EQUIVALENT ::_itoa
-#define ACE_STRCASECMP_EQUIVALENT ::_stricmp
-#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
-#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-// This section above was extracted from config-win32-msvc
-
-# define ACE_EXPORT_NESTED_CLASSES 1
-# define ACE_HAS_CPLUSPLUS_HEADERS 1
-//# define ACE_HAS_EXCEPTIONS 1
-# define ACE_HAS_GNU_CSTRING_H 1
-# define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
-# define ACE_HAS_SIG_ATOMIC_T 1
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_HAS_STDCPP_STL_INCLUDES 1
-# define ACE_HAS_STRERROR 1
-# define ACE_HAS_STRING_CLASS 1
-# define ACE_HAS_TEMPLATE_TYPEDEFS 1
-# define ACE_HAS_USER_MODE_MASKS 1
-# define ACE_LACKS_ACE_IOSTREAM 1
-//# define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-# define ACE_LACKS_STRPTIME 1
-//# define ACE_LACKS_PRAGMA_ONCE 1
-# define ACE_LACKS_STRRECVFD 1
-//# define ACE_NEW_THROWS_EXCEPTIONS 1
-# define ACE_SIZEOF_LONG_DOUBLE 10
-# define ACE_TEMPLATES_REQUIRE_SOURCE 1
-# define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%I64u"
-# define ACE_INT64_FORMAT_SPECIFIER_ASCII "%I64d"
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-// Set the following to zero to placate SString.h ACE_WString CTOR
-# undef ACE_WSTRING_HAS_USHORT_SUPPORT
-
-// Green Hills Native x86 does not support __int64 keyword
-# define ACE_LACKS_LONGLONG_T
-
-/* need to ensure these are included before <iomanip> */
-# include <time.h>
-# include <stdlib.h>
-
-# if !defined (ACE_LD_DECORATOR_STR) && defined (_DEBUG)
-# define ACE_LD_DECORATOR_STR ACE_TEXT ("d")
-# endif
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_GHS_H */
diff --git a/ACE/ace/config-win32-interix.h b/ACE/ace/config-win32-interix.h
index 19cb586aa8f..ab66714f0d2 100644
--- a/ACE/ace/config-win32-interix.h
+++ b/ACE/ace/config-win32-interix.h
@@ -6,70 +6,101 @@
#ifndef ACE_CONFIG_WIN32_INTERIX_H
#define ACE_CONFIG_WIN32_INTERIX_H
-#include /**/ "ace/pre.h"
-#include <arpa/inet.h>
-# define ACE_LACKS_SENDMSG
-# define ACE_LACKS_RECVMSG
-# define ACE_LACKS_STDINT_H
-# define ACE_LACKS_INTTYPES_H
-# define ACE_LACKS_PRAGMA_ONCE
-# define ACE_LACKS_RWLOCK_T
-# define ACE_LACKS_GETPGID // Don't have getpgid(), have setpgid() though...
-# define ACE_LACKS_UCONTEXT_H
-# define ACE_HAS_REENTRANT_FUNCTIONS
-# define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS // Don't have gethostbyaddr_r and friends.
-# define ACE_HAS_DIRENT
-# define ACE_HAS_STDCPP_STL_INCLUDES
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# define ACE_HAS_NONCONST_SELECT_TIMEVAL
-# define ACE_HAS_SIGWAIT
-# define ACE_HAS_SIGINFO_T
+#include /**/ "ace/pre.h"
#include "ace/config-g++-common.h"
-#define ACE_HAS_NEW_NOTHROW // Need to know 'new's failure semantics.
-
-#if defined (ACE_HAS_THREADS)
-#define ACE_HAS_THREADS
-#define ACE_HAS_PTHREADS
-#define _THREAD_SAFE
-#define ACE_MTSAFE 1
-#define ACE_MT_SAFE 1
-#define ACE_LACKS_PTHREAD_YIELD
-#define ACE_HAS_MUTEX_TIMEOUTS
-#else
- error "You need to enable threads for this Interix port."
-#endif /* ACE_HAS_THREADS */
-
-// INTERIX has the following, just an issue with porting for the moment
-#define ACE_LACKS_ACCESS
-// END INTERIX has the following....
-
-#define ACE_SIZEOF_LONG_DOUBLE 12
-#define ACE_PAGE_SIZE 4096
-
-#define ACE_HAS_SYSV_IPC
-#define ACE_HAS_SVR4_SIGNAL_T
+#define ACE_HAS_SYS_SIGINFO_H
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_3_PARAM_READDIR_R
+#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
+#define ACE_HAS_AUTOMATIC_INIT_FINI
+#define ACE_HAS_BROKEN_T_ERROR
#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_POSIX_TIME // Supports POSIX timers via struct timespec.
-#define ACE_LACKS_TIMESPEC_T // Defines struct timespec but not timespec_t.
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SETSCHED
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
-#define ACE_HAS_RTLD_LAZY_V
-#define ACE_HAS_POSIX_NONBLOCK
+#define ACE_HAS_DIRENT
+#define ACE_HAS_GETPAGESIZE
#define ACE_HAS_GETRUSAGE
-#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_GETRUSAGE_PROTOTYPE
+#define ACE_HAS_GPERF
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+#define ACE_HAS_ICMP_SUPPORT 1
+#define ACE_HAS_IP_MULTICAST
+#define ACE_HAS_MEMCHR
+#define ACE_HAS_MKDIR
+#define ACE_HAS_MSG
+#define ACE_HAS_NEW_NOTHROW
+#define ACE_HAS_NEW_NO_H
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+#define ACE_HAS_POLL
+#define ACE_HAS_POSIX_NONBLOCK
+#define ACE_HAS_POSIX_TIME
+#define ACE_HAS_PTHREADS_UNIX98_EXT
+#define ACE_HAS_PTHREAD_GETCONCURRENCY
+#define ACE_HAS_PTHREAD_SETCONCURRENCY
+#define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
+#define ACE_HAS_P_READ_WRITE
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+#define ACE_HAS_REENTRANT_FUNCTIONS
+#define ACE_HAS_RTLD_LAZY_V
#define ACE_HAS_SEMUN
+#define ACE_HAS_SIGINFO_T
+#define ACE_HAS_SIGSUSPEND
+#define ACE_HAS_SIGWAIT
+#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_SIG_C_FUNC
+#define ACE_HAS_SOCKADDR_MSG_NAME
+#define ACE_HAS_SOCKLEN_T
#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRERROR
+#define ACE_HAS_STANDARD_CPP_LIBRARY 1
+#define ACE_HAS_STDCPP_STL_INCLUDES
+#define ACE_HAS_STREAMS
+#define ACE_HAS_STRING_CLASS
+#define ACE_HAS_STRSIGNAL
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_UALARM
+#define ACE_HAS_SVR4_SIGNAL_T
+#define ACE_HAS_SYSV_IPC
+#define ACE_HAS_SYS_SYSCALL_H
#define ACE_HAS_TERMIOS
-#define ACE_HAS_SIGWAIT
+#define ACE_HAS_UALARM
+#define ACE_HAS_UCONTEXT_T
+#define ACE_HAS_VOIDPTR_GETTIMEOFDAY
+#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
+
+#define ACE_LACKS_GETPGID
+#define ACE_LACKS_ISCTYPE
+#define ACE_LACKS_LOG2
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+#define ACE_LACKS_NET_IF_H
+#define ACE_LACKS_PRAGMA_ONCE
+#define ACE_LACKS_SETSCHED
+#define ACE_LACKS_STRRECVFD
+#define ACE_LACKS_SYS_SYSCTL_H
+#define ACE_LACKS_TIMESPEC_T
+#define ACE_LACKS_WCSTOK
+#define ACE_LACKS_WCSTOLL
+#define ACE_LACKS_WCSTOULL
+
+// These are probably not needed with gcc 4.x
+#define ACE_LACKS_UNSETENV
+#define ACE_LACKS_STRTOLL
+#define ACE_LACKS_STRTOULL
+#define ACE_LACKS_SETEGID
+#define ACE_LACKS_SETEUID
+
+
+#define ACE_PAGE_SIZE 4096
+#define ACE_SIZEOF_LONG_LONG 8
+#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+
+#if defined (ACE_HAS_THREADS)
+# define ACE_HAS_MUTEX_TIMEOUTS
+# define ACE_HAS_PTHREADS
+# define ACE_MT_SAFE 1
+#else
+# error "You need to enable threads for this Interix port."
+#endif /* ACE_HAS_THREADS */
// Turns off the tracing feature.
#if !defined (ACE_NTRACE)
@@ -87,14 +118,7 @@
#define ACE_HAS_THREAD_SPECIFIC_STORAGE // We need thread specific storage even though...
#define ACE_HAS_TSS_EMULATION // It would appear to be broken in Interix!
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_INTERIX_H */
-
-/*
-The following tests do not run.
-Dynamic_Priority_Test.log ACE_HAS_TIMED_MESSAGE_BLOCKS
-Enum_Interfaces_Test.log
-IOStream_Test.log ACE_IOSTREAM not supported on this platform
-*/
+#include /**/ "ace/post.h"
+#endif /* ACE_CONFIG_WIN32_INTERIX_H */
diff --git a/ACE/ace/config-win32-mingw.h b/ACE/ace/config-win32-mingw.h
index 8a89a62b372..1b20b3fdf61 100644
--- a/ACE/ace/config-win32-mingw.h
+++ b/ACE/ace/config-win32-mingw.h
@@ -14,15 +14,9 @@
# error Use config-win32.h in config.h instead of this header
#endif /* ACE_CONFIG_WIN32_H */
-#define ACE_CC_NAME ACE_TEXT ("g++")
#define ACE_CC_PREPROCESSOR "cpp"
#define ACE_CC_PREPROCESOR_ARGS ""
-// Why all this is not in config-g++-common.h?
-#define ACE_CC_MAJOR_VERSION __GNUC__
-#define ACE_CC_MINOR_VERSION __GNUC_MINOR__
-#define ACE_CC_BETA_VERSION (0)
-
#if !defined(__MINGW32__)
# error You do not seem to be using mingw32
#endif
@@ -55,16 +49,13 @@
# undef ACE_LACKS_USECONDS_T
#endif
-#undef ACE_LACKS_SIGSET
#undef ACE_HAS_WTOF
-#define ACE_LACKS_SIGSET_DEFINITIONS
#define ACE_LACKS_SYS_SHM_H
#define ACE_LACKS_TERMIOS_H
#define ACE_LACKS_NETINET_TCP_H
#define ACE_LACKS_STRRECVFD
#define ACE_LACKS_STRPTIME
-#define ACE_HAS_STRERROR
#define ACE_LACKS_POLL_H
#define ACE_LACKS_REGEX_H
#define ACE_LACKS_SYS_MSG_H
@@ -87,6 +78,8 @@
#define ACE_LACKS_SYS_IOCTL_H
#define ACE_LACKS_PDH_H
#define ACE_LACKS_PDHMSG_H
+#define ACE_LACKS_STRTOK_R
+#define ACE_LACKS_LOCALTIME_R
#define ACE_HAS_NONCONST_WCSDUP
#define ACE_HAS_WINSOCK2_GQOS
#define ACE_ISCTYPE_EQUIVALENT ::_isctype
@@ -102,5 +95,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..026a4e358ca 100644
--- a/ACE/ace/config-win32-msvc-10.h
+++ b/ACE/ace/config-win32-msvc-10.h
@@ -51,9 +51,10 @@
#define ACE_STRCASECMP_EQUIVALENT ::_stricmp
#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-
-#ifndef ACE_HAS_EXCEPTIONS
-# define ACE_HAS_EXCEPTIONS
+#if defined (ACE_HAS_WINCE)
+# define ACE_FILENO_EQUIVALENT ::_fileno
+#else
+# define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X)))
#endif
// Windows Mobile 6 doesn't do sig_atomic_t, but maybe future versions will.
@@ -61,7 +62,6 @@
# define ACE_HAS_SIG_ATOMIC_T
# endif /* !Win CE 6.0 or less */
-#define ACE_HAS_STRERROR
#define ACE_LACKS_STRPTIME
// Evaluate this with a WinCE build; maybe things have improved since VC8.
@@ -78,7 +78,6 @@
#define ACE_LACKS_STRRECVFD
#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_TEMPLATE_TYPEDEFS
#define ACE_TEMPLATES_REQUIRE_SOURCE
// Platform provides ACE_TLI function prototypes.
@@ -138,5 +137,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-7.h b/ACE/ace/config-win32-msvc-7.h
index 9d1ac7b907b..446189a26e0 100644
--- a/ACE/ace/config-win32-msvc-7.h
+++ b/ACE/ace/config-win32-msvc-7.h
@@ -46,19 +46,16 @@
#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-#if !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_EXCEPTIONS)
-#define ACE_HAS_EXCEPTIONS
-#endif /* ACE_HAS_WINCE */
-
-#define ACE_HAS_STRERROR
#define ACE_LACKS_STRPTIME
+#define ACE_LACKS_STRTOK_R
+#define ACE_LACKS_LOCALTIME_R
+
#define ACE_HAS_SIG_ATOMIC_T
#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
#define ACE_LACKS_STRRECVFD
#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_TEMPLATE_TYPEDEFS
#define ACE_TEMPLATES_REQUIRE_SOURCE
// Platform provides ACE_TLI function prototypes.
diff --git a/ACE/ace/config-win32-msvc-8.h b/ACE/ace/config-win32-msvc-8.h
index 3ad89528ae8..c54e94f8726 100644
--- a/ACE/ace/config-win32-msvc-8.h
+++ b/ACE/ace/config-win32-msvc-8.h
@@ -53,9 +53,10 @@
#define ACE_STRCASECMP_EQUIVALENT ::_stricmp
#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-
-#ifndef ACE_HAS_EXCEPTIONS
-# define ACE_HAS_EXCEPTIONS
+#if defined (ACE_HAS_WINCE)
+# define ACE_FILENO_EQUIVALENT ::_fileno
+#else
+# define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X)))
#endif
// Windows Mobile 6 doesn't do sig_atomic_t, but maybe future versions will.
@@ -66,12 +67,11 @@
# define ACE_HAS_SIG_ATOMIC_T
# endif /* !Win CE 6.0 or less */
-#define ACE_HAS_STRERROR
#define ACE_LACKS_STRPTIME
#if !defined (ACE_HAS_WINCE)
-# define ACE_HAS_INTRIN_H
-# define ACE_HAS_INTRINSIC_INTERLOCKED
+# define ACE_HAS_INTRIN_H
+# define ACE_HAS_INTRINSIC_INTERLOCKED
#endif
#if !defined (_WIN32_WCE) || (_WIN32_WCE >= 0x501)
@@ -82,7 +82,6 @@
#define ACE_LACKS_STRRECVFD
#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_TEMPLATE_TYPEDEFS
#define ACE_TEMPLATES_REQUIRE_SOURCE
// Platform provides ACE_TLI function prototypes.
@@ -132,7 +131,7 @@
# define ACE_HAS_TR24731_2005_CRT
#endif
-//Detect Platform SDK 64-bit (AMD64) compiler using _MSC_FULL_VER
+// Detect Platform SDK 64-bit (AMD64) compiler using _MSC_FULL_VER
#if (defined (_WIN64) || defined (WIN64)) && _MSC_FULL_VER < 140050000
# define ACE_AUTO_PTR_LACKS_RESET
# define ACE_MSVC_USES_DOUBLE_UNDERSCORE_STAT64
diff --git a/ACE/ace/config-win32-msvc-9.h b/ACE/ace/config-win32-msvc-9.h
index 65b817482d6..9db9fc01a80 100644
--- a/ACE/ace/config-win32-msvc-9.h
+++ b/ACE/ace/config-win32-msvc-9.h
@@ -51,9 +51,10 @@
#define ACE_STRCASECMP_EQUIVALENT ::_stricmp
#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-
-#ifndef ACE_HAS_EXCEPTIONS
-# define ACE_HAS_EXCEPTIONS
+#if defined (ACE_HAS_WINCE)
+# define ACE_FILENO_EQUIVALENT ::_fileno
+#else
+# define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X)))
#endif
// Windows Mobile 6 doesn't do sig_atomic_t, but maybe future versions will.
@@ -61,14 +62,13 @@
# define ACE_HAS_SIG_ATOMIC_T
# endif /* !Win CE 6.0 or less */
-#define ACE_HAS_STRERROR
#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
@@ -78,7 +78,6 @@
#define ACE_LACKS_STRRECVFD
#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_TEMPLATE_TYPEDEFS
#define ACE_TEMPLATES_REQUIRE_SOURCE
// Platform provides ACE_TLI function prototypes.
@@ -138,5 +137,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/config-win32-msvc.h b/ACE/ace/config-win32-msvc.h
index 8fe6272e977..f223766aa52 100644
--- a/ACE/ace/config-win32-msvc.h
+++ b/ACE/ace/config-win32-msvc.h
@@ -22,10 +22,8 @@
#endif /* ACE_CONFIG_WIN32_H */
#define ACE_CC_NAME ACE_TEXT ("Visual C++")
-#ifndef ACE_USING_MCPP_PREPROCESSOR
-# define ACE_CC_PREPROCESSOR "CL.EXE"
-# define ACE_CC_PREPROCESSOR_ARGS "-nologo -E"
-#endif
+#define ACE_CC_PREPROCESSOR "CL.EXE"
+#define ACE_CC_PREPROCESSOR_ARGS "-nologo -E"
#define ACE_CC_MAJOR_VERSION (_MSC_VER / 100 - 6)
#define ACE_CC_MINOR_VERSION (_MSC_VER % 100)
@@ -133,13 +131,14 @@
#define ACE_LACKS_ISBLANK
#define ACE_LACKS_ISWBLANK
+#define ACE_LACKS_CORRECT_ISWPRINT_TAB
#define ACE_ISCTYPE_EQUIVALENT ::_isctype
// Turn off warnings for /W4
// To resume any of these warning: #pragma warning(default: 4xxx)
// which should be placed after these defines
-#if !defined (ALL_WARNINGS) && defined(_MSC_VER) && !defined(ghs) && !defined(__MINGW32__)
+#if !defined (ALL_WARNINGS) && defined(_MSC_VER) && !defined(__MINGW32__)
# pragma warning(disable: 4127) /* constant expression for TRACE/ASSERT */
# pragma warning(disable: 4134) /* message map member fxn casts */
# pragma warning(disable: 4511) /* private copy constructors are good to have */
@@ -157,7 +156,7 @@
# pragma warning(disable: 1744) /* field of class type without a DLL interface used in a class with a DLL interface */
# pragma warning(disable: 1738)
# endif
-#endif /* !ALL_WARNINGS && _MSV_VER && !ghs && !__MINGW32__ */
+#endif /* !ALL_WARNINGS && _MSV_VER && !__MINGW32__ */
// STRICT type checking in WINDOWS.H enhances type safety for Windows
// programs by using distinct types to represent all the different
diff --git a/ACE/ace/config-win32.h b/ACE/ace/config-win32.h
index 417b7ccfc28..2cec6941530 100644
--- a/ACE/ace/config-win32.h
+++ b/ACE/ace/config-win32.h
@@ -35,8 +35,6 @@
# include "ace/config-win32-borland.h"
#elif defined (_MSC_VER)
# include "ace/config-win32-msvc.h"
-#elif defined (ghs)
-# include "ace/config-win32-ghs.h"
#elif defined (ACE_HAS_CEGCC) //need to be prior to MINGW32
# include "ace/config-win32-cegcc.h"
#elif defined (__MINGW32__)
diff --git a/ACE/ace/gethrtime.cpp b/ACE/ace/gethrtime.cpp
deleted file mode 100644
index 9fa33423aff..00000000000
--- a/ACE/ace/gethrtime.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-//
-// Build this file with g++. It can be linked in to a ACE application
-// that was compiled with GreenHills. It wouldn't be necessary if I
-// knew a way to correctly move values from registers to a 64-bit
-// variable in GHS asm code. That's easy with g++ asm.
-
-#include "ace/config-all.h"
-
-ACE_RCSID(ace, gethrtime, "$Id$")
-
-#if defined (ghs) && (defined (i386) || defined(__i386__))
-
-#include "ace/OS_NS_time.h"
-
-extern "C"
-ACE_hrtime_t
-ACE_GETHRTIME_NAME (void)
-{
-#if defined (ACE_HAS_PENTIUM)
- // ACE_TRACE ("ACE_GETHRTIME_NAME");
-
-#if defined (ACE_LACKS_LONGLONG_T)
- double now;
-#else /* ! ACE_LACKS_LONGLONG_T */
- ACE_hrtime_t now;
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
- // Read the high-res tick counter directly into memory variable
- // "now". The A constraint signifies a 64-bit int.
-#if defined (__GNUG__)
- asm volatile ("rdtsc" : "=A" (now) : : "memory");
-// #elif defined (ghs)
-// The following doesn't work. For now, this file must be compile with g++.
-// asm ("rdtsc");
-// asm ("movl %edx,-16(%ebp)");
-// asm ("movl %eax,-12(%ebp)");
-#else
-# error unsupported compiler
-#endif
-
-#if defined (ACE_LACKS_LONGLONG_T)
- // ACE_U_LongLong doesn't have the same layout as now, so construct
- // it "properly".
- ACE_UINT32 least, most;
- ACE_OS::memcpy (&least, &now, sizeof (ACE_UINT32));
- ACE_OS::memcpy (&most, (unsigned char *) &now + sizeof (ACE_UINT32),
- sizeof (ACE_UINT32));
-
- const ACE_hrtime_t ret (least, most);
- return ret;
-#else /* ! ACE_LACKS_LONGLONG_T */
- return now;
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
-#else /* ! ACE_HAS_PENTIUM */
-# error This file can _only_ be compiled with ACE_HAS_PENTIUM.
-#endif /* ! ACE_HAS_PENTIUM */
-}
-#endif /* ghs */
diff --git a/ACE/ace/iosfwd.h b/ACE/ace/iosfwd.h
index d255a75241c..fa959f6c021 100644
--- a/ACE/ace/iosfwd.h
+++ b/ACE/ace/iosfwd.h
@@ -44,6 +44,7 @@
# if !defined (ACE_USES_OLD_IOSTREAMS)
# include /**/ <iosfwd>
+#define ACE_HAS_CPP98_IOSTREAMS 1
# else
// @note If these forward declarations don't work (e.g. aren't
// portable), we may have to include "ace/streams.h" as a last
diff --git a/ACE/ace/os_include/net/os_if.h b/ACE/ace/os_include/net/os_if.h
index 03a4186389f..f8d2489bd83 100644
--- a/ACE/ace/os_include/net/os_if.h
+++ b/ACE/ace/os_include/net/os_if.h
@@ -26,6 +26,9 @@
#if !defined (ACE_LACKS_NET_IF_H)
# include /**/ <net/if.h>
+# if defined (ACE_HAS_NET_IF_DL_H)
+# include /**/ <net/if_dl.h>
+# endif /* ACE_HAS_NET_IF_DL_H */
# if defined (HPUX) && defined (IOR)
/* HP-UX 11.11 defines IOR in /usr/include/pa/inline.h
and we don't want that definition. See IOP_IORC.h.
@@ -44,10 +47,6 @@ extern "C"
{
#endif /* __cplusplus */
-#if defined (ACE_HAS_BROKEN_IF_HEADER)
- struct ifafilt;
-#endif /* ACE_HAS_BROKEN_IF_HEADER */
-
#if defined (ACE_LACKS_IFREQ)
struct ifreq {
#define IFNAMSIZ 16
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/netinet/os_tcp.h b/ACE/ace/os_include/netinet/os_tcp.h
index e0d6c4124d6..9ec1a3bb256 100644
--- a/ACE/ace/os_include/netinet/os_tcp.h
+++ b/ACE/ace/os_include/netinet/os_tcp.h
@@ -26,7 +26,7 @@
#if !defined (ACE_LACKS_NETINET_TCP_H)
# include /**/ <netinet/tcp.h>
-#endif /* !ACE_LACKS_NETIINET_TCP_H */
+#endif /* !ACE_LACKS_NETINET_TCP_H */
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
diff --git a/ACE/ace/os_include/os_dirent.h b/ACE/ace/os_include/os_dirent.h
index 78238100f70..327b5810901 100644
--- a/ACE/ace/os_include/os_dirent.h
+++ b/ACE/ace/os_include/os_dirent.h
@@ -27,10 +27,6 @@
#include "ace/os_include/sys/os_types.h"
#include "ace/os_include/os_limits.h"
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-# include "ace/os_include/os_unistd.h" // VxWorks needs this to compile
-#endif /* ACE_VXWORKS */
-
#if !defined (ACE_LACKS_DIRENT_H)
# include /**/ <dirent.h>
#endif /* !ACE_LACKS_DIRENT_H */
diff --git a/ACE/ace/os_include/os_dlfcn.h b/ACE/ace/os_include/os_dlfcn.h
index b2bf7f7a334..2cd0889e13d 100644
--- a/ACE/ace/os_include/os_dlfcn.h
+++ b/ACE/ace/os_include/os_dlfcn.h
@@ -49,13 +49,6 @@ extern "C"
{
#endif /* __cplusplus */
-#if defined (_M_UNIX)
- int _dlclose (void *);
- char *_dlerror (void);
- void *_dlopen (const char *, int);
- void * _dlsym (void *, const char *);
-#endif /* _M_UNIX */
-
/* Set the proper handle type for dynamically-loaded libraries. */
/* Also define a default 'mode' for loading a library - the names and values */
/* differ between OSes, so if you write code that uses the mode, be careful */
diff --git a/ACE/ace/os_include/os_errno.h b/ACE/ace/os_include/os_errno.h
index eb51405c576..940f5256bcf 100644
--- a/ACE/ace/os_include/os_errno.h
+++ b/ACE/ace/os_include/os_errno.h
@@ -41,46 +41,237 @@ 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
+
+ // VC++ 10 has these error codes defined in errno.h,
+ // this will cause different errors in ACE.
+ // So we undef these error codes if they are wrongly defined
+# if defined (EWOULDBLOCK) && (EWOULDBLOCK != WSAEWOULDBLOCK)
+# undef EWOULDBLOCK
+# endif /* EWOULDBLOCK */
+# if defined (EINPROGRESS) && (EINPROGRESS != WSAEINPROGRESS)
+# undef EINPROGRESS
+# endif /* EINPROGRESS */
+# if defined (EALREADY) && (EALREADY != WSAEALREADY)
+# undef EALREADY
+# endif /* EALREADY */
+# if defined (ENOTSOCK) && (ENOTSOCK != WSAENOTSOCK)
+# undef ENOTSOCK
+# endif /* ENOTSOCK */
+# if defined (EDESTADDRREQ) && (EDESTADDRREQ != WSAEDESTADDRREQ)
+# undef EDESTADDRREQ
+# endif /* EDESTADDRREQ */
+# if defined (EMSGSIZE) && (EMSGSIZE != WSAEMSGSIZE)
+# undef EMSGSIZE
+# endif /* EMSGSIZE */
+# if defined (EPROTOTYPE) && (EPROTOTYPE != WSAEPROTOTYPE)
+# undef EPROTOTYPE
+# endif /* EPROTOTYPE */
+# if defined (ENOPROTOOPT) && (ENOPROTOOPT != WSAENOPROTOOPT)
+# undef ENOPROTOOPT
+# endif /* ENOPROTOOPT */
+# if defined (EPROTONOSUPPORT) && (EPROTONOSUPPORT != WSAEPROTONOSUPPORT)
+# undef EPROTONOSUPPORT
+# endif /* EPROTONOSUPPORT */
+# if defined (ESOCKTNOSUPPORT) && (ESOCKTNOSUPPORT != WSAESOCKTNOSUPPORT)
+# undef ESOCKTNOSUPPORT
+# endif /* ESOCKTNOSUPPORT */
+# if defined (EOPNOTSUPP) && (EOPNOTSUPP != WSAEOPNOTSUPP)
+# undef EOPNOTSUPP
+# endif /* EOPNOTSUPP */
+# if defined (EPFNOSUPPORT) && (EPFNOSUPPORT != WSAEPFNOSUPPORT)
+# undef EPFNOSUPPORT
+# endif /* EPFNOSUPPORT */
+# if defined (EAFNOSUPPORT) && (EAFNOSUPPORT != WSAEAFNOSUPPORT)
+# undef EAFNOSUPPORT
+# endif /* EAFNOSUPPORT */
+# if defined (EADDRINUSE) && (EADDRINUSE != WSAEADDRINUSE)
+# undef EADDRINUSE
+# endif /* EADDRINUSE */
+# if defined (EADDRNOTAVAIL) && (EADDRNOTAVAIL != WSAEADDRNOTAVAIL)
+# undef EADDRNOTAVAIL
+# endif /* EADDRNOTAVAIL */
+# if defined (ENETDOWN) && (ENETDOWN != WSAENETDOWN)
+# undef ENETDOWN
+# endif /* ENETDOWN */
+# if defined (ENETUNREACH) && (ENETUNREACH != WSAENETUNREACH)
+# undef ENETUNREACH
+# endif /* ENETUNREACH */
+# if defined (ENETRESET) && (ENETRESET != WSAENETRESET)
+# undef ENETRESET
+# endif /* ENETRESET */
+# if defined (ECONNABORTED) && (ECONNABORTED != WSAECONNABORTED)
+# undef ECONNABORTED
+# endif /* ECONNABORTED */
+# if defined (ECONNRESET) && (ECONNRESET != WSAECONNRESET)
+# undef ECONNRESET
+# endif /* ECONNRESET */
+# if defined (ENOBUFS) && (ENOBUFS != WSAENOBUFS)
+# undef ENOBUFS
+# endif /* ENOBUFS */
+# if defined (EISCONN) && (EISCONN != WSAEISCONN)
+# undef EISCONN
+# endif /* EISCONN */
+# if defined (ENOTCONN) && (ENOTCONN != WSAENOTCONN)
+# undef ENOTCONN
+# endif /* ENOTCONN */
+# if defined (ESHUTDOWN) && (ESHUTDOWN != WSAESHUTDOWN)
+# undef ESHUTDOWN
+# endif /* ESHUTDOWN */
+# if defined (ETOOMANYREFS) && (ETOOMANYREFS != WSAETOOMANYREFS)
+# undef ETOOMANYREFS
+# endif /* ETOOMANYREFS */
+# if defined (ETIMEDOUT) && (ETIMEDOUT != WSAETIMEDOUT)
+# undef ETIMEDOUT
+# endif /* ETIMEDOUT */
+# if defined (ECONNREFUSED) && (ECONNREFUSED != WSAECONNREFUSED)
+# undef ECONNREFUSED
+# endif /* ECONNREFUSED */
+# if defined (ELOOP) && (ELOOP != WSAELOOP)
+# undef ELOOP
+# endif /* ELOOP */
+//# if defined (ENAMETOOLONG) && (ENAMETOOLONG != WSAENAMETOOLONG)
+//# undef ENAMETOOLONG
+//# endif /* ENAMETOOLONG */
+# if defined (EHOSTDOWN) && (EHOSTDOWN != WSAEHOSTDOWN)
+# undef EHOSTDOWN
+# endif /* EHOSTDOWN */
+# if defined (EHOSTUNREACH) && (EHOSTUNREACH != WSAEHOSTUNREACH)
+# undef EHOSTUNREACH
+# endif /* EHOSTUNREACH */
+//# if defined (ENOTEMPTY) && (ENOTEMPTY != WSAENOTEMPTY)
+//# undef ENOTEMPTY
+//# endif /* ENOTEMPTY */
+# if defined (EPROCLIM) && (EPROCLIM != WSAEPROCLIM)
+# undef EPROCLIM
+# endif /* EPROCLIM */
+# if defined (EUSERS) && (EUSERS != WSAEUSERS)
+# undef EUSERS
+# endif /* EUSERS */
+# if defined (EDQUOT) && (EDQUOT != WSAEDQUOT)
+# undef EDQUOT
+# endif /* EDQUOT */
+# if defined (ESTALE) && (ESTALE != WSAESTALE)
+# undef ESTALE
+# endif /* ESTALE */
+# if defined (EREMOTE) && (EREMOTE != WSAEREMOTE)
+# undef EREMOTE
+# endif /* EREMOTE */
+
+# 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 +283,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_fcntl.h b/ACE/ace/os_include/os_fcntl.h
index f86da548716..b387f850100 100644
--- a/ACE/ace/os_include/os_fcntl.h
+++ b/ACE/ace/os_include/os_fcntl.h
@@ -31,11 +31,6 @@
# include /**/ <fcntl.h>
#endif /* !ACE_LACKS_FCNTL_H */
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-// for creat(), open()
-# include /**/ <ioLib.h>
-#endif /* ACE_VXWORKS */
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
diff --git a/ACE/ace/os_include/os_ifaddrs.h b/ACE/ace/os_include/os_ifaddrs.h
new file mode 100644
index 00000000000..11425e50aea
--- /dev/null
+++ b/ACE/ace/os_include/os_ifaddrs.h
@@ -0,0 +1,43 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file os_ifaddrs.h
+ *
+ * os_ifaddrs.h include
+ *
+ * $Id$
+ *
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ */
+//=============================================================================
+
+#ifndef ACE_OS_INCLUDE_OS_IFADDRS_H
+#define ACE_OS_INCLUDE_OS_IFADDRS_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_VXWORKS)
+# include /**/ <net/ifaddrs.h>
+#else
+# include /**/ <ifaddrs.h>
+#endif /*ACE_VXWORKS */
+
+// Place all additions (especially function declarations) within extern "C" {}
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_OS_INCLUDE_OS_IFADDRS_H */
diff --git a/ACE/ace/os_include/os_limits.h b/ACE/ace/os_include/os_limits.h
index 8a0c14ae798..c4726e3d1f3 100644
--- a/ACE/ace/os_include/os_limits.h
+++ b/ACE/ace/os_include/os_limits.h
@@ -35,11 +35,6 @@
# include /**/ <sys/param.h>
#endif /* ACE_LACKS_SYS_PARAM_H */
-// On VxWorks 5.5.1 _POSIX_TIMER_MAX is defined in time.h
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-# include /**/ <time.h>
-#endif /* ACE_VXWORKS */
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
@@ -102,7 +97,7 @@ extern "C"
# define ACE_IOV_MAX IOV_MAX
#endif /* ACE_IOV_MAX */
-#if defined (ACE_VXWORKS) && ((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x670)) && !defined (__RTP__)
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670) && !defined (__RTP__)
# if defined (PIPE_BUF) && (PIPE_BUF == -1)
# undef PIPE_BUF
# endif
diff --git a/ACE/ace/os_include/os_netdb.h b/ACE/ace/os_include/os_netdb.h
index 217aa655c8c..71a038424cd 100644
--- a/ACE/ace/os_include/os_netdb.h
+++ b/ACE/ace/os_include/os_netdb.h
@@ -27,10 +27,6 @@
#include "ace/os_include/netinet/os_in.h"
#include "ace/os_include/os_limits.h"
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-# include /**/ <hostLib.h>
-#endif /* ACE_VXWORKS */
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
@@ -40,7 +36,7 @@ extern "C"
#if !defined (ACE_LACKS_NETDB_H)
# include /**/ <netdb.h>
#endif /* !ACE_LACKS_NETDB_H */
-
+
#if defined (ACE_LACKS_HOSTENT)
struct hostent {
char *h_name; /* official name of host */
diff --git a/ACE/ace/os_include/os_pthread.h b/ACE/ace/os_include/os_pthread.h
index 9ae6427079b..3087f093971 100644
--- a/ACE/ace/os_include/os_pthread.h
+++ b/ACE/ace/os_include/os_pthread.h
@@ -43,10 +43,6 @@
# define ACE_DONT_INCLUDE_ACE_SIGNAL_H
# include "ace/os_include/os_signal.h"
# undef ACE_DONT_INCLUDE_ACE_SIGNAL_H
-# if defined (DIGITAL_UNIX)
-# define pthread_self __pthread_self
-extern "C" pthread_t pthread_self (void);
-# endif /* DIGITAL_UNIX */
# endif /* ACE_HAS_PTHREADS */
@@ -79,8 +75,7 @@ extern "C" pthread_t pthread_self (void);
// programs to have their own ACE-wide "default".
// PROCESS-level values
-# if (defined (_POSIX_PRIORITY_SCHEDULING) || defined (ACE_TANDEM_T1248_PTHREADS)) \
- && !defined(_UNICOS) && !defined(UNIXWARE_7_1)
+# if (defined (_POSIX_PRIORITY_SCHEDULING) || defined (ACE_TANDEM_T1248_PTHREADS))
# define ACE_PROC_PRI_FIFO_MIN (sched_get_priority_min(SCHED_FIFO))
# define ACE_PROC_PRI_RR_MIN (sched_get_priority_min(SCHED_RR))
# if defined (HPUX)
@@ -94,14 +89,13 @@ extern "C" pthread_t pthread_self (void);
# else
# define ACE_PROC_PRI_OTHER_MIN (sched_get_priority_min(SCHED_OTHER))
# endif /* HPUX */
-# else /* UNICOS is missing a sched_get_priority_min() implementation,
- SCO too */
+# else /* UNICOS is missing a sched_get_priority_min() implementation */
# define ACE_PROC_PRI_FIFO_MIN 0
# define ACE_PROC_PRI_RR_MIN 0
# define ACE_PROC_PRI_OTHER_MIN 0
# endif
-# if defined (_POSIX_PRIORITY_SCHEDULING) && !defined(UNIXWARE_7_1)
+# if defined (_POSIX_PRIORITY_SCHEDULING)
# define ACE_PROC_PRI_FIFO_MAX (sched_get_priority_max(SCHED_FIFO))
# define ACE_PROC_PRI_RR_MAX (sched_get_priority_max(SCHED_RR))
# if defined (HPUX)
@@ -110,7 +104,7 @@ extern "C" pthread_t pthread_self (void);
# else
# define ACE_PROC_PRI_OTHER_MAX (sched_get_priority_max(SCHED_OTHER))
# endif /* HPUX */
-# else /* SCO missing sched_get_priority_max() implementation */
+# else
# define ACE_PROC_PRI_FIFO_MAX 59
# define ACE_PROC_PRI_RR_MAX 59
# define ACE_PROC_PRI_OTHER_MAX 59
@@ -239,26 +233,10 @@ extern "C" pthread_t pthread_self (void);
# endif /* ! ACE_LACKS_COND_T */
typedef pthread_mutex_t ACE_thread_mutex_t;
-# if !defined (PTHREAD_CANCEL_DISABLE)
-# define PTHREAD_CANCEL_DISABLE 0
-# endif /* PTHREAD_CANCEL_DISABLE */
-
-# if !defined (PTHREAD_CANCEL_ENABLE)
-# define PTHREAD_CANCEL_ENABLE 0
-# endif /* PTHREAD_CANCEL_ENABLE */
-
-# if !defined (PTHREAD_CANCEL_DEFERRED)
-# define PTHREAD_CANCEL_DEFERRED 0
-# endif /* PTHREAD_CANCEL_DEFERRED */
-
-# if !defined (PTHREAD_CANCEL_ASYNCHRONOUS)
-# define PTHREAD_CANCEL_ASYNCHRONOUS 0
-# endif /* PTHREAD_CANCEL_ASYNCHRONOUS */
-
-# define THR_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE
-# define THR_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
-# define THR_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
-# define THR_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
+# define THR_CANCEL_DISABLE 0x00000100
+# define THR_CANCEL_ENABLE 0x00000200
+# define THR_CANCEL_DEFERRED 0x00000400
+# define THR_CANCEL_ASYNCHRONOUS 0x00000800
# if !defined (PTHREAD_CREATE_JOINABLE)
# if defined (PTHREAD_CREATE_UNDETACHED)
@@ -298,30 +276,24 @@ extern "C" pthread_t pthread_self (void);
# endif /* ACE_HAS_STHREADS */
/* MM-Graz: prevent warnings */
-# if !defined (UNIXWARE_7_1)
-# undef THR_BOUND
-# undef THR_NEW_LWP
-# undef THR_DETACHED
-# undef THR_SUSPENDED
-# undef THR_DAEMON
-
-# define THR_BOUND 0x00000001
-# define THR_NEW_LWP 0x00000002
-# define THR_DETACHED 0x00000040
-# define THR_SUSPENDED 0x00000080
-# define THR_DAEMON 0x00000100
-# define THR_SCHED_FIFO 0x00020000
-# define THR_SCHED_RR 0x00040000
-# define THR_SCHED_DEFAULT 0x00080000
-# endif /* UNIXWARE_7_1 */
+# undef THR_BOUND
+# undef THR_NEW_LWP
+# undef THR_DETACHED
+# undef THR_SUSPENDED
+# undef THR_DAEMON
+
+# define THR_BOUND 0x00000001
+# define THR_NEW_LWP 0x00000002
+# define THR_DAEMON 0x00000010
+# define THR_DETACHED 0x00000040
+# define THR_SUSPENDED 0x00000080
+# define THR_SCHED_FIFO 0x00020000
+# define THR_SCHED_RR 0x00040000
+# define THR_SCHED_DEFAULT 0x00080000
# define THR_JOINABLE 0x00010000
-# if defined (ACE_HAS_IRIX62_THREADS)
-# define THR_SCOPE_SYSTEM 0x00100000
-# else
-# define THR_SCOPE_SYSTEM THR_BOUND
-# endif /*ACE_HAS_IRIX62_THREADS*/
+# define THR_SCOPE_SYSTEM 0x00100000
# define THR_SCOPE_PROCESS 0x00200000
# define THR_INHERIT_SCHED 0x00400000
diff --git a/ACE/ace/os_include/os_pwd.h b/ACE/ace/os_include/os_pwd.h
index c5d591f2b7d..412f9f045af 100644
--- a/ACE/ace/os_include/os_pwd.h
+++ b/ACE/ace/os_include/os_pwd.h
@@ -36,19 +36,6 @@ extern "C"
{
#endif /* __cplusplus */
-#if !defined (ACE_WIN32)
-// VAC++ doesn't correctly grok the ::getpwnam_r - the function is redefined
-// in pwd.h, and that redefinition is used here
-# if defined (_AIX) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
- extern int _posix_getpwnam_r(const char *, struct passwd *, char *,
- int, struct passwd **);
-# endif /* AIX and VAC++ 4 */
-#endif /* !ACE_WIN32 */
-
-#if defined (DIGITAL_UNIX)
- extern int _Pgetpwnam_r (const char *, struct passwd *,
- char *, size_t, struct passwd **);
-#endif /* DIGITAL_UNIX */
#ifdef __cplusplus
}
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_signal.h b/ACE/ace/os_include/os_signal.h
index acda29454d7..9d22f610cf5 100644
--- a/ACE/ace/os_include/os_signal.h
+++ b/ACE/ace/os_include/os_signal.h
@@ -32,43 +32,25 @@
}
#endif /* !ACE_LACKS_SIGNAL_H */
-// This must come after signal.h is #included.
-#if defined (SCO)
-# define SIGIO SIGPOLL
-# include /**/ <sys/regset.h>
-#endif /* SCO */
-
#if defined (ACE_HAS_SIGINFO_T)
# if !defined (ACE_LACKS_SIGINFO_H)
-# if defined (__QNX__) || defined (__OpenBSD__) || defined (__INTERIX)
+# if defined (ACE_HAS_SYS_SIGINFO_H)
# include /**/ <sys/siginfo.h>
-# else /* __QNX__ || __OpenBSD__ */
+# else /* ACE_HAS_SYS_SIGINFO_H */
# include /**/ <siginfo.h>
-# endif /* __QNX__ || __OpenBSD__ */
+# endif /* ACE_HAS_SYS_SIGINFO_H */
# endif /* ACE_LACKS_SIGINFO_H */
#endif /* ACE_HAS_SIGINFO_T */
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620) && !defined (__RTP__)
-# include /**/ <sigLib.h>
-#endif /* ACE_VXWORKS */
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
-#if defined (ACE_LACKS_SIGSET)
+#if defined (ACE_LACKS_SIGSET) && !defined (__MINGW32__)
typedef u_int sigset_t;
-#endif /* ACE_LACKS_SIGSET */
-
-#if defined (ACE_HAS_SIG_MACROS)
-# undef sigemptyset
-# undef sigfillset
-# undef sigaddset
-# undef sigdelset
-# undef sigismember
-#endif /* ACE_HAS_SIG_MACROS */
+#endif /* ACE_LACKS_SIGSET && !sigset_t */
#if !defined (ACE_HAS_SIG_ATOMIC_T)
typedef int sig_atomic_t;
@@ -163,17 +145,17 @@ extern "C"
// All other platforms set NSIG to one greater than the
// highest-numbered signal.
# define ACE_NSIG NSIG
-#endif /* __Lynx__ */
+#endif /* ACE_VXWORKS */
#if defined (ACE_HAS_WINCE)
typedef void (__cdecl * __sighandler_t)(int);
#endif
-#if defined (ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES) || defined (ACE_HAS_LYNXOS50_SIGNALS)
- // Prototypes for both signal() and struct sigaction are consistent..
+#if defined (ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES)
+ // Prototypes for both signal() and struct sigaction are consistent..
typedef void (*ACE_SignalHandler)(int);
typedef void (*ACE_SignalHandlerV)(int);
-#elif defined (ACE_HAS_LYNXOS_SIGNALS) || defined (ACE_HAS_TANDEM_SIGNALS)
+#elif defined (ACE_HAS_LYNXOS4_SIGNALS) || defined (ACE_HAS_TANDEM_SIGNALS)
typedef void (*ACE_SignalHandler)(...);
typedef void (*ACE_SignalHandlerV)(...);
#elif defined (ACE_HAS_SVR4_SIGNAL_T)
@@ -183,9 +165,6 @@ extern "C"
#elif defined (ACE_WIN32)
typedef void (__cdecl *ACE_SignalHandler)(int);
typedef void (__cdecl *ACE_SignalHandlerV)(int);
-#elif defined (ACE_HAS_UNIXWARE_SVR4_SIGNAL_T)
- typedef void (*ACE_SignalHandler)(int);
- typedef void (*ACE_SignalHandlerV)(...);
#elif defined (INTEGRITY)
typedef void (*ACE_SignalHandler)();
typedef void (*ACE_SignalHandlerV)(int);
@@ -223,26 +202,6 @@ extern "C"
# endif /* ACE_SIGRTMAX */
#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
-#if defined (DIGITAL_UNIX)
- // sigwait is yet another macro on Digital UNIX 4.0, just causing
- // trouble when introducing member functions with the same name.
- // Thanks to Thilo Kielmann" <kielmann@informatik.uni-siegen.de> for
- // this fix.
-# if defined (__DECCXX_VER)
-# undef sigwait
- // cxx on Digital Unix 4.0 needs this declaration. With it,
- // <::_Psigwait> works with cxx -pthread. g++ does _not_ need
- // it.
- int _Psigwait __((const sigset_t *set, int *sig));
-# endif /* __DECCXX_VER */
-#elif !defined (ACE_HAS_SIGWAIT)
-# if defined(ACE_HAS_RTEMS)
- int sigwait (const sigset_t *set, int *sig);
-# else
- int sigwait (sigset_t *set);
-# endif /* ACE_HAS_RTEMS */
-#endif /* ! DIGITAL_UNIX && ! ACE_HAS_SIGWAIT */
-
#if !defined (ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE)
int pthread_sigmask(int, const sigset_t *, sigset_t *);
#endif /*!ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE */
diff --git a/ACE/ace/os_include/os_stddef.h b/ACE/ace/os_include/os_stddef.h
index 33fbd350166..117a332b6f2 100644
--- a/ACE/ace/os_include/os_stddef.h
+++ b/ACE/ace/os_include/os_stddef.h
@@ -54,7 +54,7 @@ extern "C"
*/
#if defined (ACE_LACKS_WCHAR_T)
# if !defined (ACE_WCHAR_T_TYPE)
-# define ACE_WCHAR_T_TYPE long;
+# define ACE_WCHAR_T_TYPE long
# endif /* !ACE_WCHAR_T_TYPE */
typedef ACE_WCHAR_T_TYPE wchar_t;
#endif /* ACE_LACKS_WCHAR_T */
@@ -62,7 +62,7 @@ extern "C"
// Unsigned integer type of the result of the sizeof operator.
#if defined (ACE_LACKS_SIZE_T)
# if !defined (ACE_SIZE_T_TYPE)
-# define ACE_SIZE_T_TYPE unsigned int;
+# define ACE_SIZE_T_TYPE unsigned int
# endif /* !ACE_SIZE_T_TYPE */
typedef ACE_SIZE_T_TYPE size_t;
#endif /* ACE_LACKS_SIZE_T */
diff --git a/ACE/ace/os_include/os_stdio.h b/ACE/ace/os_include/os_stdio.h
index ee0d779445b..d6047c677e9 100644
--- a/ACE/ace/os_include/os_stdio.h
+++ b/ACE/ace/os_include/os_stdio.h
@@ -37,9 +37,6 @@
# include /**/ <ioLib.h>
// for remCurIdGet()
# include /**/ <remLib.h>
-# if defined (__RTP__) && ((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x650))
-# define L_cuserid _PARM_L_cuserid
-# endif
#endif /* ACE_VXWORKS */
// Place all additions (especially function declarations) within extern "C" {}
diff --git a/ACE/ace/os_include/os_stdlib.h b/ACE/ace/os_include/os_stdlib.h
index b6ed807c812..75cdf5bd552 100644
--- a/ACE/ace/os_include/os_stdlib.h
+++ b/ACE/ace/os_include/os_stdlib.h
@@ -45,18 +45,6 @@ extern "C"
{
#endif /* __cplusplus */
- typedef u_int ACE_RANDR_TYPE;
-#if defined (ACE_HAS_BROKEN_RANDR)
- // The SunOS 5.4.X version of rand_r is inconsistent with the header
- // files...
- int rand_r (ACE_RANDR_TYPE seed);
-#else
-#endif /* ACE_HAS_BROKEN_RANDR */
-
-#if defined (DIGITAL_UNIX)
- extern int _Prand_r (unsigned int *seedptr);
-#endif /* DIGITAL_UNIX */
-
#if defined (ACE_LACKS_PUTENV_PROTOTYPE)
int putenv (char *);
#endif /* ACE_LACKS_PUTENV_PROTOTYPE */
diff --git a/ACE/ace/os_include/os_string.h b/ACE/ace/os_include/os_string.h
index 7c7f63de930..2d463622fca 100644
--- a/ACE/ace/os_include/os_string.h
+++ b/ACE/ace/os_include/os_string.h
@@ -26,18 +26,10 @@
#include "ace/os_include/os_stddef.h"
-// Matthew Stevens 7-10-95 Fix GNU GCC 2.7 for memchr() problem.
-#if defined (ACE_HAS_GNU_CSTRING_H)
-// Define this file to keep /usr/include/memory.h from being included.
-# include /**/ <cstring>
-#else
-# if !defined (ACE_LACKS_MEMORY_H)
-# include /**/ <memory.h>
-# endif /* !ACE_LACKS_MEMORY_H */
-# if !defined (ACE_LACKS_STRING_H)
-# include /**/ <string.h>
-# endif /* !ACE_LACKS_STRING_H */
-#endif /* ACE_HAS_GNU_CSTRING_H */
+#if !defined (ACE_LACKS_STRING_H)
+# include /**/ <string.h>
+#endif /* !ACE_LACKS_STRING_H */
+
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
@@ -45,24 +37,10 @@ extern "C"
{
#endif /* __cplusplus */
- // this looks fishy... dhinton
-#if !defined (ACE_HAS_STRERROR)
-# if defined (ACE_HAS_SYS_ERRLIST)
- extern char *sys_errlist[];
-# define strerror(err) sys_errlist[err]
-# else
-# define strerror(err) "strerror is unsupported"
-# endif /* ACE_HAS_SYS_ERRLIST */
-#endif /* !ACE_HAS_STRERROR */
-
#if defined (ACE_LACKS_STRTOK_R_PROTOTYPE) && !defined (_POSIX_SOURCE)
char *strtok_r (char *s, const char *delim, char **save_ptr);
#endif /* ACE_LACKS_STRTOK_R_PROTOTYPE */
-#if defined (ACE_LACKS_STRNLEN_PROTOTYPE)
- size_t strnlen(const char *s, size_t maxlen);
-#endif /* ACE_LACKS_STRNLEN_PROTOTYPE */
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ACE/ace/os_include/os_stropts.h b/ACE/ace/os_include/os_stropts.h
index a132d54d814..0e1658cfcbd 100644
--- a/ACE/ace/os_include/os_stropts.h
+++ b/ACE/ace/os_include/os_stropts.h
@@ -34,7 +34,7 @@
#if !defined (ACE_LACKS_SYS_IOCTL_H)
# include /**/ <sys/ioctl.h>
-#endif /* !ACE_LACKS_IOCTL_H */
+#endif /* !ACE_LACKS_SYS_IOCTL_H */
#if defined (ACE_HAS_SYS_FILIO_H)
# include /**/ <sys/filio.h>
diff --git a/ACE/ace/os_include/os_time.h b/ACE/ace/os_include/os_time.h
index 6d03b2f6e82..8f350a37045 100644
--- a/ACE/ace/os_include/os_time.h
+++ b/ACE/ace/os_include/os_time.h
@@ -81,10 +81,6 @@ extern "C"
{
#endif /* __cplusplus */
-#if defined (ACE_HAS_BROKEN_CTIME)
-# undef ctime
-#endif /* ACE_HAS_BROKEN_CTIME */
-
// There are a lot of threads-related macro definitions in the config files.
// They came in at different times and from different places and platform
// requirements as threads evolved. They are probably not all needed - some
@@ -108,13 +104,6 @@ typedef struct timespec * ACE_TIMESPEC_PTR;
typedef const struct timespec * ACE_TIMESPEC_PTR;
#endif /* ACE_LACKS_CONST_TIMESPEC_PTR */
-#if defined (DIGITAL_UNIX)
- extern char *_Pctime_r (const time_t *, char *);
- extern struct tm *_Plocaltime_r (const time_t *, struct tm *);
- extern struct tm *_Pgmtime_r (const time_t *, struct tm *);
- extern char *_Pasctime_r (const struct tm *, char *);
-#endif /* DIGITAL_UNIX */
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ACE/ace/os_include/os_unistd.h b/ACE/ace/os_include/os_unistd.h
index 29c9a39e405..e73320fb030 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
@@ -130,21 +130,6 @@ extern "C"
u_int ualarm (u_int usecs, u_int interval);
#endif /* ACE_LACKS_UALARM_PROTOTYPE */
-#if defined (ACE_LACKS_PREAD_PROTOTYPE) && (_XOPEN_SOURCE - 0) < 500
- // _XOPEN_SOURCE == 500 Single Unix conformance
- // It seems that _XOPEN_SOURCE == 500 means that the prototypes are
- // already defined in the system headers.
- ssize_t pread (int fd,
- void *buf,
- size_t nbytes,
- ACE_OFF_T offset);
-
- ssize_t pwrite (int fd,
- const void *buf,
- size_t n,
- ACE_OFF_T offset);
-#endif /* ACE_LACKS_PREAD_PROTOTYPE && (_XOPEN_SOURCE - 0) < 500 */
-
#if defined (ACE_LACKS_GETPGID_PROTOTYPE) && \
!defined (_XOPEN_SOURCE) && !defined (_XOPEN_SOURCE_EXTENDED)
pid_t getpgid (pid_t pid);
diff --git a/ACE/ace/os_include/os_wchar.h b/ACE/ace/os_include/os_wchar.h
index adc5f91b6bd..c0d1efa7aba 100644
--- a/ACE/ace/os_include/os_wchar.h
+++ b/ACE/ace/os_include/os_wchar.h
@@ -41,14 +41,6 @@ extern "C"
{
#endif /* __cplusplus */
-#if defined (ACE_LACKS_WCSTOLL_PROTOTYPE)
- long long wcstoll (const wchar_t *, wchar_t **, int);
-#endif /* ACE_LACKS_WCSTOLL_PROTOTYPE */
-
-#if defined (ACE_LACKS_WCSTOULL_PROTOTYPE)
- unsigned long long wcstoull (const wchar_t *, wchar_t **, int);
-#endif /* ACE_LACKS_WCSTOULL_PROTOTYPE */
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ACE/ace/os_include/sys/os_mman.h b/ACE/ace/os_include/sys/os_mman.h
index 74fef32f869..45820bcaf93 100644
--- a/ACE/ace/os_include/sys/os_mman.h
+++ b/ACE/ace/os_include/sys/os_mman.h
@@ -31,14 +31,7 @@
#endif /* ACE_LACKS_MMAP */
#if !defined (ACE_LACKS_SYS_MMAN_H)
- // Fixes a problem with HP/UX.
-# if defined (ACE_HAS_BROKEN_MMAP_H)
- extern "C" {
-# endif /* ACE_HAS_BROKEN_MMAP_H */
# include /**/ <sys/mman.h>
-# if defined (ACE_HAS_BROKEN_MMAP_H)
- }
-# endif /* ACE_HAS_BROKEN_MMAP_H */
#endif /* ACE_LACKS_SYS_MMAN_H */
// Place all additions (especially function declarations) within extern "C" {}
@@ -88,13 +81,12 @@ PAGE_NOCACHE */
# define ACE_MAP_FIXED MAP_FIXED
# endif /* ! ACE_MAP_FIXED */
-# if !defined (MAP_FAILED) || defined (ACE_HAS_BROKEN_MAP_FAILED)
-# undef MAP_FAILED
+# if !defined (MAP_FAILED)
# define MAP_FAILED ((void *) -1)
# elif defined (ACE_HAS_LONG_MAP_FAILED)
# undef MAP_FAILED
# define MAP_FAILED ((void *) -1L)
-# endif /* !MAP_FAILED || ACE_HAS_BROKEN_MAP_FAILED */
+# endif /* !MAP_FAILED */
#if !defined (PROT_RDWR)
# define PROT_RDWR (PROT_READ|PROT_WRITE)
diff --git a/ACE/ace/os_include/sys/os_resource.h b/ACE/ace/os_include/sys/os_resource.h
index a68ac79338b..bac9ee81869 100644
--- a/ACE/ace/os_include/sys/os_resource.h
+++ b/ACE/ace/os_include/sys/os_resource.h
@@ -50,17 +50,6 @@ extern "C"
{
#endif /* __cplusplus */
-// There must be a better way to do this...
-#if !defined (RLIMIT_NOFILE) && !defined (ACE_LACKS_RLIMIT_NOFILE)
-# if defined (linux) || defined (AIX) || defined (SCO)
-# if defined (RLIMIT_OFILE)
-# define RLIMIT_NOFILE RLIMIT_OFILE
-# else
-# define RLIMIT_NOFILE 200
-# endif /* RLIMIT_OFILE */
-# endif /* defined (linux) || defined (AIX) || defined (SCO) */
-#endif /* RLIMIT_NOFILE */
-
#if defined (ACE_WIN32)
# define RUSAGE_SELF 1
/// Fake the UNIX rusage structure. Perhaps we can add more to this
diff --git a/ACE/ace/os_include/sys/os_select.h b/ACE/ace/os_include/sys/os_select.h
index bf436a67bf5..7f0d16891e9 100644
--- a/ACE/ace/os_include/sys/os_select.h
+++ b/ACE/ace/os_include/sys/os_select.h
@@ -44,7 +44,7 @@ extern "C"
#if defined (ACE_LACKS_FD_MASK)
typedef long fd_mask;
-#endif /* __QNX__ */
+#endif /* ACE_LACKS_FD_MASK */
#if defined (ACE_WIN32)
// This will help until we figure out everything:
diff --git a/ACE/ace/os_include/sys/os_socket.h b/ACE/ace/os_include/sys/os_socket.h
index a1d7999ae81..9cf7a2208e0 100644
--- a/ACE/ace/os_include/sys/os_socket.h
+++ b/ACE/ace/os_include/sys/os_socket.h
@@ -40,7 +40,7 @@ extern "C"
{
#endif /* __cplusplus */
-#if !defined (ACE_HAS_MSG) && !defined (SCO)
+#if !defined (ACE_HAS_MSG)
struct msghdr {};
#endif /* ACE_HAS_MSG */
diff --git a/ACE/ace/os_include/sys/os_time.h b/ACE/ace/os_include/sys/os_time.h
index d8d061b5d62..12ee9ad0379 100644
--- a/ACE/ace/os_include/sys/os_time.h
+++ b/ACE/ace/os_include/sys/os_time.h
@@ -30,10 +30,6 @@
# include /**/ <sys/time.h>
#endif /* !ACE_LACKS_SYS_TIME_H */
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS == 0x620)
-# include /**/ <time.h> // VxWorks 6.2 defined timeval in time.h
-#endif
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
@@ -41,11 +37,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/ace/os_include/sys/os_types.h b/ACE/ace/os_include/sys/os_types.h
index 0b8e04e390e..7d3183400ea 100644
--- a/ACE/ace/os_include/sys/os_types.h
+++ b/ACE/ace/os_include/sys/os_types.h
@@ -71,16 +71,16 @@ typedef double ACE_timer_t;
#if defined (ACE_SIZEOF_LONG) && ACE_SIZEOF_LONG == 8
typedef off_t ACE_LOFF_T;
-#elif defined (ACE_HAS_RTEMS) || defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__APPLE__) || \
- (defined (ACE_OPENVMS) && defined (_LARGEFILE)) || defined(ACE_MVS)
+#elif defined (ACE_HAS_RTEMS) || defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__APPLE__) || defined(__INTERIX) || \
+ (defined (ACE_OPENVMS) && defined (_LARGEFILE))
typedef off_t ACE_LOFF_T;
-#elif defined (__sgi) || defined (AIX) || defined (HPUX) || defined (__QNX__)
+#elif defined (AIX) || defined (HPUX) || defined (__QNX__)
typedef off64_t ACE_LOFF_T;
#elif defined (__sun)
typedef offset_t ACE_LOFF_T;
#elif defined (WIN32)
typedef __int64 ACE_LOFF_T;
-#elif (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670)) || \
+#elif (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x680)) || \
defined (ACE_LYNXOS_MAJOR) || \
(defined (ACE_OPENVMS) && !defined (_LARGEFILE)) || \
defined (__TANDEM)
diff --git a/ACE/ace/svcconf.mpb b/ACE/ace/svcconf.mpb
index ec333fb26eb..aec4ab5113c 100644
--- a/ACE/ace/svcconf.mpb
+++ b/ACE/ace/svcconf.mpb
@@ -25,34 +25,5 @@ feature(ace_svcconf) {
UTF32_Encoding_Converter.cpp
XML_Svc_Conf.cpp
}
-
- verbatim(gnuace, local) {
- "Svc_Conf_y.cpp: Svc_Conf.y"
- "ifeq ($(notdir $(YACC)), bison)"
- " $(YACC) -l -d Svc_Conf.y"
- " sed -e 's/fprintf/ACE_OS::fprintf/g' \\" // Use ACE's fprintf, not library's
- " -e 's/\\t/ /g' \\" // Eliminate tabs (replace with 2 spaces)
- " -e 's/yy/ace_yy/g' \\"
- " -e 's/->ace_yyerrno/->yyerrno/g' \\" // This reverses the ace_ prefix where it
- " -e 's/->ace_yylineno/->yylineno/g' \\" // should not have been added by the substitution, above.
- " -e 's/ NULL/ 0/g' \\"
- " -e 's/ace_yyerror[ ]*([ ]*\"/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, \"/g' \\"
- " -e 's/ace_yyerror[ ]*([ ]*ace_yymsg/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ace_yymsg/g' \\"
- " -e 's/ace_yyerror[ ]*([ ]*YY_/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, YY_/g' \\"
- " -e 's@#include <stdio\.h>@@' \\"
- " -e 's/Svc_Conf\\.tab\\.c/Svc_Conf_y.cpp/g' <Svc_Conf.tab.c >$@"
- " $(RM) -f Svc_Conf.tab.c Svc_Conf_y.cpp.orig"
- "else"
- " @echo 'ERROR: You must use bison 1.35 or higher to process this file'"
- " @/bin/false"
- "endif"
-
- "Svc_Conf_Token_Table.h: Svc_Conf.y Svc_Conf_y.cpp"
- "ifeq ($(notdir $(YACC)), bison)"
- " mv Svc_Conf.tab.h Svc_Conf_Token_Table.h"
- "else"
- " @echo 'ERROR: You must use bison 1.35 or higher to process this file'"
- " @/bin/false"
- "endif"
- }
}
+
diff --git a/ACE/ace/svcconfgen.mpc b/ACE/ace/svcconfgen.mpc
new file mode 100644
index 00000000000..5e4e8baab98
--- /dev/null
+++ b/ACE/ace/svcconfgen.mpc
@@ -0,0 +1,35 @@
+// -*- MPC -*-
+// $Id$
+
+project(ace_svcconf_gen) {
+ requires += ace_svcconf_gen
+ verbatim(gnuace, local) {
+ "Svc_Conf_y.cpp: Svc_Conf.y"
+ "ifeq ($(notdir $(YACC)), bison)"
+ " $(YACC) -l -d Svc_Conf.y"
+ " sed -e 's/fprintf/ACE_OS::fprintf/g' \\" // Use ACE's fprintf, not library's
+ " -e 's/\\t/ /g' \\" // Eliminate tabs (replace with 2 spaces)
+ " -e 's/yy/ace_yy/g' \\"
+ " -e 's/->ace_yyerrno/->yyerrno/g' \\" // This reverses the ace_ prefix where it
+ " -e 's/->ace_yylineno/->yylineno/g' \\" // should not have been added by the substitution, above.
+ " -e 's/ NULL/ 0/g' \\"
+ " -e 's/ace_yyerror[ ]*([ ]*\"/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, \"/g' \\"
+ " -e 's/ace_yyerror[ ]*([ ]*ace_yymsg/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ace_yymsg/g' \\"
+ " -e 's/ace_yyerror[ ]*([ ]*YY_/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, YY_/g' \\"
+ " -e 's@#include <stdio\.h>@@' \\"
+ " -e 's/Svc_Conf\\.tab\\.c/Svc_Conf_y.cpp/g' <Svc_Conf.tab.c >$@"
+ " $(RM) -f Svc_Conf.tab.c Svc_Conf_y.cpp.orig"
+ "else"
+ " @echo 'ERROR: You must use bison 1.35 or higher to process this file'"
+ " @/bin/false"
+ "endif"
+
+ "Svc_Conf_Token_Table.h: Svc_Conf.y Svc_Conf_y.cpp"
+ "ifeq ($(notdir $(YACC)), bison)"
+ " mv Svc_Conf.tab.h Svc_Conf_Token_Table.h"
+ "else"
+ " @echo 'ERROR: You must use bison 1.35 or higher to process this file'"
+ " @/bin/false"
+ "endif"
+ }
+}
diff --git a/ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp b/ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
index 5204bd4338c..0a51bff6d36 100644
--- a/ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
+++ b/ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
@@ -6,8 +6,6 @@
#include "Event_Channel.h"
#include "Concrete_Connection_Handlers.h"
-ACE_RCSID(Gateway, Concrete_Connection_Handlers, "$Id$")
-
Consumer_Handler::Consumer_Handler (const Connection_Config_Info &pci)
: Connection_Handler (pci)
{
@@ -612,7 +610,7 @@ Thr_Consumer_Handler::open (void *)
// Reactivate message queue. If it was active then this is the
// first time in and we need to spawn a thread, otherwise the queue
// was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::WAS_ACTIVE)
+ else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::ACTIVATED)
{
ACE_DEBUG ((LM_DEBUG,
"(%t) spawning new thread\n"));
@@ -735,7 +733,7 @@ Thr_Supplier_Handler::open (void *)
// Reactivate message queue. If it was active then this is the
// first time in and we need to spawn a thread, otherwise the queue
// was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::WAS_ACTIVE)
+ else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::ACTIVATED)
{
ACE_DEBUG ((LM_DEBUG,
"(%t) spawning new thread\n"));
diff --git a/ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.h b/ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.h
index 287a4c8ec34..633db9b5e09 100644
--- a/ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.h
+++ b/ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.h
@@ -1,37 +1,36 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Concrete_Connection_Handlers.h
-//
-// = DESCRIPTION
-// These are all the subclasses of Connection_Handler that define the
-// appropriate threaded/reactive Consumer/Supplier behavior.
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Concrete_Connection_Handlers.h
+ *
+ * $Id$
+ *
+ * These are all the subclasses of Connection_Handler that define the
+ * appropriate threaded/reactive Consumer/Supplier behavior.
+ *
+ *
+ * @author Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef CONCRETE_CONNECTION_HANDLER
#define CONCRETE_CONNECTION_HANDLER
#include "Connection_Handler.h"
+/**
+ * @class Supplier_Handler
+ *
+ * @brief Handles reception of Events from Suppliers.
+ *
+ * Performs framing and error checking on Events. Intended to
+ * run reactively, i.e., in one thread of control using a
+ * Reactor for demuxing and dispatching.
+ */
class Supplier_Handler : public Connection_Handler
{
- // = TITLE
- // Handles reception of Events from Suppliers.
- //
- // = DESCRIPTION
- // Performs framing and error checking on Events. Intended to
- // run reactively, i.e., in one thread of control using a
- // Reactor for demuxing and dispatching.
public:
// = Initialization method.
Supplier_Handler (const Connection_Config_Info &);
@@ -39,113 +38,127 @@ public:
protected:
// = All the following methods are upcalls, so they can be protected.
+ /// Receive and process peer events.
virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE);
- // Receive and process peer events.
+ /// Receive an event from a Supplier.
virtual int recv (ACE_Message_Block *&);
- // Receive an event from a Supplier.
+ /**
+ * This delegates to the <Event_Channel> to do the actual
+ * processing. Typically, it forwards the <event> to its
+ * appropriate Consumer.
+ */
int process (ACE_Message_Block *event);
- // This delegates to the <Event_Channel> to do the actual
- // processing. Typically, it forwards the <event> to its
- // appropriate Consumer.
+ /// Keep track of event fragment to handle non-blocking recv's from
+ /// Suppliers.
ACE_Message_Block *msg_frag_;
- // Keep track of event fragment to handle non-blocking recv's from
- // Suppliers.
};
+/**
+ * @class Consumer_Handler
+ *
+ * @brief Handles transmission of events to Consumers.
+ *
+ * Performs queueing and error checking. Intended to run
+ * reactively, i.e., in one thread of control using a Reactor
+ * for demuxing and dispatching. Also uses a Reactor to handle
+ * flow controlled output connections.
+ */
class Consumer_Handler : public Connection_Handler
{
- // = TITLE
- // Handles transmission of events to Consumers.
- //
- // = DESCRIPTION
- // Performs queueing and error checking. Intended to run
- // reactively, i.e., in one thread of control using a Reactor
- // for demuxing and dispatching. Also uses a Reactor to handle
- // flow controlled output connections.
public:
// = Initialization method.
Consumer_Handler (const Connection_Config_Info &);
+ /// Send an event to a Consumer (may be queued if necessary).
virtual int put (ACE_Message_Block *event,
ACE_Time_Value * = 0);
- // Send an event to a Consumer (may be queued if necessary).
protected:
+ /// Finish sending event when flow control conditions abate.
virtual int handle_output (ACE_HANDLE);
- // Finish sending event when flow control conditions abate.
+ /// Perform a non-blocking put().
int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
+ /// Send an event to a Consumer.
virtual ssize_t send (ACE_Message_Block *);
- // Send an event to a Consumer.
+ /// Receive and process shutdowns from a Consumer.
virtual int handle_input (ACE_HANDLE);
- // Receive and process shutdowns from a Consumer.
};
+/**
+ * @class Thr_Consumer_Handler
+ *
+ * @brief Runs each <Consumer_Handler> in a separate thread.
+ */
class Thr_Consumer_Handler : public Consumer_Handler
{
- // = TITLE
- // Runs each <Consumer_Handler> in a separate thread.
public:
Thr_Consumer_Handler (const Connection_Config_Info &);
+ /// Initialize the threaded Consumer_Handler object and spawn a new
+ /// thread.
virtual int open (void *);
- // Initialize the threaded Consumer_Handler object and spawn a new
- // thread.
+ /// Send a message to a peer.
virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
protected:
+ /// Called when Peer shutdown unexpectedly.
virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
+ /// Transmit peer messages.
virtual int svc (void);
- // Transmit peer messages.
+ /**
+ * When thread started, connection become blocked, so no need to use
+ * handle_close to reinitiate the connection_handler, so should
+ * override this function to justify if controlling is in thread or
+ * not. If yes, handle_close do nothing, otherwise, it call parent
+ * handle_close().
+ */
virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // When thread started, connection become blocked, so no need to use
- // handle_close to reinitiate the connection_handler, so should
- // override this function to justify if controlling is in thread or
- // not. If yes, handle_close do nothing, otherwise, it call parent
- // handle_close().
private:
+ /// If the controlling is in thread's svc() or not.
int in_thread_;
- // If the controlling is in thread's svc() or not.
};
+/**
+ * @class Thr_Supplier_Handler
+ *
+ * @brief Runs each <Supplier_Handler> in a separate thread.
+ */
class Thr_Supplier_Handler : public Supplier_Handler
{
- // = TITLE
- // Runs each <Supplier_Handler> in a separate thread.
public:
Thr_Supplier_Handler (const Connection_Config_Info &pci);
+ /// Initialize the object and spawn a new thread.
virtual int open (void *);
- // Initialize the object and spawn a new thread.
protected:
+ /**
+ * When thread started, connection become blocked, so no need to use
+ * handle_close to reinitiate the connection_handler, so should
+ * override this function to justify if controlling is in thread or
+ * not. If yes, handle_close do nothing, otherwise, it call parent
+ * handle_close().
+ */
virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // When thread started, connection become blocked, so no need to use
- // handle_close to reinitiate the connection_handler, so should
- // override this function to justify if controlling is in thread or
- // not. If yes, handle_close do nothing, otherwise, it call parent
- // handle_close().
+ /// Transmit peer messages.
virtual int svc (void);
- // Transmit peer messages.
private:
+ /// If the controlling is in thread's svc() or not.
int in_thread_;
- // If the controlling is in thread's svc() or not.
};
#endif /* CONCRETE_CONNECTION_HANDLER */
diff --git a/ACE/apps/Gateway/Gateway/Config_Files.cpp b/ACE/apps/Gateway/Gateway/Config_Files.cpp
index 70784f2a221..7fffdda63bf 100644
--- a/ACE/apps/Gateway/Gateway/Config_Files.cpp
+++ b/ACE/apps/Gateway/Gateway/Config_Files.cpp
@@ -9,8 +9,6 @@
#include "ace/Log_Msg.h"
#endif /* GATEWAY_DEBUGGING */
-ACE_RCSID(Gateway, Config_Files, "$Id$")
-
// This fixes a nasty bug with cfront-based compilers (like
// Centerline).
typedef FPRT::Return_Type FP_RETURN_TYPE;
diff --git a/ACE/apps/Gateway/Gateway/Config_Files.h b/ACE/apps/Gateway/Gateway/Config_Files.h
index aff3b22c472..8b2603b817b 100644
--- a/ACE/apps/Gateway/Gateway/Config_Files.h
+++ b/ACE/apps/Gateway/Gateway/Config_Files.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Config_Files.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Config_Files.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef _CONFIG_FILES
#define _CONFIG_FILES
@@ -23,76 +20,88 @@
// Forward declaration.
class Event_Channel;
+/**
+ * @class Connection_Config_Info
+ *
+ * @brief Stores connection configuration information.
+ */
class Connection_Config_Info
- // = TITLE
- // Stores connection configuration information.
{
public:
+ /// Connection id for this Connection_Handler.
ACE_INT32 connection_id_;
- // Connection id for this Connection_Handler.
+ /// Host to connect with.
char host_[BUFSIZ];
- // Host to connect with.
+ /// Port to connect with.
u_short remote_port_;
- // Port to connect with.
+ /// 'S' (supplier) or 'C' (consumer).
char connection_role_;
- // 'S' (supplier) or 'C' (consumer).
+ /// Maximum amount of time to wait for reconnecting.
ACE_INT32 max_retry_timeout_;
- // Maximum amount of time to wait for reconnecting.
+ /// Our local port number.
u_short local_port_;
- // Our local port number.
+ /// Priority by which different Consumers and Suppliers should be
+ /// serviced.
ACE_INT32 priority_;
- // Priority by which different Consumers and Suppliers should be
- // serviced.
+ /// We just need a place to store this until we can pass it along
+ /// when creating a Connection_Handler.
Event_Channel *event_channel_;
- // We just need a place to store this until we can pass it along
- // when creating a Connection_Handler.
};
+/**
+ * @class Connection_Config_File_Parser
+ *
+ * @brief Parser for the Connection_Handler Connection file.
+ */
class Connection_Config_File_Parser : public File_Parser<Connection_Config_Info>
- // = TITLE
- // Parser for the Connection_Handler Connection file.
{
public:
+ /// Read in a <Connection_Config_Info> entry.
virtual FPRT::Return_Type read_entry (Connection_Config_Info &entry,
int &line_number);
- // Read in a <Connection_Config_Info> entry.
};
+/**
+ * @class Consumer_Config_Info
+ *
+ * @brief Stores the information in a Consumer Map entry.
+ */
class Consumer_Config_Info
- // = TITLE
- // Stores the information in a Consumer Map entry.
{
public:
+ /// Connection id.
ACE_INT32 connection_id_;
- // Connection id.
+ /// Message type.
ACE_INT32 type_;
- // Message type.
+ /// Connection ids for consumers that will be routed information
+ /// containing this <connection_id_>
ACE_INT32 consumers_[MAX_CONSUMERS];
- // Connection ids for consumers that will be routed information
- // containing this <connection_id_>
+ /// Total number of these consumers.
ACE_INT32 total_consumers_;
- // Total number of these consumers.
};
+/**
+ * @class Consumer_Config_File_Parser
+ *
+ * @brief Parser for the Consumer Map file.
+ */
class Consumer_Config_File_Parser : public File_Parser<Consumer_Config_Info>
- // = TITLE
- // Parser for the Consumer Map file.
{
public:
+ /// Read in a <Consumer_Config_Info> entry.
virtual FPRT::Return_Type read_entry (Consumer_Config_Info &entry,
int &line_number);
- // Read in a <Consumer_Config_Info> entry.
};
#endif /* _CONFIG_FILES */
diff --git a/ACE/apps/Gateway/Gateway/Connection_Handler.cpp b/ACE/apps/Gateway/Gateway/Connection_Handler.cpp
index b3f95e5d30c..f26174ab3a8 100644
--- a/ACE/apps/Gateway/Gateway/Connection_Handler.cpp
+++ b/ACE/apps/Gateway/Gateway/Connection_Handler.cpp
@@ -6,8 +6,6 @@
#include "Event_Channel.h"
#include "Concrete_Connection_Handlers.h"
-ACE_RCSID(Gateway, Connection_Handler, "$Id$")
-
Event_Channel *
Connection_Handler::event_channel (void) const
{
diff --git a/ACE/apps/Gateway/Gateway/Connection_Handler.h b/ACE/apps/Gateway/Gateway/Connection_Handler.h
index a8a72830135..28d1db6d438 100644
--- a/ACE/apps/Gateway/Gateway/Connection_Handler.h
+++ b/ACE/apps/Gateway/Gateway/Connection_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Connection_Handler.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef _CONNECTION_HANDLER
#define _CONNECTION_HANDLER
@@ -32,25 +29,27 @@
// Forward declaration.
class Event_Channel;
+/**
+ * @class Connection_Handler
+ *
+ * @brief <Connection_Handler> contains info about connection state and
+ * addressing.
+ *
+ * The <Connection_Handler> classes process events sent to the
+ * Event Channel from Suppliers and forward them to Consumers.
+ */
class Connection_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH>
{
- // = TITLE
- // <Connection_Handler> contains info about connection state and
- // addressing.
- //
- // = DESCRIPTION
- // The <Connection_Handler> classes process events sent to the
- // Event Channel from Suppliers and forward them to Consumers.
public:
+ /// Default constructor (needed to make <ACE_Connector> happy).
Connection_Handler (void);
- // Default constructor (needed to make <ACE_Connector> happy).
+ /// Real constructor.
Connection_Handler (const Connection_Config_Info &);
- // Real constructor.
+ /// Initialize and activate a single-threaded <Connection_Handler>
+ /// (called by <ACE_Connector::handle_output>).
virtual int open (void * = 0);
- // Initialize and activate a single-threaded <Connection_Handler>
- // (called by <ACE_Connector::handle_output>).
// = The current state of the Connection_Handler.
enum State
@@ -96,62 +95,64 @@ public:
Event_Channel *event_channel (void) const;
// = The total number of bytes sent/received on this proxy.
+ /// Increment count by <bytes>.
+ /// Return the current byte count.
void total_bytes (size_t bytes);
- // Increment count by <bytes>.
size_t total_bytes (void) const;
- // Return the current byte count.
+ /// Perform timer-based Connection_Handler reconnection.
virtual int handle_timeout (const ACE_Time_Value &, const void *arg);
- // Perform timer-based Connection_Handler reconnection.
+ /// Perform Connection_Handler termination.
virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Perform Connection_Handler termination.
protected:
+ /// Address of peer.
ACE_INET_Addr remote_addr_;
- // Address of peer.
+ /// Address of us.
ACE_INET_Addr local_addr_;
- // Address of us.
+ /// The assigned connection ID of this entry.
CONNECTION_ID connection_id_;
- // The assigned connection ID of this entry.
+ /// The total number of bytes sent/received on this proxy.
size_t total_bytes_;
- // The total number of bytes sent/received on this proxy.
+ /// The current state of the proxy.
State state_;
- // The current state of the proxy.
+ /// Amount of time to wait between reconnection attempts.
long timeout_;
- // Amount of time to wait between reconnection attempts.
+ /// Maximum amount of time to wait between reconnection attempts.
long max_timeout_;
- // Maximum amount of time to wait between reconnection attempts.
+ /// Indicates which role the proxy plays ('S' == Supplier and 'C' ==
+ /// Consumer).
char connection_role_;
- // Indicates which role the proxy plays ('S' == Supplier and 'C' ==
- // Consumer).
+ /// Reference to the <Event_Channel> that we use to forward all
+ /// the events from Consumers and Suppliers.
Event_Channel *event_channel_;
- // Reference to the <Event_Channel> that we use to forward all
- // the events from Consumers and Suppliers.
};
+/**
+ * @class Connection_Handler_Factory
+ *
+ * @brief Creates the appropriate type of <Connection_Handler>.
+ *
+ * <Connection_Handler>s can include <Consumer_Handler>,
+ * <Supplier_Handler>, <Thr_Consumer_Handler>, or
+ * <Thr_Supplier_Handler>).
+ */
class Connection_Handler_Factory
{
- // = TITLE
- // Creates the appropriate type of <Connection_Handler>.
- //
- // = DESCRIPTION
- // <Connection_Handler>s can include <Consumer_Handler>,
- // <Supplier_Handler>, <Thr_Consumer_Handler>, or
- // <Thr_Supplier_Handler>).
public:
+ /// Make the appropriate type of <Connection_Handler>, based on the
+ /// <Connection_Config_Info> parameter.
Connection_Handler *make_connection_handler (const Connection_Config_Info &);
- // Make the appropriate type of <Connection_Handler>, based on the
- // <Connection_Config_Info> parameter.
};
#endif /* _CONNECTION_HANDLER */
diff --git a/ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp b/ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp
index 7790fb83d08..2bcfc759a1e 100644
--- a/ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp
+++ b/ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp
@@ -5,8 +5,6 @@
#include "Event_Channel.h"
#include "Connection_Handler_Acceptor.h"
-ACE_RCSID(Gateway, Connection_Handler_Acceptor, "$Id$")
-
int
Connection_Handler_Acceptor::make_svc_handler (Connection_Handler *&ch)
{
diff --git a/ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.h b/ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.h
index 777f58c4a5b..5ab3accceed 100644
--- a/ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.h
+++ b/ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.h
@@ -1,18 +1,14 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler_acceptor.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Connection_Handler_Acceptor.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
#ifndef _CONNECTION_HANDLER_ACCEPTOR
#define _CONNECTION_HANDLER_ACCEPTOR
@@ -29,37 +25,40 @@
// Forward declaration
class Event_Channel;
+/**
+ * @class Connection_Handler_Acceptor
+ *
+ * @brief A concrete factory class that setups connections to peerds
+ * and produces a new Connection_Handler object to do the dirty
+ * work...
+ */
class Connection_Handler_Acceptor : public ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
{
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new Connection_Handler object to do the dirty
- // work...
public:
+ /// Constructor.
Connection_Handler_Acceptor (Event_Channel &,
char connection_role);
- // Constructor.
+ /// Hook method for creating an appropriate <Connection_Handler>.
virtual int make_svc_handler (Connection_Handler *&ch);
- // Hook method for creating an appropriate <Connection_Handler>.
+ /// Hook method for accepting a connection into the
+ /// <Connection_Handler>.
virtual int accept_svc_handler (Connection_Handler *ch);
- // Hook method for accepting a connection into the
- // <Connection_Handler>.
protected:
+ /// Make life easier later on.
typedef ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
inherited;
- // Make life easier later on.
+ /// Reference to the event channel.
Event_Channel &event_channel_;
- // Reference to the event channel.
+ /// Keeps track of what type of proxy we need to create.
Connection_Config_Info connection_config_info_;
- // Keeps track of what type of proxy we need to create.
+ /// Make the appropriate type of <Connection_Handler>.
Connection_Handler_Factory connection_handler_factory_;
- // Make the appropriate type of <Connection_Handler>.
};
#endif /* _CONNECTION_HANDLER_ACCEPTOR */
diff --git a/ACE/apps/Gateway/Gateway/Connection_Handler_Connector.cpp b/ACE/apps/Gateway/Gateway/Connection_Handler_Connector.cpp
index 368ad14f373..95add312bcb 100644
--- a/ACE/apps/Gateway/Gateway/Connection_Handler_Connector.cpp
+++ b/ACE/apps/Gateway/Gateway/Connection_Handler_Connector.cpp
@@ -3,8 +3,6 @@
#include "Connection_Handler_Connector.h"
#include "ace/os_include/os_netdb.h"
-ACE_RCSID(Gateway, Connection_Handler_Connector, "$Id$")
-
Connection_Handler_Connector::Connection_Handler_Connector (void)
{
}
diff --git a/ACE/apps/Gateway/Gateway/Connection_Handler_Connector.h b/ACE/apps/Gateway/Gateway/Connection_Handler_Connector.h
index f4e7d7d06a1..3ece2b68ea7 100644
--- a/ACE/apps/Gateway/Gateway/Connection_Handler_Connector.h
+++ b/ACE/apps/Gateway/Gateway/Connection_Handler_Connector.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler_Connector.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Connection_Handler_Connector.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef _IO_HANDLER_CONNECTOR
#define _IO_HANDLER_CONNECTOR
@@ -26,12 +23,15 @@
#include "ace/SOCK_Connector.h"
#include "Connection_Handler.h"
+/**
+ * @class Connection_Handler_Connector
+ *
+ * @brief A concrete factory class that setups connections to peerds
+ * and produces a new Connection_Handler object to do the dirty
+ * work...
+ */
class Connection_Handler_Connector : public ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR>
{
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new Connection_Handler object to do the dirty
- // work...
public:
Connection_Handler_Connector (void);
diff --git a/ACE/apps/Gateway/Gateway/Consumer_Dispatch_Set.h b/ACE/apps/Gateway/Gateway/Consumer_Dispatch_Set.h
index 3a5d0cf3e25..2a0cf3bc196 100644
--- a/ACE/apps/Gateway/Gateway/Consumer_Dispatch_Set.h
+++ b/ACE/apps/Gateway/Gateway/Consumer_Dispatch_Set.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Consumer_Dispatch_Set.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Consumer_Dispatch_Set.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef CONSUMER_DISPATCH_SET
#define CONSUMER_DISPATCH_SET
diff --git a/ACE/apps/Gateway/Gateway/Event.h b/ACE/apps/Gateway/Gateway/Event.h
index 4c157bbce68..242148f16f1 100644
--- a/ACE/apps/Gateway/Gateway/Event.h
+++ b/ACE/apps/Gateway/Gateway/Event.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Event.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef EVENT_H
#define EVENT_H
@@ -70,17 +67,19 @@ enum
// A subscription to <Suppliers> managed by the <Event_Channel>.
};
+/**
+ * @class Event_Key
+ *
+ * @brief Address used to identify the source/destination of an event.
+ *
+ * This is really a "processing descriptor" that is used to
+ * decouple the processing, filtering, and forwarding logic of
+ * the Event Channel from the format of the data. The
+ * <connection_id_> and <type_> fields are copied from the
+ * <Event_Header> class below.
+ */
class Event_Key
{
- // = TITLE
- // Address used to identify the source/destination of an event.
- //
- // = DESCRIPTION
- // This is really a "processing descriptor" that is used to
- // decouple the processing, filtering, and forwarding logic of
- // the Event Channel from the format of the data. The
- // <connection_id_> and <type_> fields are copied from the
- // <Event_Header> class below.
public:
Event_Key (CONNECTION_ID cid = -1,
ACE_INT32 type = 0,
@@ -97,25 +96,27 @@ public:
&& this->type_ == event_addr.type_;
}
+ /// Unique connection identifier that denotes a particular
+ /// Connection_Handler.
CONNECTION_ID connection_id_;
- // Unique connection identifier that denotes a particular
- // Connection_Handler.
+ /// Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>.
ACE_INT32 type_;
- // Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>.
+ /// Event priority.
ACE_INT32 priority_;
- // Event priority.
};
+/**
+ * @class Event_Header
+ *
+ * @brief Fixed sized header.
+ *
+ * This is designed to have a sizeof (16) to avoid alignment
+ * problems on most platforms.
+ */
class Event_Header
{
- // = TITLE
- // Fixed sized header.
- //
- // = DESCRIPTION
- // This is designed to have a sizeof (16) to avoid alignment
- // problems on most platforms.
public:
enum
{
@@ -151,43 +152,49 @@ public:
}
// Encode from host byte order to network byte order.
+ /// Length of the data_ payload, in bytes.
ACE_INT32 len_;
- // Length of the data_ payload, in bytes.
+ /// Unique connection identifier that denotes a particular
+ /// Connection_Handler.
CONNECTION_ID connection_id_;
- // Unique connection identifier that denotes a particular
- // Connection_Handler.
+ /// Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>.
ACE_INT32 type_;
- // Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>.
+ /// Event priority.
ACE_INT32 priority_;
- // Event priority.
};
+/**
+ * @class Event
+ *
+ * @brief Variable-sized event (data_ may be variable-sized between
+ * 0 and MAX_PAYLOAD_SIZE).
+ */
class Event
{
- // = TITLE
- // Variable-sized event (data_ may be variable-sized between
- // 0 and MAX_PAYLOAD_SIZE).
public:
+ /// The maximum size of an Event.
enum { MAX_PAYLOAD_SIZE = 1024 };
- // The maximum size of an Event.
Event () : header_ (0, -1, 0, 0) {};
+ /// Event header.
Event_Header header_;
- // Event header.
+ /// Event data.
char data_[MAX_PAYLOAD_SIZE];
- // Event data.
};
+/**
+ * @class Subscription
+ *
+ * @brief Allows Consumers to subscribe to be routed information
+ * arriving from a particular Supplier connection id.
+ */
class Subscription
{
- // = TITLE
- // Allows Consumers to subscribe to be routed information
- // arriving from a particular Supplier connection id.
public:
void decode (void)
{
@@ -211,15 +218,15 @@ public:
}
// Encode from host byte order to network byte order.
+ /// Connection id.
ACE_INT32 connection_id_;
- // Connection id.
+ /// Connection ids for consumers that will be routed information
+ /// containing this <connection_id_>
ACE_INT32 consumers_[MAX_CONSUMERS];
- // Connection ids for consumers that will be routed information
- // containing this <connection_id_>
+ /// Total number of these consumers.
ACE_INT32 total_consumers_;
- // Total number of these consumers.
};
#endif /* EVENT_H */
diff --git a/ACE/apps/Gateway/Gateway/Event_Channel.cpp b/ACE/apps/Gateway/Gateway/Event_Channel.cpp
index 2d1a0f84ada..3cb5d3eb1e3 100644
--- a/ACE/apps/Gateway/Gateway/Event_Channel.cpp
+++ b/ACE/apps/Gateway/Gateway/Event_Channel.cpp
@@ -7,8 +7,6 @@
#include "ace/OS_NS_sys_select.h"
#include "ace/Signal.h"
-ACE_RCSID(Gateway, Event_Channel, "$Id$")
-
Event_Channel::~Event_Channel (void)
{
}
diff --git a/ACE/apps/Gateway/Gateway/Event_Channel.h b/ACE/apps/Gateway/Gateway/Event_Channel.h
index 0d4b56a5c80..ff99f5db8d3 100644
--- a/ACE/apps/Gateway/Gateway/Event_Channel.h
+++ b/ACE/apps/Gateway/Gateway/Event_Channel.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event_Channel.h
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Event_Channel.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_EVENT_CHANNEL
#define ACE_EVENT_CHANNEL
@@ -25,97 +22,100 @@
typedef ACE_Null_Mutex MAP_MUTEX;
+/**
+ * @class Event_Channel
+ *
+ * @brief Define a generic Event_Channel.
+ *
+ * The inspiration for this class is derived from the CORBA COS
+ * Event Channel, though the design is simplified.
+ * We inherit from <ACE_Event_Handler> so that we can be
+ * registered with an <ACE_Reactor> to handle timeouts.
+ */
class ACE_Svc_Export Event_Channel : public ACE_Event_Handler
{
- // = TITLE
- // Define a generic Event_Channel.
- //
- // = DESCRIPTION
- // The inspiration for this class is derived from the CORBA COS
- // Event Channel, though the design is simplified.
- //
- // We inherit from <ACE_Event_Handler> so that we can be
- // registered with an <ACE_Reactor> to handle timeouts.
public:
// = Initialization and termination methods.
Event_Channel (void);
~Event_Channel (void);
+ /// Open the channel.
virtual int open (void * = 0);
- // Open the channel.
+ /// Close down the Channel.
virtual int close (u_long = 0);
- // Close down the Channel.
// = Proxy management methods.
+ /**
+ * Initiate the connection of the <Connection_Handler> to its peer.
+ * Second paratemer is used for thread connection-handler which will
+ * block the connecting procedure directly, need not care
+ * Options::blocking_semantics().
+ */
int initiate_connection_connection (Connection_Handler *, int sync_directly = 0);
- // Initiate the connection of the <Connection_Handler> to its peer.
- // Second paratemer is used for thread connection-handler which will
- // block the connecting procedure directly, need not care
- // Options::blocking_semantics().
+ /// Complete the initialization of the <Connection_Handler> once it's
+ /// connected to its Peer.
int complete_connection_connection (Connection_Handler *);
- // Complete the initialization of the <Connection_Handler> once it's
- // connected to its Peer.
+ /// Reinitiate a connection asynchronously when the Peer fails.
+ /// Cancel a asynchronous connection.
int reinitiate_connection_connection (Connection_Handler *);
- // Reinitiate a connection asynchronously when the Peer fails.
int cancel_connection_connection (Connection_Handler *);
- // Cancel a asynchronous connection.
+ /// Bind the <Connection_Handler> to the <connection_map_>.
int bind_proxy (Connection_Handler *);
- // Bind the <Connection_Handler> to the <connection_map_>.
+ /// Locate the <Connection_Handler> with <connection_id>.
int find_proxy (ACE_INT32 connection_id,
Connection_Handler *&);
- // Locate the <Connection_Handler> with <connection_id>.
+ /// Subscribe the <Consumer_Dispatch_Set> to receive events that
+ /// match <Event_Key>.
int subscribe (const Event_Key &event_addr,
Consumer_Dispatch_Set *cds);
- // Subscribe the <Consumer_Dispatch_Set> to receive events that
- // match <Event_Key>.
// = Event processing entry point.
+ /// Pass <mb> to the Event Channel so it can forward it to Consumers.
virtual int put (ACE_Message_Block *mb,
ACE_Time_Value * = 0);
- // Pass <mb> to the Event Channel so it can forward it to Consumers.
+ /// Actively initiate connections to the Peers.
void initiate_connector (void);
- // Actively initiate connections to the Peers.
+ /// Passively initiate the <Peer_Acceptor>s for Consumer and
+ /// Suppliers.
int initiate_acceptors (void);
- // Passively initiate the <Peer_Acceptor>s for Consumer and
- // Suppliers.
private:
+ /// Parse the command-line arguments.
int parse_args (int argc, ACE_TCHAR *argv[]);
- // Parse the command-line arguments.
// = Methods for handling events.
+ /// Forwards the <data> to Consumer that have registered to receive
+ /// it, based on addressing information in the <event_key>.
void routing_event (Event_Key *event_key,
ACE_Message_Block *data);
- // Forwards the <data> to Consumer that have registered to receive
- // it, based on addressing information in the <event_key>.
+ /// Add a Consumer subscription.
void subscription_event (ACE_Message_Block *data);
- // Add a Consumer subscription.
+ /// Perform timer-based performance profiling.
int compute_performance_statistics (void);
- // Perform timer-based performance profiling.
+ /// Periodically callback to perform timer-based performance
+ /// profiling.
virtual int handle_timeout (const ACE_Time_Value &,
const void *arg);
- // Periodically callback to perform timer-based performance
- // profiling.
+ /// Used to establish the connections actively.
Connection_Handler_Connector connector_;
- // Used to establish the connections actively.
+ /// Used to establish connections passively and create Suppliers.
Connection_Handler_Acceptor supplier_acceptor_;
- // Used to establish connections passively and create Suppliers.
+ /// Used to establish connections passively and create Consumers.
Connection_Handler_Acceptor consumer_acceptor_;
- // Used to establish connections passively and create Consumers.
// = Make life easier by defining typedefs.
typedef ACE_Map_Manager<CONNECTION_ID, Connection_Handler *, MAP_MUTEX>
@@ -125,11 +125,11 @@ private:
typedef ACE_Map_Entry<CONNECTION_ID, Connection_Handler *>
CONNECTION_MAP_ENTRY;
+ /// Table that maps <CONNECTION_ID>s to <Connection_Handler> *'s.
CONNECTION_MAP connection_map_;
- // Table that maps <CONNECTION_ID>s to <Connection_Handler> *'s.
+ /// Map that associates an event to a set of <Consumer_Handler> *'s.
Event_Forwarding_Discriminator efd_;
- // Map that associates an event to a set of <Consumer_Handler> *'s.
};
#endif /* ACE_EVENT_CHANNEL */
diff --git a/ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp b/ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp
index 887d675a8a7..a22cde73637 100644
--- a/ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp
+++ b/ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp
@@ -5,8 +5,6 @@
#include "Event_Forwarding_Discriminator.h"
-ACE_RCSID(Gateway, Event_Forwarding_Discriminator, "$Id$")
-
// Bind the Event_Key to the INT_ID.
int
diff --git a/ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h b/ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h
index 2a83a53a584..a30d48da7d0 100644
--- a/ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h
+++ b/ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event_Forwarding_Discriminator.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Event_Forwarding_Discriminator.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef _CONSUMER_MAP_H
#define _CONSUMER_MAP_H
@@ -27,39 +24,45 @@
#include "Event.h"
#include "Consumer_Dispatch_Set.h"
+/**
+ * @class Event_Forwarding_Discriminator
+ *
+ * @brief Map events to the set of Consumer_Proxies that have subscribed
+ * to receive the event.
+ */
class Event_Forwarding_Discriminator
{
- // = TITLE
- // Map events to the set of Consumer_Proxies that have subscribed
- // to receive the event.
public:
+ /// Associate Event with the Consumer_Dispatch_Set.
int bind (Event_Key event, Consumer_Dispatch_Set *cds);
- // Associate Event with the Consumer_Dispatch_Set.
+ /// Locate EXID and pass out parameter via INID. If found,
+ /// return 0, else -1.
int unbind (Event_Key event);
- // Locate EXID and pass out parameter via INID. If found,
- // return 0, else -1.
+ /// Break any association of EXID.
int find (Event_Key event, Consumer_Dispatch_Set *&cds);
- // Break any association of EXID.
public:
+ /// Map that associates <Event_Key>s (external ids) with
+ /// <Consumer_Dispatch_Set> *'s <internal IDs>.
ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, ACE_Null_Mutex> map_;
- // Map that associates <Event_Key>s (external ids) with
- // <Consumer_Dispatch_Set> *'s <internal IDs>.
};
+/**
+ * @class Event_Forwarding_Discriminator_Iterator
+ *
+ * @brief Define an iterator for the Consumer Map.
+ */
class Event_Forwarding_Discriminator_Iterator
{
- // = TITLE
- // Define an iterator for the Consumer Map.
public:
Event_Forwarding_Discriminator_Iterator (Event_Forwarding_Discriminator &mm);
int next (Consumer_Dispatch_Set *&);
int advance (void);
private:
+ /// Map we are iterating over.
ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, ACE_Null_Mutex> map_iter_;
- // Map we are iterating over.
};
#endif /* _CONSUMER_MAP_H */
diff --git a/ACE/apps/Gateway/Gateway/File_Parser.h b/ACE/apps/Gateway/Gateway/File_Parser.h
index bbe3e1be348..946d31d9aaa 100644
--- a/ACE/apps/Gateway/Gateway/File_Parser.h
+++ b/ACE/apps/Gateway/Gateway/File_Parser.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// File_Parser.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file File_Parser.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef _FILE_PARSER
#define _FILE_PARSER
@@ -23,10 +20,13 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class FPRT
+ *
+ * @brief This class serves as a namespace for the <Return_Type>.
+ */
class FPRT
{
- // = TITLE
- // This class serves as a namespace for the <Return_Type>.
public:
enum Return_Type
{
@@ -39,12 +39,15 @@ public:
};
};
+/**
+ * @class File_Parser
+ *
+ * @brief Class used to parse the configuration file for the
+ * <Consumer_Map>.
+ */
template <class ENTRY>
class File_Parser
{
- // = TITLE
- // Class used to parse the configuration file for the
- // <Consumer_Map>.
public:
/// Destructor.
@@ -60,30 +63,32 @@ public:
// methods to fill in the <entry>.
protected:
+ /// Read the next ASCII word.
FPRT::Return_Type getword (char buf[]);
- // Read the next ASCII word.
+ /// Read the next integer.
FPRT::Return_Type getint (ACE_INT32 &value);
- // Read the next integer.
+ /**
+ * Read the next "word," which is demarcated by <delimiter>s.
+ *
+ * @@ This function is inherently flawed since it doesn't take a
+ * count of the size of <buf>...
+ */
FPRT::Return_Type readword (char buf[]);
- // Read the next "word," which is demarcated by <delimiter>s.
- //
- // @@ This function is inherently flawed since it doesn't take a
- // count of the size of <buf>...
+ /// Returns true if <ch> is a delimiter, i.e., ' ', ',', or '\t'.
int delimiter (char ch);
- // Returns true if <ch> is a delimiter, i.e., ' ', ',', or '\t'.
+ /// Returns true if <ch> is the comment character, i.e., '#'.
int comments (char ch);
- // Returns true if <ch> is the comment character, i.e., '#'.
+ /// Skips to the remainder of a line, e.g., when we find a comment
+ /// character.
int skipline (void);
- // Skips to the remainder of a line, e.g., when we find a comment
- // character.
+ /// Pointer to the file we're reading.
FILE *infile_;
- // Pointer to the file we're reading.
};
#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
diff --git a/ACE/apps/Gateway/Gateway/Gateway.cpp b/ACE/apps/Gateway/Gateway/Gateway.cpp
index ec5b1184c1c..7f14f27603e 100644
--- a/ACE/apps/Gateway/Gateway/Gateway.cpp
+++ b/ACE/apps/Gateway/Gateway/Gateway.cpp
@@ -11,8 +11,6 @@
#include "Event_Channel.h"
#include "Gateway.h"
-ACE_RCSID(Gateway, Gateway, "$Id$")
-
class ACE_Svc_Export Gateway : public ACE_Service_Object
{
// = TITLE
diff --git a/ACE/apps/Gateway/Gateway/Gateway.h b/ACE/apps/Gateway/Gateway/Gateway.h
index fe7d138b3a1..8008690245a 100644
--- a/ACE/apps/Gateway/Gateway/Gateway.h
+++ b/ACE/apps/Gateway/Gateway/Gateway.h
@@ -1,23 +1,19 @@
// -*- C++ -*-
-//
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Gateway.h
-//
-// = DESCRIPTION
-// Since the Gateway is an <ACE_Service_Object>, this file defines
-// the entry point into the Service Configurator framework.
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Gateway.h
+ *
+ * $Id$
+ *
+ * Since the Gateway is an <ACE_Service_Object>, this file defines
+ * the entry point into the Service Configurator framework.
+ *
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef ACE_GATEWAY
#define ACE_GATEWAY
diff --git a/ACE/apps/Gateway/Gateway/Options.cpp b/ACE/apps/Gateway/Gateway/Options.cpp
index 4e08e686235..8ecbf2e820c 100644
--- a/ACE/apps/Gateway/Gateway/Options.cpp
+++ b/ACE/apps/Gateway/Gateway/Options.cpp
@@ -10,7 +10,7 @@
#include "ace/OS_NS_strings.h"
#include "ace/os_include/os_fcntl.h"
-ACE_RCSID(Gateway, Options, "$Id$")
+
// Static initialization.
Options *Options::instance_ = 0;
diff --git a/ACE/apps/Gateway/Gateway/Options.h b/ACE/apps/Gateway/Gateway/Options.h
index 2141329b680..4b3e83c365c 100644
--- a/ACE/apps/Gateway/Gateway/Options.h
+++ b/ACE/apps/Gateway/Gateway/Options.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Options.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef OPTIONS_H
#define OPTIONS_H
@@ -24,14 +21,17 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/svc_export.h"
+#include "ace/Thread_Mutex.h"
#include "ace/Lock_Adapter_T.h"
#include "ace/Synch_Traits.h"
-#include "ace/Thread_Mutex.h"
+/**
+ * @class Options
+ *
+ * @brief Singleton that consolidates all Options for a gatewayd.
+ */
class ACE_Svc_Export Options
{
- // = TITLE
- // Singleton that consolidates all Options for a gatewayd.
public:
// = Options that can be enabled/disabled.
enum
@@ -50,76 +50,84 @@ public:
CONSUMER_CONNECTOR = 040
};
+ /// Return Singleton.
static Options *instance (void);
- // Return Singleton.
+ /// Termination.
~Options (void);
- // Termination.
+ /// Parse the arguments and set the options.
int parse_args (int argc, ACE_TCHAR *argv[]);
- // Parse the arguments and set the options.
+ /**
+ * Print the gateway supported parameters.
+ * = Accessor methods.
+ * Determine if an option is enabled.
+ */
void print_usage(void);
- // Print the gateway supported parameters.
- // = Accessor methods.
int enabled (int option) const;
- // Determine if an option is enabled.
+ /**
+ * Gets the locking strategy used for serializing access to the
+ * reference count in <ACE_Message_Block>. If it's 0, then there's
+ * no locking strategy and we're using a REACTIVE concurrency
+ * strategy.
+ */
ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *locking_strategy (void) const;
- // Gets the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>. If it's 0, then there's
- // no locking strategy and we're using a REACTIVE concurrency
- // strategy.
+ /// Set the locking strategy used for serializing access to the
+ /// reference count in <ACE_Message_Block>.
void locking_strategy (ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *);
- // Set the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>.
+ /// Number of seconds after connection establishment to report
+ /// throughput.
long performance_window (void) const;
- // Number of seconds after connection establishment to report
- // throughput.
+ /// 0 == blocking connects, ACE_NONBLOCK == non-blocking connects.
int blocking_semantics (void) const;
- // 0 == blocking connects, ACE_NONBLOCK == non-blocking connects.
+ /// Size of the socket queue (0 means "use default").
int socket_queue_size (void) const;
- // Size of the socket queue (0 means "use default").
+ /// i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT.
u_long threading_strategy (void) const;
- // i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT.
+ /**
+ * Our acceptor port number, i.e., the one that we passively listen
+ * on for connections to arrive from a gatewayd and create a
+ * Supplier.
+ */
u_short supplier_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
+ /**
+ * Our acceptor port number, i.e., the one that we passively listen
+ * on for connections to arrive from a gatewayd and create a
+ * Consumer.
+ */
u_short consumer_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
+ /// The connector port number, i.e., the one that we use to actively
+ /// establish connections with a gatewayd and create a Supplier.
u_short supplier_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
+ /// The connector port number, i.e., the one that we use to actively
+ /// establish connections with a gatewayd and create a Consumer.
u_short consumer_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
+ /// Name of the connection configuration file.
const ACE_TCHAR *connection_config_file (void) const;
- // Name of the connection configuration file.
+ /// Name of the consumer map configuration file.
const ACE_TCHAR *consumer_config_file (void) const;
- // Name of the consumer map configuration file.
+ /// The maximum retry timeout delay.
long max_timeout (void) const;
- // The maximum retry timeout delay.
+ /// The maximum size of the queue.
long max_queue_size (void) const;
- // The maximum size of the queue.
+ /// Returns a reference to the next available connection id;
CONNECTION_ID &connection_id (void);
- // Returns a reference to the next available connection id;
private:
enum
@@ -131,66 +139,72 @@ private:
// The maximum timeout for trying to re-establish connections.
};
+ /// Initialization.
Options (void);
- // Initialization.
+ /// Options Singleton instance.
static Options *instance_;
- // Options Singleton instance.
+ /**
+ * Points to the locking strategy used for serializing access to the
+ * reference count in <ACE_Message_Block>. If it's 0, then there's
+ * no locking strategy and we're using a REACTIVE concurrency
+ * strategy.
+ */
ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *locking_strategy_;
- // Points to the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>. If it's 0, then there's
- // no locking strategy and we're using a REACTIVE concurrency
- // strategy.
+ /// Number of seconds after connection establishment to report
+ /// throughput.
long performance_window_;
- // Number of seconds after connection establishment to report
- // throughput.
+ /// 0 == blocking connects, ACE_NONBLOCK == non-blocking connects.
int blocking_semantics_;
- // 0 == blocking connects, ACE_NONBLOCK == non-blocking connects.
+ /// Size of the socket queue (0 means "use default").
int socket_queue_size_;
- // Size of the socket queue (0 means "use default").
+ /// i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT.
u_long threading_strategy_;
- // i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT.
+ /// Flag to indicate if we want verbose diagnostics.
u_long options_;
- // Flag to indicate if we want verbose diagnostics.
+ /**
+ * The acceptor port number, i.e., the one that we passively listen
+ * on for connections to arrive from a gatewayd and create a
+ * Supplier.
+ */
u_short supplier_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
+ /**
+ * The acceptor port number, i.e., the one that we passively listen
+ * on for connections to arrive from a gatewayd and create a
+ * Consumer.
+ */
u_short consumer_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
+ /// The connector port number, i.e., the one that we use to actively
+ /// establish connections with a gatewayd and create a Supplier.
u_short supplier_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
+ /// The connector port number, i.e., the one that we use to actively
+ /// establish connections with a gatewayd and create a Consumer.
u_short consumer_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
+ /// The maximum retry timeout delay.
long max_timeout_;
- // The maximum retry timeout delay.
+ /// The maximum size of the queue.
long max_queue_size_;
- // The maximum size of the queue.
+ /// The next available connection id.
CONNECTION_ID connection_id_;
- // The next available connection id.
+ /// Name of the connection configuration file.
ACE_TCHAR connection_config_file_[MAXPATHLEN + 1];
- // Name of the connection configuration file.
+ /// Name of the consumer map configuration file.
ACE_TCHAR consumer_config_file_[MAXPATHLEN + 1];
- // Name of the consumer map configuration file.
};
#endif /* OPTIONS_H */
diff --git a/ACE/apps/Gateway/Gateway/gatewayd.cpp b/ACE/apps/Gateway/Gateway/gatewayd.cpp
index 2c598c6805f..9b6f6edd420 100644
--- a/ACE/apps/Gateway/Gateway/gatewayd.cpp
+++ b/ACE/apps/Gateway/Gateway/gatewayd.cpp
@@ -1,22 +1,18 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// peerd.h
-//
-// = DESCRIPTION
-// Driver for the gateway daemon (gatewayd). Note that this is
-// completely generic code due to the Service Configurator
-// framework!
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file gatewayd.cpp
+ *
+ * $Id$
+ *
+ * Driver for the gateway daemon (gatewayd). Note that this is
+ * completely generic code due to the Service Configurator
+ * framework!
+ *
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
#include "ace/OS_NS_unistd.h"
#include "ace/Service_Config.h"
@@ -25,10 +21,6 @@
#include "ace/Reactor.h"
#include "Gateway.h"
-ACE_RCSID (Gateway,
- gatewayd,
- "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
diff --git a/ACE/apps/Gateway/Gateway/svc.conf b/ACE/apps/Gateway/Gateway/svc.conf
index 3698b0e3e13..4692ec17ae0 100644
--- a/ACE/apps/Gateway/Gateway/svc.conf
+++ b/ACE/apps/Gateway/Gateway/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
#static Svc_Manager "-d -p 2913"
dynamic Gateway Service_Object * Gateway:_make_Gateway() active "-b -d -c C|S -a C|S -P connection_config -C consumer_config"
diff --git a/ACE/apps/Gateway/Peer/Options.cpp b/ACE/apps/Gateway/Peer/Options.cpp
index d48f98c5067..1e140fab125 100644
--- a/ACE/apps/Gateway/Peer/Options.cpp
+++ b/ACE/apps/Gateway/Peer/Options.cpp
@@ -10,8 +10,6 @@
#include "ace/OS_Memory.h"
#include "Options.h"
-ACE_RCSID(Peer, Options, "$Id$")
-
// Static initialization.
Options *Options::instance_ = 0;
diff --git a/ACE/apps/Gateway/Peer/Options.h b/ACE/apps/Gateway/Peer/Options.h
index bc872fe7df4..911b90a857f 100644
--- a/ACE/apps/Gateway/Peer/Options.h
+++ b/ACE/apps/Gateway/Peer/Options.h
@@ -1,19 +1,15 @@
// -*- C++ -*-
-//
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Options.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef OPTIONS_H
#define OPTIONS_H
@@ -21,9 +17,12 @@
#include "../Gateway/Event.h"
#include "ace/svc_export.h"
+/**
+ * @class Options
+ *
+ * @brief Singleton that consolidates all Options for a peerd.
+ */
class ACE_Svc_Export Options
- // = TITLE
- // Singleton that consolidates all Options for a peerd.
{
public:
// = Options that can be enabled/disabled.
@@ -36,46 +35,50 @@ public:
CONSUMER_CONNECTOR = 020
};
+ /// Return Singleton.
static Options *instance (void);
- // Return Singleton.
+ /// Parse the arguments and set the options.
void parse_args (int argc, ACE_TCHAR *argv[]);
- // Parse the arguments and set the options.
// = Accessor methods.
+ /// Determine if an option is enabled.
int enabled (int option) const;
- // Determine if an option is enabled.
+ /**
+ * Our acceptor port number, i.e., the one that we passively listen
+ * on for connections to arrive from a gatewayd and create a
+ * Supplier.
+ */
u_short supplier_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
+ /**
+ * Our acceptor port number, i.e., the one that we passively listen
+ * on for connections to arrive from a gatewayd and create a
+ * Consumer.
+ */
u_short consumer_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
+ /// The connector port number, i.e., the one that we use to actively
+ /// establish connections with a gatewayd and create a Supplier.
u_short supplier_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
+ /// The connector port number, i.e., the one that we use to actively
+ /// establish connections with a gatewayd and create a Consumer.
u_short consumer_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
+ /// Our connector port host, i.e., the host running the gatewayd
+ /// process.
const ACE_TCHAR *connector_host (void) const;
- // Our connector port host, i.e., the host running the gatewayd
- // process.
+ /// Duration between disconnects.
long timeout (void) const;
- // Duration between disconnects.
+ /// The maximum size of the queue.
long max_queue_size (void) const;
- // The maximum size of the queue.
+ /// Returns a reference to the connection id.
CONNECTION_ID &connection_id (void);
- // Returns a reference to the connection id.
private:
enum
@@ -89,47 +92,51 @@ private:
// By default, disconnect the peer every minute.
};
+ /// Ensure Singleton.
Options (void);
- // Ensure Singleton.
+ /// Explain usage and exit.
void print_usage_and_die (void);
- // Explain usage and exit.
+ /// Singleton.
static Options *instance_;
- // Singleton.
+ /// Flag to indicate if we want verbose diagnostics.
u_long options_;
- // Flag to indicate if we want verbose diagnostics.
+ /**
+ * The acceptor port number, i.e., the one that we passively listen
+ * on for connections to arrive from a gatewayd and create a
+ * Supplier.
+ */
u_short supplier_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
+ /**
+ * The acceptor port number, i.e., the one that we passively listen
+ * on for connections to arrive from a gatewayd and create a
+ * Consumer.
+ */
u_short consumer_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
+ /// The connector port number, i.e., the one that we use to actively
+ /// establish connections with a gatewayd and create a Supplier.
u_short supplier_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
+ /// The connector port number, i.e., the one that we use to actively
+ /// establish connections with a gatewayd and create a Consumer.
u_short consumer_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
+ /// Our connector host, i.e., where the gatewayd process is running.
const ACE_TCHAR *connector_host_;
- // Our connector host, i.e., where the gatewayd process is running.
+ /// The amount of time to wait before disconnecting from the Peerd.
long timeout_;
- // The amount of time to wait before disconnecting from the Peerd.
+ /// The maximum size that the queue can grow to.
long max_queue_size_;
- // The maximum size that the queue can grow to.
+ /// The connection id.
CONNECTION_ID connection_id_;
- // The connection id.
};
#endif /* OPTIONS_H */
diff --git a/ACE/apps/Gateway/Peer/Peer.cpp b/ACE/apps/Gateway/Peer/Peer.cpp
index d8da4010489..233148682d3 100644
--- a/ACE/apps/Gateway/Peer/Peer.cpp
+++ b/ACE/apps/Gateway/Peer/Peer.cpp
@@ -8,8 +8,6 @@
#include "ace/Signal.h"
#include "Peer.h"
-ACE_RCSID(Peer, Peer, "$Id$")
-
Peer_Handler::Peer_Handler (void)
: connection_id_ (-1), // Maybe it's better than 0.
msg_frag_ (0),
@@ -116,7 +114,7 @@ Peer_Handler::transmit_stdin (void)
int result = 0;
if (this->connection_id_ != -1)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (sizeof (Event)),
@@ -551,7 +549,7 @@ Peer_Handler::await_connection_id (void)
int
Peer_Handler::subscribe (void)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (sizeof (Event)),
diff --git a/ACE/apps/Gateway/Peer/Peer.h b/ACE/apps/Gateway/Peer/Peer.h
index 0723882a243..8fce3fa72af 100644
--- a/ACE/apps/Gateway/Peer/Peer.h
+++ b/ACE/apps/Gateway/Peer/Peer.h
@@ -1,49 +1,46 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Peer.h
-//
-// = DESCRIPTION
-// These classes process Supplier/Consumer events sent from the
-// gateway (gatewayd) to its various peers (peerd). The general
-// collaboration works as follows:
-//
-// 1. <Peer_Acceptor> creates a listener endpoint and waits
-// passively for gatewayd to connect with it.
-//
-// 2. When a gatewayd connects, <Peer_Acceptor> creates an
-// <Peer_Handler> object that sends/receives events from
-// gatewayd on that connection.
-//
-// 3. The <Peer_Handler> waits for gatewayd to inform it of its
-// connection ID, which is prepended to all subsequent outgoing
-// events sent from peerd.
-//
-// 4. Once the connection ID is set, peerd periodically sends events
-// to gatewayd. Peerd also receives and "processes" events
-// forwarded to it from gatewayd. In this program, peerd
-// "processes" the events sent to it by writing them to stdout.
-//
-// Note that in the current peerd implementation, one Peer process
-// cannot serve as both a Consumer and Supplier of Events. This is
-// because the gatewayd establishes a separate connection for
-// Suppliers and Consumers and the peerd only maintains a single
-// <Peer_Handler> object to handle this one connection. Enhancing
-// this implementation to be both a Consumer and Supplier
-// simultaneously is straightforward, however. In addition,
-// multiple peerd processes can already work together to play these
-// different roles.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Peer.h
+ *
+ * $Id$
+ *
+ * These classes process Supplier/Consumer events sent from the
+ * gateway (gatewayd) to its various peers (peerd). The general
+ * collaboration works as follows:
+ *
+ * 1. <Peer_Acceptor> creates a listener endpoint and waits
+ * passively for gatewayd to connect with it.
+ *
+ * 2. When a gatewayd connects, <Peer_Acceptor> creates an
+ * <Peer_Handler> object that sends/receives events from
+ * gatewayd on that connection.
+ *
+ * 3. The <Peer_Handler> waits for gatewayd to inform it of its
+ * connection ID, which is prepended to all subsequent outgoing
+ * events sent from peerd.
+ *
+ * 4. Once the connection ID is set, peerd periodically sends events
+ * to gatewayd. Peerd also receives and "processes" events
+ * forwarded to it from gatewayd. In this program, peerd
+ * "processes" the events sent to it by writing them to stdout.
+ *
+ * Note that in the current peerd implementation, one Peer process
+ * cannot serve as both a Consumer and Supplier of Events. This is
+ * because the gatewayd establishes a separate connection for
+ * Suppliers and Consumers and the peerd only maintains a single
+ * <Peer_Handler> object to handle this one connection. Enhancing
+ * this implementation to be both a Consumer and Supplier
+ * simultaneously is straightforward, however. In addition,
+ * multiple peerd processes can already work together to play these
+ * different roles.
+ *
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef PEER_H
#define PEER_H
@@ -69,123 +66,129 @@ ACE_SVC_FACTORY_DECLARE (Peer_Factory)
template class ACE_Svc_Export ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
+/**
+ * @class Peer_Handler
+ *
+ * @brief Handle Peer events arriving from a Gateway.
+ */
class ACE_Svc_Export Peer_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
{
- // = TITLE
- // Handle Peer events arriving from a Gateway.
public:
// = Initialization and termination methods.
+ /// Initialize the peer.
Peer_Handler (void);
- // Initialize the peer.
+ /// Shutdown the Peer.
~Peer_Handler (void);
- // Shutdown the Peer.
+ /// Initialize the handler when called by
+ /// <ACE_Acceptor::handle_input>.
virtual int open (void * = 0);
- // Initialize the handler when called by
- // <ACE_Acceptor::handle_input>.
+ /// Receive and process peer events.
virtual int handle_input (ACE_HANDLE);
- // Receive and process peer events.
+ /// Send a event to a gateway (may be queued if necessary due to flow
+ /// control).
virtual int put (ACE_Message_Block *, ACE_Time_Value *tv = 0);
- // Send a event to a gateway (may be queued if necessary due to flow
- // control).
+ /// Finish sending a event when flow control conditions abate.
virtual int handle_output (ACE_HANDLE);
- // Finish sending a event when flow control conditions abate.
+ /// Periodically send events via <ACE_Reactor> timer mechanism.
virtual int handle_timeout (const ACE_Time_Value &,
const void *arg);
- // Periodically send events via <ACE_Reactor> timer mechanism.
+ /// Perform object termination.
virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Perform object termination.
protected:
typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
+ /// Transmit <mb> to the gatewayd.
int transmit (ACE_Message_Block *mb,
size_t n,
int event_type);
- // Transmit <mb> to the gatewayd.
+ /// Receive an Peer event from gatewayd.
virtual int recv (ACE_Message_Block *&mb);
- // Receive an Peer event from gatewayd.
+ /// Send an Peer event to gatewayd, using <nonblk_put>.
virtual int send (ACE_Message_Block *mb);
- // Send an Peer event to gatewayd, using <nonblk_put>.
+ /// Perform a non-blocking <put>, which tries to send an event to the
+ /// gatewayd, but only if it isn't flow controlled.
virtual int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking <put>, which tries to send an event to the
- // gatewayd, but only if it isn't flow controlled.
+ /// Register Consumer subscriptions with the gateway.
int subscribe (void);
- // Register Consumer subscriptions with the gateway.
// = Event/state/action handlers.
+ /// Receive a event from stdin and send it to the gateway.
int transmit_stdin (void);
- // Receive a event from stdin and send it to the gateway.
+ /// Action that receives the route id.
int await_connection_id (void);
- // Action that receives the route id.
+ /// Action that receives events.
int await_events (void);
- // Action that receives events.
+ /// Pointer-to-member-function for the current action to run in this
+ /// state. This points to one of the preceding 3 methods.
int (Peer_Handler::*do_action_)(void);
- // Pointer-to-member-function for the current action to run in this
- // state. This points to one of the preceding 3 methods.
+ /// Connection ID of the peer, which is obtained from the gatewayd.
CONNECTION_ID connection_id_;
- // Connection ID of the peer, which is obtained from the gatewayd.
+ /// Keep track of event fragments that arrive in non-blocking recv's
+ /// from the gatewayd.
ACE_Message_Block *msg_frag_;
- // Keep track of event fragments that arrive in non-blocking recv's
- // from the gatewayd.
+ /// The total number of bytes sent/received to the gatewayd thus far.
size_t total_bytes_;
- // The total number of bytes sent/received to the gatewayd thus far.
+ /// Used to call register_stdin_handle only once. Otherwise, thread
+ /// leak will occur on Win32.
int first_time_;
- // Used to call register_stdin_handle only once. Otherwise, thread
- // leak will occur on Win32.
};
#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
template class ACE_Svc_Export ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR>;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
+/**
+ * @class Peer_Acceptor
+ *
+ * @brief Passively accept connections from gatewayd and dynamically
+ * create a new <Peer_Handler> object to communicate with the
+ * gatewayd.
+ */
class ACE_Svc_Export Peer_Acceptor : public ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR>
{
- // = TITLE
- // Passively accept connections from gatewayd and dynamically
- // create a new <Peer_Handler> object to communicate with the
- // gatewayd.
public:
// = Initialization and termination methods.
+ /// Default initialization.
Peer_Acceptor (void);
- // Default initialization.
+ /// the <Peer_Acceptor>.
int start (u_short);
- // the <Peer_Acceptor>.
+ /// Terminate the <Peer_Acceptor>.
int close (void);
- // Terminate the <Peer_Acceptor>.
+ /// Factory method that creates a <Peer_Handler> just once.
virtual int make_svc_handler (Peer_Handler *&);
- // Factory method that creates a <Peer_Handler> just once.
private:
+ /// Factor out common code for initializing the <Peer_Acceptor>.
int open_acceptor (u_short port);
- // Factor out common code for initializing the <Peer_Acceptor>.
+ /// Pointer to <Peer_Handler> allocated just once.
Peer_Handler *peer_handler_;
- // Pointer to <Peer_Handler> allocated just once.
+ /// Our acceptor addr.
ACE_INET_Addr addr_;
- // Our acceptor addr.
typedef ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR> inherited;
};
@@ -194,64 +197,74 @@ private:
template class ACE_Svc_Export ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
+/**
+ * @class Peer_Connector
+ *
+ * @brief Actively establish connections with gatewayd and dynamically
+ * create a new <Peer_Handler> object to communicate with the
+ * gatewayd.
+ */
class ACE_Svc_Export Peer_Connector : public ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>
{
- // = TITLE
- // Actively establish connections with gatewayd and dynamically
- // create a new <Peer_Handler> object to communicate with the
- // gatewayd.
public:
// = Initialization method.
+ /**
+ * Initialize the <Peer_Connector>. NOTE: the arguments are
+ * ignored. They are only provided to avoid a compiler warning
+ * about hiding the virtual function ACE_Connector<Peer_Handler,
+ * ACE_SOCK_CONNECTOR>::open(ACE_Reactor*, int).
+ */
int open (ACE_Reactor * = 0, int = 0);
- // Initialize the <Peer_Connector>. NOTE: the arguments are
- // ignored. They are only provided to avoid a compiler warning
- // about hiding the virtual function ACE_Connector<Peer_Handler,
- // ACE_SOCK_CONNECTOR>::open(ACE_Reactor*, int).
private:
+ /// Factor out common code for initializing the <Peer_Connector>.
int open_connector (Peer_Handler *&ph, u_short port);
- // Factor out common code for initializing the <Peer_Connector>.
+ /// Consumer <Peer_Handler> that is connected to a gatewayd.
Peer_Handler *consumer_peer_handler_;
- // Consumer <Peer_Handler> that is connected to a gatewayd.
+ /// Supplier <Peer_Handler> that is connected to a gatewayd.
Peer_Handler *supplier_peer_handler_;
- // Supplier <Peer_Handler> that is connected to a gatewayd.
};
+/**
+ * @class Peer_Factory
+ *
+ * @brief A factory class that actively and/or passively establishes
+ * connections with the gatewayd.
+ */
class ACE_Svc_Export Peer_Factory : public ACE_Service_Object
{
- // = TITLE
- // A factory class that actively and/or passively establishes
- // connections with the gatewayd.
public:
// = Dynamic initialization and termination hooks from <ACE_Service_Object>.
+ /// Initialize the acceptor and connector.
virtual int init (int argc, ACE_TCHAR *argv[]);
- // Initialize the acceptor and connector.
+ /// Perform termination activities.
virtual int fini (void);
- // Perform termination activities.
+ /// Return info about this service.
virtual int info (ACE_TCHAR **, size_t) const;
- // Return info about this service.
+ /// Handle various signals (e.g., SIGPIPE, SIGINT, and SIGQUIT).
virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
- // Handle various signals (e.g., SIGPIPE, SIGINT, and SIGQUIT).
private:
+ /// Pointer to an instance of our <Peer_Acceptor> that's used to
+ /// accept connections and create Consumers.
Peer_Acceptor consumer_acceptor_;
- // Pointer to an instance of our <Peer_Acceptor> that's used to
- // accept connections and create Consumers.
+ /// Pointer to an instance of our <Peer_Acceptor> that's used to
+ /// accept connections and create Suppliers.
Peer_Acceptor supplier_acceptor_;
- // Pointer to an instance of our <Peer_Acceptor> that's used to
- // accept connections and create Suppliers.
+ /**
+ * An instance of our <Peer_Connector>. Note that one
+ * <Peer_Connector> is used to establish <Peer_Handler>s for both
+ * Consumers and Suppliers.
+ */
Peer_Connector connector_;
- // An instance of our <Peer_Connector>. Note that one
- // <Peer_Connector> is used to establish <Peer_Handler>s for both
- // Consumers and Suppliers.
};
#endif /* PEER_H */
diff --git a/ACE/apps/Gateway/Peer/peerd.cpp b/ACE/apps/Gateway/Peer/peerd.cpp
index f4abd599322..5ddcddbbcbb 100644
--- a/ACE/apps/Gateway/Peer/peerd.cpp
+++ b/ACE/apps/Gateway/Peer/peerd.cpp
@@ -1,28 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// peerd.h
-//
-// = DESCRIPTION
-// Driver for the peer daemon (peerd). Note that this is
-// completely generic code due to the Service Configurator
-// framework!
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file peerd.cpp
+ *
+ * $Id$
+ *
+ * Driver for the peer daemon (peerd). Note that this is
+ * completely generic code due to the Service Configurator
+ * framework!
+ *
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
#include "ace/OS_NS_unistd.h"
#include "Peer.h"
-ACE_RCSID(Peer, peerd, "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
diff --git a/ACE/apps/Gateway/Peer/svc.conf b/ACE/apps/Gateway/Peer/svc.conf
index 707f457da2f..7e713772702 100644
--- a/ACE/apps/Gateway/Peer/svc.conf
+++ b/ACE/apps/Gateway/Peer/svc.conf
@@ -1,2 +1,4 @@
+# $Id$
+
#static Svc_Manager "-d -p 291"
dynamic Peer1 Service_Object * Gateway_Peer:_make_Peer_Factory() active "-a C|S"
diff --git a/ACE/apps/JAWS/clients/Blobby/Blob.cpp b/ACE/apps/JAWS/clients/Blobby/Blob.cpp
index 3bd237c7a9c..b28d2601142 100644
--- a/ACE/apps/JAWS/clients/Blobby/Blob.cpp
+++ b/ACE/apps/JAWS/clients/Blobby/Blob.cpp
@@ -4,8 +4,6 @@
#include "Blob_Handler.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(Blobby, Blob, "$Id$")
-
ACE_Blob::ACE_Blob (void)
{
}
diff --git a/ACE/apps/JAWS/clients/Blobby/Blob.h b/ACE/apps/JAWS/clients/Blobby/Blob.h
index 9ba35fb0176..8a3c68247e4 100644
--- a/ACE/apps/JAWS/clients/Blobby/Blob.h
+++ b/ACE/apps/JAWS/clients/Blobby/Blob.h
@@ -1,22 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Blob.h
-//
-// = DESCRIPTION
-// This is the ACE_Blob class, which is the API for doing file
-// uploads/downloads.
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
+
+//=============================================================================
+/**
+ * @file Blob.h
+ *
+ * $Id$
+ *
+ * This is the ACE_Blob class, which is the API for doing file
+ * uploads/downloads.
+ *
+ *
+ * @author Prashant Jain and Sumedh Mungee
+ */
+//=============================================================================
+
#ifndef ACE_BLOB_H
#define ACE_BLOB_H
@@ -34,53 +31,59 @@
#include "ace/Message_Block.h"
#include "Blob_Handler.h"
+/**
+ * @class ACE_Blob
+ *
+ * @brief Blob is intended to provide application API to
+ * classes that wish to do network i/o at a very
+ * high level of abstraction.
+ * = This class provides the ability to retrieve data from
+ * the network, of specified length and offset, and potentially
+ * use any protocol "under the hood" to do so. It currently
+ * uses HTTP. See Blob_Handler also.
+ */
class ACE_Blob
- // = TITLE
- // Blob is intended to provide application API to
- // classes that wish to do network i/o at a very
- // high level of abstraction.
- //
- // = This class provides the ability to retrieve data from
- // the network, of specified length and offset, and potentially
- // use any protocol "under the hood" to do so. It currently
- // uses HTTP. See Blob_Handler also.
{
public:
ACE_Blob (void);
~ACE_Blob (void);
+ /// initializes the class with the given filename, hostname and port.
+ /// it should be called with the filename, before any read/write calls
int open (const ACE_TCHAR *filename,
const ACE_TCHAR *hostname = ACE_DEFAULT_SERVER_HOST,
u_short port = 80);
- // initializes the class with the given filename, hostname and port.
- // it should be called with the filename, before any read/write calls
+ /**
+ * starts a connection, and reads a file from the server,
+ * of length and offset as specified, into Message_Block mb
+ * The message block should have capacity to hold length number
+ * of bytes
+ */
int read (ACE_Message_Block *mb, size_t length, size_t offset);
- // starts a connection, and reads a file from the server,
- // of length and offset as specified, into Message_Block mb
- // The message block should have capacity to hold length number
- // of bytes
+ /**
+ * starts a connection, and writes a file to the server,
+ * of length and offset as specified, from Message_Block mb
+ * thus the message block should contain atleast length + offset
+ * bytes of data
+ */
int write (ACE_Message_Block *mb, size_t length, size_t offset);
- // starts a connection, and writes a file to the server,
- // of length and offset as specified, from Message_Block mb
- // thus the message block should contain atleast length + offset
- // bytes of data
+ /// Frees memory allocated for filename.
int close ();
- // Frees memory allocated for filename.
private:
+ /// store the internet address of the server
ACE_INET_Addr inet_addr_;
- // store the internet address of the server
+ /// The filename
ACE_TCHAR *filename_;
- // The filename
+ /// The connector endpoint to initiate the client connection
ACE_Connector<ACE_Blob_Handler, ACE_SOCK_CONNECTOR> connector_;
- // The connector endpoint to initiate the client connection
};
diff --git a/ACE/apps/JAWS/clients/Blobby/Blob_Handler.cpp b/ACE/apps/JAWS/clients/Blobby/Blob_Handler.cpp
index 0264c14ab17..8bc5bc28785 100644
--- a/ACE/apps/JAWS/clients/Blobby/Blob_Handler.cpp
+++ b/ACE/apps/JAWS/clients/Blobby/Blob_Handler.cpp
@@ -5,8 +5,6 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_strings.h"
-ACE_RCSID(Blobby, Blob_Handler, "$Id$")
-
// Empty constructor for compliance with new Connector behavior.
ACE_Blob_Handler::ACE_Blob_Handler (void)
{
@@ -105,7 +103,10 @@ ACE_Blob_Reader::send_request (void)
ACE_ERROR_RETURN((LM_ERROR,"Request too large!"), -1);
// Create a message to send to the server requesting retrieval of the file
- int len = ACE_OS::sprintf (mesg, "%s %s %s", request_prefix_, filename_, request_suffix_);
+ int len = ACE_OS::sprintf (mesg, "%s %s %s",
+ request_prefix_,
+ ACE_TEXT_ALWAYS_CHAR (filename_),
+ request_suffix_);
// Send the message to server
if (peer ().send_n (mesg, len) != len)
@@ -280,7 +281,8 @@ ACE_Blob_Writer::send_request (void)
// Create the header, store the actual length in mesglen.
mesglen = ACE_OS::sprintf (mesg, "%s /%s %s " ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "\n\n",
- request_prefix_, filename_, request_suffix_, length_);
+ request_prefix_, ACE_TEXT_ALWAYS_CHAR (filename_),
+ request_suffix_, length_);
// Send the header followed by the data
diff --git a/ACE/apps/JAWS/clients/Blobby/Blob_Handler.h b/ACE/apps/JAWS/clients/Blobby/Blob_Handler.h
index 41e13ff9c03..6e59d2828d4 100644
--- a/ACE/apps/JAWS/clients/Blobby/Blob_Handler.h
+++ b/ACE/apps/JAWS/clients/Blobby/Blob_Handler.h
@@ -1,23 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Blob.h
-//
-// = DESCRIPTION
-// ACE_Blob_Handler is a base class for ACE_Blob_Reader and
-// ACE_Blob_Writer which are created in response to calls to
-// read/write, as appropriate
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
+
+//=============================================================================
+/**
+ * @file Blob_Handler.h
+ *
+ * $Id$
+ *
+ * ACE_Blob_Handler is a base class for ACE_Blob_Reader and
+ * ACE_Blob_Writer which are created in response to calls to
+ * read/write, as appropriate
+ *
+ *
+ * @author Prashant Jain and Sumedh Mungee
+ */
+//=============================================================================
+
#ifndef ACE_BLOB_HANDLER_H
#define ACE_BLOB_HANDLER_H
@@ -32,35 +29,37 @@
#include "ace/Svc_Handler.h"
#include "ace/Message_Block.h"
+/**
+ * @class ACE_Blob_Handler
+ *
+ * @brief Blob is intended to provide application API to
+ * classes that wish to do network i/o at a very
+ * high level of abstraction.
+ * = This class provides the ability to retrieve data from
+ * the network, of specified length and offset, and potentially
+ * use any protocol "under the hood" to do so. It currently
+ * uses HTTP. See Blob_Handler also.
+ */
class ACE_Blob_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- // = TITLE
- // Blob is intended to provide application API to
- // classes that wish to do network i/o at a very
- // high level of abstraction.
- //
- // = This class provides the ability to retrieve data from
- // the network, of specified length and offset, and potentially
- // use any protocol "under the hood" to do so. It currently
- // uses HTTP. See Blob_Handler also.
{
public:
+ /// Null constructor, insures that it works properly with Connector
ACE_Blob_Handler (void);
- // Null constructor, insures that it works properly with Connector
+ /// Always use this constructor to make Blob_Handlers
ACE_Blob_Handler (ACE_Message_Block *mb,
size_t length,
size_t offset,
ACE_TCHAR *filename);
- // Always use this constructor to make Blob_Handlers
+ /// returns the number of bytes read/written in the last operation.
int byte_count (void);
- // returns the number of bytes read/written in the last operation.
+ /// Activate this instance of the <ACE_Blob_Handler>
virtual int open (void * = 0);
- // Activate this instance of the <ACE_Blob_Handler>
+ /// Close down the Blob
virtual int close (u_long flags = 0);
- // Close down the Blob
~ACE_Blob_Handler (void);
diff --git a/ACE/apps/JAWS/clients/Blobby/Options.cpp b/ACE/apps/JAWS/clients/Blobby/Options.cpp
index cff24935e4e..986c438db4b 100644
--- a/ACE/apps/JAWS/clients/Blobby/Options.cpp
+++ b/ACE/apps/JAWS/clients/Blobby/Options.cpp
@@ -6,8 +6,6 @@
#include "Blob_Handler.h"
#include "Options.h"
-ACE_RCSID(Blobby, Options, "$Id$")
-
Options *Options::instance_ = 0;
Options *
diff --git a/ACE/apps/JAWS/clients/Blobby/Options.h b/ACE/apps/JAWS/clients/Blobby/Options.h
index 8396cf5535b..5c379729f45 100644
--- a/ACE/apps/JAWS/clients/Blobby/Options.h
+++ b/ACE/apps/JAWS/clients/Blobby/Options.h
@@ -1,21 +1,18 @@
/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Options.h
-//
-// = DESCRIPTION
-// Options is an Singleton for blobby
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
+
+//=============================================================================
+/**
+ * @file Options.h
+ *
+ * $Id$
+ *
+ * Options is an Singleton for blobby
+ *
+ *
+ * @author Prashant Jain and Sumedh Mungee
+ */
+//=============================================================================
+
#ifndef ACE_BLOBBY_OPTIONS_H
#define ACE_BLOBBY_OPTIONS_H
@@ -33,39 +30,39 @@
class Options
{
public:
+ /// Returns the singleton instance
static Options *instance (void);
- // Returns the singleton instance
+ /// parses commandline arguments
void parse_args (int argc, ACE_TCHAR *argv[]);
- // parses commandline arguments
+ /// Hostname to connect to
ACE_TCHAR *hostname_;
- // Hostname to connect to
+ /// Port number to use
u_short port_;
- // Port number to use
+ /// Filename to upload/download
ACE_TCHAR *filename_;
- // Filename to upload/download
+ /// number of bytes to read/write
int length_;
- // number of bytes to read/write
+ /// offset to read/write
int offset_;
- // offset to read/write
+ /// "r" means download (read), and "w" means upload (write).
char operation_;
- // "r" means download (read), and "w" means upload (write).
+ /// turns on verbosity
int debug_;
- // turns on verbosity
protected:
Options (void);
// protected constructor, singleton
+ /// the singleton
static Options *instance_;
- // the singleton
};
#endif /* ACE_BLOBBY_OPTIONS_H */
diff --git a/ACE/apps/JAWS/clients/Blobby/blobby.cpp b/ACE/apps/JAWS/clients/Blobby/blobby.cpp
index 4d6f5802f56..46e7a956cce 100644
--- a/ACE/apps/JAWS/clients/Blobby/blobby.cpp
+++ b/ACE/apps/JAWS/clients/Blobby/blobby.cpp
@@ -1,34 +1,29 @@
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// blobby.c
-//
-// = DESCRIPTION
-// Simple client application to illustrate the use of the ACE_Blob class
-//
-// It reads "length" number of bytes, after skipping offset "offset"
-// from hostname, port and filename as specified. (if -r specified)
-//
-// It writes "length" number of bytes, after skipping offset "offset"
-// to hostname, port and filename as specified (if -w specified)
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
+
+//=============================================================================
+/**
+ * @file blobby.cpp
+ *
+ * $Id$
+ *
+ * Simple client application to illustrate the use of the ACE_Blob class
+ *
+ * It reads "length" number of bytes, after skipping offset "offset"
+ * from hostname, port and filename as specified. (if -r specified)
+ *
+ * It writes "length" number of bytes, after skipping offset "offset"
+ * to hostname, port and filename as specified (if -w specified)
+ *
+ *
+ * @author Prashant Jain and Sumedh Mungee
+ */
+//=============================================================================
+
#include "Options.h"
#include "ace/OS_main.h"
#include "ace/OS_NS_fcntl.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Blobby, blobby, "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
diff --git a/ACE/apps/JAWS/clients/Caching/ID_Generator.cpp b/ACE/apps/JAWS/clients/Caching/ID_Generator.cpp
index c2bde44f71c..aa32591532d 100644
--- a/ACE/apps/JAWS/clients/Caching/ID_Generator.cpp
+++ b/ACE/apps/JAWS/clients/Caching/ID_Generator.cpp
@@ -6,8 +6,6 @@
#include "ace/Object_Manager.h"
#include "ID_Generator.h"
-ACE_RCSID(Caching, ID_Generator, "$Id$")
-
time_t ACE_ID_Generator::last_time_ = 0;
size_t ACE_ID_Generator::last_number_ = 0;
diff --git a/ACE/apps/JAWS/clients/Caching/ID_Generator.h b/ACE/apps/JAWS/clients/Caching/ID_Generator.h
index 73c78fc5506..71ba6a493c4 100644
--- a/ACE/apps/JAWS/clients/Caching/ID_Generator.h
+++ b/ACE/apps/JAWS/clients/Caching/ID_Generator.h
@@ -1,19 +1,16 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// ID_Generator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ID_Generator.h
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang
+ */
+//=============================================================================
+
#ifndef ACE_ID_GENERATOR_H
#define ACE_ID_GENERATOR_h
@@ -26,11 +23,13 @@
#define ACE_OFFER_ID_LENGTH 21
+/**
+ * @class ACE_ID_Generator
+ *
+ * @brief An unique ID generator.
+ *
+ */
class ACE_ID_Generator
- // = TITLE
- // An unique ID generator.
- //
- // = DESCRIPTION
// Generate an offer ID according to current time and avoid
// duplicate ID. It guarantees ID uniqueness within a process,
@@ -38,25 +37,25 @@ class ACE_ID_Generator
// similar method like the backery algorithm.
{
public:
+ /// allocate a new ID string and point <id> to it.
static char *get_new_id (char *id);
- // allocate a new ID string and point <id> to it.
private:
+ /// Atomically get info required to generate an offer ID.
static void get_serial_id (time_t &t, size_t &s);
- // Atomically get info required to generate an offer ID.
+ /// Get the lock instance.
static ACE_SYNCH_MUTEX *get_lock (void);
- // Get the lock instance.
+ /// Record the time last offer ID generated.
static time_t last_time_;
- // Record the time last offer ID generated.
+ /// Record serial number of last offer ID with same
+ /// generation time.
static size_t last_number_;
- // Record serial number of last offer ID with same
- // generation time.
+ /// mutex to access private member.
static ACE_SYNCH_MUTEX *lock_;
- // mutex to access private member.
};
#endif /* ACE_ID_GENERATOR_H */
diff --git a/ACE/apps/JAWS/clients/Caching/Local_Locator.cpp b/ACE/apps/JAWS/clients/Caching/Local_Locator.cpp
index f341014257d..00daa96b5ad 100644
--- a/ACE/apps/JAWS/clients/Caching/Local_Locator.cpp
+++ b/ACE/apps/JAWS/clients/Caching/Local_Locator.cpp
@@ -9,8 +9,6 @@
#include "Local_Locator.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(Caching, Local_Locator, "$Id$")
-
int
ACE_URL_Local_Locator::url_query (const ACE_URL_Locator::ACE_Selection_Criteria how,
const ACE_URL_Property_Seq *pseq,
diff --git a/ACE/apps/JAWS/clients/Caching/Local_Locator.h b/ACE/apps/JAWS/clients/Caching/Local_Locator.h
index 38f25d1cab5..26591c28300 100644
--- a/ACE/apps/JAWS/clients/Caching/Local_Locator.h
+++ b/ACE/apps/JAWS/clients/Caching/Local_Locator.h
@@ -1,19 +1,15 @@
// -*- C++ -*-
-//
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// Local_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Local_Locator.h
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang
+ */
+//=============================================================================
+
#ifndef ACE_LOCAL_LOCATOR_H
#define ACE_LOCAL_LOCATOR_H
@@ -27,28 +23,32 @@
#include "ID_Generator.h"
+/**
+ * @class ACE_URL_Record
+ *
+ * @brief A URL Record.
+ *
+ * A record placed in URL repository. Notice that
+ * both member pointers are own by URL_Record.
+ * They will get deallocated when the object goes
+ * out of scope.
+ */
class ACE_Svc_Export ACE_URL_Record
- // = TITLE
- // A URL Record.
- //
- // = DESCRIPTION
- // A record placed in URL repository. Notice that
- // both member pointers are own by URL_Record.
- // They will get deallocated when the object goes
- // out of scope.
{
+ /**
+ * We are making ACE_Node as friend class because we don't want
+ * others to access default constructor and pushing in an invalid
+ * record. However, container classes need to use default constructor
+ * for its head record.
+ */
friend class ACE_URL_Local_Locator;
friend class ACE_Node<ACE_URL_Record>;
- // We are making ACE_Node as friend class because we don't want
- // others to access default constructor and pushing in an invalid
- // record. However, container classes need to use default constructor
- // for its head record.
public:
+ /// ctor.
ACE_URL_Record (ACE_URL_Offer *offer);
- // ctor.
+ /// dtor.
~ACE_URL_Record (void);
- // dtor.
/// Two records are equal if they have the same offer id.
bool operator== (const ACE_URL_Record &rhs) const;
@@ -58,55 +58,59 @@ public:
private:
+ /// Default ctor. This is put here to prevent users from
+ /// pushing in an invalid record.
ACE_URL_Record (void);
- // Default ctor. This is put here to prevent users from
- // pushing in an invalid record.
+ /// Offer ID in the repository.
ACE_WString *id_;
- // Offer ID in the repository.
+ /// Offer (and its properties).
ACE_URL_Offer *offer_;
- // Offer (and its properties).
};
+/**
+ * @class ACE_URL_Local_Locator
+ *
+ * @brief A simple URL repository to store URL offer locally.
+ *
+ * This class manage a collection of URL offers
+ * for local query and registration. But we should
+ * really use it within a server.
+ */
class ACE_Svc_Export ACE_URL_Local_Locator
- // = TITLE
- // A simple URL repository to store URL offer locally.
- //
- // = DESCRIPTION
- // This class manage a collection of URL offers
- // for local query and registration. But we should
- // really use it within a server.
{
+ /// Default destructor.
virtual ~ACE_URL_Local_Locator (void);
- // Default destructor.
+ /**
+ * Query the locator for HTTP with designate properties (none, some,
+ * or all). The locator being queried will return a sequence of
+ * offers with <how_many> offers in it. This interface allocates
+ * <offer> so users must deallocate it after use.
+ */
virtual int url_query (const ACE_URL_Locator::ACE_Selection_Criteria how,
const ACE_URL_Property_Seq *pseq,
const size_t how_many,
size_t &num_query,
ACE_URL_Offer_Seq *offer);
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
+ /// Export an offer to the locator.
virtual int export_offer (ACE_URL_Offer *offer,
ACE_WString &offer_id);
- // Export an offer to the locator.
+ /// Withdraw an offer. return 0 if succeed, -1 otherwise.
virtual int withdraw_offer (const ACE_WString &offer_id);
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
+ /// Query a specific offer.
virtual int describe_offer (const ACE_WString &offer_id,
ACE_URL_Offer *offer);
- // Query a specific offer.
+ /// Modify a previously registered offer.
virtual int modify_offer (const ACE_WString &offer_id,
const ACE_WString *url = 0,
const ACE_URL_Property_Seq *del = 0,
const ACE_URL_Property_Seq *modify = 0);
- // Modify a previously registered offer.
protected:
ACE_Unbounded_Set<ACE_URL_Record> repository_;
diff --git a/ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp b/ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp
index 7a0aa391b34..60e395d5b76 100644
--- a/ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp
+++ b/ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp
@@ -14,8 +14,6 @@
#include "URL_Array_Helper.h"
#include "URL_Locator.h"
-ACE_RCSID(Caching, Locator_Request_Reply, "$Id$")
-
int
ACE_URL_Locator_Request::url_query (const int how,
const ACE_URL_Property_Seq &pseq,
@@ -185,9 +183,9 @@ ACE_URL_Locator_Request::decode (void *buffer)
total_length += this->offer_->decode (cbuffer + total_length);
}
- this->id_ = ACE_WString ((ACE_USHORT16 *) (cbuffer + total_length));
+ this->id_ = ACE_WString ((ACE_UINT16 *) (cbuffer + total_length));
total_length += ACE_WString_Helper::decode (cbuffer + total_length);
- this->url_ = ACE_WString ((ACE_USHORT16 *) (cbuffer + total_length));
+ this->url_ = ACE_WString ((ACE_UINT16 *) (cbuffer + total_length));
total_length += ACE_WString_Helper::decode (cbuffer + total_length);
ACE_ASSERT (total_length == buf_size);
diff --git a/ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.h b/ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.h
index a4e6e5f993a..055f5269c98 100644
--- a/ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.h
+++ b/ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.h
@@ -1,80 +1,84 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// Locator_Request_Response.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Locator_Request_Reply.h
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang
+ */
+//=============================================================================
+
#ifndef ACE_LOCATOR_REQUEST_REPLY_H
#define ACE_LOCATOR_REQUEST_REPLY_H
#include "URL_Properties.h"
+/**
+ * @class ACE_URL_Locator_Request
+ *
+ * @brief A URL request message formater/wrapper.
+ *
+ * This class defines a URL request data. It is used
+ * to transform requests to an object so that we can
+ * ship them across network.
+ */
class ACE_Svc_Export ACE_URL_Locator_Request
- // = TITLE
- // A URL request message formater/wrapper.
- //
- // = DESCRIPTION
- // This class defines a URL request data. It is used
- // to transform requests to an object so that we can
- // ship them across network.
{
public:
+ /// Default ctor.
ACE_URL_Locator_Request (void);
- // Default ctor.
+ /// Default dtor.
~ACE_URL_Locator_Request (void);
- // Default dtor.
+ /**
+ * Query the locator for HTTP with designate properties (none, some,
+ * or all). The locator being queried will return a sequence of
+ * offers with <how_many> offers in it. This interface allocates
+ * <offer> so users must deallocate it after use.
+ */
int url_query (const int how,
const ACE_URL_Property_Seq &pseq,
const int how_many);
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
+ /// Export an offer to the locator.
int export_offer (const ACE_URL_Offer &offer);
- // Export an offer to the locator.
+ /// Withdraw an offer. return 0 if succeed, -1 otherwise.
int withdraw_offer (const ACE_WString &offer_id);
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
+ /// Query a specific offer.
int describe_offer (const ACE_WString &offer_id);
- // Query a specific offer.
+ /// Modify a previously registered offer.
int modify_offer (const ACE_WString &offer_id,
const char *url = 0,
const ACE_URL_Property_Seq &del = 0,
const ACE_URL_Property_Seq &modify = 0);
- // Modify a previously registered offer.
+ /// Modify a previously registered offer.
int modify_offer (const ACE_WString &offer_id,
const ACE_WString *url = 0,
const ACE_URL_Property_Seq &del = 0,
const ACE_URL_Property_Seq &modify = 0);
- // Modify a previously registered offer.
+ /// Encode request for network communication. If succeed,
+ /// returns the size of the buffer, otherwise, return 0.
size_t encode (void);
- // Encode request for network communication. If succeed,
- // returns the size of the buffer, otherwise, return 0.
+ /**
+ * Restore from network data. Returns size of the buffer
+ * if succeed, 0 otherwise. When passing in a buffer,
+ * caller must take the responsibility to delete the buffer
+ * afterward, if so needed.
+ */
size_t decode (void *buffer);
- // Restore from network data. Returns size of the buffer
- // if succeed, 0 otherwise. When passing in a buffer,
- // caller must take the responsibility to delete the buffer
- // afterward, if so needed.
+ /// A bunch of methods to access internal data.
const int how (void) const;
const int how_many (void) const;
const u_int opcode (void) const;
@@ -85,15 +89,14 @@ public:
const ACE_WString &id (void) const;
const ACE_WString &url (void) const;
const char *buffer (void) const;
- // A bunch of methods to access internal data.
+ /// Print out this object.
void dump (void) const;
- // Print out this object.
protected:
+ /// Return the size of the buffer required to encode
+ /// this request.
size_t size (void);
- // Return the size of the buffer required to encode
- // this request.
enum {
VALID_SEQ1 = 0x1,
@@ -102,73 +105,77 @@ protected:
};
// These constants used to indicate which pointers are valid.
+ /// Request type code.
u_int code_;
- // Request type code.
+ /// Query method (if code_ == QUERY.)
int how_;
- // Query method (if code_ == QUERY.)
+ /// How many offers are we interested in in this query.
int how_many_;
- // How many offers are we interested in in this query.
+ /// Bit flag to mark valid pointers within this object.
int valid_ptr_;
- // Bit flag to mark valid pointers within this object.
+ /// For query or del in modify_offer.
ACE_URL_Property_Seq *seq1_;
- // For query or del in modify_offer.
+ /// For modify seq. in modify_offer.
ACE_URL_Property_Seq *seq2_;
- // For modify seq. in modify_offer.
+ /// Offer to export.
ACE_URL_Offer *offer_;
- // Offer to export.
+ /// Offer ID.
ACE_WString id_;
- // Offer ID.
+ /// URL of this offer.
ACE_WString url_;
- // URL of this offer.
+ /// Buffer to store encoded data.
char *buffer_;
- // Buffer to store encoded data.
};
+/**
+ * @class ACE_URL_Locator_Reply
+ *
+ * @brief A URL reply message formater/wrapper.
+ *
+ * This class defines a URL reply data. It is used
+ * to transform reply messages to an object so that we can
+ * ship them across network.
+ */
class ACE_Svc_Export ACE_URL_Locator_Reply
- // = TITLE
- // A URL reply message formater/wrapper.
- //
- // = DESCRIPTION
- // This class defines a URL reply data. It is used
- // to transform reply messages to an object so that we can
- // ship them across network.
{
public:
+ /// Default ctor.
ACE_URL_Locator_Reply (void);
- // Default ctor.
+ /// Default dtor.
~ACE_URL_Locator_Reply (void);
- // Default dtor.
+ /// Setup a reply message for EXPORT, WITHDRAW, or MODIFY operations.
int status_reply (u_int op, int result);
- // Setup a reply message for EXPORT, WITHDRAW, or MODIFY operations.
+ /// Setup a reply for QUERY operation.
int query_reply (int result, size_t num,
const ACE_URL_Offer_Seq &offers);
- // Setup a reply for QUERY operation.
+ /// Construct a reply for DESCRIBE operation.
int describe_reply (int result,
const ACE_URL_Offer &offer);
- // Construct a reply for DESCRIBE operation.
+ /// Encode request for network communication. If succeed,
+ /// returns the size of the buffer, otherwise, return 0.
size_t encode (void);
- // Encode request for network communication. If succeed,
- // returns the size of the buffer, otherwise, return 0.
+ /**
+ * Restore from network data. Returns size of the buffer
+ * if succeed, 0 otherwise. When passing in a buffer,
+ * caller must take the responsibility to delete the buffer
+ * afterward, if so needed.
+ */
size_t decode (void *buffer);
- // Restore from network data. Returns size of the buffer
- // if succeed, 0 otherwise. When passing in a buffer,
- // caller must take the responsibility to delete the buffer
- // afterward, if so needed.
// Accessor function.
const size_t num_offers (void) const;
@@ -178,13 +185,13 @@ public:
const u_int status (void) const;
const char *buffer (void) const ;
+ /// Print out this object.
void dump (void) const ;
- // Print out this object.
protected:
+ /// Return the size of the buffer required to encode
+ /// this request.
size_t size (void);
- // Return the size of the buffer required to encode
- // this request.
enum {
VALID_OFFER = 0x1,
@@ -192,26 +199,26 @@ protected:
};
// Valid pointer masks.
+ /// Holds the original op code.
u_int code_;
- // Holds the original op code.
+ /// Holds the result of an operation from the Location Server.
int status_;
- // Holds the result of an operation from the Location Server.
+ /// Holds the number of valid offers in the offers_ sequence.
size_t num_offers_;
- // Holds the number of valid offers in the offers_ sequence.
+ /// Flag that marks valid internal pointers.
int valid_ptr_;
- // Flag that marks valid internal pointers.
+ /// Holds a single offer. Used in query offer property.
ACE_URL_Offer *offer_;
- // Holds a single offer. Used in query offer property.
+ /// Holds the replying offer sequence from a Locator.
ACE_URL_Offer_Seq *offers_;
- // Holds the replying offer sequence from a Locator.
+ /// Buffer to store encoded data.
char *buffer_;
- // Buffer to store encoded data.
};
#if defined (__ACE_INLINE__)
#include "Locator_Request_Reply.inl"
diff --git a/ACE/apps/JAWS/clients/Caching/URL_Array_Helper.cpp b/ACE/apps/JAWS/clients/Caching/URL_Array_Helper.cpp
index c8dbb55e197..2c5665197a5 100644
--- a/ACE/apps/JAWS/clients/Caching/URL_Array_Helper.cpp
+++ b/ACE/apps/JAWS/clients/Caching/URL_Array_Helper.cpp
@@ -7,8 +7,6 @@
#include "URL_Array_Helper.h"
-ACE_RCSID(Caching, URL_Array_Helper, "$Id$")
-
// Some helper functions for encoding/decoding
template <class T>
diff --git a/ACE/apps/JAWS/clients/Caching/URL_Array_Helper.h b/ACE/apps/JAWS/clients/Caching/URL_Array_Helper.h
index f38f9ebf5dd..33f80c3d7f3 100644
--- a/ACE/apps/JAWS/clients/Caching/URL_Array_Helper.h
+++ b/ACE/apps/JAWS/clients/Caching/URL_Array_Helper.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Array_Helper.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL_Array_Helper.h
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang
+ */
+//=============================================================================
+
#ifndef ACE_URL_ARRAY_HELPER_H
#define ACE_URL_ARRAY_HELPER_H
diff --git a/ACE/apps/JAWS/clients/Caching/URL_Locator.cpp b/ACE/apps/JAWS/clients/Caching/URL_Locator.cpp
index e7f6fb6c05b..b83d7e2716f 100644
--- a/ACE/apps/JAWS/clients/Caching/URL_Locator.cpp
+++ b/ACE/apps/JAWS/clients/Caching/URL_Locator.cpp
@@ -5,8 +5,6 @@
#include "URL_Locator.h"
-ACE_RCSID(Caching, URL_Locator, "$Id$")
-
const char * const
ACE_URL_Locator::opname[] =
// Human readable operation name
diff --git a/ACE/apps/JAWS/clients/Caching/URL_Locator.h b/ACE/apps/JAWS/clients/Caching/URL_Locator.h
index 751de52cfe5..a78155f9dae 100644
--- a/ACE/apps/JAWS/clients/Caching/URL_Locator.h
+++ b/ACE/apps/JAWS/clients/Caching/URL_Locator.h
@@ -1,36 +1,35 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL_Locator.h
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang
+ */
+//=============================================================================
+
#ifndef ACE_URL_LOCATOR_H
#define ACE_URL_LOCATOR_H
#include "URL_Properties.h"
+/**
+ * @class ACE_URL_Locator
+ *
+ * @brief Abstract Base class designates what interfaces a URL_Locator
+ * should provide.
+ *
+ * This class defines the basic URL_Locator APIs.
+ * An URL locator provides services for URL clients to
+ * query specific URL location that has certain properties
+ * and URL providers to export their services and a set of
+ * APIs to maintain their offers.
+ */
class ACE_Svc_Export ACE_URL_Locator
- // = TITLE
- // Abstract Base class designates what interfaces a URL_Locator
- // should provide.
- //
- // = DESCRIPTION
- // This class defines the basic URL_Locator APIs.
- // An URL locator provides services for URL clients to
- // query specific URL location that has certain properties
- // and URL providers to export their services and a set of
- // APIs to maintain their offers.
{
public:
// Request type
@@ -44,8 +43,8 @@ public:
INVALID_OPERATION // LAST
};
+ /// Human Readable operation name.
static const char * const opname[];
- // Human Readable operation name.
// = Specify how to select offers.
enum ACE_Selection_Criteria
@@ -58,8 +57,8 @@ public:
static const char * const selection_name[];
+ /// errno will set to one of these value.
enum ACE_URL_Locator_Error
- // errno will set to one of these value.
{
OK, // Everything is fine.
OFFER_EXIST, // trying to register an offer.
@@ -72,41 +71,43 @@ public:
};
// Possible error code of URL_Locator.
+ /// Human readable error status.
static const char * const err_name[];
- // Human readable error status.
+ /// Default destructor.
virtual ~ACE_URL_Locator (void) = 0;
- // Default destructor.
+ /**
+ * Query the locator for HTTP with designate properties (none, some,
+ * or all). The locator being queried will return a sequence of
+ * offers with <how_many> offers in it. This interface allocates
+ * <offer> so users must deallocate it after use.
+ */
virtual int url_query (const ACE_Selection_Criteria how,
const ACE_URL_Property_Seq *pseq,
const size_t how_many,
size_t &num_query,
ACE_URL_Offer_Seq *offer) = 0;
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
+ /// Export an offer to the locator.
virtual int export_offer (ACE_URL_Offer *offer,
ACE_WString &offer_id) = 0;
- // Export an offer to the locator.
+ /// Withdraw an offer. return 0 if succeed, -1 otherwise.
virtual int withdraw_offer (const ACE_WString &offer_id) = 0;
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
+ /// Query a specific offer.
virtual int describe_offer (const ACE_WString &offer_id,
ACE_URL_Offer *offer) = 0;
- // Query a specific offer.
+ /// Modify a previously registered offer.
virtual int modify_offer (const ACE_WString &offer_id,
const ACE_WString *url = 0,
const ACE_URL_Property_Seq *del = 0,
const ACE_URL_Property_Seq *modify = 0) = 0;
- // Modify a previously registered offer.
+ /// Provide a human readable error status.
virtual const char *error_status (void);
- // Provide a human readable error status.
};
#endif /* ACE_WEB_LOCATOR_H */
diff --git a/ACE/apps/JAWS/clients/Caching/URL_Properties.cpp b/ACE/apps/JAWS/clients/Caching/URL_Properties.cpp
index 71706d12ee1..b356656d2d2 100644
--- a/ACE/apps/JAWS/clients/Caching/URL_Properties.cpp
+++ b/ACE/apps/JAWS/clients/Caching/URL_Properties.cpp
@@ -12,30 +12,28 @@
#include "ace/Auto_Ptr.h"
#include "URL_Array_Helper.h"
-ACE_RCSID(Caching, URL_Properties, "$Id$")
-
size_t
ACE_WString_Helper::encode (void *buf, const ACE_WString &wstr)
{
- ACE_USHORT16 *wptr = (ACE_USHORT16 *) buf;
+ ACE_UINT16 *wptr = (ACE_UINT16 *) buf;
size_t i;
for (i= 0; i <= wstr.length (); i++)
wptr[i] = htons (wstr[i]);
- return i * sizeof (ACE_USHORT16);
+ return i * sizeof (ACE_UINT16);
}
size_t
ACE_WString_Helper::decode (void *buf)
{
- ACE_USHORT16 *wptr = (ACE_USHORT16 *) buf;
+ ACE_UINT16 *wptr = (ACE_UINT16 *) buf;
size_t i;
for (i = 0; wptr[i] != 0; i++)
wptr[i] = ntohs (wptr[i]);
- return (i + 1) * sizeof (ACE_USHORT16);
+ return (i + 1) * sizeof (ACE_UINT16);
}
size_t
@@ -52,11 +50,11 @@ ACE_URL_Property::decode (void *buf)
{
char *cbuf = (char *) buf;
size_t len = ACE_WString_Helper::decode(buf);
- this->name ((ACE_USHORT16 *) cbuf);
+ this->name ((ACE_UINT16 *) cbuf);
cbuf += len;
len += ACE_WString_Helper::decode ((void *) cbuf);
- this->value ((ACE_USHORT16 *) cbuf);
+ this->value ((ACE_UINT16 *) cbuf);
return len;
}
@@ -83,7 +81,7 @@ ACE_URL_Property::dump (void) const
size_t
ACE_URL_Offer::size (void) const
{
- size_t sum = (this->url_.length () + 1) * sizeof (ACE_USHORT16);
+ size_t sum = (this->url_.length () + 1) * sizeof (ACE_UINT16);
sum += ::ace_array_size (this->prop_);
return sum;
}
@@ -109,7 +107,7 @@ ACE_URL_Offer::decode (void *buf)
size_t len = sizeof (ACE_UINT32);
size_t a_size = (size_t) ntohl (*(ACE_UINT32 *) buf);
len += ACE_WString_Helper::decode ((void *) ((char *) buf + len));
- this->url ((ACE_USHORT16 *) ((char *) buf + len));
+ this->url ((ACE_UINT16 *) ((char *) buf + len));
ACE_URL_Property_Seq prop_seq (a_size);
this->url_properties (prop_seq);
diff --git a/ACE/apps/JAWS/clients/Caching/URL_Properties.h b/ACE/apps/JAWS/clients/Caching/URL_Properties.h
index a4f63f36b97..7cf0556ac42 100644
--- a/ACE/apps/JAWS/clients/Caching/URL_Properties.h
+++ b/ACE/apps/JAWS/clients/Caching/URL_Properties.h
@@ -1,19 +1,16 @@
// -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL_Properties.h
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang
+ */
+//=============================================================================
+
#ifndef ACE_URL_PROPERTIES_H
#define ACE_URL_PROPERTIES_H
@@ -26,70 +23,76 @@
#include "ace/Containers.h"
+/**
+ * @class ACE_WString_Helper
+ *
+ * @brief Some helper functions for manipulate ACE_WString.
+ *
+ * These functions simplify encoding/decoding of
+ * ACE_WString objects for network communication.
+ */
class ACE_Svc_Export ACE_WString_Helper
- // = TITLE
- // Some helper functions for manipulate ACE_WString.
- //
- // = DESCRIPTION
- // These functions simplify encoding/decoding of
- // ACE_WString objects for network communication.
{
public:
+ /// Returns the actual size (in bytes) required to contain the
+ /// ACE_WString.
static size_t size (const ACE_WString &wstr);
- // Returns the actual size (in bytes) required to contain the
- // ACE_WString.
+ /// Encode <wstr> into <buf> for network communication.
+ /// Return total octets consumed.
static size_t encode (void *buf, const ACE_WString &wstr);
- // Encode <wstr> into <buf> for network communication.
- // Return total octets consumed.
+ /**
+ * This function doesn't relate to ACE_WString directly.
+ * It converts an ACE_UINT16 string from network
+ * byte order to host byte order. Returns size of the string.
+ */
static size_t decode (void *buf);
- // This function doesn't relate to ACE_WString directly.
- // It converts an ACE_USHORT16 string from network
- // byte order to host byte order. Returns size of the string.
};
+/**
+ * @class ACE_URL_Property
+ *
+ * @brief Defines a property of a URL.
+ *
+ * A property contains a <name> and a <value>.
+ * A URL may contain some properties and we can "locate"
+ * the URL's we are looking for by examming URL for certain
+ * properties that match our need.
+ */
class ACE_Svc_Export ACE_URL_Property
- // = TITLE
- // Defines a property of a URL.
- //
- // = DESCRIPTION
- // A property contains a <name> and a <value>.
- // A URL may contain some properties and we can "locate"
- // the URL's we are looking for by examming URL for certain
- // properties that match our need.
{
public:
+ /// Create a new property.
ACE_URL_Property (const char *name = 0,
const char *value=0);
- // Create a new property.
- ACE_URL_Property (const ACE_USHORT16 *name,
- const ACE_USHORT16 *value);
- // Create a new property using wchar strings. This is mostly used
- // to support DBCS or UNICODE.
+ /// Create a new property using wchar strings. This is mostly used
+ /// to support DBCS or UNICODE.
+ ACE_URL_Property (const ACE_UINT16 *name,
+ const ACE_UINT16 *value);
+ /// Copy constructor.
ACE_URL_Property (const ACE_URL_Property &p);
- // Copy constructor.
+ /// Destructor.
~ACE_URL_Property (void);
- // Destructor.
+ /// Assignment operator.
ACE_URL_Property &operator= (const ACE_URL_Property &rhs);
- // Assignment operator.
+ /// Equals operator.
bool operator== (const ACE_URL_Property &rhs) const;
- // Equals operator.
+ /// Inequality operator.
bool operator!= (const ACE_URL_Property &rhs) const;
- // Inequality operator.
// = Query property name.
ACE_WString &name_rep (void);
const ACE_WString &name (void) const;
// = Set property name.
- void name (const ACE_USHORT16 *n);
+ void name (const ACE_UINT16 *n);
void name (const char *n);
// = Query property value.
@@ -97,62 +100,64 @@ public:
const ACE_WString &value (void) const;
// = Set property value.
- void value (const ACE_USHORT16 *v);
+ void value (const ACE_UINT16 *v);
void value (const char *v);
// = Helper functions for encoding and decoding.
+ /// Returns memory size (in bytes) required to encode this object.
size_t size (void) const;
- // Returns memory size (in bytes) required to encode this object.
+ /// Encodes this object into buf for network transmission.
size_t encode (void *buf) const;
- // Encodes this object into buf for network transmission.
+ /// Decodes buf and modifies this object, you should
+ /// probably create this with default ctor.
size_t decode (void *buf);
- // Decodes buf and modifies this object, you should
- // probably create this with default ctor.
+ /// Dump out this object for debug.
void dump (void) const;
- // Dump out this object for debug.
protected:
+ /// Property name pointer.
ACE_WString name_;
- // Property name pointer.
+ /// Property value.
ACE_WString value_;
- // Property value.
} ;
typedef ACE_Array<ACE_URL_Property> ACE_URL_Property_Seq;
// type of URL_Property collections.
+/**
+ * @class ACE_URL_Offer
+ *
+ * @brief Defines a URL offer.
+ *
+ * A URL offer is defined by a <url> and an
+ * <ACE_URL_Property_Seq>. An offer is stored at server end
+ * thru registering or reported back to querying client from the
+ * sever.
+ */
class ACE_Svc_Export ACE_URL_Offer
- // = TITLE
- // Defines a URL offer.
- //
- // = DESCRIPTION
- // A URL offer is defined by a <url> and an
- // <ACE_URL_Property_Seq>. An offer is stored at server end
- // thru registering or reported back to querying client from the
- // sever.
{
public:
+ /// Create an offer.
ACE_URL_Offer (const size_t size = 1, const char *url = 0);
- // Create an offer.
+ /// Copy ctor.
ACE_URL_Offer (const ACE_URL_Offer &o);
- // Copy ctor.
+ /// Default destructor.
~ACE_URL_Offer (void);
- // Default destructor.
+ /// Assignment operator.
ACE_URL_Offer &operator= (const ACE_URL_Offer &rhs);
- // Assignment operator.
+ /// Equality operator.
bool operator== (const ACE_URL_Offer &rhs) const;
- // Equality operator.
+ /// Inequality operator.
bool operator!= (const ACE_URL_Offer &rhs) const;
- // Inequality operator.
// = Get URL string.
ACE_WString &url_rep (void);
@@ -160,35 +165,35 @@ public:
// = Set URL.
void url (const char *url);
- void url (const ACE_USHORT16 *url);
+ void url (const ACE_UINT16 *url);
+ /// Get properties of this offer.
ACE_URL_Property_Seq &url_properties (void);
- // Get properties of this offer.
+ /// Set properties of this offer. This operation virtually get a
+ /// copy of the passed in prop.
void url_properties (const ACE_URL_Property_Seq &prop);
- // Set properties of this offer. This operation virtually get a
- // copy of the passed in prop.
// = Helper functions for encoding and decoding.
+ /// Returns memory size (in bytes) required to encode this object.
size_t size (void) const;
- // Returns memory size (in bytes) required to encode this object.
+ /// Encodes this object into buf for network transmission.
size_t encode (void *buf) const;
- // Encodes this object into buf for network transmission.
+ /// Decodes buf into current object, you better use
+ /// the default ctor.
size_t decode (void *buf);
- // Decodes buf into current object, you better use
- // the default ctor.
+ /// Dump this object for debug.
void dump (void) const;
- // Dump this object for debug.
protected:
+ /// URL of this offer.
ACE_WString url_;
- // URL of this offer.
+ /// Properties associate with this offer.
ACE_URL_Property_Seq prop_;
- // Properties associate with this offer.
};
typedef ACE_Array<ACE_URL_Offer> ACE_URL_Offer_Seq;
diff --git a/ACE/apps/JAWS/clients/Caching/URL_Properties.inl b/ACE/apps/JAWS/clients/Caching/URL_Properties.inl
index c32484dbb5c..c8fdd65ac25 100644
--- a/ACE/apps/JAWS/clients/Caching/URL_Properties.inl
+++ b/ACE/apps/JAWS/clients/Caching/URL_Properties.inl
@@ -5,7 +5,7 @@
ACE_INLINE size_t
ACE_WString_Helper::size (const ACE_WString &wstr)
{
- return (wstr.length () + 1) * sizeof (ACE_USHORT16);
+ return (wstr.length () + 1) * sizeof (ACE_UINT16);
}
ACE_INLINE
@@ -16,8 +16,8 @@ ACE_URL_Property::ACE_URL_Property (const char *name, const char *value)
}
ACE_INLINE
-ACE_URL_Property::ACE_URL_Property (const ACE_USHORT16 *name,
- const ACE_USHORT16 *value)
+ACE_URL_Property::ACE_URL_Property (const ACE_UINT16 *name,
+ const ACE_UINT16 *value)
: name_ (name),
value_ (value)
{
@@ -81,7 +81,7 @@ ACE_URL_Property::name (const char *n)
}
ACE_INLINE void
-ACE_URL_Property::name (const ACE_USHORT16 *n)
+ACE_URL_Property::name (const ACE_UINT16 *n)
{
this->name_ = ACE_WString (n);
}
@@ -105,7 +105,7 @@ ACE_URL_Property::value (const char *v)
}
ACE_INLINE void
-ACE_URL_Property::value (const ACE_USHORT16 *v)
+ACE_URL_Property::value (const ACE_UINT16 *v)
{
this->value_ = ACE_WString (v);
}
@@ -116,7 +116,7 @@ ACE_URL_Property::size (void) const
{
size_t len = 2;
len += this->name_.length () + this->value_.length ();
- return len * sizeof (ACE_USHORT16);
+ return len * sizeof (ACE_UINT16);
}
ACE_INLINE
@@ -179,7 +179,7 @@ ACE_URL_Offer::url (void) const
}
ACE_INLINE void
-ACE_URL_Offer::url (const ACE_USHORT16 *url)
+ACE_URL_Offer::url (const ACE_UINT16 *url)
{
this->url_ = ACE_WString (url);
}
diff --git a/ACE/apps/JAWS/clients/Caching/http_client.cpp b/ACE/apps/JAWS/clients/Caching/http_client.cpp
index 4fc1dcd1703..fe3ad94814e 100644
--- a/ACE/apps/JAWS/clients/Caching/http_client.cpp
+++ b/ACE/apps/JAWS/clients/Caching/http_client.cpp
@@ -1,29 +1,24 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_client.cpp
-//
-// = DESCRIPTION
-// This is a very simple client. It accepts URLs from a prompt, and
-// will try to fetch them. Also accepts shell escapes.
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file http_client.cpp
+ *
+ * $Id$
+ *
+ * This is a very simple client. It accepts URLs from a prompt, and
+ * will try to fetch them. Also accepts shell escapes.
+ *
+ *
+ * @author James Hu
+ */
+//=============================================================================
+
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_ctype.h"
#include "http_handler.h"
-ACE_RCSID(Caching, http_client, "$Id$")
-
int
ACE_TMAIN (int, ACE_TCHAR *[])
{
diff --git a/ACE/apps/JAWS/clients/Caching/http_handler.cpp b/ACE/apps/JAWS/clients/Caching/http_handler.cpp
index 7f0ca9076c6..99affb4ba76 100644
--- a/ACE/apps/JAWS/clients/Caching/http_handler.cpp
+++ b/ACE/apps/JAWS/clients/Caching/http_handler.cpp
@@ -1,25 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_handler.cpp
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file http_handler.cpp
+ *
+ * $Id$
+ *
+ * @author James Hu
+ */
+//=============================================================================
+
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
#include "ace/Filecache.h"
#include "http_handler.h"
-ACE_RCSID(Caching, http_handler, "$Id$")
-
HTTP_Handler::HTTP_Handler (void)
{
}
diff --git a/ACE/apps/JAWS/clients/Caching/http_handler.h b/ACE/apps/JAWS/clients/Caching/http_handler.h
index db4c68aa200..95b7471e527 100644
--- a/ACE/apps/JAWS/clients/Caching/http_handler.h
+++ b/ACE/apps/JAWS/clients/Caching/http_handler.h
@@ -1,19 +1,15 @@
/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file.
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_handler.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file http_handler.h
+ *
+ * $Id$
+ *
+ * @author James Hu
+ */
+//=============================================================================
+
#include "ace/SOCK_Connector.h"
@@ -24,28 +20,30 @@
#include "ace/Connector.h"
#include "ace/Svc_Handler.h"
+/**
+ * @class HTTP_Handler
+ *
+ * @brief A simple HTTP protocol handler for clients.
+ *
+ * Checks to see if the requested file is already cached. If
+ * so, it says so. If not, the request is issued to the
+ * connection. The fetched file is cached.
+ */
class HTTP_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- // = TITLE
- // A simple HTTP protocol handler for clients.
- //
- // = DESCRIPTION
- // Checks to see if the requested file is already cached. If
- // so, it says so. If not, the request is issued to the
- // connection. The fetched file is cached.
{
public:
// = Initialization methods.
HTTP_Handler (void);
HTTP_Handler (const char * path);
+ /// Open hook.
virtual int open (void *);
- // Open hook.
+ /// Entry points defined by the abstract Svc_Handler.
virtual int svc (void);
- // Entry points defined by the abstract Svc_Handler.
+ /// Accessor to the file being fetched.
const char *filename (void) const;
- // Accessor to the file being fetched.
private:
char request_[BUFSIZ];
@@ -55,27 +53,29 @@ private:
size_t response_size_;
};
+/**
+ * @class HTTP_Connector
+ *
+ * @brief A simple HTTP connector.
+ *
+ * Creates an HTTP Handler based on the URL, and then delegates
+ * to to the SOCK_CONNECTOR. Adapter pattern.
+ */
class HTTP_Connector
- // = TITLE
- // A simple HTTP connector.
- //
- // = DESCRIPTION
- // Creates an HTTP Handler based on the URL, and then delegates
- // to to the SOCK_CONNECTOR. Adapter pattern.
{
public:
+ /// User entry point into the HTTP connector.
int connect (const char * url);
- // User entry point into the HTTP connector.
private:
+ /// Helper function.
int parseurl (const char *url,
char *host,
u_short *port,
char *path);
- // Helper function.
private:
+ /// Factory that actively establishes a connection with an HTTP
+ /// server.
ACE_Connector<HTTP_Handler, ACE_SOCK_CONNECTOR> connector_;
- // Factory that actively establishes a connection with an HTTP
- // server.
};
diff --git a/ACE/apps/JAWS/clients/Caching/test_URL.cpp b/ACE/apps/JAWS/clients/Caching/test_URL.cpp
index 1a91ba8c64a..69fe8b1f678 100644
--- a/ACE/apps/JAWS/clients/Caching/test_URL.cpp
+++ b/ACE/apps/JAWS/clients/Caching/test_URL.cpp
@@ -2,13 +2,8 @@
#include "Locator_Request_Reply.h"
-ACE_RCSID(Caching, test_URL, "$Id$")
-
-int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+int ACE_TMAIN (int , ACE_TCHAR *[])
{
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
ACE_URL_Locator_Request original, derived;
ACE_URL_Property_Seq ouch1(3);
diff --git a/ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl b/ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl
index 9e52c1dec97..098f07f48d3 100755
--- a/ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl
+++ b/ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl
@@ -35,7 +35,7 @@ sub html_begin {
<IMG SRC="$wd/doc/webstone.gif" ALT="WebStone" BORDER=0 ></A>
<H1>World Wide Web Server Benchmarking</H1>
<DL>
-<DT><EM>If you have any questions, please read the
+<DT><EM>If you have any questions, please read the
<A HREF="$wd/doc/FAQ-webstone.html">WebStone FAQ</A>.</EM>
<HR>
EOF
diff --git a/ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl b/ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl
index f47ac6a8f06..5588f6cdd1f 100755
--- a/ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl
+++ b/ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl
@@ -58,7 +58,7 @@ sub gettestbed {
}
else {
( $textvalue, $thevalue ) = split( '=', $_ );
- ( $thevalue ) = split( '#', $thevalue);
+ ( $thevalue ) = split( '#', $thevalue);
$testbed{$textvalue} = $thevalue;
push(@keylist, $textvalue);
}
diff --git a/ACE/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl b/ACE/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl
index af2c470fb0c..c1bdb727fba 100755
--- a/ACE/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl
+++ b/ACE/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl
@@ -12,10 +12,10 @@
#
# 1. For each line in the input
# a. parse the URL and the time, the outcome code, and the size
-# b. if the code is 200, and it's a GET,
+# b. if the code is 200, and it's a GET,
# do we already know about this URL?
# i. yes - increment its counter
-# ii. no - create a slot for it, record size,
+# ii. no - create a slot for it, record size,
# and set counter=1
#
@@ -28,7 +28,7 @@ while (<>) {
$line_number++;
($line_number % 1000) || printf STDERR ".";
# parse line
- ( $client, $junk1, $junk2, $date, $timezone,
+ ( $client, $junk1, $junk2, $date, $timezone,
$command, $url, $version, $result_code, $size ) =
split;
# strip some junk
@@ -81,7 +81,7 @@ foreach $key (@sorted_keys) {
# end main
-sub
+sub
by_counter {
$counter{$b} <=> $counter{$a};
}
diff --git a/ACE/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl b/ACE/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl
index cb0c7224c09..9f5515baa55 100755
--- a/ACE/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl
+++ b/ACE/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl
@@ -99,7 +99,7 @@ sub start_html_server {
sub process_html_request {
local($request, $command, $script, $magic, $url, $peer);
local(%args);
-
+
#
# Parse the command and URL. Update the default file prefix.
#
@@ -109,12 +109,12 @@ sub process_html_request {
if ($command eq "" || $command eq "QUIT") {
return;
}
-
+
#($junk, $script) = split(/\//, $url, 2);
#($script, $html_script_args) = split(',', $script, 2);
#($HTML_CWD = "file:$script") =~ s/\/[^\/]*$//;
$script = $url;
-
+
while (<CLIENT>) {
last if (/^\s+$/);
}
@@ -130,7 +130,7 @@ sub process_html_request {
get_file($script);
}
} elsif ($command eq "POST") {
-
+
print $request if $debug;
flush;
#
@@ -148,20 +148,20 @@ sub process_html_request {
$html_post_attributes .= (/%([0-9][0-9A-Z])/) ?
pack('c',hex($1)) : $_;
}
- %args = ('_junk_', split(/\n([^=]+)=/, $html_post_attributes));
+ %args = ('_junk_', split(/\n([^=]+)=/, $html_post_attributes));
delete $args{'_junk_'};
for (keys %args) {
print "\$$_ = $args{$_}\n" if $debug;
${$_} = $args{$_};
}
perl_html_script($script);
- } else {
+ } else {
&bad_html_form($script);
}
} else {
&bad_html_command($request);
}
-}
+}
#
@@ -169,7 +169,7 @@ sub process_html_request {
#
sub bad_html_command {
local($request) = @_;
-
+
print CLIENT <<EOF
<HTML>
<HEAD>
@@ -184,13 +184,13 @@ The command <TT>$request<TT> was not recognized.
EOF
;
}
-
+
#
# Execute PERL script
#
sub perl_html_script {
local($script) = @_;
-
+
if (! -e $script) {
print CLIENT <<EOF
<HTML>
@@ -229,7 +229,7 @@ EOF
#
sub bad_html_form {
local($script) = @_;
-
+
print CLIENT <<EOF
<HTML>
<HEAD>
@@ -238,14 +238,14 @@ sub bad_html_form {
</HEAD>
<BODY>
<H1>No attribute list</H1>
-
+
No attribute list was found.
</BODY>
</HTML>
EOF
;
}
-
+
#
# Give them something to read while the server is initializing.
#
@@ -286,7 +286,7 @@ EOF
open(FILE, $file);
while (<FILE>) {
print CLIENT $_;
- }
+ }
close(FILE);
print CLIENT <<EOF
diff --git a/ACE/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl b/ACE/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl
index f16d626f2ad..c6fc280b023 100755
--- a/ACE/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl
+++ b/ACE/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl
@@ -28,12 +28,12 @@ html_end();
# end main
sub write_data {
- rename("$wd/conf/testbed", "$wd/conf/testbed.bak") ||
+ rename("$wd/conf/testbed", "$wd/conf/testbed.bak") ||
die "rename testbed: $!\n";
open(TESTBED, ">>$wd/conf/testbed") || die "open testbed: $!\n";
-
+
print CLIENT "<PRE>";
-
+
foreach $key (@keylist) {
$$key =~ s/\+/ /g;
$newvalue = "$key=\"$$key\"\n";
diff --git a/ACE/apps/JAWS/clients/WebSTONE/bin/wscollect.pl b/ACE/apps/JAWS/clients/WebSTONE/bin/wscollect.pl
index 13511bdbb53..27ef003655f 100755
--- a/ACE/apps/JAWS/clients/WebSTONE/bin/wscollect.pl
+++ b/ACE/apps/JAWS/clients/WebSTONE/bin/wscollect.pl
@@ -15,7 +15,7 @@ require "find.pl";
# the list @runs contains the timestamps for the runs which are found
# during the traversal of the runs directory. This list is used for
# indices into the associative arrays for storing run information.
-#
+#
# $numclients{ $time } - number of clients for the run
# $connrate{ $time } - connection rate average
# $littlesload{ $time } - little's load factor
@@ -83,7 +83,7 @@ sub wanted {
(( $connrate{ $runtime }) = $data =~ /([\d\.]+)/, next);
$tag =~ /Server thruput/ &&
(( $throughput{ $runtime }) = $data =~ /([\d\.]+)/, next);
- $tag =~ /Little's Load/ &&
+ $tag =~ /Little's Load/ &&
(( $littlesload{ $runtime}) = $data =~ /([\d\.]+)/, next); # '
$tag =~ /Average response time/ &&
(( $latency{ $runtime } ) = $data =~ /([\d\.]+)/, next);
@@ -97,7 +97,7 @@ sub wanted {
sub printdata {
- local ($timestamp, $num_clients, $conn_rate,
+ local ($timestamp, $num_clients, $conn_rate,
$load, $latency, $error, $tput) = @_;
format STDOUT =
@<<<<<<<<<<< @###### @######.## @####.## @###.#### @####.#### @######.##
@@ -106,7 +106,7 @@ $timestamp, $num_clients, $conn_rate, $load, $latency, $error, $tput
if (!$printedTitles) {
$printedTitles = 1;
- ($ttimestamp, $tnum_clients, $tconn_rate,
+ ($ttimestamp, $tnum_clients, $tconn_rate,
$tload, $tlatency, $terror, $ttput) = @title;
format STDOUT_TOP =
^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
@@ -119,7 +119,7 @@ $ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-----------------------------------------------------------------------------
+----------------------------------------------------------------------------
.
# write STDOUT_TOP;
} # end if printedTitles
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/errexit.c b/ACE/apps/JAWS/clients/WebSTONE/src/errexit.c
index 51cccc14805..bdb61dfd4b0 100644
--- a/ACE/apps/JAWS/clients/WebSTONE/src/errexit.c
+++ b/ACE/apps/JAWS/clients/WebSTONE/src/errexit.c
@@ -84,7 +84,7 @@ va_list args;
va_start(args, format);
VPRINTF(debugfile, format, args);
va_end(args);
-
+
fflush(debugfile);
return 0;
}
@@ -101,6 +101,6 @@ static char buf[200];
sprintf(buf, "errno = %d: %s", errno, strerror(errno));
errno = 0;
#endif /* WIN32 */
-
+
return buf;
}
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/genrand.c b/ACE/apps/JAWS/clients/WebSTONE/src/genrand.c
index e6100fc1d0b..2c4858bd642 100644
--- a/ACE/apps/JAWS/clients/WebSTONE/src/genrand.c
+++ b/ACE/apps/JAWS/clients/WebSTONE/src/genrand.c
@@ -31,13 +31,13 @@ main(const int argc, char* argv[])
int size;
char *cp;
- if (argc != 3)
+ if (argc != 3)
{
printf("usage: %s file_size_in_bytes[K|M] name\n", argv[0]);
exit(2);
}
- if ((file = fopen(argv[2], "w")) == 0)
+ if ((file = fopen(argv[2], "w")) == 0)
{
perror("fopen");
exit(1);
@@ -45,9 +45,9 @@ main(const int argc, char* argv[])
size = atoi(argv[1]);
- for (cp = argv[1]; *cp; cp++)
+ for (cp = argv[1]; *cp; cp++)
{
- switch(*cp)
+ switch(*cp)
{
case 'k':
case 'K':
@@ -60,7 +60,7 @@ main(const int argc, char* argv[])
}
}
- for (i = 0; i < size; i++)
+ for (i = 0; i < size; i++)
{
my_random = ((RANDOM() % 94) + 33);
fputc((char)my_random, file);
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/gettimeofday.c b/ACE/apps/JAWS/clients/WebSTONE/src/gettimeofday.c
index 1537d7654bd..77ec176169a 100644
--- a/ACE/apps/JAWS/clients/WebSTONE/src/gettimeofday.c
+++ b/ACE/apps/JAWS/clients/WebSTONE/src/gettimeofday.c
@@ -3,11 +3,11 @@
/*
* This file defines functions that are required for unix compatibility.
*
- * These functions are not available in the Microsoft C/C++ Run Time
+ * These functions are not available in the Microsoft C/C++ Run Time
* and the Win32 API.
*
* The following functions list may not be complete
- *
+ *
* FUNCTIONS:
* SHARED _gettimeofday
*
@@ -34,7 +34,7 @@ int gettimeofday(curTimeP)
{
struct _timeb localTime;
- if (curTimeP == (struct timeval *) 0)
+ if (curTimeP == (struct timeval *) 0)
{
errno = EFAULT;
return (-1);
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h
index 887f96ae81e..78610556800 100644
--- a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h
+++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h
@@ -24,7 +24,7 @@
* o ? matches one character
* o \ will escape a special character
* o $ matches the end of the string
- * o [abc] matches one occurence of a, b, or c. The only character that needs
+ * o [abc] matches one occurrence of a, b, or c. The only character that needs
* to be escaped in this is ], all others are not special.
* o [a-z] matches any character between a and z
* o [^az] matches any character except a or z
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/parse_file_list.c b/ACE/apps/JAWS/clients/WebSTONE/src/parse_file_list.c
index c11f5f37733..a963ebab87a 100644
--- a/ACE/apps/JAWS/clients/WebSTONE/src/parse_file_list.c
+++ b/ACE/apps/JAWS/clients/WebSTONE/src/parse_file_list.c
@@ -157,7 +157,7 @@ parse_file_list (const char *url_list_file, page_list_t *page_list,
loadnum = 0;
if (textvalue != 0)
- {
+ {
/* is there more? */
/* check for weighting factor */
D_PRINTF( "Setting page values from: %s\n", textvalue );
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/rexec.c b/ACE/apps/JAWS/clients/WebSTONE/src/rexec.c
index 7ec95e51e8b..38aa2c69d01 100644
--- a/ACE/apps/JAWS/clients/WebSTONE/src/rexec.c
+++ b/ACE/apps/JAWS/clients/WebSTONE/src/rexec.c
@@ -147,9 +147,9 @@ static void MyOpenService(const char *remote_host)
returnerr("Invalid IP address %s\n", remote_host);
return;
}
-
+
server_addr.sin_addr.S_un.S_addr = addr;
- }
+ }
else {
struct hostent *hent;
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/webmaster.c b/ACE/apps/JAWS/clients/WebSTONE/src/webmaster.c
index 3acc9e28b16..6a3cfae2091 100644
--- a/ACE/apps/JAWS/clients/WebSTONE/src/webmaster.c
+++ b/ACE/apps/JAWS/clients/WebSTONE/src/webmaster.c
@@ -35,7 +35,7 @@
#include <netinet/in.h>
#include <netdb.h>
#else
-#define FD_SETSIZE 1024 /* max size for select() - keep before <winsock.h>
+#define FD_SETSIZE 1024 /* max size for select() - keep before <winsock.h>
* and same size as MAXCLIENTS */
#include <windows.h>
#include <winsock.h>
@@ -78,7 +78,7 @@ int num_rexecs = 0;
SOCKET socknum[MAXCLIENTS];
SOCKET sockIO[MAXTOTALPROCS];
SOCKET sockErr[MAXTOTALPROCS];
-THREAD FILE *debugfile = stderr;
+THREAD FILE *debugfile = stderr;
struct hostent *master_phe; /* IP addresses for webmaster */
struct timeval sumedh_start, sumedh_end;
@@ -120,16 +120,16 @@ passivesock(const NETPORT portnum, const char *protocol, const int qlen)
D_PRINTF( "Beginning passivesock with errno %d\n",errno );
- D_PRINTF( "Zeroing address structure\n" );
+ D_PRINTF( "Zeroing address structure\n" );
memset((char *)&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
-
+
/* NOT USED: Map service name to portnumber */
D_PRINTF( "Mapping portnum errno %d\n",errno );
sin.sin_port = htons(portnum);
-
+
/* Map protocol name to number */
D_PRINTF( "Mapping protocol name errno %d\n",errno );
if ((ppe = getprotobyname(protocol)) == 0)
@@ -174,11 +174,11 @@ passivesock(const NETPORT portnum, const char *protocol, const int qlen)
{
errexit("Can't listen on port %s: %s\n", portnum, neterrstr());
}
- D_PRINTF( "Listen succeeded\n" );
+ D_PRINTF( "Listen succeeded\n" );
/* all done, return socket descriptor */
return(s);
-}
+}
/* abort clients -- called by SIGINT handler */
@@ -239,7 +239,7 @@ void echo_client(void *stream)
return;
if (rv < 0)
errexit("Error in echo_client(): select() returns %d: %s\n", rv, neterrstr());
-
+
/* loop over the sockets that are ready with data */
for (i = 0; i < num_rexecs; i++) {
if (sockarr[i] != BADSOCKET_VALUE && FD_ISSET(sockarr[i], &readfds)) {
@@ -253,7 +253,7 @@ void echo_client(void *stream)
fprintf(stderr, "Error in echo_client() after NETREAD(): %s\n", neterrstr());
continue;
}
-
+
/* copy to stdout or stderr */
fwrite(buf, sizeof(char), len, outfile);
}
@@ -266,8 +266,8 @@ void echo_client(void *stream)
static int
echo_client(char *hostname, const int fd)
{
- /*
- * WRITE TEXT FROM FILE DESCRIPTOR INTO STDOUT
+ /*
+ * WRITE TEXT FROM FILE DESCRIPTOR INTO STDOUT
*/
char buf[BUFSIZ];
int cc;
@@ -309,7 +309,7 @@ int i;
}
for (i = 0; master_phe->h_addr_list[i] != 0; i++) {
- if ((*(int *)(master_phe->h_addr_list[i]) & netmask) ==
+ if ((*(int *)(master_phe->h_addr_list[i]) & netmask) ==
(client_addr & netmask))
goto gotit;
}
@@ -332,7 +332,7 @@ int currarg;
extern char *optarg;
extern int optind;
- /*
+ /*
* PARSE THE COMMAND LINE OPTIONS
*/
while((getoptch = getopt(argc,argv,"P:f:t:l:p:u:R:w:n:M:adrsvWX")) != (const char)EOF)
@@ -344,9 +344,9 @@ extern int optind;
break;
case 'P':
haveproxyserver = 1;
- strcpy(proxyserver, optarg);
+ strcpy(proxyserver, optarg);
break;
- case 'R':
+ case 'R':
record_all_transactions = 1;
break;
case 'X':
@@ -403,7 +403,7 @@ extern int optind;
/*
* THE SERVERS NAME MUST BE SPECIFIED
*/
-
+
fprintf(stderr,"No WWW Server specified\n");
usage(argv[0]);
}
@@ -422,7 +422,7 @@ extern int optind;
fprintf(stderr, "Invalid network mask (-M %s)\n", network_mask_str);
usage(argv[0]);
}
-
+
if(strlen(configfile) == 0)
{
/*
@@ -491,12 +491,12 @@ struct sockaddr_in *serveraddr;
D_PRINTF( "calling getsockname\n" );
- len = sizeof(struct sockaddr);
+ len = sizeof(struct sockaddr);
if(getsockname(sock, (struct sockaddr *)serveraddr, &len) < 0)
{
errexit("Could not get socket informaton\n");
}
-
+
return( sock );
}
@@ -523,21 +523,21 @@ char *commandline;
errexit("Could not retrieve local host name");
} else {
/* convert hostname to address (to avoid DNS problems for webclients) */
- /* The following lines are add to copy the system
+ /* The following lines are add to copy the system
buffer (output of gethostbyname()) into user area.
This is because, there are very good chances that later
on system buffer might be overwritten by some calls and
still if your pointer is pointing to same addr. nothing
- but only trouble and trouble! Infact this is what
+ but only trouble and trouble! Infact this is what
happening when I tried to run webstone benchmark for more
then one clients. It used to over write the webmaster name
with the first client name and so remaining on client(s)
the webclient process(es) were invoked with wrong webmaster
- name! This behaviour is observed Solaris 2.4 this bug
+ name! This behaviour is observed Solaris 2.4 this bug
can be hit in any OS. - Rajesh Shah 5/18/96 */
-
+
/* master_phe = gethostbyname(hostname); */
- master_phe_tmp = gethostbyname(hostname);
+ master_phe_tmp = gethostbyname(hostname);
master_phe = (struct hostent *)malloc(sizeof(struct hostent));
HostEntCpy(master_phe, master_phe_tmp);
}
@@ -551,7 +551,7 @@ char *commandline;
+ 1);
strcpy(webclient_path, temp);
strcat(webclient_path, "/webclient");
-
+
} else
#else
temp = temp;
@@ -610,7 +610,7 @@ char *commandline;
*/
sprintf(tmpcommandline,"%s -n %%d -w %%s -c %%s:%%d", commandline);
strcpy(commandline,tmpcommandline);
-
+
if (uil_filelist_f == 0)
{
cnt = 0;
@@ -659,13 +659,13 @@ struct sockaddr_in *serveraddr;
{
errexit("Could not open config file %s\n", configfile);
}
-
+
if ((inetport = getservbyname("exec","tcp")) == 0)
{
errexit("Could not get service name for exec/tcp\n");
}
D_PRINTF( "getservbyname returned %d\n", ntohs(inetport->s_port) );
-
+
cnt = 0;
D_PRINTF( "rexec loop\n" );
@@ -699,7 +699,7 @@ struct sockaddr_in *serveraddr;
primename = pick_webmaster_IP_address(clienthostname[cnt], master_phe, network_mask);
if (primename == 0) {
- errexit("Bad client address %s for Client %d\n", clienthostname[cnt], cnt);
+ errexit("Bad client address %s for Client %d\n", clienthostname[cnt], cnt);
}
fprintf(stdout,"Client %d: %s \t# Processes: %d\n Webserver: %s\tWebmaster: %s:%d\n",
@@ -725,7 +725,7 @@ struct sockaddr_in *serveraddr;
clienthostname[cnt],tmpcommandline);
}
}
-
+
returnval = NETREAD(tmpfd, buffer, OKSTRLEN);
D_PRINTF( "read returns %d, %s\n", returnval, buffer );
@@ -757,15 +757,15 @@ struct sockaddr_in *serveraddr;
* THE OTHER PROCESS CONTINUES WITH THE PROGRAM
*/
D_PRINTF( "Forking webclient stderr/stdout processes\n" );
- switch (fork())
- {
+ switch (fork())
+ {
case -1: /* ERROR */
errexit("fork: %s\n", strerror(errno));
case 0: /* CHILD */
- exit(echo_client(clienthostname[cnt], tmpfd));
+ exit(echo_client(clienthostname[cnt], tmpfd));
default: /* PARENT */
break;
- }
+ }
#else
/* start threads to echo stdout/stderr from clients */
_beginthread(echo_client, 0, (void *)0);
@@ -832,7 +832,7 @@ int sock;
/*
* SET THE FD IN THE MASK
*/
- FD_SET(socknum[cnt],fdset);
+ FD_SET(socknum[cnt],fdset);
}
D_PRINTF( "on socket %d\n",socknum[cnt] );
}
@@ -877,7 +877,7 @@ int sock;
if(!BADSOCKET(socknum[cnt]) && (FD_ISSET(socknum[cnt],&tmpfdset)))
{
/*
- * GET THE READY FROM THIS GUY.
+ * GET THE READY FROM THIS GUY.
* DON'T FORGET TO CLEAR HIS BIT IN THE tmpfdset
*/
len = NETREAD(socknum[cnt],buffer,READYSTRLEN);
@@ -898,7 +898,7 @@ int sock;
}
sleep(1);
fprintf(stdout,"All READYs received\n");
- fflush(stdout);
+ fflush(stdout);
}
/*
@@ -918,7 +918,7 @@ int *socknum;
if(socknum[cnt] > 0)
{
/*
- * SEND A GO
+ * SEND A GO
*/
if(NETWRITE(socknum[cnt], GOSTR, GOSTRLEN) != GOSTRLEN)
{
@@ -948,28 +948,28 @@ stats_t statarray[MAXCLIENTS];
int returnval;
int cnt,i;
-
+
/* DOESN'T ACTUALLY PRINT UNTIL THE FIRST CLIENT REPORTS */
fprintf(stdout,"Reading results ");
-
- /*
+
+ /*
* COPY THE FILE DESCRIPTORS TO A TMP LIST,
* ALLOCATE MEMORY FOR STATS, PAGESTATS IN TEXT FORM
*/
leftfdset = *fdset;
stats_as_text = (char *)mymalloc(SIZEOF_STATSTEXT+1);
page_stats_as_text = (char *)mymalloc(SIZEOF_PAGESTATSTEXT+1);
-
- /*
+
+ /*
* COPY THE FILE DESCRIPTORS TO A TMP LIST,
* PLUS A LIST OF REMAINING FDs
*/
leftfdset = *fdset;
- /*
+ /*
* LOOP UNTIL ALL CLIENTS HAVE REPORTED
* AND tmpfdset IS EMPTY
*/
-#ifndef WIN32
+#ifndef WIN32
while(memcmp(&leftfdset,&zerofdset,sizeof(fd_set)))
{
tmpfdset = leftfdset;
@@ -995,7 +995,7 @@ stats_t statarray[MAXCLIENTS];
{
/*
* SEE WHICH SOCKETS HAVE A INPUT ON THEM PENDING AND
- * RECEIVE IT.
+ * RECEIVE IT.
*/
/* IS THIS A VALID SOCKET? IS IT READY TO READ? */
@@ -1007,9 +1007,9 @@ stats_t statarray[MAXCLIENTS];
* GET THE TIMING DATA FROM THIS GUY
* THEN REMOVE HIM FROM THE tmpfdset
*/
- /*
+ /*
* READ TIME STATS
- * DOES READ() RETURN THE CORRECT LENGTH?
+ * DOES READ() RETURN THE CORRECT LENGTH?
*/
D_PRINTF( "About to read timestats, count %d, errno %d\n",
cnt, errno );
@@ -1024,9 +1024,9 @@ stats_t statarray[MAXCLIENTS];
fprintf(stderr, "Error reading timing stats: %s\nSocket number %d\n",
neterrstr(),socknum[cnt]);
abort_clients();
- errexit("");
+ errexit("");
} /* end if */
-
+
/* convert text to stats */
stats_as_text[returnval] = 0; /* add an end marker */
statarray[cnt] = *text_to_stats(stats_as_text);
@@ -1036,32 +1036,32 @@ stats_t statarray[MAXCLIENTS];
if(uil_filelist_f) /* READ PAGE STATS */
{
- for (i = 0; i < number_of_pages; i++)
+ for (i = 0; i < number_of_pages; i++)
{
D_PRINTF( "On page_stats[%d][%d]\n", cnt, i );
returnval = recvdata(socknum[cnt], page_stats_as_text,
SIZEOF_PAGESTATSTEXT);
D_PRINTF( "Read page stats %d\n", returnval );
-
+
if (returnval != SIZEOF_PAGESTATSTEXT) /* <= 0) */
{
D_PRINTF( "Error reading page_stats[%d][%d]: %s\n",
cnt, i, neterrstr() );
fprintf(stderr, "Error reading page_stats[%d][%d]: %s\n",
- cnt, i, neterrstr());
+ cnt, i, neterrstr());
abort_clients();
errexit("");
}
- D_PRINTF( "Page stats: read %d bytes\n",
+ D_PRINTF( "Page stats: read %d bytes\n",
returnval );
-
+
page_stats_as_text[returnval] = 0; /* add an end marker */
- D_PRINTF("strlen(page_stats_as_text) = %d\n",
+ D_PRINTF("strlen(page_stats_as_text) = %d\n",
strlen(page_stats_as_text));
- page_stats[cnt][i] =
+ page_stats[cnt][i] =
*text_to_page_stats(page_stats_as_text);
-
- } /* end for */
+
+ } /* end for */
} /* end if filelist */
FD_CLR(socknum[cnt],&leftfdset);
@@ -1113,14 +1113,14 @@ page_stats_t *page_stats_total;
{
fprintf(stdout,"----------------------------------\n");
/* fprintf(stdout,"Test for host: %s\n",statarray[cnt].hostname); */
- fprintf(stdout,"Total number of pages retrieved from server: %u\n",
+ fprintf(stdout,"Total number of pages retrieved from server: %u\n",
statarray[cnt].totalpages);
-
+
rqstat_fprint(stdout, &(statarray[cnt].rs));
thruput = thruputpersec((double)(statarray[cnt].rs.totalbytes),
&(statarray[cnt].rs.totalresponsetime));
-
+
fprintf(stdout, "Thruput average per connection: %.0f bytes/sec\n",
thruput);
}
@@ -1162,8 +1162,8 @@ page_stats_t *page_stats_total;
page_stats_total[j].page_valid = 1;
}
}
- }
-
+ }
+
/* print page statistics */
if (verbose) {
for (i = 0; i < number_of_pages; i++)
@@ -1177,12 +1177,12 @@ page_stats_t *page_stats_total;
printf ("===============================================================================\n");
printf ("Page # %d\n\n", i);
printf ("Total number of times page was hit %u\n",
- pst->totalpages);
+ pst->totalpages);
rqstat_print(&(pst->rs));
printf ("Page size %u \n", pst->page_size);
- printf ("===============================================================================\n\n");
+ printf ("===============================================================================\n\n");
}
}
}
@@ -1215,17 +1215,17 @@ page_stats_t *page_stats_total;
fprintf(stdout, "Total number of clients: \t%d\n", totalnumclients);
testtime = sumedh_end.tv_sec - sumedh_start.tv_sec;
fprintf(stdout,"Test time: \t\t\t%d seconds\n", testtime);
-
+
fprintf(stdout, "Server connection rate: \t%3.2f connections/sec\n",
(double)(masterstat.rs.totalconnects)/(testtime));
-
+
fprintf(stdout, "Server error rate: \t\t%4.4f err/sec\n",
(double)(masterstat.rs.totalerrs)/(testtime));
-
+
fprintf(stdout, "Server thruput: \t\t%2.2f Mbit/sec\n",
(double)(8*masterstat.rs.totalbytes)/(testtime*1024*1024));
-
- fprintf(stdout, "Little's Load Factor: \t\t%3.2f \n",
+
+ fprintf(stdout, "Little's Load Factor: \t\t%3.2f \n",
(double)(masterstat.rs.totalresponsetime.tv_sec)
/(testtime));
avgtime(&masterstat.rs.totalresponsetime,
@@ -1241,17 +1241,17 @@ page_stats_t *page_stats_total;
thruput = 8 * thruputpersec((double)(masterstat.rs.totalbytes),
&(masterstat.rs.totalresponsetime));
-
+
fprintf(stdout, "Average client thruput: \t%4.4f Mbit/sec\n",
thruput/(1024*1024));
- fprintf(stdout,"Sum of client response times:\t%u.%u sec\n",
+ fprintf(stdout,"Sum of client response times:\t%u.%u sec\n",
masterstat.rs.totalresponsetime.tv_sec,
masterstat.rs.totalresponsetime.tv_usec);
- fprintf(stdout,"Total number of pages read:\t%u\n\n",
+ fprintf(stdout,"Total number of pages read:\t%u\n\n",
masterstat.totalpages);
-
+
/* Remaining stats are the same as usual */
rqstat_fprint(stdout, &(masterstat.rs));
@@ -1316,8 +1316,8 @@ main(const int argc, char *argv[])
{
socknum[i] = BADSOCKET_VALUE;
statarray[i].rs.totalconnects = 0;
- }
-
+ }
+
signal(SIGINT, sig_int);
ParseCmdLine( argc, argv);
@@ -1329,7 +1329,7 @@ main(const int argc, char *argv[])
totalnumclients = RexecClients( commandline, clienthostname, &serveraddr);
/* Initalization of variables. */
- page_stats =
+ page_stats =
(page_stats_t **)
mymalloc(totalnumclients*sizeof(page_stats_t *));
for (i=0; i < totalnumclients; i++)
@@ -1337,7 +1337,7 @@ main(const int argc, char *argv[])
page_stats[i] = (page_stats_t *)
mymalloc(number_of_pages*sizeof(page_stats_t));
}
- page_stats_total =
+ page_stats_total =
(page_stats_t *)mymalloc(number_of_pages*sizeof(page_stats_t));
for (i=0; i < totalnumclients; i++) {
@@ -1351,15 +1351,15 @@ main(const int argc, char *argv[])
for (i=0; i < number_of_pages; i++) {
page_stats_init(&(page_stats_total[i]));
}
-
+
for(i = 0; i < totalnumclients; i++)
{
socknum[i] = BADSOCKET_VALUE;
statarray[i].rs.totalconnects = 0;
- }
+ }
GetReady( &fdset, totalnumclients, sync_sock );
- NETCLOSE(sync_sock);
+ NETCLOSE(sync_sock);
/*
* START ALL OF THE CLIENTS BY SENDING THEM A GO SIGNAL.
@@ -1408,7 +1408,7 @@ main(const int argc, char *argv[])
void
HostEntCpy(struct hostent *dest, struct hostent *src)
{
-
+
dest->h_name = (char *)malloc(strlen(src->h_name)+1);
strcpy(dest->h_name, src->h_name);
printf("WebMaster name = %s\n", dest->h_name);
diff --git a/ACE/apps/JAWS/server/HTTP_Config.cpp b/ACE/apps/JAWS/server/HTTP_Config.cpp
index 5ba338f655c..a76375a9017 100644
--- a/ACE/apps/JAWS/server/HTTP_Config.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Config.cpp
@@ -5,8 +5,6 @@
#include "ace/OS_NS_stdlib.h"
#include "HTTP_Config.h"
-ACE_RCSID(server, HTTP_Config, "$Id$")
-
// static HTTP_Config_Info config_info;
HTTP_Config_Info *HTTP_Config::instance_ = 0;
diff --git a/ACE/apps/JAWS/server/HTTP_Handler.cpp b/ACE/apps/JAWS/server/HTTP_Handler.cpp
index b87fda02b5c..b7e6a6e76f2 100644
--- a/ACE/apps/JAWS/server/HTTP_Handler.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Handler.cpp
@@ -7,12 +7,10 @@
#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"
-ACE_RCSID(server, HTTP_Handler, "$Id$")
-
HTTP_Handler::HTTP_Handler (JAWS_IO &io,
HTTP_Handler_Factory &factory)
: factory_ (factory),
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_Helpers.cpp b/ACE/apps/JAWS/server/HTTP_Helpers.cpp
index 083199e49b1..2676a934d91 100644
--- a/ACE/apps/JAWS/server/HTTP_Helpers.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Helpers.cpp
@@ -9,8 +9,6 @@
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(server, HTTP_Helpers, "$Id$")
-
// = Static initialization.
const char *const
HTTP_Helper::months_[12]=
@@ -103,7 +101,7 @@ HTTP_Helper::HTTP_mktime (const char *httpdate)
{
#if !defined (ACE_HAS_REENTRANT_LIBC)
- ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> g (HTTP_Helper::mutex_));
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g, HTTP_Helper::mutex_, -1));
#endif /* NOT ACE_HAS_REENTRANT_LIBC */
return ACE_OS::mktime (&tms);
@@ -115,7 +113,7 @@ HTTP_Helper::HTTP_date (void)
{
if (HTTP_Helper::date_string_ == 0)
{
- ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> m (HTTP_Helper::mutex_));
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, m, HTTP_Helper::mutex_, 0));
if (HTTP_Helper::date_string_ == 0)
{
@@ -387,7 +385,7 @@ HTTP_Status_Code::instance (void)
{
if (HTTP_Status_Code::instance_ == 0)
{
- ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> g (lock_));
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g, lock_, 0));
if (HTTP_Status_Code::instance_ == 0)
{
diff --git a/ACE/apps/JAWS/server/HTTP_Request.cpp b/ACE/apps/JAWS/server/HTTP_Request.cpp
index c2d4b7a3134..7b5a69b62d2 100644
--- a/ACE/apps/JAWS/server/HTTP_Request.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Request.cpp
@@ -8,8 +8,6 @@
#include "ace/OS_NS_pwd.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(server, HTTP_Request, "$Id$")
-
const char *const
HTTP_Request::static_header_strings_[HTTP_Request::NUM_HEADER_STRINGS] =
{
@@ -638,8 +636,9 @@ HTTP_Request::path (const char *uri_string)
#if !defined (ACE_WIN32) && !defined (VXWORKS)
char pw_buf[BUFSIZ];
struct passwd pw_struct;
- if (ACE_OS::getpwnam_r (buf, &pw_struct, pw_buf, sizeof (pw_buf))
- == 0)
+ struct passwd *pw_struct_ptr;
+ if (ACE_OS::getpwnam_r (buf, &pw_struct, pw_buf,
+ sizeof (pw_buf), &pw_struct_ptr) == 0)
return 0;
ACE_OS::strcpy (buf, pw_struct.pw_dir);
#endif /* NOT ACE_WIN32 AND NOT VXWORKS */
diff --git a/ACE/apps/JAWS/server/HTTP_Response.cpp b/ACE/apps/JAWS/server/HTTP_Response.cpp
index 2f67a49c873..4860295a86a 100644
--- a/ACE/apps/JAWS/server/HTTP_Response.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Response.cpp
@@ -11,9 +11,7 @@
#include "HTTP_Request.h"
#include "HTTP_Helpers.h"
#include "HTTP_Config.h"
-#include "IO.h"
-
-ACE_RCSID(server, HTTP_Response, "$Id$")
+#include "JAWS_IO.h"
#if defined (ACE_JAWS_BASELINE)
static char * const EMPTY_HEADER = "";
@@ -112,7 +110,7 @@ HTTP_Response::error_response (int status_code, const char *log_message)
;
- char *buf;
+ char *buf = 0;
char buf1[4 * BUFSIZ];
char buf2[BUFSIZ];
@@ -237,46 +235,46 @@ HTTP_Response::cgi_response (void)
cgi_options.command_line ("%s", this->request_.path ());
// Build environment variables
- cgi_options.setenv ("SERVER_SOFTWARE", "%s", "JAWS/1.0");
- cgi_options.setenv ("SERVER_NAME", "%s", "localhost");
- cgi_options.setenv ("GATEWAY_INTERFACE", "%s", "CGI/1.1");
+ cgi_options.setenv (ACE_TEXT ("SERVER_SOFTWARE"), ACE_TEXT ("%s"), ACE_TEXT ("JAWS/1.0"));
+ cgi_options.setenv (ACE_TEXT ("SERVER_NAME"), ACE_TEXT ("%s"), ACE_TEXT ("localhost"));
+ cgi_options.setenv (ACE_TEXT ("GATEWAY_INTERFACE"), ACE_TEXT ("%s"), ACE_TEXT ("CGI/1.1"));
- cgi_options.setenv ("SERVER_PROTOCOL", "%s",
+ cgi_options.setenv (ACE_TEXT ("SERVER_PROTOCOL"), ACE_TEXT ("%s"),
this->request_.version ()
? this->request_.version ()
: "HTTP/0.9");
- cgi_options.setenv ("SERVER_PORT", "%d", 5432);
+ cgi_options.setenv (ACE_TEXT ("SERVER_PORT"), ACE_TEXT ("%d"), 5432);
- cgi_options.setenv ("REQUEST_METHOD", "%s", this->request_.method ());
+ cgi_options.setenv (ACE_TEXT ("REQUEST_METHOD"), ACE_TEXT ("%s"), this->request_.method ());
if (this->request_.path_info ())
{
- cgi_options.setenv ("PATH_INFO", "%s",
+ cgi_options.setenv (ACE_TEXT ("PATH_INFO"), ACE_TEXT ("%s"),
this->request_.path_info ());
- cgi_options.setenv ("PATH_TRANSLATED",
- "%s/%s",
+ cgi_options.setenv (ACE_TEXT ("PATH_TRANSLATED"),
+ ACE_TEXT ("%s/%s"),
HTTP_Config::instance ()->document_root (),
this->request_.path_info ());
}
- cgi_options.setenv ("SCRIPT_NAME",
- "%s",
+ cgi_options.setenv (ACE_TEXT ("SCRIPT_NAME"),
+ ACE_TEXT ("%s"),
this->request_.uri ());
if (this->request_.query_string ())
- cgi_options.setenv ("QUERY_STRING",
- "%s",
+ cgi_options.setenv (ACE_TEXT ("QUERY_STRING"),
+ ACE_TEXT ("%s"),
this->request_.query_string ());
if (this->request_.cgi_env ())
for (size_t i = 0; this->request_.cgi_env ()[i]; i += 2)
- cgi_options.setenv (this->request_.cgi_env ()[i],
- "%s",
- this->request_.cgi_env ()[i+1]);
+ cgi_options.setenv (ACE_TEXT_CHAR_TO_TCHAR (this->request_.cgi_env ()[i]),
+ ACE_TEXT ("%s"),
+ ACE_TEXT_CHAR_TO_TCHAR (this->request_.cgi_env ()[i+1]));
- char buf[BUFSIZ];
- char *p, *q;
- ACE_OS::strcpy (buf, "HTTP_");
+ ACE_TCHAR buf[BUFSIZ];
+ ACE_TCHAR *p = 0, *q = 0;
+ ACE_OS::strcpy (buf, ACE_TEXT ("HTTP_"));
p = q = buf + ACE_OS::strlen (buf);
for (size_t i = 0; i < HTTP_Request::NUM_HEADER_STRINGS; i++)
diff --git a/ACE/apps/JAWS/server/HTTP_Server.cpp b/ACE/apps/JAWS/server/HTTP_Server.cpp
index 77d08f05cc0..f880f0a6a47 100644
--- a/ACE/apps/JAWS/server/HTTP_Server.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Server.cpp
@@ -12,11 +12,9 @@
#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$")
-
// class is overkill
class JAWS
{
@@ -228,7 +226,7 @@ Synch_Thread_Pool_Task::svc (void)
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT("%p\n"),
ACE_TEXT ("HTTP_Acceptor::accept")), -1);
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (HTTP_Handler::MAX_REQUEST_SIZE + 1),
-1);
@@ -334,7 +332,7 @@ Thread_Per_Request_Task::open (void *)
int
Thread_Per_Request_Task::svc (void)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block (HTTP_Handler::MAX_REQUEST_SIZE + 1),
-1);
//Synch_HTTP_Handler_Factory factory;
diff --git a/ACE/apps/JAWS/server/IO.cpp b/ACE/apps/JAWS/server/IO.cpp
deleted file mode 100644
index 394a6a88f2a..00000000000
--- a/ACE/apps/JAWS/server/IO.cpp
+++ /dev/null
@@ -1,563 +0,0 @@
-// $Id$
-
-#include "ace/OS_NS_string.h"
-#include "ace/OS_NS_sys_uio.h"
-#include "ace/OS_NS_sys_socket.h"
-#include "ace/Message_Block.h"
-#include "ace/Min_Max.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Filecache.h"
-#include "IO.h"
-#include "HTTP_Helpers.h"
-
-#include "ace/OS_NS_fcntl.h"
-#include "ace/OS_NS_unistd.h"
-#include "ace/OS_NS_sys_stat.h"
-#include "ace/Auto_Ptr.h"
-#include "ace/Basic_Types.h"
-
-ACE_RCSID (server,
- IO,
- "$Id$")
-
-
-JAWS_IO::JAWS_IO (void)
- : handler_ (0)
-{
-}
-
-JAWS_IO::~JAWS_IO (void)
-{
-}
-
-void
-JAWS_IO::handler (JAWS_IO_Handler *handler)
-{
- this->handler_ = handler;
-}
-
-JAWS_IO_Handler::~JAWS_IO_Handler (void)
-{
-}
-
-JAWS_Synch_IO::JAWS_Synch_IO (void)
- : handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-JAWS_Synch_IO::~JAWS_Synch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-ACE_HANDLE
-JAWS_Synch_IO::handle (void) const
-{
- return this->handle_;
-}
-
-void
-JAWS_Synch_IO::handle (ACE_HANDLE handle)
-{
- this->handle_ = handle;
-}
-
-void
-JAWS_Synch_IO::read (ACE_Message_Block &mb,
- int size)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
- int result = stream.recv (mb.wr_ptr (), size);
-
- if (result <= 0)
- this->handler_->read_error ();
- else
- {
- mb.wr_ptr (result);
- this->handler_->read_complete (mb);
- }
-}
-
-void
-JAWS_Synch_IO::receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length)
-{
- ACE_Filecache_Handle handle (filename, entire_length);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
-
- int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
- ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);
-
- int bytes_to_read = entire_length - bytes_to_memcpy;
-
- int bytes = stream.recv_n ((char *) handle.address () + initial_data_length,
- bytes_to_read);
- if (bytes == bytes_to_read)
- this->handler_->receive_file_complete ();
- else
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- this->handler_->receive_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- ACE_Filecache_Handle handle (filename);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
-#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
-
- if ((stream.send_n (header, header_size) == header_size)
- && (stream.send_n (handle.address (), handle.size ())
- == handle.size ())
- && (stream.send_n (trailer, trailer_size) == trailer_size))
- this->handler_->transmit_file_complete ();
- else
- result = -1;
-#else
- // Attempting to use writev
- // Is this faster?
- iovec iov[3];
- int iovcnt = 0;
- if (header_size > 0)
- {
- iov[iovcnt].iov_base = const_cast<char*> (header);
- iov[iovcnt].iov_len = header_size;
- iovcnt++;
- }
- if (handle.size () > 0)
- {
- iov[iovcnt].iov_base = reinterpret_cast<char*> (handle.address ());
- iov[iovcnt].iov_len = handle.size ();
- iovcnt++;
- }
- if (trailer_size > 0)
- {
- iov[iovcnt].iov_base = const_cast<char*> (trailer);
- iov[iovcnt].iov_len = trailer_size;
- iovcnt++;
- }
- if (ACE_OS::writev (this->handle_, iov, iovcnt) < 0)
- result = -1;
- else
- this->handler_->transmit_file_complete ();
-#endif /* ACE_JAWS_BASELINE */
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- this->handler_->transmit_file_error (result);
-}
-
-void
-JAWS_Synch_IO::send_confirmation_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length);
- this->handler_->confirmation_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_error_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length);
- this->handler_->error_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_message (const char *buffer,
- int length)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
- stream.send_n (buffer, length);
-}
-
-// This only works on Win32
-#if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
-
-JAWS_Asynch_IO::JAWS_Asynch_IO (void)
-{
-}
-
-JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Asynch_IO::read (ACE_Message_Block& mb,
- int size)
-{
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*this, this->handle_) == -1
- || ar.read (mb, size) == -1)
- this->handler_->read_error ();
-}
-
-// This method will be called when an asynchronous read completes on a
-// stream.
-
-void
-JAWS_Asynch_IO::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
-{
- // This callback is for this->receive_file()
- if (result.act () != 0)
- {
- int code = 0;
- if (result.success () && result.bytes_transferred () != 0)
- {
- if (result.message_block ().length () == result.message_block ().size ())
- code = ACE_Filecache_Handle::ACE_SUCCESS;
- else
- {
- ACE_Asynch_Read_Stream ar;
- if (ar.open (*this, this->handle_) == -1
- || ar.read (result.message_block (),
- result.message_block ().size () - result.message_block ().length (),
- result.act ()) == -1)
- code = -1;
- else
- return;
- }
- }
- else
- code = -1;
-
- if (code == ACE_Filecache_Handle::ACE_SUCCESS)
- this->handler_->receive_file_complete ();
- else
- this->handler_->receive_file_error (code);
-
- delete &result.message_block ();
- delete (ACE_Filecache_Handle *) result.act ();
- }
- else
- {
- // This callback is for this->read()
- if (result.success ()
- && result.bytes_transferred () != 0)
- this->handler_->read_complete (result.message_block ());
- else
- this->handler_->read_error ();
- }
-}
-
-void
-JAWS_Asynch_IO::receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length)
-{
- ACE_Message_Block *mb = 0;
- ACE_Filecache_Handle *handle;
-
- ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, ACE_NOMAP));
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_OS::memcpy (handle->address (),
- initial_data,
- initial_data_length);
-
- int bytes_to_read = entire_length - initial_data_length;
-
- ACE_NEW (mb, ACE_Message_Block ((char *)handle->address ()
- + initial_data_length, bytes_to_read));
-
- if (mb == 0)
- {
- errno = ENOMEM;
- result = -1;
- }
- else
- {
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*this, this->handle_) == -1
- || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
- result = -1;
- }
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- {
- this->handler_->receive_file_error (result);
- delete mb;
- delete handle;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
- ACE_Filecache_Handle *handle = new ACE_Filecache_Handle (filename, ACE_NOMAP);
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_Message_Block header_mb (header, header_size);
- ACE_Message_Block trailer_mb (trailer, trailer_size);
-
- header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
- (&header_mb, header_size, &trailer_mb, trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*this, this->handle_) == -1
- || tf.transmit_file (handle->handle (), // file handle
- header_and_trailer, // header and trailer data
- 0, // bytes_to_write
- 0, // offset
- 0, // offset_high
- 0, // bytes_per_send
- 0, // flags
- handle // act
- ) == -1)
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- {
- this->handler_->transmit_file_error (result);
- delete header_and_trailer;
- delete handle;
- }
-}
-
-
-// This method will be called when an asynchronous transmit file completes.
-void
-JAWS_Asynch_IO::handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result)
-{
- if (result.success ())
- this->handler_->transmit_file_complete ();
- else
- this->handler_->transmit_file_error (-1);
-
- delete result.header_and_trailer ();
- delete (ACE_Filecache_Handle *) result.act ();
-}
-
-void
-JAWS_Asynch_IO::send_confirmation_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length, CONFORMATION);
-}
-
-void
-JAWS_Asynch_IO::send_error_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length, ERROR_MESSAGE);
-}
-
-void
-JAWS_Asynch_IO::send_message (const char *buffer,
- int length,
- int act)
-{
- ACE_Message_Block *mb;
- ACE_NEW (mb, ACE_Message_Block (buffer, length));
-
- if (mb == 0)
- {
- this->handler_->error_message_complete ();
- return;
- }
-
- ACE_Asynch_Write_Stream aw;
- if (aw.open (*this, this->handle_) == -1
- || aw.write (*mb, length, (void *) static_cast<intptr_t> (act)) == -1)
- {
- mb->release ();
-
- if (act == CONFORMATION)
- this->handler_->confirmation_message_complete ();
- else
- this->handler_->error_message_complete ();
- }
-}
-
-void
-JAWS_Asynch_IO::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
-{
- result.message_block ().release ();
-
- if (result.act () == (void *) CONFORMATION)
- this->handler_->confirmation_message_complete ();
- else
- this->handler_->error_message_complete ();
-}
-
-#endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
-
-//-------------------Adding SYNCH IO no Caching
-
-JAWS_Synch_IO_No_Cache::JAWS_Synch_IO_No_Cache (void)
- : handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-JAWS_Synch_IO_No_Cache::~JAWS_Synch_IO_No_Cache (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-ACE_HANDLE
-JAWS_Synch_IO_No_Cache::handle (void) const
-{
- return this->handle_;
-}
-
-void
-JAWS_Synch_IO_No_Cache::handle (ACE_HANDLE handle)
-{
- this->handle_ = handle;
-}
-
-void
-JAWS_Synch_IO_No_Cache::read (ACE_Message_Block &mb, int size)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
- int result = stream.recv (mb.wr_ptr (), size);
-
- if (result <= 0)
- this->handler_->read_error ();
- else
- {
- mb.wr_ptr (result);
- this->handler_->read_complete (mb);
- }
-}
-
-void
-JAWS_Synch_IO_No_Cache::receive_file (const char *,
- void *,
- int,
- int)
-{
- //ugly hack to send HTTP_Status_Code::STATUS_FORBIDDEN
- this->handler_->receive_file_error (5);
-}
-
-void
-JAWS_Synch_IO_No_Cache::transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- int result = 0;
-
- // Can we access the file?
- if (ACE_OS::access (filename, R_OK) == -1)
- {
- //ugly hack to send in HTTP_Status_Code::STATUS_NOT_FOUND
- result = ACE_Filecache_Handle::ACE_ACCESS_FAILED;
- this->handler_->transmit_file_error (result);
- return;
- }
-
- ACE_stat stat;
-
- // Can we stat the file?
- if (ACE_OS::stat (filename, &stat) == -1)
- {
- //ugly hack to send HTTP_Status_Code::STATUS_FORBIDDEN
- result = ACE_Filecache_Handle::ACE_STAT_FAILED;
- this->handler_->transmit_file_error (result);
- return;
- }
-
- ACE_OFF_T size = stat.st_size;
-
- // Can we open the file?
- ACE_HANDLE handle = ACE_OS::open (filename, O_RDONLY);
- if (handle == ACE_INVALID_HANDLE)
- {
- //ugly hack to send HTTP_Status_Code::STATUS_FORBIDDEN
- result = ACE_Filecache_Handle::ACE_OPEN_FAILED;
- this->handler_->transmit_file_error (result);
- return;
- }
-
- char* f = new char[size];
- ACE_Auto_Basic_Array_Ptr<char> file (f);
-
- ACE_OS::read_n (handle, f, size);
-
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
-
- if ((stream.send_n (header, header_size) == header_size)
- && (stream.send_n (f, size) == size)
- && (stream.send_n (trailer, trailer_size) == trailer_size))
- {
- this->handler_->transmit_file_complete ();
- }
- else
- {
- //ugly hack to default to HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR
- result = -1;
- this->handler_->transmit_file_error (result);
- }
-
- ACE_OS::close (handle);
-}
-
-void
-JAWS_Synch_IO_No_Cache::send_confirmation_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length);
- this->handler_->confirmation_message_complete ();
-}
-
-void
-JAWS_Synch_IO_No_Cache::send_error_message (const char *buffer, int length)
-{
- this->send_message (buffer, length);
- this->handler_->error_message_complete ();
-}
-
-void
-JAWS_Synch_IO_No_Cache::send_message (const char *buffer, int length)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
- stream.send_n (buffer, length);
-}
-
diff --git a/ACE/apps/JAWS/server/IO.h b/ACE/apps/JAWS/server/IO.h
deleted file mode 100644
index 0fd3035558e..00000000000
--- a/ACE/apps/JAWS/server/IO.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/* -*- c++ -*- */
-
-//=============================================================================
-/**
- * @file IO.h
- *
- * $Id$
- *
- * @author James Hu
- */
-//=============================================================================
-
-
-#ifndef JAWS_IO_H
-#define JAWS_IO_H
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Asynch_IO.h"
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-class ACE_Message_Block;
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-class JAWS_IO_Handler;
-
-
-/**
- * @class JAWS_IO
- *
- * @brief This class defines the abstract interface for an I/O class in
- * the context of Web-likes servers
- *
- * An I/O class should have the following interface. Derived
- * classes will define the exactly how the I/O will take place
- * (Asynchronous, Synchronous, Reactive)
- */
-class JAWS_IO
-{
-public:
- JAWS_IO (void);
- virtual ~JAWS_IO (void);
- void handler (JAWS_IO_Handler *handler);
-
- virtual void handle (ACE_HANDLE h) = 0;
- virtual ACE_HANDLE handle (void) const = 0;
-
- // James, please add documentation here.
-
- /// read from the handle size bytes into the message block.
- virtual void read (ACE_Message_Block& mb, int size) = 0;
-
- /// send header, filename, trailer to the handle.
- virtual void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size) = 0;
-
- /// read data from the handle and store in filename.
- virtual void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length) = 0;
-
- /// send a confirmation message to the handle.
- virtual void send_confirmation_message (const char *buffer, int length) = 0;
-
- /// send an error message to the handle.
- virtual void send_error_message (const char *buffer, int length) = 0;
-
-protected:
- JAWS_IO_Handler *handler_;
-};
-
-/**
- * @class JAWS_IO_Handler
- *
- * @brief This class defines the abstract interface for an I/O handler class in
- * the context of Web-likes servers
- *
- */
-class JAWS_IO_Handler
-{
-public:
-
- /// Destructor.
- virtual ~JAWS_IO_Handler (void);
-
- /// This method is called by the IO class when new client data shows
- /// up.
- virtual void read_complete (ACE_Message_Block &data) = 0;
-
- /// This method is called by the IO class when there was an error in
- /// reading new data from the client.
- virtual void read_error (void) = 0;
-
- /// This method is called by the IO class when the requested file has
- /// been successfully transmitted to the client.
- virtual void transmit_file_complete (void) = 0;
-
- /// This method is called by the IO class when there was an error in
- /// transmitting the requested file to the client.
- virtual void transmit_file_error (int result) = 0;
-
- /// This method is called by the IO class when the requested file has
- /// been successfully received from the client.
- virtual void receive_file_complete (void) = 0;
-
- /// This method is called by the IO class when there was an error in
- /// receiving the requested file from the client.
- virtual void receive_file_error (int result) = 0;
-
- /// This method is called by the IO class when there was an error in
- /// writing data to the client.
- virtual void write_error (void) = 0;
-
- /// This method is called by the IO class when the confirmation
- /// message has been delivered to the client.
- virtual void confirmation_message_complete (void) = 0;
-
- /// This method is called by the IO class when the error message has
- /// been delivered to the client.
- virtual void error_message_complete (void) = 0;
-
-};
-
-/**
- * @class JAWS_Synch_IO
- *
- * @brief This class defines the interface for a Synchronous I/O class.
- *
- */
-class JAWS_Synch_IO : public JAWS_IO
-{
-public:
- JAWS_Synch_IO (void);
-
- ~JAWS_Synch_IO (void);
-
- virtual void handle (ACE_HANDLE h);
- virtual ACE_HANDLE handle (void) const;
-
- void read (ACE_Message_Block& mb, int size);
-
- void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (const char *buffer,
- int length);
-
- void send_error_message (const char *buffer,
- int length);
-
-protected:
- virtual void send_message (const char *buffer,
- int length);
-
- ACE_HANDLE handle_;
-};
-
-// This only works on Win32
-#if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
-
-/**
- * @class JAWS_Asynch_IO
- *
- * @brief This class defines the interface for a Asynchronous I/O class.
- *
- */
-class JAWS_Asynch_IO : public JAWS_IO, public ACE_Handler
-{
-public:
- JAWS_Asynch_IO (void);
-
- ~JAWS_Asynch_IO (void);
-
- virtual void handle (ACE_HANDLE h) { ACE_Handler::handle (h); };
- virtual ACE_HANDLE handle (void) const { return ACE_Handler::handle (); };
-
- void read (ACE_Message_Block& mb, int size);
-
- void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (const char *buffer,
- int length);
-
- void send_error_message (const char *buffer,
- int length);
-
-protected:
- enum Message_Types
- {
- CONFORMATION,
- ERROR_MESSAGE
- };
-
- virtual void send_message (const char *buffer,
- int length,
- int act);
-
- /// This method will be called when an asynchronous read completes on
- /// a stream.
- virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
-
- /// This method will be called when an asynchronous write completes
- /// on a stream.
- virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
-
- /// This method will be called when an asynchronous transmit file
- /// completes.
- virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result);
-};
-
-#endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
-
-
-//-------------------Adding SYNCH IO no Caching
-
-/**
- * @class JAWS_Synch_IO_No_Cache
- *
- * @brief This class defines the interface for a Synchronous I/O class,
- * however in this class we do not use any caching.
- *
- * Wondering how this is useful?
- * The ACE_Filecache ACE_NOMAP option is broken and even if it were not, there
- * are other use cases in which we want to avoid caching altogether. For example,
- * we use JAWS in conjunction with the CIAO Repository Manager, however the two
- * do not have any explicit knowledge of each other. Therefore if the RM tried
- * to remove a package and its files from disk, its operation would [partially]
- * fail if JAWS still holds some of the files in its cache.
- */
-class JAWS_Synch_IO_No_Cache : public JAWS_IO
-{
-public:
- JAWS_Synch_IO_No_Cache (void);
-
- ~JAWS_Synch_IO_No_Cache (void);
-
- virtual void handle (ACE_HANDLE h);
- virtual ACE_HANDLE handle (void) const;
-
- void read (ACE_Message_Block& mb, int size);
-
- void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (const char *buffer,
- int length);
-
- void send_error_message (const char *buffer,
- int length);
-
-protected:
- virtual void send_message (const char *buffer, int length);
-
- ACE_HANDLE handle_;
-};
-
-//-------------------
-
-#endif /* JAWS_IO_H */
-
diff --git a/ACE/apps/JAWS/server/JAWS_Concurrency.cpp b/ACE/apps/JAWS/server/JAWS_Concurrency.cpp
index 6398469625d..e65b4cb54a2 100644
--- a/ACE/apps/JAWS/server/JAWS_Concurrency.cpp
+++ b/ACE/apps/JAWS/server/JAWS_Concurrency.cpp
@@ -2,8 +2,6 @@
#include "JAWS_Concurrency.h"
-ACE_RCSID(server, JAWS_Concurrency, "$Id$")
-
JAWS_Concurrency_Base::JAWS_Concurrency_Base (void)
{
}
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/JAWS_IO.cpp b/ACE/apps/JAWS/server/JAWS_IO.cpp
new file mode 100644
index 00000000000..8a6f12acce5
--- /dev/null
+++ b/ACE/apps/JAWS/server/JAWS_IO.cpp
@@ -0,0 +1,558 @@
+// $Id$
+
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_sys_uio.h"
+#include "ace/OS_NS_sys_socket.h"
+#include "ace/Message_Block.h"
+#include "ace/Min_Max.h"
+#include "ace/SOCK_Stream.h"
+#include "ace/Filecache.h"
+#include "JAWS_IO.h"
+#include "HTTP_Helpers.h"
+
+#include "ace/OS_NS_fcntl.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_sys_stat.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/Basic_Types.h"
+
+JAWS_IO::JAWS_IO (void)
+ : handler_ (0)
+{
+}
+
+JAWS_IO::~JAWS_IO (void)
+{
+}
+
+void
+JAWS_IO::handler (JAWS_IO_Handler *handler)
+{
+ this->handler_ = handler;
+}
+
+JAWS_IO_Handler::~JAWS_IO_Handler (void)
+{
+}
+
+JAWS_Synch_IO::JAWS_Synch_IO (void)
+ : handle_ (ACE_INVALID_HANDLE)
+{
+}
+
+JAWS_Synch_IO::~JAWS_Synch_IO (void)
+{
+ ACE_OS::closesocket (this->handle_);
+}
+
+ACE_HANDLE
+JAWS_Synch_IO::handle (void) const
+{
+ return this->handle_;
+}
+
+void
+JAWS_Synch_IO::handle (ACE_HANDLE handle)
+{
+ this->handle_ = handle;
+}
+
+void
+JAWS_Synch_IO::read (ACE_Message_Block &mb,
+ int size)
+{
+ ACE_SOCK_Stream stream;
+ stream.set_handle (this->handle_);
+ int result = stream.recv (mb.wr_ptr (), size);
+
+ if (result <= 0)
+ this->handler_->read_error ();
+ else
+ {
+ mb.wr_ptr (result);
+ this->handler_->read_complete (mb);
+ }
+}
+
+void
+JAWS_Synch_IO::receive_file (const char *filename,
+ void *initial_data,
+ int initial_data_length,
+ int entire_length)
+{
+ ACE_Filecache_Handle handle (ACE_TEXT_CHAR_TO_TCHAR (filename), entire_length);
+
+ int result = handle.error ();
+
+ if (result == ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+ ACE_SOCK_Stream stream;
+ stream.set_handle (this->handle_);
+
+ int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
+ ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);
+
+ int bytes_to_read = entire_length - bytes_to_memcpy;
+
+ int bytes = stream.recv_n ((char *) handle.address () + initial_data_length,
+ bytes_to_read);
+ if (bytes == bytes_to_read)
+ this->handler_->receive_file_complete ();
+ else
+ result = -1;
+ }
+
+ if (result != ACE_Filecache_Handle::ACE_SUCCESS)
+ this->handler_->receive_file_error (result);
+}
+
+void
+JAWS_Synch_IO::transmit_file (const char *filename,
+ const char *header,
+ int header_size,
+ const char *trailer,
+ int trailer_size)
+{
+ ACE_Filecache_Handle handle (ACE_TEXT_CHAR_TO_TCHAR (filename));
+
+ int result = handle.error ();
+
+ if (result == ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
+ ACE_SOCK_Stream stream;
+ stream.set_handle (this->handle_);
+
+ if ((stream.send_n (header, header_size) == header_size)
+ && (stream.send_n (handle.address (), handle.size ())
+ == handle.size ())
+ && (stream.send_n (trailer, trailer_size) == trailer_size))
+ this->handler_->transmit_file_complete ();
+ else
+ result = -1;
+#else
+ // Attempting to use writev
+ // Is this faster?
+ iovec iov[3];
+ int iovcnt = 0;
+ if (header_size > 0)
+ {
+ iov[iovcnt].iov_base = const_cast<char*> (header);
+ iov[iovcnt].iov_len = header_size;
+ iovcnt++;
+ }
+ if (handle.size () > 0)
+ {
+ iov[iovcnt].iov_base = reinterpret_cast<char*> (handle.address ());
+ iov[iovcnt].iov_len = handle.size ();
+ iovcnt++;
+ }
+ if (trailer_size > 0)
+ {
+ iov[iovcnt].iov_base = const_cast<char*> (trailer);
+ iov[iovcnt].iov_len = trailer_size;
+ iovcnt++;
+ }
+ if (ACE_OS::writev (this->handle_, iov, iovcnt) < 0)
+ result = -1;
+ else
+ this->handler_->transmit_file_complete ();
+#endif /* ACE_JAWS_BASELINE */
+ }
+
+ if (result != ACE_Filecache_Handle::ACE_SUCCESS)
+ this->handler_->transmit_file_error (result);
+}
+
+void
+JAWS_Synch_IO::send_confirmation_message (const char *buffer,
+ int length)
+{
+ this->send_message (buffer, length);
+ this->handler_->confirmation_message_complete ();
+}
+
+void
+JAWS_Synch_IO::send_error_message (const char *buffer,
+ int length)
+{
+ this->send_message (buffer, length);
+ this->handler_->error_message_complete ();
+}
+
+void
+JAWS_Synch_IO::send_message (const char *buffer,
+ int length)
+{
+ ACE_SOCK_Stream stream;
+ stream.set_handle (this->handle_);
+ stream.send_n (buffer, length);
+}
+
+// This only works on Win32
+#if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+
+JAWS_Asynch_IO::JAWS_Asynch_IO (void)
+{
+}
+
+JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
+{
+ ACE_OS::closesocket (this->handle_);
+}
+
+void
+JAWS_Asynch_IO::read (ACE_Message_Block& mb,
+ int size)
+{
+ ACE_Asynch_Read_Stream ar;
+
+ if (ar.open (*this, this->handle_) == -1
+ || ar.read (mb, size) == -1)
+ this->handler_->read_error ();
+}
+
+// This method will be called when an asynchronous read completes on a
+// stream.
+
+void
+JAWS_Asynch_IO::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
+{
+ // This callback is for this->receive_file()
+ if (result.act () != 0)
+ {
+ int code = 0;
+ if (result.success () && result.bytes_transferred () != 0)
+ {
+ if (result.message_block ().length () == result.message_block ().size ())
+ code = ACE_Filecache_Handle::ACE_SUCCESS;
+ else
+ {
+ ACE_Asynch_Read_Stream ar;
+ if (ar.open (*this, this->handle_) == -1
+ || ar.read (result.message_block (),
+ result.message_block ().size () - result.message_block ().length (),
+ result.act ()) == -1)
+ code = -1;
+ else
+ return;
+ }
+ }
+ else
+ code = -1;
+
+ if (code == ACE_Filecache_Handle::ACE_SUCCESS)
+ this->handler_->receive_file_complete ();
+ else
+ this->handler_->receive_file_error (code);
+
+ delete &result.message_block ();
+ delete (ACE_Filecache_Handle *) result.act ();
+ }
+ else
+ {
+ // This callback is for this->read()
+ if (result.success ()
+ && result.bytes_transferred () != 0)
+ this->handler_->read_complete (result.message_block ());
+ else
+ this->handler_->read_error ();
+ }
+}
+
+void
+JAWS_Asynch_IO::receive_file (const char *filename,
+ void *initial_data,
+ int initial_data_length,
+ int entire_length)
+{
+ ACE_Message_Block *mb = 0;
+ ACE_Filecache_Handle *handle;
+
+ ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, ACE_NOMAP));
+
+ int result = handle->error ();
+
+ if (result == ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+ ACE_OS::memcpy (handle->address (),
+ initial_data,
+ initial_data_length);
+
+ int bytes_to_read = entire_length - initial_data_length;
+
+ ACE_NEW (mb, ACE_Message_Block ((char *)handle->address ()
+ + initial_data_length, bytes_to_read));
+
+ if (mb == 0)
+ {
+ errno = ENOMEM;
+ result = -1;
+ }
+ else
+ {
+ ACE_Asynch_Read_Stream ar;
+
+ if (ar.open (*this, this->handle_) == -1
+ || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
+ result = -1;
+ }
+ }
+
+ if (result != ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+ this->handler_->receive_file_error (result);
+ delete mb;
+ delete handle;
+ }
+}
+
+void
+JAWS_Asynch_IO::transmit_file (const char *filename,
+ const char *header,
+ int header_size,
+ const char *trailer,
+ int trailer_size)
+{
+ ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
+ ACE_Filecache_Handle *handle = new ACE_Filecache_Handle (filename, ACE_NOMAP);
+
+ int result = handle->error ();
+
+ if (result == ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+ ACE_Message_Block header_mb (header, header_size);
+ ACE_Message_Block trailer_mb (trailer, trailer_size);
+
+ header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
+ (&header_mb, header_size, &trailer_mb, trailer_size);
+
+ ACE_Asynch_Transmit_File tf;
+
+ if (tf.open (*this, this->handle_) == -1
+ || tf.transmit_file (handle->handle (), // file handle
+ header_and_trailer, // header and trailer data
+ 0, // bytes_to_write
+ 0, // offset
+ 0, // offset_high
+ 0, // bytes_per_send
+ 0, // flags
+ handle // act
+ ) == -1)
+ result = -1;
+ }
+
+ if (result != ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+ this->handler_->transmit_file_error (result);
+ delete header_and_trailer;
+ delete handle;
+ }
+}
+
+
+// This method will be called when an asynchronous transmit file completes.
+void
+JAWS_Asynch_IO::handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result)
+{
+ if (result.success ())
+ this->handler_->transmit_file_complete ();
+ else
+ this->handler_->transmit_file_error (-1);
+
+ delete result.header_and_trailer ();
+ delete (ACE_Filecache_Handle *) result.act ();
+}
+
+void
+JAWS_Asynch_IO::send_confirmation_message (const char *buffer,
+ int length)
+{
+ this->send_message (buffer, length, CONFORMATION);
+}
+
+void
+JAWS_Asynch_IO::send_error_message (const char *buffer,
+ int length)
+{
+ this->send_message (buffer, length, ERROR_MESSAGE);
+}
+
+void
+JAWS_Asynch_IO::send_message (const char *buffer,
+ int length,
+ int act)
+{
+ ACE_Message_Block *mb = 0;
+ ACE_NEW (mb, ACE_Message_Block (buffer, length));
+
+ if (mb == 0)
+ {
+ this->handler_->error_message_complete ();
+ return;
+ }
+
+ ACE_Asynch_Write_Stream aw;
+ if (aw.open (*this, this->handle_) == -1
+ || aw.write (*mb, length, (void *) static_cast<intptr_t> (act)) == -1)
+ {
+ mb->release ();
+
+ if (act == CONFORMATION)
+ this->handler_->confirmation_message_complete ();
+ else
+ this->handler_->error_message_complete ();
+ }
+}
+
+void
+JAWS_Asynch_IO::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
+{
+ result.message_block ().release ();
+
+ if (result.act () == (void *) CONFORMATION)
+ this->handler_->confirmation_message_complete ();
+ else
+ this->handler_->error_message_complete ();
+}
+
+#endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
+//-------------------Adding SYNCH IO no Caching
+
+JAWS_Synch_IO_No_Cache::JAWS_Synch_IO_No_Cache (void)
+ : handle_ (ACE_INVALID_HANDLE)
+{
+}
+
+JAWS_Synch_IO_No_Cache::~JAWS_Synch_IO_No_Cache (void)
+{
+ ACE_OS::closesocket (this->handle_);
+}
+
+ACE_HANDLE
+JAWS_Synch_IO_No_Cache::handle (void) const
+{
+ return this->handle_;
+}
+
+void
+JAWS_Synch_IO_No_Cache::handle (ACE_HANDLE handle)
+{
+ this->handle_ = handle;
+}
+
+void
+JAWS_Synch_IO_No_Cache::read (ACE_Message_Block &mb, int size)
+{
+ ACE_SOCK_Stream stream;
+ stream.set_handle (this->handle_);
+ int result = stream.recv (mb.wr_ptr (), size);
+
+ if (result <= 0)
+ this->handler_->read_error ();
+ else
+ {
+ mb.wr_ptr (result);
+ this->handler_->read_complete (mb);
+ }
+}
+
+void
+JAWS_Synch_IO_No_Cache::receive_file (const char *,
+ void *,
+ int,
+ int)
+{
+ //ugly hack to send HTTP_Status_Code::STATUS_FORBIDDEN
+ this->handler_->receive_file_error (5);
+}
+
+void
+JAWS_Synch_IO_No_Cache::transmit_file (const char *filename,
+ const char *header,
+ int header_size,
+ const char *trailer,
+ int trailer_size)
+{
+ int result = 0;
+
+ // Can we access the file?
+ if (ACE_OS::access (filename, R_OK) == -1)
+ {
+ //ugly hack to send in HTTP_Status_Code::STATUS_NOT_FOUND
+ result = ACE_Filecache_Handle::ACE_ACCESS_FAILED;
+ this->handler_->transmit_file_error (result);
+ return;
+ }
+
+ ACE_stat stat;
+
+ // Can we stat the file?
+ if (ACE_OS::stat (filename, &stat) == -1)
+ {
+ //ugly hack to send HTTP_Status_Code::STATUS_FORBIDDEN
+ result = ACE_Filecache_Handle::ACE_STAT_FAILED;
+ this->handler_->transmit_file_error (result);
+ return;
+ }
+
+ ACE_OFF_T size = stat.st_size;
+
+ // Can we open the file?
+ ACE_HANDLE handle = ACE_OS::open (filename, O_RDONLY);
+ if (handle == ACE_INVALID_HANDLE)
+ {
+ //ugly hack to send HTTP_Status_Code::STATUS_FORBIDDEN
+ result = ACE_Filecache_Handle::ACE_OPEN_FAILED;
+ this->handler_->transmit_file_error (result);
+ return;
+ }
+
+ char* f = new char[size];
+ ACE_Auto_Basic_Array_Ptr<char> file (f);
+
+ ACE_OS::read_n (handle, f, size);
+
+ ACE_SOCK_Stream stream;
+ stream.set_handle (this->handle_);
+
+ if ((stream.send_n (header, header_size) == header_size)
+ && (stream.send_n (f, size) == size)
+ && (stream.send_n (trailer, trailer_size) == trailer_size))
+ {
+ this->handler_->transmit_file_complete ();
+ }
+ else
+ {
+ //ugly hack to default to HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR
+ result = -1;
+ this->handler_->transmit_file_error (result);
+ }
+
+ ACE_OS::close (handle);
+}
+
+void
+JAWS_Synch_IO_No_Cache::send_confirmation_message (const char *buffer,
+ int length)
+{
+ this->send_message (buffer, length);
+ this->handler_->confirmation_message_complete ();
+}
+
+void
+JAWS_Synch_IO_No_Cache::send_error_message (const char *buffer, int length)
+{
+ this->send_message (buffer, length);
+ this->handler_->error_message_complete ();
+}
+
+void
+JAWS_Synch_IO_No_Cache::send_message (const char *buffer, int length)
+{
+ ACE_SOCK_Stream stream;
+ stream.set_handle (this->handle_);
+ stream.send_n (buffer, length);
+}
+
diff --git a/ACE/apps/JAWS/server/JAWS_IO.h b/ACE/apps/JAWS/server/JAWS_IO.h
new file mode 100644
index 00000000000..c7d512946f5
--- /dev/null
+++ b/ACE/apps/JAWS/server/JAWS_IO.h
@@ -0,0 +1,293 @@
+/* -*- c++ -*- */
+
+//=============================================================================
+/**
+ * @file JAWS_IO.h
+ *
+ * $Id$
+ *
+ * @author James Hu
+ */
+//=============================================================================
+
+
+#ifndef JAWS_IO_H
+#define JAWS_IO_H
+
+#include "ace/ACE.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Asynch_IO.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+class ACE_Message_Block;
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+class JAWS_IO_Handler;
+
+
+/**
+ * @class JAWS_IO
+ *
+ * @brief This class defines the abstract interface for an I/O class in
+ * the context of Web-likes servers
+ *
+ * An I/O class should have the following interface. Derived
+ * classes will define the exactly how the I/O will take place
+ * (Asynchronous, Synchronous, Reactive)
+ */
+class JAWS_IO
+{
+public:
+ JAWS_IO (void);
+ virtual ~JAWS_IO (void);
+ void handler (JAWS_IO_Handler *handler);
+
+ virtual void handle (ACE_HANDLE h) = 0;
+ virtual ACE_HANDLE handle (void) const = 0;
+
+ // James, please add documentation here.
+
+ /// read from the handle size bytes into the message block.
+ virtual void read (ACE_Message_Block& mb, int size) = 0;
+
+ /// send header, filename, trailer to the handle.
+ virtual void transmit_file (const char *filename,
+ const char *header,
+ int header_size,
+ const char *trailer,
+ int trailer_size) = 0;
+
+ /// read data from the handle and store in filename.
+ virtual void receive_file (const char *filename,
+ void *initial_data,
+ int initial_data_length,
+ int entire_length) = 0;
+
+ /// send a confirmation message to the handle.
+ virtual void send_confirmation_message (const char *buffer, int length) = 0;
+
+ /// send an error message to the handle.
+ virtual void send_error_message (const char *buffer, int length) = 0;
+
+protected:
+ JAWS_IO_Handler *handler_;
+};
+
+/**
+ * @class JAWS_IO_Handler
+ *
+ * @brief This class defines the abstract interface for an I/O handler class in
+ * the context of Web-likes servers
+ *
+ */
+class JAWS_IO_Handler
+{
+public:
+
+ /// Destructor.
+ virtual ~JAWS_IO_Handler (void);
+
+ /// This method is called by the IO class when new client data shows
+ /// up.
+ virtual void read_complete (ACE_Message_Block &data) = 0;
+
+ /// This method is called by the IO class when there was an error in
+ /// reading new data from the client.
+ virtual void read_error (void) = 0;
+
+ /// This method is called by the IO class when the requested file has
+ /// been successfully transmitted to the client.
+ virtual void transmit_file_complete (void) = 0;
+
+ /// This method is called by the IO class when there was an error in
+ /// transmitting the requested file to the client.
+ virtual void transmit_file_error (int result) = 0;
+
+ /// This method is called by the IO class when the requested file has
+ /// been successfully received from the client.
+ virtual void receive_file_complete (void) = 0;
+
+ /// This method is called by the IO class when there was an error in
+ /// receiving the requested file from the client.
+ virtual void receive_file_error (int result) = 0;
+
+ /// This method is called by the IO class when there was an error in
+ /// writing data to the client.
+ virtual void write_error (void) = 0;
+
+ /// This method is called by the IO class when the confirmation
+ /// message has been delivered to the client.
+ virtual void confirmation_message_complete (void) = 0;
+
+ /// This method is called by the IO class when the error message has
+ /// been delivered to the client.
+ virtual void error_message_complete (void) = 0;
+
+};
+
+/**
+ * @class JAWS_Synch_IO
+ *
+ * @brief This class defines the interface for a Synchronous I/O class.
+ *
+ */
+class JAWS_Synch_IO : public JAWS_IO
+{
+public:
+ JAWS_Synch_IO (void);
+
+ ~JAWS_Synch_IO (void);
+
+ virtual void handle (ACE_HANDLE h);
+ virtual ACE_HANDLE handle (void) const;
+
+ void read (ACE_Message_Block& mb, int size);
+
+ void transmit_file (const char *filename,
+ const char *header,
+ int header_size,
+ const char *trailer,
+ int trailer_size);
+
+ void receive_file (const char *filename,
+ void *initial_data,
+ int initial_data_length,
+ int entire_length);
+
+ void send_confirmation_message (const char *buffer,
+ int length);
+
+ void send_error_message (const char *buffer,
+ int length);
+
+protected:
+ virtual void send_message (const char *buffer,
+ int length);
+
+ ACE_HANDLE handle_;
+};
+
+// This only works on Win32
+#if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+
+/**
+ * @class JAWS_Asynch_IO
+ *
+ * @brief This class defines the interface for a Asynchronous I/O class.
+ *
+ */
+class JAWS_Asynch_IO : public JAWS_IO, public ACE_Handler
+{
+public:
+ JAWS_Asynch_IO (void);
+
+ ~JAWS_Asynch_IO (void);
+
+ virtual void handle (ACE_HANDLE h) { ACE_Handler::handle (h); };
+ virtual ACE_HANDLE handle (void) const { return ACE_Handler::handle (); };
+
+ void read (ACE_Message_Block& mb, int size);
+
+ void transmit_file (const char *filename,
+ const char *header,
+ int header_size,
+ const char *trailer,
+ int trailer_size);
+
+ void receive_file (const char *filename,
+ void *initial_data,
+ int initial_data_length,
+ int entire_length);
+
+ void send_confirmation_message (const char *buffer,
+ int length);
+
+ void send_error_message (const char *buffer,
+ int length);
+
+protected:
+ enum Message_Types
+ {
+ CONFORMATION,
+ ERROR_MESSAGE
+ };
+
+ virtual void send_message (const char *buffer,
+ int length,
+ int act);
+
+ /// This method will be called when an asynchronous read completes on
+ /// a stream.
+ virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
+
+ /// This method will be called when an asynchronous write completes
+ /// on a stream.
+ virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
+
+ /// This method will be called when an asynchronous transmit file
+ /// completes.
+ virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result);
+};
+
+#endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
+
+
+//-------------------Adding SYNCH IO no Caching
+
+/**
+ * @class JAWS_Synch_IO_No_Cache
+ *
+ * @brief This class defines the interface for a Synchronous I/O class,
+ * however in this class we do not use any caching.
+ *
+ * Wondering how this is useful?
+ * The ACE_Filecache ACE_NOMAP option is broken and even if it were not, there
+ * are other use cases in which we want to avoid caching altogether. For example,
+ * we use JAWS in conjunction with the CIAO Repository Manager, however the two
+ * do not have any explicit knowledge of each other. Therefore if the RM tried
+ * to remove a package and its files from disk, its operation would [partially]
+ * fail if JAWS still holds some of the files in its cache.
+ */
+class JAWS_Synch_IO_No_Cache : public JAWS_IO
+{
+public:
+ JAWS_Synch_IO_No_Cache (void);
+
+ ~JAWS_Synch_IO_No_Cache (void);
+
+ virtual void handle (ACE_HANDLE h);
+ virtual ACE_HANDLE handle (void) const;
+
+ void read (ACE_Message_Block& mb, int size);
+
+ void transmit_file (const char *filename,
+ const char *header,
+ int header_size,
+ const char *trailer,
+ int trailer_size);
+
+ void receive_file (const char *filename,
+ void *initial_data,
+ int initial_data_length,
+ int entire_length);
+
+ void send_confirmation_message (const char *buffer,
+ int length);
+
+ void send_error_message (const char *buffer,
+ int length);
+
+protected:
+ virtual void send_message (const char *buffer, int length);
+
+ ACE_HANDLE handle_;
+};
+
+//-------------------
+
+#endif /* JAWS_IO_H */
+
diff --git a/ACE/apps/JAWS/server/JAWS_Pipeline.cpp b/ACE/apps/JAWS/server/JAWS_Pipeline.cpp
index f2ea3ecfbe9..77fb54c6e48 100644
--- a/ACE/apps/JAWS/server/JAWS_Pipeline.cpp
+++ b/ACE/apps/JAWS/server/JAWS_Pipeline.cpp
@@ -2,8 +2,6 @@
#include "JAWS_Pipeline.h"
-ACE_RCSID(server, JAWS_Pipeline, "$Id$")
-
JAWS_Pipeline::JAWS_Pipeline (void)
{
}
diff --git a/ACE/apps/JAWS/server/JAWS_Pipeline_Handler.cpp b/ACE/apps/JAWS/server/JAWS_Pipeline_Handler.cpp
index e67a99545bb..967add903c7 100644
--- a/ACE/apps/JAWS/server/JAWS_Pipeline_Handler.cpp
+++ b/ACE/apps/JAWS/server/JAWS_Pipeline_Handler.cpp
@@ -5,8 +5,6 @@
#include "JAWS_Pipeline_Handler.h"
-ACE_RCSID(server, JAWS_Pipeline_Handler, "$Id$")
-
template <class TYPE>
JAWS_Pipeline_Handler<TYPE>::JAWS_Pipeline_Handler (void)
{
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/Parse_Headers.cpp b/ACE/apps/JAWS/server/Parse_Headers.cpp
index 12807305d1f..53fc918a9e2 100644
--- a/ACE/apps/JAWS/server/Parse_Headers.cpp
+++ b/ACE/apps/JAWS/server/Parse_Headers.cpp
@@ -8,8 +8,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_ctype.h"
-ACE_RCSID(server, Parse_Headers, "$Id$")
-
// Implementation of class Headers
Headers::Headers (void) : done_(0)
diff --git a/ACE/apps/JAWS/server/main.cpp b/ACE/apps/JAWS/server/main.cpp
index dc9d8291549..83ee3caa7f3 100644
--- a/ACE/apps/JAWS/server/main.cpp
+++ b/ACE/apps/JAWS/server/main.cpp
@@ -8,8 +8,6 @@
#include "ace/OS_main.h"
#include "ace/OS_NS_signal.h"
-ACE_RCSID(server, main, "$Id$")
-
ACE_STATIC_SVC_REQUIRE(HTTP_Server)
#ifdef ACE_HAS_SIG_C_FUNC
diff --git a/ACE/apps/JAWS/server/server.mpc b/ACE/apps/JAWS/server/server.mpc
index 19e880d3530..e6b9f1d9806 100644
--- a/ACE/apps/JAWS/server/server.mpc
+++ b/ACE/apps/JAWS/server/server.mpc
@@ -1,13 +1,17 @@
// -*- MPC -*-
// $Id$
-project(JAWS) : ace_output, acelib {
+project(JAWS) : install, ace_output, acelib {
sharedname = JAWS
- dynamicflags = ACE_BUILD_SVC_DLL
+ dynamicflags += ACE_BUILD_SVC_DLL
requires += ace_filecache
avoids += uses_wchar
avoids += ace_for_tao
+ specific {
+ install_dir = JAWS/server
+ }
+
Source_Files {
HTTP_Server.cpp
HTTP_Config.cpp
@@ -18,7 +22,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/JAWS/server/svc.conf b/ACE/apps/JAWS/server/svc.conf
index fdba6ab9c76..b270c2a960b 100644
--- a/ACE/apps/JAWS/server/svc.conf
+++ b/ACE/apps/JAWS/server/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
#
# -p port number
# -n threads in the server
diff --git a/ACE/apps/JAWS/stress_testing/benchd.cpp b/ACE/apps/JAWS/stress_testing/benchd.cpp
index 350277a0db0..37a31f45d09 100644
--- a/ACE/apps/JAWS/stress_testing/benchd.cpp
+++ b/ACE/apps/JAWS/stress_testing/benchd.cpp
@@ -11,8 +11,6 @@
#include "ace/ARGV.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(stress_testing, benchd, "$Id$")
-
#if defined (ACE_HAS_IP_MULTICAST)
// network interface to subscribe to
// this is hardware specific.
diff --git a/ACE/apps/JAWS/stress_testing/connection.cpp b/ACE/apps/JAWS/stress_testing/connection.cpp
index 5089fe987ac..82222e24a30 100644
--- a/ACE/apps/JAWS/stress_testing/connection.cpp
+++ b/ACE/apps/JAWS/stress_testing/connection.cpp
@@ -2,8 +2,6 @@
#include "connection.h"
-ACE_RCSID(stress_testing, connection, "$Id$")
-
// Make the connection to the WEB server
int connection::connect(char *hostname_opt_port, int tcp_nodelay, int sockbufsiz) {
diff --git a/ACE/apps/JAWS/stress_testing/cp.cpp b/ACE/apps/JAWS/stress_testing/cp.cpp
index 4829735aaa8..b593cc23f0a 100644
--- a/ACE/apps/JAWS/stress_testing/cp.cpp
+++ b/ACE/apps/JAWS/stress_testing/cp.cpp
@@ -2,8 +2,6 @@
#include "cp.h"
-ACE_RCSID(stress_testing, cp, "$Id$")
-
Client_Parameters::Client_Parameters(int i) {
id = i;
diff --git a/ACE/apps/JAWS/stress_testing/http_tester.cpp b/ACE/apps/JAWS/stress_testing/http_tester.cpp
index b86dda0605d..e00f48b09eb 100644
--- a/ACE/apps/JAWS/stress_testing/http_tester.cpp
+++ b/ACE/apps/JAWS/stress_testing/http_tester.cpp
@@ -2,8 +2,6 @@
#include "client.h"
-ACE_RCSID(stress_testing, http_tester, "$Id$")
-
int Client_Parameters::tcp_nodelay;
int Client_Parameters::sockbufsiz;
Stats *Client_Parameters::stats;
diff --git a/ACE/apps/JAWS/stress_testing/stats.cpp b/ACE/apps/JAWS/stress_testing/stats.cpp
index 8d7df2ccf5f..97b6ef3ded6 100644
--- a/ACE/apps/JAWS/stress_testing/stats.cpp
+++ b/ACE/apps/JAWS/stress_testing/stats.cpp
@@ -2,22 +2,20 @@
#include "stats.h"
-ACE_RCSID(stress_testing, stats, "$Id$")
-
Stats::Stats(int size) {
throughput_ = new float[size];
latency_ = new float[size];
thread_count_ = size;
init_fini_ = new Init_Fini_t[2*size];
- for(int i = 0; i < size; i++)
+ for(int i = 0; i < size; i++)
throughput_[i] = latency_[i] = 0;
}
-
+
void Stats::log(int id, float throughput, float latency) {
throughput_[id] = throughput;
latency_[id] = latency;
}
-
+
// Unused for now.
void Stats::print(char *message) {
@@ -28,7 +26,7 @@ void Stats::print(char *message) {
// time(&ltime);
// ACE_OS::ctime_r(&ltime, time_buf, sizeof time_buf);
-
+
// if(ACE_OS::gettimeofday() == -1) {
// perror("gettimeofday");
// }
@@ -44,7 +42,7 @@ int comp(const void *a, const void *b) {
return (A->timestamp < B->timestamp) ? -1 : (A->timestamp > B->timestamp);
}
-
+
void Stats::output() {
int i;
@@ -57,7 +55,7 @@ void Stats::output() {
for(i = 0; i < 2*thread_count_; i++) {
// cerr << " " << ((init_fini_[i].type == THREAD_START) ? "START": "END") << " " << init_fini_[i].timestamp.sec() << "." << init_fini_[i].timestamp.usec() << endl;
if(init_fini_[i].type == THREAD_START) {
- if(++thread_peak > max)
+ if(++thread_peak > max)
max = thread_peak;
}
else thread_peak--;
@@ -85,4 +83,4 @@ void Stats::i_am_done(int id) {
}
-
+
diff --git a/ACE/apps/JAWS/stress_testing/util.cpp b/ACE/apps/JAWS/stress_testing/util.cpp
index 495ba7c59e0..7da1d9df44a 100644
--- a/ACE/apps/JAWS/stress_testing/util.cpp
+++ b/ACE/apps/JAWS/stress_testing/util.cpp
@@ -2,8 +2,6 @@
#include "util.h"
-ACE_RCSID(stress_testing, util, "$Id$")
-
URL::URL(char *input_buf) {
char *buffer = new char[BUFSIZ];
diff --git a/ACE/apps/JAWS2/HTTP_10.cpp b/ACE/apps/JAWS2/HTTP_10.cpp
index 60ebdc8b17f..fa93b789dc8 100644
--- a/ACE/apps/JAWS2/HTTP_10.cpp
+++ b/ACE/apps/JAWS2/HTTP_10.cpp
@@ -4,7 +4,7 @@
#include "JAWS/JAWS.h"
-ACE_RCSID(PROTOTYPE, HTTP_10, "$Id$")
+
char *
JAWS_HTTP_10_Helper::HTTP_decode_string (char *path)
diff --git a/ACE/apps/JAWS2/HTTP_10_Parse.cpp b/ACE/apps/JAWS2/HTTP_10_Parse.cpp
index 67e63ae5b2f..b7965fd1472 100644
--- a/ACE/apps/JAWS2/HTTP_10_Parse.cpp
+++ b/ACE/apps/JAWS2/HTTP_10_Parse.cpp
@@ -9,7 +9,7 @@
#include "HTTP_10_Request.h"
-ACE_RCSID(PROTOTYPE, HTTP_10_Parse, "$Id$")
+
// --------------- PARSE TASK ----------------------
diff --git a/ACE/apps/JAWS2/HTTP_10_Read.cpp b/ACE/apps/JAWS2/HTTP_10_Read.cpp
index 868147a1d56..b5b08fca651 100644
--- a/ACE/apps/JAWS2/HTTP_10_Read.cpp
+++ b/ACE/apps/JAWS2/HTTP_10_Read.cpp
@@ -7,7 +7,7 @@
#include "JAWS/IO_Handler.h"
#include "JAWS/Policy.h"
-ACE_RCSID(PROTOTYPE, HTTP_10_Read, "$Id$")
+
// --------------- READ TASK ----------------------
diff --git a/ACE/apps/JAWS2/HTTP_10_Request.cpp b/ACE/apps/JAWS2/HTTP_10_Request.cpp
index 8acb1921907..8fadbb131c8 100644
--- a/ACE/apps/JAWS2/HTTP_10_Request.cpp
+++ b/ACE/apps/JAWS2/HTTP_10_Request.cpp
@@ -4,7 +4,7 @@
#include "HTTP_10_Request.h"
#include "ace/OS_NS_pwd.h"
-ACE_RCSID(PROTOTYPE, HTTP_10_Request, "$Id$")
+
static int dummy;
diff --git a/ACE/apps/JAWS2/HTTP_10_Write.cpp b/ACE/apps/JAWS2/HTTP_10_Write.cpp
index d6c81ac665a..6b65503095c 100644
--- a/ACE/apps/JAWS2/HTTP_10_Write.cpp
+++ b/ACE/apps/JAWS2/HTTP_10_Write.cpp
@@ -9,7 +9,7 @@
#include "HTTP_10_Request.h"
-ACE_RCSID(PROTOTYPE, HTTP_10_Write, "$Id$")
+
// --------------- WRITE TASK ----------------------
diff --git a/ACE/apps/JAWS2/HTTP_Policy.cpp b/ACE/apps/JAWS2/HTTP_Policy.cpp
index b319668142d..34d2a89788f 100644
--- a/ACE/apps/JAWS2/HTTP_Policy.cpp
+++ b/ACE/apps/JAWS2/HTTP_Policy.cpp
@@ -2,7 +2,7 @@
#include "HTTP_Policy.h"
-ACE_RCSID(PROTOTYPE, HTTP_Policy, "$Id$")
+
HTTP_Policy::HTTP_Policy (JAWS_Concurrency_Base *concurrency)
: concurrency_ (concurrency)
diff --git a/ACE/apps/JAWS2/JAWS/Assoc_Array.cpp b/ACE/apps/JAWS2/JAWS/Assoc_Array.cpp
index 36fc7d64763..4901e6ef7c2 100644
--- a/ACE/apps/JAWS2/JAWS/Assoc_Array.cpp
+++ b/ACE/apps/JAWS2/JAWS/Assoc_Array.cpp
@@ -6,8 +6,6 @@
#include "ace/config-all.h"
#include "JAWS/Assoc_Array.h"
-ACE_RCSID(JAWS, Assoc_Array, "$Id$")
-
template <class KEY, class DATA>
JAWS_Assoc_Array<KEY,DATA>::JAWS_Assoc_Array (int maxsize)
: k_array_ (0),
diff --git a/ACE/apps/JAWS2/JAWS/Cache_Hash_T.cpp b/ACE/apps/JAWS2/JAWS/Cache_Hash_T.cpp
index a908c4147f1..e86e3667597 100644
--- a/ACE/apps/JAWS2/JAWS/Cache_Hash_T.cpp
+++ b/ACE/apps/JAWS2/JAWS/Cache_Hash_T.cpp
@@ -139,7 +139,7 @@ JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::bind (const EXT_ID &ext_id,
if (this->hashtable_[hash_idx] == 0)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g, this->lock_, -1);
if (this->new_cachebucket (hash_idx) == -1)
return -1;
@@ -161,7 +161,7 @@ JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::trybind (const EXT_ID &ext_id,
if (this->hashtable_[hash_idx] == 0)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g, this->lock_, -1);
if (this->new_cachebucket (hash_idx) == -1)
return -1;
@@ -185,7 +185,7 @@ JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::rebind (const EXT_ID &ext_id,
if (this->hashtable_[hash_idx] == 0)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g, this->lock_, -1);
if (this->new_cachebucket (hash_idx) == -1)
return -1;
diff --git a/ACE/apps/JAWS2/JAWS/Cache_Manager_T.cpp b/ACE/apps/JAWS2/JAWS/Cache_Manager_T.cpp
index a4e54f693d5..96c0b4df63b 100644
--- a/ACE/apps/JAWS2/JAWS/Cache_Manager_T.cpp
+++ b/ACE/apps/JAWS2/JAWS/Cache_Manager_T.cpp
@@ -206,7 +206,7 @@ template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
::GET_i (const KEY &key, JAWS_Cache_Object *&object)
{
- int result = this->hash_->find (key, object);
+ int const result = this->hash_->find (key, object);
if (result == 0)
this->TAKE (object);
@@ -355,7 +355,7 @@ template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
::GET (const KEY &key, JAWS_Cache_Object *&object)
{
- ACE_Read_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
+ ACE_READ_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, g,this->lock_, -1);
return this->GET_i (key, object);
}
@@ -364,7 +364,7 @@ template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
::PUT (const KEY &key, const void *data, size_t size, JAWS_Cache_Object *&obj)
{
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
+ ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, g,this->lock_, -1);
return this->PUT_i (key, data, size, obj);
}
@@ -452,68 +452,34 @@ JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
if (obj == 0)
return -1;
-#if 0
- if (obj->size ()/1024 > this->maxobjsize_)
- {
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
+ ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, g, this->lock_, -1);
- int result = obj->release ();
- if (result == 0)
+ int result = obj->release ();
+
+ if (result == 0)
+ {
+ if (obj->count () == 0)
{
- if (obj->count () == 0)
- {
- KEY *key = (KEY *) obj->internal ();
-#ifdef ENTERA_VERBOSE_TRACE
- cerr << "*** drop large unbinding: " << key << endl;
-#endif
- result = this->hash_->unbind (*key);
- if (result == 0)
- {
- if (this->heap_->remove (obj->heap_item ()) == -1)
- cerr << "*** drop large heap remove failed: " << endl;
- this->factory_->destroy (obj);
- delete key;
- obj = 0;
- result = 1;
- }
- else
- cerr << "*** drop large hash unbind failed: " << key << endl;
- }
+ KEY *key = (KEY *) obj->internal ();
+ this->factory_->destroy (obj);
+ delete key;
+ obj = 0;
+ result = 1;
+ }
+ else
+ {
+ result = this->DROP_i (obj);
}
- return result;
}
-#endif /* 0 */
- {
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- int result = obj->release ();
-
- if (result == 0)
- {
- if (obj->count () == 0)
- {
- KEY *key = (KEY *) obj->internal ();
- this->factory_->destroy (obj);
- delete key;
- obj = 0;
- result = 1;
- }
- else
- {
- result = this->DROP_i (obj);
- }
- }
-
- return result;
- }
+ return result;
}
template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
::FLUSH (void)
{
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
+ ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, g, this->lock_, -1);
return this->FLUSH_i ();
}
@@ -528,7 +494,7 @@ JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>
if (this->manager_ == 0)
this->manager_ = Cache_Manager_Singleton::instance ();
- int result = this->manager_->GET (key, this->object_);
+ int const result = this->manager_->GET (key, this->object_);
if (result == -1)
this->object_ = 0;
}
diff --git a/ACE/apps/JAWS2/JAWS/Cache_Object.cpp b/ACE/apps/JAWS2/JAWS/Cache_Object.cpp
index 011f94182cd..cc3799bb3f0 100644
--- a/ACE/apps/JAWS2/JAWS/Cache_Object.cpp
+++ b/ACE/apps/JAWS2/JAWS/Cache_Object.cpp
@@ -6,8 +6,6 @@
#include "ace/Guard_T.h"
#include "ace/OS_NS_time.h"
-
-
JAWS_Cache_Object::JAWS_Cache_Object (const void *data, size_t size)
: internal_ (0),
data_ (data),
@@ -173,7 +171,7 @@ JAWS_Counted_Cache_Object::lock (void)
unsigned int
JAWS_Counted_Cache_Object::count_i (void) const
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g ,this->lock_, 0);
return this->count_;
}
@@ -181,18 +179,18 @@ JAWS_Counted_Cache_Object::count_i (void) const
int
JAWS_Counted_Cache_Object::acquire_i (void)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g ,this->lock_, 0);
- this->new_count_++;
+ ++this->new_count_;
return 0;
}
int
JAWS_Counted_Cache_Object::release_i (void)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g ,this->lock_, 0);
- this->new_count_--;
+ --this->new_count_;
this->count_ = this->new_count_;
return 0;
}
diff --git a/ACE/apps/JAWS2/JAWS/Cache_Object.h b/ACE/apps/JAWS2/JAWS/Cache_Object.h
index 9988379742f..44f7e2cd541 100644
--- a/ACE/apps/JAWS2/JAWS/Cache_Object.h
+++ b/ACE/apps/JAWS2/JAWS/Cache_Object.h
@@ -6,12 +6,11 @@
#ifndef JAWS_CACHE_OBJECT_H
#define JAWS_CACHE_OBJECT_H
-#include "ace/Lock_Adapter_T.h"
-#include "ace/Synch_Traits.h"
#include "ace/Thread_Mutex.h"
+#include "ace/Synch_Traits.h"
#include "ace/Malloc.h"
#include "ace/RW_Thread_Mutex.h"
-
+#include "ace/Lock_Adapter_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Allocator;
diff --git a/ACE/apps/JAWS2/JAWS/Concurrency.cpp b/ACE/apps/JAWS2/JAWS/Concurrency.cpp
index bc557137ac7..4506ff09efa 100644
--- a/ACE/apps/JAWS2/JAWS/Concurrency.cpp
+++ b/ACE/apps/JAWS2/JAWS/Concurrency.cpp
@@ -9,7 +9,7 @@
#include "JAWS/Waiter.h"
#include "JAWS/Reaper.h"
-ACE_RCSID(JAWS, Concurrency, "$Id$")
+
JAWS_Concurrency_Base::JAWS_Concurrency_Base (void)
: ACE_Task<ACE_SYNCH> (new ACE_Thread_Manager),
@@ -30,7 +30,7 @@ JAWS_Concurrency_Base::singleton_mb (void)
{
if (this->mb_acquired_ == 0)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g(this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g, this->lock_, 0);
if (this->mb_acquired_ == 0)
{
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/Data_Block.cpp b/ACE/apps/JAWS2/JAWS/Data_Block.cpp
index 9fb8b56cb20..b6c21510db1 100644
--- a/ACE/apps/JAWS2/JAWS/Data_Block.cpp
+++ b/ACE/apps/JAWS2/JAWS/Data_Block.cpp
@@ -3,7 +3,7 @@
#include "JAWS/Data_Block.h"
#include "JAWS/Policy.h"
-ACE_RCSID(JAWS, Data_Block, "$Id$")
+
JAWS_Data_Block::JAWS_Data_Block (void)
: ACE_Message_Block (JAWS_DATA_BLOCK_SIZE),
diff --git a/ACE/apps/JAWS2/JAWS/FILE.cpp b/ACE/apps/JAWS2/JAWS/FILE.cpp
index 5467f50e606..4d89af85d4f 100644
--- a/ACE/apps/JAWS2/JAWS/FILE.cpp
+++ b/ACE/apps/JAWS2/JAWS/FILE.cpp
@@ -38,7 +38,7 @@ JAWS_FILE::mem_map (int length,
{
if (this->map_ == 0)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g ,this->lock_, 0);
if (this->map_ == 0)
{
diff --git a/ACE/apps/JAWS2/JAWS/IO.cpp b/ACE/apps/JAWS2/JAWS/IO.cpp
deleted file mode 100644
index 41603c6b626..00000000000
--- a/ACE/apps/JAWS2/JAWS/IO.cpp
+++ /dev/null
@@ -1,595 +0,0 @@
-// $Id$
-
-#include "ace/Message_Block.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Filecache.h"
-#include "ace/OS_NS_string.h"
-#include "ace/OS_NS_unistd.h"
-#include "ace/OS_NS_sys_uio.h"
-#include "ace/OS_NS_sys_socket.h"
-#include "ace/Min_Max.h"
-
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-#include "JAWS/Filecache.h"
-
-#include "ace/Asynch_IO.h" //for ACE_Asynch_Write_Stream
-
-// #include "HTTP_Helpers.h"
-
-ACE_RCSID(JAWS, IO, "$Id$")
-
-JAWS_IO::JAWS_IO (void)
- : handle_ (ACE_INVALID_HANDLE),
- handler_ (0),
- inet_addr_ (0),
- acceptor_ (0)
-{
-}
-
-JAWS_IO::~JAWS_IO (void)
-{
-}
-
-#if 0
-ACE_HANDLE
-JAWS_IO::handle (void)
-{
- return this->handle_;
-}
-
-void
-JAWS_IO::handle (ACE_HANDLE handle)
-{
- this->handle_ = handle;
-}
-
-void
-JAWS_IO::handler (JAWS_IO_Handler *handler)
-{
- this->handler_ = handler;
-}
-
-void
-JAWS_IO::acceptor (JAWS_IO_Acceptor *acceptor)
-{
- this->acceptor_ = acceptor;
-}
-#endif /* 0 */
-
-JAWS_Synch_IO::JAWS_Synch_IO (void)
-{
- this->acceptor_ = JAWS_IO_Synch_Acceptor_Singleton::instance ();
-}
-
-JAWS_Synch_IO::~JAWS_Synch_IO (void)
-{
- if (this->handle_ != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Synch_IO::accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *,
- unsigned int)
-{
- ACE_SOCK_Stream new_stream;
- new_stream.set_handle (ACE_INVALID_HANDLE);
- if (this->acceptor_->accept (new_stream) == -1)
- ioh->accept_error ();
- else
- ioh->accept_complete (new_stream.get_handle ());
-}
-
-void
-JAWS_Synch_IO::read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size)
-{
- JAWS_TRACE ("JAWS_Synch_IO::read");
-
- ACE_SOCK_Stream stream;
-
- stream.set_handle (ioh->handle ());
- int result = stream.recv (mb->wr_ptr (), size);
-
- if (result <= 0)
- ioh->read_error ();
- else
- {
- JAWS_TRACE ("JAWS_Synch_IO::read success");
- mb->wr_ptr (result);
- ioh->read_complete (mb);
- }
-}
-
-void
-JAWS_Synch_IO::receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length)
-{
- ACE_Filecache_Handle handle (filename,
- (int) entire_length);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
-
- int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
- ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);
-
- int bytes_to_read = entire_length - bytes_to_memcpy;
-
- int bytes = stream.recv_n ((char *)
- handle.address () + initial_data_length,
- bytes_to_read);
- if (bytes == bytes_to_read)
- ioh->receive_file_complete ();
- else
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- ioh->receive_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- if (handle != ACE_INVALID_HANDLE)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
-
- if ((unsigned long) stream.send_n (header, header_size) < header_size)
- {
- result = -1;
- }
- else
- {
- int count;
- char buf[BUFSIZ];
-
- do
- {
- count = ACE_OS::read (handle, buf, sizeof (buf));
- if (count <= 0)
- break;
-
- if (stream.send_n (buf, count) < count)
- {
- result = -1;
- }
- }
- while (result == 0);
-
- if ((unsigned long) stream.send_n (trailer, trailer_size)
- < trailer_size)
- {
- result = -1;
- }
- }
- }
-
- if (result == 0)
- ioh->transmit_file_complete ();
- else
- ioh->transmit_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- if (filename == 0)
- {
- ioh->transmit_file_error (-1);
- return;
- }
-
- JAWS_Cached_FILE cf (filename);
-
- if (cf.file ()->get_handle () != ACE_INVALID_HANDLE
- && cf.mmap () != 0)
- {
-#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
- ACE_FILE_Info info;
- cf.file ()->get_info (info);
-
- if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
- if (((u_long) stream.send_n (header, header_size) == header_size)
- && (stream.send_n (cf.mmap ()->addr (), info.size_)
- == info.size_)
- && ((u_long) stream.send_n (trailer, trailer_size)
- == trailer_size))
- {
- ioh->transmit_file_complete ();
- return;
- }
- else
- {
- result = -1;
- }
- }
- else
- {
- result = -1;
- }
-#else
- // Attempting to use writev
- // Is this faster?
- iovec iov[3];
- int iovcnt = 0;
- if (header_size > 0)
- {
- iov[iovcnt].iov_base = const_cast<char*> (header);
- iov[iovcnt].iov_len = header_size;
- iovcnt++;
- }
-
- ACE_FILE_Info info;
-
- if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
- {
- iov[iovcnt].iov_base = (char *) cf.mmap ()->addr ();
- iov[iovcnt].iov_len = info.size_;
- iovcnt++;
- }
- if (trailer_size > 0)
- {
- iov[iovcnt].iov_base = const_cast<char*> (trailer);
- iov[iovcnt].iov_len = trailer_size;
- iovcnt++;
- }
- if (ACE_OS::writev (ioh->handle (), iov, iovcnt) < 0)
- {
- result = -1;
- }
- else
- {
- ioh->transmit_file_complete ();
- return;
- }
-#endif /* ACE_JAWS_BASELINE */
- }
- else if (cf.file ()->get_handle () != ACE_INVALID_HANDLE
- && cf.mmap () == 0)
- {
- this->transmit_file (ioh,
- cf.file ()->get_handle (),
- header, header_size,
- trailer, trailer_size);
- return;
- }
- else
- {
- result = -1;
- }
-
- if (result != 0)
- {
- ioh->transmit_file_error (result);
- }
-}
-
-void
-JAWS_Synch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length);
- ioh->confirmation_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length);
- ioh->error_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
- stream.send_n (buffer, length);
-}
-
-// This only works on asynch I/O-capable systems.
-#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
-
-JAWS_Asynch_IO::JAWS_Asynch_IO (void)
-{
-}
-
-JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
-{
- if (this->handle_ != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Asynch_IO::accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *,
- unsigned int)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::accept");
-
- ioh->idle ();
-
- JAWS_Data_Block *db = ioh->message_block ();
- //ACE_HANDLE listen_handle = db->policy ()->acceptor ()->get_handle ();
-
- //JAWS_Asynch_IO_Handler *aioh =
- // dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
-
- size_t bytes_to_read = JAWS_Data_Block::JAWS_DATA_BLOCK_SIZE;
-
- if (db->policy ()->acceptor ()->accept (bytes_to_read, ioh) == -1)
- ioh->accept_error ();
-}
-
-void
-JAWS_Asynch_IO::read (JAWS_IO_Handler *ioh,
- ACE_Message_Block* mb,
- unsigned int size)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::read");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
-
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*(aioh->handler ()), aioh->handle ()) == -1
- || ar.read (*mb, size) == -1)
- aioh->read_error ();
-}
-
-void
-JAWS_Asynch_IO::receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::receive_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
-
- ACE_Message_Block *mb = 0;
- ACE_Filecache_Handle *handle;
-
- ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, ACE_NOMAP));
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_SUCCESS)
- {
- ACE_OS::memcpy (handle->address (),
- initial_data,
- initial_data_length);
-
- int bytes_to_read = entire_length - initial_data_length;
-
- ACE_NEW (mb, ACE_Message_Block ((char *)handle->address ()
- + initial_data_length, bytes_to_read));
-
- if (mb == 0)
- {
- errno = ENOMEM;
- result = -1;
- }
- else
- {
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*(aioh->handler ()), aioh->handle ()) == -1
- || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
- result = -1;
- }
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- {
- this->handler_->receive_file_error (result);
- delete mb;
- delete handle;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::transmit_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
-
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
-
- int result = 0;
-
- if (handle != ACE_INVALID_HANDLE)
- {
- ACE_Message_Block hdr_mb (header, header_size);
- ACE_Message_Block trl_mb (trailer, trailer_size);
-
- header_and_trailer =
- new ACE_Asynch_Transmit_File::Header_And_Trailer (hdr_mb.duplicate (),
- header_size,
- trl_mb.duplicate (),
- trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*(aioh->handler ()), aioh->handle ()) == -1
- || tf.transmit_file (handle, // file handle
- header_and_trailer, // header and trailer data
- 0, // bytes_to_write
- 0, // offset
- 0, // offset_high
- 0, // bytes_per_send
- 0, // flags
- 0 // act
- ) == -1)
- result = -1;
- }
-
- if (result != 0)
- {
- ioh->transmit_file_error (result);
- delete header_and_trailer;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- JAWS_TRACE ("JAWS_Asynch_IO::transmit_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
-
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
- JAWS_Cached_FILE *cf = new JAWS_Cached_FILE (filename);
-
- if (cf->file ()->get_handle () != ACE_INVALID_HANDLE)
- {
- ACE_Message_Block hdr_mb (header, header_size);
- ACE_Message_Block trl_mb (trailer, trailer_size);
-
- header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
- (hdr_mb.duplicate (), header_size, trl_mb.duplicate (), trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*(aioh->handler ()), aioh->handle ()) == -1
- || tf.transmit_file (cf->file ()->get_handle (), // file handle
- header_and_trailer, // header and trailer data
- 0, // bytes_to_write
- 0, // offset
- 0, // offset_high
- 0, // bytes_per_send
- 0, // flags
- cf // act
- ) == -1)
- result = -1;
- }
-
- if (result != 0)
- {
- ioh->transmit_file_error (result);
- delete header_and_trailer;
- delete cf;
- }
-}
-
-void
-JAWS_Asynch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length, CONFIRMATION);
-}
-
-void
-JAWS_Asynch_IO::send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length, ERROR_MESSAGE);
-}
-
-void
-JAWS_Asynch_IO::send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length,
- long act)
-{
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
-
- ACE_Message_Block *mb;
- ACE_NEW (mb, ACE_Message_Block (buffer, length));
-
- if (mb == 0)
- {
- this->handler_->error_message_complete ();
- return;
- }
-
- ACE_Asynch_Write_Stream aw;
- if (aw.open (*(aioh->handler ()), aioh->handle ()) == -1
- || aw.write (*mb, length, (void *) static_cast<intptr_t> (act)) == -1)
- {
- mb->release ();
-
- if (act == CONFIRMATION)
- ioh->confirmation_message_complete ();
- else
- ioh->error_message_complete ();
- }
-}
-
-void
-JAWS_Asynch2_IO::accept (JAWS_IO_Handler *,
- ACE_Message_Block *,
- unsigned int)
-{
-}
-
-#endif /* ACE_HAS_WIN32_OVERLAPPED_IO || ACE_HAS_AIO_CALLS */
-
diff --git a/ACE/apps/JAWS2/JAWS/IO.h b/ACE/apps/JAWS2/JAWS/IO.h
deleted file mode 100644
index e336487bd86..00000000000
--- a/ACE/apps/JAWS2/JAWS/IO.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef JAWS_IO_H
-#define JAWS_IO_H
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Asynch_IO.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Singleton.h"
-#include "ace/Synch_Traits.h"
-
-#include "JAWS/Export.h"
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-class ACE_Message_Block;
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-class JAWS_IO_Handler;
-class JAWS_IO_Acceptor;
-
-
-
-class JAWS_Export JAWS_IO
- // = TITLE
- //
- // This class defines the abstract interface for an I/O class in
- // the context of Web-likes servers
- //
- // = DESCRIPTION
- //
- // An I/O class should have the following interface. Derived
- // classes will define the exactly how the I/O will take place
- // (Asynchronous, Synchronous, Reactive)
-{
-public:
- JAWS_IO (void);
- virtual ~JAWS_IO (void);
-
- // void acceptor (JAWS_IO_Acceptor *acceptor);
- // void handler (JAWS_IO_Handler *handler);
- // void handle (ACE_HANDLE h);
- // ACE_HANDLE handle (void);
-
- // James, please add documentation here.
-
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0) = 0;
- // accept a passive connection
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size) = 0;
- // read from the handle size bytes into the message block.
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE file,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size) = 0;
- // send header, filename, trailer to the handle.
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size) = 0;
- // send header, filename, trailer to the handle.
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length) = 0;
- // read data from the handle and store in filename.
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length) = 0;
- // send a confirmation message to the handle.
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length) = 0;
- // send an error message to the handle.
-
-protected:
- ACE_HANDLE handle_;
- JAWS_IO_Handler *handler_;
- ACE_INET_Addr *inet_addr_;
- JAWS_IO_Acceptor *acceptor_;
-};
-
-class JAWS_Export JAWS_Synch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Synchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Synch_IO (void);
-
- virtual ~JAWS_Synch_IO (void);
-
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length);
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
-protected:
- virtual void send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-};
-
-typedef ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>
- JAWS_Synch_IO_Singleton;
-
-// This only works on asynch I/O-capable systems.
-#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
-
-class JAWS_Export JAWS_Asynch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Asynchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Asynch_IO (void);
-
- virtual ~JAWS_Asynch_IO (void);
-
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length);
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
-#ifdef ACE_LYNXOS_MAJOR
-#ifdef ERROR_MESSAGE
-#undef ERROR_MESSAGE
-#endif /* ERROR_MESSAGE */
-#endif /* ACE_LYNXOS_MAJOR */
-
- enum Message_Types
- {
- CONFIRMATION,
- ERROR_MESSAGE
- };
-
-protected:
-
- virtual void send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length,
- long act);
-};
-
-typedef ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>
- JAWS_Asynch_IO_Singleton;
-
-class JAWS_Export JAWS_Asynch2_IO : public JAWS_Asynch_IO
-{
- // This version of Asynch_IO has a do nothing accept() implementation.
-public:
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
- // does nothing
-
-};
-
-typedef ACE_Singleton<JAWS_Asynch2_IO, ACE_SYNCH_MUTEX>
- JAWS_Asynch2_IO_Singleton;
-
-#endif /* ACE_HAS_WIN32_OVERLAPPED_IO || ACE_HAS_AIO_CALLS */
-
-#endif /* JAWS_IO_H */
diff --git a/ACE/apps/JAWS2/JAWS/IO_Acceptor.cpp b/ACE/apps/JAWS2/JAWS/IO_Acceptor.cpp
index b0d04c260b2..979092e30ac 100644
--- a/ACE/apps/JAWS2/JAWS/IO_Acceptor.cpp
+++ b/ACE/apps/JAWS2/JAWS/IO_Acceptor.cpp
@@ -5,7 +5,7 @@
#include "ace/OS_NS_sys_socket.h"
-ACE_RCSID(JAWS, IO_Acceptor, "$Id$")
+
JAWS_IO_Acceptor::JAWS_IO_Acceptor (void)
{
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..1e9d1af427c 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"
@@ -13,8 +13,6 @@
#include "JAWS/Waiter.h"
#include "JAWS/Filecache.h"
-ACE_RCSID(JAWS, IO_Handler, "$Id$")
-
JAWS_Abstract_IO_Handler::~JAWS_Abstract_IO_Handler (void)
{
}
diff --git a/ACE/apps/JAWS2/JAWS/IO_Handler.h b/ACE/apps/JAWS2/JAWS/IO_Handler.h
index 6b67fdbaa12..8ece32162a4 100644
--- a/ACE/apps/JAWS2/JAWS/IO_Handler.h
+++ b/ACE/apps/JAWS2/JAWS/IO_Handler.h
@@ -1,19 +1,14 @@
/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file IO_Handler.h
+ *
+ * $Id$
+ *
+ * @author James Hu
+ */
+//=============================================================================
#ifndef JAWS_IO_HANDLER_H
#define JAWS_IO_HANDLER_H
@@ -30,7 +25,6 @@
#include "JAWS/Export.h"
-// #include "JAWS/IO.h"
class JAWS_IO;
class JAWS_Synch_IO;
class JAWS_Asynch_IO;
@@ -44,13 +38,14 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Message_Block;
ACE_END_VERSIONED_NAMESPACE_DECL
+/**
+ * @class JAWS_Abstract_IO_Handler
+ *
+ * @brief This class defines the abstract interface for an I/O handler
+ * class in the context of Web-likes servers
+ *
+ */
class JAWS_Export JAWS_Abstract_IO_Handler
- // = TITLE
- //
- // This class defines the abstract interface for an I/O handler
- // class in the context of Web-likes servers
- //
- // = DESCRIPTION
{
public:
virtual ~JAWS_Abstract_IO_Handler (void);
@@ -61,74 +56,74 @@ public:
virtual void message_block (JAWS_Data_Block *mb) = 0;
virtual JAWS_Data_Block *message_block (void) = 0;
+ /// This method is called by the IO class when new passive connection has
+ /// been established.
virtual void accept_complete (ACE_HANDLE handle) = 0;
- // This method is called by the IO class when new passive connection has
- // been established.
+ /// This method is called by the IO class when new passive connection has
+ /// been established.
virtual void accept_error (void) = 0;
- // This method is called by the IO class when new passive connection has
- // been established.
#if 0
+ /// This method is called by the IO class when new active connection has
+ /// been established.
virtual void connect_complete (ACE_Message_Block *) = 0;
- // This method is called by the IO class when new active connection has
- // been established.
+ /// This method is called by the IO class when new active connection has
+ /// been established.
virtual void connect_error (ACE_Message_Block *) = 0;
- // This method is called by the IO class when new active connection has
- // been established.
#endif
+ /// This method is called by the IO class when new client data shows
+ /// up.
virtual void read_complete (ACE_Message_Block *data) = 0;
- // This method is called by the IO class when new client data shows
- // up.
+ /// This method is called by the IO class when there was an error in
+ /// reading new data from the client.
virtual void read_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // reading new data from the client.
+ /// This method is called by the IO class when the requested file has
+ /// been successfully transmitted to the client.
virtual void transmit_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully transmitted to the client.
+ /// This method is called by the IO class when there was an error in
+ /// transmitting the requested file to the client.
virtual void transmit_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // transmitting the requested file to the client.
+ /// This method is called by the IO class when the requested file has
+ /// been successfully received from the client.
virtual void receive_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully received from the client.
+ /// This method is called by the IO class when there was an error in
+ /// receiving the requested file from the client.
virtual void receive_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // receiving the requested file from the client.
+ /// This method is called by the IO class when there was an error in
+ /// writing data to the client.
virtual void write_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // writing data to the client.
+ /// This method is called by the IO class when the confirmation
+ /// message has been delivered to the client.
virtual void confirmation_message_complete (void) = 0;
- // This method is called by the IO class when the confirmation
- // message has been delivered to the client.
+ /// This method is called by the IO class when the error message has
+ /// been delivered to the client.
virtual void error_message_complete (void) = 0;
- // This method is called by the IO class when the error message has
- // been delivered to the client.
+ /// Returns the factory for this IO handler
virtual JAWS_IO_Handler_Factory *factory (void) = 0;
- // Returns the factory for this IO handler
+ /// Returns the socket handle for this handler
virtual ACE_HANDLE handle (void) const = 0;
- // Returns the socket handle for this handler
+ /// Cleans up the handler.
virtual void done (void) = 0;
- // Cleans up the handler.
+ /// Returns the status of the handler
virtual int status (void) = 0;
- // Returns the status of the handler
+ /// puts handler in an idle state
virtual void idle (void) = 0;
- // puts handler in an idle state
enum { IDLE = 0, IDLE_A = 1,
ACCEPT_OK = 2, ACCEPT_OK_A = 3,
@@ -140,8 +135,8 @@ public:
TRANSMIT_OK = 14, TRANSMIT_OK_A = 15,
TRANSMIT_ERROR = 16, TRANSMIT_ERROR_A = 17,
RECEIVE_OK = 18, RECEIVE_OK_A = 19,
+ /// The different states of the handler
RECEIVE_ERROR = 20, RECEIVE_ERROR_A = 21 };
- // The different states of the handler
};
@@ -156,34 +151,34 @@ public:
JAWS_Asynch_Handler (void);
virtual ~JAWS_Asynch_Handler (void);
+ /// This method will be called when an asynchronous read completes on
+ /// a stream.
virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result
&result);
- // This method will be called when an asynchronous read completes on
- // a stream.
+ /// This method will be called when an asynchronous write completes
+ /// on a stream.
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result
&result);
- // This method will be called when an asynchronous write completes
- // on a stream.
+ /// This method will be called when an asynchronous transmit file
+ /// completes.
virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result
&result);
- // This method will be called when an asynchronous transmit file
- // completes.
+ /// This method will be called when an asynchronous accept completes.
virtual void handle_accept (const ACE_Asynch_Accept::Result &result);
- // This method will be called when an asynchronous accept completes.
virtual void handler (JAWS_Asynch_IO_Handler *ioh);
virtual JAWS_Asynch_IO_Handler * handler (void);
virtual void dispatch_handler (void);
+ /// Call back entry point for ACE_Asynch_Acceptor
virtual void open (ACE_HANDLE h, ACE_Message_Block &mb);
- // Call back entry point for ACE_Asynch_Acceptor
+ /// Receives the ACT.
virtual void act (const void *act_ref);
- // Receives the ACT.
//virtual ACE_HANDLE handle (void) const;
@@ -231,34 +226,34 @@ public:
virtual JAWS_Data_Block *message_block (void);
protected:
+ /// The state of the handler.
int status_;
- // The state of the handler.
+ /// This maintains the state of the request.
JAWS_Data_Block *mb_;
- // This maintains the state of the request.
+ /// The socket handle returned from accept.
ACE_HANDLE handle_;
- // The socket handle returned from accept.
+ /// This is a reference to the next stage of the pipeline when the IO
+ /// request completes.
JAWS_Pipeline_Handler *task_;
- // This is a reference to the next stage of the pipeline when the IO
- // request completes.
+ /// The reference to the handler's factory.
JAWS_IO_Handler_Factory *factory_;
- // The reference to the handler's factory.
};
class JAWS_Export JAWS_IO_Handler_Factory
{
public:
+ /// Destructor
virtual ~JAWS_IO_Handler_Factory (void);
- // Destructor
+ /// This creates a new JAWS_IO_Handler
virtual JAWS_IO_Handler *create_io_handler (void);
- // This creates a new JAWS_IO_Handler
+ /// This deletes a JAWS_IO_Handler
virtual void destroy_io_handler (JAWS_IO_Handler *handler);
- // This deletes a JAWS_IO_Handler
};
typedef JAWS_IO_Handler JAWS_Synch_IO_Handler;
@@ -272,14 +267,14 @@ typedef ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
class JAWS_Export JAWS_Asynch_IO_Handler_Factory : public JAWS_IO_Handler_Factory
{
public:
+ /// Destructor
virtual ~JAWS_Asynch_IO_Handler_Factory (void);
- // Destructor
+ /// This creates a new JAWS_IO_Handler
virtual JAWS_IO_Handler *create_io_handler (void);
- // This creates a new JAWS_IO_Handler
+ /// This deletes a JAWS_IO_Handler
virtual void destroy_io_handler (JAWS_IO_Handler *handler);
- // This deletes a JAWS_IO_Handler
};
class JAWS_Export JAWS_Asynch_IO_Handler : public JAWS_IO_Handler
diff --git a/ACE/apps/JAWS2/JAWS/Jaws_IO.cpp b/ACE/apps/JAWS2/JAWS/Jaws_IO.cpp
new file mode 100644
index 00000000000..40a53610169
--- /dev/null
+++ b/ACE/apps/JAWS2/JAWS/Jaws_IO.cpp
@@ -0,0 +1,595 @@
+// $Id$
+
+#include "ace/Message_Block.h"
+#include "ace/SOCK_Stream.h"
+#include "ace/Filecache.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_sys_uio.h"
+#include "ace/OS_NS_sys_socket.h"
+#include "ace/Min_Max.h"
+
+#include "JAWS/Data_Block.h"
+#include "JAWS/Policy.h"
+#include "JAWS/Jaws_IO.h"
+#include "JAWS/IO_Handler.h"
+#include "JAWS/IO_Acceptor.h"
+#include "JAWS/Filecache.h"
+
+#include "ace/Asynch_IO.h" //for ACE_Asynch_Write_Stream
+
+// #include "HTTP_Helpers.h"
+
+
+
+JAWS_IO::JAWS_IO (void)
+ : handle_ (ACE_INVALID_HANDLE),
+ handler_ (0),
+ inet_addr_ (0),
+ acceptor_ (0)
+{
+}
+
+JAWS_IO::~JAWS_IO (void)
+{
+}
+
+#if 0
+ACE_HANDLE
+JAWS_IO::handle (void)
+{
+ return this->handle_;
+}
+
+void
+JAWS_IO::handle (ACE_HANDLE handle)
+{
+ this->handle_ = handle;
+}
+
+void
+JAWS_IO::handler (JAWS_IO_Handler *handler)
+{
+ this->handler_ = handler;
+}
+
+void
+JAWS_IO::acceptor (JAWS_IO_Acceptor *acceptor)
+{
+ this->acceptor_ = acceptor;
+}
+#endif /* 0 */
+
+JAWS_Synch_IO::JAWS_Synch_IO (void)
+{
+ this->acceptor_ = JAWS_IO_Synch_Acceptor_Singleton::instance ();
+}
+
+JAWS_Synch_IO::~JAWS_Synch_IO (void)
+{
+ if (this->handle_ != ACE_INVALID_HANDLE)
+ ACE_OS::closesocket (this->handle_);
+}
+
+void
+JAWS_Synch_IO::accept (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *,
+ unsigned int)
+{
+ ACE_SOCK_Stream new_stream;
+ new_stream.set_handle (ACE_INVALID_HANDLE);
+ if (this->acceptor_->accept (new_stream) == -1)
+ ioh->accept_error ();
+ else
+ ioh->accept_complete (new_stream.get_handle ());
+}
+
+void
+JAWS_Synch_IO::read (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *mb,
+ unsigned int size)
+{
+ JAWS_TRACE ("JAWS_Synch_IO::read");
+
+ ACE_SOCK_Stream stream;
+
+ stream.set_handle (ioh->handle ());
+ int result = stream.recv (mb->wr_ptr (), size);
+
+ if (result <= 0)
+ ioh->read_error ();
+ else
+ {
+ JAWS_TRACE ("JAWS_Synch_IO::read success");
+ mb->wr_ptr (result);
+ ioh->read_complete (mb);
+ }
+}
+
+void
+JAWS_Synch_IO::receive_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ void *initial_data,
+ unsigned int initial_data_length,
+ unsigned int entire_length)
+{
+ ACE_Filecache_Handle handle (filename,
+ (int) entire_length);
+
+ int result = handle.error ();
+
+ if (result == ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+ ACE_SOCK_Stream stream;
+ stream.set_handle (ioh->handle ());
+
+ int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
+ ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);
+
+ int bytes_to_read = entire_length - bytes_to_memcpy;
+
+ int bytes = stream.recv_n ((char *)
+ handle.address () + initial_data_length,
+ bytes_to_read);
+ if (bytes == bytes_to_read)
+ ioh->receive_file_complete ();
+ else
+ result = -1;
+ }
+
+ if (result != ACE_Filecache_Handle::ACE_SUCCESS)
+ ioh->receive_file_error (result);
+}
+
+void
+JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
+ ACE_HANDLE handle,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size)
+{
+ int result = 0;
+
+ if (handle != ACE_INVALID_HANDLE)
+ {
+ ACE_SOCK_Stream stream;
+ stream.set_handle (ioh->handle ());
+
+ if ((unsigned long) stream.send_n (header, header_size) < header_size)
+ {
+ result = -1;
+ }
+ else
+ {
+ int count;
+ char buf[BUFSIZ];
+
+ do
+ {
+ count = ACE_OS::read (handle, buf, sizeof (buf));
+ if (count <= 0)
+ break;
+
+ if (stream.send_n (buf, count) < count)
+ {
+ result = -1;
+ }
+ }
+ while (result == 0);
+
+ if ((unsigned long) stream.send_n (trailer, trailer_size)
+ < trailer_size)
+ {
+ result = -1;
+ }
+ }
+ }
+
+ if (result == 0)
+ ioh->transmit_file_complete ();
+ else
+ ioh->transmit_file_error (result);
+}
+
+void
+JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size)
+{
+ int result = 0;
+
+ if (filename == 0)
+ {
+ ioh->transmit_file_error (-1);
+ return;
+ }
+
+ JAWS_Cached_FILE cf (filename);
+
+ if (cf.file ()->get_handle () != ACE_INVALID_HANDLE
+ && cf.mmap () != 0)
+ {
+#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
+ ACE_FILE_Info info;
+ cf.file ()->get_info (info);
+
+ if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
+ {
+ ACE_SOCK_Stream stream;
+ stream.set_handle (ioh->handle ());
+ if (((u_long) stream.send_n (header, header_size) == header_size)
+ && (stream.send_n (cf.mmap ()->addr (), info.size_)
+ == info.size_)
+ && ((u_long) stream.send_n (trailer, trailer_size)
+ == trailer_size))
+ {
+ ioh->transmit_file_complete ();
+ return;
+ }
+ else
+ {
+ result = -1;
+ }
+ }
+ else
+ {
+ result = -1;
+ }
+#else
+ // Attempting to use writev
+ // Is this faster?
+ iovec iov[3];
+ int iovcnt = 0;
+ if (header_size > 0)
+ {
+ iov[iovcnt].iov_base = const_cast<char*> (header);
+ iov[iovcnt].iov_len = header_size;
+ iovcnt++;
+ }
+
+ ACE_FILE_Info info;
+
+ if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
+ {
+ iov[iovcnt].iov_base = (char *) cf.mmap ()->addr ();
+ iov[iovcnt].iov_len = info.size_;
+ iovcnt++;
+ }
+ if (trailer_size > 0)
+ {
+ iov[iovcnt].iov_base = const_cast<char*> (trailer);
+ iov[iovcnt].iov_len = trailer_size;
+ iovcnt++;
+ }
+ if (ACE_OS::writev (ioh->handle (), iov, iovcnt) < 0)
+ {
+ result = -1;
+ }
+ else
+ {
+ ioh->transmit_file_complete ();
+ return;
+ }
+#endif /* ACE_JAWS_BASELINE */
+ }
+ else if (cf.file ()->get_handle () != ACE_INVALID_HANDLE
+ && cf.mmap () == 0)
+ {
+ this->transmit_file (ioh,
+ cf.file ()->get_handle (),
+ header, header_size,
+ trailer, trailer_size);
+ return;
+ }
+ else
+ {
+ result = -1;
+ }
+
+ if (result != 0)
+ {
+ ioh->transmit_file_error (result);
+ }
+}
+
+void
+JAWS_Synch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length)
+{
+ this->send_message (ioh, buffer, length);
+ ioh->confirmation_message_complete ();
+}
+
+void
+JAWS_Synch_IO::send_error_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length)
+{
+ this->send_message (ioh, buffer, length);
+ ioh->error_message_complete ();
+}
+
+void
+JAWS_Synch_IO::send_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length)
+{
+ ACE_SOCK_Stream stream;
+ stream.set_handle (ioh->handle ());
+ stream.send_n (buffer, length);
+}
+
+// This only works on asynch I/O-capable systems.
+#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
+
+JAWS_Asynch_IO::JAWS_Asynch_IO (void)
+{
+}
+
+JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
+{
+ if (this->handle_ != ACE_INVALID_HANDLE)
+ ACE_OS::closesocket (this->handle_);
+}
+
+void
+JAWS_Asynch_IO::accept (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *,
+ unsigned int)
+{
+ JAWS_TRACE ("JAWS_Asynch_IO::accept");
+
+ ioh->idle ();
+
+ JAWS_Data_Block *db = ioh->message_block ();
+ //ACE_HANDLE listen_handle = db->policy ()->acceptor ()->get_handle ();
+
+ //JAWS_Asynch_IO_Handler *aioh =
+ // dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
+
+ size_t bytes_to_read = JAWS_Data_Block::JAWS_DATA_BLOCK_SIZE;
+
+ if (db->policy ()->acceptor ()->accept (bytes_to_read, ioh) == -1)
+ ioh->accept_error ();
+}
+
+void
+JAWS_Asynch_IO::read (JAWS_IO_Handler *ioh,
+ ACE_Message_Block* mb,
+ unsigned int size)
+{
+ JAWS_TRACE ("JAWS_Asynch_IO::read");
+
+ ioh->idle ();
+
+ JAWS_Asynch_IO_Handler *aioh =
+ dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
+
+ ACE_Asynch_Read_Stream ar;
+
+ if (ar.open (*(aioh->handler ()), aioh->handle ()) == -1
+ || ar.read (*mb, size) == -1)
+ aioh->read_error ();
+}
+
+void
+JAWS_Asynch_IO::receive_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ void *initial_data,
+ unsigned int initial_data_length,
+ unsigned int entire_length)
+{
+ JAWS_TRACE ("JAWS_Asynch_IO::receive_file");
+
+ ioh->idle ();
+
+ JAWS_Asynch_IO_Handler *aioh =
+ dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
+
+ ACE_Message_Block *mb = 0;
+ ACE_Filecache_Handle *handle;
+
+ ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, ACE_NOMAP));
+
+ int result = handle->error ();
+
+ if (result == ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+ ACE_OS::memcpy (handle->address (),
+ initial_data,
+ initial_data_length);
+
+ int bytes_to_read = entire_length - initial_data_length;
+
+ ACE_NEW (mb, ACE_Message_Block ((char *)handle->address ()
+ + initial_data_length, bytes_to_read));
+
+ if (mb == 0)
+ {
+ errno = ENOMEM;
+ result = -1;
+ }
+ else
+ {
+ ACE_Asynch_Read_Stream ar;
+
+ if (ar.open (*(aioh->handler ()), aioh->handle ()) == -1
+ || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
+ result = -1;
+ }
+ }
+
+ if (result != ACE_Filecache_Handle::ACE_SUCCESS)
+ {
+ this->handler_->receive_file_error (result);
+ delete mb;
+ delete handle;
+ }
+}
+
+void
+JAWS_Asynch_IO::transmit_file (JAWS_IO_Handler *ioh,
+ ACE_HANDLE handle,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size)
+{
+ JAWS_TRACE ("JAWS_Asynch_IO::transmit_file");
+
+ ioh->idle ();
+
+ JAWS_Asynch_IO_Handler *aioh =
+ dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
+
+ ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
+
+ int result = 0;
+
+ if (handle != ACE_INVALID_HANDLE)
+ {
+ ACE_Message_Block hdr_mb (header, header_size);
+ ACE_Message_Block trl_mb (trailer, trailer_size);
+
+ header_and_trailer =
+ new ACE_Asynch_Transmit_File::Header_And_Trailer (hdr_mb.duplicate (),
+ header_size,
+ trl_mb.duplicate (),
+ trailer_size);
+
+ ACE_Asynch_Transmit_File tf;
+
+ if (tf.open (*(aioh->handler ()), aioh->handle ()) == -1
+ || tf.transmit_file (handle, // file handle
+ header_and_trailer, // header and trailer data
+ 0, // bytes_to_write
+ 0, // offset
+ 0, // offset_high
+ 0, // bytes_per_send
+ 0, // flags
+ 0 // act
+ ) == -1)
+ result = -1;
+ }
+
+ if (result != 0)
+ {
+ ioh->transmit_file_error (result);
+ delete header_and_trailer;
+ }
+}
+
+void
+JAWS_Asynch_IO::transmit_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size)
+{
+ int result = 0;
+
+ JAWS_TRACE ("JAWS_Asynch_IO::transmit_file");
+
+ ioh->idle ();
+
+ JAWS_Asynch_IO_Handler *aioh =
+ dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
+
+ ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
+ JAWS_Cached_FILE *cf = new JAWS_Cached_FILE (filename);
+
+ if (cf->file ()->get_handle () != ACE_INVALID_HANDLE)
+ {
+ ACE_Message_Block hdr_mb (header, header_size);
+ ACE_Message_Block trl_mb (trailer, trailer_size);
+
+ header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
+ (hdr_mb.duplicate (), header_size, trl_mb.duplicate (), trailer_size);
+
+ ACE_Asynch_Transmit_File tf;
+
+ if (tf.open (*(aioh->handler ()), aioh->handle ()) == -1
+ || tf.transmit_file (cf->file ()->get_handle (), // file handle
+ header_and_trailer, // header and trailer data
+ 0, // bytes_to_write
+ 0, // offset
+ 0, // offset_high
+ 0, // bytes_per_send
+ 0, // flags
+ cf // act
+ ) == -1)
+ result = -1;
+ }
+
+ if (result != 0)
+ {
+ ioh->transmit_file_error (result);
+ delete header_and_trailer;
+ delete cf;
+ }
+}
+
+void
+JAWS_Asynch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length)
+{
+ this->send_message (ioh, buffer, length, CONFIRMATION);
+}
+
+void
+JAWS_Asynch_IO::send_error_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length)
+{
+ this->send_message (ioh, buffer, length, ERROR_MESSAGE);
+}
+
+void
+JAWS_Asynch_IO::send_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length,
+ long act)
+{
+ ioh->idle ();
+
+ JAWS_Asynch_IO_Handler *aioh =
+ dynamic_cast<JAWS_Asynch_IO_Handler *> (ioh);
+
+ ACE_Message_Block *mb = 0;
+ ACE_NEW (mb, ACE_Message_Block (buffer, length));
+
+ if (mb == 0)
+ {
+ this->handler_->error_message_complete ();
+ return;
+ }
+
+ ACE_Asynch_Write_Stream aw;
+ if (aw.open (*(aioh->handler ()), aioh->handle ()) == -1
+ || aw.write (*mb, length, (void *) static_cast<intptr_t> (act)) == -1)
+ {
+ mb->release ();
+
+ if (act == CONFIRMATION)
+ ioh->confirmation_message_complete ();
+ else
+ ioh->error_message_complete ();
+ }
+}
+
+void
+JAWS_Asynch2_IO::accept (JAWS_IO_Handler *,
+ ACE_Message_Block *,
+ unsigned int)
+{
+}
+
+#endif /* ACE_HAS_WIN32_OVERLAPPED_IO || ACE_HAS_AIO_CALLS */
+
diff --git a/ACE/apps/JAWS2/JAWS/Jaws_IO.h b/ACE/apps/JAWS2/JAWS/Jaws_IO.h
new file mode 100644
index 00000000000..3bf68f7fb0c
--- /dev/null
+++ b/ACE/apps/JAWS2/JAWS/Jaws_IO.h
@@ -0,0 +1,262 @@
+/* -*- c++ -*- */
+
+//=============================================================================
+/**
+ * @file Jaws_IO.h
+ *
+ * $Id$
+ *
+ * @author James Hu
+ */
+//=============================================================================
+
+
+#ifndef JAWS_IO_H
+#define JAWS_IO_H
+
+#include "ace/ACE.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Asynch_IO.h"
+#include "ace/SOCK_Stream.h"
+#include "ace/Singleton.h"
+#include "ace/Synch_Traits.h"
+
+#include "JAWS/Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+class ACE_Message_Block;
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+class JAWS_IO_Handler;
+class JAWS_IO_Acceptor;
+
+/**
+ * @class JAWS_IO
+ *
+ * @brief This class defines the abstract interface for an I/O class in
+ * the context of Web-likes servers
+ *
+ * An I/O class should have the following interface. Derived
+ * classes will define the exactly how the I/O will take place
+ * (Asynchronous, Synchronous, Reactive)
+ */
+class JAWS_Export JAWS_IO
+{
+public:
+ JAWS_IO (void);
+ virtual ~JAWS_IO (void);
+
+ // void acceptor (JAWS_IO_Acceptor *acceptor);
+ // void handler (JAWS_IO_Handler *handler);
+ // void handle (ACE_HANDLE h);
+ // ACE_HANDLE handle (void);
+
+ // James, please add documentation here.
+
+ /// accept a passive connection
+ virtual void accept (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *mb = 0,
+ unsigned int size = 0) = 0;
+
+ /// read from the handle size bytes into the message block.
+ virtual void read (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *mb,
+ unsigned int size) = 0;
+
+ /// send header, filename, trailer to the handle.
+ virtual void transmit_file (JAWS_IO_Handler *ioh,
+ ACE_HANDLE file,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size) = 0;
+
+ /// send header, filename, trailer to the handle.
+ virtual void transmit_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size) = 0;
+
+ /// read data from the handle and store in filename.
+ virtual void receive_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ void *initial_data,
+ unsigned int initial_data_length,
+ unsigned int entire_length) = 0;
+
+ /// send a confirmation message to the handle.
+ virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length) = 0;
+
+ /// send an error message to the handle.
+ virtual void send_error_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length) = 0;
+
+protected:
+ ACE_HANDLE handle_;
+ JAWS_IO_Handler *handler_;
+ ACE_INET_Addr *inet_addr_;
+ JAWS_IO_Acceptor *acceptor_;
+};
+
+/**
+ * @class JAWS_Synch_IO
+ *
+ * @brief This class defines the interface for a Synchronous I/O class.
+ *
+ */
+class JAWS_Export JAWS_Synch_IO : public JAWS_IO
+{
+public:
+ JAWS_Synch_IO (void);
+
+ virtual ~JAWS_Synch_IO (void);
+
+ virtual void accept (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *mb = 0,
+ unsigned int size = 0);
+
+ virtual void read (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *mb,
+ unsigned int size);
+
+ virtual void transmit_file (JAWS_IO_Handler *ioh,
+ ACE_HANDLE handle,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size);
+
+ virtual void transmit_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size);
+
+ virtual void receive_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ void *initial_data,
+ unsigned int initial_data_length,
+ unsigned int entire_length);
+
+ virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length);
+
+ virtual void send_error_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length);
+
+protected:
+ virtual void send_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length);
+};
+
+typedef ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>
+ JAWS_Synch_IO_Singleton;
+
+// This only works on asynch I/O-capable systems.
+#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
+
+/**
+ * @class JAWS_Asynch_IO
+ *
+ * @brief This class defines the interface for a Asynchronous I/O class.
+ *
+ */
+class JAWS_Export JAWS_Asynch_IO : public JAWS_IO
+{
+public:
+ JAWS_Asynch_IO (void);
+
+ virtual ~JAWS_Asynch_IO (void);
+
+ virtual void accept (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *mb = 0,
+ unsigned int size = 0);
+
+ virtual void read (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *mb,
+ unsigned int size);
+
+ virtual void transmit_file (JAWS_IO_Handler *ioh,
+ ACE_HANDLE handle,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size);
+
+ virtual void transmit_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ const char *header,
+ unsigned int header_size,
+ const char *trailer,
+ unsigned int trailer_size);
+
+ virtual void receive_file (JAWS_IO_Handler *ioh,
+ const char *filename,
+ void *initial_data,
+ unsigned int initial_data_length,
+ unsigned int entire_length);
+
+ virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length);
+
+ virtual void send_error_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length);
+
+#ifdef ACE_LYNXOS_MAJOR
+#ifdef ERROR_MESSAGE
+#undef ERROR_MESSAGE
+#endif /* ERROR_MESSAGE */
+#endif /* ACE_LYNXOS_MAJOR */
+
+ enum Message_Types
+ {
+ CONFIRMATION,
+ ERROR_MESSAGE
+ };
+
+protected:
+
+ virtual void send_message (JAWS_IO_Handler *ioh,
+ const char *buffer,
+ unsigned int length,
+ long act);
+};
+
+typedef ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>
+ JAWS_Asynch_IO_Singleton;
+
+/**
+ * @class JAWS_Asynch2_IO
+ This version of Asynch_IO has a do nothing accept() implementation.
+ */
+class JAWS_Export JAWS_Asynch2_IO : public JAWS_Asynch_IO
+{
+public:
+ /// does nothing
+ virtual void accept (JAWS_IO_Handler *ioh,
+ ACE_Message_Block *mb = 0,
+ unsigned int size = 0);
+
+};
+
+typedef ACE_Singleton<JAWS_Asynch2_IO, ACE_SYNCH_MUTEX>
+ JAWS_Asynch2_IO_Singleton;
+
+#endif /* ACE_HAS_WIN32_OVERLAPPED_IO || ACE_HAS_AIO_CALLS */
+
+#endif /* JAWS_IO_H */
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.cpp b/ACE/apps/JAWS2/JAWS/Pipeline.cpp
index e0f298a48ea..6753854a683 100644
--- a/ACE/apps/JAWS2/JAWS/Pipeline.cpp
+++ b/ACE/apps/JAWS2/JAWS/Pipeline.cpp
@@ -2,7 +2,7 @@
#include "JAWS/Pipeline.h"
-ACE_RCSID(JAWS, Pipeline, "$Id$")
+
JAWS_Pipeline::JAWS_Pipeline (void)
{
diff --git a/ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp b/ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp
index 3ea3ab17479..afacc4eacb4 100644
--- a/ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp
+++ b/ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp
@@ -5,7 +5,7 @@
#include "JAWS/Pipeline_Handler_T.h"
-ACE_RCSID(JAWS, Pipeline_Handler_T, "$Id$")
+
template <class TYPE>
JAWS_Pipeline_Abstract_Handler<TYPE>::JAWS_Pipeline_Abstract_Handler (void)
diff --git a/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp b/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp
index 0368acfc6c4..277e6d72586 100644
--- a/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp
+++ b/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp
@@ -1,13 +1,13 @@
// $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"
#include "JAWS/IO_Handler.h"
#include "JAWS/Policy.h"
-ACE_RCSID(JAWS, Pipeline_Tasks, "$Id$")
+
JAWS_Pipeline_Handler::JAWS_Pipeline_Handler (void)
: policy_ (0)
diff --git a/ACE/apps/JAWS2/JAWS/Policy.cpp b/ACE/apps/JAWS2/JAWS/Policy.cpp
index 9eac271416a..485c6658b73 100644
--- a/ACE/apps/JAWS2/JAWS/Policy.cpp
+++ b/ACE/apps/JAWS2/JAWS/Policy.cpp
@@ -5,7 +5,7 @@
#include "JAWS/IO_Handler.h"
#include "JAWS/IO_Acceptor.h"
-ACE_RCSID(JAWS, Policy, "$Id$")
+
JAWS_Dispatch_Policy::JAWS_Dispatch_Policy (void)
{
diff --git a/ACE/apps/JAWS2/JAWS/Policy.h b/ACE/apps/JAWS2/JAWS/Policy.h
index 9255594c056..eb63bd8d0d9 100644
--- a/ACE/apps/JAWS2/JAWS/Policy.h
+++ b/ACE/apps/JAWS2/JAWS/Policy.h
@@ -11,13 +11,13 @@ class JAWS_IO;
class JAWS_IO_Handler;
class JAWS_IO_Handler_Factory;
+/**
+ * Policy mechanism for choosing different concurrency models.
+ *
+ * Given some (unspecified) state, decides what the concurrency
+ * model should be. (For now, we always return the same model.)
+ */
class JAWS_Export JAWS_Dispatch_Policy
- // = TITLE
- // Policy mechanism for choosing different concurrency models.
- //
- // = DESCRIPTION
- // Given some (unspecified) state, decides what the concurrency
- // model should be. (For now, we always return the same model.)
{
public:
JAWS_Dispatch_Policy (void);
diff --git a/ACE/apps/JAWS2/JAWS/Reaper.cpp b/ACE/apps/JAWS2/JAWS/Reaper.cpp
index 6d1d5845cba..98814408447 100644
--- a/ACE/apps/JAWS2/JAWS/Reaper.cpp
+++ b/ACE/apps/JAWS2/JAWS/Reaper.cpp
@@ -4,7 +4,7 @@
#include "JAWS/Concurrency.h"
#include "JAWS/IO_Acceptor.h"
-ACE_RCSID(JAWS, Reaper, "$Id$")
+
JAWS_Reaper::JAWS_Reaper (JAWS_Concurrency_Base *concurrency)
: concurrency_ (concurrency),
@@ -21,7 +21,7 @@ JAWS_Reaper::open (void *)
{
if (this->waiting_ == 0)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g ,this->lock_, -1);
if (this->waiting_ == 0)
{
if (this->activate () == -1)
diff --git a/ACE/apps/JAWS2/JAWS/Reaper.h b/ACE/apps/JAWS2/JAWS/Reaper.h
index 78177f37e85..ceb4340d8d4 100644
--- a/ACE/apps/JAWS2/JAWS/Reaper.h
+++ b/ACE/apps/JAWS2/JAWS/Reaper.h
@@ -19,18 +19,17 @@
class JAWS_Concurrency_Base;
+/**
+ * Reap threads for the concurrency strategies
+ *
+ * The JAWS_Reaper uses the default Thread Manager (while each
+ * concurrency strategy uses their own). The idea is that the
+ * reaper will spawn a thread to reap the threads of a concurrency
+ * strategy. This allows the main thread to reap the threads of
+ * the reaper before exiting.
+ */
class JAWS_Export JAWS_Reaper : public ACE_Task<ACE_SYNCH>
{
- // = TITLE
- // Reap threads for the concurrency strategies
- //
- // = DESCRIPTION
- // The JAWS_Reaper uses the default Thread Manager (while each
- // concurrency strategy uses their own). The idea is that the
- // reaper will spawn a thread to reap the threads of a concurrency
- // strategy. This allows the main thread to reap the threads of
- // the reaper before exiting.
-
public:
JAWS_Reaper (JAWS_Concurrency_Base *concurrency);
virtual ~JAWS_Reaper (void);
diff --git a/ACE/apps/JAWS2/JAWS/Server.cpp b/ACE/apps/JAWS2/JAWS/Server.cpp
index aeb3e9cbd7d..ce0056e2c00 100644
--- a/ACE/apps/JAWS2/JAWS/Server.cpp
+++ b/ACE/apps/JAWS2/JAWS/Server.cpp
@@ -11,12 +11,12 @@
#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"
-ACE_RCSID(JAWS, Server, "$Id$")
+
JAWS_Server::JAWS_Server (void)
: port_ (5432),
diff --git a/ACE/apps/JAWS2/JAWS/Waiter.cpp b/ACE/apps/JAWS2/JAWS/Waiter.cpp
index 17a9826f1e2..4b6b1aec4b8 100644
--- a/ACE/apps/JAWS2/JAWS/Waiter.cpp
+++ b/ACE/apps/JAWS2/JAWS/Waiter.cpp
@@ -5,7 +5,7 @@
#include "JAWS/Waiter.h"
#include "JAWS/IO_Handler.h"
-ACE_RCSID(JAWS, Waiter, "$Id$")
+
JAWS_Waiter::JAWS_Waiter (void)
: iter_ (*this)
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/JAWS2/main.cpp b/ACE/apps/JAWS2/main.cpp
index 1d3198f8ba8..a5f7272ad81 100644
--- a/ACE/apps/JAWS2/main.cpp
+++ b/ACE/apps/JAWS2/main.cpp
@@ -3,7 +3,7 @@
#include "JAWS/Server.h"
#include "HTTP_10.h"
-ACE_RCSID(PROTOTYPE, main, "$Id$")
+
#ifdef ACE_HAS_SIG_C_FUNC
extern "C"
diff --git a/ACE/apps/JAWS3/bench/average.cpp b/ACE/apps/JAWS3/bench/average.cpp
index 568f183dbb3..d6336cc5e9e 100644
--- a/ACE/apps/JAWS3/bench/average.cpp
+++ b/ACE/apps/JAWS3/bench/average.cpp
@@ -1,5 +1,4 @@
// $Id$
-#include "ace/OS.h"
int
ACE_TMAIN(int, ACE_TCHAR *[])
diff --git a/ACE/apps/JAWS3/bench/mkfiles.cpp b/ACE/apps/JAWS3/bench/mkfiles.cpp
index 03d932ec9ef..ce7513e343e 100644
--- a/ACE/apps/JAWS3/bench/mkfiles.cpp
+++ b/ACE/apps/JAWS3/bench/mkfiles.cpp
@@ -1,6 +1,5 @@
// $Id$
-#include "ace/OS.h"
#include "ace/Get_Opt.h"
//FUZZ: disable check_for_math_include/
#include <math.h>
diff --git a/ACE/apps/JAWS3/bench/rqfiles.cpp b/ACE/apps/JAWS3/bench/rqfiles.cpp
index 02cb88110ed..01948c864e7 100644
--- a/ACE/apps/JAWS3/bench/rqfiles.cpp
+++ b/ACE/apps/JAWS3/bench/rqfiles.cpp
@@ -1,6 +1,5 @@
// $Id$
-#include "ace/OS.h"
#include "ace/Get_Opt.h"
#include "ace/Svc_Handler.h"
#include "ace/Reactor.h"
diff --git a/ACE/apps/JAWS3/http/HTTP_Data.h b/ACE/apps/JAWS3/http/HTTP_Data.h
index 44a217addcb..2853dd9ca65 100644
--- a/ACE/apps/JAWS3/http/HTTP_Data.h
+++ b/ACE/apps/JAWS3/http/HTTP_Data.h
@@ -4,7 +4,6 @@
#ifndef JAWS_HTTP_DATA_H
#define JAWS_HTTP_DATA_H
-#include "ace/OS.h"
#include "ace/FILE_IO.h"
#include "ace/SOCK_Stream.h"
#include "ace/Message_Block.h"
diff --git a/ACE/apps/JAWS3/http/HTTP_Service_Handler.cpp b/ACE/apps/JAWS3/http/HTTP_Service_Handler.cpp
index f35897def98..b157388bf13 100644
--- a/ACE/apps/JAWS3/http/HTTP_Service_Handler.cpp
+++ b/ACE/apps/JAWS3/http/HTTP_Service_Handler.cpp
@@ -2,7 +2,6 @@
#define ACE_BUILD_SVC_DLL
-#include "ace/OS.h"
#include "ace/Get_Opt.h"
#include "jaws3/Concurrency.h"
diff --git a/ACE/apps/JAWS3/http/HTTP_Service_Handler.h b/ACE/apps/JAWS3/http/HTTP_Service_Handler.h
index 1908a0d95de..3b469593dcb 100644
--- a/ACE/apps/JAWS3/http/HTTP_Service_Handler.h
+++ b/ACE/apps/JAWS3/http/HTTP_Service_Handler.h
@@ -4,7 +4,6 @@
#ifndef JAWS_HTTP_SERVICE_HANDLER_H
#define JAWS_HTTP_SERVICE_HANDLER_H
-#include "ace/OS.h"
#include "ace/Synch.h"
#include "ace/Acceptor.h"
#include "ace/Svc_Handler.h"
@@ -21,7 +20,7 @@ class JAWS_HTTP_Service_Handler
// An HTTP Server service handler.
//
// = DESCRIPTION
-// This class is reponsible for initializing the JAWS_Protocol_Handler
+// This class is responsible for initializing the JAWS_Protocol_Handler
// with the correct state and data so that the HTTP Server can
// be properly serviced by the underlying framework.
//
diff --git a/ACE/apps/JAWS3/http/HTTP_States.h b/ACE/apps/JAWS3/http/HTTP_States.h
index cabfcf8cb62..465f9c9bba0 100644
--- a/ACE/apps/JAWS3/http/HTTP_States.h
+++ b/ACE/apps/JAWS3/http/HTTP_States.h
@@ -4,7 +4,6 @@
#ifndef JAWS_HTTP_STATES_H
#define JAWS_HTTP_STATES_H
-#include "ace/OS.h"
#include "ace/Singleton.h"
#include "jaws3/Protocol_Handler.h"
diff --git a/ACE/apps/JAWS3/jaws3-todo/FILE_Cache.h b/ACE/apps/JAWS3/jaws3-todo/FILE_Cache.h
deleted file mode 100644
index e81d5d57ecd..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/FILE_Cache.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_FILE_CACHE_H
-#define JAWS_FILE_CACHE_H
-
-class JAWS_FILE_Cache;
-
-typedef const char * KEY;
-typedef JAWS_FILE * VALUE;
-typedef int ATTR;
-typedef ACE_Pair <VALUE, ATTR> CACHE_VALUE;
-typedef ACE_Equal_To<KEY> EQ_FUNC;
-typedef ACE_Hash<KEY> HASH_FUNC;
-
-#define JAWS_KEY_PAIR KEY, CACHE_VALUE
-#define JAWS_MAP_FUNCS HASH_FUNC, EQ_FUNC
-#define JAWS_NULL_SYNCH ACE_SYNCH_NULL_MUTEX
-#define JAWS_MAP_MANAGER_T_ARGS \
- JAWS_KEY_PAIR, JAWS_MAP_FUNCS, JAWS_NULL_SYNCH
-
-typedef ACE_Hash_Map_Manager_Ex<JAWS_MAP_MANAGER_T_ARGS>
- JAWS_FILE_HASH_MAP_MANAGER;
-typedef ACE_Hash_Map_Iterator_Ex<JAWS_MAP_MANAGER_T_ARGS>
- JAWS_FILE_HASH_MAP_ITERATOR;
-typedef ACE_Hash_Map_Reverse_Iterator_Ex<JAWS_MAP_MANAGER_T_ARGS>
- JAWS_FILE_HASH_MAP_REVERSE_ITERATOR;
-
-typedef ACE_Map_Manager<JAWS_KEY_PAIR, JAWS_NULL_SYNCH>
- JAWS_FILE_MAP_MANAGER;
-typedef ACE_Map_Iterator<JAWS_KEY_PAIR, JAWS_NULL_SYNCH>
- JAWS_FILE_MAP_ITERATOR;
-typedef ACE_Map_Reverse_Iterator<JAWS_KEY_PAIR, JAWS_NULL_SYNCH>
- JAWS_FILE_MAP_REVERSE_ITERATOR;
-
-// Need a specialization to decrement a reference count.
-typedef ACE_Cleanup_Strategy<JAWS_KEY_PAIR, JAWS_FILE_HASH_MAP_MANAGER>
- JAWS_FILE_HASH_MAP_CLEANUP;
-
-// Need a specialization to decrement a reference count.
-typedef ACE_Cleanup_Strategy<JAWS_KEY_PAIR, JAWS_FILE_MAP_MANAGER>
- JAWS_FILE_MAP_CLEANUP;
-
-
-
-
-class JAWS_Export JAWS_FILE_Cache
-{
-public:
-};
-
-#endif /* JAWS_FILE_CACHE_H */
diff --git a/ACE/apps/JAWS3/jaws3-todo/Map_Manager.h b/ACE/apps/JAWS3/jaws3-todo/Map_Manager.h
deleted file mode 100644
index 7452ddb21e8..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Map_Manager.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_MAP_MANAGER_H
-#define JAWS_CACHE_MAP_MANAGER_H
-
-template <class EXT_ID>
-class JAWS_Cache_Map_Entry
-{
-public:
-
- JAWS_Cache_Map_Entry ( const EXT_ID &ext_id
- , ACE_Message_Block *&int_id
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next = 0
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev = 0
- );
-
- JAWS_Cache_Map_Entry ( JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev
- );
-
-private:
-
- ~JAWS_Cache_Map_Entry (void) {}
-
-public:
-
- EXT_ID ext_id_;
- ACE_Message_Block *int_id_;
-
- time_t last_update_;
- int ref_count_;
-
- JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next_;
- JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev_;
-
-};
-
-
-template <class EXT_ID, class EQ_FUNC, class ACE_LOCK>
-class JAWS_Map_Manager
-{
-public:
-
- JAWS_Map_Manager (ACE_Allocator *alloc = 0);
- JAWS_Map_Manager (size_t size, ACE_Allocator *alloc = 0);
-
- int open ( size_t size = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_Map_Manager (void);
-
- int bind ( const EXT_ID &key
- , const void * const &data
- , size_t size
- , JAWS_Cache_Map_Entry<EXT_ID> *&entry
- );
-
- int rebind ( const EXT_ID &key
- , const void * const &data
- , size_t size
- , JAWS_Cache_Map_Entry<EXT_ID> *&entry
- );
-
- int find (const EXT_ID &key, JAWS_Cache_Map_Entry<EXT_ID> *&entry);
-
- int unbind (JAWS_Cache_Map_Entry<EXT_ID> *entry);
-
- ACE_Message_Block * make_message_block ( const void * const &data
- , size_t size);
-
- ACE_LOCK lock_;
-
- JAWS_Cache_Map_Entry<EXT_ID> *head_;
- JAWS_Cache_Map_Entry<EXT_ID> *tail_;
-
- ACE_Allocator *allocator_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_Cache_Replacement
-{
-public:
-
- JAWS_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- virtual int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- virtual int close (void);
-
- virtual ~JAWS_Cache_Replacement (void);
-
- virtual int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int update (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int expire (JAWS_Cache_Map_Entry<EXT_ID> *&entry) = 0;
-
- JAWS_Cache_Map_Entry<EXT_ID> *table_;
-
- ACE_Allocator *allocator_;
- ACE_LOCK lock_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_LRU_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_LRU_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_LRU_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_LRU_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int expire (JAWS_Cache_Map_Entry<EXT_ID> *&entry);
-
- int head_;
- int tail_;
-
- JAWS_LRU_Cache_Replacement_Info *info_;
-
-};
-
-
-template <class EXT_ID, class INT_ID, class HASH_FUNC, class EQ_FUNC, class ACE_LOCK>
-class JAWS_Cache_Map_Manager
-{
-public:
-
-
- JAWS_Map_Manager<EXT_ID, INT_ID, EQ_FUNC, ACE_
-};
-
-#endif /* JAWS_CACHE_MAP_MANAGER_H */
diff --git a/ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp b/ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp
deleted file mode 100644
index b528ee190b9..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp
+++ /dev/null
@@ -1,398 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_MAP_MANAGER_T_CPP
-#define JAWS_CACHE_MAP_MANAGER_T_CPP
-
-#include "jaws3/Map_Manager_T.h"
-
-template <class EXT_ID>
-JAWS_Cache_Map_Entry<EXT_ID>
-::JAWS_Cache_Map_Entry ( const EXT_ID &ext_id
- , ACE_Message_Block *&int_id
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev
- )
- : ext_id_ (ext_id)
- , int_id_ (int_id)
- , ref_count_ (1)
- , next_ (next)
- , prev_ (prev)
- , replacement_index_ (-1)
-{
-}
-
-template <class EXT_ID>
-JAWS_Cache_Map_Entry<EXT_ID>
-::JAWS_Cache_Map_Entry ( JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev
- )
- : next_ (next)
- , prev_ (prev)
-{
-}
-
-
-template <class EXT_ID, class EQ_FUNC, class ACE_LOCK>
-class JAWS_Map_Manager
-{
-public:
-
- JAWS_Map_Manager (ACE_Allocator *alloc = 0);
- JAWS_Map_Manager (size_t size, ACE_Allocator *alloc = 0);
-
- //FUZZ: disable check_for_lack_ACE_OS
- int open ( size_t size = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_Map_Manager (void);
-
- int bind ( const EXT_ID &key
- , const void * const &data
- , size_t size
- , JAWS_Cache_Map_Entry<EXT_ID> *&entry
- );
- //FUZZ: enable check_for_lack_ACE_OS
-
- int rebind ( const EXT_ID &key
- , const void * const &data
- , size_t size
- , JAWS_Cache_Map_Entry<EXT_ID> *&entry
- );
-
- int find (const EXT_ID &key, JAWS_Cache_Map_Entry<EXT_ID> *&entry);
-
- int unbind (JAWS_Cache_Map_Entry<EXT_ID> *entry);
-
- ACE_Message_Block * make_message_block ( const void * const &data
- , size_t size);
-
- ACE_LOCK lock_;
-
- JAWS_Cache_Map_Entry<EXT_ID> *head_;
- JAWS_Cache_Map_Entry<EXT_ID> *tail_;
-
- ACE_Allocator *allocator_;
-
-};
-
-#define JAWS_CACHE_REPLACEMENT_TEMPLATE \
- template <class EXT_ID, class ACE_LOCK> \
- JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-
-#define JAWS_LRU_CACHE_REPLACEMENT_TEMPLATE \
- template <class EXT_ID, class ACE_LOCK> \
- JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-
-#define JAWS_LFU_CACHE_REPLACEMENT_TEMPLATE \
- template <class EXT_ID, class ACE_LOCK> \
- JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-
-#define JAWS_FIFO_CACHE_REPLACEMENT_TEMPLATE \
- template <class EXT_ID, class ACE_LOCK> \
- JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-
-JAWS_CACHE_REPLACEMENT_TEMPLATE::JAWS_Cache_Replacement (ACE_Allocator *alloc)
-{
- this->open (ACE_DEFAULT_MAP_SIZE, alloc);
-}
-
-JAWS_Cache_Replacement::
-JAWS_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc)
-{
- this->open (max_entries, alloc);
-}
-
-int
-JAWS_CACHE_REPLACEMENT_TEMPLATE::open ( size_t max_entries
- , ACE_Allocator *alloc
- )
-{
- this->max_entries_ = max_entries;
- this->allocator_ = alloc;
-
- size_t bytes = max_entries * sizeof (JAWS_Cache_Map_Entry<EXT_ID> *);
- void *ptr;
-
- ACE_ALLOCATOR_RETURN (ptr, this->allocator_->malloc (bytes), -1);
-}
-
-int
-JAWS_CACHE_REPLACEMENT_TEMPLATE::close (void)
-{
-}
-
- virtual ~JAWS_Cache_Replacement (void);
-
- virtual int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int update (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual JAWS_Cache_Map_Entry<EXT_ID> * expire (void) = 0;
-
- JAWS_Cache_Map_Entry<EXT_ID> **table_;
- size_t max_entries_;
-
- ACE_Allocator *allocator_;
- ACE_LOCK lock_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_LRU_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_LRU_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_LRU_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- //FUZZ: disable check_for_lack_ACE_OS
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- int close (void);
- //FUZZ: enable check_for_lack_ACE_OS
-
- ~JAWS_LRU_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
-protected:
-
- void insert_i (JAWS_Cache_Map_Entry<EXT_ID> *entry)
- {
- if (this->tail_ == -1)
- this->tail_ = 0;
-
- this->table_[this->tail_] = entry;
- this->next_[this->tail_] = this->tail_+1;
- this->prev_[this->tail_+1] = this->tail_;
- this->next_[this->tail_+1] = -1;
-
- if (this->head_ == -1)
- this->head_ = 0;
-
- this->count_++;
- }
-
- void update_i (int i)
- {
- if (i == this->tail_)
- return;
-
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
- this->remove_i (i);
- this->insert_i (entry);
- }
-
- void remove_i (int i)
- {
- if (this->count_ == 0 || i >= this->count_)
- return;
-
- --this->count_;
- if (i == this->tail_)
- this->tail_ = this->prev_[i];
- if (i == this->head_)
- this->head_ = this->next_[i];
-
- if (i < this->count_)
- {
- this->swap_i (i, this->count_);
- i = this->count_;
- }
-
- int p_i = this->prev_[i];
- int n_i = this->next_[i];
- this->next_[p_i] = n_i;
- this->prev_[n_i] = p_i;
-
- if (this->count_ == 0)
- this->head_ = -1;
- }
-
- void swap_i (int i, int j)
- {
- int p_i, p_j, n_i, n_j;
-
- p_i = this->prev_[i];
- n_i = this->next_[i];
- p_j = this->prev_[j];
- n_j = this->next_[j];
-
- this->next_[p_i] = j;
- this->prev_[n_i] = j;
- this->next_[p_j] = i;
- this->prev_[n_j] = i;
-
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
- this->table_[i] = this->table_[j];
- this->table_[j] = entry;
-
- this->table_[i]->replacement_index_ = i;
- this->table_[j]->replacement_index_ = j;
-
- if (this->head_ == i || this->head_ == j)
- this->head_ = (this->head_ == i) ? j : i;
-
- if (this->tail_ == i || this->tail_ == j)
- this->tail_ = (this->tail_ == i) ? j : i;
- }
-
-private:
-
- int count_;
-
- int head_;
- int tail_;
-
- int *next_;
- int *prev_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_LFU_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_LFU_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_LFU_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- //FUZZ: disable check_for_lack_ACE_OS
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- int close (void);
- //FUZZ: enable check_for_lack_ACE_OS
-
- ~JAWS_LFU_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
-protected:
-
- int sift_up (int i)
- {
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
-
- while (i > 0)
- {
- int p = this->parent (i);
-
- if (entry->ref_count_ >= this->table_[p]->ref_count_)
- break;
-
- this->table_[i] = this->table_[p];
- this->table_[i]->replacement_index_ = i;
-
- i = p;
- }
-
- this->table_[i] = entry;
- this->table_[i]->replacement_index_ = i;
-
- return i;
- }
-
- int sift_down (int i)
- {
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
-
- while (this->left (i) < this->count_)
- {
- int l, r;
-
- l = this->left (i);
- r = this->right (i);
-
- if (r >= this->count_
- || this->table_[l]->ref_count_ <= this->table_[r]->ref_count_)
- r = l;
-
- if (entry->ref_count_ <= this->table_[r]->ref_count_)
- break;
-
- this->table_[i] = this->table_[r];
- this->table_[i]->replacement_index_ = i;
-
- i = r;
- }
-
- this->table_[i] = entry;
- this->table_[i]->replacement_index_ = i;
-
- return i;
- }
-
- int sift (int i)
- {
- int i_sifted;
-
- i_sifted = this->sift_up (i);
- if (i_sifted == i)
- i_sifted = this->sift_down (i);
-
- return i_sifted;
- }
-
- int parent (int i) { return --i/2; }
- int left (int i) { return 2*i+1; }
- int right (int i) { return 2*i+2; }
-
-private:
-
- int count_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_FIFO_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_FIFO_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_FIFO_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- //FUZZ: disable check_for_lack_ACE_OS
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE,
- ACE_Allocator *alloc = 0);
-
- int close (void);
- //FUZZ: enable check_for_lack_ACE_OS
-
- ~JAWS_FIFO_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
- int head_;
- int tail_;
-
- JAWS_FIFO_Cache_Replacement_Info *info_;
-
-};
-
-
-template <class EXT_ID, class INT_ID, class HASH_FUNC, class EQ_FUNC, class ACE_LOCK>
-class JAWS_Cache_Map_Manager
-{
-public:
-
-
- JAWS_Map_Manager<EXT_ID, INT_ID, EQ_FUNC, ACE_
-};
-
-#endif /* JAWS_CACHE_MAP_MANAGER_T_CPP */
diff --git a/ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.h b/ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.h
deleted file mode 100644
index f9ba8c03ba2..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.h
+++ /dev/null
@@ -1,392 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_MAP_MANAGER_T_H
-#define JAWS_CACHE_MAP_MANAGER_T_H
-
-#include "jaws3/Map_Manager.h"
-
-template <class EXT_ID>
-class JAWS_Cache_Map_Entry
-{
-public:
-
- JAWS_Cache_Map_Entry ( const EXT_ID &ext_id
- , ACE_Message_Block *&int_id
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next = 0
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev = 0
- );
-
- JAWS_Cache_Map_Entry ( JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next
- , JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev
- );
-
-private:
-
- ~JAWS_Cache_Map_Entry (void) {}
-
-public:
-
- EXT_ID ext_id_;
- ACE_Message_Block *int_id_;
-
- time_t last_update_;
- int ref_count_;
-
- JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *next_;
- JAWS_Cache_Map_Entry<EXT_ID, INT_ID> *prev_;
-
- int replacement_index_;
-
-};
-
-
-template <class EXT_ID, class EQ_FUNC, class ACE_LOCK>
-class JAWS_Map_Manager
-{
-public:
-
- JAWS_Map_Manager (ACE_Allocator *alloc = 0);
- JAWS_Map_Manager (size_t size, ACE_Allocator *alloc = 0);
-
- int open ( size_t size = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_Map_Manager (void);
-
- int bind ( const EXT_ID &key
- , const void * const &data
- , size_t size
- , JAWS_Cache_Map_Entry<EXT_ID> *&entry
- );
-
- int rebind ( const EXT_ID &key
- , const void * const &data
- , size_t size
- , JAWS_Cache_Map_Entry<EXT_ID> *&entry
- );
-
- int find (const EXT_ID &key, JAWS_Cache_Map_Entry<EXT_ID> *&entry);
-
- int unbind (JAWS_Cache_Map_Entry<EXT_ID> *entry);
-
- ACE_Message_Block * make_message_block ( const void * const &data
- , size_t size);
-
- ACE_LOCK lock_;
-
- JAWS_Cache_Map_Entry<EXT_ID> *head_;
- JAWS_Cache_Map_Entry<EXT_ID> *tail_;
-
- ACE_Allocator *allocator_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_Cache_Replacement
-{
-public:
-
- JAWS_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- virtual int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- virtual int close (void);
-
- virtual ~JAWS_Cache_Replacement (void);
-
- virtual int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int update (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry) = 0;
- virtual JAWS_Cache_Map_Entry<EXT_ID> * expire (void) = 0;
-
- JAWS_Cache_Map_Entry<EXT_ID> **table_;
-
- ACE_Allocator *allocator_;
- ACE_LOCK lock_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_LRU_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_LRU_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_LRU_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_LRU_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
-protected:
-
- void insert_i (JAWS_Cache_Map_Entry<EXT_ID> *entry)
- {
- if (this->tail_ == -1)
- this->tail_ = 0;
-
- this->table_[this->tail_] = entry;
- this->next_[this->tail_] = this->tail_+1;
- this->prev_[this->tail_+1] = this->tail_;
- this->next_[this->tail_+1] = -1;
-
- if (this->head_ == -1)
- this->head_ = 0;
-
- this->count_++;
- }
-
- void update_i (int i)
- {
- if (i == this->tail_)
- return;
-
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
- this->remove_i (i);
- this->insert_i (entry);
- }
-
- void remove_i (int i)
- {
- if (this->count_ == 0 || i >= this->count_)
- return;
-
- --this->count_;
- if (i == this->tail_)
- this->tail_ = this->prev_[i];
- if (i == this->head_)
- this->head_ = this->next_[i];
-
- if (i < this->count_)
- {
- this->swap_i (i, this->count_);
- i = this->count_;
- }
-
- int p_i = this->prev_[i];
- int n_i = this->next_[i];
- this->next_[p_i] = n_i;
- this->prev_[n_i] = p_i;
-
- if (this->count_ == 0)
- this->head_ = -1;
- }
-
- void swap_i (int i, int j)
- {
- int p_i, p_j, n_i, n_j;
-
- p_i = this->prev_[i];
- n_i = this->next_[i];
- p_j = this->prev_[j];
- n_j = this->next_[j];
-
- this->next_[p_i] = j;
- this->prev_[n_i] = j;
- this->next_[p_j] = i;
- this->prev_[n_j] = i;
-
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
- this->table_[i] = this->table_[j];
- this->table_[j] = entry;
-
- this->table_[i]->replacement_index_ = i;
- this->table_[j]->replacement_index_ = j;
-
- if (this->head_ == i || this->head_ == j)
- this->head_ = (this->head_ == i) ? j : i;
-
- if (this->tail_ == i || this->tail_ == j)
- this->tail_ = (this->tail_ == i) ? j : i;
- }
-
-private:
-
- int count_;
-
- int head_;
- int tail_;
-
- int *next_;
- int *prev_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_LFU_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_LFU_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_LFU_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_LFU_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
-protected:
-
- int sift_up (int i)
- {
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
-
- while (i > 0)
- {
- int p = this->parent (i);
-
- if (entry->ref_count_ >= this->table_[p]->ref_count_)
- break;
-
- this->table_[i] = this->table_[p];
- this->table_[i]->replacement_index_ = i;
-
- i = p;
- }
-
- this->table_[i] = entry;
- this->table_[i]->replacement_index_ = i;
-
- return i;
- }
-
- int sift_down (int i)
- {
- JAWS_Cache_Map_Entry<EXT_ID> *entry = this->table_[i];
-
- while (this->left (i) < this->count_)
- {
- int l, r;
-
- l = this->left (i);
- r = this->right (i);
-
- if (r >= this->count_
- || this->table_[l]->ref_count_ <= this->table_[r]->ref_count_)
- r = l;
-
- if (entry->ref_count_ <= this->table_[r]->ref_count_)
- break;
-
- this->table_[i] = this->table_[r];
- this->table_[i]->replacement_index_ = i;
-
- i = r;
- }
-
- this->table_[i] = entry;
- this->table_[i]->replacement_index_ = i;
-
- return i;
- }
-
- int sift (int i)
- {
- int i_sifted;
-
- i_sifted = this->sift_up (i);
- if (i_sifted == i)
- i_sifted = this->sift_down (i);
-
- return i_sifted;
- }
-
- int parent (int i) { return --i/2; }
- int left (int i) { return 2*i+1; }
- int right (int i) { return 2*i+2; }
-
-private:
-
- int count_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_FIFO_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_FIFO_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_FIFO_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_FIFO_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
- int head_;
- int tail_;
-
- JAWS_FIFO_Cache_Replacement_Info *info_;
-
-};
-
-template <class EXT_ID, class ACE_LOCK>
-class JAWS_RANDOM_Cache_Replacement
- : public JAWS_Cache_Replacement<EXT_ID, ACE_LOCK>
-{
-public:
-
- JAWS_RANDOM_Cache_Replacement (ACE_Allocator *alloc = 0);
- JAWS_RANDOM_Cache_Replacement (size_t max_entries, ACE_Allocator *alloc = 0);
-
- int open ( size_t max_entries = ACE_DEFAULT_MAP_SIZE
- , ACE_Allocator *alloc = 0);
-
- int close (void);
-
- ~JAWS_RANDOM_Cache_Replacement (void);
-
- int insert (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int update (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- int remove (JAWS_Cache_Map_Entry<EXT_ID> *entry);
- JAWS_Cache_Map_Entry<EXT_ID> * expire (void);
-
- int head_;
- int tail_;
-
- JAWS_RANDOM_Cache_Replacement_Info *info_;
-
-};
-
-
-template <class EXT_ID, class INT_ID, class HASH_FUNC, class EQ_FUNC, class ACE_LOCK>
-class JAWS_Cache_Map_Manager
-{
-public:
-
-
- JAWS_Map_Manager<EXT_ID, INT_ID, EQ_FUNC, ACE_
-};
-
-#endif /* JAWS_CACHE_MAP_MANAGER_T_H */
diff --git a/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.cpp b/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.cpp
deleted file mode 100644
index a445a2a3535..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// $Id$
-
-#include "ace/Addr.h"
-#include "ace/Acceptor.h"
-#include "ace/Singleton.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/SOCK_Acceptor.h"
-
-#define JAWS_BUILD_DLL
-
-#include "jaws3/Socket.h"
-#include "jaws3/Reactive_Socket.h"
-
-
-class JAWS_Socket_EC_SH_Adapter;
-
-typedef ACE_Oneshot_Acceptor<JAWS_Socket_EC_SH_Adapter, ACE_SOCK_ACCEPTOR>
- JAWS_Socket_Oneshot_Acceptor;
-
-
-void
-JAWS_Reactive_Socket::accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act
- )
-{
-}
-
-
-void
-JAWS_Reactive_Socket::connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act
- )
-{
-}
-
-
-void
-JAWS_Reactive_Socket::connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , void *act
- )
-{
-}
-
-
-void
-JAWS_Reactive_Socket::accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act
- )
-{
-}
-
-
-void
-JAWS_Reactive_Socket::connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act
- )
-{
-}
-
-
-void
-JAWS_Reactive_Socket::connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act
- )
-{
-}
diff --git a/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.h b/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.h
deleted file mode 100644
index 232957892c1..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_REACTIVE_SOCKET_H
-#define JAWS_REACTIVE_SOCKET_H
-
-#include "ace/OS.h"
-#include "ace/Addr.h"
-#include "ace/Synch.h"
-#include "ace/Acceptor.h"
-#include "ace/Singleton.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/SOCK_Acceptor.h"
-
-#include "jaws3/Export.h"
-#include "jaws3/Socket.h"
-
-class JAWS_Reactive_Socket;
-
-class JAWS_Export JAWS_Reactive_Socket : public JAWS_Socket_Impl
-{
-public:
-
- static JAWS_Reactive_Socket * instance (void)
- {
- return ACE_Singleton<JAWS_Reactive_Socket, ACE_SYNCH_MUTEX>::instance ();
- }
-
- void accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act = 0
- );
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
-
- void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act = 0
- );
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
- // ADDR_ANY is assumed for the local access point.
-
- void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , void *act = 0
- );
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
- // Use the specified local access point.
-
- void accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- );
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
-
- void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- );
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
- // ADDR_ANY is assumed for the local access point.
-
- void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- );
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
- // Use the specified local access point.
-
-};
-
-
-#endif /* JAWS_REACTIVE_SOCKET_H */
diff --git a/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp b/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp
deleted file mode 100644
index 258c27a0698..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/Addr.h"
-#include "ace/Synch.h"
-#include "ace/Acceptor.h"
-#include "ace/Singleton.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/SOCK_Acceptor.h"
-
-#include "jaws3/Reactive_Socket_Helpers.h"
-
-JAWS_Socket_EC_SH_Adapter
-::JAWS_Socket_EC_SH_Adapter ( ACE_SOCK_Stream *stream
- , JAWS_Event_Completer *completer
- , void *act
- , JAWS_EC_CALLBACK callback
- , JAWS_Event_Result::JE_REASON ok_reason
- , JAWS_Event_Result::JE_REASON timeout_reason
- , JAWS_Event_Result::JE_REASON error_reason
- )
- : stream_ (stream)
- , completer_ (completer)
- , act_ (act)
- , callback_ (callback)
- , ok_reason_ (ok_reason)
- , timeout_reason_ (timeout_reason)
- , error_reason_ (error_reason)
-{
-}
-
-
-int
-JAWS_Socket_EC_SH_Adapter::open (void *)
-{
- JAWS_Event_Result result ( 0
- , JAWS_Event_Result::JE_OK
- , this->ok_reason_
- , 0
- , this->stream_);
-
- *this->stream_ = this->peer ();
- this->set_handle (ACE_INVALID_HANDLE);
- (this->completer_->*callback_) (result, this->act_);
-
- return -1;
-}
-
-
-JAWS_Socket_Accept_EC_SH_Adapter
-::JAWS_Socket_Accept_EC_SH_Adapter ( ACE_SOCK_Stream *stream
- , JAWS_Event_Completer *completer
- , void *act
- )
- : JAWS_Socket_EC_SH_Adapter ( stream
- , completer
- , act
- , & JAWS_Event_Completer::accept_complete
- , JAWS_Event_Result::JE_ACCEPT_OK
- , JAWS_Event_Result::JE_ACCEPT_TIMEOUT
- , JAWS_Event_Result::JE_ACCEPT_FAIL
- )
-{
-}
-
-
-JAWS_Socket_Connect_EC_SH_Adapter::
-JAWS_Socket_Connect_EC_SH_Adapter ( ACE_SOCK_Stream *stream
- , JAWS_Event_Completer *completer
- , void *act
- )
- : JAWS_Socket_EC_SH_Adapter ( stream
- , completer
- , act
- , & JAWS_Event_Completer::connect_complete
- , JAWS_Event_Result::JE_CONNECT_OK
- , JAWS_Event_Result::JE_CONNECT_TIMEOUT
- , JAWS_Event_Result::JE_CONNECT_FAIL
- )
-{
-}
diff --git a/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.h b/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.h
deleted file mode 100644
index 63b860cb62a..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_REACTIVE_SOCKET_HELPERS
-#define JAWS_REACTIVE_SOCKET_HELPERS
-
-#include "ace/OS.h"
-#include "ace/Addr.h"
-#include "ace/Synch.h"
-#include "ace/Acceptor.h"
-#include "ace/Singleton.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/SOCK_Acceptor.h"
-
-#include "jaws3/Event_Completer.h"
-#include "jaws3/Event_Result.h"
-
-
-typedef void (JAWS_Event_Completer:: *JAWS_EC_CALLBACK)
- (const JAWS_Event_Result &, void *act);
-
-
-class JAWS_Socket_EC_SH_Adapter
- : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-
- friend class JAWS_Socket_Accept_EC_SH_Adapter;
- friend class JAWS_Socket_Connect_EC_SH_Adapter;
-
-public:
-
- JAWS_Socket_EC_SH_Adapter ( ACE_SOCK_Stream *stream
- , JAWS_Event_Completer *completer
- , void *act
- , JAWS_EC_CALLBACK callback
- , JAWS_Event_Result::JE_REASON ok_reason
- , JAWS_Event_Result::JE_REASON timeout_reason
- , JAWS_Event_Result::JE_REASON error_reason
- );
-
- int open (void *);
- // Callback from Acceptor/Connector when accept()/connect() completes.
-
-private:
-
- ACE_SOCK_Stream *stream_;
-
- JAWS_Event_Completer *completer_;
- void *act_;
-
- JAWS_EC_CALLBACK callback_;
- JAWS_Event_Result::JE_REASON ok_reason_;
- JAWS_Event_Result::JE_REASON timeout_reason_;
- JAWS_Event_Result::JE_REASON error_reason_;
-
-};
-
-
-class JAWS_Socket_Accept_EC_SH_Adapter : public JAWS_Socket_EC_SH_Adapter
-{
-public:
-
- JAWS_Socket_Accept_EC_SH_Adapter ( ACE_SOCK_Stream *stream
- , JAWS_Event_Completer *completer
- , void *act
- );
-
-};
-
-
-class JAWS_Socket_Connect_EC_SH_Adapter : public JAWS_Socket_EC_SH_Adapter
-{
-public:
-
- JAWS_Socket_Connect_EC_SH_Adapter ( ACE_SOCK_Stream *stream
- , JAWS_Event_Completer *completer
- , void *act
- );
-
-private:
-
- JAWS_Event_Completer *completer_;
- void *act_;
-
-};
-
-#endif /* JAWS_REACTIVE_SOCKET_HELPERS */
diff --git a/ACE/apps/JAWS3/jaws3-todo/Socket.cpp b/ACE/apps/JAWS3/jaws3-todo/Socket.cpp
deleted file mode 100644
index 26bb9a137e1..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Socket.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-
-#define JAWS_BUILD_DLL
-#include "jaws3/Socket.h"
-
-
-JAWS_Socket::JAWS_Socket (JAWS_Socket_Impl *impl = 0)
- : impl_ (impl)
-{
-}
-
-void
-JAWS_Socket::accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act
- )
-{
- this->impl_->accept (local_sap, new_stream, completer, act);
-}
-
-void
-JAWS_Socket::connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act = 0
- )
-{
- this->impl_->connect (remote_sap, new_stream, completer, act);
-}
-
-void
-JAWS_Socket::connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , void *act = 0
- )
-{
- this->impl_->connect (remote_sap, new_stream, local_sap, completer, act);
-}
-
-void
-JAWS_Socket::accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- )
-{
- this->impl_->accept (local_sap, new_stream, completer, timeout, act);
-}
-
-void
-JAWS_Socket::connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- )
-{
- this->impl_->connect (remote_sap, new_stream, completer, timeout, act);
-}
-
-void
-JAWS_Socket::connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- )
-{
- this->impl_->connect ( remote_sap
- , new_stream
- , local_sap
- , completer
- , timeout
- , act
- );
-}
-
diff --git a/ACE/apps/JAWS3/jaws3-todo/Socket.h b/ACE/apps/JAWS3/jaws3-todo/Socket.h
deleted file mode 100644
index 226082a4485..00000000000
--- a/ACE/apps/JAWS3/jaws3-todo/Socket.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_SOCKET_H
-#define JAWS_SOCKET_H
-
-#include "ace/OS.h"
-#include "ace/Addr.h"
-#include "ace/Synch.h"
-#include "ace/Singleton.h"
-#include "ace/SOCK_Stream.h"
-
-#include "jaws3/Export.h"
-#include "jaws3/Event_Completer.h"
-
-class JAWS_Socket;
-class JAWS_Socket_Impl;
-
-class JAWS_Export JAWS_Socket_Impl
-{
-public:
-
- virtual ~JAWS_Socket_Impl (void) {}
-
- virtual void accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act = 0
- ) = 0;
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
-
- virtual void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act = 0
- ) = 0;
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
- // ADDR_ANY is assumed for the local access point.
-
- virtual void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , void *act = 0
- ) = 0;
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
- // Use the specified local access point.
-
- virtual void accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- ) = 0;
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
-
- virtual void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- ) = 0;
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
- // ADDR_ANY is assumed for the local access point.
-
- virtual void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- ) = 0;
- // The address to new_stream is passed back as the data member of
- // the JAWS_Event_Result that is returned to the completer.
- // Use the specified local access point.
-
-};
-
-
-class JAWS_Export JAWS_Socket
-{
-public:
-
- JAWS_Socket (JAWS_Socket_Impl *impl = 0);
-
- static JAWS_Socket * instance (void)
- {
- return ACE_Singleton<JAWS_Socket, ACE_SYNCH_MUTEX>::instance ();
- }
-
- void accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act = 0
- );
-
- void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , void *act = 0
- );
-
- void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , void *act = 0
- );
-
- void accept ( const ACE_Addr &local_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- );
-
- void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- );
-
- void connect ( const ACE_Addr &remote_sap
- , ACE_SOCK_Stream &new_stream
- , const ACE_Addr &local_sap
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &timeout
- , void *act = 0
- );
-
-private:
-
- JAWS_Socket_Impl *impl_;
-
-};
-
-
-#endif /* JAWS_SOCKET_H */
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/Cached_Allocator_T.cpp b/ACE/apps/JAWS3/jaws3/Cached_Allocator_T.cpp
index f2cb47c531a..07e2d795403 100644
--- a/ACE/apps/JAWS3/jaws3/Cached_Allocator_T.cpp
+++ b/ACE/apps/JAWS3/jaws3/Cached_Allocator_T.cpp
@@ -7,40 +7,40 @@
template <class T, class ACE_LOCK> char *
JAWS_Cached_Allocator<T, ACE_LOCK>::get_next_pool (char *pool)
-{
+{
char *next = 0;
char *next_indirect = pool + (this->pool_size_);
ACE_OS::memcpy (&next, next_indirect, sizeof (char *));
return next;
-}
-
+}
+
template <class T, class ACE_LOCK> void
JAWS_Cached_Allocator<T, ACE_LOCK>::set_next_pool (char *pool, char *next_pool)
-{
+{
char *next_indirect = pool + (this->pool_size_);
ACE_OS::memcpy (next_indirect, &next_pool, sizeof (char *));
-}
-
+}
+
template <class T, class ACE_LOCK> void
JAWS_Cached_Allocator<T, ACE_LOCK>::extend_pool (void)
-{
+{
char *new_pool = 0;
ACE_NEW (new_pool, char[this->pool_size_ + sizeof (char *)]);
-
+
for (size_t c = 0; c < (this->pool_size_ / sizeof (T)); c++)
{
void* placement = new_pool + c * sizeof(T);
this->free_list_.add (new (placement) ACE_Cached_Mem_Pool_Node<T>);
this->set_next_pool (new_pool, 0);
}
-
+
if (this->pool_head_ == 0)
this->pool_head_ = this->pool_tail_ = new_pool;
- else
+ else
this->set_next_pool (this->pool_tail_, new_pool);
-
+
this->pool_tail_ = new_pool;
-}
+}
template <class T, class ACE_LOCK>
JAWS_Cached_Allocator<T, ACE_LOCK>::JAWS_Cached_Allocator (size_t n_chunks)
diff --git a/ACE/apps/JAWS3/jaws3/Cached_Allocator_T.h b/ACE/apps/JAWS3/jaws3/Cached_Allocator_T.h
index 589d5710e47..adc03508dff 100644
--- a/ACE/apps/JAWS3/jaws3/Cached_Allocator_T.h
+++ b/ACE/apps/JAWS3/jaws3/Cached_Allocator_T.h
@@ -70,7 +70,7 @@ class JAWS_TSS_Cached_Allocator : public ACE_New_Allocator
// This class enables caching of dynamically allocated,
// fixed-sized classes.
{
-public:
+public:
JAWS_TSS_Cached_Allocator (size_t n_chunks = JAWS_DEFAULT_ALLOCATOR_CHUNKS);
diff --git a/ACE/apps/JAWS3/jaws3/Concurrency.cpp b/ACE/apps/JAWS3/jaws3/Concurrency.cpp
index 3d42fde5fae..036ef47f4b8 100644
--- a/ACE/apps/JAWS3/jaws3/Concurrency.cpp
+++ b/ACE/apps/JAWS3/jaws3/Concurrency.cpp
@@ -21,7 +21,7 @@ typedef ACE_Singleton<ACE_Message_Block, ACE_SYNCH_NULL_MUTEX>
JAWS_Empty_Message_Block;
-int
+int
JAWS_Concurrency_Impl::svc (void)
{
JAWS_Protocol_Handler *ph;
@@ -75,7 +75,7 @@ JAWS_Concurrency_Bridge<JAWS_Concurrency_Impl>
{
return this->impl_->putq (ph);
}
-
+
int
JAWS_Concurrency_Bridge<JAWS_Concurrency_Impl>
diff --git a/ACE/apps/JAWS3/jaws3/Concurrency_T.cpp b/ACE/apps/JAWS3/jaws3/Concurrency_T.cpp
index ea86da1c989..09e8cd3f6cd 100644
--- a/ACE/apps/JAWS3/jaws3/Concurrency_T.cpp
+++ b/ACE/apps/JAWS3/jaws3/Concurrency_T.cpp
@@ -26,7 +26,7 @@ JAWS_Concurrency_Bridge<CONCURRENCY_IMPL>::putq (JAWS_Protocol_Handler *ph)
{
return this->impl_->putq (ph);
}
-
+
template <class CONCURRENCY_IMPL> int
JAWS_Concurrency_Bridge<CONCURRENCY_IMPL>::getq (JAWS_Protocol_Handler *&ph)
diff --git a/ACE/apps/JAWS3/jaws3/Concurrency_T.h b/ACE/apps/JAWS3/jaws3/Concurrency_T.h
index 704da56faea..fe7fb25955c 100644
--- a/ACE/apps/JAWS3/jaws3/Concurrency_T.h
+++ b/ACE/apps/JAWS3/jaws3/Concurrency_T.h
@@ -4,7 +4,6 @@
#ifndef JAWS_CONCURRENCY_T_H
#define JAWS_CONCURRENCY_T_H
-// This gets me the ACE template defines without having to #include "ace/OS.h".
#include "ace/config-lite.h"
class JAWS_Protocol_Handler;
diff --git a/ACE/apps/JAWS3/jaws3/Datagram.h b/ACE/apps/JAWS3/jaws3/Datagram.h
index 370088892de..0f6b7c59a34 100644
--- a/ACE/apps/JAWS3/jaws3/Datagram.h
+++ b/ACE/apps/JAWS3/jaws3/Datagram.h
@@ -80,7 +80,7 @@ public:
class JAWS_Export JAWS_Datagram
{
-public:
+public:
JAWS_Datagram (JAWS_Datagram_Impl *impl = 0);
diff --git a/ACE/apps/JAWS3/jaws3/FILE.cpp b/ACE/apps/JAWS3/jaws3/FILE.cpp
index ed4723962ea..181b0582f0f 100644
--- a/ACE/apps/JAWS3/jaws3/FILE.cpp
+++ b/ACE/apps/JAWS3/jaws3/FILE.cpp
@@ -7,7 +7,7 @@
#ifndef JAWS_BUILD_DLL
#define JAWS_BUILD_DLL
-#endif
+#endif
#include "jaws3/FILE.h"
@@ -52,7 +52,7 @@ JAWS_FILE::mem_map (int length,
if (this->map_ == 0)
{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g, this->lock_, 0);
if (this->map_ == 0)
{
diff --git a/ACE/apps/JAWS3/jaws3/IO.cpp b/ACE/apps/JAWS3/jaws3/IO.cpp
deleted file mode 100644
index 98e2e6e32f5..00000000000
--- a/ACE/apps/JAWS3/jaws3/IO.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-
-#ifndef JAWS_BUILD_DLL
-#define JAWS_BUILD_DLL
-#endif /*JAWS_BUILD_DLL*/
-
-#include "ace/OS_NS_strings.h"
-
-#include "jaws3/IO.h"
-#include "jaws3/Asynch_IO.h"
-#include "jaws3/Synch_IO.h"
-#include "jaws3/Reactive_IO.h"
-#include "jaws3/Options.h"
-
-JAWS_IO::JAWS_IO (JAWS_IO_Impl *impl)
- : impl_ (impl)
-{
- // Use synchronous IO by default. It is the most efficient
- // in terms of calls needed, but provides the least amount
- // of support for concurrency.
-
- if (this->impl_ == 0)
- {
- const char *io_type = JAWS_Options::instance ()->getenv ("JAWS_IO");
- if (io_type == 0)
- io_type = JAWS_DEFAULT_IO;
-
- if (ACE_OS::strcasecmp (io_type, "SYNCH") == 0)
- this->impl_ = JAWS_Synch_IO::instance ();
- else if (ACE_OS::strcasecmp (io_type, "ASYNCH") == 0)
- this->impl_ = JAWS_Asynch_IO::instance ();
- else if (ACE_OS::strcasecmp (io_type, "REACTIVE") == 0)
- this->impl_ = JAWS_Reactive_IO::instance ();
- else
- this->impl_ = JAWS_Synch_IO::instance ();
- }
-}
-
-JAWS_IO::~JAWS_IO (void)
-{
-}
-
-
-void
-JAWS_IO::send ( ACE_HANDLE handle
- , ACE_Message_Block *mb
- , JAWS_Event_Completer *completer
- , void *act
- )
-{
- this->impl_->send (handle, mb, completer, act);
-}
-
-
-void
-JAWS_IO::recv ( ACE_HANDLE handle
- , ACE_Message_Block *mb
- , JAWS_Event_Completer *completer
- , void *act
- )
-{
- this->impl_->recv (handle, mb, completer, act);
-}
-
-
-void
-JAWS_IO::transmit ( ACE_HANDLE handle
- , ACE_HANDLE source
- , JAWS_Event_Completer *completer
- , void *act
- , ACE_Message_Block *header
- , ACE_Message_Block *trailer
- )
-{
- this->impl_->transmit (handle, source, completer, act, header, trailer);
-}
-
-
-void
-JAWS_IO::send ( ACE_HANDLE handle
- , ACE_Message_Block *mb
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &tv
- , void *act
- )
-{
- this->impl_->send (handle, mb, completer, tv, act);
-}
-
-
-void
-JAWS_IO::recv ( ACE_HANDLE handle
- , ACE_Message_Block *mb
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &tv
- , void *act
- )
-{
- this->impl_->recv (handle, mb, completer, tv, act);
-}
-
-
-void
-JAWS_IO::transmit ( ACE_HANDLE handle
- , ACE_HANDLE source
- , JAWS_Event_Completer *completer
- , const ACE_Time_Value &tv
- , void *act
- , ACE_Message_Block *header
- , ACE_Message_Block *trailer
- )
-{
- this->impl_->transmit (handle, source, completer, tv, act, header, trailer);
-}
diff --git a/ACE/apps/JAWS3/jaws3/Jaws_IO.cpp b/ACE/apps/JAWS3/jaws3/Jaws_IO.cpp
new file mode 100644
index 00000000000..f4187cbb806
--- /dev/null
+++ b/ACE/apps/JAWS3/jaws3/Jaws_IO.cpp
@@ -0,0 +1,114 @@
+// $Id$
+
+#ifndef JAWS_BUILD_DLL
+#define JAWS_BUILD_DLL
+#endif /*JAWS_BUILD_DLL*/
+
+#include "ace/OS_NS_strings.h"
+
+#include "jaws3/Jaws_IO.h"
+#include "jaws3/Asynch_IO.h"
+#include "jaws3/Synch_IO.h"
+#include "jaws3/Reactive_IO.h"
+#include "jaws3/Options.h"
+
+JAWS_IO::JAWS_IO (JAWS_IO_Impl *impl)
+ : impl_ (impl)
+{
+ // Use synchronous IO by default. It is the most efficient
+ // in terms of calls needed, but provides the least amount
+ // of support for concurrency.
+
+ if (this->impl_ == 0)
+ {
+ const char *io_type = JAWS_Options::instance ()->getenv ("JAWS_IO");
+ if (io_type == 0)
+ io_type = JAWS_DEFAULT_IO;
+
+ if (ACE_OS::strcasecmp (io_type, "SYNCH") == 0)
+ this->impl_ = JAWS_Synch_IO::instance ();
+ else if (ACE_OS::strcasecmp (io_type, "ASYNCH") == 0)
+ this->impl_ = JAWS_Asynch_IO::instance ();
+ else if (ACE_OS::strcasecmp (io_type, "REACTIVE") == 0)
+ this->impl_ = JAWS_Reactive_IO::instance ();
+ else
+ this->impl_ = JAWS_Synch_IO::instance ();
+ }
+}
+
+JAWS_IO::~JAWS_IO (void)
+{
+}
+
+
+void
+JAWS_IO::send ( ACE_HANDLE handle
+ , ACE_Message_Block *mb
+ , JAWS_Event_Completer *completer
+ , void *act
+ )
+{
+ this->impl_->send (handle, mb, completer, act);
+}
+
+
+void
+JAWS_IO::recv ( ACE_HANDLE handle
+ , ACE_Message_Block *mb
+ , JAWS_Event_Completer *completer
+ , void *act
+ )
+{
+ this->impl_->recv (handle, mb, completer, act);
+}
+
+
+void
+JAWS_IO::transmit ( ACE_HANDLE handle
+ , ACE_HANDLE source
+ , JAWS_Event_Completer *completer
+ , void *act
+ , ACE_Message_Block *header
+ , ACE_Message_Block *trailer
+ )
+{
+ this->impl_->transmit (handle, source, completer, act, header, trailer);
+}
+
+
+void
+JAWS_IO::send ( ACE_HANDLE handle
+ , ACE_Message_Block *mb
+ , JAWS_Event_Completer *completer
+ , const ACE_Time_Value &tv
+ , void *act
+ )
+{
+ this->impl_->send (handle, mb, completer, tv, act);
+}
+
+
+void
+JAWS_IO::recv ( ACE_HANDLE handle
+ , ACE_Message_Block *mb
+ , JAWS_Event_Completer *completer
+ , const ACE_Time_Value &tv
+ , void *act
+ )
+{
+ this->impl_->recv (handle, mb, completer, tv, act);
+}
+
+
+void
+JAWS_IO::transmit ( ACE_HANDLE handle
+ , ACE_HANDLE source
+ , JAWS_Event_Completer *completer
+ , const ACE_Time_Value &tv
+ , void *act
+ , ACE_Message_Block *header
+ , ACE_Message_Block *trailer
+ )
+{
+ this->impl_->transmit (handle, source, completer, tv, act, header, trailer);
+}
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/Protocol_Handler.cpp b/ACE/apps/JAWS3/jaws3/Protocol_Handler.cpp
index 4b2122b46d0..164696ae21a 100644
--- a/ACE/apps/JAWS3/jaws3/Protocol_Handler.cpp
+++ b/ACE/apps/JAWS3/jaws3/Protocol_Handler.cpp
@@ -29,7 +29,7 @@ JAWS_Protocol_Handler::~JAWS_Protocol_Handler (void)
}
-int
+int
JAWS_Protocol_Handler::service (void)
{
if (this->state_ == 0)
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/THYBRID_Concurrency.cpp b/ACE/apps/JAWS3/jaws3/THYBRID_Concurrency.cpp
index 83c3da28bc7..8e0294e682b 100644
--- a/ACE/apps/JAWS3/jaws3/THYBRID_Concurrency.cpp
+++ b/ACE/apps/JAWS3/jaws3/THYBRID_Concurrency.cpp
@@ -121,7 +121,7 @@ JAWS_THYBRID_Concurrency::getq (JAWS_Protocol_Handler *&ph)
task->putq (mb);
result = -1;
}
-
+
}
}
diff --git a/ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.cpp b/ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.cpp
index 4f91c5f34c8..f68f7e22690 100644
--- a/ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.cpp
+++ b/ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.cpp
@@ -5,7 +5,7 @@
#ifndef JAWS_BUILD_DLL
#define JAWS_BUILD_DLL
-#endif
+#endif
#include "jaws3/TPOOL_Concurrency.h"
#include "jaws3/Protocol_Handler.h"
diff --git a/ACE/apps/JAWS3/jaws3/TPR_Concurrency.cpp b/ACE/apps/JAWS3/jaws3/TPR_Concurrency.cpp
index 6e15def5cb8..c20cbca74f8 100644
--- a/ACE/apps/JAWS3/jaws3/TPR_Concurrency.cpp
+++ b/ACE/apps/JAWS3/jaws3/TPR_Concurrency.cpp
@@ -4,7 +4,7 @@
#ifndef JAWS_BUILD_DLL
#define JAWS_BUILD_DLL
-#endif
+#endif
#include "jaws3/Concurrency.h"
#include "jaws3/TPR_Concurrency.h"
diff --git a/ACE/apps/JAWS3/jaws3/Task_Timer.cpp b/ACE/apps/JAWS3/jaws3/Task_Timer.cpp
index a429a3fcf8e..ab2b3833a48 100644
--- a/ACE/apps/JAWS3/jaws3/Task_Timer.cpp
+++ b/ACE/apps/JAWS3/jaws3/Task_Timer.cpp
@@ -16,7 +16,7 @@ JAWS_Task_Timer::JAWS_Task_Timer (void)
}
-void
+void
JAWS_Task_Timer::schedule_timer ( long *timer_id
, const ACE_Time_Value &delta
, JAWS_Event_Completer *completer
@@ -44,7 +44,7 @@ JAWS_Task_Timer::schedule_timer ( long *timer_id
}
-void
+void
JAWS_Task_Timer::schedule_absolute_timer ( long *timer_id
, const ACE_Time_Value &tv
, JAWS_Event_Completer *completer
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/Timer.cpp b/ACE/apps/JAWS3/jaws3/Timer.cpp
index 33773520ddc..ff13f6dc75f 100644
--- a/ACE/apps/JAWS3/jaws3/Timer.cpp
+++ b/ACE/apps/JAWS3/jaws3/Timer.cpp
@@ -2,7 +2,7 @@
#ifndef JAWS_BUILD_DLL
#define JAWS_BUILD_DLL
-#endif
+#endif
#include "jaws3/Timer.h"
#include "jaws3/Task_Timer.h"
diff --git a/ACE/apps/JAWS3/jaws3/Timer.h b/ACE/apps/JAWS3/jaws3/Timer.h
index d2468344307..e381e3d2a36 100644
--- a/ACE/apps/JAWS3/jaws3/Timer.h
+++ b/ACE/apps/JAWS3/jaws3/Timer.h
@@ -87,7 +87,7 @@ public:
private:
JAWS_Timer_Impl *impl_;
-
+
};
diff --git a/ACE/apps/JAWS3/jaws3/Timer_Helpers.cpp b/ACE/apps/JAWS3/jaws3/Timer_Helpers.cpp
index 1b7d4b60c41..50b956ea60a 100644
--- a/ACE/apps/JAWS3/jaws3/Timer_Helpers.cpp
+++ b/ACE/apps/JAWS3/jaws3/Timer_Helpers.cpp
@@ -2,7 +2,7 @@
#ifndef JAWS_BUILD_DLL
#define JAWS_BUILD_DLL
-#endif
+#endif
#include "jaws3/Timer_Helpers.h"
diff --git a/ACE/apps/JAWS3/jaws3/jaws.conf b/ACE/apps/JAWS3/jaws3/jaws.conf
index 4f029ef4a44..5b8270ebc04 100644
--- a/ACE/apps/JAWS3/jaws3/jaws.conf
+++ b/ACE/apps/JAWS3/jaws3/jaws.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# See jaws3/Options.h for default values
#
diff --git a/ACE/apps/JAWS3/jaws3/jaws3.mpc b/ACE/apps/JAWS3/jaws3/jaws3.mpc
index 850c50b09c3..9e82744a428 100644
--- a/ACE/apps/JAWS3/jaws3/jaws3.mpc
+++ b/ACE/apps/JAWS3/jaws3/jaws3.mpc
@@ -3,7 +3,7 @@
project(JAWS3) : ace_output, acelib {
sharedname = JAWS3
- dynamicflags = JAWS_BUILD_DLL
+ dynamicflags += JAWS_BUILD_DLL
avoids += uses_wchar
avoids += ace_for_tao
@@ -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/JAWS3/small/SS_Data.h b/ACE/apps/JAWS3/small/SS_Data.h
index 2c20e464e48..73fe97c38b4 100644
--- a/ACE/apps/JAWS3/small/SS_Data.h
+++ b/ACE/apps/JAWS3/small/SS_Data.h
@@ -4,7 +4,6 @@
#ifndef TERA_SS_DATA_H
#define TERA_SS_DATA_H
-#include "ace/OS.h"
#include "ace/FILE_IO.h"
#include "ace/SOCK_Stream.h"
#include "ace/Message_Block.h"
diff --git a/ACE/apps/JAWS3/small/SS_Service_Handler.cpp b/ACE/apps/JAWS3/small/SS_Service_Handler.cpp
index d255e627023..94c717b60b4 100644
--- a/ACE/apps/JAWS3/small/SS_Service_Handler.cpp
+++ b/ACE/apps/JAWS3/small/SS_Service_Handler.cpp
@@ -2,7 +2,6 @@
#define ACE_BUILD_SVC_DLL
-#include "ace/OS.h"
#include "ace/Get_Opt.h"
#include "jaws3/Concurrency.h"
diff --git a/ACE/apps/JAWS3/small/SS_Service_Handler.h b/ACE/apps/JAWS3/small/SS_Service_Handler.h
index 5d271ab9407..482ccfdb049 100644
--- a/ACE/apps/JAWS3/small/SS_Service_Handler.h
+++ b/ACE/apps/JAWS3/small/SS_Service_Handler.h
@@ -4,7 +4,6 @@
#ifndef TERA_SS_SERVICE_HANDLER_H
#define TERA_SS_SERVICE_HANDLER_H
-#include "ace/OS.h"
#include "ace/Synch.h"
#include "ace/Acceptor.h"
#include "ace/Svc_Handler.h"
@@ -22,7 +21,7 @@ class TeraSS_Service_Handler
// The Small Server service handler.
//
// = DESCRIPTION
-// This class is reponsible for initializing the JAWS_Protocol_Handler
+// This class is responsible for initializing the JAWS_Protocol_Handler
// with the correct state and data so that the Small Server can
// be properly serviced by the underlying framework.
//
diff --git a/ACE/apps/JAWS3/small/SS_State_DONE.cpp b/ACE/apps/JAWS3/small/SS_State_DONE.cpp
index 67e09c80d90..3119fae00de 100644
--- a/ACE/apps/JAWS3/small/SS_State_DONE.cpp
+++ b/ACE/apps/JAWS3/small/SS_State_DONE.cpp
@@ -1,7 +1,5 @@
// $Id$
-#include "ace/OS.h"
-
#include "SS_State_DONE.h"
#include "SS_Data.h"
diff --git a/ACE/apps/JAWS3/small/SS_State_DONE.h b/ACE/apps/JAWS3/small/SS_State_DONE.h
index fb995006d3f..2d41d18f9a1 100644
--- a/ACE/apps/JAWS3/small/SS_State_DONE.h
+++ b/ACE/apps/JAWS3/small/SS_State_DONE.h
@@ -4,7 +4,6 @@
#ifndef TERA_SS_STATE_DONE_H
#define TERA_SS_STATE_DONE_H
-#include "ace/OS.h"
#include "ace/Singleton.h"
#include "ace/Synch_Traits.h"
diff --git a/ACE/apps/JAWS3/small/SS_State_ERROR.cpp b/ACE/apps/JAWS3/small/SS_State_ERROR.cpp
index 432b3c6673b..2f9dedda85e 100644
--- a/ACE/apps/JAWS3/small/SS_State_ERROR.cpp
+++ b/ACE/apps/JAWS3/small/SS_State_ERROR.cpp
@@ -1,6 +1,5 @@
// $Id$
-#include "ace/OS.h"
#include "jaws3/IO.h"
#include "SS_State_ERROR.h"
diff --git a/ACE/apps/JAWS3/small/SS_State_ERROR.h b/ACE/apps/JAWS3/small/SS_State_ERROR.h
index c1f17dd3536..d0acb3091a0 100644
--- a/ACE/apps/JAWS3/small/SS_State_ERROR.h
+++ b/ACE/apps/JAWS3/small/SS_State_ERROR.h
@@ -4,7 +4,6 @@
#ifndef TERA_SS_STATE_ERROR_H
#define TERA_SS_STATE_ERROR_H
-#include "ace/OS.h"
#include "ace/Singleton.h"
#include "jaws3/Protocol_Handler.h"
diff --git a/ACE/apps/JAWS3/small/SS_State_PARSE.cpp b/ACE/apps/JAWS3/small/SS_State_PARSE.cpp
index 1a78e58e4a7..3914f820be9 100644
--- a/ACE/apps/JAWS3/small/SS_State_PARSE.cpp
+++ b/ACE/apps/JAWS3/small/SS_State_PARSE.cpp
@@ -1,7 +1,5 @@
// $Id$
-#include "ace/OS.h"
-
#include "SS_State_READ.h"
#include "SS_State_PARSE.h"
#include "SS_State_WRITE.h"
diff --git a/ACE/apps/JAWS3/small/SS_State_PARSE.h b/ACE/apps/JAWS3/small/SS_State_PARSE.h
index 4ced246bf55..c083d40eebf 100644
--- a/ACE/apps/JAWS3/small/SS_State_PARSE.h
+++ b/ACE/apps/JAWS3/small/SS_State_PARSE.h
@@ -4,7 +4,6 @@
#ifndef TERA_SS_STATE_PARSE_H
#define TERA_SS_STATE_PARSE_H
-#include "ace/OS.h"
#include "ace/Singleton.h"
#include "jaws3/Protocol_Handler.h"
diff --git a/ACE/apps/JAWS3/small/SS_State_READ.cpp b/ACE/apps/JAWS3/small/SS_State_READ.cpp
index fe94c66831a..d49f04fdf68 100644
--- a/ACE/apps/JAWS3/small/SS_State_READ.cpp
+++ b/ACE/apps/JAWS3/small/SS_State_READ.cpp
@@ -1,7 +1,5 @@
// $Id$
-#include "ace/OS.h"
-
#include "jaws3/IO.h"
#include "jaws3/Event_Completer.h"
diff --git a/ACE/apps/JAWS3/small/SS_State_READ.h b/ACE/apps/JAWS3/small/SS_State_READ.h
index f01ca55dc57..69320c26270 100644
--- a/ACE/apps/JAWS3/small/SS_State_READ.h
+++ b/ACE/apps/JAWS3/small/SS_State_READ.h
@@ -4,7 +4,6 @@
#ifndef TERA_SS_STATE_READ_H
#define TERA_SS_STATE_READ_H
-#include "ace/OS.h"
#include "ace/Singleton.h"
#include "ace/Synch_Traits.h"
#include "jaws3/Protocol_Handler.h"
diff --git a/ACE/apps/JAWS3/small/SS_State_WRITE.cpp b/ACE/apps/JAWS3/small/SS_State_WRITE.cpp
index 2acb1f1b047..d539bafcf6a 100644
--- a/ACE/apps/JAWS3/small/SS_State_WRITE.cpp
+++ b/ACE/apps/JAWS3/small/SS_State_WRITE.cpp
@@ -1,6 +1,5 @@
// $Id$
-#include "ace/OS.h"
#include "ace/FILE_Connector.h"
#include "ace/FILE_Addr.h"
#include "ace/FILE_IO.h"
@@ -35,7 +34,7 @@ TeraSS_State_WRITE::service (JAWS_Event_Completer *ec, void *data)
return 0;
}
-
+
JAWS_IO::instance ()->transmit ( tdata->peer ().get_handle ()
, tdata->file_io ().get_handle ()
, ec
diff --git a/ACE/apps/JAWS3/small/SS_State_WRITE.h b/ACE/apps/JAWS3/small/SS_State_WRITE.h
index c5a51389ae5..06acfb75b22 100644
--- a/ACE/apps/JAWS3/small/SS_State_WRITE.h
+++ b/ACE/apps/JAWS3/small/SS_State_WRITE.h
@@ -4,7 +4,6 @@
#ifndef TERA_SS_STATE_WRITE_H
#define TERA_SS_STATE_WRITE_H
-#include "ace/OS.h"
#include "ace/Singleton.h"
#include "jaws3/Protocol_Handler.h"
diff --git a/ACE/apps/JAWS3/small/SS_Templates.cpp b/ACE/apps/JAWS3/small/SS_Templates.cpp
index df34eb4eabd..23b436a7d44 100644
--- a/ACE/apps/JAWS3/small/SS_Templates.cpp
+++ b/ACE/apps/JAWS3/small/SS_Templates.cpp
@@ -1,6 +1,5 @@
// $Id$
-#include "ace/OS.h"
#include "ace/SOCK_Acceptor.h"
#include "ace/Singleton.h"
diff --git a/ACE/apps/JAWS3/small/jaws.conf b/ACE/apps/JAWS3/small/jaws.conf
index 63ed11384ed..15165f730e8 100644
--- a/ACE/apps/JAWS3/small/jaws.conf
+++ b/ACE/apps/JAWS3/small/jaws.conf
@@ -1,3 +1,5 @@
+# $Id$
+
JAWS_IO = REACTIVE
#JAWS_CONCURRENCY = TPOOL
#JAWS_MIN_TPR_THREADS
diff --git a/ACE/apps/JAWS3/small/svc.conf b/ACE/apps/JAWS3/small/svc.conf
index 35fc947e74f..d8d8566d2e7 100644
--- a/ACE/apps/JAWS3/small/svc.conf
+++ b/ACE/apps/JAWS3/small/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
dynamic TeraSS_Acceptor Service_Object *
TeraSS:_make_TeraSS_Acceptor()
"ss_acceptor -p 5432"
diff --git a/ACE/apps/drwho/BS_Client.h b/ACE/apps/drwho/BS_Client.h
index 9859768df82..f5a820bfa19 100644
--- a/ACE/apps/drwho/BS_Client.h
+++ b/ACE/apps/drwho/BS_Client.h
@@ -1,46 +1,50 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// BS_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file BS_Client.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _BS_CLIENT_H
#define _BS_CLIENT_H
#include "Binary_Search.h"
+/**
+ * @class BS_Client
+ *
+ * @brief Provides the client's binary search lookup table abstraction.
+ */
class BS_Client : public Binary_Search
{
- // = TITLE
- // Provides the client's binary search lookup table abstraction.
public:
// = Initialization.
+ /// Constructor.
BS_Client (void);
- // Constructor.
+ /**
+ * This function is used to merge the <key_name> from server
+ * <host_name> into the sorted list of userids kept on the client's
+ * side. Since we *know* we are going to find the name we use the
+ * traditional binary search.
+ */
virtual Protocol_Record *insert (const char *key_name,
int max_len = MAXUSERIDNAMELEN);
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side. Since we *know* we are going to find the name we use the
- // traditional binary search.
+ /**
+ * An iterator, similar to Binary_Search::get_next_friend, though in
+ * this case the friend records are returned in the order they
+ * appeared in the friend file, rather than in sorted order. Also,
+ * we skip over entries that don't have any hosts associated with
+ * them.
+ */
virtual Protocol_Record *get_each_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
};
#endif /* _BS_CLIENT_H */
diff --git a/ACE/apps/drwho/BS_Server.h b/ACE/apps/drwho/BS_Server.h
index 3c7c1a82afc..6f4bbbb144c 100644
--- a/ACE/apps/drwho/BS_Server.h
+++ b/ACE/apps/drwho/BS_Server.h
@@ -1,47 +1,51 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// BS_Server.h
-//
-// = DESCRIPTION
-// Provides the server's binary search lookup table abstraction.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file BS_Server.h
+ *
+ * $Id$
+ *
+ * Provides the server's binary search lookup table abstraction.
+ *
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _BS_SERVER_H
#define _BS_SERVER_H
#include "Binary_Search.h"
+/**
+ * @class BS_Server
+ *
+ * @brief Provides the server's binary search lookup table abstraction.
+ */
class BS_Server : public Binary_Search
{
- // = TITLE
- // Provides the server's binary search lookup table abstraction.
public:
// = Initialization.
BS_Server (const char *packet);
+ /**
+ * This function is used to merge the <key_name> from server
+ * <host_name> into the sorted list of userids kept on the client's
+ * side.
+ */
virtual Protocol_Record *insert (const char *key_name,
int max_len = MAXUSERIDNAMELEN);
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side.
+ /**
+ * An iterator, similar to Binary_Search::get_next_friend, though in
+ * this case the friend records are returned in the order they
+ * appeared in the friend file, rather than in sorted order. Also,
+ * we skip over entries that don't have any hosts associated with
+ * them.
+ */
virtual Protocol_Record *get_next_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
};
#endif /* _BS_SERVER_H */
diff --git a/ACE/apps/drwho/Binary_Search.cpp b/ACE/apps/drwho/Binary_Search.cpp
index 776c9f4c047..2716c321950 100644
--- a/ACE/apps/drwho/Binary_Search.cpp
+++ b/ACE/apps/drwho/Binary_Search.cpp
@@ -23,13 +23,13 @@ Protocol_Record *
Binary_Search::get_next_entry (void)
{
// Reset the iterator if we are starting from the beginning.
-
+
if (this->current_ptr_ == 0)
this->current_ptr_ = this->sorted_record_;
-
+
// Now check to see if we've hit the end, in which case we set
// things up for the next round!
-
+
if (this->current_ptr_ < this->sorted_record_ + this->count_)
return *this->current_ptr_++;
else
@@ -48,13 +48,13 @@ Protocol_Record *
Binary_Search::get_each_entry (void)
{
// Reset the iterator if we are starting from the beginning.
-
+
if (this->current_index_ == -1)
this->current_index_ = 0;
-
+
// Now check to see if we've hit the end, in which case we set
// things up for the next round!
-
+
for (;
this->current_index_ < this->count_;
this->current_index_++)
@@ -70,7 +70,7 @@ Binary_Search::~Binary_Search (void)
if (Options::get_opt (Options::DEBUGGING))
ACE_DEBUG ((LM_DEBUG,
"disposing Binary_Search\n"));
-}
+}
// Used to initialize the values for the iterators...
diff --git a/ACE/apps/drwho/Binary_Search.h b/ACE/apps/drwho/Binary_Search.h
index ae8dc93cb29..09a032de379 100644
--- a/ACE/apps/drwho/Binary_Search.h
+++ b/ACE/apps/drwho/Binary_Search.h
@@ -1,61 +1,67 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Binary_Search.h
-//
-// = DESCRIPTION
-// Defines a binary search abstraction for friend records.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Binary_Search.h
+ *
+ * $Id$
+ *
+ * Defines a binary search abstraction for friend records.
+ *
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _BINARY_SEARCH_H
#define _BINARY_SEARCH_H
#include "Search_Struct.h"
+/**
+ * @class Binary_Search
+ *
+ * @brief Defines a binary search abstraction for friend records.
+ */
class Binary_Search : public Search_Struct
{
- // = TITLE
- // Defines a binary search abstraction for friend records.
public:
// = Initialization and termination method.
+ /// Initialize the values for the iterators...
Binary_Search (void);
- // Initialize the values for the iterators...
+ /// Destructor.
virtual ~Binary_Search (void);
- // Destructor.
+ /**
+ * Returns the next friend in the sequence of sorted friends. Note
+ * that this function would be simplified if we expanded the
+ * iterator interface to include an "initialize" and "next"
+ * function!
+ */
virtual Protocol_Record *get_next_entry (void);
- // Returns the next friend in the sequence of sorted friends. Note
- // that this function would be simplified if we expanded the
- // iterator interface to include an "initialize" and "next"
- // function!
+ /**
+ * An iterator, similar to Binary_Search::get_next_friend, though in
+ * this case the friend records are returned in the order they
+ * appeared in the friend file, rather than in sorted order. Also,
+ * we skip over entries that don't have any hosts associated with
+ * them.
+ */
virtual Protocol_Record *get_each_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
+ /**
+ * This function is used to merge the <key_name> from server
+ * <host_name> into the sorted list of userids kept on the client's
+ * side.
+ */
virtual Protocol_Record *insert (const char *key_name,
int max_len = MAXUSERIDNAMELEN) = 0;
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side.
+ /// This function is passed to qsort to perform the comparison
+ /// between login names for two friends.
static int name_compare (const void *, const void *);
- // This function is passed to qsort to perform the comparison
- // between login names for two friends.
protected:
Protocol_Record **current_ptr_;
diff --git a/ACE/apps/drwho/CM_Client.h b/ACE/apps/drwho/CM_Client.h
index 43d3e9e940e..bd868fc8e09 100644
--- a/ACE/apps/drwho/CM_Client.h
+++ b/ACE/apps/drwho/CM_Client.h
@@ -1,22 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// CM_Client.h
-//
-// = DESCRIPTION
-// Provides a virtual communcations layer for the client in the
-// drwho program.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file CM_Client.h
+ *
+ * $Id$
+ *
+ * Provides a virtual communcations layer for the client in the
+ * drwho program.
+ *
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _CM_CLIENT_H
#define _CM_CLIENT_H
@@ -24,18 +21,21 @@
#include "Comm_Manager.h"
#include "ace/Time_Value.h"
+/**
+ * @class CM_Client
+ *
+ * @brief Provides a virtual communcations layer for the client in the
+ * drwho program.
+ */
class CM_Client : public Comm_Manager
{
- // = TITLE
- // Provides a virtual communcations layer for the client in the
- // drwho program.
public:
// = Initialization and termination.
+ /// Constructor.
CM_Client (void);
- // Constructor.
+ /// Destructor.
virtual ~CM_Client (void);
- // Destructor.
virtual int mux (char *packet, int &packet_length) = 0;
virtual int demux (char *packet, int &packet_length) = 0;
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/drwho/CM_Server.h b/ACE/apps/drwho/CM_Server.h
index a91402a5e48..e4b96646f52 100644
--- a/ACE/apps/drwho/CM_Server.h
+++ b/ACE/apps/drwho/CM_Server.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// CM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file CM_Server.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _CM_SERVER_H
#define _CM_SERVER_H
@@ -21,10 +18,13 @@
#include "global.h"
#include "Comm_Manager.h"
+/**
+ * @class CM_Server
+ *
+ * @brief Provides a virtual communcations layer for the server in drwho.
+ */
class CM_Server : public Comm_Manager
{
- // = TITLE
- // Provides a virtual communcations layer for the server in drwho.
public:
CM_Server (void);
virtual ~CM_Server (void);
diff --git a/ACE/apps/drwho/Comm_Manager.cpp b/ACE/apps/drwho/Comm_Manager.cpp
index d4d9234c82d..bb8e2ee1cb2 100644
--- a/ACE/apps/drwho/Comm_Manager.cpp
+++ b/ACE/apps/drwho/Comm_Manager.cpp
@@ -1,10 +1,6 @@
-#include "Comm_Manager.h"
-
-
-ACE_RCSID (drwho,
- Comm_Manager,
- "$Id$")
+// $Id$
+#include "Comm_Manager.h"
Comm_Manager::~Comm_Manager (void)
{
diff --git a/ACE/apps/drwho/Comm_Manager.h b/ACE/apps/drwho/Comm_Manager.h
index c7e8348b542..78b25d4614e 100644
--- a/ACE/apps/drwho/Comm_Manager.h
+++ b/ACE/apps/drwho/Comm_Manager.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Comm_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Comm_Manager.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _COMM_MANAGER_H
#define _COMM_MANAGER_H
diff --git a/ACE/apps/drwho/Drwho_Node.h b/ACE/apps/drwho/Drwho_Node.h
index 02251b669df..b62c06124c6 100644
--- a/ACE/apps/drwho/Drwho_Node.h
+++ b/ACE/apps/drwho/Drwho_Node.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Drwho_Node.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Drwho_Node.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _DRWHO_NODE_H
#define _DRWHO_NODE_H
#include "global.h"
+/**
+ * @class Drwho_Node
+ *
+ * @brief Stores information about a host for a specific friend.
+ */
class Drwho_Node
{
- // = TITLE
- // Stores information about a host for a specific friend.
public:
Drwho_Node (const char *host, Drwho_Node *next);
Drwho_Node (void);
diff --git a/ACE/apps/drwho/File_Manager.h b/ACE/apps/drwho/File_Manager.h
index 1784b8abcfe..18a857fe090 100644
--- a/ACE/apps/drwho/File_Manager.h
+++ b/ACE/apps/drwho/File_Manager.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// File_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file File_Manager.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _FILE_MANAGER_H
#define _FILE_MANAGER_H
@@ -27,13 +24,16 @@
#include "ace/Mem_Map.h"
+/**
+ * @class File_Manager
+ *
+ * @brief This class provides a file ADT for our friends info.
+ */
class File_Manager
{
- // = TITLE
- // This class provides a file ADT for our friends info.
public:
+ /// Constructor.
File_Manager (void);
- // Constructor.
int open_file (const char *filename);
void get_login_and_real_name (const char *&login_name,
diff --git a/ACE/apps/drwho/HT_Client.h b/ACE/apps/drwho/HT_Client.h
index 274cc6e72e6..759fff545df 100644
--- a/ACE/apps/drwho/HT_Client.h
+++ b/ACE/apps/drwho/HT_Client.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file HT_Client.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _HT_CLIENT_H
#define _HT_CLIENT_H
#include "Hash_Table.h"
+/**
+ * @class HT_Client
+ *
+ * @brief Provides the client's hash table abstraction.
+ */
class HT_Client : public Hash_Table
{
- // = TITLE
- // Provides the client's hash table abstraction.
public:
virtual Protocol_Record *insert (const char *key_name,
int max_len = MAXUSERIDNAMELEN);
diff --git a/ACE/apps/drwho/HT_Server.h b/ACE/apps/drwho/HT_Server.h
index 3dbff633cfb..db312698012 100644
--- a/ACE/apps/drwho/HT_Server.h
+++ b/ACE/apps/drwho/HT_Server.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file HT_Server.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _HT_SERVER_H
#define _HT_SERVER_H
#include "Hash_Table.h"
+/**
+ * @class HT_Server
+ *
+ * @brief Provides the server's hash table abstraction.
+ */
class HT_Server : public Hash_Table
{
- // = TITLE
- // Provides the server's hash table abstraction.
public:
virtual Protocol_Record *insert (const char *key_name,
diff --git a/ACE/apps/drwho/Hash_Table.h b/ACE/apps/drwho/Hash_Table.h
index 44f5ea769fc..2d6f8bd758c 100644
--- a/ACE/apps/drwho/Hash_Table.h
+++ b/ACE/apps/drwho/Hash_Table.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Hash_Table.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _HASH_TABLE_H
#define _HASH_TABLE_H
#include "Search_Struct.h"
+/**
+ * @class Hash_Table
+ *
+ * @brief Provides a hash function lookup abstraction for friend records.
+ */
class Hash_Table : public Search_Struct
{
- // = TITLE
- // Provides a hash function lookup abstraction for friend records.
public:
Hash_Table (void);
virtual ~Hash_Table (void);
diff --git a/ACE/apps/drwho/Multicast_Manager.h b/ACE/apps/drwho/Multicast_Manager.h
index ee21ac6ac08..4f17919d844 100644
--- a/ACE/apps/drwho/Multicast_Manager.h
+++ b/ACE/apps/drwho/Multicast_Manager.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Multicast_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Multicast_Manager.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _MULTICAST_MANAGER_H
#define _MULTICAST_MANAGER_H
@@ -32,11 +29,14 @@ public:
Host_Elem (const char *h_name, Host_Elem *n);
};
+/**
+ * @class Multicast_Manager
+ *
+ * @brief This file handles all the operations upon host machines names
+ * and addresses.
+ */
class Multicast_Manager
{
- // = TITLE
- // This file handles all the operations upon host machines names
- // and addresses.
public:
static void add_host (const char *host_name);
static void checkoff_host (in_addr host_addr);
diff --git a/ACE/apps/drwho/Options.h b/ACE/apps/drwho/Options.h
index 221e430076f..d6d9660718c 100644
--- a/ACE/apps/drwho/Options.h
+++ b/ACE/apps/drwho/Options.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Options.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _OPTIONS_H
#define _OPTIONS_H
#include "global.h"
+/**
+ * @class Options
+ *
+ * @brief This file is used to provide a consolidated Options handling facility.
+ */
class Options
{
- // = TITLE
- // This file is used to provide a consolidated Options handling facility.
public:
enum Option_Types
{
diff --git a/ACE/apps/drwho/PMC_All.h b/ACE/apps/drwho/PMC_All.h
index 308388adf4f..9952e47bc98 100644
--- a/ACE/apps/drwho/PMC_All.h
+++ b/ACE/apps/drwho/PMC_All.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_All.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PMC_All.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PMC_ALL_H
#define _PMC_ALL_H
#include "PM_Client.h"
+/**
+ * @class PMC_All
+ *
+ * @brief Provides the client's lookup table abstraction for `all' users...
+ */
class PMC_All : public PM_Client
{
- // = TITLE
- // Provides the client's lookup table abstraction for `all' users...
protected:
virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
diff --git a/ACE/apps/drwho/PMC_Flo.h b/ACE/apps/drwho/PMC_Flo.h
index 305a8d8803c..58be95b2418 100644
--- a/ACE/apps/drwho/PMC_Flo.h
+++ b/ACE/apps/drwho/PMC_Flo.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Flo.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PMC_Flo.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PMC_FLO_H
#define _PMC_FLO_H
#include "PM_Client.h"
+/**
+ * @class PMC_Flo
+ *
+ * @brief Provides the client's lookup table abstraction for `flo' users...
+ */
class PMC_Flo : public PM_Client
{
- // = TITLE
- // Provides the client's lookup table abstraction for `flo' users...
public:
PMC_Flo (void);
diff --git a/ACE/apps/drwho/PMC_Ruser.h b/ACE/apps/drwho/PMC_Ruser.h
index fe3d3c23363..6719b3a1ea2 100644
--- a/ACE/apps/drwho/PMC_Ruser.h
+++ b/ACE/apps/drwho/PMC_Ruser.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Ruser.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PMC_Ruser.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PMC_RUSER_H
#define _PMC_RUSER_H
#include "PM_Client.h"
+/**
+ * @class PMC_Ruser
+ *
+ * @brief Provides the client's lookup table abstraction for `ruser' users...
+ */
class PMC_Ruser : public PM_Client
{
- // = TITLE
- // Provides the client's lookup table abstraction for `ruser' users...
public:
PMC_Ruser (void);
diff --git a/ACE/apps/drwho/PMC_Usr.h b/ACE/apps/drwho/PMC_Usr.h
index f98c8325b83..98e1887c733 100644
--- a/ACE/apps/drwho/PMC_Usr.h
+++ b/ACE/apps/drwho/PMC_Usr.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Usr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PMC_Usr.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PMC_USR_H
#define _PMC_USR_H
#include "PM_Client.h"
+/**
+ * @class PMC_Usr
+ *
+ * @brief Provides the client's lookup table abstraction for `Usr' users...
+ */
class PMC_Usr : public PM_Client
{
- // = TITLE
- // Provides the client's lookup table abstraction for `Usr' users...
public:
PMC_Usr (char *usr_name);
virtual void process (void);
diff --git a/ACE/apps/drwho/PMS_All.cpp b/ACE/apps/drwho/PMS_All.cpp
index 92a8e45511a..db9eb75703b 100644
--- a/ACE/apps/drwho/PMS_All.cpp
+++ b/ACE/apps/drwho/PMS_All.cpp
@@ -37,8 +37,8 @@ PMS_All::encode (char *packet, int &packet_length)
for (;
(prp = this->get_next_friend ()) != 0;
*buf_ptr++ = '\t')
- buf_ptr =
- this->handle_protocol_entries (ACE_OS::strecpy
+ buf_ptr =
+ this->handle_protocol_entries (ACE_OS::strecpy
(ACE_OS::strecpy (buf_ptr,
prp->get_login ()),
prp->get_real ()),
diff --git a/ACE/apps/drwho/PMS_All.h b/ACE/apps/drwho/PMS_All.h
index 41459f57cbe..9e9d5987ef7 100644
--- a/ACE/apps/drwho/PMS_All.h
+++ b/ACE/apps/drwho/PMS_All.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_All.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file PMS_All.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PMS_ALL_H
#define _PMS_ALL_H
#include "PM_Server.h"
+/**
+ * @class PMS_All
+ *
+ * @brief Provides the server's lookup table abstraction for `all' users...
+ */
class PMS_All : public PM_Server
{
- // = TITLE
- // Provides the server's lookup table abstraction for `all' users...
public:
PMS_All (void);
diff --git a/ACE/apps/drwho/PMS_Flo.h b/ACE/apps/drwho/PMS_Flo.h
index b7fefa5abec..30502c6d863 100644
--- a/ACE/apps/drwho/PMS_Flo.h
+++ b/ACE/apps/drwho/PMS_Flo.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Flo.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PMS_Flo.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PMS_FLO_H
#define _PMS_FLO_H
#include "PM_Server.h"
+/**
+ * @class PMS_Flo
+ *
+ * @brief Provides the server's lookup table abstraction for `flo' users...
+ */
class PMS_Flo : public PM_Server
{
- // = TITLE
- // Provides the server's lookup table abstraction for `flo' users...
public:
PMS_Flo (void);
diff --git a/ACE/apps/drwho/PMS_Ruser.h b/ACE/apps/drwho/PMS_Ruser.h
index f26e916549f..4b040bf8f32 100644
--- a/ACE/apps/drwho/PMS_Ruser.h
+++ b/ACE/apps/drwho/PMS_Ruser.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Ruser.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PMS_Ruser.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PMS_RUSER_H
#define _PMS_RUSER_H
#include "PM_Server.h"
+/**
+ * @class PMS_Ruser
+ *
+ * @brief Provides the server's lookup table abstraction for `ruser' users...
+ */
class PMS_Ruser : public PM_Server
{
- // = TITLE
- // Provides the server's lookup table abstraction for `ruser' users...
public:
PMS_Ruser (void);
diff --git a/ACE/apps/drwho/PMS_Usr.h b/ACE/apps/drwho/PMS_Usr.h
index 1f29e43d653..b38ea79453b 100644
--- a/ACE/apps/drwho/PMS_Usr.h
+++ b/ACE/apps/drwho/PMS_Usr.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Usr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PMS_Usr.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PMS_USR_H
#define _PMS_USR_H
#include "PM_Server.h"
+/**
+ * @class PMS_Usr
+ *
+ * @brief Provides the client's lookup table abstraction for `Usr' users...
+ */
class PMS_Usr : public PM_Server
{
- // = TITLE
- // Provides the client's lookup table abstraction for `Usr' users...
public:
PMS_Usr (void);
diff --git a/ACE/apps/drwho/PM_Client.h b/ACE/apps/drwho/PM_Client.h
index f44ab84f69f..a6466bc920d 100644
--- a/ACE/apps/drwho/PM_Client.h
+++ b/ACE/apps/drwho/PM_Client.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PM_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PM_Client.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PM_CLIENT_H
#define _PM_CLIENT_H
#include "Protocol_Manager.h"
+/**
+ * @class PM_Client
+ *
+ * @brief Provides the client side of the friend manager lookup table abstraction.
+ */
class PM_Client : public Protocol_Manager
{
- // = TITLE
- // Provides the client side of the friend manager lookup table abstraction.
public:
PM_Client (void);
virtual ~PM_Client (void);
diff --git a/ACE/apps/drwho/PM_Server.h b/ACE/apps/drwho/PM_Server.h
index 2a355c8e262..6c5e26c9142 100644
--- a/ACE/apps/drwho/PM_Server.h
+++ b/ACE/apps/drwho/PM_Server.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file PM_Server.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PM_SERVER_H
#define _PM_SERVER_H
#include "Protocol_Manager.h"
+/**
+ * @class PM_Server
+ *
+ * @brief Handle the server's lookup table abstraction.
+ */
class PM_Server : public Protocol_Manager
{
- // = TITLE
- // Handle the server's lookup table abstraction.
public:
PM_Server (void);
diff --git a/ACE/apps/drwho/Protocol_Manager.h b/ACE/apps/drwho/Protocol_Manager.h
index fd4ef92a9ed..0d0453c6e52 100644
--- a/ACE/apps/drwho/Protocol_Manager.h
+++ b/ACE/apps/drwho/Protocol_Manager.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Protocol_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Protocol_Manager.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PROTOCOL_MANAGER_H
#define _PROTOCOL_MANAGER_H
@@ -27,11 +24,14 @@
#include "Search_Struct.h"
#include "Protocol_Record.h"
+/**
+ * @class Protocol_Manager
+ *
+ * @brief A base class that consolidates friend management functionality
+ * shared by both clients and servers.
+ */
class Protocol_Manager
{
- // = TITLE
- // A base class that consolidates friend management functionality
- // shared by both clients and servers.
public:
Protocol_Manager (void);
virtual ~Protocol_Manager (void);
diff --git a/ACE/apps/drwho/Protocol_Record.h b/ACE/apps/drwho/Protocol_Record.h
index 60cf250adf1..26176f35656 100644
--- a/ACE/apps/drwho/Protocol_Record.h
+++ b/ACE/apps/drwho/Protocol_Record.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Protocol_Record.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Protocol_Record.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _PROTOCOL_RECORD_H
#define _PROTOCOL_RECORD_H
#include "Drwho_Node.h"
+/**
+ * @class Protocol_Record
+ *
+ * @brief Stores information about a single friend's status.
+ */
class Protocol_Record
{
- // = TITLE
- // Stores information about a single friend's status.
public:
Protocol_Record (void);
diff --git a/ACE/apps/drwho/Rwho_DB_Manager.h b/ACE/apps/drwho/Rwho_DB_Manager.h
index 2dd8bf73128..f6646729f76 100644
--- a/ACE/apps/drwho/Rwho_DB_Manager.h
+++ b/ACE/apps/drwho/Rwho_DB_Manager.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Rwho_DB_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Rwho_DB_Manager.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _RWHO_DB_MANAGER_H
#define _RWHO_DB_MANAGER_H
@@ -27,11 +24,14 @@
#include "Protocol_Record.h"
+/**
+ * @class RWho_DB_Manager
+ *
+ * @brief This class returns the user/machine pairs one at a time from
+ * the rwho database.
+ */
class RWho_DB_Manager
{
- // = TITLE
- // This class returns the user/machine pairs one at a time from
- // the rwho database.
public:
RWho_DB_Manager (void);
diff --git a/ACE/apps/drwho/SL_Client.h b/ACE/apps/drwho/SL_Client.h
index 16be3842064..8dcd18dfc64 100644
--- a/ACE/apps/drwho/SL_Client.h
+++ b/ACE/apps/drwho/SL_Client.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SL_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file SL_Client.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SL_CLIENT_H
#define _SL_CLIENT_H
#include "Single_Lookup.h"
+/**
+ * @class SL_Client
+ *
+ * @brief Provides the client's single user lookup table abstraction.
+ */
class SL_Client : public Single_Lookup
{
- // = TITLE
- // Provides the client's single user lookup table abstraction.
public:
SL_Client (const char *key_name);
diff --git a/ACE/apps/drwho/SL_Server.h b/ACE/apps/drwho/SL_Server.h
index 2a8ee2ba054..d4a427d205d 100644
--- a/ACE/apps/drwho/SL_Server.h
+++ b/ACE/apps/drwho/SL_Server.h
@@ -1,28 +1,28 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SL_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file SL_Server.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SL_SERVER_H
#define _SL_SERVER_H
#include "Single_Lookup.h"
+/**
+ * @class SL_Server
+ *
+ * @brief Provides the server's single user lookup table abstraction.
+ */
class SL_Server : public Single_Lookup
{
- // = TITLE
- // Provides the server's single user lookup table abstraction.
public:
SL_Server (const char *packet);
diff --git a/ACE/apps/drwho/SML_Client.h b/ACE/apps/drwho/SML_Client.h
index d02fb8d6fa0..56773b09b84 100644
--- a/ACE/apps/drwho/SML_Client.h
+++ b/ACE/apps/drwho/SML_Client.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SML_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file SML_Client.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SML_CLIENT_H
#define _SML_CLIENT_H
diff --git a/ACE/apps/drwho/SML_Server.h b/ACE/apps/drwho/SML_Server.h
index 5fc665450df..156f7077ce0 100644
--- a/ACE/apps/drwho/SML_Server.h
+++ b/ACE/apps/drwho/SML_Server.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SML_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file SML_Server.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SML_SERVER_H
#define _SML_SERVER_H
diff --git a/ACE/apps/drwho/SMR_Client.cpp b/ACE/apps/drwho/SMR_Client.cpp
index c7dae2ca3f7..0020b8b1e3c 100644
--- a/ACE/apps/drwho/SMR_Client.cpp
+++ b/ACE/apps/drwho/SMR_Client.cpp
@@ -12,7 +12,7 @@ SMR_Client::SMR_Client (short port_number)
{
if (CM_Client::open (port_number) < 0)
ACE_ERROR ((LM_ERROR,
- "%p\n%a",
+ "%p\n%a",
Options::program_name,
1));
}
diff --git a/ACE/apps/drwho/SMR_Client.h b/ACE/apps/drwho/SMR_Client.h
index 9725c3ebd96..e28c8403002 100644
--- a/ACE/apps/drwho/SMR_Client.h
+++ b/ACE/apps/drwho/SMR_Client.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SMR_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file SMR_Client.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SMR_CLIENT_H
#define _SMR_CLIENT_H
diff --git a/ACE/apps/drwho/SMR_Server.h b/ACE/apps/drwho/SMR_Server.h
index af8b384d701..aea95562795 100644
--- a/ACE/apps/drwho/SMR_Server.h
+++ b/ACE/apps/drwho/SMR_Server.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SMR_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file SMR_Server.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SMR_SERVER_H
#define _SMR_SERVER_H
diff --git a/ACE/apps/drwho/SM_Client.cpp b/ACE/apps/drwho/SM_Client.cpp
index 02e552c9af9..a7cab2eaa04 100644
--- a/ACE/apps/drwho/SM_Client.cpp
+++ b/ACE/apps/drwho/SM_Client.cpp
@@ -11,7 +11,7 @@
// Call-back function that invokes the appropriate decode function.
-int
+int
SM_Client::demux (char *packet,
int &packet_length)
{
@@ -23,7 +23,7 @@ SM_Client::demux (char *packet,
// Call-back function that invokes the appropriate encode function.
-int
+int
SM_Client::mux (char *packet, int &packet_length)
{
switch (Options::protocol_type)
@@ -49,12 +49,12 @@ SM_Client::mux (char *packet, int &packet_length)
-1);
break;
default:
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
"%s: bad protocol\n",
Options::program_name));
return -1;
}
-
+
if (this->pm_client->encode (packet, packet_length) < 0)
return -1;
return 1;
diff --git a/ACE/apps/drwho/SM_Client.h b/ACE/apps/drwho/SM_Client.h
index 0a262f71c78..b03396e3722 100644
--- a/ACE/apps/drwho/SM_Client.h
+++ b/ACE/apps/drwho/SM_Client.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SM_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file SM_Client.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SM_CLIENT_H
#define _SM_CLIENT_H
diff --git a/ACE/apps/drwho/SM_Server.cpp b/ACE/apps/drwho/SM_Server.cpp
index 25a43375524..16ef5f1dea1 100644
--- a/ACE/apps/drwho/SM_Server.cpp
+++ b/ACE/apps/drwho/SM_Server.cpp
@@ -9,7 +9,7 @@
#include "ace/Log_Msg.h"
#include "ace/OS_Memory.h"
-int
+int
SM_Server::demux (char *packet, int &packet_length)
{
switch (GET_PACKET_TYPE (packet))
@@ -35,7 +35,7 @@ SM_Server::demux (char *packet, int &packet_length)
-1);
break;
default:
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
"%s: bad protocol\n",
Options::program_name));
return -1;
@@ -53,7 +53,7 @@ SM_Server::demux (char *packet, int &packet_length)
return 1;
}
-int
+int
SM_Server::mux (char *packet,
int &packet_length)
{
diff --git a/ACE/apps/drwho/SM_Server.h b/ACE/apps/drwho/SM_Server.h
index f9fbc9857d1..a459260b90f 100644
--- a/ACE/apps/drwho/SM_Server.h
+++ b/ACE/apps/drwho/SM_Server.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file SM_Server.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SM_SERVER_H
#define _SM_SERVER_H
diff --git a/ACE/apps/drwho/Search_Struct.h b/ACE/apps/drwho/Search_Struct.h
index c45dcbf6086..7c628862d83 100644
--- a/ACE/apps/drwho/Search_Struct.h
+++ b/ACE/apps/drwho/Search_Struct.h
@@ -1,29 +1,29 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Search_Struct.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Search_Struct.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SEARCH_STRUCT_H
#define _SEARCH_STRUCT_H
#include "Protocol_Record.h"
+/**
+ * @class Search_Struct
+ *
+ * @brief Provides an "Abstract Base Class" lookup table abstraction that
+ * stores and manipulates friend records.
+ */
class Search_Struct
{
- // = TITLE
- // Provides an "Abstract Base Class" lookup table abstraction that
- // stores and manipulates friend records.
public:
Search_Struct (void);
virtual ~Search_Struct (void);
diff --git a/ACE/apps/drwho/Select_Manager.h b/ACE/apps/drwho/Select_Manager.h
index 9fed1bc1195..0c2c9738ed8 100644
--- a/ACE/apps/drwho/Select_Manager.h
+++ b/ACE/apps/drwho/Select_Manager.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Select_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Select_Manager.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SELECT_MANAGER_H
#define _SELECT_MANAGER_H
diff --git a/ACE/apps/drwho/Single_Lookup.h b/ACE/apps/drwho/Single_Lookup.h
index fa86301215e..cbf0eb249a8 100644
--- a/ACE/apps/drwho/Single_Lookup.h
+++ b/ACE/apps/drwho/Single_Lookup.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Single_Lookup.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Single_Lookup.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _SINGLE_LOOKUP_H
#define _SINGLE_LOOKUP_H
@@ -20,10 +17,13 @@
#include "Options.h"
#include "Search_Struct.h"
+/**
+ * @class Single_Lookup
+ *
+ * Provides the client's single user lookup table abstraction.
+ */
class Single_Lookup : public Search_Struct
{
- // = DESCRIPTION
- // Provides the client's single user lookup table abstraction.
public:
Single_Lookup (const char *usr_name);
virtual ~Single_Lookup (void);
diff --git a/ACE/apps/drwho/client.cpp b/ACE/apps/drwho/client.cpp
index bd4c25130b9..e7768b9188e 100644
--- a/ACE/apps/drwho/client.cpp
+++ b/ACE/apps/drwho/client.cpp
@@ -1,20 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// client.cpp
-//
-// = DESCRIPTION
-// Client driver program for drwho.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file client.cpp
+ *
+ * $Id$
+ *
+ * Client driver program for drwho.
+ *
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#include "ace/Log_Msg.h"
diff --git a/ACE/apps/drwho/global.h b/ACE/apps/drwho/global.h
index e81e25050d2..b067a6f96cc 100644
--- a/ACE/apps/drwho/global.h
+++ b/ACE/apps/drwho/global.h
@@ -1,21 +1,17 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// global.h
-//
-// = DESCRIPTION
-// Here are all the declarations that are needed throughout the program. */
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file global.h
+ *
+ * $Id$
+ *
+ * Here are all the declarations that are needed throughout the program.
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#ifndef _GLOBAL_H
#define _GLOBAL_H
diff --git a/ACE/apps/drwho/server.cpp b/ACE/apps/drwho/server.cpp
index 09bbe570f00..6039eb56d45 100644
--- a/ACE/apps/drwho/server.cpp
+++ b/ACE/apps/drwho/server.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// server.cpp
-//
-// = DESCRIPTION
-// Driver program for the server. Note that it is easy to reuse the
-// server for other distributed programs. Pretty much all that must
-// change are the functions registered with the communciations
-// manager.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file server.cpp
+ *
+ * $Id$
+ *
+ * Driver program for the server. Note that it is easy to reuse the
+ * server for other distributed programs. Pretty much all that must
+ * change are the functions registered with the communciations
+ * manager.
+ *
+ *
+ * @author Douglas C. Schmidt
+ */
+//=============================================================================
+
#include "Options.h"
#include "SMR_Server.h"
diff --git a/ACE/apps/gperf/ChangeLog b/ACE/apps/gperf/ChangeLog
index 139597c03fc..f02fc22500c 100644
--- a/ACE/apps/gperf/ChangeLog
+++ b/ACE/apps/gperf/ChangeLog
@@ -1,3 +1,33 @@
+Wed Aug 4 16:24:42 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * src/Bool_Array.h:
+ * src/Gen_Perf.h:
+ * src/Key_List.h:
+ * src/Options.h:
+ * src/gperf.mpc:
+ Don't use a seperate library, we can't embed gperf as shared library
+ because it has a GPL license
+
+ * src/gperf_export.h:
+ Removed this file.
+
+Mon Jul 13 15:32:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * src/Bool_Array.h:
+ * src/Vectors.h:
+ Doxygen changes
+
+Sun Jun 28 03:20:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * src/*.{h,cpp}:
+ Use doxygen comment tags, small code improvements
+
+ * src/gperf.mpc:
+ Build a shared library that can later be used by gperf
+
+ * src/gperf_export.h:
+ New file
+
Wed Jul 02 11:30:00 UTC 2008 Simon Massey <sma at prismtech dot com>
* src/Key_List.cpp:
@@ -44,7 +74,7 @@ Tue Mar 14 21:08:12 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu>
conditional expression", "conversion from some type to another type, possible
loss of data", "local variable may be used without having been initialized" and
so on.
- Thanks to Lukas Gruetzmacher <gruetzmacher at ais-dresden dot de> for
+ Thanks to Lukas Gruetzmacher <gruetzmacher at ais-dresden dot de> for
motivating the fix to these "VC level 4 warnings".
Wed Jan 4 22:55:24 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com>
@@ -77,12 +107,12 @@ Sat Apr 30 10:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
Fri Apr 29 09:08:39 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu>
- * src/Key_List.cpp (output_binary_search_function): Added a
+ * src/Key_List.cpp (output_binary_search_function): Added a
- do {/* null */} while (&base == 0);
+ do {/* null */} while (&base == 0);
- to silence warnings on some compilers. Thanks to Frank Pilhofer
- <fp@mc.com>.
+ to silence warnings on some compilers. Thanks to Frank Pilhofer
+ <fp@mc.com>.
Fri Aug 5 15:30:00 UTC 2004 Simon Massey <simon.massey@prismtechnologies.com>
@@ -94,16 +124,16 @@ Fri Aug 5 15:30:00 UTC 2004 Simon Massey <simon.massey@prismtechnologies.com>
Fri Apr 23 21:18:17 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
- * src/Options.h (operator !=):
- * src/Options.cpp (operator !=):
+ * src/Options.h (operator !=):
+ * src/Options.cpp (operator !=):
- Changed return type to bool, as is the norm in modern C++.
+ Changed return type to bool, as is the norm in modern C++.
Tue Jan 20 17:13:29 2004 Steve Huston <shuston@riverace.com>
- * version.texi: Something in the autoconf build thought it wise to
- update the date in this file. It matches the last modification
- date of gperf.texi.
+ * version.texi: Something in the autoconf build thought it wise to
+ update the date in this file. It matches the last modification
+ date of gperf.texi.
Thu Jun 19 14:52:05 UTC 2003 Don Hinton <dhinton@dresystems.com>
@@ -116,49 +146,49 @@ Thu Jun 19 14:52:05 UTC 2003 Don Hinton <dhinton@dresystems.com>
Tue Jun 17 11:38:36 2003 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
- * src/Key_List.cpp (output_lookup_array):
- * src/Gen_Perf.cpp (run):
- * src/Key_List.cpp (already_determined):
- * src/List_Node.cpp (List_Node): Added casts to prevent GCC 3.3
- from complaining about stupid stuff... Thanks to Bala for
- reporting this.
+ * src/Key_List.cpp (output_lookup_array):
+ * src/Gen_Perf.cpp (run):
+ * src/Key_List.cpp (already_determined):
+ * src/List_Node.cpp (List_Node): Added casts to prevent GCC 3.3
+ from complaining about stupid stuff... Thanks to Bala for
+ reporting this.
Sun Jul 28 17:04:54 2002 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
- * src/gperf.cpp (main): Only generate the timestamps if the
- DEBUGGING option ('-d') is enabled. Thanks to Kier Schmitt
- <SchmittKC@kpt.nuwc.navy.mil> for this suggestion.
+ * src/gperf.cpp (main): Only generate the timestamps if the
+ DEBUGGING option ('-d') is enabled. Thanks to Kier Schmitt
+ <SchmittKC@kpt.nuwc.navy.mil> for this suggestion.
Tue Feb 26 23:15:47 2002 Ossama Othman <ossama@uci.edu>
- * gperf.texi:
+ * gperf.texi:
- Added missing "@dircategory" entry. It is required for proper
- installation when using `install-info'.
+ Added missing "@dircategory" entry. It is required for proper
+ installation when using `install-info'.
- Use "@direntry" instead of "{START,END}-INFO-DIR-ENTRY"
- directly.
+ Use "@direntry" instead of "{START,END}-INFO-DIR-ENTRY"
+ directly.
- * gperf.info:
+ * gperf.info:
- Regenerated this file.
+ Regenerated this file.
Mon Jan 14 14:43:53 2002 Carlos O'Ryan <coryan@uci.edu>
- * tests/Makefile:
- Re-generate dependencies.
+ * tests/Makefile:
+ Re-generate dependencies.
Mon Dec 24 12:47:27 2001 Carlos O'Ryan <coryan@uci.edu>
- * src/Options.cpp:
- Add temporary fix until something better shows up, at least it
- compiles this way!
+ * src/Options.cpp:
+ Add temporary fix until something better shows up, at least it
+ compiles this way!
Sat Sep 22 09:06:10 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
- * src/Makefile: Removed the rules.lib.GNU file since it didn't
- seem to be needed and was causing problems for MinGW. Thanks to
- Jeff McNiel <JMcNiel@datacrit.com> for reporting this.
+ * src/Makefile: Removed the rules.lib.GNU file since it didn't
+ seem to be needed and was causing problems for MinGW. Thanks to
+ Jeff McNiel <JMcNiel@datacrit.com> for reporting this.
Wed Sep 19 02:29:37 2001 Carlos O'Ryan <coryan@uci.edu>
@@ -1118,7 +1148,7 @@ Mon Apr 8 18:17:04 1991 Doug Schmidt (schmidt at net4.ics.uci.edu)
* Boy, it has been a *long* time since I hacked this puppy. Let's
see, I'm about to add long-overdue support for case-insensitive
string comparisons to gperf's generated output code. We are
- going to employ the hitherto unused option -I to indicte this!
+ going to employ the hitherto unused option -I to indicate this!
Thu Jun 28 16:17:27 1990 Doug Schmidt (schmidt at brilliant)
@@ -1964,7 +1994,7 @@ Sun Jan 15 15:12:09 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
is now computed in Key_List::Read_Keys, and thus
Key_List::Print_Min_Max doesn't need to bother.
- * Modifed the key position iterator scheme in options.cc to
+ * Modified the key position iterator scheme in options.cc to
eliminate the need for member function Options::Advance.
Now, the Options::Get function performs the advancement
automatically, obviating the need for an extra function call.
@@ -2133,7 +2163,7 @@ Thu Jan 5 22:46:34 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
* Added a check in Key_List::Output for the special case where
the keys used are 1,$. It is possible to generate more
efficient C code in this case.
-
+
Local Variables:
mode: change-log
add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
diff --git a/ACE/apps/gperf/src/Bool_Array.cpp b/ACE/apps/gperf/src/Bool_Array.cpp
index 668f0cd0016..7cd51adcced 100644
--- a/ACE/apps/gperf/src/Bool_Array.cpp
+++ b/ACE/apps/gperf/src/Bool_Array.cpp
@@ -1,35 +1,32 @@
// -*- C++ -*-
-// $Id$
-
// Fast lookup table abstraction implemented as an Iteration Number Array
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "Bool_Array.h"
#include "ace/OS_NS_string.h"
-
-ACE_RCSID(src, Bool_Array, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
#include "ace/OS_Memory.h"
// Prints out debugging diagnostics.
@@ -40,7 +37,7 @@ Bool_Array::~Bool_Array (void)
ACE_DEBUG ((LM_DEBUG,
"\ndumping boolean array information\n"
"size = %u\niteration number = %u\nend of array dump\n",
- size_,
+ size_,
generation_number_));
delete [] this->storage_array_;
}
@@ -104,5 +101,3 @@ Bool_Array::reset (void)
"done\n"));
}
}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/ACE/apps/gperf/src/Bool_Array.h b/ACE/apps/gperf/src/Bool_Array.h
index da76fd7d3e6..01d06288d19 100644
--- a/ACE/apps/gperf/src/Bool_Array.h
+++ b/ACE/apps/gperf/src/Bool_Array.h
@@ -1,25 +1,27 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#ifndef BOOL_ARRAY_H
#define BOOL_ARRAY_H
@@ -32,44 +34,40 @@
#include "Options.h"
-#if defined (ACE_HAS_GPERF)
-
+/**
+ * Efficient lookup table abstraction implemented as a "Generation
+ * Number" Array.
+ *
+ * Uses a "Generation Numbering" implementation to minimize
+ * initialization time.
+ */
class Bool_Array
{
- // = TITLE
- // Efficient lookup table abstraction implemented as a "Generation
- // Number" Array.
- //
- // = DESCRIPTION
- // Uses a "Generation Numbering" implementation to minimize
- // initialization time.
public:
- // = Initialization and termination methods.
+ /// Constructor
Bool_Array (void);
- // Constructor
+ /// Initialize the array (requires O(n) time).
int open (u_long);
- // Initialize the array (requires O(n) time).
+ /// Destructor.
~Bool_Array (void);
- // Destructor.
+ /// Locate the @a value in the array (requires O(1) time).
int find (u_long value);
- // Locate the <value> in the array (requires O(1) time).
+ /// Reinitializes the array (requires O(1) time).
void reset (void);
- // Reinitializes the array (requires O(1) time).
private:
+ /// Initialization of the index space.
unsigned long *storage_array_;
- // Initialization of the index space.
+ /// Keep track of the current Generation.
unsigned long generation_number_;
- // Keep track of the current Generation.
+ /// Keep track of array size.
unsigned long size_;
- // Keep track of array size.
};
-#endif /* ACE_HAS_GPERF */
#endif /* BOOL_ARRAY_H */
diff --git a/ACE/apps/gperf/src/Gen_Perf.cpp b/ACE/apps/gperf/src/Gen_Perf.cpp
index ed1a1bc3cba..0b060bbf24f 100644
--- a/ACE/apps/gperf/src/Gen_Perf.cpp
+++ b/ACE/apps/gperf/src/Gen_Perf.cpp
@@ -1,58 +1,55 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "Gen_Perf.h"
-
-ACE_RCSID(src, Gen_Perf, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
#include "Vectors.h"
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_Memory.h"
-// Current release version.
+/// Current release version.
extern const char *version_string;
-// Reads input keys, possibly applies the reordering heuristic, sets
-// the maximum associated value size (rounded up to the nearest power
-// of 2), may initialize the associated values array, and determines
-// the maximum hash table size. Note: using the random numbers is
-// often helpful, though not as deterministic, of course!
-
+/// Reads input keys, possibly applies the reordering heuristic, sets
+/// the maximum associated value size (rounded up to the nearest power
+/// of 2), may initialize the associated values array, and determines
+/// the maximum hash table size. Note: using the random numbers is
+/// often helpful, though not as deterministic, of course!
Gen_Perf::Gen_Perf (void)
- : fewest_collisions (0),
- num_done (1)
+ : max_hash_value (0),
+ fewest_collisions (0),
+ num_done (1),
+ union_set (0)
{
}
-// Merge two disjoint hash key multisets to form the ordered disjoint
-// union of the sets. (In a multiset, an element can occur multiple
-// times). Precondition: both set1 and set2 must be
-// ordered. Returns the length of the combined set.
-
+/// Merge two disjoint hash key multisets to form the ordered disjoint
+/// union of the sets. (In a multiset, an element can occur multiple
+/// times). Precondition: both set1 and set2 must be
+/// ordered. Returns the length of the combined set.
int
Gen_Perf::compute_disjoint_union (char *set1, char *set2, char *set3)
{
@@ -85,11 +82,10 @@ Gen_Perf::compute_disjoint_union (char *set1, char *set2, char *set3)
return set3 - base;
}
-// Sort the UNION_SET in increasing frequency of occurrence. This
-// speeds up later processing since we may assume the resulting set
-// (Set_3, in this case), is ordered. Uses insertion sort, since the
-// UNION_SET is typically short.
-
+/// Sort the UNION_SET in increasing frequency of occurrence. This
+/// speeds up later processing since we may assume the resulting set
+/// (Set_3, in this case), is ordered. Uses insertion sort, since the
+/// UNION_SET is typically short.
void
Gen_Perf::sort_set (char *union_set, int len)
{
@@ -107,8 +103,7 @@ Gen_Perf::sort_set (char *union_set, int len)
}
}
-// Generate a keysig's hash value.
-
+/// Generate a keysig's hash value.
int
Gen_Perf::hash (List_Node *key_node)
{
@@ -121,21 +116,22 @@ Gen_Perf::hash (List_Node *key_node)
return sum;
}
-// Find out how character value change affects successfully hash
-// items. Returns FALSE if no other hash values are affected, else
-// returns TRUE. Note that because Option.Get_Asso_Max is a power of
-// two we can guarantee that all legal Vectors::Asso_Values are
-// visited without repetition since Option.Get_Jump was forced to be
-// an odd value!
-
+/// Find out how character value change affects successfully hash
+/// items. Returns FALSE if no other hash values are affected, else
+/// returns TRUE. Note that because Option.Get_Asso_Max is a power of
+/// two we can guarantee that all legal Vectors::Asso_Values are
+/// visited without repetition since Option.Get_Jump was forced to be
+/// an odd value!
inline int
Gen_Perf::affects_prev (char c, List_Node *curr)
{
- int original_char = Vectors::asso_values[(int) c];
- int total_iterations;
+ int const original_char = Vectors::asso_values[(int) c];
+ int total_iterations = 0;
if (!option[FAST])
- total_iterations = option.asso_max ();
+ {
+ total_iterations = option.asso_max ();
+ }
else
{
total_iterations = option.iterations ();
@@ -148,8 +144,6 @@ Gen_Perf::affects_prev (char c, List_Node *curr)
for (int i = total_iterations - 1; i >= 0; --i)
{
- int collisions = 0;
-
Vectors::asso_values[(int) c] =
(Vectors::asso_values[(int) c]
+ (option.jump () ? option.jump () : ACE_OS::rand ()))
@@ -158,9 +152,10 @@ Gen_Perf::affects_prev (char c, List_Node *curr)
// Iteration Number array is a win, O(1) intialization time!
this->char_search.reset ();
+ int collisions = 0;
+
// See how this asso_value change affects previous keywords. If
// it does better than before we'll take it!
-
for (List_Node *ptr = this->key_list.head;
this->char_search.find (this->hash (ptr)) == 0
|| ++collisions < fewest_collisions;
@@ -169,14 +164,14 @@ Gen_Perf::affects_prev (char c, List_Node *curr)
if (ptr == curr)
{
fewest_collisions = collisions;
-
+
if (option[DEBUGGING])
{
ACE_DEBUG ((LM_DEBUG,
"- resolved after %d iterations",
total_iterations - i));
}
-
+
return 0;
}
}
@@ -184,18 +179,18 @@ Gen_Perf::affects_prev (char c, List_Node *curr)
// Restore original values, no more tries.
Vectors::asso_values[(int) c] = original_char;
+
// If we're this far it's time to try the next character....
return 1;
}
-// Change a character value, try least-used characters first.
-
+/// Change a character value, try least-used characters first.
int
Gen_Perf::change (List_Node *prior, List_Node *curr)
{
if (option[DEBUGGING])
ACE_DEBUG ((LM_DEBUG,
- "collision on keyword #%d, prior = \"%s\", curr = \"%s\" hash = %d\n",
+ "collision on keyword #%d, prior = \"%C\", curr = \"%C\" hash = %d\n",
num_done,
prior->key,
curr->key,
@@ -207,7 +202,7 @@ Gen_Perf::change (List_Node *prior, List_Node *curr)
// Try changing some values, if change doesn't alter other values
// continue normal action.
- fewest_collisions++;
+ ++fewest_collisions;
for (char *temp = union_set; *temp != '\0'; temp++)
if (affects_prev (*temp, curr) == 0)
@@ -247,7 +242,7 @@ Gen_Perf::open (void)
this->key_list.reorder ();
int asso_value_max = option.asso_max ();
- int non_linked_length = this->key_list.keyword_list_length ();
+ int const non_linked_length = this->key_list.keyword_list_length ();
if (asso_value_max == 0)
asso_value_max = non_linked_length;
@@ -269,7 +264,7 @@ Gen_Perf::open (void)
}
else
{
- int asso_value = option.initial_value ();
+ int const asso_value = option.initial_value ();
// Initialize array if user requests non-zero default.
if (asso_value)
@@ -316,9 +311,9 @@ Gen_Perf::open (void)
return 0;
}
-// For binary search, do normal string sort on the keys, and then
-// assign hash values from 0 to N-1. Then go ahead with the normal
-// logic that is there for perfect hashing.
+/// For binary search, do normal string sort on the keys, and then
+/// assign hash values from 0 to N-1. Then go ahead with the normal
+/// logic that is there for perfect hashing.
int
Gen_Perf::compute_binary_search (void)
{
@@ -326,7 +321,7 @@ Gen_Perf::compute_binary_search (void)
this->key_list.string_sort ();
// Assign hash values.
- List_Node *curr;
+ List_Node *curr = 0;
int hash_value;
for (hash_value = 0, curr = this->key_list.head;
curr != 0;
@@ -346,8 +341,8 @@ Gen_Perf::compute_linear_search (void)
this->key_list.string_sort ();
// Assign hash values.
- List_Node *curr;
- int hash_value;
+ List_Node *curr = 0;
+ int hash_value = 0;
for (hash_value = 0, curr = this->key_list.head;
curr != 0;
curr = curr->next, hash_value++)
@@ -360,7 +355,7 @@ Gen_Perf::compute_linear_search (void)
int
Gen_Perf::compute_perfect_hash (void)
{
- List_Node *curr;
+ List_Node *curr = 0;
for (curr = this->key_list.head;
curr != 0;
@@ -412,16 +407,15 @@ Gen_Perf::compute_perfect_hash (void)
return 0;
}
-// Does the hard stuff.... Initializes the Bool Array, and attempts
-// to find a perfect function that will hash all the key words without
-// getting any duplications. This is made much easier since we aren't
-// attempting to generate *minimum* functions, only perfect ones. If
-// we can't generate a perfect function in one pass *and* the user
-// hasn't enabled the DUP option, we'll inform the user to try the
-// randomization option, use -D, or choose alternative key positions.
-// The alternatives (e.g., back-tracking) are too time-consuming, i.e,
-// exponential in the number of keys.
-
+/// Does the hard stuff.... Initializes the Bool Array, and attempts
+/// to find a perfect function that will hash all the key words without
+/// getting any duplications. This is made much easier since we aren't
+/// attempting to generate *minimum* functions, only perfect ones. If
+/// we can't generate a perfect function in one pass *and* the user
+/// hasn't enabled the DUP option, we'll inform the user to try the
+/// randomization option, use -D, or choose alternative key positions.
+/// The alternatives (e.g., back-tracking) are too time-consuming, i.e,
+/// exponential in the number of keys.
int
Gen_Perf::run (void)
{
@@ -453,8 +447,7 @@ Gen_Perf::run (void)
return 0;
}
-// Prints out some diagnostics upon completion.
-
+/// Prints out some diagnostics upon completion.
Gen_Perf::~Gen_Perf (void)
{
if (option[DEBUGGING])
@@ -476,4 +469,3 @@ Gen_Perf::~Gen_Perf (void)
delete [] this->union_set;
}
-#endif /* ACE_HAS_GPERF */
diff --git a/ACE/apps/gperf/src/Gen_Perf.h b/ACE/apps/gperf/src/Gen_Perf.h
index b9038face7a..ad9a0d34a87 100644
--- a/ACE/apps/gperf/src/Gen_Perf.h
+++ b/ACE/apps/gperf/src/Gen_Perf.h
@@ -1,25 +1,27 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#ifndef GEN_PERF_H
#define GEN_PERF_H
@@ -27,24 +29,23 @@
#include "Options.h"
#include "Key_List.h"
#include "Bool_Array.h"
+#include "ace/Copy_Disabled.h"
-#if defined (ACE_HAS_GPERF)
-
-class Gen_Perf
+/*
+ * Provides high-level routines to manipulate the keyword list
+ * structures the code generation output.
+ */
+class Gen_Perf : private ACE_Copy_Disabled
{
- // = TITLE
- // Provides high-level routines to manipulate the keyword list
- // structures the code generation output.
public:
- // = Initialization and termination methods.
+ /// Constructor.
Gen_Perf (void);
- // Constructor.
+ /// Destructor
~Gen_Perf (void);
- // Destructor
+ /// Attempt to generate a perfect hash function.
int run (void);
- // Attempt to generate a perfect hash function.
private:
int open (void);
@@ -57,25 +58,24 @@ private:
static int compute_disjoint_union (char *s1, char *s2, char *s3);
static void sort_set (char *union_set, int len);
+ /// Maximum possible hash value.
int max_hash_value;
- // Maximum possible hash value.
+ /// Records fewest # of collisions for asso value.
int fewest_collisions;
- // Records fewest # of collisions for asso value.
+ /// Number of keywords processed without a collision.
int num_done;
- // Number of keywords processed without a collision.
+ /// Disjoint union.
char *union_set;
- // Disjoint union.
+ /// List of the keys we're trying to map into a perfect hash
+ /// function.
Key_List key_list;
- // List of the keys we're trying to map into a perfect hash
- // function.
+ /// Table that keeps track of key collisions.
Bool_Array char_search;
- // Table that keeps track of key collisions.
};
-#endif /* ACE_HAS_GPERF */
#endif /* GEN_PERF_H */
diff --git a/ACE/apps/gperf/src/Hash_Table.cpp b/ACE/apps/gperf/src/Hash_Table.cpp
index 26551a8e3a0..2fdc38a2dd3 100644
--- a/ACE/apps/gperf/src/Hash_Table.cpp
+++ b/ACE/apps/gperf/src/Hash_Table.cpp
@@ -1,32 +1,29 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "Hash_Table.h"
-
-ACE_RCSID(src, Hash_Table, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
#include "ace/ACE.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_Memory.h"
@@ -117,4 +114,3 @@ Hash_Table::find (List_Node *item,
}
}
-#endif /* ACE_HAS_GPERF */
diff --git a/ACE/apps/gperf/src/Hash_Table.h b/ACE/apps/gperf/src/Hash_Table.h
index d8385858271..536f9952ddc 100644
--- a/ACE/apps/gperf/src/Hash_Table.h
+++ b/ACE/apps/gperf/src/Hash_Table.h
@@ -1,25 +1,27 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#ifndef HASH_TABLE_H
#define HASH_TABLE_H
@@ -32,35 +34,37 @@
#include "Options.h"
#include "List_Node.h"
-
-#if defined (ACE_HAS_GPERF)
-// @@ This class should be replaced by something in ACE, e.g.,
-// ACE_Hash_Map_Manager. Perhaps we should implement a new
-// ACE_Hash_Map that uses double hashing, however!
-class Hash_Table
+#include "ace/Copy_Disabled.h"
+
+/**
+ * Hash table used to check for duplicate keyword entries.
+ *
+ * This implementation uses "double hashing."
+ *
+ * @todo This class should be replaced by something in ACE, e.g.,
+ * ACE_Hash_Map_Manager. Perhaps we should implement a new
+ * ACE_Hash_Map that uses double hashing, however!
+ */
+class Hash_Table : private ACE_Copy_Disabled
{
- // = TITLE
- // Hash table used to check for duplicate keyword entries.
- //
- // = DESCRIPTION
- // This implementation uses "double hashing."
public:
+ /// Constructor
Hash_Table (size_t s);
+ /// Destructor
~Hash_Table (void);
List_Node *find (List_Node *item, int ignore_length);
private:
+ /// Vector of pointers to linked lists of List_Node's.
List_Node **table_;
- // Vector of pointers to linked lists of List_Node's.
+ /// Size of the vector.
size_t size_;
- // Size of the vector.
+ /// Find out how well our double hashing is working!
int collisions_;
- // Find out how well our double hashing is working!
};
-#endif /* ACE_HAS_GPERF */
#endif /* HASH_TABLE_H */
diff --git a/ACE/apps/gperf/src/Iterator.cpp b/ACE/apps/gperf/src/Iterator.cpp
index 12ce57de2b5..9bf6189b6d8 100644
--- a/ACE/apps/gperf/src/Iterator.cpp
+++ b/ACE/apps/gperf/src/Iterator.cpp
@@ -1,36 +1,32 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "Iterator.h"
-
-ACE_RCSID(src, Iterator, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
#include "ace/OS_NS_ctype.h"
-// Constructor for Iterator.
-
+/// Constructor for Iterator.
Iterator::Iterator (char *s,
int lo,
int hi,
@@ -46,9 +42,8 @@ Iterator::Iterator (char *s,
{
}
-// Provide an Iterator, returning the ``next'' value from the list of
-// valid values given in the constructor.
-
+/// Provide an Iterator, returning the ``next'' value from the list of
+/// valid values given in the constructor.
int
Iterator::operator() (void)
{
@@ -95,7 +90,7 @@ Iterator::operator() (void)
return error_value;
}
}
-
+
return curr_value >= lo_bound && curr_value <= hi_bound
? curr_value
: error_value;
@@ -104,5 +99,3 @@ Iterator::operator() (void)
return end;
}
}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/ACE/apps/gperf/src/Iterator.h b/ACE/apps/gperf/src/Iterator.h
index 03b9316205a..f5dcd7a925c 100644
--- a/ACE/apps/gperf/src/Iterator.h
+++ b/ACE/apps/gperf/src/Iterator.h
@@ -1,25 +1,27 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#ifndef ITERATOR_H
#define ITERATOR_H
@@ -31,22 +33,22 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "Options.h"
-
-#if defined (ACE_HAS_GPERF)
-class Iterator
+#include "ace/Copy_Disabled.h"
+
+/**
+ * Provides an Iterator that expands and decodes a control string
+ * containing digits and ranges, returning an integer every time the
+ * generator function is called.
+ *
+ * This class is used to decode the user's key position requests.
+ * For example: "-k 1,2,5-10,$" will return 1, 2, 5, 6, 7, 8, 9,
+ * 10, and 0 ( representing the abstract ``last character of the
+ * key'' on successive calls to the member function operator ().
+ * No errors are handled in these routines, they are passed back
+ * to the calling routines via a user-supplied Error_Value
+ */
+class Iterator : private ACE_Copy_Disabled
{
- // = TITLE
- // Provides an Iterator that expands and decodes a control string
- // containing digits and ranges, returning an integer every time the
- // generator function is called.
- //
- // = DESCRIPTION
- // This class is used to decode the user's key position requests.
- // For example: "-k 1,2,5-10,$" will return 1, 2, 5, 6, 7, 8, 9,
- // 10, and 0 ( representing the abstract ``last character of the
- // key'' on successive calls to the member function operator ().
- // No errors are handled in these routines, they are passed back
- // to the calling routines via a user-supplied Error_Value */
public:
Iterator (char *s,
int lo,
@@ -57,24 +59,23 @@ public:
int operator () (void);
private:
+ /// A pointer to the string provided by the user.
char *str;
- // A pointer to the string provided by the user.
+ /// Value returned after last key is processed.
int end;
- // Value returned after last key is processed.
+ /// A value marking the abstract ``end of word'' (usually '$').
int end_word;
- // A value marking the abstract ``end of word'' (usually '$').
+ /// Error value returned when input is syntactically erroneous.
int error_value;
- // Error value returned when input is syntactically erroneous.
+ /// Greatest possible value, inclusive.
int hi_bound;
- // Greatest possible value, inclusive.
+ /// Smallest possible value, inclusive.
int lo_bound;
- // Smallest possible value, inclusive.
};
-#endif /* ACE_HAS_GPERF */
#endif /* ITERATOR_H */
diff --git a/ACE/apps/gperf/src/Key_List.cpp b/ACE/apps/gperf/src/Key_List.cpp
index 34c0f4f49f7..45ad1b5230b 100644
--- a/ACE/apps/gperf/src/Key_List.cpp
+++ b/ACE/apps/gperf/src/Key_List.cpp
@@ -1,32 +1,29 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "Key_List.h"
-
-ACE_RCSID(src, Key_List, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
#include "Hash_Table.h"
#include "ace/Read_Buffer.h"
#include "ace/Auto_Ptr.h"
@@ -34,10 +31,10 @@ ACE_RCSID(src, Key_List, "$Id$")
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
-// Default type for generated code.
+/// Default type for generated code.
const char *const Key_List::default_array_type = "char *";
-// in_word_set return type, by default.
+/// in_word_set return type, by default.
const char *const Key_List::default_return_type = "char *";
namespace
@@ -57,13 +54,12 @@ dup_string (const char *const str)
} // unnamed namespace
-// How wide the printed field width must be to contain the maximum
-// hash value.
+/// How wide the printed field width must be to contain the maximum
+/// hash value.
int Key_List::field_width = 0;
int Key_List::determined_[ACE_STANDARD_CHARACTER_SET_SIZE];
-// Destructor dumps diagnostics during debugging.
-
+/// Destructor dumps diagnostics during debugging.
Key_List::~Key_List (void)
{
if (option[DEBUGGING])
@@ -72,7 +68,7 @@ Key_List::~Key_List (void)
// Free up all the nodes in the list.
while (this->head != 0)
{
- List_Node *temp;
+ List_Node *temp = 0;
// Make sure to delete the linked nodes, as well.
for (List_Node *ptr = this->head->link;
@@ -93,21 +89,20 @@ Key_List::~Key_List (void)
delete [] this->struct_tag;
}
-// Gathers the input stream into a buffer until one of two things occur:
-//
-// 1. We read a '%' followed by a '%'
-// 2. We read a '%' followed by a '}'
-//
-// The first symbolizes the beginning of the keyword list proper, The
-// second symbolizes the end of the C source code to be generated
-// verbatim in the output file.
-//
-// I assume that the keys are separated from the optional preceding
-// struct declaration by a consecutive % followed by either % or }
-// starting in the first column. The code below uses an expandible
-// buffer to scan off and return a pointer to all the code (if any)
-// appearing before the delimiter.
-
+/// Gathers the input stream into a buffer until one of two things occur:
+///
+/// 1. We read a '%' followed by a '%'
+/// 2. We read a '%' followed by a '}'
+///
+/// The first symbolizes the beginning of the keyword list proper, The
+/// second symbolizes the end of the C source code to be generated
+/// verbatim in the output file.
+///
+/// I assume that the keys are separated from the optional preceding
+/// struct declaration by a consecutive % followed by either % or }
+/// starting in the first column. The code below uses an expandible
+/// buffer to scan off and return a pointer to all the code (if any)
+/// appearing before the delimiter.
char *
Key_List::special_input (char delimiter)
{
@@ -166,9 +161,8 @@ Key_List::special_input (char delimiter)
return 0;
}
-// Stores any C/C++ source code that must be included verbatim into
-// the generated code output.
-
+/// Stores any C/C++ source code that must be included verbatim into
+/// the generated code output.
char *
Key_List::save_include_src (void)
{
@@ -186,19 +180,17 @@ Key_List::save_include_src (void)
return (char *) "";
}
-// Determines from the input file whether the user wants to build a
-// table from a user-defined struct, or whether the user is content to
-// simply use the default array of keys.
-
+/// Determines from the input file whether the user wants to build a
+/// table from a user-defined struct, or whether the user is content to
+/// simply use the default array of keys.
char *
Key_List::array_type (void)
{
return special_input ('%');
}
-// Sets up the Return_Type, the Struct_Tag type and the Array_Type
-// based upon various user Options.
-
+/// Sets up the Return_Type, the Struct_Tag type and the Array_Type
+/// based upon various user Options.
int
Key_List::output_types (void)
{
@@ -234,10 +226,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';
}
@@ -250,11 +242,10 @@ Key_List::output_types (void)
return 0;
}
-// Reads in all keys from standard input and creates a linked list
-// pointed to by Head. This list is then quickly checked for
-// ``links,'' i.e., unhashable elements possessing identical key sets
-// and lengths.
-
+/// Reads in all keys from standard input and creates a linked list
+/// pointed to by Head. This list is then quickly checked for
+/// ``links,'' i.e., unhashable elements possessing identical key sets
+/// and lengths.
int
Key_List::read_keys (void)
{
@@ -294,7 +285,7 @@ Key_List::read_keys (void)
static_cast<int> (ACE_OS::strcspn (buffer,
delimiter))),
-1);
- this->total_keys++;
+ ++this->total_keys;
}
// See if any additional source code is included at end of
@@ -328,8 +319,8 @@ Key_List::read_keys (void)
trail = temp;
else
{
- total_duplicates++;
- list_len--;
+ ++total_duplicates;
+ --list_len;
trail->next = temp->next;
temp->link = ptr->link;
ptr->link = temp;
@@ -338,7 +329,7 @@ Key_List::read_keys (void)
// option.
if (!option[DUP] || option[DEBUGGING])
ACE_ERROR ((LM_ERROR,
- "Static key link: \"%s\" = \"%s\", with key set \"%s\".\n",
+ "Static key link: \"%C\" = \"%C\", with key set \"%C\".\n",
temp->key,
ptr->key,
temp->keysig));
@@ -377,12 +368,11 @@ Key_List::read_keys (void)
return 0;
}
-// Recursively merges two sorted lists together to form one sorted
-// list. The ordering criteria is by frequency of occurrence of
-// elements in the key set or by the hash value. This is a kludge,
-// but permits nice sharing of almost identical code without incurring
-// the overhead of a function call comparison.
-
+/// Recursively merges two sorted lists together to form one sorted
+/// list. The ordering criteria is by frequency of occurrence of
+/// elements in the key set or by the hash value. This is a kludge,
+/// but permits nice sharing of almost identical code without incurring
+/// the overhead of a function call comparison.
List_Node *
Key_List::merge (List_Node *list1, List_Node *list2)
{
@@ -410,7 +400,6 @@ Key_List::merge (List_Node *list1, List_Node *list2)
// Applies the merge sort algorithm to recursively sort the key list
// by frequency of occurrence of elements in the key set.
-
List_Node *
Key_List::merge_sort (List_Node *a_head)
{
@@ -436,7 +425,6 @@ Key_List::merge_sort (List_Node *a_head)
}
// Returns the frequency of occurrence of elements in the key set.
-
inline int
Key_List::occurrence (List_Node *ptr)
{
@@ -450,7 +438,6 @@ Key_List::occurrence (List_Node *ptr)
// Sets the index location for all keysig characters that are now
// determined.
-
inline void
Key_List::determined (List_Node *ptr)
{
@@ -459,7 +446,6 @@ Key_List::determined (List_Node *ptr)
}
// Returns TRUE if PTR's key set is already completely determined.
-
inline int
Key_List::already_determined (List_Node *ptr)
{
@@ -470,7 +456,6 @@ Key_List::already_determined (List_Node *ptr)
return is_determined;
}
-
// Reorders the table by first sorting the list so that frequently
// occuring keys appear first, and then the list is reorded so that
// keys whose values are already determined will be placed towards the
@@ -481,7 +466,7 @@ Key_List::already_determined (List_Node *ptr)
void
Key_List::reorder (void)
{
- List_Node *ptr;
+ List_Node *ptr = 0;
for (ptr = head; ptr; ptr = ptr->next)
ptr->occurrence = occurrence (ptr);
@@ -524,7 +509,7 @@ Key_List::reorder (void)
void
Key_List::output_min_max (void)
{
- List_Node *temp;
+ List_Node *temp = 0;
for (temp = head; temp->next; temp = temp->next)
continue;
@@ -1117,6 +1102,7 @@ Key_List::output_hash_function (void)
const int max_column = 10;
int count = max_hash_value;
+#if ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE
// Lookup table for converting ASCII to EBCDIC.
static const int ascii_to_ebcdic[ACE_ASCII_SIZE] =
{
@@ -1142,6 +1128,7 @@ Key_List::output_hash_function (void)
int ebcdic_to_ascii[ACE_EBCDIC_SIZE];
int target;
+#endif /* ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE */
// Calculate maximum number of digits required for MAX_HASH_VALUE.
@@ -1169,22 +1156,8 @@ Key_List::output_hash_function (void)
option[CONSTANT] ? "const " : "",
max_hash_value < ((int) UCHAR_MAX) ? "char" : (max_hash_value < ((int) USHRT_MAX) ? "short" : "int"));
- ACE_OS::printf ("\n#if defined (ACE_MVS)");
#if ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE
{
- // We are running in EBCDIC environment.
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[count] ? Vectors::asso_values[count] : max_hash_value + 1);
- }
-
- ACE_OS::printf ("\n#else");
-
for (count = 0; count < ACE_ASCII_SIZE; ++count)
{
if (!(count % max_column))
@@ -1198,28 +1171,6 @@ Key_List::output_hash_function (void)
}
# else
{
- // We are running in ASCII environment.
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- ebcdic_to_ascii[count] = 0;
-
- for (count = 0; count < ACE_ASCII_SIZE; ++count)
- {
- target = ascii_to_ebcdic[count];
- ebcdic_to_ascii[target] = count;
- }
-
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- target = ebcdic_to_ascii[count];
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[target] ? Vectors::asso_values[target] : max_hash_value + 1);
- }
- ACE_OS::printf ("\n#else");
-
for (count = 0; count < ACE_ASCII_SIZE; ++count)
{
if (!(count % max_column))
@@ -1231,7 +1182,6 @@ Key_List::output_hash_function (void)
}
}
#endif /* ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE */
- ACE_OS::printf ("\n#endif /* ACE_MVS */");
// Optimize special case of ``-k 1,$''
if (option[DEFAULTCHARS])
@@ -1482,6 +1432,9 @@ Key_List::output_lookup_array (void)
// Since we've already generated the keyword table
// we need to use it!
this->output_switch (1);
+
+ delete [] duplicates;
+ delete [] lookup_array;
return 1; // 1 indicates that we've changed our mind...
}
}
@@ -1738,7 +1691,7 @@ Key_List::output (void)
{
output_keylength_table ();
}
-
+
if (option[POINTER] && option[TYPE])
{
output_keyword_table ();
@@ -1750,9 +1703,9 @@ Key_List::output (void)
{
output_keylength_table ();
}
-
+
output_keyword_table ();
-
+
if (output_lookup_array () == -1)
{
ACE_ERROR_RETURN ((LM_DEBUG,
@@ -2001,4 +1954,3 @@ Key_List::max_key_length (void)
return max_key_len;
}
-#endif /* ACE_HAS_GPERF */
diff --git a/ACE/apps/gperf/src/Key_List.h b/ACE/apps/gperf/src/Key_List.h
index 34f8e2c05bf..15f9c0aab74 100644
--- a/ACE/apps/gperf/src/Key_List.h
+++ b/ACE/apps/gperf/src/Key_List.h
@@ -1,63 +1,65 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#ifndef KEY_LIST_H
#define KEY_LIST_H
#include "Options.h"
+
#include "List_Node.h"
#include "Vectors.h"
-
-#if defined (ACE_HAS_GPERF)
-
-class Duplicate_Entry
+#include "ace/Copy_Disabled.h"
+
+/**
+ * Describes a duplicate entry.
+ *
+ * This is used for generating code by the <Key_List>.
+ */
+class Duplicate_Entry : private ACE_Copy_Disabled
{
- // = TITLE
- // Describes a duplicate entry.
- //
- // = DESCRIPTION
- // This is used for generating code by the <Key_List>.
public:
+ /// Hash value for this particular duplicate set.
int hash_value;
- // Hash value for this particular duplicate set.
+ /// Slot into the main keyword storage array.
int slot;
- // Slot into the main keyword storage array.
+ /// Number of consecutive duplicates at this slot.
int count;
- // Number of consecutive duplicates at this slot.
};
-class Key_List
+/**
+ * Data and function member declarations for the keyword list class.
+ *
+ * The key word list is a useful abstraction that keeps track of
+ * various pieces of information that enable that fast generation of
+ * the Gen_Perf.hash function. A Key_List is a singly-linked list
+ * of List_Nodes.
+ */
+class Key_List : private ACE_Copy_Disabled
{
- // = TITLE
- // Data and function member declarations for the keyword list class.
- //
- // = DESCRIPTION
- // The key word list is a useful abstraction that keeps track of
- // various pieces of information that enable that fast generation of
- // the Gen_Perf.hash function. A Key_List is a singly-linked list
- // of List_Nodes.
public:
Key_List (void);
~Key_List (void);
@@ -69,11 +71,11 @@ public:
int read_keys (void);
int output (void);
+ /// Points to the head of the linked list.
List_Node *head;
- // Points to the head of the linked list.
+ /// Total number of duplicate hash values.
int total_duplicates;
- // Total number of duplicate hash values.
private:
// = Make hash table 10 times larger than # of keyword entries.
@@ -112,62 +114,61 @@ private:
int i2,
Duplicate_Entry *dup_ptr,
int value);
+ /// Pointer to the type for word list.
char *array_type_;
- // Pointer to the type for word list.
- char *return_type;
// Pointer to return type for lookup function.
+ char *return_type;
+ /// Shorthand for user-defined struct tag type.
char *struct_tag;
- // Shorthand for user-defined struct tag type.
+ /// C source code to be included verbatim.
char *include_src;
- // C source code to be included verbatim.
+ /// Maximum length of the longest keyword.
int max_key_len;
- // Maximum length of the longest keyword.
+ /// Minimum length of the shortest keyword.
int min_key_len;
- // Minimum length of the shortest keyword.
+ /// Minimum hash value for all keywords.
int min_hash_value;
- // Minimum hash value for all keywords.
+ /// Maximum hash value for all keywords.
int max_hash_value;
- // Maximum hash value for all keywords.
+ /// True if sorting by occurrence.
int occurrence_sort;
- // True if sorting by occurrence.
+ /// True if sorting by hash value.
int hash_sort;
- // True if sorting by hash value.
+ /// True if sorting by key value.
int key_sort;
- // True if sorting by key value.
+ /// True if any additional C code is included.
int additional_code;
- // True if any additional C code is included.
+ /// Length of head's Key_List, not counting duplicates.
int list_len;
- // Length of head's Key_List, not counting duplicates.
+ /// Total number of keys, counting duplicates.
int total_keys;
- // Total number of keys, counting duplicates.
+ /// Default type for generated code.
static const char *const default_array_type;
- // Default type for generated code.
+ /// in_word_set return type, by default.
static const char *const default_return_type;
- // in_word_set return type, by default.
+ /// How wide the printed field width must be to contain the maximum
+ /// hash value.
static int field_width;
- // How wide the printed field width must be to contain the maximum
- // hash value.
+ /// Sets the slot location for all keysig characters that are now
+ /// determined.
static int determined_[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Sets the slot location for all keysig characters that are now
- // determined.
};
-#endif /* ACE_HAS_GPERF */
#endif /* KEY_LIST_H */
diff --git a/ACE/apps/gperf/src/List_Node.cpp b/ACE/apps/gperf/src/List_Node.cpp
index 1668ab114c0..1b9e6b8646d 100644
--- a/ACE/apps/gperf/src/List_Node.cpp
+++ b/ACE/apps/gperf/src/List_Node.cpp
@@ -1,38 +1,34 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "List_Node.h"
-
-ACE_RCSID(src, List_Node, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
#include "Vectors.h"
#include "ace/OS_NS_ctype.h"
-// Sorts the key set alphabetically to speed up subsequent operation
-// Uses insertion sort since the set is probably quite small.
-
+/// Sorts the key set alphabetically to speed up subsequent operation
+/// Uses insertion sort since the set is probably quite small.
inline void
List_Node::sort (char *base, int len)
{
@@ -54,19 +50,18 @@ List_Node::sort (char *base, int len)
}
}
-// Initializes a List_Node. This requires obtaining memory for the
-// CHAR_SET initializing them using the information stored in the
-// KEY_POSITIONS array in Options, and checking for simple errors.
-// It's important to note that KEY and REST are both pointers to the
-// different offsets into the same block of dynamic memory pointed to
-// by parameter K. The data member REST is used to store any
-// additional fields of the input file (it is set to the "" string if
-// Option[TYPE] is not enabled). This is useful if the user wishes to
-// incorporate a lookup structure, rather than just an array of keys.
-// Finally, KEY_NUMBER contains a count of the total number of keys
-// seen so far. This is used to initialize the INDEX field to some
-// useful value.
-
+/// Initializes a List_Node. This requires obtaining memory for the
+/// CHAR_SET initializing them using the information stored in the
+/// KEY_POSITIONS array in Options, and checking for simple errors.
+/// It's important to note that KEY and REST are both pointers to the
+/// different offsets into the same block of dynamic memory pointed to
+/// by parameter K. The data member REST is used to store any
+/// additional fields of the input file (it is set to the "" string if
+/// Option[TYPE] is not enabled). This is useful if the user wishes to
+/// incorporate a lookup structure, rather than just an array of keys.
+/// Finally, KEY_NUMBER contains a count of the total number of keys
+/// seen so far. This is used to initialize the INDEX field to some
+/// useful value.
List_Node::List_Node (char *k, int len)
: link (0),
next (0),
@@ -95,12 +90,10 @@ List_Node::List_Node (char *k, int len)
else
{
// Only use those character positions specified by the user.
-
option.reset ();
// Iterate thru the list of key_positions, initializing
// occurrences table and keysig (via char * pointer ptr).
-
for (int i; (i = option.get ()) != EOS; )
{
if (i == WORD_END) // Special notation for last KEY position, i.e. '$'.
@@ -133,4 +126,3 @@ List_Node::~List_Node (void)
delete [] this->keysig;
}
-#endif /* ACE_HAS_GPERF */
diff --git a/ACE/apps/gperf/src/List_Node.h b/ACE/apps/gperf/src/List_Node.h
index ebe9bd57a99..eb9fb68260b 100644
--- a/ACE/apps/gperf/src/List_Node.h
+++ b/ACE/apps/gperf/src/List_Node.h
@@ -1,25 +1,27 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#ifndef LIST_NODE_H
#define LIST_NODE_H
@@ -31,50 +33,49 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "Options.h"
+#include "ace/Copy_Disabled.h"
-#if defined (ACE_HAS_GPERF)
-class List_Node
+/**
+ * Data and function members for defining values and operations of
+ * a list node.
+ */
+class List_Node : private ACE_Copy_Disabled
{
- // = TITLE
- // Data and function members for defining values and operations of
- // a list node.
public:
- // = Initialization and termination methods.
+ /// Constructor.
List_Node (char *key, int len);
- // Constructor.
+ /// Destructor.
~List_Node (void);
- // Destructor.
static void sort (char *base, int len);
+ /// TRUE if key has an identical KEY_SET as another key.
List_Node *link;
- // TRUE if key has an identical KEY_SET as another key.
+ /// Points to next element on the list.
List_Node *next;
- // Points to next element on the list.
+ /// Each keyword string stored here.
char *key;
- // Each keyword string stored here.
+ /// Additional information for building hash function.
char *rest;
- // Additional information for building hash function.
+ /// Set of characters to hash, specified by user.
char *keysig;
- // Set of characters to hash, specified by user.
+ /// Length of the key.
int length;
- // Length of the key.
+ /// Hash value for the key.
int hash_value;
- // Hash value for the key.
+ /// A metric for frequency of key set occurrences.
int occurrence;
- // A metric for frequency of key set occurrences.
+ /// Position of this node relative to other nodes.
int slot;
- // Position of this node relative to other nodes.
};
-#endif /* ACE_HAS_GPERF */
#endif /* LIST_NODE_H */
diff --git a/ACE/apps/gperf/src/Options.cpp b/ACE/apps/gperf/src/Options.cpp
index 4e1ff23da1f..53526d3cad1 100644
--- a/ACE/apps/gperf/src/Options.cpp
+++ b/ACE/apps/gperf/src/Options.cpp
@@ -1,43 +1,38 @@
// -*- C++ -*-
-// $Id$
-
-// Handles parsing the Options provided to the user.
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "Options.h"
-
-ACE_RCSID(src, Options, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
#include "ace/Get_Opt.h"
#include "Iterator.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdlib.h"
-// These need to appear before the global class instantiation, since
-// they are static members with a default constructor that initializes
-// an ACE_Allocator needed in the Options class constructor.
+/// These need to appear before the global class instantiation, since
+/// they are static members with a default constructor that initializes
+/// an ACE_Allocator needed in the Options class constructor.
ACE_CString Options::function_name_;
ACE_CString Options::fill_default_;
ACE_CString Options::key_name_;
@@ -45,31 +40,31 @@ ACE_CString Options::class_name_;
ACE_CString Options::hash_name_;
ACE_CString Options::delimiters_;
-// Global option coordinator for the entire program.
+/// Global option coordinator for the entire program.
Options option;
-// Current program version.
+/// Current program version.
extern const char *version_string;
-// Size to jump on a collision.
+/// Size to jump on a collision.
static const int DEFAULT_JUMP_VALUE = 5;
-// Default name for generated lookup function.
+/// Default name for generated lookup function.
static const char *const DEFAULT_NAME = "in_word_set";
-// Default filler for keyword table.
+/// Default filler for keyword table.
static const char *const DEFAULT_FILL = "";
-// Default name for the key component.
+/// Default name for the key component.
static const char *const DEFAULT_KEY = "name";
-// Default name for the generated class.
+/// Default name for the generated class.
static const char *const DEFAULT_CLASS_NAME = "Perfect_Hash";
-// Default name for generated hash function.
+/// Default name for generated hash function.
static const char *const DEFAULT_HASH_NAME = "hash";
-// Default delimiters that separate keywords from their attributes.
+/// Default delimiters that separate keywords from their attributes.
static const char *const DEFAULT_DELIMITERS = ",\n";
int Options::option_word_;
@@ -84,8 +79,7 @@ ACE_TCHAR **Options::argv_;
int Options::iterations_;
char Options::key_positions_[MAX_KEY_POS];
-// Prints program usage to standard error stream.
-
+/// Prints program usage to standard error stream.
void
Options::usage (void)
{
@@ -96,35 +90,32 @@ Options::usage (void)
"(type %n -h for help)\n"));
}
-// Output command-line Options.
-
+/// Output command-line Options.
void
Options::print_options (void)
{
- int i;
-
ACE_OS::printf ("/* Command-line: ");
- for (i = 0; i < argc_; i++)
+ for (int i = 0; i < argc_; i++)
ACE_OS::printf ("%s ",
- argv_[i]);
+ ACE_TEXT_ALWAYS_CHAR (argv_[i]));
ACE_OS::printf (" */");
}
-// Sorts the key positions *IN REVERSE ORDER!!* This makes further
-// routines more efficient. Especially when generating code. Uses a
-// simple Insertion Sort since the set is probably ordered. Returns 1
-// if there are no duplicates, 0 otherwise.
-
+/// Sorts the key positions *IN REVERSE ORDER!!* This makes further
+/// routines more efficient. Especially when generating code. Uses a
+/// simple Insertion Sort since the set is probably ordered. Returns 1
+/// if there are no duplicates, 0 otherwise.
int
Options::key_sort (char *base, int len)
{
- int i, j;
-
+ int j = 0;
+ int i = 0;
for (i = 0, j = len - 1; i < j; i++)
{
- int curr, tmp;
+ int curr = 0;
+ int tmp = 0;
for (curr = i + 1, tmp = base[curr];
curr > 0 && tmp >= base[curr - 1];
@@ -159,13 +150,12 @@ Options::Options (void)
initial_asso_value_ = iterations_ = 0;
}
-// Dumps option status when debug is set.
-
+/// Dumps option status when debug is set.
Options::~Options (void)
{
if (ACE_BIT_ENABLED (option_word_, DEBUGGING))
{
- char *ptr;
+ char *ptr = 0;
ACE_OS::fprintf (stderr,
"\ndumping Options:"
@@ -194,14 +184,14 @@ Options::~Options (void)
"\nLINEARSEARCH is: %s"
"\nBINARYSEARCH is: %s"
"\niterations = %d"
- "\nlookup function name = %C"
- "\nfill default = %C"
- "\nhash function name = %C"
- "\nkey name = %C"
+ "\nlookup function name = %s"
+ "\nfill default = %s"
+ "\nhash function name = %s"
+ "\nkey name = %s"
"\njump value = %d"
"\nmax associcated value = %d"
"\ninitial associated value = %d"
- "\ndelimiters = %C"
+ "\ndelimiters = %s"
"\nnumber of switch statements = %d"
"\n",
ACE_BIT_ENABLED (option_word_, DEBUGGING) ? "enabled" : "disabled",
@@ -256,25 +246,21 @@ Options::~Options (void)
}
}
-// Parses the command line Options and sets appropriate flags in
-// option_word_.
-
+/// Parses the command line Options and sets appropriate flags in
+/// option_word_.
int
Options::parse_args (int argc, ACE_TCHAR *argv[])
{
if (ACE_LOG_MSG->open (argv[0]) == -1)
return -1;
- //FUZZ: disable check_for_lack_ACE_OS
- ACE_Get_Opt getopt (argc, argv, ACE_TEXT("abBcCdDe:Ef:F:gGhH:i:IJj:k:K:lL:mMnN:oOprs:S:tTvVZ:"));
- //FUZZ: enable check_for_lack_ACE_OS
-
- int option_char;
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT("abBcCdDe:Ef:F:gGhH:i:IJj:k:K:lL:mMnN:oOprs:S:tTvVZ:"));
argc_ = argc;
argv_ = argv;
- while ((option_char = getopt ()) != -1)
+ int option_char;
+ while ((option_char = get_opt ()) != -1)
{
switch (option_char)
{
@@ -326,7 +312,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
// Allows user to provide keyword/attribute separator
case 'e':
{
- delimiters_ = ACE_TEXT_ALWAYS_CHAR(getopt.opt_arg ());
+ delimiters_ = ACE_TEXT_ALWAYS_CHAR(get_opt.opt_arg ());
break;
}
case 'E':
@@ -338,7 +324,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
case 'f':
{
ACE_SET_BITS (option_word_, FAST);
- iterations_ = ACE_OS::atoi (getopt.opt_arg ());
+ iterations_ = ACE_OS::atoi (get_opt.opt_arg ());
if (iterations_ < 0)
{
ACE_ERROR ((LM_ERROR, "iterations value must not be negative, assuming 0\n"));
@@ -458,13 +444,13 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
// Sets the name for the hash function.
case 'H':
{
- hash_name_ = ACE_TEXT_ALWAYS_CHAR(getopt.opt_arg ());
+ hash_name_ = ACE_TEXT_ALWAYS_CHAR(get_opt.opt_arg ());
break;
}
// Sets the initial value for the associated values array.
case 'i':
{
- initial_asso_value_ = ACE_OS::atoi (getopt.opt_arg ());
+ initial_asso_value_ = ACE_OS::atoi (get_opt.opt_arg ());
if (initial_asso_value_ < 0)
ACE_ERROR ((LM_ERROR,
"Initial value %d should be non-zero, ignoring and continuing.\n",
@@ -482,7 +468,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
// Sets the jump value, must be odd for later algorithms.
case 'j':
{
- jump_ = ACE_OS::atoi (getopt.opt_arg ());
+ jump_ = ACE_OS::atoi (get_opt.opt_arg ());
if (jump_ < 0)
ACE_ERROR_RETURN ((LM_ERROR,
"Jump value %d must be a positive number.\n%r",
@@ -506,7 +492,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
{
const int BAD_VALUE = -1;
int value;
- Iterator expand (ACE_TEXT_ALWAYS_CHAR(getopt.opt_arg ()),
+ Iterator expand (ACE_TEXT_ALWAYS_CHAR(get_opt.opt_arg ()),
1,
MAX_KEY_POS - 1,
WORD_END,
@@ -514,7 +500,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
EOS);
// Use all the characters for hashing!!!!
- if (*getopt.opt_arg () == '*')
+ if (*get_opt.opt_arg () == '*')
option_word_ = (option_word_ & ~DEFAULTCHARS) | ALLCHARS;
else
{
@@ -555,7 +541,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
// Make this the keyname for the keyword component field.
case 'K':
{
- key_name_ = ACE_TEXT_ALWAYS_CHAR(getopt.opt_arg ());
+ key_name_ = ACE_TEXT_ALWAYS_CHAR(get_opt.opt_arg ());
break;
}
// Create length table to avoid extra string compares.
@@ -568,15 +554,15 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
case 'L':
{
option_word_ &= ~C;
- if (!ACE_OS::strcmp (getopt.opt_arg (), ACE_TEXT("C++")))
+ if (!ACE_OS::strcmp (get_opt.opt_arg (), ACE_TEXT("C++")))
ACE_SET_BITS (option_word_, (CPLUSPLUS | ANSI));
- else if (!ACE_OS::strcmp (getopt.opt_arg (), ACE_TEXT("C")))
+ else if (!ACE_OS::strcmp (get_opt.opt_arg (), ACE_TEXT("C")))
ACE_SET_BITS (option_word_, C);
else
{
ACE_ERROR ((LM_ERROR,
"unsupported language option %s, defaulting to C\n",
- getopt.opt_arg ()));
+ get_opt.opt_arg ()));
ACE_SET_BITS (option_word_, C);
}
break;
@@ -602,13 +588,13 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
// Make generated lookup function name be.opt_arg ()
case 'N':
{
- function_name_ = ACE_TEXT_ALWAYS_CHAR(getopt.opt_arg ());
+ function_name_ = ACE_TEXT_ALWAYS_CHAR(get_opt.opt_arg ());
break;
}
// Make fill_default be.opt_arg ()
case 'F':
{
- fill_default_ = ACE_TEXT_ALWAYS_CHAR(getopt.opt_arg ());
+ fill_default_ = ACE_TEXT_ALWAYS_CHAR(get_opt.opt_arg ());
break;
}
// Order input by frequency of key set occurrence.
@@ -641,7 +627,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
// Range of associated values, determines size of final table.
case 's':
{
- size_ = ACE_OS::atoi (getopt.opt_arg ());
+ size_ = ACE_OS::atoi (get_opt.opt_arg ());
if (abs (size_) > 50)
ACE_ERROR ((LM_ERROR,
"%d is excessive, did you really mean this?! (type %n -h for help)\n",
@@ -652,11 +638,11 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
case 'S':
{
ACE_SET_BITS (option_word_, SWITCH);
- total_switches_ = ACE_OS::atoi (getopt.opt_arg ());
+ total_switches_ = ACE_OS::atoi (get_opt.opt_arg ());
if (total_switches_ <= 0)
ACE_ERROR_RETURN ((LM_ERROR,
"number of switches %s must be a positive number\n%r",
- getopt.opt_arg (),
+ get_opt.opt_arg (),
&Options::usage),
-1);
break;
@@ -690,7 +676,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
// Set the class name.
case 'Z':
{
- class_name_ = ACE_TEXT_ALWAYS_CHAR(getopt.opt_arg ());
+ class_name_ = ACE_TEXT_ALWAYS_CHAR(get_opt.opt_arg ());
break;
}
default:
@@ -702,16 +688,16 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
}
- if (argv[getopt.opt_ind ()] &&
- ACE_OS::freopen (argv[getopt.opt_ind ()],
+ if (argv[get_opt.opt_ind ()] &&
+ ACE_OS::freopen (argv[get_opt.opt_ind ()],
ACE_TEXT("r"),
stdin) == 0)
ACE_ERROR_RETURN ((LM_ERROR,
"Cannot open keyword file %p\n%r",
- argv[getopt.opt_ind ()],
+ argv[get_opt.opt_ind ()],
&Options::usage),
-1);
- if (getopt.opt_ind () + 1 < argc)
+ if (get_opt.opt_ind () + 1 < argc)
ACE_ERROR_RETURN ((LM_ERROR,
"Extra trailing arguments to %n.\n%r",
usage),
@@ -719,24 +705,21 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
return 0;
}
-// True if option enable, else false.
-
+/// True if option enable, else false.
int
Options::operator[] (Option_Type option)
{
return ACE_BIT_ENABLED (option_word_, option);
}
-// Enables option OPT.
-
+/// Enables option OPT.
void
Options::operator = (enum Option_Type opt)
{
ACE_SET_BITS (option_word_, opt);
}
-// Disables option OPT.
-
+/// Disables option OPT.
bool
Options::operator != (enum Option_Type opt)
{
@@ -746,132 +729,115 @@ Options::operator != (enum Option_Type opt)
return true;
}
-// Initializes the key Iterator.
-
+/// Initializes the key Iterator.
void
Options::reset (void)
{
key_pos_ = 0;
}
-// Returns current key_position and advanced index.
-
+/// Returns current key_position and advanced index.
int
Options::get (void)
{
return key_positions_[key_pos_++];
}
-// Sets the size of the table size.
-
+/// Sets the size of the table size.
void
Options::asso_max (int r)
{
size_ = r;
}
-// Returns the size of the table size.
-
+/// Returns the size of the table size.
int
Options::asso_max (void)
{
return size_;
}
-// Returns total distinct key positions.
-
+/// Returns total distinct key positions.
u_int
Options::max_keysig_size (void)
{
return total_keysig_size_;
}
-// Sets total distinct key positions.
-
+/// Sets total distinct key positions.
void
Options::keysig_size (u_int a_size)
{
total_keysig_size_ = a_size;
}
-// Returns the jump value.
-
+/// Returns the jump value.
int
Options::jump (void)
{
return jump_;
}
-// Returns the generated function name.
-
+/// Returns the generated function name.
const char *
Options::function_name (void)
{
return function_name_.c_str ();
}
-// Returns the fill default
-
+/// Returns the fill default
const char *
Options::fill_default (void)
{
return fill_default_.c_str ();
}
-// Returns the keyword key name.
-
+/// Returns the keyword key name.
const char *
Options::key_name (void)
{
return key_name_.c_str ();
}
-// Returns the hash function name.
-
+/// Returns the hash function name.
const char *
Options::hash_name (void)
{
return hash_name_.c_str ();
}
-// Returns the generated class name.
-
+/// Returns the generated class name.
const char *
Options::class_name (void)
{
return class_name_.c_str ();
}
-// Returns the initial associated character value.
-
+/// Returns the initial associated character value.
int
Options::initial_value (void)
{
return initial_asso_value_;
}
-// Returns the iterations value.
-
+/// Returns the iterations value.
int
Options::iterations (void)
{
return iterations_;
}
-// Returns the string used to delimit keywords from other attributes.
-
+/// Returns the string used to delimit keywords from other attributes.
const char *
Options::delimiter (void)
{
return delimiters_.c_str ();
}
-// Gets the total number of switch statements to generate.
-
+/// Gets the total number of switch statements to generate.
int
Options::total_switches (void)
{
return total_switches_;
}
-#endif /* ACE_HAS_GPERF */
diff --git a/ACE/apps/gperf/src/Options.h b/ACE/apps/gperf/src/Options.h
index 78dfccafdab..2def2514200 100644
--- a/ACE/apps/gperf/src/Options.h
+++ b/ACE/apps/gperf/src/Options.h
@@ -1,71 +1,71 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#ifndef OPTIONS_H
#define OPTIONS_H
#include "ace/Log_Msg.h"
#include "ace/SString.h"
+#include "ace/Copy_Disabled.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#if defined (ACE_HAS_GPERF)
-
-// Enumerate the potential debugging Options.
-
+/// Enumerate the potential debugging Options.
enum Option_Type
{
- DEBUGGING = 01, // Enable debugging (prints diagnostics to stderr).
- ORDER = 02, // Apply ordering heuristic to speed-up search time.
- ANSI = 04, // Generate ANSI prototypes.
- ALLCHARS = 010, // Use all characters in hash function.
- INLINE = 020, // Generate code for inline functions.
- TYPE = 040, // Handle user-defined type structured keyword input.
- RANDOM = 0100, // Randomly initialize the associated values table.
- DEFAULTCHARS = 0200, // Make default char positions be 1,$ (end of keyword).
- SWITCH = 0400, // Generate switch output to save space.
- POINTER = 01000, // Have in_word_set function return pointer, not boolean.
- NOLENGTH = 02000, // Don't include keyword length in hash computations.
- LENTABLE = 04000, // Generate a length table for string comparison.
- DUP = 010000, // Handle duplicate hash values for keywords.
- FAST = 020000, // Generate the hash function ``fast.''
- NOTYPE = 040000, // Don't include user-defined type definition in output -- it's already defined elsewhere.
- COMP = 0100000, // Generate strncmp rather than strcmp.
- GLOBAL = 0200000, // Make the keyword table a global variable.
- CONSTANT = 0400000, // Make the generated tables readonly (const).
- CPLUSPLUS = 01000000, // Generate C++ code.
- C = 02000000, // Generate C code.
- ENUM = 04000000, // Use enum for constants.
- STRCASECMP = 010000000, // Use the case insensitive comparison.
- OPTIMIZE = 020000000, // Assume all input keywords are in the keyset.
- ADA = 040000000, // Generate Ada code.
- MUTE = 0100000000, // Dont print the warnings.
- SKIPCLASS = 0200000000, // Skip the class definition part in the output while in C++ mode.
- SKIPSTRINGH = 0400000000, // Skip including the header file ace/OS_NS_string.h.
- BINARYSEARCH = 01000000000, // Generates Binary Search code.
- LINEARSEARCH = 02000000000 // Generates Linear Search code.
+ DEBUGGING = 01, /* Enable debugging (prints diagnostics to stderr). */
+ ORDER = 02, /**< Apply ordering heuristic to speed-up search time. */
+ ANSI = 04, /**< Generate ANSI prototypes. */
+ ALLCHARS = 010, /**< Use all characters in hash function. */
+ INLINE = 020, /**< Generate code for inline functions. */
+ TYPE = 040, /**< Handle user-defined type structured keyword input. */
+ RANDOM = 0100, /**< Randomly initialize the associated values table. */
+ DEFAULTCHARS = 0200, /**< Make default char positions be 1,$ (end of keyword). */
+ SWITCH = 0400, /**< Generate switch output to save space. */
+ POINTER = 01000, /**< Have in_word_set function return pointer, not boolean. */
+ NOLENGTH = 02000, /**< Don't include keyword length in hash computations. */
+ LENTABLE = 04000, /**< Generate a length table for string comparison. */
+ DUP = 010000, /**< Handle duplicate hash values for keywords. */
+ FAST = 020000, /**< Generate the hash function ``fast.'' */
+ NOTYPE = 040000, /**< Don't include user-defined type definition in output -- it's already defined elsewhere. */
+ COMP = 0100000, /**< Generate strncmp rather than strcmp. */
+ GLOBAL = 0200000, /**< Make the keyword table a global variable. */
+ CONSTANT = 0400000, /**< Make the generated tables readonly (const). */
+ CPLUSPLUS = 01000000, /**< Generate C++ code. */
+ C = 02000000, /**< Generate C code. */
+ ENUM = 04000000, /**< Use enum for constants. */
+ STRCASECMP = 010000000, /**< Use the case insensitive comparison. */
+ OPTIMIZE = 020000000, /**< Assume all input keywords are in the keyset. */
+ ADA = 040000000, /**< Generate Ada code. */
+ MUTE = 0100000000, /**< Dont print the warnings. */
+ SKIPCLASS = 0200000000, /**< Skip the class definition part in the output while in C++ mode. */
+ SKIPSTRINGH = 0400000000, /**< Skip including the header file ace/OS_NS_string.h. */
+ BINARYSEARCH = 01000000000, /**< Generates Binary Search code. */
+ LINEARSEARCH = 02000000000 /**< Generates Linear Search code. */
};
// Define some useful constants (these don't really belong here, but
@@ -81,25 +81,26 @@ enum Option_Type
enum
{
- MAX_KEY_POS = 128 - 1, // Max size of each word's key set.
- WORD_START = 1, // Signals the start of a word.
- WORD_END = 0, // Signals the end of a word.
- EOS = MAX_KEY_POS // Signals end of the key list.
+ MAX_KEY_POS = 128 - 1, /**< Max size of each word's key set. */
+ WORD_START = 1, /**< Signals the start of a word. */
+ WORD_END = 0, /**< Signals the end of a word. */
+ EOS = MAX_KEY_POS /**< Signals end of the key list. */
};
-// @@ The Options class should be changed to use the Singleton pattern.
-class Options
+/*
+ * This class provides a uniform interface to the various options
+ * available to a user of the gperf hash function generator.
+ *
+ * In addition to the run-time options, found in the <Option_Type>
+ * there is also the hash table Size and the Keys to be used in
+ * the hashing. The overall design of this module was an
+ * experiment in using C++ classes as a mechanism to enhance
+ * centralization of option and and error handling.
+ *
+ * @todo The Options class should be changed to use the Singleton pattern.
+ */
+class Options : private ACE_Copy_Disabled
{
- // = TITLE
- // This class provides a uniform interface to the various options
- // available to a user of the gperf hash function generator.
- //
- // = DESCRIPTION
- // In addition to the run-time options, found in the <Option_Type>
- // there is also the hash table Size and the Keys to be used in
- // the hashing. The overall design of this module was an
- // experiment in using C++ classes as a mechanism to enhance
- // centralization of option and and error handling.
public:
Options (void);
~Options (void);
@@ -126,66 +127,65 @@ public:
static const char *delimiter (void);
private:
+ /// Holds the user-specified Options.
static int option_word_;
- // Holds the user-specified Options.
+ /// Number of switch statements to generate.
static int total_switches_;
- // Number of switch statements to generate.
+ /// Total number of distinct key_positions.
static u_int total_keysig_size_;
- // Total number of distinct key_positions.
+ /// Range of the hash table.
static int size_;
- // Range of the hash table.
+ /// Tracks current key position for Iterator.
static int key_pos_;
- // Tracks current key position for Iterator.
+ /// Tracks current key position for Iterator.
static int jump_;
- // Jump length when trying alternative values.
+ /// Initial value for asso_values table.
static int initial_asso_value_;
- // Initial value for asso_values table.
+ /// Amount to iterate when a collision occurs.
static int iterations_;
- // Amount to iterate when a collision occurs.
+ /// Records count of command-line arguments.
static int argc_;
- // Records count of command-line arguments.
+ /// Stores a pointer to command-line vector.
static ACE_TCHAR **argv_;
- // Stores a pointer to command-line vector.
+ /// Names used for generated lookup function.
static ACE_CString function_name_;
- // Names used for generated lookup function.
+ /// Expression used to assign default values in keyword table.
static ACE_CString fill_default_;
- // Expression used to assign default values in keyword table.
+ /// Name used for keyword key.
static ACE_CString key_name_;
- // Name used for keyword key.
+ /// Name used for generated C++ class.
static ACE_CString class_name_;
- // Name used for generated C++ class.
+ /// Name used for generated hash function.
static ACE_CString hash_name_;
- // Name used for generated hash function.
+ /// Separates keywords from other attributes.
static ACE_CString delimiters_;
- // Separates keywords from other attributes.
+ /// Contains user-specified key choices.
static char key_positions_[MAX_KEY_POS];
- // Contains user-specified key choices.
+ /// Sorts key positions in REVERSE order.
static int key_sort (char *base, int len);
- // Sorts key positions in REVERSE order.
+ /// Prints proper program usage.
static void usage (void);
- // Prints proper program usage.
};
-// Global option coordinator for the entire program.
+/// Global option coordinator for the entire program.
extern Options option;
-#endif /* ACE_HAS_GPERF */
#endif /* OPTIONS_H */
diff --git a/ACE/apps/gperf/src/Vectors.cpp b/ACE/apps/gperf/src/Vectors.cpp
index 95706725549..c01b4736e29 100644
--- a/ACE/apps/gperf/src/Vectors.cpp
+++ b/ACE/apps/gperf/src/Vectors.cpp
@@ -1,36 +1,32 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "Vectors.h"
-ACE_RCSID(src, Vectors, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-// Counts occurrences of each key set character.
+/// Counts occurrences of each key set character.
int Vectors::occurrences[ACE_STANDARD_CHARACTER_SET_SIZE];
-// Value associated with each character.
-int Vectors::asso_values[ACE_STANDARD_CHARACTER_SET_SIZE];
-
-#endif /* ACE_HAS_GPERF */
+/// Value associated with each character.
+int Vectors::asso_values[ACE_STANDARD_CHARACTER_SET_SIZE];
diff --git a/ACE/apps/gperf/src/Vectors.h b/ACE/apps/gperf/src/Vectors.h
index 6555c3f50b7..e7326faffec 100644
--- a/ACE/apps/gperf/src/Vectors.h
+++ b/ACE/apps/gperf/src/Vectors.h
@@ -1,25 +1,27 @@
// -*- C++ -*-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#ifndef VECTORS_H
#define VECTORS_H
@@ -30,8 +32,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#if defined (ACE_HAS_GPERF)
-
// Do not change these values wantonly since GPERF depends on them..
#define ACE_ASCII_SIZE 128
#define ACE_EBCDIC_SIZE 256
@@ -44,18 +44,18 @@
#define ACE_STANDARD_CHARACTER_SET_SIZE 128
#endif /* 'a' < 'A' */
+/*
+ * Static class data members that are shared between several
+ * classes via inheritance.
+ */
class Vectors
{
- // = TITLE
- // Static class data members that are shared between several
- // classes via inheritance.
public:
+ /// Counts occurrences of each key set character.
static int occurrences[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Counts occurrences of each key set character.
+ /// Value associated with each character.
static int asso_values[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Value associated with each character.
};
-#endif /* ACE_HAS_GPERF */
#endif /* VECTORS_H */
diff --git a/ACE/apps/gperf/src/Version.cpp b/ACE/apps/gperf/src/Version.cpp
index d2967050e43..d7af1a7bda6 100644
--- a/ACE/apps/gperf/src/Version.cpp
+++ b/ACE/apps/gperf/src/Version.cpp
@@ -1,30 +1,32 @@
// -*- C++ -*-
-// $Id$
-
// Current program version number.
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "ace/ACE.h"
-ACE_RCSID(src, Version, "$Id$")
+
const char *version_string = "2.8 (ACE version)";
diff --git a/ACE/apps/gperf/src/gperf.cpp b/ACE/apps/gperf/src/gperf.cpp
index c6a838e2874..d31bf95e65a 100644
--- a/ACE/apps/gperf/src/gperf.cpp
+++ b/ACE/apps/gperf/src/gperf.cpp
@@ -1,37 +1,31 @@
// -*- C++ -*-
-// $Id$
-
// Driver program for the gperf hash function generator.
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-
-// This program 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 General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-// Simple driver program for the gperf hash function generator. All
-// the hard work is done in class Gen_Perf and its class methods.
+/**
+ * $Id$
+ *
+ * Copyright (C) 1989 Free Software Foundation, Inc.
+ * written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ *
+ * This file is part of GNU GPERF.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
#include "Gen_Perf.h"
-
-ACE_RCSID(src, gperf, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
#include "Options.h"
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_stdio.h"
@@ -40,15 +34,13 @@ ACE_RCSID(src, gperf, "$Id$")
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
- struct tm *tm;
- time_t clock;
-
// Sets the Options.
if (option.parse_args (argc, argv) == -1)
return 1;
+ time_t clock;
ACE_OS::time (&clock);
- tm = ACE_OS::localtime (&clock);
+ struct tm *tm = ACE_OS::localtime (&clock);
if (option[DEBUGGING])
ACE_OS::printf ("/* starting time is %d:%02d:%02d */\n",
@@ -61,7 +53,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Generates and prints the gperf hash table. Don't use exit here,
// it skips the destructors.
- int status = gperf.run ();
+ int const status = gperf.run ();
ACE_OS::time (&clock);
tm = ACE_OS::localtime (&clock);
@@ -73,16 +65,3 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
tm->tm_sec);
return status;
}
-#else /* ! ACE_HAS_GPERF */
-int
-ACE_TMAIN (int argc, ACE_TCHAR *argv[])
-{
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- "gperf is not operational because "
- "ACE_HAS_GPERF was not enabled for the build\n"),
- 1);
-}
-#endif /* ! ACE_HAS_GPERF */
diff --git a/ACE/apps/gperf/src/gperf.mpc b/ACE/apps/gperf/src/gperf.mpc
index 65bc33a98c4..4d5babe6b2b 100644
--- a/ACE/apps/gperf/src/gperf.mpc
+++ b/ACE/apps/gperf/src/gperf.mpc
@@ -16,4 +16,9 @@ project(gperf) : aceexe, install, crosscompile {
Vectors.cpp
Version.cpp
}
+
+ verbatim(gnuace, postinstall) {
+" @$(MKDIR) $(DESTDIR)$(INSTALL_PREFIX)/share/ace/bin"
+" ln -sf $(INSTALL_PREFIX)/bin/ace_gperf $(DESTDIR)$(INSTALL_PREFIX)/share/ace/bin"
+ }
}
diff --git a/ACE/apps/gperf/tests/test.cpp b/ACE/apps/gperf/tests/test.cpp
index 0333e3f3b70..ba78028f00a 100644
--- a/ACE/apps/gperf/tests/test.cpp
+++ b/ACE/apps/gperf/tests/test.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(tests, test, "$Id$")
+
static const int MAX_LEN = 80;
diff --git a/ACE/apps/soreduce/Library.cpp b/ACE/apps/soreduce/Library.cpp
index b6f269c318b..84c604ef6e6 100644
--- a/ACE/apps/soreduce/Library.cpp
+++ b/ACE/apps/soreduce/Library.cpp
@@ -20,8 +20,6 @@
#include "Library.h"
-ACE_RCSID(src, Library, "$Id$")
-
MPC_Generator::MPC_Generator (const ACE_CString& libname)
: mpcfile_(),
libname_(libname),
@@ -183,12 +181,12 @@ Library::~Library ()
{
delete mpcfile_;
int i;
-
+
for (i = 0; i < num_modules_; delete modules_[i++])
{
// No action.
}
-
+
delete [] modules_;
}
diff --git a/ACE/apps/soreduce/Obj_Module.cpp b/ACE/apps/soreduce/Obj_Module.cpp
index 1ee8128ebb7..ca2d6eac8d1 100644
--- a/ACE/apps/soreduce/Obj_Module.cpp
+++ b/ACE/apps/soreduce/Obj_Module.cpp
@@ -17,10 +17,6 @@
#include "Obj_Module.h"
-
-ACE_RCSID(src, Obj_Module, "$Id$")
-
-
//----------------------------------------------------------------------------
Obj_Module::Obj_Module (const ACE_CString &name, int cap)
@@ -181,17 +177,17 @@ Obj_Module::populate_sig_list (Sig_List &siglist,
{
char *c;
ACE_CString temp;
-
+
for (int i = 0; i < lines; i++)
{
for (c = buf->rd_ptr (); c != buf->wr_ptr () && *c != '\n'; ++c)
{
// No action.
}
-
+
temp += ACE_CString (buf->rd_ptr (), (c - buf->rd_ptr ()));
buf->rd_ptr (c + 1);
-
+
if (*c == '\n')
{
// ACE_DEBUG ((LM_DEBUG, "%s\n",temp.c_str()));
@@ -201,7 +197,7 @@ Obj_Module::populate_sig_list (Sig_List &siglist,
else
{
buf = buf->cont ();
-
+
if (buf == 0)
{
siglist.add (temp);
diff --git a/ACE/apps/soreduce/Obj_Module.h b/ACE/apps/soreduce/Obj_Module.h
index 1836b75e7ec..f03a3c392c0 100644
--- a/ACE/apps/soreduce/Obj_Module.h
+++ b/ACE/apps/soreduce/Obj_Module.h
@@ -9,15 +9,15 @@
#define _OBJ_MODULE_H_
// Obj_Module encapsulates the result of applying nm to a single object module
-// in a shared library. Currently an object module consists of two types of
+// in a shared library. Currently an object module consists of two types of
// signatures, those that are exported, able to resolve references from others,
// and those that are imported, needing resolution.
//
-// Obj_Modules keep track of external references. In the end, any module that
+// Obj_Modules keep track of external references. In the end, any module that
// has one or more external references to it must be included in the resulting
-// library. While the means exists to remove external references, perhaps
-// through further analysis of undefined signatures and their usage, this is
-// not currently done. Once a technique is discovered to allow for easy
+// library. While the means exists to remove external references, perhaps
+// through further analysis of undefined signatures and their usage, this is
+// not currently done. Once a technique is discovered to allow for easy
// determination that reference is truly unneeded this code may be useful.
#include "Sig_List.h"
@@ -51,12 +51,12 @@ public:
// not included in the final library.
int extref ();
- // add a new external reference to this module.
+ // add a new external reference to this module.
void add_extref ();
// remove an exterenal reference. Currently, this function is not used.
void remove_extref();
-
+
private:
void populate_sig_list (Sig_List &, int , ACE_Message_Block *);
int read_line (ACE_HANDLE src, ACE_Message_Block **buf);
diff --git a/ACE/apps/soreduce/SO_Group.cpp b/ACE/apps/soreduce/SO_Group.cpp
index 7415e9d43c2..c683550926d 100644
--- a/ACE/apps/soreduce/SO_Group.cpp
+++ b/ACE/apps/soreduce/SO_Group.cpp
@@ -12,9 +12,6 @@
#include "Library.h"
#include "SO_Group.h"
-ACE_RCSID(src, SO_Group, "$Id$")
-
-
SO_Group::SO_Group ()
: undef_wrapper_ ("nothing"),
undefs_(undef_wrapper_.imports()),
@@ -31,7 +28,7 @@ SO_Group::~SO_Group (void)
{
// No action.
}
-
+
delete [] libs_;
}
@@ -66,7 +63,7 @@ SO_Group::add_executable (const char * path)
int len = 0;
int nread = 0;
int bogus = 0;
-
+
// Skip initial whitespace.
while ((nread = ACE_OS::read (pipe[0], line,1)) == 1
&& (*line == ' ' || *line == '\t'))
@@ -81,7 +78,7 @@ SO_Group::add_executable (const char * path)
// read the library name
len = 1;
-
+
while ((nread = ACE_OS::read (pipe[0], line + len, 1)) == 1
&& (line[len] != ' '))
{
@@ -91,25 +88,25 @@ SO_Group::add_executable (const char * path)
break;
}
}
-
+
if (nread != 1 || bogus)
{
break;
}
-
+
line[len] = 0;
char * dot = ACE_OS::strchr (line,'.');
-
+
if (dot != 0)
{
*dot = 0;
}
-
+
char * libname = line + 3; // skip over "lib"
// check to see if this is a new library
int found = 0;
-
+
for (int i = 0; !found && i < num_libs_; ++i)
{
found = (libs_[i]->name() == libname);
@@ -128,7 +125,7 @@ SO_Group::add_executable (const char * path)
// get library path
len = 0;
-
+
while ((nread = ACE_OS::read(pipe[0],line + len,1)) == 1 &&
(line[len] != ' '))
{
@@ -138,25 +135,25 @@ SO_Group::add_executable (const char * path)
break;
}
}
-
+
if (nread != 1 || bogus)
{
break;
}
-
+
line[len] = 0;
nlib->set_path (line);
libs_[num_libs_++] = nlib;
ACE_ASSERT (num_libs_ < max_libs_); // grow max libs?
}
-
+
// Skip the rest of the line.
while ((nread = ACE_OS::read (pipe[0], line, 1)) == 1
&& *line != '\n')
{
// No action.
}
-
+
if (nread != 1)
{
break;
@@ -178,7 +175,7 @@ SO_Group::analize (void)
"pass %d, undef count = %d\n",
passcount,
undefs_.size ()));
-
+
for (int i = 0; i < num_libs_; libs_[i++]->resolve (undefs_))
{
// No action.
@@ -208,7 +205,7 @@ void
SO_Group::list_libs (void)
{
ACE_DEBUG ((LM_DEBUG, "Libs subject to analysis:\n"));
-
+
for (int i = 0; i < num_libs_; ++i)
{
if (libs_[i]->has_modules ())
diff --git a/ACE/apps/soreduce/SO_Group.h b/ACE/apps/soreduce/SO_Group.h
index 09758c8c7bb..df4723a5905 100644
--- a/ACE/apps/soreduce/SO_Group.h
+++ b/ACE/apps/soreduce/SO_Group.h
@@ -14,7 +14,7 @@
// analize a collection of applications so that common shared libraries can
// be reduced.
-class SO_Group
+class SO_Group
{
public:
SO_Group ();
@@ -25,7 +25,7 @@ public:
// libraries if found. Finally, add the undefined symbols from the executable
// to the undefs collection.
void add_executable(const char * );
-
+
// Do the actual business of the program
void analize ();
diff --git a/ACE/apps/soreduce/Sig_List.cpp b/ACE/apps/soreduce/Sig_List.cpp
index 2f385790aff..9f109c8ca08 100644
--- a/ACE/apps/soreduce/Sig_List.cpp
+++ b/ACE/apps/soreduce/Sig_List.cpp
@@ -7,8 +7,6 @@
#include "ace/OS_NS_string.h"
#include "Sig_List.h"
-ACE_RCSID(src, Sig_List, "$Id$")
-
//-----------------------------------------------------------------------------
Sig_List::Sig_List (int cap)
@@ -36,7 +34,7 @@ Sig_List::add (const ACE_CString &s)
return;
modified_ = 1;
if (has_nulls_)
- for (int i = 0; i < size_; i++)
+ for (int i = 0; i < size_; i++)
if (array_[i] == 0) {
array_[i] = new Signature (s);
has_nulls_ --;
@@ -66,14 +64,14 @@ Sig_List::add (const Sig_List &other)
}
modified_ = 1;
for (int i = 0; i < other.size_; i++)
- if (other.array_[i] != 0 &&
- this->index_of (other.array_[i]->name()) == -1)
+ if (other.array_[i] != 0 &&
+ this->index_of (other.array_[i]->name()) == -1)
{
- if (!has_nulls_)
+ if (!has_nulls_)
array_[size_++] = other.array_[i]->dup();
else
- for (int i = 0; i < size_; i++)
- if (array_[i] == 0)
+ for (int i = 0; i < size_; i++)
+ if (array_[i] == 0)
{
array_[i] = other.array_[i]->dup();
has_nulls_ --;
@@ -104,7 +102,7 @@ Sig_List::remove_current ()
array_[index_]->release();
array_[index_] = 0;
modified_ = 1;
- if (index_ == size_ - 1)
+ if (index_ == size_ - 1)
size_--;
else
has_nulls_++;
@@ -150,7 +148,7 @@ Sig_List::next()
return 0;
}
-int
+int
Sig_List::hasmore ()
{
return index_ < size_;
@@ -174,7 +172,7 @@ Sig_List::modified()
if (i != insert) {
array_[insert] = array_[i];
array_[i] = 0;
- }
+ }
insert++;
}
size_ = insert+1;
diff --git a/ACE/apps/soreduce/Sig_List.h b/ACE/apps/soreduce/Sig_List.h
index 9b4b0dc115f..bd85974451e 100644
--- a/ACE/apps/soreduce/Sig_List.h
+++ b/ACE/apps/soreduce/Sig_List.h
@@ -9,11 +9,11 @@
#ifndef _SIG_LIST_H_
#define _SIG_LIST_H_
-// A Sig_List is a specialized container of signatures. The initial use of a
-// Sig_List was to manage a variable length of undefined Signatures, so the
-// program could know when all possible resolutions were determined. As the
-// program grows in complexity, Sig_Lists are used to store other groups as
-// well. The methods provide simple list traversal, as well as efficient use
+// A Sig_List is a specialized container of signatures. The initial use of a
+// Sig_List was to manage a variable length of undefined Signatures, so the
+// program could know when all possible resolutions were determined. As the
+// program grows in complexity, Sig_Lists are used to store other groups as
+// well. The methods provide simple list traversal, as well as efficient use
// of space.
#include "Signature.h"
diff --git a/ACE/apps/soreduce/Signature.cpp b/ACE/apps/soreduce/Signature.cpp
index 2d4d907e92b..89f9d413218 100644
--- a/ACE/apps/soreduce/Signature.cpp
+++ b/ACE/apps/soreduce/Signature.cpp
@@ -1,8 +1,6 @@
-#include "Signature.h"
-
-ACE_RCSID(src, Signature, "$Id$")
+// $Id$
-//-----------------------------------------------------------------------------
+#include "Signature.h"
Signature::Signature (const ACE_CString &name)
:name_(name),
@@ -11,13 +9,13 @@ Signature::Signature (const ACE_CString &name)
{
}
-void
+void
Signature::used ()
-{
+{
used_++;
}
-int
+int
Signature::used_count() const
{
return used_;
diff --git a/ACE/apps/soreduce/Signature.h b/ACE/apps/soreduce/Signature.h
index 358a756aa7a..189a430543a 100644
--- a/ACE/apps/soreduce/Signature.h
+++ b/ACE/apps/soreduce/Signature.h
@@ -9,15 +9,15 @@
#ifndef _SIGNATURE_H_
#define _SIGNATURE_H_
-// Signature class encapsulates a single line of nm output. This line may be
-// either an "undefined" name to be resolved, or text or data which resolves
-// the unknowns. Some of the features of the Signature class are currently
-// unused, such as owner_, which is anticipation of analysis that may lead to
-// further code reduction. The premise being that unresolved symbols that are
-// defined within otherwise unused code should not be resolved. However this
-// information is not available in the output of nm. Further research is
+// Signature class encapsulates a single line of nm output. This line may be
+// either an "undefined" name to be resolved, or text or data which resolves
+// the unknowns. Some of the features of the Signature class are currently
+// unused, such as owner_, which is anticipation of analysis that may lead to
+// further code reduction. The premise being that unresolved symbols that are
+// defined within otherwise unused code should not be resolved. However this
+// information is not available in the output of nm. Further research is
// required.
-//
+//
// Signatures are reference counted to avoid duplication.
#include <ace/SString.h>
@@ -27,7 +27,7 @@ public:
enum Kind {
text_,
- undef_
+ undef_
};
Signature (const ACE_CString &);
@@ -43,7 +43,7 @@ private:
ACE_CString name_;
int ref_count_;
int used_;
- Signature * owner_;
+ Signature * owner_;
Kind kind_;
};
diff --git a/ACE/apps/soreduce/soreduce.cpp b/ACE/apps/soreduce/soreduce.cpp
index ef6097283ed..d2005b34c15 100644
--- a/ACE/apps/soreduce/soreduce.cpp
+++ b/ACE/apps/soreduce/soreduce.cpp
@@ -29,30 +29,28 @@
#include "SO_Group.h"
-ACE_RCSID (src, soreduce, "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
SO_Group group;
ACE_DEBUG ((LM_DEBUG, "discovering libraries\n"));
-
+
for (int i = 1; i < argc; group.add_executable (argv[i++]))
{
// No action.
}
-
+
ACE_DEBUG ((LM_DEBUG, "loading object modules\n"));
group.load_modules ();
group.list_libs ();
-
+
ACE_DEBUG ((LM_DEBUG, "Starting analysis\n"));
group.analize ();
-
+
ACE_DEBUG ((LM_DEBUG, "Writing results\n"));
group.write_results ();
-
+
ACE_DEBUG ((LM_DEBUG, "Done.\n"));
return 0;
}
diff --git a/ACE/bin/ACETAOCIAO.style b/ACE/bin/ACETAOCIAO.style
index 575eb7a31c2..3e20fc492d3 100644
--- a/ACE/bin/ACETAOCIAO.style
+++ b/ACE/bin/ACETAOCIAO.style
@@ -50,7 +50,7 @@
<presetreference>Classes and Structs_Member Alignment Together_False</presetreference>
</rule>
<rule name="constructor-initialiser-packing">
-<presetreference>Constructor_Member Initializers_One Per Line</presetreference>
+<presetreference>Constructor_Member Initializers_One Per Line Comma Below</presetreference>
</rule>
<rule name="constructor-initialiser-style">
<presetreference>Constructor_Initializer Alignment_True</presetreference>
@@ -100,6 +100,12 @@
<rule name="expressions-binary-spacing">
<presetreference>Expressions_Binary Operators_Spaced</presetreference>
</rule>
+<rule name="expressions-conditional-spacing">
+<presetreference>Expressions_Conditional Operators_Spaced</presetreference>
+</rule>
+<rule name="expressions-conditional-spacing" override="true">
+<presetreference>Expressions_Conditional Operators_Disabled</presetreference>
+</rule>
<rule name="expressions-functioncall-spacing">
<presetreference>Functions_Calls_Spaced</presetreference>
</rule>
@@ -109,6 +115,9 @@
<rule name="expressions-pointer-spacing">
<presetreference>Expressions_Pointer Operators_Not Spaced</presetreference>
</rule>
+<rule name="expressions-pointer-wrapping">
+<presetreference>Expressions_Pointer Operator Wrapping_After</presetreference>
+</rule>
<rule name="expressions-unary-spacing">
<presetreference>Expressions_Logical and Bitwise Unary Operators_Not Spaced</presetreference>
</rule>
@@ -151,8 +160,11 @@
<rule name="function-parameter-alignment">
<presetreference>Functions_Parameter Alignment_Bracket</presetreference>
</rule>
+<rule name="function-parameter-brackets" override="true">
+<presetreference>Functions_Parameter Brackets_Disabled</presetreference>
+</rule>
<rule name="function-parameter-lines">
-<presetreference>Functions_Parameter Lines_False</presetreference>
+<presetreference>Functions_Parameter Lines_True</presetreference>
</rule>
<rule name="function-parameter-spacing">
<presetreference>Functions_Parameter Spacing_AfterComma</presetreference>
@@ -170,7 +182,7 @@
<presetreference>Global_Alignment ensures at least one space_False</presetreference>
</rule>
<rule name="global-bracing-style">
-<presetreference>Global_Default Block Brace Position_Aligned</presetreference>
+<presetreference>Global_Default Block Brace Position_Indented</presetreference>
</rule>
<rule name="global-bracket-alignment">
<presetreference>Expressions_Bracket Alignment_AlignAtBracket</presetreference>
@@ -245,7 +257,7 @@
<presetreference>Global_Line Wrapping_80</presetreference>
</rule>
<rule name="member-initialiser-position">
-<presetreference>Constructor_Member Initializer Position_Below Indented</presetreference>
+<presetreference>Constructor_Member Initializer Position_Below</presetreference>
</rule>
<rule name="min-member-align">
<presetreference>Classes and Structs_Minimum Member Alignment_None</presetreference>
@@ -253,9 +265,6 @@
<rule name="multiple-inheritance">
<presetreference>Classes and Structs_Multiple Inheritance_OnePerLine</presetreference>
</rule>
-<rule name="multiple-inheritance" override="true">
-<presetreference>Classes and Structs_Multiple Inheritance_Disabled</presetreference>
-</rule>
<rule name="namespace-bracing-style">
<presetreference>Namespaces_Brace Position_Aligned</presetreference>
</rule>
diff --git a/ACE/bin/ACEutils.pm b/ACE/bin/ACEutils.pm
index b7e5a24217c..52ec6787bd1 100644
--- a/ACE/bin/ACEutils.pm
+++ b/ACE/bin/ACEutils.pm
@@ -9,7 +9,7 @@ package ACE;
sub CheckForExeDir
{
for($i = 0; $i <= $#ARGV; $i++) {
- if ($ARGV[$i] eq '-ExeSubDir') {
+ if ($ARGV[$i] eq '-ExeSubDir') {
if (defined $ARGV[$i + 1]) {
$::EXEPREFIX = $ARGV[$i + 1].$::DIR_SEPARATOR;
}
@@ -27,7 +27,7 @@ sub CheckForExeDir
sub CheckForConfig
{
for($i = 0; $i <= $#ARGV;) {
- if ($ARGV[$i] eq '-Config') {
+ if ($ARGV[$i] eq '-Config') {
if (!defined $ARGV[$i + 1]) {
print STDERR "You must pass a configuration with Config\n";
exit(1);
@@ -44,7 +44,7 @@ sub checkForTarget
my($cwd) = shift;
for($i = 0; $i <= $#ARGV; $i++) {
- if ($ARGV[$i] eq '-chorus') {
+ if ($ARGV[$i] eq '-chorus') {
if (defined $ARGV[$i + 1]) {
$::TARGETHOSTNAME = $ARGV[$i + 1];
$::EXEPREFIX = "rsh $::TARGETHOSTNAME arun $cwd$::DIR_SEPARATOR";
diff --git a/ACE/bin/Array.pl b/ACE/bin/Array.pl
deleted file mode 100755
index 7f9bf393e15..00000000000
--- a/ACE/bin/Array.pl
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh -- # -*- perl -*-
-eval 'exec perl -pi.Array.$$ -S $0 ${1+"$@"}'
- if 0;
-
-# $Id$
-
-#
-# After the 4.6.10 release the template instantiations for ACE_Array
-# have changed, the class is implemented in terms of ACE_Array_Base;
-# this script fixes the template instantiations if needed.
-#
-# It changes instantiations of:
-#
-# ACE_Array<T>
-#
-# into:
-#
-# ACE_Array<T>
-# ACE_Array_Base<T>
-#
-
-# Notice the use of the -pi options: the while(<>) loop is implicit,
-# printing the current line is also implicit as well as fixing the
-# file in place.
-
-if (m/template class\s+ACE_Array\s*<(.*)>\s*;\s*/) {
- print "template class ACE_Array_Base<", $1, ">;\n";
-} elsif (m/#pragma instantiate\s+ACE_Array\s*<(.*)>\s*$/) {
- print "#pragma instantiate ACE_Array_Base<", $1, ">\n";
-}
-
diff --git a/ACE/bin/Array_Helper b/ACE/bin/Array_Helper
deleted file mode 100755
index 6ffce3b799e..00000000000
--- a/ACE/bin/Array_Helper
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /bin/sh
-#
-# $Id$
-#
-
-# Finds all files that instantiate ACE_Array and runs the Array.pl
-# perl script on them, please check $ACE_ROOT/bin/Array.pl for more
-# details.
-
-find $* -type f -a \( -name '*.h' \
- -o -name '*.i' \
- -o -name '*.cpp' \) |
- xargs egrep -l 'template[ \t]*class[ \t]*ACE_Array[ \t]*\<' |
- xargs perl -pi $ACE_ROOT/bin/Hash_Map_Manager.pl
-
-
diff --git a/ACE/bin/ChangeLogEditor/FileLocatorFactory.pm b/ACE/bin/ChangeLogEditor/FileLocatorFactory.pm
index 00cda95a915..b7a2320788a 100644
--- a/ACE/bin/ChangeLogEditor/FileLocatorFactory.pm
+++ b/ACE/bin/ChangeLogEditor/FileLocatorFactory.pm
@@ -20,8 +20,8 @@ use SVNFileLocator;
# ************************************************************
sub create {
- ## Check for Subversion first. It is unlikely that the .svn directory
- ## will exist when Subversion isn't the rcs being used. However, that
+ ## Check for Subversion first. It is unlikely that the .svn directory
+ ## will exist when Subversion isn't the rcs being used. However, that
## is not the case for CVS directories.
switch: {
((defined $ENV{SVN_ASP_DOT_NET_HACK} && -d '_svn') || -d '.svn')
diff --git a/ACE/bin/DependencyGenerator/GNUObjectGenerator.pm b/ACE/bin/DependencyGenerator/GNUObjectGenerator.pm
index e94ebc929fc..a7bd2842c9c 100644
--- a/ACE/bin/DependencyGenerator/GNUObjectGenerator.pm
+++ b/ACE/bin/DependencyGenerator/GNUObjectGenerator.pm
@@ -23,6 +23,7 @@ use vars qw(@ISA);
sub process {
my($noext) = $_[1];
$noext =~ s/\.[^\.]+$//o;
+ $noext =~ s/.+\/// if $noext =~ /\.\.\//;
return ["\$(VDIR)$noext.\$(SOEXT)",
"\$(VDIR)$noext.\$(OBJEXT)",
"\$(VSHDIR)$noext.\$(SOEXT)",
diff --git a/ACE/bin/Hash_Map_Manager.pl b/ACE/bin/Hash_Map_Manager.pl
deleted file mode 100755
index cf37f69b6a4..00000000000
--- a/ACE/bin/Hash_Map_Manager.pl
+++ /dev/null
@@ -1,146 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -pi -S $0 ${1+"$@"}'
- & eval 'exec perl -pi -S $0 $argv:q'
- if 0;
-
-# $Id$
-
-#
-# This script is used by Hash_Map_Manager_Helper.
-#
-
-#
-# This script helps in fixing the template instantiations changes
-# required by the new design of ACE_Hash_Map_Manager.
-#
-# Note that this script is not a 100% fool proof:
-#
-# (a) It uses commas to delimit the types in ACE_Hash_Map_Manager<X,
-# Y, Z>. If X, Y, or Z are complicated types containing commas (e.g.,
-# T<a, b>), this script will not work. Also, all template parameters
-# are assumed to be on the same line.
-#
-# In the case where this script will not work, here are the cookbook,
-# do-it-yourself instructions:
-#
-# ACE_Hash_Map_Entry<X, Y>
-#
-# changes to:
-#
-# ACE_Hash_Map_Entry<X, Y>
-# ACE_Hash<X>
-# ACE_Equal_To<X>
-#
-#
-# ACE_Hash_Map_Iterator_Base<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Iterator_Base_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Manager<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Manager<X, Y, Z>
-# ACE_Hash_Map_Manager_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Iterator<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Iterator<X, Y, Z>
-# ACE_Hash_Map_Iterator_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Reverse_Iterator<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Reverse_Iterator<X, Y, Z>
-# ACE_Hash_Map_Reverse_Iterator_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-
-
-# (b) The second problem is for g++ users (version lower than
-# 2.8). g++ is broken such that if you explicitly instantiate
-# templates, it will ignore template specialization. Therefore if you
-# are using the template instantiation provided in ACE for ACE_Hash
-# and ACE_Equal_To, don't instantiate those templates.
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-$template_instantiation = "template class";
-$end_of_template_instantiation = ";";
-
-$pragma_instantiation = "#pragma instantiate";
-$end_of_pragma_instantiation = "";
-
-while ($line = <>)
-{
- find_match ("ACE_Hash_Map_Entry");
- if ($match)
- {
- $template_parameters =~ /(.*),\s*(.*)/;
- $X = $1;
- $Y = $2;
-
- print "$instantiation ACE_Hash_Map_Entry<$template_parameters>$end_of_instantiation\n";
- print "$instantiation ACE_Hash<$X>$end_of_instantiation\n";
- print "$instantiation ACE_Equal_To<$X>$end_of_instantiation\n";
- next;
- }
-
- add_ex ("ACE_Hash_Map_Manager", 1);
- add_ex ("ACE_Hash_Map_Iterator", 1);
- add_ex ("ACE_Hash_Map_Reverse_Iterator", 1);
- add_ex ("ACE_Hash_Map_Iterator_Base", 0);
-
- print $line;
-}
-
-sub find_match
-{
- $key = $_[0].'\s*<\s*(.*)>\s*';
- if ($line =~ /$template_instantiation \s*$key$end_of_template_instantiation$/)
- {
- $match = 1;
- $template_parameters = $1;
- $instantiation = $template_instantiation;
- $end_of_instantiation = $end_of_template_instantiation;
- }
- elsif ($line =~ /$pragma_instantiation \s*$key$end_of_pragma_instantiation$/)
- {
- $match = 1;
- $template_parameters = $1;
- $instantiation = $pragma_instantiation;
- $end_of_instantiation = $end_of_pragma_instantiation;
- }
- else
- {
- $match = 0;
- }
-}
-
-sub add_ex
-{
- $add_original_line = $_[1];
- find_match ($_[0]);
- if ($match)
- {
- $template_parameters =~ /(.*),\s*(.*),\s*(.*)/;
- $X = $1;
- $Y = $2;
- $Z = $3;
-
- if ($add_original_line)
- {
- print "$instantiation $_[0]<$template_parameters>$end_of_instantiation\n";
- }
-
- print "$instantiation $_[0]_Ex<$X, $Y, ACE_Hash<$X>, ACE_Equal_To<$X>, $Z>$end_of_instantiation\n";
- next;
- }
-}
diff --git a/ACE/bin/Hash_Map_Manager_Helper b/ACE/bin/Hash_Map_Manager_Helper
deleted file mode 100755
index f65cd584684..00000000000
--- a/ACE/bin/Hash_Map_Manager_Helper
+++ /dev/null
@@ -1,76 +0,0 @@
-#! /bin/sh
-
-#
-# $Id$
-#
-
-#
-# This script uses Hash_Map_Manager.pl.
-#
-
-#
-# This script helps in fixing the template instantiations changes
-# required by the new design of ACE_Hash_Map_Manager.
-#
-# Note that this script is not a 100% fool proof:
-#
-# (a) It uses commas to delimit the types in ACE_Hash_Map_Manager<X,
-# Y, Z>. If X, Y, or Z are complicated types containing commas (e.g.,
-# T<a, b>), this script will not work. Also, all template parameters
-# are assumed to be on the same line.
-#
-# In the case where this script will not work, here are the cookbook,
-# do-it-yourself instructions:
-#
-# ACE_Hash_Map_Entry<X, Y>
-#
-# changes to:
-#
-# ACE_Hash_Map_Entry<X, Y>
-# ACE_Hash<X>
-# ACE_Equal_To<X>
-#
-#
-# ACE_Hash_Map_Iterator_Base<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Iterator_Base_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Manager<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Manager<X, Y, Z>
-# ACE_Hash_Map_Manager_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Iterator<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Iterator<X, Y, Z>
-# ACE_Hash_Map_Iterator_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Reverse_Iterator<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Reverse_Iterator<X, Y, Z>
-# ACE_Hash_Map_Reverse_Iterator_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-
-
-# (b) The second problem is for g++ users (version lower than
-# 2.8). g++ is broken such that if you explicitly instantiate
-# templates, it will ignore template specialization. Therefore if you
-# are using the template instantiation provided in ACE for ACE_Hash
-# and ACE_Equal_To, don't instantiate those templates.
-
-for file in `find . -type f \( -name "*.i" -o -name "*.h" -o -name "*.cpp" \) -print | xargs egrep -l "template[ \t]*class[ \t]*ACE_Hash_Map_Manager"`
-do
- echo Fixing template instantiations in $file
- perl $ACE_ROOT/bin/Hash_Map_Manager.pl $file > $file.new
- mv $file.new $file
-done
diff --git a/ACE/bin/LabVIEW_RT/labview_test_controller/ReadMe.txt b/ACE/bin/LabVIEW_RT/labview_test_controller/ReadMe.txt
index c2362a229e6..a4b1b5379b3 100644
--- a/ACE/bin/LabVIEW_RT/labview_test_controller/ReadMe.txt
+++ b/ACE/bin/LabVIEW_RT/labview_test_controller/ReadMe.txt
@@ -39,26 +39,26 @@ also involved in testing on the LabVIEW RT target.
The remainder of this is what Visual Studio .NET generated for this project.
========================================================================
-AppWizard has created this labview_test_controller DLL for you.
+AppWizard has created this labview_test_controller DLL for you.
This file contains a summary of what you will find in each of the files that
make up your labview_test_controller application.
labview_test_controller.vcproj
- This is the main project file for VC++ projects generated using an Application Wizard.
- It contains information about the version of Visual C++ that generated the file, and
+ This is the main project file for VC++ projects generated using an Application Wizard.
+ It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
labview_test_controller.cpp
This is the main DLL source file.
- When created, this DLL does not export any symbols. As a result, it
- will not produce a .lib file when it is built. If you wish this project
- to be a project dependency of some other project, you will either need to
- add code to export some symbols from the DLL so that an export library
- will be produced, or you can set the Ignore Input Library property to Yes
- on the General propert page of the Linker folder in the project's Property
+ When created, this DLL does not export any symbols. As a result, it
+ will not produce a .lib file when it is built. If you wish this project
+ to be a project dependency of some other project, you will either need to
+ add code to export some symbols from the DLL so that an export library
+ will be produced, or you can set the Ignore Input Library property to Yes
+ on the General propert page of the Linker folder in the project's Property
Pages dialog box.
/////////////////////////////////////////////////////////////////////////////
diff --git a/ACE/bin/LabVIEW_RT/labview_test_controller/labview_test_controller.cpp b/ACE/bin/LabVIEW_RT/labview_test_controller/labview_test_controller.cpp
index e8fc7c80550..c6d94e8d10b 100644
--- a/ACE/bin/LabVIEW_RT/labview_test_controller/labview_test_controller.cpp
+++ b/ACE/bin/LabVIEW_RT/labview_test_controller/labview_test_controller.cpp
@@ -25,7 +25,7 @@
// Windows code, not ACE, so we stick to the Microsoft way...
// FUZZ: disable check_for_NULL
-// This is plain Windows code, not ACE. Therefore we disable
+// This is plain Windows code, not ACE. Therefore we disable
// the check for ACE_OS
// FUZZ: disable check_for_lack_ACE_OS
@@ -44,8 +44,8 @@ static const char *format_errmsg (unsigned int errcode, const char *prefix);
static const char *LogName = "acetao.log";
static HANDLE logf = INVALID_HANDLE_VALUE;
-BOOL APIENTRY DllMain( HANDLE hModule,
- DWORD ul_reason_for_call,
+BOOL APIENTRY DllMain( HANDLE hModule,
+ DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
diff --git a/ACE/bin/LabVIEW_RT/labview_test_controller/test.cpp b/ACE/bin/LabVIEW_RT/labview_test_controller/test.cpp
index b3ce1efcf26..0ba8c618571 100644
--- a/ACE/bin/LabVIEW_RT/labview_test_controller/test.cpp
+++ b/ACE/bin/LabVIEW_RT/labview_test_controller/test.cpp
@@ -3,7 +3,7 @@
#include <stdio.h>
__declspec(dllimport) int test_entry(void);
-// This is plain Windows code, not ACE. Therefore we disable
+// This is plain Windows code, not ACE. Therefore we disable
// the check for ACE_OS
// FUZZ: disable check_for_lack_ACE_OS
// FUZZ: disable check_for_improper_main_declaration
diff --git a/ACE/bin/MakeProjectCreator/config/MPC.cfg b/ACE/bin/MakeProjectCreator/config/MPC.cfg
index e42621a774f..04f2c9a5439 100644
--- a/ACE/bin/MakeProjectCreator/config/MPC.cfg
+++ b/ACE/bin/MakeProjectCreator/config/MPC.cfg
@@ -1,3 +1,3 @@
-includes = $TAO_ROOT/MPC/config, $CIAO_ROOT/MPC/config
-dynamic_types = $ACE_ROOT/bin/MakeProjectCreator, $DDS_ROOT/MPC
+includes = $CIAO_ROOT/MPC/config, $DANCE_ROOT/MPC/config
+dynamic_types = $ACE_ROOT/bin/MakeProjectCreator, $?DDS_ROOT/MPC, $?TAO_ROOT/MPC
main_functions = cplusplus:ACE_TMAIN
diff --git a/ACE/bin/MakeProjectCreator/config/ace_fl.mpb b/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
index 2f42e405db6..6c9d558870b 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
@@ -10,9 +10,9 @@ project : ace_x11, ace_gl {
CPPFLAGS += $(PLATFORM_GL_CPPFLAGS) $(PLATFORM_X11_CPPFLAGS)
LIBS += $(PLATFORM_FL_LIBS) $(PLATFORM_GL_LIBS) $(PLATFORM_X11_LIBS)
LDFLAGS += $(PLATFORM_FL_LDFLAGS) $(PLATFORM_GL_LDFLAGS)
- LDFLAGS += $(PLATFORM_GL_LDFLAGS)
+ LDFLAGS += $(PLATFORM_X11_LDFLAGS)
}
- specific(vc10,vc9,vc8,vc71) {
+ specific(prop:microsoft) {
libs += fltkdll
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_fox.mpb b/ACE/bin/MakeProjectCreator/config/ace_fox.mpb
index cc8c2f967f6..5577ca13896 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_fox.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_fox.mpb
@@ -3,7 +3,7 @@
project {
requires += fox
- // Depends on configration from include/makeinclude/platform_*.GNU
+ // Depends on configuration from include/makeinclude/platform_*.GNU
verbatim(gnuace,local) {
CPPFLAGS += $(PLATFORM_FOX_CPPFLAGS)
diff --git a/ACE/bin/MakeProjectCreator/config/ace_gl.mpb b/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
index 4b18245232a..adc991da154 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
@@ -4,13 +4,13 @@
project : ace_x11 {
requires += gl
- // Depends on configration from include/makeinclude/platform_*.GNU
+ // Depends on configuration from include/makeinclude/platform_*.GNU
verbatim(gnuace,local) {
CPPFLAGS += $(PLATFORM_GL_CPPFLAGS) $(PLATFORM_X11_CPPFLAGS)
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_gtk.mpb b/ACE/bin/MakeProjectCreator/config/ace_gtk.mpb
index c1235d4633f..05b0cb06548 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_gtk.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_gtk.mpb
@@ -4,7 +4,7 @@
project {
macros += ACE_HAS_GTK
- // Depends on configration from include/makeinclude/platform_*.GNU
+ // Depends on configuration from include/makeinclude/platform_*.GNU
verbatim(gnuace,local) {
CPPFLAGS += $(PLATFORM_GTK_CPPFLAGS)
LIBS += $(PLATFORM_GTK_LIBS)
diff --git a/ACE/bin/MakeProjectCreator/config/ace_mc.mpb b/ACE/bin/MakeProjectCreator/config/ace_mc.mpb
index 5d7ea882f48..fe152fbae0c 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_mc.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_mc.mpb
@@ -6,12 +6,13 @@ 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) {
"ifeq (1,$(winnt))"
" ACE_SHLIBS += pdh.lib"
+ " LDLIBS += pdh.lib"
"endif"
}
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_qt.mpb b/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
index d5853390400..e361df42fae 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
@@ -3,7 +3,7 @@
project: qt {
- // Depends on configration from include/makeinclude/platform_*.GNU
+ // Depends on configuration from include/makeinclude/platform_*.GNU
verbatim(gnuace,local) {
CPPFLAGS += $(PLATFORM_QT_CPPFLAGS)
LIBS += $(PLATFORM_QT_LIBS)
@@ -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_qt3.mpb b/ACE/bin/MakeProjectCreator/config/ace_qt3.mpb
deleted file mode 100644
index a4238d6dbf9..00000000000
--- a/ACE/bin/MakeProjectCreator/config/ace_qt3.mpb
+++ /dev/null
@@ -1,5 +0,0 @@
-// -*- MPC -*-
-// $Id$
-
-project: ace_qt {
-}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_qt4reactor.mpb b/ACE/bin/MakeProjectCreator/config/ace_qt4reactor.mpb
new file mode 100644
index 00000000000..a21f821fb25
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/ace_qt4reactor.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : acelib, ace_qt4 {
+ requires += ace_qt4reactor
+ after += ACE_Qt4Reactor
+ libs += ACE_QtReactor
+}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb b/ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb
deleted file mode 100644
index e46c7dd6ea6..00000000000
--- a/ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb
+++ /dev/null
@@ -1,8 +0,0 @@
-// -*- MPC -*-
-// $Id$
-
-project : acelib, ace_qt3 {
- requires += ace_qtreactor
- after += ACE_QtReactor
- libs += ACE_QtReactor
-}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_tk.mpb b/ACE/bin/MakeProjectCreator/config/ace_tk.mpb
index 10493bbf4ea..30c1a91841c 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_tk.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_tk.mpb
@@ -3,7 +3,7 @@
project {
requires += tk
- // Depends on configration from include/makeinclude/platform_*.GNU
+ // Depends on configuration from include/makeinclude/platform_*.GNU
verbatim(gnuace,local) {
CPPFLAGS += $(PLATFORM_TCL_CPPFLAGS) $(PLATFORM_TK_CPPFLAGS)
diff --git a/ACE/bin/MakeProjectCreator/config/ace_unicode.mpb b/ACE/bin/MakeProjectCreator/config/ace_unicode.mpb
index 8bb4381f3ce..f6ce89fbf6b 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_unicode.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_unicode.mpb
@@ -1,6 +1,6 @@
// -*- MPC -*-
// $Id$
-project: unicode {
- macros += ACE_USES_WCHAR=1
+feature (uses_wchar) : unicode {
+ macros += ACE_USES_WCHAR
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_x11.mpb b/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
index ac67115901d..e8e415bedf6 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
@@ -2,12 +2,12 @@
// $Id$
project {
- specific(vc71,vc8,vc9,vc10) {
+ specific(prop:microsoft) {
} else {
requires += x11
}
- // Depends on configration from include/makeinclude/platform_*.GNU
+ // Depends on configuration from include/makeinclude/platform_*.GNU
verbatim(gnuace,local) {
CPPFLAGS += $(PLATFORM_X11_CPPFLAGS)
LIBS += $(PLATFORM_X11_LIBS)
diff --git a/ACE/bin/MakeProjectCreator/config/ace_xt.mpb b/ACE/bin/MakeProjectCreator/config/ace_xt.mpb
index 78152e14cc1..cab44472cb2 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_xt.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_xt.mpb
@@ -5,7 +5,7 @@ project: ace_x11 {
// this feature by default is set to 1 as projects dependent on Xt has their own features
requires += xt
- // Depends on configration from include/makeinclude/platform_*.GNU
+ // Depends on configuration from include/makeinclude/platform_*.GNU
verbatim(gnuace,local) {
CPPFLAGS += $(PLATFORM_XT_CPPFLAGS) $(PLATFORM_X11_CPPFLAGS)
LIBS += $(PLATFORM_XT_LIBS) $(PLATFORM_X11_LIBS)
diff --git a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
index 228c6e6c40a..8ccc861ede6 100644
--- a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
+++ b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
@@ -1,7 +1,7 @@
// -*- MPC -*-
// $Id$
-project: ipv6, vc_warnings, build_files, test_files, svc_conf_files {
+project: ipv6, vc_warnings, build_files, test_files, svc_conf_files, ace_unicode {
staticflags += ACE_AS_STATIC_LIBS
includes += $(ACE_ROOT)
libpaths += $(ACE_ROOT)/lib
@@ -19,7 +19,34 @@ 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
}
+
+ specific(cdt6) {
+ win32::platform_libs += ws2_32 mswsock netapi32
+ release::macros += ACE_NDEBUG ACE_USE_RCSID=0
+ }
+
+}
+
+feature(ace_inline) {
+ specific(cdt6,cdt7) {
+ macros += __ACE_INLINE__
+ }
+}
+
+feature(!ace_inline) {
+ specific(cdt6,cdt7) {
+ macros += ACE_NO_INLINE
+ }
+}
+
+feature(!threads) {
+ specific(cdt6,cdt7) {
+ macros += ACE_MT_SAFE=0
+ // and without threads we must remove support for AIO.
+ macros -= ACE_HAS_AIO_CALLS
+ platform_libs -= rt
+ }
}
diff --git a/ACE/bin/MakeProjectCreator/config/aceexe.mpb b/ACE/bin/MakeProjectCreator/config/aceexe.mpb
index cfd59d40b8d..cd10a7f6f23 100644
--- a/ACE/bin/MakeProjectCreator/config/aceexe.mpb
+++ b/ACE/bin/MakeProjectCreator/config/aceexe.mpb
@@ -2,5 +2,4 @@
// $Id$
project: acedefaults, acenosubsets, ace_for_tao, versioned_namespace {
-
}
diff --git a/ACE/bin/MakeProjectCreator/config/acemfcexe.mpb b/ACE/bin/MakeProjectCreator/config/acemfcexe.mpb
new file mode 100644
index 00000000000..c7bf95454f0
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/acemfcexe.mpb
@@ -0,0 +1,14 @@
+// -*- MPC -*-
+// $Id$
+
+project: aceexe, ace_mfc {
+ specific(vc8, vc9, vc10) {
+ common_defines -= _CONSOLE
+ }
+ specific(vc8, vc9) {
+ SubSystem = 2
+ }
+ specific(vc10) {
+ SubSystem = Windows
+ }
+}
diff --git a/ACE/bin/MakeProjectCreator/config/automake.features b/ACE/bin/MakeProjectCreator/config/automake.features
index 7192e274d44..4a9957a1d2f 100644
--- a/ACE/bin/MakeProjectCreator/config/automake.features
+++ b/ACE/bin/MakeProjectCreator/config/automake.features
@@ -1,7 +1,7 @@
// $Id$
// Ideally this file should enable all features, and the configure script
-// would enable or disable the cooresponding automake conditionals. More
+// would enable or disable the corresponding automake conditionals. More
// work is required to make this a reality.
automake=1
diff --git a/ACE/bin/MakeProjectCreator/config/bmake.features b/ACE/bin/MakeProjectCreator/config/bmake.features
index 16181dc6293..8d442a15983 100644
--- a/ACE/bin/MakeProjectCreator/config/bmake.features
+++ b/ACE/bin/MakeProjectCreator/config/bmake.features
@@ -2,6 +2,5 @@
ssl=0
qos=1
-cidl=0
rwho=0
sctp=0
diff --git a/ACE/bin/MakeProjectCreator/config/crosscompile.mpb b/ACE/bin/MakeProjectCreator/config/crosscompile.mpb
index 2aba9af82ad..d755f480cac 100644
--- a/ACE/bin/MakeProjectCreator/config/crosscompile.mpb
+++ b/ACE/bin/MakeProjectCreator/config/crosscompile.mpb
@@ -1,8 +1,14 @@
+
// -*- MPC -*-
// $Id$
project {
- specific(vc7, vc71, vc8, vc9, vc10) {
+ avoids += cross_compile
+
+ specific(prop:microsoft) {
+ nocross = 1
+ }
+ specific(cdt6) {
nocross = 1
}
verbatim(gnuace, circuit) {
diff --git a/ACE/bin/MakeProjectCreator/config/default.rel b/ACE/bin/MakeProjectCreator/config/default.rel
index 6e61b7555f6..5e44a536df5 100644
--- a/ACE/bin/MakeProjectCreator/config/default.rel
+++ b/ACE/bin/MakeProjectCreator/config/default.rel
@@ -2,7 +2,7 @@
//
// The first column is the name for which we create a relative definition.
// The second (optional) column is the value to build up if it isn't defined
-// as an environmenment variable.
+// as an environment variable.
*_ROOT
TAO_ROOT, $ACE_ROOT/TAO
CIAO_ROOT, $TAO_ROOT/CIAO
diff --git a/ACE/bin/MakeProjectCreator/config/em3.features b/ACE/bin/MakeProjectCreator/config/em3.features
index 16181dc6293..8d442a15983 100644
--- a/ACE/bin/MakeProjectCreator/config/em3.features
+++ b/ACE/bin/MakeProjectCreator/config/em3.features
@@ -2,6 +2,5 @@
ssl=0
qos=1
-cidl=0
rwho=0
sctp=0
diff --git a/ACE/bin/MakeProjectCreator/config/exceptions.mpb b/ACE/bin/MakeProjectCreator/config/exceptions.mpb
deleted file mode 100644
index 912530f5cfb..00000000000
--- a/ACE/bin/MakeProjectCreator/config/exceptions.mpb
+++ /dev/null
@@ -1,6 +0,0 @@
-// -*- MPC -*-
-// $Id$
-
-project {
- requires += exceptions
-}
diff --git a/ACE/bin/MakeProjectCreator/config/global.features b/ACE/bin/MakeProjectCreator/config/global.features
index 1863ddbe160..74b7625098e 100644
--- a/ACE/bin/MakeProjectCreator/config/global.features
+++ b/ACE/bin/MakeProjectCreator/config/global.features
@@ -24,6 +24,7 @@ ace_token = 1
// By default we disable these.
ace_for_tao = 0
+cross_compile = 0
ssl = 0
qos = 0
rapi = 0
@@ -41,22 +42,35 @@ rpc = 0
sctp = 0
boost = 0
dummy_label = 0
-cidl = 0
wince = 0
uses_wchar = 0 // i.e. unicode
gen_ostream = 0
ziparchive = 0
negotiate_codesets = 0
+notify_monitor_control = 0
versioned_namespace = 0
vcl = 0
stl = 0
xsc = 0
-mcpp = 0
tao_idl_fe_gen = 0
+ace_svcconf_gen = 0
xerces = 0
xerces2 = 0
xerces3 = 0
ofccm = 0
+ndds = 0
+nddsmonitor = 0
+mcpp = 0
+wireshark = 0
+old_stdstream = 0
+exclude_inet = 0
+inet_ssl = 0
+coredx = 0
+dds4ccm_opendds = 0
+dds4ccm_ndds = 0
+dds4ccm_splice = 0
+dds4ccm_coredx = 0
+
// Features for various GUI libraries
// Some of features are switched on because they are also controlled
@@ -133,3 +147,10 @@ tao_no_iiop = 0
// Option to enable the linking of the TAO_CodecFactory library
// whenever TAO is linked in
link_codecfactory = 0
+
+// Feature for LwCCM
+ccm_lw = 1
+// Feature for CCM for disabling events.
+ccm_noevent = 0
+
+valuetype_out_indirection=1
diff --git a/ACE/bin/MakeProjectCreator/config/gnuace.features b/ACE/bin/MakeProjectCreator/config/gnuace.features
index 8fccc7fad7b..3c7f564fdab 100644
--- a/ACE/bin/MakeProjectCreator/config/gnuace.features
+++ b/ACE/bin/MakeProjectCreator/config/gnuace.features
@@ -1,10 +1,9 @@
// $Id$
ssl=1
-qt=1
+qt4=1
fl=1
tk=1
xt=1
-cidl=1
sctp=1
diff --git a/ACE/bin/MakeProjectCreator/config/inet.mpb b/ACE/bin/MakeProjectCreator/config/inet.mpb
new file mode 100644
index 00000000000..f7414e371a9
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/inet.mpb
@@ -0,0 +1,14 @@
+// -*- MPC -*-
+// $Id$
+
+project : acelib {
+ avoids += wince
+ avoids += old_stdstream
+ avoids += exclude_inet
+ avoids += ace_for_tao
+ avoids += corba_e_compact
+ after += INet
+ libs += ACE_INet
+ includes += $(ACE_ROOT)/protocols
+}
+
diff --git a/ACE/bin/MakeProjectCreator/config/inetssl.mpb b/ACE/bin/MakeProjectCreator/config/inetssl.mpb
new file mode 100644
index 00000000000..0c342dc42b8
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/inetssl.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : inet, ssl {
+ after += INet_SSL
+ libs += ACE_INet_SSL
+}
diff --git a/ACE/bin/MakeProjectCreator/config/install.mpb b/ACE/bin/MakeProjectCreator/config/install.mpb
index 7dee217a245..5011c26b21c 100644
--- a/ACE/bin/MakeProjectCreator/config/install.mpb
+++ b/ACE/bin/MakeProjectCreator/config/install.mpb
@@ -1,5 +1,5 @@
// -*- MPC -*-
// $Id$
-project : install_bin, install_lib, install_headers {
+project : install_bin, install_lib, install_headers, install_data {
}
diff --git a/ACE/bin/MakeProjectCreator/config/install_data.mpb b/ACE/bin/MakeProjectCreator/config/install_data.mpb
new file mode 100644
index 00000000000..3e6a1f23f2f
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/install_data.mpb
@@ -0,0 +1,12 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ // With gnuace, when install_this_target = 1 (see install_bin or install_lib)
+ // files listed as InstallData_Files { ... } will be installed to the "data"
+ // location for the system (such as /usr/local/share/INST_DIR).
+ // The target sub-directory can be modified by setting MPC's "gendir" option.
+ Define_Custom(InstallData) {
+ automatic = 0
+ }
+}
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/mc_test_utils.mpb b/ACE/bin/MakeProjectCreator/config/mc_test_utils.mpb
new file mode 100644
index 00000000000..af7e652a6f9
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/mc_test_utils.mpb
@@ -0,0 +1,7 @@
+// $Id$
+project {
+ includes += ../../.. //TODO: support for ^(HERE) variable expansion
+ libpaths += ..
+ after += MC_Test_Utilities
+ libs += MC_Test_Utilities
+}
diff --git a/ACE/bin/MakeProjectCreator/config/nmake.features b/ACE/bin/MakeProjectCreator/config/nmake.features
index 16181dc6293..8d442a15983 100644
--- a/ACE/bin/MakeProjectCreator/config/nmake.features
+++ b/ACE/bin/MakeProjectCreator/config/nmake.features
@@ -2,6 +2,5 @@
ssl=0
qos=1
-cidl=0
rwho=0
sctp=0
diff --git a/ACE/bin/MakeProjectCreator/config/pkgconfig.mpb b/ACE/bin/MakeProjectCreator/config/pkgconfig.mpb
index e48f56242b6..075c91932cd 100644
--- a/ACE/bin/MakeProjectCreator/config/pkgconfig.mpb
+++ b/ACE/bin/MakeProjectCreator/config/pkgconfig.mpb
@@ -3,7 +3,6 @@
project {
Define_Custom(pkgconfig) {
- automatic = 0
- inputext = .in
+ inputext = .pc.in
}
}
diff --git a/ACE/bin/MakeProjectCreator/config/tmcast.mpb b/ACE/bin/MakeProjectCreator/config/tmcast.mpb
index 4283f27902f..cfe9bed22aa 100644
--- a/ACE/bin/MakeProjectCreator/config/tmcast.mpb
+++ b/ACE/bin/MakeProjectCreator/config/tmcast.mpb
@@ -1,7 +1,7 @@
// -*- MPC -*-
// $Id$
-project: acelib, exceptions, threads {
+project: acelib, threads {
avoids += ace_for_tao
after += TMCast
libs += ACE_TMCast
diff --git a/ACE/bin/MakeProjectCreator/config/vc10.features b/ACE/bin/MakeProjectCreator/config/vc10.features
new file mode 100644
index 00000000000..8d442a15983
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/vc10.features
@@ -0,0 +1,6 @@
+// $Id$
+
+ssl=0
+qos=1
+rwho=0
+sctp=0
diff --git a/ACE/bin/MakeProjectCreator/config/vc10nmake.mpb b/ACE/bin/MakeProjectCreator/config/vc10nmake.mpb
new file mode 100644
index 00000000000..98e2d9ca3da
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/vc10nmake.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+}
+
diff --git a/ACE/bin/MakeProjectCreator/config/vc71.features b/ACE/bin/MakeProjectCreator/config/vc71.features
index 16181dc6293..8d442a15983 100644
--- a/ACE/bin/MakeProjectCreator/config/vc71.features
+++ b/ACE/bin/MakeProjectCreator/config/vc71.features
@@ -2,6 +2,5 @@
ssl=0
qos=1
-cidl=0
rwho=0
sctp=0
diff --git a/ACE/bin/MakeProjectCreator/config/vc8.features b/ACE/bin/MakeProjectCreator/config/vc8.features
index 16181dc6293..8d442a15983 100644
--- a/ACE/bin/MakeProjectCreator/config/vc8.features
+++ b/ACE/bin/MakeProjectCreator/config/vc8.features
@@ -2,6 +2,5 @@
ssl=0
qos=1
-cidl=0
rwho=0
sctp=0
diff --git a/ACE/bin/MakeProjectCreator/config/vc9.features b/ACE/bin/MakeProjectCreator/config/vc9.features
index 16181dc6293..8d442a15983 100644
--- a/ACE/bin/MakeProjectCreator/config/vc9.features
+++ b/ACE/bin/MakeProjectCreator/config/vc9.features
@@ -2,6 +2,5 @@
ssl=0
qos=1
-cidl=0
rwho=0
sctp=0
diff --git a/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb b/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb
index 3e8ae307f7d..e892bf1a9e5 100644
--- a/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb
+++ b/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb
@@ -10,22 +10,19 @@
feature(vc_avoid_crt_secure_warnings) {
- specific(vc8, vc9, vc10, nmake) {
+ specific(prop:microsoft) {
macros += _CRT_SECURE_NO_WARNINGS _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}
}
feature(!vc_scl_secure_warnings) {
- specific(vc8, vc9, vc10, nmake) {
+ specific(prop:microsoft) {
macros += _SCL_SECURE_NO_WARNINGS
}
}
feature(vc_avoid_this_in_initializer_warnings) {
- specific(vc8, vc9, vc10) {
+ specific(prop:microsoft) {
DisableSpecificWarnings += 4355
}
- specific(nmake) {
- compile_flags += /wd4355
- }
}
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/config/wb26.features b/ACE/bin/MakeProjectCreator/config/wb26.features
new file mode 100644
index 00000000000..46dfdb183d3
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/wb26.features
@@ -0,0 +1,4 @@
+// $Id$
+
+// We're always cross-compiling with wb26
+cross_compile = 1
diff --git a/ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm b/ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm
index 47ef47cb3d2..635cd48bb7d 100644
--- a/ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm
+++ b/ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm
@@ -64,11 +64,16 @@ sub fill_value {
return ((defined $incs && $incs =~ /ciao/i) ||
(defined $libs && $libs =~ /ciao/i));
}
- elsif ($name eq 'dds') {
+ elsif ($name eq 'dance') {
my($incs) = $self->get_assignment('includes');
my($libs) = $self->get_assignment('libpaths');
- return ((defined $incs && $incs =~ /dds/i) ||
- (defined $libs && $libs =~ /dds/i));
+ return ((defined $incs && $incs =~ /DAnCE/i) ||
+ (defined $libs && $libs =~ /DAnCE/i));
+ }
+ elsif ($name eq 'genins') {
+ my $ins = '';
+ $self->get_install_info(sub { $ins .= '#' . $_[0] });
+ return $ins;
}
return undef;
diff --git a/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm b/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
index 45a8c37dcca..5f9e5e5d772 100644
--- a/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
+++ b/ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
@@ -57,8 +57,8 @@ sub pre_workspace {
print $fh 'MAKEFILE = ', $self->get_modified_workspace_name($base, '', 1),
$crlf;
}
-
-
+
+
sub write_project_targets {
my($self) = shift;
my($fh) = shift;
@@ -69,7 +69,7 @@ sub write_project_targets {
foreach my $project (@$list) {
my($dname) = $self->mpc_dirname($project);
my($chdir) = ($dname ne '.');
- print $fh "\t\@",
+ print $fh "\t\$(KEEP_GOING)\@",
($chdir ? "cd $dname && " : ''),
"\$(MAKE) -f ",
($chdir ? $self->mpc_basename($project) : $project),
@@ -99,7 +99,7 @@ sub write_comps {
if ($named) {
$self->write_named_targets($fh, $crlf, \%targnum, \@list,
'REMAINING_TARGETS := ' .
- '$(subst all, , $(TARGETS_NESTED:.nested=)) $(CUSTOM_TARGETS)' .
+ '$(filter-out all,$(TARGETS_NESTED:.nested=)) $(CUSTOM_TARGETS)' .
"$crlf$crlf\$(REMAINING_TARGETS)", '', '',
$self->project_target_translation(1), 1);
}
diff --git a/ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm b/ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm
index faf10e6277f..7f29c927088 100644
--- a/ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm
+++ b/ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm
@@ -1,7 +1,7 @@
package GNUAutobuildWorkspaceCreator;
# ************************************************************
-# Description : A GNU Workspace (GNUmakefile) creator that
+# Description : A GNU Workspace (GNUmakefile) creator that
# collates build results for a single makefile
# before outputting to stdout.
# Author : Chad Elliott, minor modifications by Will Otte
@@ -34,19 +34,19 @@ my($base) = 'GNUmakefile';
sub extractType {
return 'gnuace';
}
-
+
sub write_project_targets {
my($self) = shift;
my($fh) = shift;
my($crlf) = shift;
my($target) = shift;
my($list) = shift;
-
+
foreach my $project (@$list) {
my($dname) = $self->mpc_dirname($project);
my($chdir) = ($dname ne '.');
my($output_project) = ($chdir ? $self->mpc_basename($project) : $project);
-
+
print $fh "\t\@",
($chdir ? "cd $dname && " : ''),
"\$(MAKE) -f ",
diff --git a/ACE/bin/MakeProjectCreator/templates/gnu.mpd b/ACE/bin/MakeProjectCreator/templates/gnu.mpd
index 656145b8eba..6a66e2993a8 100644
--- a/ACE/bin/MakeProjectCreator/templates/gnu.mpd
+++ b/ACE/bin/MakeProjectCreator/templates/gnu.mpd
@@ -16,9 +16,10 @@ DEPENDENCY_FILE = .depend.<%project_name%>
<%if(exename)%>
BIN_UNCHECKED = <%exename%>
<%endif%>
-<%if(staticname || sharedname)%>
LIB_PREFIX ?= lib
+<%if(need_staticflags)%>
+static_libs_only ?= 1
<%endif%>
<%if(staticname)%>
@@ -36,12 +37,15 @@ static_libs_only = 1
SHLIB_UNCHECKED = $(LIB_PREFIX)<%libname_prefix%><%sharedname%>.$(SOEXT)
SHLIB = $(SHLIB_UNCHECKED)
<%endif%>
-<%if(tao || ciao)%>
+<%if(tao || ciao || dance)%>
TAO_ROOT ?= $(ACE_ROOT)/TAO
<%if(ciao)%>
CIAO_ROOT ?= $(TAO_ROOT)/CIAO
<%endif%>
+<%if(dance)%>
+DANCE_ROOT ?= $(TAO_ROOT)/DAnCE
+<%endif%>
<%endif%>
<%if(grouped_source_files)%>
@@ -86,16 +90,7 @@ TAO_IDL = <%tao_idl%>
TAO_IDL_DEP = <%tao_idl_dep%>$(EXEEXT)
<%endif%>
<%if(tao_idlflags)%>
-TAO_IDLFLAGS = <%tao_idlflags%>
-<%endif%>
-<%if(cidlc)%>
-CIDLC = <%cidlc%>
-<%endif%>
-<%if(cidlc_dep)%>
-CIDLC_DEP = <%cidlc_dep%>$(EXEEXT)
-<%endif%>
-<%if(cidlc_flags)%>
-CIDLC_FLAGS = <%cidlc_flags%>
+TAO_IDLFLAGS = <%tao_idlflags%><%if(!compares(vms_old_make, 1))%>$(if $(ARCH), -g $(call ADD_QUOTE,$(call ADD_ARCH,$(ACE_ROOT)/bin/ace_gperf)))<%endif%>
<%endif%>
<%if(xsc_bin)%>
XSC_BIN = <%xsc_bin%>
@@ -112,6 +107,12 @@ TAO_IDL3_TO_IDL2 = <%tao_idl3_to_idl2%>
<%if(tao_idl3_to_idl2_dep)%>
TAO_IDL3_TO_IDL2_DEP = <%tao_idl3_to_idl2_dep%>$(EXEEXT)
<%endif%>
+<%if(tao_idl3_to_xmi)%>
+TAO_IDL3_TO_XMI = <%tao_idl3_to_xmi%>
+<%endif%>
+<%if(tao_idl3_to_xmi_dep)%>
+TAO_IDL3_TO_XMI_DEP = <%tao_idl3_to_xmi_dep%>$(EXEEXT)
+<%endif%>
<%if(exename)%>
PRJ_TYPE = rtp
@@ -121,7 +122,8 @@ PRJ_TYPE = library
<%if(exename)%>
<%if(install)%>
-INSBIN ?= <%install%>
+COLLAPSE_SLASHES = $(if $(findstring //,$(1)),$(call COLLAPSE_SLASHES,$(subst //,/,$(1))),$(1))
+INSBIN ?= <%if(compares(vms_old_make, 1))%><%install%><%else%>$(call COLLAPSE_SLASHES,<%install%>)<%endif%>
<%endif%>
ifeq ($(INSBIN),.)
ifeq ($(CURDIR),)
@@ -139,10 +141,15 @@ else
endif
<%endif%>
endif
-OUTPUT_DIRECTORY = $(INSBIN)
+<%if(install)%>
+OUTPUT_DIRECTORY = $(if $(ARCH),$(if $(INSBIN),$(INSBIN)/$(ARCH)),$(INSBIN))
+<%else%>
+OUTPUT_DIRECTORY = $(if $(ARCH),./$(ARCH))
+<%endif%>
<%else%>
<%if(dllout || libout)%>
-INSLIB ?= <%if(dllout)%><%dllout%><%else%><%libout%><%endif%>
+COLLAPSE_SLASHES = $(if $(findstring //,$(1)),$(call COLLAPSE_SLASHES,$(subst //,/,$(1))),$(1))
+INSLIB ?= <%if(compares(vms_old_make, 1))%><%if(dllout)%><%dllout%><%else%><%libout%><%endif%><%else%>$(call COLLAPSE_SLASHES,<%if(dllout)%><%dllout%><%else%><%libout%><%endif%>)<%endif%>
<%endif%>
ifeq ($(INSLIB),.)
ifeq ($(CURDIR),)
@@ -167,23 +174,24 @@ VSHDIR = <%targetoutdir%>.shobj/
<%endif%>
include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-<%if(!dds && version)%>
-
-ifeq ($(versioned_so),1)
- SOVERSION = .<%version%>
-endif # versioned_so
-<%endif%>
-<%if(dds)%>
-include $(DDS_ROOT)/rules.dds.GNU
-<%endif%>
+<%marker(extension)%>
<%if(ciao)%>
include $(CIAO_ROOT)/rules.ciao.GNU
<%endif%>
+<%if(dance)%>
+include $(DANCE_ROOT)/rules.dance.GNU
+<%endif%>
<%if(tao)%>
include $(TAO_ROOT)/rules.tao.GNU
<%endif%>
+<%if(version)%>
+GNUACE_PROJECT_VERSION = <%version%>
+<%else%>
+GNUACE_PROJECT_VERSION ?= $(ACE_VERSION)
+<%endif%>
+
<%if(resource_files)%>
ifneq (,$(RC))
RESOURCES += \
@@ -210,9 +218,10 @@ all: $(TEMPINCDIR)
endif
ifneq ($(OUTPUT_DIRECTORY),)
-all: $(OUTPUT_DIRECTORY)
-$(OUTPUT_DIRECTORY):
- -@$(MKDIR) "$(OUTPUT_DIRECTORY)"
+.PHONY: create_output_directory.local
+all: create_output_directory.local
+create_output_directory.local:
+ -@$(MKDIR) "$(OUTPUT_DIRECTORY)" $(ACE_NUL_STDERR)
endif
<%if(sharedname || staticname || exename)%>
@@ -225,7 +234,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%> $(if $(ARCH),<%libpath%>/$(ARCH)) <%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
@@ -350,6 +359,9 @@ ifneq ($(<%avoid%>),1)
<%endfor%>
ifeq ($(LIBCHECK), 1)
BIN = $(BIN_UNCHECKED)$(EXEEXT)
+ifdef ARCH
+ ARCH_BIN = $(ARCH)/$(BIN)
+endif #ARCH
else
all: lib_warning
endif
@@ -378,10 +390,10 @@ include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
<%if(exename)%>
-ifneq ($(OUTPUT_DIRECTORY),)
-ifneq ($(OUTPUT_DIRECTORY),.)
+ifneq ($(INSBIN),)
+ifneq ($(INSBIN),.)
INSTALL = $(VBIN:%=$(INSBIN)/%)
- CLEANUP_INSTALL += $(CLEANUP_BIN:%=$(INSBIN)/%$(VAR)$(EXEEXT))
+ CLEANUP_INSTALL += $(CLEANUP_BIN:%=$(INSBIN)/$(if $(ARCH),$(ARCH)/)%$(VAR)$(EXEEXT))
endif
endif
@@ -444,7 +456,7 @@ endif
ifeq ($(VXWORKSLINK),1)
LDLIBPATH =<%foreach(libpaths)%> <%if(targetoutdir)%>-L<%libpath%>/<%targetoutdir%> <%endif%>-L<%libpath%><%endfor%><%if(linkflags)%> <%linkflags%><%endif%>
else
-LDFLAGS +=<%foreach(libpaths)%> <%if(targetoutdir)%>-L<%libpath%>/<%targetoutdir%> <%endif%>-L<%libpath%><%endfor%><%if(linkflags)%> <%linkflags%><%endif%>
+LDFLAGS +=<%foreach(libpaths)%> <%if(targetoutdir)%>-L<%libpath%>/<%targetoutdir%> <%endif%>-L<%libpath%> $(if $(ARCH),-L<%libpath%>/$(ARCH))<%endfor%><%if(linkflags)%> <%linkflags%><%endif%>
endif
<%endif%>
<%if(includes)%>
@@ -481,19 +493,26 @@ endif
#----------------------------------------------------------------------------
<%marker(local)%>
lib_warning:
- @echo <%project_name%> will not be built due to the following missing library:
- @echo $(LIBCHECK)
+ @echo <%project_name%> will not be built due to the following missing library: $(LIBCHECK) >&2
<%if(requires)%>
+<%foreach(requires)%>
+ifneq ($(<%require%>),1)
+requires_disabled_macros += <%require%>
+endif
+<%endfor%>
require_warning:
- @echo <%project_name%> will not be built due to one of the following disabled make macros:
- @echo<%foreach(requires)%> <%require%><%endfor%>
+ @echo <%project_name%> will not be built due to the following disabled make macros: $(requires_disabled_macros)>&2
<%endif%>
<%if(avoids)%>
+<%foreach(avoids)%>
+ifeq ($(<%avoid%>),1)
+avoids_enabled_macros += <%avoid%>
+endif
+<%endfor%>
avoid_warning:
- @echo <%project_name%> will not be built due to one of the following enabled make macros:
- @echo<%foreach(avoids)%> <%avoid%><%endfor%>
+ @echo <%project_name%> will not be built due to the following enabled make macros: $(avoids_enabled_macros)>&2
<%endif%>
<%if(custom_types)%>
@@ -506,13 +525,14 @@ ifeq ($(wildcard /usr/bin/test), /usr/bin/test)
endif
endif
+SPACE = $(should_be_unset) $(should_be_unset)
<%foreach(custom_types)%>
<%if(custom_type->libpath)%>
-DYLD_LIBRARY_PATH := $(DYLD_LIBRARY_PATH):<%custom_type->libpath%>
-LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):<%custom_type->libpath%>
-SHLIB_PATH := $(SHLIB_PATH):<%custom_type->libpath%>
-LIBPATH := $(LIBPATH):<%custom_type->libpath%>
-PATH := $(PATH):<%custom_type->libpath%>
+DYLD_LIBRARY_PATH := $(DYLD_LIBRARY_PATH):<%custom_type->libpath%>$(if $(ARCH),:<%custom_type->libpath%>/$(ARCH))
+LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):<%custom_type->libpath%>$(if $(ARCH),:<%custom_type->libpath%>/$(ARCH))
+SHLIB_PATH := $(SHLIB_PATH):<%custom_type->libpath%>$(if $(ARCH),:<%custom_type->libpath%>/$(ARCH))
+LIBPATH := $(LIBPATH):<%custom_type->libpath%>$(if $(ARCH),:<%custom_type->libpath%>/$(ARCH))
+PATH := $(PATH):<%custom_type->libpath%>$(if $(ARCH),:<%custom_type->libpath%>/$(ARCH))
<%endif%>
<%foreach(custom_type->input_files)%>
@@ -534,28 +554,17 @@ ifeq ($(wildcard $(GENERATED_DIRTY)), $(GENERATED_DIRTY))
## If all of the generated files are there, then we need to check
## and make sure that the generated files are up-to-date. If they are not
## then we need the special rule.
- ifneq ($(shell<%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) <%custom_type->input_file%> -nt <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%> 2> /dev/null &&<%endfor%> echo 0),)
+ ifeq ($(shell<%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) "<%custom_type->input_file%>" -nt "<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%>" 2> /dev/null ||<%endfor%> echo 0),)
.NOTPARALLEL:
-<%if(flag_overrides(custom_type->input_file, dependent))%>
+<%if(flag_overrides(custom_type->input_file, dependent) || custom_type->dependent || flag_overrides(custom_type->input_file, dependent_libs) || custom_type->dependent_libs)%>
else
## By this point, all of the generated files are here and up-to-date
## with respect to the source file. Now we need to make sure that
## they are up-to-date with respect to the generation tool. If the tool
## is newer than the generated files, then we need the special rule.
- ifneq ($(shell<%foreach(dep, flag_overrides(custom_type->input_file, dependent))%><%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) <%dep%> -nt <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%> 2> /dev/null &&<%endfor%><%endfor%> echo 0),)
+ ifeq ($(shell<%if(flag_overrides(custom_type->input_file, dependent))%><%foreach(dep, flag_overrides(custom_type->input_file, dependent))%><%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) "<%if(compares(vms_old_make, 1))%><%dep%><%else%>$(call ADD_ARCH,<%dep%>)<%endif%>" -nt "<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%>" 2> /dev/null ||<%endfor%><%endfor%><%else%><%if(custom_type->dependent)%><%foreach(custom_type->dependent)%><%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) "<%if(compares(vms_old_make, 1))%><%custom_type->dependent%><%else%>$(call ADD_ARCH,<%custom_type->dependent%>)<%endif%>" -nt "<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%>" 2> /dev/null ||<%endfor%><%endfor%><%endif%><%endif%><%if(flag_overrides(custom_type->input_file, dependent_libs))%><%foreach(dep_lib, flag_overrides(custom_type->input_file, dependent_libs))%><%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) "<%if(compares(vms_old_make, 1))%><%dirname(dep_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(dep_lib)%>.$(SOEXT)<%else%>$(call ADD_ARCH,<%dirname(dep_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(dep_lib)%>.$(SOEXT))<%endif%>" -nt "<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%>" 2> /dev/null ||<%endfor%><%endfor%><%else%><%if(custom_type->dependent_libs)%><%foreach(custom_type->dependent_libs)%><%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) "<%if(compares(vms_old_make, 1))%><%dirname(custom_type->dependent_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(custom_type->dependent_lib)%>.$(SOEXT)<%else%>$(call ADD_ARCH,<%dirname(custom_type->dependent_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(custom_type->dependent_lib)%>.$(SOEXT))<%endif%>" -nt "<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%>" 2> /dev/null ||<%endfor%><%endfor%><%endif%><%endif%> echo 0),)
.NOTPARALLEL:
endif
-<%else%>
-<%if(custom_type->dependent)%>
- else
- ## By this point, all of the generated files are here and up-to-date
- ## with respect to the source file. Now we need to make sure that
- ## they are up-to-date with respect to the generation tool. If the tool
- ## is newer than the generated files, then we need the special rule.
- ifneq ($(shell<%foreach(custom_type->dependent)%><%foreach(custom_type->input_file->output_files)%> $(TEST_EXE) <%custom_type->dependent%> -nt <%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>/<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%> 2> /dev/null &&<%endfor%><%endfor%> echo 0),)
- .NOTPARALLEL:
- endif
-<%endif%>
<%endif%>
endif
else
@@ -566,13 +575,13 @@ else
endif
<%endif%>
<%endfor%>
-<%foreach(custom_type->input_file->output_files)%><%if(flag_overrides(custom_type->input_file, gendir))%><%if(!compares(flag_overrides(custom_type->input_file, gendir),.))%><%flag_overrides(custom_type->input_file, gendir)%>/<%endif%><%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%><%fornotlast(" ")%><%endfor%>: <%custom_type->input_file%><%if(custom_type->input_file->dependencies)%> <%custom_type->input_file->dependencies%><%endif%><%if(flag_overrides(custom_type->input_file, dependent))%> <%flag_overrides(custom_type->input_file, dependent)%><%else%><%if(custom_type->dependent)%> <%custom_type->dependent%><%endif%><%endif%>
+<%foreach(custom_type->input_file->output_files)%><%if(flag_overrides(custom_type->input_file, gendir))%><%if(!compares(flag_overrides(custom_type->input_file, gendir),.))%><%flag_overrides(custom_type->input_file, gendir)%>/<%endif%><%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%><%fornotlast(" ")%><%endfor%>: <%custom_type->input_file%><%if(custom_type->input_file->dependencies)%><%foreach(custom_type->input_file->dependencies)%> <%if(contains(custom_type->input_file->dependencie, [\s\$]))%>$(subst $(SPACE),\$(SPACE),<%custom_type->input_file->dependencie%>)<%else%><%custom_type->input_file->dependencie%><%endif%><%endfor%><%endif%><%if(flag_overrides(custom_type->input_file, dependent))%><%foreach(dep, flag_overrides(custom_type->input_file, dependent))%> <%if(contains(dep, [\s\$]))%>$(subst $(SPACE),\$(SPACE),<%if(compares(vms_old_make, 1))%><%dep%><%else%>$(call ADD_ARCH,<%dep%>)<%endif%>)<%else%><%if(compares(vms_old_make, 1))%><%dep%><%else%>$(call ADD_ARCH,<%dep%>)<%endif%><%endif%><%endfor%><%else%><%if(custom_type->dependent)%><%foreach(custom_type->dependent)%> <%if(contains(custom_type->dependent, [\s\$]))%>$(subst $(SPACE),\$(SPACE),<%if(compares(vms_old_make, 1))%><%custom_type->dependent%><%else%>$(call ADD_ARCH,<%custom_type->dependent%>)<%endif%>)<%else%><%if(compares(vms_old_make, 1))%><%custom_type->dependent%><%else%>$(call ADD_ARCH,<%custom_type->dependent%>)<%endif%><%endif%><%endfor%><%endif%><%endif%>
<%if(flag_overrides(custom_type->input_file, gendir))%>
<%if(!compares(flag_overrides(custom_type->input_file, gendir),.))%>
$(MKDIR) <%flag_overrides(custom_type->input_file, gendir)%>
<%endif%>
<%endif%>
- <%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%> <%if(flag_overrides(custom_type->input_file, commandflags))%><%flag_overrides(custom_type->input_file, commandflags)%><%else%><%custom_type->commandflags%><%endif%> <%if(custom_type->output_option)%><%custom_type->input_file%> <%custom_type->output_option%> $@<%else%><%custom_type->input_file%><%endif%>
+ <%if(compares(vms_old_make, 1))%><%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%><%else%>$(if $(findstring ",<%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%>),<%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%>,$(call ADD_QUOTE,$(call ADD_ARCH,<%if(flag_overrides(custom_type->input_file, command))%><%flag_overrides(custom_type->input_file, command)%><%else%><%custom_type->command%><%endif%>)))<%endif%> <%if(flag_overrides(custom_type->input_file, commandflags))%><%flag_overrides(custom_type->input_file, commandflags)%><%else%><%custom_type->commandflags%><%endif%> <%if(custom_type->output_option)%><%custom_type->input_file%> <%custom_type->output_option%> $@<%else%><%custom_type->input_file%><%endif%>
<%if(flag_overrides(custom_type->input_file, postcommand))%>
<%foreach(custom_type->input_file)%>
<%flag_overrides(custom_type->input_file, postcommand)%>
@@ -592,6 +601,14 @@ endif
<%endif%>
<%endif%>
+<%if(flag_overrides(custom_type->input_file, dependent_libs) || custom_type->dependent_libs)%>
+ifneq ($(static_libs_only),1)
+ifneq ($(CROSS-COMPILE),1)
+<%foreach(custom_type->input_file->output_files)%><%if(flag_overrides(custom_type->input_file, gendir))%><%if(!compares(flag_overrides(custom_type->input_file, gendir),.))%><%flag_overrides(custom_type->input_file, gendir)%>/<%endif%><%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%><%fornotlast(" ")%><%endfor%>:<%if(flag_overrides(custom_type->input_file, dependent_libs))%><%foreach(dep_lib, flag_overrides(custom_type->input_file, dependent_libs))%> <%if(contains(dep_lib, [\s\$]))%>$(subst $(SPACE),\$(SPACE),<%if(compares(vms_old_make, 1))%><%dirname(dep_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(dep_lib)%>.$(SOEXT)<%else%>$(call ADD_ARCH,<%dirname(dep_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(dep_lib)%>.$(SOEXT))<%endif%>)<%else%><%if(compares(vms_old_make, 1))%><%dirname(dep_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(dep_lib)%>.$(SOEXT)<%else%>$(call ADD_ARCH,<%dirname(dep_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(dep_lib)%>.$(SOEXT))<%endif%><%endif%><%endfor%><%else%><%if(custom_type->dependent_libs)%><%foreach(custom_type->dependent_libs)%> <%if(contains(custom_type->dependent_lib, [\s\$]))%>$(subst $(SPACE),\$(SPACE),<%if(compares(vms_old_make, 1))%><%dirname(custom_type->dependent_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(custom_type->dependent_lib)%>.$(SOEXT)<%else%>$(call ADD_ARCH,<%dirname(custom_type->dependent_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(custom_type->dependent_lib)%>.$(SOEXT))<%endif%>)<%else%><%if(compares(vms_old_make, 1))%><%dirname(custom_type->dependent_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(custom_type->dependent_lib)%>.$(SOEXT)<%else%>$(call ADD_ARCH,<%dirname(custom_type->dependent_lib)%>/$(LIB_PREFIX)<%libname_prefix%><%basename(custom_type->dependent_lib)%>.$(SOEXT))<%endif%><%endif%><%endfor%><%endif%><%endif%>
+endif
+endif
+<%endif%>
+
<%endif%>
<%endfor%>
<%endfor%>
@@ -652,12 +669,12 @@ ifneq ($(VXWORKSLINK),1)
<%if(libs && libpaths)%>
ifeq ($(static_libs_only), 1)
ifeq ($(use_dep_libs), 1)
- DEPLIBS = $(foreach lib,<%foreach(libs)%> <%libname_prefix%><%lib%><%endfor%> <%lit_libs%>, $(foreach libpath,<%foreach(libpaths)%><%if(targetoutdir)%> <%libpath%>/<%targetoutdir%><%endif%> <%libpath%><%endfor%>, $(wildcard $(libpath)/lib$(lib).a)))
+ DEPLIBS = $(foreach lib,<%foreach(libs)%> <%libname_prefix%><%lib%><%endfor%> <%lit_libs%>, $(foreach libpath,<%foreach(libpaths)%><%if(targetoutdir)%> <%libpath%>/<%targetoutdir%><%endif%> <%libpath%><%endfor%>, $(wildcard $(libpath)/$(LIB_PREFIX)$(lib).$(LIBEXT))))
endif
endif
<%endif%>
-$(BIN): $(addprefix $(VDIR), $(OBJS)) $(DEPLIBS)
+$(VBIN): $(addprefix $(VDIR), $(OBJS)) $(DEPLIBS)
ifneq (,$(LINK.cc.override))
$(LINK.cc.override)
else
@@ -675,17 +692,129 @@ endif
<%endif%>
__prebuild__:
+<%foreach(requires)%>
+ifeq ($(<%require%>),1)
+<%endfor%>
+<%foreach(avoids)%>
+ifneq ($(<%avoid%>),1)
+<%endfor%>
<%if(prebuild)%>
@<%eval(prebuild)%>
<%else%>
@-:
<%endif%>
+<%foreach(avoids requires)%>
+endif
+<%endfor%>
<%if(postbuild)%>
all: __postbuild__
__postbuild__:
+<%foreach(requires)%>
+ifeq ($(<%require%>),1)
+<%endfor%>
+<%foreach(avoids)%>
+ifneq ($(<%avoid%>),1)
+<%endfor%>
@<%eval(postbuild)%>
+<%foreach(avoids requires)%>
+endif
+<%endfor%>
+
+<%endif%>
+
+.PHONY: install
+install: <%if(postbuild)%>__postbuild__<%else%>all<%endif%>
+INSTALL_LIB ?= lib
+ifneq ($(INSTALL_PREFIX),)
+ifneq ($(install_rpath),0)
+LDFLAGS += -Wl,-R$(INSTALL_PREFIX)/$(INSTALL_LIB) $(LD_RPATH_FLAGS)
+endif
+endif
+
+<%if(install_this_target)%>
+PRJINST_OPTIONS ?=
+INST_DIR ?= <%if(install_dir)%>/<%install_dir%><%else%>/$(notdir $(PWD))<%endif%>
+COMMA = ,
+SPACE = $(should_be_unset) $(should_be_unset)
+INSTALLER ?= $(MPC_ROOT)/prj_install.pl
+CUSTOM_INST_TAGS = $(sort <%custom_install%> <%foreach(custom_types)%><%foreach(custom_type->input_files)%><%if(custom_type->input_file->output_files)%><%custom_type%> <%endif%><%endfor%><%endfor%>)
+
+<%if(staticname || sharedname)%>
+<%if(install_headers)%>
+LIB_INST_TAGS = header_files template_files$(if $(findstring 1,$(inline)), inline_files)$(if $(CUSTOM_INST_TAGS), $(CUSTOM_INST_TAGS))
+LIB_INST_LOCATIONS = $(foreach tag,$(LIB_INST_TAGS),-b $(tag)=include$(INST_DIR))
+
+<%else%>
+ifeq ($(shared_libs),1)
+<%endif%>
+INST_TAGS = lib_output$(if $(LIB_INST_TAGS), $(LIB_INST_TAGS))
+INST_LOCATIONS = $(LIB_INST_LOCATIONS) -o lib_output=$(INSTALL_LIB)
+<%if(!install_headers)%>
+endif
+<%endif%>
+
+<%else%>
+<%if(exename)%>
+INST_TAGS = exe_output
+INST_LOCATIONS = -o exe_output=bin
+
+<%else%>
+INST_TAGS = $(CUSTOM_INST_TAGS)<%if(custom_inst_tags)%> <%custom_inst_tags%><%endif%>
+INST_LOCATIONS = $(foreach tag,$(INST_TAGS),-b $(tag)=include$(INST_DIR))
<%endif%>
+<%endif%>
+DATA_INST_TAGS = <%foreach(custom_types)%><%if(compares(custom_type, installdata_files))%><%if(custom_type->input_files)%>installdata_files<%endif%><%endif%><%endfor%>
+INST_LOCATIONS += $(if $(DATA_INST_TAGS),-x installdata_files -b installdata_files=share$(INST_DIR))
+INST_TAGS := $(INST_TAGS)$(if $(DATA_INST_TAGS), $(DATA_INST_TAGS))
+
+ifeq ($(INSTALLER),/prj_install.pl)
+INSTALLER = $(ACE_ROOT)/MPC/prj_install.pl
+endif
+
+ifeq ($(LIBCHECK),1)
+<%foreach(requires)%>
+ifeq ($(<%require%>),1)
+<%endfor%>
+<%foreach(avoids)%>
+ifneq ($(<%avoid%>),1)
+<%endfor%>
+install:
+ifeq ($(INST_TAGS),)
+ @echo Nothing to install.
+else
+ifeq ($(INSTALL_PREFIX),)
+ @echo The variable INSTALL_PREFIX must be set to install.
+ @echo If binaries are already built and you want to use RPATH,
+ @echo they must be rebuilt after changing INSTALL_PREFIX.
+ @false
+else
+ perl -ne'if (/^#END MPC-Generated Install Info/) {exit 0}' \
+ -e'elsif (/^#BEGIN MPC-Generated Install Info/) {$$ok=1}' \
+ -e'elsif ($$ok && s/^#//) {print}' $(MAKEFILE) | \
+ $(INSTALLER) -i -s $(subst $(SPACE),$(COMMA),$(INST_TAGS)) \
+ $(INST_LOCATIONS) $(if $(ARCH),-d $(ARCH)) $(PRJINST_OPTIONS) \
+ $(DESTDIR)$(INSTALL_PREFIX)
+<%foreach(custom_types)%>
+<%if(compares(custom_type, pkgconfig_files))%>
+<%if(custom_type->input_files)%>
+ $(ACE_ROOT)/bin/ace_install_pkgconfig.pl <%custom_type->input_files%> --destdir "$(DESTDIR)" --prefix $(INSTALL_PREFIX) --libdir $(INSTALL_LIB) --libs "$(LIBS)" --version $(GNUACE_PROJECT_VERSION)<%foreach(pkgconfig_variables)%> --custom "<%pkgconfig_variable%>"<%endfor%>
+<%endif%>
+<%endif%>
+<%endfor%>
+<%marker(postinstall)%>
+endif
+endif
+<%foreach(requires avoids)%>
+endif
+<%endfor%>
+endif
+
+#BEGIN MPC-Generated Install Info
+<%genins%>
+#END MPC-Generated Install Info
+<%endif%>
+
<%marker(bottom)%>
diff --git a/ACE/bin/PerlACE/MSProject.pm b/ACE/bin/PerlACE/MSProject.pm
index c25d3eb8259..b28fee50e11 100644
--- a/ACE/bin/PerlACE/MSProject.pm
+++ b/ACE/bin/PerlACE/MSProject.pm
@@ -200,34 +200,34 @@ sub LINKOptions ($)
print STDERR "Error: No configuration specified\n";
return;
}
-
- return %{$self->{CONFIGS}}->{$config}->{LINK};
+
+ return %{$self->{CONFIGS}}->{$config}->{LINK};
}
sub Libs($)
{
my $self = shift;
my $config = shift;
-
+
if (!defined $config) {
print STDERR "Error: No configuration specified\n";
return;
}
-
+
return %{$self->{CONFIGS}}->{$config}->{LIBS};
}
sub UsesTAOIDL ()
{
my $self = shift;
-
+
return $self->{TAOIDL};
}
sub Compiler ()
{
my $self = shift;
-
+
return $self->{COMPILER};
}
@@ -251,24 +251,24 @@ sub Load ()
while (<$fh>) {
if (m/^\#.*Project File - Name=\"([^\"]*)\"/) {
- $self->{NAME} = $1;
+ $self->{NAME} = $1;
}
-
+
if (m/^\#.*Format Version (.*)/) {
$self->{VERSION} = $1;
}
# Check for configurations
-
+
if (m/^\!.*IF \"\$\(CFG\)\" == \".* - (.*)$\"/) {
$config = $1;
}
elsif (m/^\!ENDIF$/) {
$config = "";
}
-
+
# Check for directories
-
+
if (m/\# PROP Output_Dir \"(.*)\"/) {
%{$self->{CONFIGS}}->{$config}->{OUTPUTDIR} = $1;
}
@@ -278,12 +278,12 @@ sub Load ()
elsif (m/\# PROP Target_Dir \"(.*)\"/) {
%{$self->{CONFIGS}}->{$config}->{TARGETDIR} = $1;
}
-
+
# Look at CPP options
-
+
if (m/\# ADD BASE CPP(.*)$/ || m/\# ADD CPP(.*)$/) {
my @flags = split (/ \//, $1);
-
+
foreach my $flag (@flags) {
if ($flag && %{$self->{CONFIGS}}->{$config}->{CPP} !~ m/$flag/) {
%{$self->{CONFIGS}}->{$config}->{CPP} .= " /$flag";
@@ -292,66 +292,66 @@ sub Load ()
}
elsif (m/\# SUBTRACT CPP(.*)$/ || m/\# SUBTRACT BASE CPP(.*)$/) {
my @flags = split (/ \//, $1);
-
+
foreach my $flag (@flags) {
if ($flag && %{$self->{CONFIGS}}->{$config}->{CPP} =~ m/$flag/) {
%{$self->{CONFIGS}}->{$config}->{CPP} =~ s/ \/$flag//g;
}
}
}
-
+
# Look at LINK32 options
-
- if (m/\# ADD BASE LINK32(.*)$/ || m/\# ADD LINK32(.*)$/
+
+ if (m/\# ADD BASE LINK32(.*)$/ || m/\# ADD LINK32(.*)$/
|| m/\# ADD BASE LIB32(.*)$/ || m/\# ADD LIB32(.*)$/) {
my @flags = split (/ \//, $1);
-
+
foreach my $flag (@flags) {
my $found = 0;
my @libs = split (/ /, $flag);
-
+
foreach my $lib (@libs) {
if ($lib =~ m/\.lib$/) {
if (%{$self->{CONFIGS}}->{$config}->{LIBS} !~ m/\Q$lib\E/) {
%{$self->{CONFIGS}}->{$config}->{LIBS} .= " $lib";
}
$found = 1;
- }
+ }
}
-
+
if (!$found && $flag) {
my $shortflag = $flag;
if ($flag =~ m/^(.*)\:/) {
$shortflag = $1;
}
-
+
if (%{$self->{CONFIGS}}->{$config}->{LINK} !~ m/ \/$shortflag/) {
%{$self->{CONFIGS}}->{$config}->{LINK} .= " /$flag";
}
}
}
}
- elsif (m/\# SUBTRACT BASE LINK32(.*)$/ || m/\# SUBTRACT LINK32(.*)$/
+ elsif (m/\# SUBTRACT BASE LINK32(.*)$/ || m/\# SUBTRACT LINK32(.*)$/
|| m/\# SUBTRACT BASE LIB32(.*)$/ || m/\# SUBTRACT LIB32(.*)$/) {
my @flags = split (/ \//, $1);
-
+
foreach my $flag (@flags) {
my $shortflag = $flag;
if ($flag =~ m/^(.*)\:/) {
$shortflag = $1;
}
-
+
if ($flag && %{$self->{CONFIGS}}->{$config}->{LINK} =~ m/ (\/$shortflag\:[^ ]*)/) {
%{$self->{CONFIGS}}->{$config}->{LINK} =~ s/ \Q$1\E//ig;
}
}
}
-
+
if (m/^\# Name \".* - (.*)\"/ && defined %{$self->{CONFIGS}}->{"Unknown"}) {
%{$self->{CONFIGS}}->{$1} = %{$self->{CONFIGS}}->{"Unknown"};
delete %{$self->{CONFIGS}}->{"Unknown"};
}
-
+
if (m/tao\_idl/ && m/\$\(InputName\)\.idl/ || m/tao\_idl/ && m/\$\(InputPath\)/) {
$self->{TAOIDL} = 1;
}
@@ -368,12 +368,12 @@ sub Build ($)
{
my $self = shift;
my ($config) = @_;
-
- my $command = $self->Compiler () . " " . $self->Filename ()
+
+ my $command = $self->Compiler () . " " . $self->Filename ()
. " /USEENV"
. " /MAKE \"" . $self->Name ()
. " - " . $config . "\"";
-
+
system $command;
}
@@ -381,12 +381,12 @@ sub Clean ($)
{
my $self = shift;
my ($config) = @_;
-
- my $command = $self->Compiler () . " " . $self->Filename ()
+
+ my $command = $self->Compiler () . " " . $self->Filename ()
. " /USEENV"
. " /MAKE \"" . $self->Name ()
. " - " . $config . "\" /CLEAN";
-
+
system $command;
}
diff --git a/ACE/bin/PerlACE/MSProject/DSP.pm b/ACE/bin/PerlACE/MSProject/DSP.pm
index b7ca0276a82..9f5b67f8087 100644
--- a/ACE/bin/PerlACE/MSProject/DSP.pm
+++ b/ACE/bin/PerlACE/MSProject/DSP.pm
@@ -11,12 +11,12 @@ our @ISA = ("PerlACE::MSProject");
# Constructor
-sub new
+sub new
{
my $proto = shift;
my $class = ref ($proto) || $proto;
my $self = $class->SUPER::new (@_);
-
+
$self->{COMPILER} = "msdev.com";
bless ($self, $class);
diff --git a/ACE/bin/PerlACE/MSProject/VCP.pm b/ACE/bin/PerlACE/MSProject/VCP.pm
index 8377d22788b..2e80a258b87 100644
--- a/ACE/bin/PerlACE/MSProject/VCP.pm
+++ b/ACE/bin/PerlACE/MSProject/VCP.pm
@@ -11,12 +11,12 @@ our @ISA = ("PerlACE::MSProject");
# Constructor
-sub new
+sub new
{
my $proto = shift;
my $class = ref ($proto) || $proto;
my $self = $class->SUPER::new (@_);
-
+
$self->{COMPILER} = "evc.com";
bless ($self, $class);
diff --git a/ACE/bin/PerlACE/ProcessLVRT.pm b/ACE/bin/PerlACE/ProcessLVRT.pm
index bae61141578..606c807001a 100644
--- a/ACE/bin/PerlACE/ProcessLVRT.pm
+++ b/ACE/bin/PerlACE/ProcessLVRT.pm
@@ -197,7 +197,7 @@ sub Spawn ()
}
print STDERR "ERROR: can't $cmdline: " . $reply . "\n";
$self->{TARGET}->{FTP}->delete($program);
- $self->{TARGET}->NeedReboot;
+ # Not unless can't get the response. $self->{TARGET}->NeedReboot;
return -1;
}
@@ -345,4 +345,13 @@ CHECK:
return -1;
}
+###
+
+sub kill_all
+{
+ my $procmask = shift;
+ my $target = shift;
+ ## NOT IMPLEMENTED YET
+}
+
1;
diff --git a/ACE/bin/PerlACE/ProcessVX.pm b/ACE/bin/PerlACE/ProcessVX.pm
index 389963991ea..852e77493da 100644
--- a/ACE/bin/PerlACE/ProcessVX.pm
+++ b/ACE/bin/PerlACE/ProcessVX.pm
@@ -130,6 +130,16 @@ sub IgnoreExeSubDir
return $self->{IGNOREEXESUBDIR};
}
+sub IgnoreHostRoot
+{
+ my $self = shift;
+
+ if (@_ != 0) {
+ $self->{IGNOREHOSTROOT} = shift;
+ }
+
+ return $self->{IGNOREHOSTROOT};
+}
sub delay_factor {
my($lps) = 128;
@@ -192,6 +202,8 @@ sub iboot_cycle_power {
if (defined($iboot_outlet) && defined($iboot_user) && defined($iboot_passwd)) {
# We perform case #3
+ # This case doesn't support shutdown
+ return if $mode == 1;
my $t = new Net::Telnet();
@@ -363,6 +375,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,14 +438,27 @@ for(my $i = 0; $i <= $#ARGV; ++$i) {
$PerlACE::ProcessVX::WAIT_DELAY_FACTOR = $ENV{"ACE_RUNTEST_DELAY"};
if (defined $ENV{'ACE_TEST_WINCE'}) {
- require PerlACE::ProcessWinCE;
+ if ($OSNAME eq "MSWin32") {
+ require PerlACE::ProcessWinCE;
+ } else {
+ require PerlACE::ProcessWinCE_Unix;
+ }
} else {
-if ($OSNAME eq "MSWin32") {
- require PerlACE::ProcessVX_Win32;
-}
-else {
- require PerlACE::ProcessVX_Unix;
+ if ($OSNAME eq "MSWin32") {
+ require PerlACE::ProcessVX_Win32;
+ }
+ else {
+ require PerlACE::ProcessVX_Unix;
+ }
}
+
+###
+
+sub kill_all
+{
+ my $procmask = shift;
+ my $target = shift;
+ ## NOT IMPLEMENTED YET
}
1;
diff --git a/ACE/bin/PerlACE/ProcessVX_Unix.pm b/ACE/bin/PerlACE/ProcessVX_Unix.pm
index 0f38566ff6b..3accc79b54b 100644
--- a/ACE/bin/PerlACE/ProcessVX_Unix.pm
+++ b/ACE/bin/PerlACE/ProcessVX_Unix.pm
@@ -50,10 +50,10 @@ sub new
$self->{RUNNING} = 0;
$self->{IGNOREEXESUBDIR} = 1;
+ $self->{IGNOREHOSTROOT} = 0;
$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;
}
@@ -82,6 +82,41 @@ sub DESTROY
###############################################################################
+# Use the "expect" program to invoke telnet, doesn't need Perl's Net::Telnet.
+# This is run by the child process which was forked from Spawn().
+sub expect_telnet
+{
+ my($host, $port, $prompt, $cmdsRef) = @_;
+ my $pid = open(EXP, "|expect -f -") or die "ERROR: Could not run 'expect'";
+ $SIG{'TERM'} = sub { # If the parent wants to Kill() this process,
+ kill 'TERM', $pid; # send a SIGTERM to the expect process and
+ $SIG{'TERM'} = 'DEFAULT'; # then go back to the normal handler for TERM
+ kill 'TERM', $$; # and invoke it.
+ };
+ print EXP <<EOT;
+set timeout -1
+spawn telnet $host $port
+expect -re "$prompt"
+EOT
+ # target login and password are not currently implemented
+ for my $cmd (@$cmdsRef) {
+ my $cmdEsc = $cmd;
+ $cmdEsc =~ s/\"/\\\"/g; # escape quotes
+ print EXP <<EOT;
+send "$cmdEsc\r"
+expect -re "$prompt"
+EOT
+ }
+ print EXP <<EOT;
+send "exit\r"
+expect -re "Au revoir!"
+exit 0
+EOT
+ close EXP;
+ waitpid $pid, 0;
+}
+
+
# Spawn the process and continue.
sub Spawn ()
@@ -115,14 +150,11 @@ sub Spawn ()
$self->reboot();
my $program = $self->Executable ();
- my $cwdrel = dirname ($program);
+ my $exe_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 );
- }
+ $exe_cwdrel = cwd() if length ($exe_cwdrel) == 0;
+ $exe_cwdrel = File::Spec->abs2rel($exe_cwdrel, $prjroot);
+ my $cwdrel = File::Spec->abs2rel(cwd(), $prjroot);
$program = basename($program, $PerlACE::ProcessVX::ExeExt);
my @cmds;
@@ -171,6 +203,15 @@ sub Spawn ()
if (defined $ENV{'ACE_RUN_ACE_LD_SEARCH_PATH'}) {
@cmds[$cmdnr++] = 'C putenv("ACE_LD_SEARCH_PATH=' . $ENV{"ACE_RUN_ACE_LD_SEARCH_PATH"} . '")';
}
+ if (defined $self->{TARGET}) {
+ my $x_env_ref = $self->{TARGET}->{EXTRA_ENV};
+ while ( my ($env_key, $env_value) = each(%$x_env_ref) ) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "INFO: adding target environment $env_key=$env_value\n";
+ }
+ @cmds[$cmdnr++] = 'C putenv("' . $env_key. '=' . $env_value . '")';
+ }
+ }
if (defined $ENV{'ACE_RUN_VX_CHECK_RESOURCES'}) {
@cmds[$cmdnr++] = 'C memShow()';
@@ -198,7 +239,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;
@@ -208,7 +249,7 @@ sub Spawn ()
}
}
- @cmds[$cmdnr++] = 'cd "' . $ENV{'ACE_RUN_VX_TGTSVR_ROOT'} . "/" . $cwdrel . "/" . $exesubdir . '"';
+ @cmds[$cmdnr++] = 'cd "' . $ENV{'ACE_RUN_VX_TGTSVR_ROOT'} . "/" . $exe_cwdrel . "/" . $exesubdir . '"';
@cmds[$cmdnr++] = 'putenv("TMPDIR=' . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/" . $cwdrel . '")';
if (defined $ENV{'ACE_RUN_VX_CHECK_RESOURCES'}) {
@@ -226,6 +267,15 @@ sub Spawn ()
if (defined $ENV{'ACE_RUN_ACE_LD_SEARCH_PATH'}) {
@cmds[$cmdnr++] = 'putenv("ACE_LD_SEARCH_PATH=' . $ENV{"ACE_RUN_ACE_LD_SEARCH_PATH"} . '")';
}
+ if (defined $self->{TARGET}) {
+ my $x_env_ref = $self->{TARGET}->{EXTRA_ENV};
+ while ( my ($env_key, $env_value) = each(%$x_env_ref) ) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "INFO: adding target environment $env_key=$env_value\n";
+ }
+ @cmds[$cmdnr++] = 'putenv("' . $env_key. '=' . $env_value . '")';
+ }
+ }
@cmds[$cmdnr++] = 'ld <'. $program . $PerlACE::ProcessVX::ExeExt;
$cmdline = $program . $PerlACE::ProcessVX::ExeExt . ' ' . $self->{ARGUMENTS};
@@ -261,7 +311,12 @@ sub Spawn ()
}
if (!defined $telnet_port) {
$telnet_port = 23;
- }
+ }
+ if (defined $ENV{'ACE_RUN_VX_USE_EXPECT'}) {
+ expect_telnet($telnet_host, $telnet_port, $prompt, \@cmds);
+ sleep(2);
+ exit;
+ }
if (defined $ENV{'ACE_TEST_VERBOSE'}) {
print "Opening telnet connection <" . $telnet_host . ":". $telnet_port . ">\n";
}
@@ -275,16 +330,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 +352,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 +374,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;
@@ -426,7 +478,8 @@ sub Kill ()
my $self = shift;
if ($self->{RUNNING} && !defined $ENV{'ACE_TEST_WINDOW'}) {
- kill ('KILL', $self->{PROCESS});
+ kill ((defined $ENV{'ACE_RUN_VX_USE_EXPECT'}) ? 'TERM' : 'KILL',
+ $self->{PROCESS});
waitpid ($self->{PROCESS}, 0);
$self->check_return_value ($?);
}
@@ -470,5 +523,4 @@ sub TimedWait ($)
return -1;
}
-
1;
diff --git a/ACE/bin/PerlACE/ProcessVX_Win32.pm b/ACE/bin/PerlACE/ProcessVX_Win32.pm
index 5f65ef8f0e6..6952f67d41c 100644
--- a/ACE/bin/PerlACE/ProcessVX_Win32.pm
+++ b/ACE/bin/PerlACE/ProcessVX_Win32.pm
@@ -29,10 +29,10 @@ sub new
$self->{RUNNING} = 0;
$self->{IGNOREEXESUBDIR} = 1;
+ $self->{IGNOREHOSTROOT} = 0;
$self->{PROCESS} = undef;
$self->{EXECUTABLE} = shift;
$self->{ARGUMENTS} = shift;
- $self->{TARGET} = shift;
if (!defined $PerlACE::ProcessVX::WAIT_DELAY_FACTOR) {
$PerlACE::ProcessVX::WAIT_DELAY_FACTOR = 3;
}
@@ -165,6 +165,15 @@ sub Spawn ()
if (defined $ENV{'ACE_RUN_ACE_LD_SEARCH_PATH'}) {
@cmds[$cmdnr++] = 'C putenv("ACE_LD_SEARCH_PATH=' . $ENV{"ACE_RUN_ACE_LD_SEARCH_PATH"} . '")';
}
+ if (defined $self->{TARGET}) {
+ my $x_env_ref = $self->{TARGET}->{EXTRA_ENV};
+ while ( my ($env_key, $env_value) = each(%$x_env_ref) ) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "INFO: adding target environment $env_key=$env_value\n";
+ }
+ @cmds[$cmdnr++] = 'C putenv("' . $env_key. '=' . $env_value . '")';
+ }
+ }
if (defined $ENV{'ACE_RUN_VX_CHECK_RESOURCES'}) {
@cmds[$cmdnr++] = 'C memShow()';
@@ -192,7 +201,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;
@@ -220,6 +229,15 @@ sub Spawn ()
if (defined $ENV{'ACE_RUN_ACE_LD_SEARCH_PATH'}) {
@cmds[$cmdnr++] = 'putenv("ACE_LD_SEARCH_PATH=' . $ENV{"ACE_RUN_ACE_LD_SEARCH_PATH"} . '")';
}
+ if (defined $self->{TARGET}) {
+ my $x_env_ref = $self->{TARGET}->{EXTRA_ENV};
+ while ( my ($env_key, $env_value) = each(%$x_env_ref) ) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "INFO: adding target environment $env_key=$env_value\n";
+ }
+ @cmds[$cmdnr++] = 'putenv("' . $env_key. '=' . $env_value . '")';
+ }
+ }
@cmds[$cmdnr++] = 'ld <'. $program . $PerlACE::ProcessVX::ExeExt;
if (defined $self->{ARGUMENTS}) {
@@ -270,8 +288,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 +298,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 +319,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;
@@ -410,5 +425,4 @@ sub Kill ()
$self->{RUNNING} = 0;
}
-
1;
diff --git a/ACE/bin/PerlACE/ProcessWinCE.pm b/ACE/bin/PerlACE/ProcessWinCE.pm
index 7556c68bdbb..9c7d92932be 100644
--- a/ACE/bin/PerlACE/ProcessWinCE.pm
+++ b/ACE/bin/PerlACE/ProcessWinCE.pm
@@ -29,6 +29,7 @@ sub new
$self->{RUNNING} = 0;
$self->{IGNOREEXESUBDIR} = 1;
+ $self->{IGNOREHOSTROOT} = 0;
$self->{PROCESS} = undef;
$self->{TARGET} = shift;
$self->{EXECUTABLE} = shift;
@@ -154,12 +155,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 +205,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 +223,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 +335,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..5354a427240
--- /dev/null
+++ b/ACE/bin/PerlACE/ProcessWinCE_Unix.pm
@@ -0,0 +1,442 @@
+#! /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->{IGNOREHOSTROOT} = 0;
+ $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 . " .";
+ unshift @$unld_ref, "del " . $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" . ".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..d27067229f4 100644
--- a/ACE/bin/PerlACE/Process_Unix.pm
+++ b/ACE/bin/PerlACE/Process_Unix.pm
@@ -72,6 +72,10 @@ sub DESTROY
"> still running upon object destruction\n";
$self->Kill ();
}
+
+ if (defined $self->{SCRIPTFILE}) {
+ unlink $self->{SCRIPTFILE};
+ }
}
###############################################################################
@@ -88,6 +92,15 @@ 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 = PerlACE::rebase_path ($executable,
+ $ENV{"ACE_ROOT"},
+ $self->{TARGET}->ACE_ROOT());
+ }
+
if ($self->{IGNOREHOSTROOT} == 0) {
if (PerlACE::is_vxworks_test()) {
$executable = PerlACE::VX_HostFile ($executable);
@@ -99,9 +112,14 @@ sub Executable
}
my $basename = basename ($executable);
- my $dirname = dirname ($executable). '/';
+ my $dirname = dirname ($executable).'/';
- $executable = $dirname.$PerlACE::Process::ExeSubDir.$basename;
+ my $subdir = $PerlACE::Process::ExeSubDir;
+ if (defined $self->{TARGET} && defined $self->{TARGET}->{EXE_SUBDIR}) {
+ $subdir = $self->{TARGET}->{EXE_SUBDIR};
+ }
+
+ $executable = $dirname . $subdir . $basename;
return $executable;
}
@@ -121,7 +139,8 @@ sub CommandLine ()
{
my $self = shift;
- my $commandline = $self->Executable ();
+ my $exe = $self->Executable ();
+ my $commandline = $exe;
if (defined $self->{REMOTEINFO}) {
my($method) = $self->{REMOTEINFO}->{method};
@@ -179,6 +198,63 @@ sub CommandLine ()
if (defined $self->{REMOTEINFO}) {
$commandline .= '"';
+ } elsif (defined $self->{TARGET} && defined $self->{TARGET}->{REMOTE_SHELL}) {
+ my($shell) = $self->{TARGET}->{REMOTE_SHELL};
+ my $x_env_ref = $self->{TARGET}->{EXTRA_ENV};
+ my($root) = $self->{TARGET}->ACE_ROOT();
+ if (!defined $root) {
+ $root = $ENV{'ACE_ROOT'};
+ }
+ my($exedir) = dirname ($exe);
+ my($local_xdir)= File::Spec->rel2abs($self->{EXECUTABLE});
+ if ($exedir == '.' || $exedir == './' || $exedir == '') {
+ $exedir = cwd ();
+ $local_xdir = $exedir;
+ }
+ if (!defined $self->{PIDFILE}) {
+ $self->{PIDFILE} = "/tmp/.acerun/ace-".rand(time).".pid";
+ }
+ if (!defined $self->{SCRIPTFILE}) {
+ $self->{SCRIPTFILE} = "$local_xdir/run-".rand(time).".sh";
+ }
+ ## create scriptfile
+ my $libpath = "$root/lib";
+ if (defined $self->{TARGET}->{LIBPATH}) {
+ $libpath = PerlACE::concat_path ($libpath, $self->{TARGET}->{LIBPATH});
+ }
+ my $run_script =
+ "if [ ! -e /tmp/.acerun ]; then mkdir /tmp/.acerun; fi\n".
+ "cd $exedir\n".
+ "export LD_LIBRARY_PATH=$libpath:\$LD_LIBRARY_PATH\n".
+ "export DYLD_LIBRARY_PATH=$libpath:\$DYLD_LIBRARY_PATH\n".
+ "export LIBPATH=$libpath:\$LIBPATH\n".
+ "export SHLIB_PATH=$libpath:\$SHLIB_PATH\n".
+ "export PATH=\$PATH:$root/bin:$root/lib:$libpath\n";
+ while ( my ($env_key, $env_value) = each(%$x_env_ref) ) {
+ $run_script .=
+ "export $env_key=$env_value\n";
+ }
+ $run_script .=
+ "$commandline &\n";
+ $run_script .=
+ "MY_PID=\$!\n".
+ "echo \$MY_PID > ".$self->{PIDFILE}."\n";
+ $run_script .=
+ "wait \$MY_PID\n";
+
+ unless (open (RUN_SCRIPT, ">".$self->{SCRIPTFILE})) {
+ print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
+ "> failed to create ",$self->{SCRIPTFILE},"\n";
+ return -1;
+ }
+ print RUN_SCRIPT $run_script;
+ close RUN_SCRIPT;
+
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "INFO: created run script [",$self->{SCRIPTFILE},"]\n", $run_script;
+ }
+
+ $commandline = "$shell \"source $exedir/".basename ($self->{SCRIPTFILE})."\"";
}
return $commandline;
@@ -188,7 +264,13 @@ sub IgnoreExeSubDir
{
my $self = shift;
- if (@_ != 0) {
+ # If we have -Config ARCH, do not set IGNOREEXESUBDIR, since with ARCH
+ # all executables (even those in $ACE_ROOT/bin, etc.) are located in the
+ # architecture-specific subdirectory.
+ if (@_ != 0 && !grep(($_ eq 'ARCH'), @PerlACE::ConfigList::Configs)) {
+ $self->{IGNOREEXESUBDIR} = shift;
+ }
+ elsif (@_ != 0 && $self->{EXECUTABLE} =~ /perl$/) {
$self->{IGNOREEXESUBDIR} = shift;
}
@@ -289,7 +371,7 @@ sub Spawn ()
$cmdline = "$executable $orig_cmdline";
}
elsif (defined $ENV{'ACE_TEST_WINDOW'}) {
- $cmdline = $ENV{'ACE_TEST_WINDOW'} . ' ' . $self->CommandLine();
+ $cmdline = $ENV{'ACE_TEST_WINDOW'} . ' ' . $self->CommandLine();
}
else {
$executable = $self->Executable();
@@ -311,6 +393,29 @@ sub Spawn ()
print "INFO: argument - '$arg'\n";
}
}
+ # update environment for target
+ if (defined $self->{TARGET}) {
+ if (!(defined $self->{TARGET}->{REMOTE_SHELL} || defined $self->{REMOTEINFO})) {
+ my $x_env_ref = $self->{TARGET}->{EXTRA_ENV};
+ while ( my ($env_key, $env_value) = each(%$x_env_ref) ) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "INFO: adding target environment $env_key=$env_value\n";
+ }
+ $ENV{$env_key} = $env_value;
+ }
+ }
+ if ($self->{TARGET}->{LIBPATH}) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "INFO: adding target libpath ".$self->{TARGET}->{LIBPATH}."\n";
+ }
+ PerlACE::add_lib_path ($self->{TARGET}->{LIBPATH});
+ }
+ }
+ if (!(defined $self->{VALGRIND_CMD} || defined $ENV{'ACE_TEST_WINDOW'}) &&
+ (defined $self->{TARGET}) && ($ENV{'ACE_ROOT'} ne $self->{TARGET}->ACE_ROOT ())) {
+ my $x_dir = dirname ($executable);
+ chdir ($x_dir);
+ }
exec @cmdlist;
die "ERROR: exec failed for <" . $cmdline . ">\n";
}
@@ -324,6 +429,33 @@ sub Spawn ()
print STDERR "ERROR: Can't fork <" . $cmdline . ">: $!\n";
}
}
+
+ if (defined $self->{TARGET} && defined $self->{TARGET}->{REMOTE_SHELL}) {
+ my $shell = $self->{TARGET}->{REMOTE_SHELL};
+ my $pidfile = $self->{PIDFILE};
+ ## wait max 5 sec for pid file to appear
+ my $timeout = 5;
+ my $rc = 1;
+ while ($timeout-- != 0) {
+ $rc = int(`$shell 'test -e $pidfile && test -s $pidfile ; echo \$?'`);
+ if ($rc == 0) {
+ $timeout = 0;
+ } else {
+ sleep 1;
+ }
+ }
+ if ($rc != 0) {
+ print STDERR "ERROR: Remote command failed <" . $cmdline . ">: $! No PID found.\n";
+ return -1;
+ }
+ $self->{REMOTE_PID} = `$shell cat $pidfile`;
+ $self->{REMOTE_PID} =~ s/\s+//g;
+ system("$shell rm -f $pidfile 2>&1 >/dev/null");
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "INFO: Process started remote with pid [",$self->{REMOTE_PID},"]\n";
+ }
+ }
+
$self->{RUNNING} = 1;
return 0;
}
@@ -468,7 +600,15 @@ sub Kill ($)
my $ignore_return_value = shift;
if ($self->{RUNNING} && !defined $ENV{'ACE_TEST_WINDOW'}) {
- kill ('KILL', $self->{PROCESS});
+ if (defined $self->{TARGET} && defined $self->{TARGET}->{REMOTE_SHELL}) {
+ my $cmd = $self->{TARGET}->{REMOTE_SHELL}." kill -s KILL ".$self->{REMOTE_PID};
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "INFO: Killing remote process <", $cmd, ">\n";
+ }
+ $cmd = `$cmd 2>&1`;
+ } else {
+ kill ('KILL', $self->{PROCESS});
+ }
for(my $i = 0; $i < 10; $i++) {
my $pid = waitpid ($self->{PROCESS}, WNOHANG);
if ($pid > 0) {
@@ -525,4 +665,98 @@ sub TimedWait ($)
return -1;
}
+###
+
+sub kill_all
+{
+ my $procmask = shift;
+ my $target = shift;
+ my $pid = -1;
+ my $cmd;
+ my $valgrind_cmd = $ENV{"ACE_RUN_VALGRIND_CMD"};
+ my $ps_cmd = 'ps -ef';
+ my $ps_pid_field = 1;
+ my $ps_cmd_field = 7;
+ my $ps_skip_first = 1;
+ my @ps_fields = 0;
+ if (defined $target && defined $target->{PS_CMD}) {
+ ## in case a special command is required
+ ## format: <cmd>:<pid field index>:<cmd field index>[:<skip headers flag>]
+ $ps_cmd_field = -1;
+ @ps_fields = split (/:/, $target->{PS_CMD});
+ $ps_cmd = @ps_fields[0];
+ if (@ps_fields > 1) {
+ $ps_pid_field = @ps_fields[1];
+ if (@ps_fields > 2) {
+ $ps_cmd_field = @ps_fields[2];
+ if (@ps_fields > 3) {
+ $ps_skip_first = (@ps_fields[3] == '1' ? 1 : 0);
+ }
+ }
+ } else {
+ print STDERR "ERROR: Missing field index for PID in [PS_CMD=".$target->{PS_CMD}."]\n";
+ return 0;
+ }
+ @ps_fields = 0;
+ } elsif (! (defined $target && defined $target->{REMOTE_SHELL}) ) {
+ my $ps_file = `which ps`;
+ $ps_file =~ s/^\s+//;
+ $ps_file =~ s/\s+$//;
+ if ((-l $ps_file) and (readlink ($ps_file)) =~ /busybox/) {
+ ## some embedded targets use BusyBox for base tools
+ ## with different arguments
+ $ps_cmd = 'ps w';
+ $ps_pid_field = 0;
+ $ps_cmd_field = 4;
+ }
+ }
+ if (defined $target && defined $target->{REMOTE_SHELL}) {
+ $ps_cmd = $target->{REMOTE_SHELL}.' '.$ps_cmd;
+ }
+ for my $line (`$ps_cmd`) {
+ if ($ps_skip_first) {
+ # skip first line (headers)
+ $ps_skip_first = 0;
+ } else {
+ # split line
+ @ps_fields = split (/\s+/, $line);
+ if (@ps_fields > $ps_pid_field && @ps_fields > $ps_cmd_field) {
+
+ $pid = @ps_fields[$ps_pid_field]; # process PID
+ # take care of valgrind runs
+ if (defined $valgrind_cmd) {
+ my $pos = index ($line, $valgrind_cmd);
+ if ($pos >= 0) {
+ $cmd = substr ($line, $pos + length ($valgrind_cmd));
+ $cmd =~ s/^\s+//; # strip leading ws
+ @ps_fields = split (/\s+/, $cmd);
+ $cmd = @ps_fields[0];
+ } else {
+ $cmd = $line;
+ }
+ } else {
+ if ($ps_cmd_field >= 0) {
+ $cmd = @ps_fields[$ps_cmd_field]; # process cmd / executable
+ } else {
+ $cmd = $line;
+ }
+ }
+
+ # match process cmd
+ if ($cmd =~ /$procmask/) {
+ if (defined $target && defined $target->{REMOTE_SHELL}) {
+ my $kill_cmd = $target->{REMOTE_SHELL}." kill -s KILL $pid";
+ $kill_cmd = `$kill_cmd`;
+ } else {
+ kill ('KILL', $pid); # kill process
+ }
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "INFO: Killed process at [$line]\n";
+ }
+ }
+ }
+ }
+ }
+}
+
1;
diff --git a/ACE/bin/PerlACE/Process_VMS.pm b/ACE/bin/PerlACE/Process_VMS.pm
index 30d4cdd271b..2a628b30269 100644
--- a/ACE/bin/PerlACE/Process_VMS.pm
+++ b/ACE/bin/PerlACE/Process_VMS.pm
@@ -356,4 +356,13 @@ sub TimedWait ($)
return -1;
}
+###
+
+sub kill_all
+{
+ my $procmask = shift;
+ my $target = shift;
+ ## NOT IMPLEMENTED YET
+}
+
1;
diff --git a/ACE/bin/PerlACE/Process_Win32.pm b/ACE/bin/PerlACE/Process_Win32.pm
index ace30cb05bd..0cbbd42ab99 100644
--- a/ACE/bin/PerlACE/Process_Win32.pm
+++ b/ACE/bin/PerlACE/Process_Win32.pm
@@ -171,7 +171,13 @@ sub IgnoreExeSubDir
{
my $self = shift;
- if (@_ != 0) {
+ # If we have -Config ARCH, do not set IGNOREEXESUBDIR, since with ARCH
+ # all executables (even those in $ACE_ROOT/bin, etc.) are located in the
+ # architecture-specific subdirectory.
+ if (@_ != 0 && !grep(($_ eq 'ARCH'), @PerlACE::ConfigList::Configs)) {
+ $self->{IGNOREEXESUBDIR} = shift;
+ }
+ elsif (@_ != 0 && $self->{EXECUTABLE} =~ /perl$/) {
$self->{IGNOREEXESUBDIR} = shift;
}
@@ -229,6 +235,9 @@ sub Spawn ()
my $cmdline = "";
my $executable = "";
+ my $chdir_needed = 0;
+ my $curdir_bak;
+
if (defined $self->{PURIFY_CMD}) {
my $orig_cmdline = $self->CommandLine ();
$executable = $self->{PURIFY_CMD};
@@ -286,24 +295,51 @@ sub Spawn ()
$cmdline = "cmd /C start /B /WAIT $self->{WINCE_CTL} $pocket_device_opts -m NAME=start_test.cmd;WAIT=401000; -e"
}
elsif (defined $ENV{'ACE_TEST_WINDOW'}) {
- $state = ($ENV{'ACE_TEST_WINDOW'} =~ /\/k/i ? CREATE_NEW_CONSOLE : DETACHED_PROCESS);
- $executable = $ENV{'ComSpec'};
- $cmdline = $ENV{'ACE_TEST_WINDOW'} . ' ' . $self->CommandLine();
+ $state = ($ENV{'ACE_TEST_WINDOW'} =~ /\/k/i ? CREATE_NEW_CONSOLE : DETACHED_PROCESS);
+ $executable = $ENV{'ComSpec'};
+ $cmdline = $ENV{'ACE_TEST_WINDOW'} . ' ' . $self->CommandLine();
}
else {
$executable = $self->Executable ();
$cmdline = $self->CommandLine ();
+ if ((defined $self->{TARGET}) && ($ENV{'ACE_ROOT'} ne $self->{TARGET}->ACE_ROOT ())) {
+ $chdir_needed = 1;
+ $curdir_bak = cwd ();
+ chdir (dirname ($executable));
+ }
}
if (defined $ENV{'ACE_TEST_VERBOSE'}) {
print "$executable $cmdline\n";
}
+ my %backup_ENV = %ENV;
+ # update environment for target
+ if (defined $self->{TARGET}) {
+ if (!defined $self->{TARGET}->{REMOTE_SHELL}) {
+ my $x_env_ref = $self->{TARGET}->{EXTRA_ENV};
+ while ( my ($env_key, $env_value) = each(%$x_env_ref) ) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "INFO: adding target environment $env_key=$env_value\n";
+ }
+ $ENV{$env_key} = $env_value;
+ }
+ }
+ if ($self->{TARGET}->{LIBPATH}) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "INFO: adding target libpath ".$self->{TARGET}->{LIBPATH}."\n";
+ }
+ PerlACE::add_lib_path ($self->{TARGET}->{LIBPATH});
+ }
+ }
my $status = Win32::Process::Create ($self->{PROCESS},
$executable,
$cmdline,
($state == 0 ? 1 : 0),
$state,
'.');
-
+ %ENV = %backup_ENV;
+ if ($chdir_needed) {
+ chdir ($curdir_bak);
+ }
if ($status == 0) {
print STDERR "ERROR: Spawn failed for <", $self->CommandLine (), ">\n";
return -1;
@@ -416,4 +452,26 @@ sub TimedWait ($)
return $self->Wait($timeout);
}
+###
+
+sub kill_all
+{
+ my $procmask = shift;
+ my $target = shift;
+ my $pid = -1;
+ for my $line (`tasklist /nh /fo csv`) {
+ # find matching process line
+ if ($line =~ /$procmask/) {
+ # find process PID
+ if ($line =~ /^\"[^\"]+\",\"(\d+)\",/) {
+ $pid = $1;
+ Win32::Process::KillProcess ($pid, 0); # kill process
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "INFO: Killed process at [$line]\n"
+ }
+ }
+ }
+ }
+}
+
1;
diff --git a/ACE/bin/PerlACE/Run_Test.pm b/ACE/bin/PerlACE/Run_Test.pm
index 98e74752f6e..d5d91116e50 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
@@ -83,12 +87,19 @@ sub LocalFile ($)
return $newfile;
}
+sub rebase_path {
+ my $path = shift;
+ my $cur_root = shift;
+ my $new_root = shift;
+ $path = File::Spec->rel2abs ($path);
+ $path = File::Spec->abs2rel ($path, $cur_root);
+ return $new_root."/".$path;
+}
+
sub VX_HostFile($)
{
my $file = shift;
- $file = File::Spec->rel2abs ($file);
- $file = File::Spec->abs2rel ($file, $ENV{"ACE_ROOT"});
- return $ENV{"HOST_ROOT"}."/".$file;
+ return rebase_path ($file, $ENV{"ACE_ROOT"}, $ENV{"HOST_ROOT"});
}
# Returns a random port within the range of 10002 - 32767
@@ -201,33 +212,40 @@ sub is_vxworks_rtp_test()
return ($PerlACE::VxWorks_RTP_Test);
}
+sub concat_path {
+ my $pathlist = shift;
+ my $path = shift;
+ if ((!defined $pathlist) || $pathlist =~ /^\s*$/) {
+ return $path;
+ } else {
+ return $pathlist . ($^O eq 'MSWin32' ? ';' : ':') . $path;
+ }
+}
+
sub add_path {
- my $name = shift;
- my $value = shift;
- if (defined $ENV{$name}) {
- $ENV{$name} .= ($^O eq 'MSWin32' ? ';' : ':') . $value
- }
- else {
- $ENV{$name} = $value;
- }
+ my $name = shift;
+ my $value = shift;
+ $ENV{$name} = concat_path ($ENV{$name}, $value);
}
sub add_lib_path {
- my($value) = shift;
-
- # Set the library path supporting various platforms.
- add_path('PATH', $value);
- add_path('DYLD_LIBRARY_PATH', $value);
- add_path('LD_LIBRARY_PATH', $value);
- add_path('LIBPATH', $value);
- add_path('SHLIB_PATH', $value);
-
- if (defined $ENV{"HOST_ROOT"}) {
- add_path('PATH', VX_HostFile ($value));
- add_path('LD_LIBRARY_PATH', VX_HostFile ($value));
- add_path('LIBPATH', VX_HostFile ($value));
- add_path('SHLIB_PATH', VX_HostFile ($value));
- }
+ my($value) = shift;
+
+ # Set the library path supporting various platforms.
+ foreach my $env ('PATH', 'DYLD_LIBRARY_PATH', 'LD_LIBRARY_PATH',
+ 'SHLIB_PATH') {
+ add_path($env, $value);
+ if (grep(($_ eq 'ARCH'), @PerlACE::ConfigList::Configs)) {
+ add_path($env, $value . '/' . $PerlACE::Process::ExeSubDir);
+ }
+ }
+
+ if (defined $ENV{"HOST_ROOT"}) {
+ add_path('PATH', VX_HostFile ($value));
+ add_path('LD_LIBRARY_PATH', VX_HostFile ($value));
+ add_path('LIBPATH', VX_HostFile ($value));
+ add_path('SHLIB_PATH', VX_HostFile ($value));
+ }
}
sub check_privilege_group {
@@ -297,6 +315,14 @@ sub waitforfileoutput_timed {
return -1;
}
+sub GetArchDir {
+ my $dir = shift;
+ if (grep(($_ eq 'ARCH'), @PerlACE::ConfigList::Configs)) {
+ return $dir . $PerlACE::Process::ExeSubDir;
+ }
+ return $dir;
+}
+
# Add PWD to the load library path
add_lib_path ('.');
diff --git a/ACE/bin/PerlACE/TestTarget.pm b/ACE/bin/PerlACE/TestTarget.pm
index b83ac809b76..4d697c185d8 100644
--- a/ACE/bin/PerlACE/TestTarget.pm
+++ b/ACE/bin/PerlACE/TestTarget.pm
@@ -41,7 +41,7 @@ sub create_target
}
my $config_os = $ENV{$envname};
SWITCH: {
- if ($config_os =~ m/local/i) {
+ if ($config_os =~ m/local|remote/i) {
$target = new PerlACE::TestTarget ($config_name);
last SWITCH;
}
@@ -129,6 +129,13 @@ sub GetConfigSettings ($)
$self->{EXE_SUBDIR} = $PerlACE::Process::ExeSubDir;
}
}
+ $env_name = $env_prefix.'ARCH';
+ if (exists $ENV{$env_name}) {
+ $self->{ARCH} = $ENV{$env_name};
+ } elsif ($config_name eq 'default'
+ && grep(($_ eq 'ARCH'), @PerlACE::ConfigList::Configs)) {
+ $self->{ARCH} = 1;
+ }
$env_name = $env_prefix.'PROCESS_START_WAIT_INTERVAL';
if (exists $ENV{$env_name}) {
$self->{PROCESS_START_WAIT_INTERVAL} = $ENV{$env_name};
@@ -199,6 +206,36 @@ 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};
+ }
+ $env_name = $env_prefix.'REMOTE_SHELL';
+ if (exists $ENV{$env_name}) {
+ $self->{REMOTE_SHELL} = $ENV{$env_name};
+ }
+ $env_name = $env_prefix.'LIBPATH';
+ if (exists $ENV{$env_name}) {
+ $self->{LIBPATH} = $ENV{$env_name};
+ }
+ $env_name = $env_prefix.'REMOTE_FILETEST';
+ if (exists $ENV{$env_name}) {
+ $self->{REMOTE_FILETEST} = $ENV{$env_name};
+ }
+ $env_name = $env_prefix.'PS_CMD';
+ if (exists $ENV{$env_name}) {
+ $self->{PS_CMD} = $ENV{$env_name};
+ }
+ $self->{EXTRA_ENV} = {};
+ $env_name = $env_prefix.'EXTRA_ENV';
+ if (exists $ENV{$env_name}) {
+ my @x_env = split (' ', $ENV{$env_name});
+ foreach my $x_env_s (@x_env) {
+ if ($x_env_s =~ /(\w+)=(.*)/) {
+ $self->{EXTRA_ENV}->{$1} = $2;
+ }
+ }
+ }
}
##################################################################
@@ -237,6 +274,23 @@ sub ExeSubDir ($)
return $self->{EXE_SUBDIR};
}
+sub GetArchDir
+{
+ my $self = shift;
+ my $dir = shift;
+ if (exists $self->{ARCH}) {
+ return $dir . $self->{EXE_SUBDIR};
+ }
+ return $dir;
+}
+
+
+sub SystemLibs ($)
+{
+ my $self = shift;
+ return $self->{SYSTEM_LIBS};
+}
+
sub RandomPort ($)
{
my $self = shift;
@@ -246,20 +300,12 @@ sub RandomPort ($)
sub ProcessStartWaitInterval ($)
{
my $self = shift;
- my $new_val = shift;
- if (defined $new_val) {
- $self->{PROCESS_START_WAIT_INTERVAL} = $new_val;
- }
return $self->{PROCESS_START_WAIT_INTERVAL};
}
sub ProcessStopWaitInterval ($)
{
my $self = shift;
- my $new_val = shift;
- if (defined $new_val) {
- $self->{PROCESS_STOP_WAIT_INTERVAL} = $new_val;
- }
return $self->{PROCESS_STOP_WAIT_INTERVAL};
}
@@ -269,7 +315,7 @@ sub LocalFile ($)
my $file = shift;
my $newfile = PerlACE::LocalFile($file);
if (defined $ENV{'ACE_TEST_VERBOSE'}) {
- print STDERR "LocalFile for $file is $newfile\n";
+ print STDERR "LocalFile for $file is $newfile\n";
}
return $newfile;
}
@@ -278,10 +324,44 @@ sub AddLibPath ($)
{
my $self = shift;
my $dir = shift;
- if (defined $ENV{'ACE_TEST_VERBOSE'}) {
- print STDERR "Adding libpath $dir\n";
+ my $noarch = shift;
+
+ # If we have -Config ARCH, use the -ExeSubDir setting as a sub-directory
+ # of the lib path. This is in addition to the regular LibPath.
+ if (!$noarch && defined $self->{ARCH}) {
+ $self->AddLibPath($dir, 1);
+ $dir .= '/' . $self->{EXE_SUBDIR};
+ }
+
+ if ($self->ACE_ROOT () eq $ENV{'ACE_ROOT'}) {
+ # add (relative) path without rebasing
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "Adding libpath $dir\n";
+ }
+ $self->{LIBPATH} = PerlACE::concat_path ($self->{LIBPATH}, $dir);
+ } else {
+ # add rebased path
+ $dir = PerlACE::rebase_path ($dir, $ENV{"ACE_ROOT"}, $self->ACE_ROOT ());
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "Adding libpath $dir\n";
+ }
+ $self->{LIBPATH} = PerlACE::concat_path ($self->{LIBPATH}, $dir);
}
- PerlACE::add_lib_path ($dir);
+}
+
+sub SetEnv ($)
+{
+ my $self = shift;
+ my $env_name = shift;
+ my $env_value = shift;
+ $self->{EXTRA_ENV}->{$env_name} = $env_value;
+}
+
+sub GetEnv ($)
+{
+ my $self = shift;
+ my $env_name = shift;
+ return $self->{EXTRA_ENV}->{$env_name};
}
sub DeleteFile ($)
@@ -319,7 +399,33 @@ sub WaitForFileTimed ($)
my $file = shift;
my $timeout = shift;
my $newfile = $self->LocalFile($file);
- return PerlACE::waitforfile_timed ($newfile, $timeout);
+ if (defined $self->{REMOTE_SHELL} && defined $self->{REMOTE_FILETEST}) {
+ # If the target's config has a different ACE_ROOT, rebase the file
+ # from $ACE_ROOT to the target's root.
+ if ($self->ACE_ROOT () ne $ENV{'ACE_ROOT'}) {
+ $file = File::Spec->rel2abs($file);
+ $file = File::Spec->abs2rel($file, $ENV{"ACE_ROOT"});
+ $file = $self->{TARGET}->ACE_ROOT() . "/$file";
+ }
+ $timeout *= $PerlACE::Process::WAIT_DELAY_FACTOR;
+ my $cmd = $self->{REMOTE_SHELL};
+ if ($self->{REMOTE_FILETEST} =~ /^\d*$/) {
+ $cmd .= " 'test -e $newfile && test -s $newfile ; echo \$?'";
+ } else {
+ $cmd .= $self->{REMOTE_FILETEST} . ' ' . $file;
+ }
+ my $rc = 1;
+ while ($timeout-- != 0) {
+ $rc = int(`$cmd`);
+ if ($rc == 0) {
+ return 0;
+ }
+ sleep 1;
+ }
+ return -1;
+ } else {
+ return PerlACE::waitforfile_timed ($newfile, $timeout);
+ }
}
sub CreateProcess ($)
@@ -337,4 +443,11 @@ sub GetStderrLog ($)
return;
}
+sub KillAll ($)
+{
+ my $self = shift;
+ my $procmask = shift;
+ PerlACE::Process::kill_all ($procmask, $self);
+}
+
1;
diff --git a/ACE/bin/PerlACE/TestTarget_LVRT.pm b/ACE/bin/PerlACE/TestTarget_LVRT.pm
index 3e5df034e44..ee2eda264db 100644
--- a/ACE/bin/PerlACE/TestTarget_LVRT.pm
+++ b/ACE/bin/PerlACE/TestTarget_LVRT.pm
@@ -140,12 +140,18 @@ sub DeleteFile ($)
sub GetFile ($)
{
# Use FTP to retrieve the file from the target; should still be open.
+ # If only one name is given, use it for both local and remote (after
+ # properly LocalFile-ing it). If both names are given, assume the caller
+ # knows what he wants and don't adjust the paths.
my $self = shift;
my $remote_file = shift;
my $local_file = shift;
- my $newfile = $self->LocalFile($file);
+ if (!defined $local_file) {
+ $local_file = $remote_file;
+ $remote_file = $self->LocalFile($local_file);
+ }
$self->{FTP}->ascii();
- if ($self->{FTP}->get($newfile, $local_file)) {
+ if ($self->{FTP}->get($remote_file, $local_file)) {
return 0;
}
return -1;
@@ -282,4 +288,11 @@ sub RebootReset ($)
}
}
+sub KillAll ($)
+{
+ my $self = shift;
+ my $procmask = shift;
+ PerlACE::ProcessLVRT::kill_all ($procmask, $self);
+}
+
1;
diff --git a/ACE/bin/PerlACE/TestTarget_VxWorks.pm b/ACE/bin/PerlACE/TestTarget_VxWorks.pm
index bbd99b068dd..5a072181da0 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);
@@ -25,17 +26,27 @@ our @ISA = qw(PerlACE::TestTarget);
# ******************************************************************
sub LocalFile {
- my($self, $file) = @_;
- if (defined $ENV{'ACE_TEST_VERBOSE'}) {
- print STDERR "LocalFile is $file\n";
- }
- return $file;
+ my($self, $file) = @_;
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "LocalFile is $file\n";
+ }
+ return $file;
+}
+
+sub AddLibPath ($) {
+ my $self = shift;
+ my $dir = shift;
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "Adding libpath $dir\n";
+ }
+ PerlACE::add_lib_path ($dir);
}
sub CreateProcess {
- my $self = shift;
- my $process = new PerlACE::ProcessVX (@_, $self, );
- return $process;
+ my $self = shift;
+ my $process = new PerlACE::ProcessVX (@_);
+ $process->{TARGET} = $self;
+ return $process;
}
# Need a reboot when this target is destroyed.
@@ -71,4 +82,11 @@ sub WaitForFileTimed ($)
return PerlACE::waitforfile_timed ($newfile, $timeout);
}
+sub KillAll ($)
+{
+ my $self = shift;
+ my $procmask = shift;
+ PerlACE::ProcessVX::kill_all ($procmask, $self);
+}
+
1;
diff --git a/ACE/bin/PerlACE/TestTarget_WinCE.pm b/ACE/bin/PerlACE/TestTarget_WinCE.pm
index b1d650e5c88..e7e32a794da 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);
@@ -105,10 +106,22 @@ sub LocalFile {
return $newfile;
}
+sub AddLibPath ($) {
+ my $self = shift;
+ my $dir = shift;
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print STDERR "Adding libpath $dir\n";
+ }
+ PerlACE::add_lib_path ($dir);
+}
+
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.
@@ -166,4 +179,11 @@ sub DeleteFile ($)
unlink ("$newfile");
}
+sub KillAll ($)
+{
+ my $self = shift;
+ my $procmask = shift;
+ PerlACE::ProcessVX::kill_all ($procmask, $self);
+}
+
1;
diff --git a/ACE/bin/PythonACE/__init__.py b/ACE/bin/PythonACE/__init__.py
deleted file mode 100644
index de05225d2cf..00000000000
--- a/ACE/bin/PythonACE/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-
-import fuzz
diff --git a/ACE/bin/PythonACE/fuzz/__init__.py b/ACE/bin/PythonACE/fuzz/__init__.py
deleted file mode 100644
index 26a7b9a3faf..00000000000
--- a/ACE/bin/PythonACE/fuzz/__init__.py
+++ /dev/null
@@ -1,97 +0,0 @@
-""" This init script loads all python modules in the current directory that
- do not start with an '_', loads them as a module"""
-
-file_type_handlers = dict ()
-
-def register_handler (module):
-
- for item in module.type_list:
- if file_type_handlers.has_key (item):
- file_type_handlers[item].append (module.handler)
- else:
- handlers = list ()
- handlers.append (module.handler)
- file_type_handlers[item] = handlers
-
-import re
-
-extension_re = re.compile(".+\.([^.]+)$")
-
-
-
-# The following is the initialization logic that is executed
-# when the fuzz module is loaded
-from os import listdir, chdir, getcwd
-from sys import stderr, path
-oldwd = getcwd ()
-
-try:
- # The following is a trick to get the directory THIS SCRIPT - note, not necessarily the CWD -
- # is located. We use this path later to load all of the available fuzz checks.
- import _path
- script_path = str (_path).split ()[3][1:-11]
- if script_path == "":
- script_path = "."
-
- chdir (script_path)
-
- path.append (getcwd ())
-
- files = listdir (".")
-
- modules = list ()
-
- # We need to import the warning handler here. If we use a traditional import elsewhere,
- # we get all kinds of problems with the warning_handler being imported twice - once as
- # fuzz._warning_handler and again as _warning_handler - making the singleton instances
- # NOT the same.
- _warning_handler = __import__ ("_warning_handler")
- Warning_Handler = _warning_handler.Warning_Handler
- STDERR = _warning_handler.STDERR
- MAILER = _warning_handler.MAILER
-
- for item in files:
- if (item[0] != '_') and (item[-3:] == ".py"):
- print "Registering " + item [:-3]
- try:
- module = __import__ (item[:-3])
- register_handler (module)
- except:
- stderr.write ("FUZZ ERROR: Unable to load the " + item[:-3] + " module, please notify the build czar\n")
-
-finally:
- chdir (oldwd)
-
-
-def fuzz_check (file_name, file_content):
- # If the user of the module has not instanciated the warning handler,
- # lets do it here
- if not Warning_Handler._isInstantiated ():
- Warning_Handler.getInstance (STDERR)
-
- # get the file extension
- ext_match = extension_re.search (file_name)
- if ext_match == None:
- # we don't have no stinking file extension!
- ext = ""
- else:
- ext = ext_match.group (1)
-
- retval = 0
-
- if file_type_handlers.has_key (ext):
- for handler in file_type_handlers[ext]:
- try: # We don't want one misbehaving handler to screw up the whole sustem
- retval += handler (file_name, file_content)
- except:
- stderr.write ("An unknown exception was thrown while trying to run one of the handlers\n")
-
- # Run the generic handlers
- for handler in file_type_handlers["*"]:
- try: # We don't want one misbehaving handler to screw up the whole sustem
- retval += handler (file_name, file_content)
- except:
- stderr.write ("An unknown exception was thrown while trying to run one of the handlers\n")
-
-
- return retval
diff --git a/ACE/bin/PythonACE/fuzz/_fuzz.py b/ACE/bin/PythonACE/fuzz/_fuzz.py
deleted file mode 100644
index 5dccaa8136e..00000000000
--- a/ACE/bin/PythonACE/fuzz/_fuzz.py
+++ /dev/null
@@ -1,3 +0,0 @@
-""" Defines the fuzz_check function """
-
-
diff --git a/ACE/bin/PythonACE/fuzz/_generic_handler.py b/ACE/bin/PythonACE/fuzz/_generic_handler.py
deleted file mode 100644
index ffc7bc10167..00000000000
--- a/ACE/bin/PythonACE/fuzz/_generic_handler.py
+++ /dev/null
@@ -1,44 +0,0 @@
-""" Defines a generic handler that tests against a given regex, and allows for exclusions. """
-
-from sys import stderr
-import _warning_handler
-
-def generic_handler (regex, begin_exclude, end_exclude, error_message, file_name, file_content, warn = False):
- retval = 0
-
- if regex.search (file_content) != None:
- # We have a potential violation, lets check
- lines = file_content.splitlines ()
- exclusion = False
- for line in range (len (lines)):
- if begin_exclude.search (lines[line]) != None:
- exclusion = True
- elif end_exclude.search (lines[line]) != None:
- exclusion = False
- elif (exclusion == False) and (regex.search (lines[line]) != None):
- # Violation!
- msg = file_name + ':' + str (line + 1) + error_message
- if not warn:
- stderr.write (msg)
- retval = 1
- else:
- handler = _warning_handler.Warning_Handler.getInstance ()
- handler.add_warning (msg)
- return retval
-
-def generic_handler_no_exceptions (regex, error_message, file_name, file_content, warn = False):
- retval = 0
-
- if regex.search (file_content) != None:
- # We have a potential violation, lets check
- lines = file_content.splitlines ()
- for line in range (len (lines)):
- if regex.search (lines[line]) != None:
- msg = file_name + ':' + str (line + 1) + error_message
- # Violation!
- if not warn:
- stderr.write (msg)
- retval = 1
- else:
- Warning_Handler.getInstance ().add_warning (msg)
- return retval
diff --git a/ACE/bin/PythonACE/fuzz/_mailer.py b/ACE/bin/PythonACE/fuzz/_mailer.py
deleted file mode 100644
index 6e33cc82c9e..00000000000
--- a/ACE/bin/PythonACE/fuzz/_mailer.py
+++ /dev/null
@@ -1,106 +0,0 @@
-""" This module implements a mailer to mail a user about fuzz warnings """
-
-import _singleton
-
-def ldap_lookup (username):
- """ Performs a ldap lookup to find the email address associated with
- username. If none exists, it returns the empty string."""
- import ldap
-
- try:
- conn = ldap.open ("ldap.dre.vanderbilt.edu")
- conn.protocol_version = ldap.VERSION3
-
- baseDN = "dc=dre,dc=vanderbilt,dc=edu"
- scope = ldap.SCOPE_SUBTREE
- attrFilter = None
- searchFilter = "uid=" + username
-
- result = conn.search (baseDN, scope, searchFilter, attrFilter)
-
- result_type, result_data = conn.result (result, 0)
- email = ""
- if (result_data != []) and (result_type == ldap.RES_SEARCH_ENTRY):
- # we have a valid result!
- if (result_data[0][1].has_key ('mail')):
- email = result_data[0][1]['mail'][0]
- elif (result_data[0][1].has_key ('svnmail')):
- email = result_data[0][1]['svnmail'][0]
- else:
- email = ""
-
- conn.unbind ()
-
- return email
- except:
- # Some error occurred when looking this guy up.
- return ""
-
-
-
-class Mailer:
- def __init__ (self):
- self.recipient = ""
- self.body = """\
-This is an automatically generated message from the fuzz check system
-in the subversion repository.
-
-Your recent commit to the ACE/TAO/CIAO repository had a number of warnings
-which should be addressed.
-
-"""
- self.warnings = ""
- self.subject = "Your recent commit to the DOC group repository."
- self.sent = False
-
- def get_messages (self):
- return self.warnings
- def open (self, ldap_user_name):
- from sys import stderr
- stderr.write ("LDAP Name: " + ldap_user_name.rstrip () + "\n")
- self.recipient = ldap_lookup (ldap_user_name.rstrip ())
-
- def add_warning (self, warning_text):
- self.warnings += warning_text
-
- def close (self):
- try:
- message = """\
-From: %s
-To: %s
-Subject: %s
-\r\n
-%s
-""" % ("bczar@dre.vanderbilt.edu",
- self.recipient,
- self.subject,
- self.body + self.warnings)
-
- print message
-
- import smtplib
- server = smtplib.SMTP('discovery.isis.vanderbilt.edu')
- server.sendmail ("bczar@dre.vanderbilt.edu",
- [self.recipient],
- message)
- except smtplib.SMTPRecipientsRefused:
- print "Recipients refused exception"
- server.close ()
- except smtplib.SMTPHeloError:
- print "Helo error"
- server.close ()
- except smtplib.SMTPSenderRefused:
- print "Sender refused"
- server.close ()
- except smtplib.SMTPDataError:
- print "Data error"
- server.close ()
- except:
- from sys import stderr
- stderr.write ("Caught exception while sending email\n")
- server.close ()
-
-
-
-
-
diff --git a/ACE/bin/PythonACE/fuzz/_path.py b/ACE/bin/PythonACE/fuzz/_path.py
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/ACE/bin/PythonACE/fuzz/_path.py
+++ /dev/null
diff --git a/ACE/bin/PythonACE/fuzz/_singleton.py b/ACE/bin/PythonACE/fuzz/_singleton.py
deleted file mode 100644
index f7a686d4988..00000000000
--- a/ACE/bin/PythonACE/fuzz/_singleton.py
+++ /dev/null
@@ -1,60 +0,0 @@
-""" Implements a singleton mixin class """
-
-# The following code was written by Gary Robinson
-# (grobinson@transpose.com) and placed in the public domain. His
-# copyright notice is as follows:
-
-# By Gary Robinson, grobinson@transpose.com. No rights reserved --
-# placed in the public domain -- which is only reasonable considering
-# how much it owes to other people's version which are in the
-# public domain. The idea of using a metaclass came from
-# a comment on Gary's blog (see
-# http://www.garyrobinson.net/2004/03/python_singleto.html#comments).
-# Other improvements came from comments and email from other
-# people who saw it online. (See the blog post and comments
-# for further credits.)
-
-# Not guaranteed to be fit for any particular purpose. Use at your
-# own risk.
-
-
-class SingletonException(Exception):
- pass
-
-class MetaSingleton(type):
- def __new__(metaclass, strName, tupBases, dict):
- if dict.has_key('__new__'):
- raise SingletonException, 'Can not override __new__ in a Singleton'
- return super(MetaSingleton,metaclass).__new__(metaclass, strName, tupBases, dict)
-
- def __call__(cls, *lstArgs, **dictArgs):
- raise SingletonException, 'Singletons may only be instantiated through getInstance()'
-
-class Singleton(object):
- __metaclass__ = MetaSingleton
-
- def getInstance(cls, *lstArgs):
- """
- Call this to instantiate an instance or retrieve the existing instance.
- If the singleton requires args to be instantiated, include them the first
- time you call getInstance.
- """
- if cls._isInstantiated():
- if len(lstArgs) != 0:
- raise SingletonException, 'If no supplied args, singleton must already be instantiated, or __init__ must require no args'
- else:
- if cls._getConstructionArgCountNotCountingSelf() > 0 and len(lstArgs) <= 0:
- raise SingletonException, 'If the singleton requires __init__ args, supply them on first instantiation'
- instance = cls.__new__(cls)
- instance.__init__(*lstArgs)
- cls.cInstance = instance
- return cls.cInstance
- getInstance = classmethod(getInstance)
-
- def _isInstantiated(cls):
- return hasattr(cls, 'cInstance')
- _isInstantiated = classmethod(_isInstantiated)
-
- def _getConstructionArgCountNotCountingSelf(cls):
- return cls.__init__.im_func.func_code.co_argcount - 1
- _getConstructionArgCountNotCountingSelf = classmethod(_getConstructionArgCountNotCountingSelf)
diff --git a/ACE/bin/PythonACE/fuzz/_types.py b/ACE/bin/PythonACE/fuzz/_types.py
deleted file mode 100644
index d5cb851c440..00000000000
--- a/ACE/bin/PythonACE/fuzz/_types.py
+++ /dev/null
@@ -1,6 +0,0 @@
-""" Defines a number of file extension groupings """
-
-source_files = ["c", "cc", "cpp", "cxx"]
-header_files = ["h", "cc", "cpp", "cxx"]
-inline_files = ["i", "ipp", "inl", "ixx"]
-idl_files = ["idl"]
diff --git a/ACE/bin/PythonACE/fuzz/_warning_handler.py b/ACE/bin/PythonACE/fuzz/_warning_handler.py
deleted file mode 100644
index f88b43a0782..00000000000
--- a/ACE/bin/PythonACE/fuzz/_warning_handler.py
+++ /dev/null
@@ -1,53 +0,0 @@
-""" Implements a warning handler base class and a simple handler that simply
- outputs warnings to stderr. """
-
-import _singleton
-
-# Constants
-STDERR = 1
-MAILER = 2
-
-from sys import stderr
-
-class Warning_Handler (_singleton.Singleton):
- def __init__(self, handlertype=STDERR):
- """ Constructor. Type should be either STDERR or MAILER.
- There are probably better ways to do this, but it is implemented
- this way because I only wanted to have a dependancy on ldap if someone
- actually wanted to use the mailer. """
- super (Warning_Handler, self).__init__ ()
- self.messages = ""
- self.add_warning = self.default_add_warning
- self.close = self.default_close
- self.open = self.default_open
-
- if handlertype is STDERR:
- self.add_warning = self.stderr_add_warning
- elif handlertype is MAILER:
- from _mailer import Mailer
- self.handler = Mailer ()
- self.add_warning = self.handler.add_warning
- self.open = self.handler.open
- self.close = self.handler.close
- self.get_messages = self.handler.get_messages
- else:
- self.add_warning = self.stderr_add_warning
-
- def default_add_warning (self, warning_text):
- pass
-
- def default_open (self, arg = ""):
- pass
-
- def default_close (self, arg = ""):
- pass
-
- def get_messages (self):
- return self.messages
-
- def stderr_add_warning (self, warning_text):
- stderr.write (warning_text)
- return
-
-
-
diff --git a/ACE/bin/PythonACE/fuzz/check_includes.py b/ACE/bin/PythonACE/fuzz/check_includes.py
deleted file mode 100644
index 7fd8e744c90..00000000000
--- a/ACE/bin/PythonACE/fuzz/check_includes.py
+++ /dev/null
@@ -1,20 +0,0 @@
-""" Checks that includes of files in ace/tao/ciao use "" instead of <> """
-
-import _types
-type_list = _types.source_files + _types.header_files + _types.inline_files + _types.idl_files
-
-from sys import stderr
-import re
-
-regex = re.compile ("\s*#\s*include\s*(\/\*\*\/){0,1}\s*<(ace|tao|ciao|TAO|CIAO).*>")
-begin_exclude = re.compile ("FUZZ\: disable check_for_include")
-end_exclude = re.compile ("FUZZ\: enable check_for_include")
-
-error_message = ": error: contains an include to ace/tao/ciao code using <>, instead of \"\"\n"
-
-from _generic_handler import generic_handler
-
-def handler (file_name, file_content):
- return generic_handler (regex, begin_exclude, end_exclude, error_message, file_name, file_content)
-
-
diff --git a/ACE/bin/PythonACE/fuzz/check_no_tabs.py b/ACE/bin/PythonACE/fuzz/check_no_tabs.py
deleted file mode 100755
index 1fcacbc1257..00000000000
--- a/ACE/bin/PythonACE/fuzz/check_no_tabs.py
+++ /dev/null
@@ -1,16 +0,0 @@
-""" Checks that files in ace/tao/ciao do not contain tabs """
-
-import _types
-type_list = _types.source_files + _types.header_files + _types.inline_files + _types.idl_files
-
-from sys import stderr
-import re
-
-regex = re.compile ("\t")
-
-error_message = ": error: contains tab characters\n"
-
-from _generic_handler import generic_handler
-
-def handler (file_name, file_content):
- return generic_handler_no_exceptions (regex, error_message, file_name, file_content)
diff --git a/ACE/bin/PythonACE/fuzz/cpp_inline.py b/ACE/bin/PythonACE/fuzz/cpp_inline.py
deleted file mode 100644
index 1db614c103b..00000000000
--- a/ACE/bin/PythonACE/fuzz/cpp_inline.py
+++ /dev/null
@@ -1,23 +0,0 @@
-""" Checks for ACE_INLINE or and ASYS_INLINE in a .cpp file """
-from _types import source_files
-type_list = source_files
-
-
-import re
-from sys import stderr
-regex = re.compile ("(^\s*ACE_INLINE)|(^\s*ASYS_INLINE)", re.MULTILINE)
-
-error_message = ": error: ACE_INLINE or ASYS_INLINE found in .cpp file\n"
-
-def handler (file_name, file_content):
- if regex.search (file_content) != None:
- # Lets take some time to generate a detailed error report
- # since we appear to have a violation
- lines = file_content.splitlines ()
- for line in range (len (lines)):
- if regex.search (lines[line]) != None:
- stderr.write (file_name + ':' + str (line + 1) + error_message)
-
- return 1
- else:
- return 0
diff --git a/ACE/bin/PythonACE/fuzz/inline.py b/ACE/bin/PythonACE/fuzz/inline.py
deleted file mode 100644
index c981289d105..00000000000
--- a/ACE/bin/PythonACE/fuzz/inline.py
+++ /dev/null
@@ -1,19 +0,0 @@
-""" Checks that the C++ inline keyword is not used """
-
-from _types import inline_files
-type_list = inline_files
-
-from sys import stderr
-import re
-
-regex = re.compile ("(\s|^)+inline\s+")
-begin_exclude = re.compile ("FUZZ\: disable check_for_inline")
-end_exclude = re.compile ("FUZZ\: enable check_for_inline")
-
-error_message = ": error: contains a C++ inline keyword, instead of ACE_INLINE\n"
-
-from _generic_handler import generic_handler
-
-def handler (file_name, file_content):
- return generic_handler (regex, begin_exclude, end_exclude, error_message, file_name, file_content)
-
diff --git a/ACE/bin/PythonACE/fuzz/math_include.py b/ACE/bin/PythonACE/fuzz/math_include.py
deleted file mode 100644
index cedbddb0b31..00000000000
--- a/ACE/bin/PythonACE/fuzz/math_include.py
+++ /dev/null
@@ -1,19 +0,0 @@
-""" Checks that the C++ inline keyword is not used """
-
-import _types
-type_list = _types.source_files + _types.header_files + _types.inline_files
-
-from sys import stderr
-import re
-
-regex = re.compile ("^\s*#\s*include\s*(\/\*\*\/){0,1}\s*\<math\.h\>")
-begin_exclude = re.compile ("FUZZ\: disable check_math_include")
-end_exclude = re.compile ("FUZZ\: enable check_math_include")
-
-error_message = ": error: contains an include to math.h\n"
-
-from _generic_handler import generic_handler
-
-def handler (file_name, file_content):
- return generic_handler (regex, begin_exclude, end_exclude, error_message, file_name, file_content)
-
diff --git a/ACE/bin/PythonACE/fuzz/max_filename.py b/ACE/bin/PythonACE/fuzz/max_filename.py
deleted file mode 100644
index 26932064258..00000000000
--- a/ACE/bin/PythonACE/fuzz/max_filename.py
+++ /dev/null
@@ -1,16 +0,0 @@
-""" Checks that filenames are the correct length """
-
-type_list = ["*"]
-
-max_filename_length = 50
-
-from os.path import split
-from sys import stderr
-
-def handler (file_name, file_content):
- path, filename = split (file_name)
- if len (filename) >= max_filename_length:
- stderr.write (file_name + ":0: error: File name meets or exceeds maximum allowable length ("
- + str (max_filename_length) + ")\n")
- return 1
- return 0
diff --git a/ACE/bin/PythonACE/fuzz/max_project_len.py b/ACE/bin/PythonACE/fuzz/max_project_len.py
deleted file mode 100644
index e00c7937026..00000000000
--- a/ACE/bin/PythonACE/fuzz/max_project_len.py
+++ /dev/null
@@ -1,27 +0,0 @@
-""" Checks that project names are not too long """
-
-from max_filename import max_filename_length
-
-type_list = ["mpc"]
-
-max_proj_len = max_filename_length - 12 # GNUmakefile.
-
-from sys import stderr
-import re
-
-regex = re.compile ("\s*project\s*\((\w+)\)")
-
-def handler (file_name, file_content):
- match = regex.search (file_content)
- if match == None:
- return 0
- else:
- for group in match.groups ():
- if (len (group) >= max_proj_len):
- stderr.write (file_name + ":0: error: Project named " + group +
- " meets or exceeds the maximum project name length of " +
- str (max_proj_len) + " characters\n")
-
- return 1
-
-
diff --git a/ACE/bin/PythonACE/fuzz/newline.py b/ACE/bin/PythonACE/fuzz/newline.py
deleted file mode 100644
index 39847e05c65..00000000000
--- a/ACE/bin/PythonACE/fuzz/newline.py
+++ /dev/null
@@ -1,17 +0,0 @@
-""" Checks that the file has a newline at the end. """
-
-type_list = ["cpp", "h", "inl", "html", "idl", "pl"]
-
-import re
-from sys import stderr
-
-regex = re.compile ("\n\Z")
-
-def handler (file_name, file_content):
- if regex.search (file_content) == None:
- stderr.write (file_name + ":0: error: " + file_name + " lacks a newline at the end of the file.\n")
- return 1
- else:
- return 0
-
-
diff --git a/ACE/bin/PythonACE/fuzz/no_conflict_markers.py b/ACE/bin/PythonACE/fuzz/no_conflict_markers.py
deleted file mode 100644
index 62066b42333..00000000000
--- a/ACE/bin/PythonACE/fuzz/no_conflict_markers.py
+++ /dev/null
@@ -1,20 +0,0 @@
-""" Checks that the file does not contain SVN conflict markers """
-
-
-type_list = ["*"]
-
-from sys import stderr
-import re
-
-regex = re.compile ("^<<<<<<< \.|>>>>>>> \.r|^=======$", re.MULTILINE)
-begin_exclude = re.compile ("FUZZ\: disable conflict_marker_check")
-end_exclude = re.compile ("FUZZ\: enable conflict_marker_check")
-
-error_message = ": error: contains a SVN conflict marker. Please resolve the conflict before committing.\n"
-
-from _generic_handler import generic_handler
-
-def handler (file_name, file_content):
- return generic_handler (regex, begin_exclude, end_exclude, error_message, file_name, file_content)
-
-
diff --git a/ACE/bin/PythonACE/fuzz/noncvs.py b/ACE/bin/PythonACE/fuzz/noncvs.py
deleted file mode 100644
index de52422c80d..00000000000
--- a/ACE/bin/PythonACE/fuzz/noncvs.py
+++ /dev/null
@@ -1,12 +0,0 @@
-""" Catches most files disallowed in CVS """
-
-type_list = ["icc", "ncb", "opt", "zip", "dsw",
- "vcproj", "dsw", "bor", "vcp", "pdb",
- "o", "ilk", "pyc", "so", "dll", "lib" ]
-
-from sys import stderr
-
-def handler (file_name, file_content):
- stderr.write (file_name + ":0: error: This file should not be checked into the repository\n")
- return 1
-
diff --git a/ACE/bin/PythonACE/fuzz/ptr_arith_t.py b/ACE/bin/PythonACE/fuzz/ptr_arith_t.py
deleted file mode 100644
index 4ee73babb43..00000000000
--- a/ACE/bin/PythonACE/fuzz/ptr_arith_t.py
+++ /dev/null
@@ -1,17 +0,0 @@
-""" Checks that ptr_arith_t usage in source code. ptr_arithh_t is non-portable
- use ptrdiff_t instead. """
-
-import _types
-type_list = _types.source_files + _types.header_files + _types.inline_files
-
-from sys import stderr
-import re
-
-regex = re.compile ("(ptr_arith_t )|(ptr_arith_t,)")
-error_message = ": error: contains a non portable reference to ptr_arith_t, use ptrdiff_t instead.\n"
-
-from _generic_handler import generic_handler_no_exceptions
-
-def handler (file_name, file_content):
- return generic_handler_no_exceptions (regex, error_message, file_name, file_content)
-
diff --git a/ACE/bin/PythonACE/fuzz/refcountservantbase.py b/ACE/bin/PythonACE/fuzz/refcountservantbase.py
deleted file mode 100644
index 31d8d5bb3a9..00000000000
--- a/ACE/bin/PythonACE/fuzz/refcountservantbase.py
+++ /dev/null
@@ -1,17 +0,0 @@
-""" Checks that an obsolete PortableServer::RefCountServantBase is not used """
-
-from _types import header_files
-type_list = header_files
-
-from sys import stderr
-import re
-
-regex = re.compile ("RefCountServantBase")
-
-error_message = ": error: reference to deprecated PortableServer::RefCountServantBase\n"
-
-from _generic_handler import generic_handler_no_exceptions
-
-def handler (file_name, file_content):
- return generic_handler_no_exceptions (regex, error_message, file_name, file_content)
-
diff --git a/ACE/bin/PythonACE/fuzz/streams_include.py b/ACE/bin/PythonACE/fuzz/streams_include.py
deleted file mode 100644
index 24def75fd66..00000000000
--- a/ACE/bin/PythonACE/fuzz/streams_include.py
+++ /dev/null
@@ -1,19 +0,0 @@
-""" Checks for inclusion of a non efficient streams include """
-
-import _types
-type_list = _types.source_files +_types. header_files + _types.inline_files
-
-import re
-
-regex = re.compile ("^\s*#\s*include\s*(\/\*\*\/){0,1}\s*\"ace\/streams\.h\"")
-begin_exclude = re.compile ("FUZZ\: disable check_for_streams_include")
-end_exclude = re.compile ("FUZZ\: enable check_for_streams_include")
-
-error_message = ": warning: expensive ace/streams.h included; consider ace/iosfwd.h\n"
-
-from _generic_handler import generic_handler
-def handler (file_name, file_content):
- return generic_handler (regex, begin_exclude,
- end_exclude, error_message,
- file_name, file_content, True)
-
diff --git a/ACE/bin/PythonACE/fuzz/verify_changelog.py b/ACE/bin/PythonACE/fuzz/verify_changelog.py
deleted file mode 100644
index b84f2b3d147..00000000000
--- a/ACE/bin/PythonACE/fuzz/verify_changelog.py
+++ /dev/null
@@ -1,13 +0,0 @@
-""" Verifies that changelogs obey certain properties """
-
-type_list = [""]
-
-from sys import stderr
-import re
-
-backslashes = re.compile ("")
-
-def handler (filename, filetext):
- return 0
-
-
diff --git a/ACE/bin/ace_components b/ACE/bin/ace_components
index 23bfeb29149..34cc45f2735 100755
--- a/ACE/bin/ace_components
+++ b/ACE/bin/ace_components
@@ -6,11 +6,11 @@
# GNUmakefiles and scripts. See ACE_wrappers/ace/GNUmakefile for an
# example.
#
-usage="usage: $0 --ace | --orbsvcs | --tao | --pace \
+usage="usage: $0 --ace | --orbsvcs | --tao \
[--remove | --set \" <components list> \"]"
####
-#### Make sure that PACE_ROOT, ACE_ROOT, and TAO_ROOT are set.
+#### Make sure that ACE_ROOT, and TAO_ROOT are set.
####
if [ ! "$ACE_ROOT" ]; then
echo $0': your ACE_ROOT environment variable is not set!' 1>&2
@@ -20,10 +20,6 @@ if [ ! "$TAO_ROOT" ]; then
TAO_ROOT=$ACE_ROOT/TAO
export TAO_ROOT
fi
-if [ ! "$PACE_ROOT" ]; then
- PACE_ROOT=$ACE_ROOT/PACE
- export PACE_ROOT
-fi
####
#### Process command line arguments.
@@ -34,7 +30,6 @@ if [ $# -ge 1 ]; then
--orbsvcs)
components_file=$TAO_ROOT/orbsvcs/orbsvcs/ORBSVCS_COMPONENTS.list ;;
--tao) components_file=$TAO_ROOT/tao/TAO_COMPONENTS.list ;;
- --pace) components_file=$PACE_ROOT/PACE_COMPONENTS.list ;;
*) echo $usage; exit -1 ;;
esac
shift
diff --git a/ACE/bin/ace_install_pkgconfig.pl b/ACE/bin/ace_install_pkgconfig.pl
new file mode 100755
index 00000000000..587b7c3b277
--- /dev/null
+++ b/ACE/bin/ace_install_pkgconfig.pl
@@ -0,0 +1,46 @@
+eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}'
+ & eval 'exec perl -w -S $0 $argv:q'
+ if 0;
+# ********************************************************************
+# $Id$
+# ace_install_pkgconfig.pl - Creates *.pc files for pkg-config in the
+# installed location, based on the *.pc.in
+# files from the source tree, with @foo@
+# variables replaced with their values.
+# Called from the MPC-generated makefiles.
+# ********************************************************************
+
+use strict;
+use Getopt::Long;
+
+my ($prefix, $libdir, $libs, $destdir, $version, %custom);
+GetOptions('prefix=s' => \$prefix, 'libdir=s' => \$libdir, 'libs=s' => \$libs,
+ 'destdir=s' => \$destdir,
+ 'version=s' => \$version, 'custom=s' => \%custom);
+
+my %subs = ('LIBS' => $libs, 'VERSION' => $version, 'exec_prefix' => $prefix,
+ 'prefix' => $prefix, 'includedir' => "$prefix/include",
+ 'libdir' => "$prefix/$libdir");
+
+for my $k (keys %custom) {
+ $subs{$k} = $custom{$k};
+}
+
+my $pcdir = "${destdir}$prefix/$libdir/pkgconfig";
+if (scalar @ARGV && ! -d $pcdir) {
+ mkdir($pcdir, 0755);
+}
+
+for my $file (@ARGV) {
+ open IN, $file;
+ my $pcfile = $file;
+ $pcfile =~ s/\.in$//;
+ open OUT, ">$pcdir/$pcfile";
+ while (<IN>) {
+ s/@(\w+)@/exists $subs{$1} ? $subs{$1} : $&/ge;
+ print OUT $_;
+ }
+ close OUT;
+ close IN;
+}
+
diff --git a/ACE/bin/ace_tests.lst b/ACE/bin/ace_tests.lst
index 340782ab47f..11f1f3987c7 100644
--- a/ACE/bin/ace_tests.lst
+++ b/ACE/bin/ace_tests.lst
@@ -16,3 +16,4 @@ protocols/tests/HTBP/ping/run_test.pl: !NO_UUID !nsk !LynxOS !ACE_FOR_TAO !VxWor
protocols/tests/HTBP/Send_Recv_Tests/run_test.pl: !NO_UUID !nsk !LynxOS !ACE_FOR_TAO !VxWorks !LabVIEW_RT
protocols/tests/HTBP/Send_Large_Msg/run_test.pl: !NO_UUID !nsk !LynxOS !ACE_FOR_TAO !VxWorks !LabVIEW_RT
protocols/tests/HTBP/Reactor_Tests/run_test.pl: !NO_UUID !nsk !LynxOS !ACE_FOR_TAO !VxWorks !LabVIEW_RT
+tests/non_mpc_makefile/Bug_3708_Regression.pl: !ARCH
diff --git a/ACE/bin/auto_run_tests.pl b/ACE/bin/auto_run_tests.pl
index 6f26303157b..e512278686a 100755
--- a/ACE/bin/auto_run_tests.pl
+++ b/ACE/bin/auto_run_tests.pl
@@ -17,7 +17,7 @@ use English;
use Getopt::Std;
use Cwd;
-use Env qw(ACE_ROOT PATH TAO_ROOT CIAO_ROOT);
+use Env qw(ACE_ROOT PATH TAO_ROOT CIAO_ROOT DANCE_ROOT);
if (!defined $TAO_ROOT && -d "$ACE_ROOT/TAO") {
$TAO_ROOT = "$ACE_ROOT/TAO";
@@ -25,6 +25,9 @@ if (!defined $TAO_ROOT && -d "$ACE_ROOT/TAO") {
if (!defined $CIAO_ROOT && -d "$ACE_ROOT/TAO/CIAO") {
$CIAO_ROOT = "$ACE_ROOT/TAO/CIAO";
}
+if (!defined $DANCE_ROOT && -d "$ACE_ROOT/TAO/CIAO/DAnCE") {
+ $CIAO_ROOT = "$ACE_ROOT/TAO/CIAO/DAnCE";
+}
################################################################################
@@ -34,16 +37,18 @@ if (!getopts ('adl:os:r:tC') || $opt_h) {
print "Runs the tests listed in auto_run_tests.lst\n";
print "\n";
print "Options:\n";
- print " -a ACE tests only\n";
- print " -c config Run the tests for the <config> configuration\n";
- print " -h display this help\n";
- print " -s sandbox Runs each program using a sandbox program\n";
- print " -o ORB test only\n";
- print " -t TAO tests (other than ORB tests) only\n";
- print " -C CIAO tests only\n";
- print " -Config cfg Run the tests for the <cfg> configuration\n";
- print " -l list Load the list and run only those tests\n";
- print " -r dir Root directory for running the tests\n";
+ print " -a ACE tests only\n";
+ print " -c config Run the tests for the <config> configuration\n";
+ print " -h Display this help\n";
+ print " -s sandbox Runs each program using a sandbox program\n";
+ print " -o ORB test only\n";
+ print " -t TAO tests (other than ORB tests) only\n";
+ print " -C CIAO and DAnCE tests only\n";
+ print " -Config cfg Run the tests for the <cfg> configuration\n";
+ print " -l list Load the list and run only those tests\n";
+ print " -r dir Root directory for running the tests\n";
+ print " -ExeSubDir dir Subdirectory for finding the executables,\n";
+
print "\n";
$ace_config_list = new PerlACE::ConfigList;
$ace_config_list->load ($ACE_ROOT."/bin/ace_tests.lst");
@@ -62,6 +67,12 @@ if (!getopts ('adl:os:r:tC') || $opt_h) {
print "CIAO Test Configs: " . $ciao_config_list->list_configs ()
. "\n";
}
+ if (defined $DANCE_ROOT) {
+ $dance_config_list = new PerlACE::ConfigList;
+ $dance_config_list->load ($DANCE_ROOT."/bin/dance_tests.lst");
+ print "DAnCE Test Configs: " . $dance_config_list->list_configs ()
+ . "\n";
+ }
exit (1);
}
@@ -81,6 +92,7 @@ push (@file_list, "$TAO_ROOT/bin/tao_other_tests.lst");
if ($opt_C) {
push (@file_list, "$CIAO_ROOT/bin/ciao_tests.lst");
+push (@file_list, "$DANCE_ROOT/bin/dance_tests.lst");
}
if ($opt_r) {
@@ -103,6 +115,9 @@ if (scalar(@file_list) == 0) {
if (-d $CIAO_ROOT) {
push (@file_list, "$CIAO_ROOT/bin/ciao_tests.lst");
}
+ if (-d $DANCE_ROOT) {
+ push (@file_list, "$DANCE_ROOT/bin/dance_tests.lst");
+ }
}
foreach my $test_lst (@file_list) {
@@ -152,11 +167,15 @@ foreach my $test_lst (@file_list) {
if ($directory =~ m:^CIAO/(.*):) {
$directory = $1;
}
+ if ($directory =~ m:^DAnCE/(.*):) {
+ $directory = $1;
+ }
$status = undef;
foreach my $path ($ACE_ROOT."/$directory",
$TAO_ROOT."/$directory",
$CIAO_ROOT."/$directory",
+ $DANCE_ROOT."/$directory",
$startdir."/$directory",
$startdir."/$orig_dir") {
if (-d $path && ($status = chdir ($path))) {
diff --git a/ACE/bin/bootstrap b/ACE/bin/bootstrap
index 9aadb28bf13..9b35e3e21da 100755
--- a/ACE/bin/bootstrap
+++ b/ACE/bin/bootstrap
@@ -70,9 +70,9 @@ if test -d m4; then
# Update the NEWS file
# For now just copy the contents of the `VERSION' file to make automake
# happy. Eventually, we should start putting real news in to it.
-# echo "Creating a NEWS file"
-# cp VERSION NEWS
+ autoupdate -f
+
# autoreconf -I m4 --install --force --symlink --verbose
autoreconf -I m4 --install --force
diff --git a/ACE/bin/cle.pl b/ACE/bin/cle.pl
index c6f0b2e2e27..1642e9622a5 100755
--- a/ACE/bin/cle.pl
+++ b/ACE/bin/cle.pl
@@ -193,6 +193,9 @@ sub usageAndExit {
" is used as the email address.\n" .
" CL_USERNAME This environment variable is used to override\n" .
" the user name (obtained from the password file).\n" .
+ " CL_CHANGELOG_FILE This environment variable is used as the\n".
+ " [ChangeLog File] argument if none is given\n".
+ " on the command line.\n".
"\n" .
" The user name and email address can be passed as a parameter to\n" .
" this script. If either is not passed, then the script will try\n" .
@@ -240,7 +243,12 @@ foreach my $arg (@ARGV) {
}
if (!defined $file) {
- $file = 'ChangeLog';
+ if (defined $ENV{CL_CHANGELOG_FILE}) {
+ $file = $ENV{CL_CHANGELOG_FILE};
+ }
+ else {
+ $file = 'ChangeLog';
+ }
}
if (!defined $name) {
my(@pwd) = ();
diff --git a/ACE/bin/clean_dsp.pl b/ACE/bin/clean_dsp.pl
index a3ff9be8205..9f3f54e63c8 100755
--- a/ACE/bin/clean_dsp.pl
+++ b/ACE/bin/clean_dsp.pl
@@ -12,8 +12,8 @@ open (FILE, "<$ARGV[0]");
loop: while (<FILE>)
{
- # Check for dependency information
-
+ # Check for dependency information
+
if (/^DEP/ || /^NODEP/) {
$in_dependency = 1;
}
@@ -22,19 +22,19 @@ loop: while (<FILE>)
$in_dependency = 0 if (!/\\$/);
goto loop;
}
-
+
# Check for empty !IF blocks
if (/^\!IF/) {
++$if_depth;
}
- push @saved_lines, $_
+ push @saved_lines, $_
if ($if_depth > 0);
if (/^\!ENDIF/) {
--$if_depth;
- print @saved_lines
+ print @saved_lines
if ($if_depth == 0 && $dirty == 1);
@saved_lines = ();
$dirty = 0;
@@ -42,9 +42,9 @@ loop: while (<FILE>)
elsif ($if_depth == 0) {
print;
}
-
+
$dirty = 1
- if ($if_depth > 0 && !/^\!/ && !/^\s+$/);
+ if ($if_depth > 0 && !/^\!/ && !/^\s+$/);
}
diff --git a/ACE/bin/copy-script.sh b/ACE/bin/copy-script.sh
index aca38ae198e..2b893b584e9 100755
--- a/ACE/bin/copy-script.sh
+++ b/ACE/bin/copy-script.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-for i in *.gz *.bz2 *.zip; do
+for i in *.gz *.bz2 *.zip *.md5; do
d=`echo $i | sed 's/\.[tz][ai][rp]/-$1&/'`
echo "Copying $i to $d"
cp -ip $i /export/www/download.dre/previous_versions/$d
diff --git a/ACE/bin/cut_cidlc.sh b/ACE/bin/cut_cidlc.sh
deleted file mode 100755
index 09f9e5de913..00000000000
--- a/ACE/bin/cut_cidlc.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/bash
-# $Id$
-
-function strip-binary {
- mkdir -p cut_cidlc/$1
- cd cut_cidlc/$1
- cp /web/users/isisbuilds/CIDLC/$1/cidlc .
- strip cidlc
- bzip2 cidlc
- mv cidlc.bz2 cidlc-$2.bz2
-}
-
-case "$1" in
- gnu-linux)
- strip-binary $1 $2
- ;;
-
- solaris-sparc)
- strip-binary "Solaris/SPARC" $2
- ;;
-
- solaris-x86)
- strip-binary "Solaris/x86" $2
- ;;
-
- darwin)
- strip-binary "Darwin/PowerPC" $2
- ;;
-
- *)
- ssh tango.dre.vanderbilt.edu ~/cut_cidlc.sh gnu-linux $1
- ssh sparc.dre.vanderbilt.edu ~/cut_cidlc.sh solaris-sparc $1
- ssh corona.dre.vanderbilt.edu ~/cut_cidlc.sh solaris-x86 $1
- ssh abbarach.dre.vanderbilt.edu ~/cut_cidlc.sh darwin $1
-
- cd cut_cidlc
- cp gnu-linux/cidlc-$1.bz2 /web/www/cidlc/binary/gnu-linux/i386/
- cp Solaris/SPARC/cidlc-$1.bz2 /web/www/cidlc/binary/solaris/SPARC/
- cp Solaris/x86/cidlc-$1.bz2 /web/www/cidlc/binary/solaris/x86/
- cp Darwin/PowerPC/cidlc-$1.bz2 /web/www/cidlc/binary/darwin/powerpc/
-
- #Grab windows
- cp /web/users/isisbuilds/CIDLC/Win32/cidlc.exe .
- zip ./cidlc-$1.zip ./cidlc.exe
- rm ./cidlc.exe
- cp ./cidlc-$1.zip /web/www/cidlc/binary/windows/i386/
-
- cd ..
- rm -rf cut_cidlc
- ;;
-esac
-
-exit 0
-
-
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..8edc6515d7b 100755
--- a/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
+++ b/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
@@ -1,10 +1,12 @@
-if test -z $1; then olddate=2009_02_09; else olddate=$1; fi
-if test -z $2; then prefix=`date -u +%Y%m%d%a`; else prefix=$2; fi
+if test -z $1; then olddate=2011_06_23; else olddate=$1; fi
+if test -z $2; then newdate=`date -u +%Y_%m_%d`; else newdate=$2; fi
+if test -z $3; then prefix=`date -u +%Y%m%d%a`; else prefix=$3; fi
if test -z $ACE_ROOT; then ACE_ROOT=..; fi
if test -z $TAO_ROOT; then TAO_ROOT=${ACE_ROOT}/TAO; fi
if test -z $CIAO_ROOT; then CIAO_ROOT=${TAO_ROOT}/CIAO; fi
+if test -z $DANCE_ROOT; then DANCE_ROOT=${TAO_ROOT}/DAnCE; fi
#
-grep -h \!FIXED_BUGS_ONLY ${ACE_ROOT}/tests/*.lst ${ACE_ROOT}/bin/*.lst ${TAO_ROOT}/bin/*.lst ${CIAO_ROOT}/bin/*.lst | sed -e "s/^\([^\:]*\).*/\1/" | sed -e "s/\(\/run_test.pl\)\?\s*$//" > ${prefix}-Ignore.txt
+grep -h \!FIXED_BUGS_ONLY ${ACE_ROOT}/tests/*.lst ${ACE_ROOT}/bin/*.lst ${TAO_ROOT}/bin/*.lst ${CIAO_ROOT}/bin/*.lst ${DANCE_ROOT}/bin/*.lst | sed -e "s/^\([^\:]*\).*/\1/" | sed -e "s/\(\/run_test.pl\)\?\s*$//" > ${prefix}-Ignore.txt
#
-perl ${ACE_ROOT}/bin/diff-builds.pl -r -D $olddate -D `date -u +%Y_%m_%d` | perl -ne 'print unless /^(\@\@|[ \-][a-zA-Z])/' | grep -v -f ${prefix}-Ignore.txt | tee ${prefix}-Builds.txt | grep '+[a-zA-Z]' | sort | uniq -c | sort -n -r -s | sort -k3 -r -s > ${prefix}-Tests.txt
-perl ${ACE_ROOT}/bin/diff-builds.pl -D $olddate -D `date -u +%Y_%m_%d` | perl -ne 'print unless /^(\@\@|[ \-][a-zA-Z])/' | grep -v -f ${prefix}-Ignore.txt | grep '+[a-zA-Z]' | sort | uniq -c | sort -n -r -s > ${prefix}-Tests-NoTestRev.txt
+perl ${ACE_ROOT}/bin/diff-builds.pl -r -D $olddate -D $newdate | perl -ne 'print unless /^(\@\@|[ \-][a-zA-Z])/' | grep -v -f ${prefix}-Ignore.txt | tee ${prefix}-Builds.txt | grep '+[a-zA-Z]' | sort | uniq -c | sort -n -r -s | sort -k3 -r -s > ${prefix}-Tests.txt
+perl ${ACE_ROOT}/bin/diff-builds.pl -D $olddate -D $newdate | perl -ne 'print unless /^(\@\@|[ \-][a-zA-Z])/' | grep -v -f ${prefix}-Ignore.txt | grep '+[a-zA-Z]' | sort | uniq -c | sort -n -r -s > ${prefix}-Tests-NoTestRev.txt
diff --git a/ACE/bin/diff-builds.pl b/ACE/bin/diff-builds.pl
index 292f4b54e9a..6f001f5da5e 100755
--- a/ACE/bin/diff-builds.pl
+++ b/ACE/bin/diff-builds.pl
@@ -18,8 +18,8 @@ my $append_revision_to_new_test_fails = 0; # Default to not doing this.
# The root of the test statistics
my $teststaturl = "http://download.theaceorb.nl/teststat/builds/";
-my $allbuildsurl = "http://download.theaceorb.nl/teststat/buildscore.txt";
-my $cleanbuildsurl = "http://download.theaceorb.nl/teststat/cleanbuildtests.txt";
+my $allbuildsurl = "http://download.theaceorb.nl/teststat/buildscore";
+my $cleanbuildsurl = "http://download.theaceorb.nl/teststat/cleanbuildtests";
# Determine the available timestamps for a build on a date,
# by scanning the index page (build.html)
@@ -268,19 +268,19 @@ if ($#builds == -1 && $#dates >= 0)
{
my %revisions = {};
- if ($clean_builds_only) {
- find_builds (\@builds, $cleanbuildsurl, 8, \%revisions, 7);
- }
- else {
- find_builds (\@builds, $allbuildsurl, 4, \%revisions, 3);
- }
-
# only the start date given - implies we should
# use the today's date
if ($#dates == 0) {
$dates[1] = strftime ("%Y_%m_%d", gmtime);
}
+ if ($clean_builds_only) {
+ find_builds (\@builds, $cleanbuildsurl . "-" . $dates[1] . ".txt" , 8, \%revisions, 7);
+ }
+ else {
+ find_builds (\@builds, $allbuildsurl . "-" . $dates[1] . ".txt" , 4, \%revisions, 3);
+ }
+
foreach $build (sort @builds) {
$files[0] = $files[1] = $build;
differentiate (\@files, \@dates, $revisions{$build} );
diff --git a/ACE/bin/doxygen-convert-h.pl b/ACE/bin/doxygen-convert-h.pl
index 279359eb41b..95404d41122 100755
--- a/ACE/bin/doxygen-convert-h.pl
+++ b/ACE/bin/doxygen-convert-h.pl
@@ -49,7 +49,7 @@ sub recursive_find {
}
else {
push(@rfiles, $full)
- if ($f =~ /\.(h|hxx|hpp|hh|inl|cpp|cxx|cc|c|C)$/)
+ if ($f =~ /\.(h|hxx|hpp|hh|inl|idl|cpp|cxx|cc|c|C)$/)
;
}
}
@@ -87,7 +87,7 @@ sub verify (@)
my (@contents) = @_;
print "Verification\n" if (defined $opt_d);
-
+
my $found_id = 0;
my $found_filename = 0;
@@ -99,8 +99,8 @@ sub verify (@)
return 0 if ($found_id == 1 && $found_filename == 1);
# failed
- return 1;
-}
+ return 1;
+}
sub format_description (@)
{
@@ -146,7 +146,7 @@ sub fix_file_header (@)
push @after, $line;
next LOOP;
}
-
+
if ($state eq 'before') {
if ($line =~ /\-\*\- C\+\+ \-\*\-/) {
push @after, $line;
@@ -167,7 +167,7 @@ sub fix_file_header (@)
push @after, $line;
}
}
-
+
if ($state eq 'filename') {
if ($line =~ /\/\/ (.+)/) {
push @after, " * \@file $1\n";
@@ -188,7 +188,7 @@ sub fix_file_header (@)
### Fall through so the after can put the ending in
}
}
-
+
if ($state eq 'description') {
if ($line =~ /\= AUTHOR/) {
push @after, format_description (@description);
@@ -236,7 +236,7 @@ sub fix_file_header (@)
}
}
}
-
+
if ($state eq 'after') {
if ($line =~ /===================/) {
## print the rest
@@ -263,14 +263,14 @@ sub fix_class_headers (@)
my $classname = "";
my $state = 'outside';
- ## state =
+ ## state =
## outside = not in class
## template = stored template line
## class = started collecting lines, in case of a class
## header = after a class foo, but before any methods
print "Fixing class headers\n" if (defined $opt_d);
-
+
LOOP: foreach $line (@before) {
printf ("%10s %s", $state, $line) if (defined $opt_D);
@@ -342,7 +342,7 @@ sub fix_class_headers (@)
my $indent = $1;
push @after, "$indent/**\n";
push @after, "$indent * \@class $classname\n";
-
+
foreach $header (@headers) {
if ($header =~ /\= TITLE/) {
push @after, "$indent *\n";
@@ -417,15 +417,15 @@ sub fix_class_members (@)
my $level = 0;
print "Fixing class methods\n" if (defined $opt_d);
-
+
LOOP: foreach $line (@before) {
if ($line =~ /\{/ && $line !~ /^\s*\/\//) {
$level++;
}
- if ($line =~ /^\s*class/
- && $line !~ /\;/
- && $level == $classlevel)
+ if ($line =~ /^\s*class/
+ && $line !~ /\;/
+ && $level == $classlevel)
{
$classlevel++;
}
@@ -436,7 +436,7 @@ sub fix_class_members (@)
}
$level--;
}
-
+
printf ("%2d%2d", $level, $classlevel) if (defined $opt_D);
if ($level == $classlevel && $level > 0) {
@@ -458,7 +458,7 @@ sub fix_class_members (@)
}
elsif ($line =~ /^\s*\/\//) {
print "C $line" if (defined $opt_D);
-
+
if ($#method >= 0) {
push @comment, $line;
}
@@ -498,9 +498,9 @@ FILELOOP: foreach $file (@files) {
print "\n" if (defined $opt_d);
print "$file\n";
print "\n" if (defined $opt_d);
-
+
$fail = 0;
-
+
my @contents = ();
### Read file into @contents
@@ -517,7 +517,7 @@ FILELOOP: foreach $file (@files) {
### Verify file
print "Verifying file\n" if (defined $opt_d);
-
+
if (!defined $opt_u) {
if (verify (@contents) == 1) {
print "$file did not pass verification\n";
@@ -541,7 +541,7 @@ FILELOOP: foreach $file (@files) {
else {
if (defined $opt_s) {
print @contents;
- }
+ }
elsif (!defined $opt_D) {
### Save @contents back to the file
print "Saving\n" if (defined $opt_d);
diff --git a/ACE/bin/envinfo.cpp b/ACE/bin/envinfo.cpp
index 7a727d08818..1c659c7053b 100644
--- a/ACE/bin/envinfo.cpp
+++ b/ACE/bin/envinfo.cpp
@@ -5,7 +5,7 @@
#include "ace/OS_main.h"
#include "ace/OS_NS_sys_utsname.h"
-ACE_RCSID(bin, envinfo, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/bin/fuzz.pl b/ACE/bin/fuzz.pl
index fd10b9c7465..f4128b2bb09 100755
--- a/ACE/bin/fuzz.pl
+++ b/ACE/bin/fuzz.pl
@@ -21,10 +21,9 @@ use PerlACE::Run_Test;
#
# Add tests for these:
#
-# - not setting up the release configs correctly in dsp files
# - Guards in .h files
# - no global functions
-# - other commit_check checks, tabs, trailing spaces.
+# - other commit_check checks
#
# And others in ACE_Guidelines and Design Rules
#
@@ -33,6 +32,7 @@ use PerlACE::Run_Test;
###### END TODO
# Lists of all the files
+@files_cdp = ();
@files_cpp = ();
@files_inl = ();
@files_h = ();
@@ -42,6 +42,7 @@ use PerlACE::Run_Test;
@files_gnu = ();
@files_idl = ();
@files_pl = ();
+@files_py = ();
@files_changelog = ();
@files_makefile = ();
@files_mpc = ();
@@ -49,6 +50,10 @@ use PerlACE::Run_Test;
@files_noncvs = ();
@files_sln = ();
@files_vcproj = ();
+@files_run_pl = ();
+@files_generic = ();
+@files_doxygen = ();
+@files_conf = ();
# To keep track of errors and warnings
$errors = 0;
@@ -56,21 +61,22 @@ $warnings = 0;
##############################################################################
-# Find_Modified_Files will use 'cvs -nq' to get a list of locally modified
+# Find_Modified_Files will use 'svn -q st' to get a list of locally modified
# files to look through
sub find_mod_files ()
{
- unless (open (CVS, "cvs -nq up |")) {
- print STDERR "Error: Could not run cvs\n";
+ unless (open (SVN, "svn -q st |")) {
+ print STDERR "Error: Could not run svn\n";
exit (1);
}
- while (<CVS>) {
- if (/^[M|A] (.*)/) {
+ while (<SVN>) {
+ # 1234567 (see "svn help st" for column definitions)
+ if (/^[MA].....\s+(.*)$/) {
store_file ($1);
}
}
- close (CVS);
+ close (SVN);
}
@@ -92,7 +98,8 @@ sub find_files ()
sub store_file ($)
{
my $name = shift;
- if ($name =~ /\.(c|cc|cpp|cxx)$/i) {
+
+ if ($name =~ /\.(c|cc|cpp|cxx|tpp)$/i) {
push @files_cpp, ($name);
}
elsif ($name =~ /\.(inl|i)$/i) {
@@ -116,11 +123,17 @@ sub store_file ($)
elsif ($name =~ /\.(dsw|vcp)$/i) {
push @files_dsw, ($name);
}
- elsif ($name =~ /\.(pidl|idl)$/i) {
+ elsif ($name =~ /\.(pidl|idl|idl3|idl3p)$/i) {
push @files_idl, ($name);
}
elsif ($name =~ /\.pl$/i) {
push @files_pl, ($name);
+ if ($name =~ /^run.*\.pl$/i) {
+ push @files_run_pl, ($name);
+ }
+ }
+ elsif ($name =~ /\.py$/i) {
+ push @files_py, ($name);
}
elsif ($name =~ /\.vcproj$/i) {
push @files_vcproj, ($name);
@@ -137,9 +150,24 @@ 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);
}
+ elsif ($name =~ /\.(cdp)$/i) {
+ push @files_cdp, ($name);
+ }
+ elsif ($name =~ /\.(doxygen)$/i) {
+ push @files_doxygen, ($name);
+ }
+ elsif ($name =~ /\.(conf)$/i) {
+ if ($name =~ /\.(WCHAR_T.conf|UTF-16.conf)$/i) {
+ return;
+ }
+ push @files_conf, ($name);
+ }
+ elsif ($name =~ /\.(pm|cmd|java|sh|txt|xml)$/i) {
+ push @files_generic, ($name);
+ }
}
##############################################################################
@@ -195,8 +223,9 @@ sub check_for_inline_in_cpp ()
sub check_for_id_string ()
{
print "Running \$Id\$ string check\n";
- foreach $file (@files_cpp, @files_inl, @files_h, @files_mpc, @files_bor, @files_gnu,
- @files_html, @files_idl, @files_pl, @makefile_files) {
+ foreach $file (@files_cpp, @files_inl, @files_h, @files_mpc, @files_bor,
+ @files_gnu, @files_html, @files_idl, @files_pl,
+ @makefile_files, @files_cdp, @files_py, @files_conf) {
my $found = 0;
if (open (FILE, $file)) {
print "Looking at file $file\n" if $opt_d;
@@ -207,6 +236,12 @@ sub check_for_id_string ()
if (/\$id\$/) {
print_error ("$file:$.: Incorrect \$id\$ found (correct casing)");
}
+ if (/\$Id:\$/) {
+ print_error ("$file:$.: Incorrect \$Id:\$ found (remove colon)");
+ }
+ if (/\$Id\$/) {
+ print_error ("$file:$.: Seems to lack svn:keywords property");
+ }
}
close (FILE);
if ($found == 0) {
@@ -329,7 +364,7 @@ sub check_for_ACE_SYNCH_MUTEX ()
}
if (/FUZZ\: enable check_for_ACE_SYNCH_MUTEX/) {
$disable = 0;
- next ITERATION;
+ next;
}
if ($disable == 0 and /ACE_SYNCH_MUTEX/) {
# It is okay to use ACE_SYNCH_MUTEX in ACE
@@ -356,10 +391,34 @@ sub check_for_ACE_SYNCH_MUTEX ()
}
}
+# This test checks for not having export files in CIAO, all have to be ---
+# generated using TAO_IDL. If you have a file that must be in the repository
+# remove the generated automatically by line
+sub check_for_export_file ()
+{
+ print "Running export file check\n";
+ ITERATION: foreach $file (@files_h) {
+ if (($file =~ /.*CIAO.*export.h/) || ($file =~ /.*DAnCE.*export.h/)) {
+ if (open (FILE, $file)) {
+ print "Looking at file $file\n" if $opt_d;
+ while (<FILE>) {
+ if (/generated automatically by/) {
+ print_error ("$file:$.: file should be generated by TAO_IDL, check -Gxh** option");
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+ }
+}
+
+
# This test checks for the use of ACE_Thread_Mutex in TAO/CIAO,
# TAO_SYNCH_MUTEX should used instead to make the code build
# in single-threaded builds.
-
sub check_for_ACE_Thread_Mutex ()
{
print "Running ACE_Thread_Mutex check\n";
@@ -373,7 +432,6 @@ sub check_for_ACE_Thread_Mutex ()
}
if (/FUZZ\: enable check_for_ACE_Thread_Mutex/) {
$disable = 0;
- next ITERATION;
}
if ($disable == 0 and /ACE_Thread_Mutex/) {
# It is okay to use ACE_Thread_Mutex in ACE
@@ -394,11 +452,47 @@ sub check_for_ACE_Thread_Mutex ()
}
}
+# This test checks for the use of ACE_Guard
+# ACE_GUARD should used because it checks if we really got a lock
+# in single-threaded builds.
+sub check_for_ACE_Guard ()
+{
+ print "Running ACE_Guard check\n";
+ ITERATION: foreach $file (@files_cpp, @files_inl, @files_h) {
+ if (open (FILE, $file)) {
+ my $disable = 0;
+ print "Looking at file $file\n" if $opt_d;
+ while (<FILE>) {
+ if (/FUZZ\: disable check_for_ACE_Guard/) {
+ $disable = 1;
+ }
+ if (/FUZZ\: enable check_for_ACE_Guard/) {
+ $disable = 0;
+ next;
+ }
+ if ($disable == 0 and /ACE_Guard/) {
+ print_error ("$file:$.: found ACE_Guard, use ACE_GUARD");
+ }
+ if ($disable == 0 and /ACE_Read_Guard/) {
+ print_error ("$file:$.: found ACE_Read_Guard, use ACE_READ_GUARD");
+ }
+ if ($disable == 0 and /ACE_Write_Guard/) {
+ print_error ("$file:$.: found ACE_Write_Guard, use ACE_WRITE_GUARD");
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
# This test checks for the use of tabs, spaces should be used instead of tabs
sub check_for_tab ()
{
print "Running tabs check\n";
- ITERATION: foreach $file (@files_cpp, @files_inl, @files_h, @files_idl) {
+ ITERATION: foreach $file (@files_cpp, @files_inl, @files_h, @files_idl, @files_cdp, @files_doxygen, @files_changelog) {
if (open (FILE, $file)) {
my $disable = 0;
print "Looking at file $file\n" if $opt_d;
@@ -421,6 +515,33 @@ sub check_for_tab ()
}
}
+sub check_for_trailing_whitespace ()
+{
+ print "Running trailing_whitespaces check\n";
+ ITERATION: foreach $file (@files_cpp, @files_inl, @files_h, @files_idl,
+ @files_cdp, @files_pl, @files_generic) {
+ if (open (FILE, $file)) {
+ my $disable = 0;
+ print "Looking at file $file\n" if $opt_d;
+ while (<FILE>) {
+ if (/FUZZ\: disable check_for_trailing_whitespace/) {
+ $disable = 1;
+ }
+ if (/FUZZ\: enable check_for_trailing_whitespace/) {
+ $disable = 0;
+ }
+ if ($disable == 0 and /\s\n$/) {
+ print_error ("$file:$.: found trailing whitespace");
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
# This test checks for the lack of ACE_OS
sub check_for_lack_ACE_OS ()
{
@@ -448,11 +569,11 @@ 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";
- $OS_NS_string_symbols = "memchr|memchr_emulation|memcmp|memcpy|fast_memcpy|memmove|memset|strcat|strchr|strcmp|strcpy|strcspn|strdup|strdup_emulation|strecpy|strerror|strerror_emulation|strlen|strncat|strnchr|strncmp|strncpy|strnlen|strnstr|strpbrk|strrchr|strrchr_emulation|strsncpy|strspn|strstr|strtok|strtok_r|strtok_r_emulation";
+ $OS_NS_string_symbols = "memchr|memchr_emulation|memcmp|memcpy|fast_memcpy|memmove|memset|strcat|strchr|strcmp|strcpy|strcspn|strdup|strdup_emulation|strecpy|strerror|strerror_emulation|strsignal|strlen|strncat|strnchr|strncmp|strncpy|strnlen|strnstr|strpbrk|strrchr|strrchr_emulation|strsncpy|strspn|strstr|strtok|strtok_r|strtok_r_emulation";
$OS_NS_strings_symbols = "strcasecmp|strncasecmp|strcasecmp_emulation";
@@ -506,167 +627,167 @@ sub check_for_lack_ACE_OS ()
if($file !~ /.c$/ && $file !~ /S.cpp$/ && $file !~ /S.inl$/ && $file !~ /C.cpp$/ && $file !~ /C.inl$/) {
if($file !~ /OS_NS_arpa_inet/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_arpa_inet_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_arpa_inet.h");
}
}
if($file !~ /OS_NS_ctype/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_ctype_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_ctype.h");
}
}
if($file !~ /OS_NS_dirent/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_dirent_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_dirent.h");
}
}
if($file !~ /OS_NS_dlfcn/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_dlfcn_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_dlfcn.h");
}
}
if($file !~ /OS_NS_errno/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_errno_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_errno.h");
}
}
if($file !~ /OS_NS_fcntl/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_fcntl_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_fcntl.h");
}
}
if($file !~ /OS_NS_math/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_math_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_math.");
}
}
if($file !~ /OS_NS_netdb/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_netdb_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_netdb.h");
}
}
if($file !~ /OS_NS_poll/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_netdb_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_poll.h");
}
}
if($file !~ /OS_NS_pwd/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_pwd_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_pwd.h");
}
}
if($file !~ /OS_NS_regex/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_regex_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_regex.h");
}
}
if($file !~ /OS_NS_signal/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_signal_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_signal.h");
}
}
if($file !~ /OS_NS_stdlib/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_stdlib_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_stdlib.h");
}
}
if($file !~ /OS_NS_stdio/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_stdio_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_stdio.h");
}
}
if($file !~ /OS_NS_string/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_string_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_string.h");
}
}
if($file !~ /OS_NS_strings/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_strings_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_strings.h");
}
}
if($file !~ /OS_NS_stropts/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_stropts_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_stropts.h");
}
}
if($file !~ /OS_NS_sys_mman/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_mman_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_mman.h");
}
}
if($file !~ /OS_NS_sys_msg/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_msg_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_msg.h");
}
}
if($file !~ /OS_NS_sys_resource/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_resource_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_resource.h");
}
}
if($file !~ /OS_NS_sys_select/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_select_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_select.h");
}
}
if($file !~ /OS_NS_sys_sendfile/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_sendfile_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_sendfile.h");
}
}
if($file !~ /OS_NS_sys_shm/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_shm_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_shm.h");
}
}
if($file !~ /OS_NS_sys_socket/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_socket_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_socket.h");
}
}
if($file !~ /OS_NS_sys_stat/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_stat_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_stat.h");
}
}
if($file !~ /OS_NS_sys_time/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_time_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_time.h");
}
}
if($file !~ /OS_NS_sys_uio/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_uio_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_uio.h");
}
}
if($file !~ /OS_NS_sys_utsname/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_utsname_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_utsname.h");
}
}
if($file !~ /OS_NS_sys_wait/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_sys_wait_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_sys_wait.h");
}
}
if($file !~ /OS_NS_Thread/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_Thread_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_Thread.h");
}
}
if($file !~ /OS_NS_time/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_time_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_time.h");
}
}
if($file !~ /OS_NS_unistd/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_unistd_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_unistd.h");
}
}
if($file !~ /OS_NS_wchar/) {
if(/(\s+:{0,2}|\(:{0,2}|\s*!:{0,2}|^|\):{0,2})($OS_NS_wchar_symbols)\s*\(/ and $` !~ /\/\// and $` !~ /\/\*/ and $` !~ /\*\*+/ and $` !~ /\s+\*+\s+/) {
- print_error ("$file:$.: missing ACE_OS");
+ print_error ("$file:$.: missing ACE_OS use ace/OS_NS_wchar.h");
}
}
}
@@ -940,38 +1061,6 @@ sub check_for_streams_include ()
}
}
-# This test checks for the inclusion of OS.h.
-sub check_for_OS_h_include ()
-{
- print "Running ace/OS.h test\n";
- 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_OS_h_include/) {
- $disable = 1;
- }
- if (/FUZZ\: enable check_for_OS_h_include/) {
- $disable = 0;
- }
- if ($disable == 0
- and /^\s*#\s*include\s*\"ace\/OS\.h\"/) {
- print_error ("$file:$.: expensive ace/OS.h included; consider an OS_NS_*.h file");
- print " OS.h is very expensive in both ";
- print "compile-time and footprint. \n";
- print " Please consider including one of the ";
- print "OS_NS_*.h files instead.\n\n";
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
# This test checks for the inclusion of Synch*.h.
sub check_for_synch_include ()
{
@@ -1360,25 +1449,18 @@ sub check_for_mismatched_filename ()
sub check_for_bad_run_test ()
{
print "Running run_test.pl test\n";
- # Add the know ACE files
- if (defined $ENV{"TAO_ROOT"}) {
- push @files_lst, $ENV{"TAO_ROOT"} . "/bin/tao_orb_tests.lst";
- push @files_lst, $ENV{"TAO_ROOT"} . "/bin/tao_other_tests.lst";
- }
- if (defined $ENV{"CIAO_ROOT"}) {
- push @files_lst, $ENV{"CIAO_ROOT"} . "/bin/ciao_tests.lst";
- }
- $config_list = new PerlACE::ConfigList;
- foreach $file (@files_lst) {
- $config_list->load ($file);
- }
- $config_list->add_one_config ("FUZZ");
- @valid_files = $config_list->valid_entries ();
- foreach $file (@valid_files) {
+ foreach $file (@files_run_pl) {
if (open (FILE, $file)) {
my $is_run_test = 0;
my $sub = 0;
+ if (($file =~ /.*TAO\/examples\/Advanced.*/)) {
+ next ITERATION;
+ }
+ if (($file =~ /.*TAO\/orbsvcs\/examples\/Security\/Send_File.*/)) {
+ next ITERATION;
+ }
+
print "Looking at file $file\n" if $opt_d;
while (<FILE>) {
@@ -1403,24 +1485,32 @@ sub check_for_bad_run_test ()
print_error ("$file:$.: using \$EXE_EXT");
}
- if (m/\$PerlACE::wait_interval_for_process_creation/) {
- print_error ("$file:$.: using \$PerlACE::wait_interval_for_process_creation");
+ if (m/Sys::Hostname/) {
+ print_error ("$file:$.: using Sys::Hostname");
+ }
+
+ if (m/PerlACE::wait_interval_for_process_creation/) {
+ print_error ("$file:$.: using PerlACE::wait_interval_for_process_creation");
+ }
+
+ if (m/PerlACE::waitforfile_timed/) {
+ print_error ("$file:$.: using PerlACE::waitforfile_timed");
}
- if (m/\$PerlACE::waitforfile_timed/) {
- print_error ("$file:$.: using \$PerlACE::waitforfile_timed");
+ if (m/PerlACE::is_vxworks_test/) {
+ print_error ("$file:$.: using PerlACE::is_vxworks_test");
}
- if (m/\$PerlACE::add_lib_path/) {
- print_error ("$file:$.: using \$PerlACE::add_lib_path");
+ if (m/PerlACE::add_lib_path/) {
+ print_error ("$file:$.: using PerlACE::add_lib_path, use AddLibPath on the target");
}
if (m/PerlACE::Run_Test/) {
- print_error ("$file:$.: using PerlACE::Run_Test");
+ print_error ("$file:$.: using PerlACE::Run_Test, use PerlACE::TestTarget");
}
if (m/PerlACE::random_port/) {
- print_error ("$file:$.: using PerlACE::random_port");
+ print_error ("$file:$.: using PerlACE::random_port, use TestTarget::random_port");
}
if (m/PerlACE::Process/) {
@@ -1431,6 +1521,22 @@ sub check_for_bad_run_test ()
print_error ("$file:$.: using PerlACE::TestConfig");
}
+ if (m/ACE_RUN_VX_TGTHOST/) {
+ print_error ("$file:$.: using ACE_RUN_VX_TGTHOST, use TestTarget::HostName");
+ }
+
+ if (m/Spawn(Wait(Kill)?)?\s*\(.+\->ProcessStop.*\)/) {
+ print_error ("$file:$.: uses Stop together with Spawn");
+ }
+
+ if (m/Spawn(Wait(Kill)?)?\s*\(\d+\)/) {
+ print_error ("$file:$.: uses hardcoded timeout for Spawn");
+ }
+
+ if (m/Kill\s*\(\d+\)/) {
+ print_error ("$file:$.: uses hardcoded timeout for Kill");
+ }
+
if (m/unlink/) {
print_error ("$file:$.: using unlink");
}
@@ -1511,9 +1617,64 @@ sub check_for_absolute_ace_wrappers()
if (m/\~schmidt\/ACE_wrappers\//) {
chomp;
print_error ("$file:$.: ~schmidt/ACE_wrappers found");
- print_error ($_) if (defined $opt_v);
+ print_error ($_);
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
+# Check for generated headers in the code documentation
+sub check_for_generated_headers()
+{
+ print "Running generated headers test\n";
+ foreach $file (@files_cpp, @files_inl, @files_h) {
+ if (open (FILE, $file)) {
+ print "Looking at file $file\n" if $opt_d;
+ while (<FILE>) {
+ if (m/Code generated by the The ACE ORB \(TAO\) IDL Compiler/) {
+ chomp;
+ print_error ("$file:$.: header found");
+ print_error ($_);
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
+sub check_for_numeric_log()
+{
+ print "Running check for numeric flags in DAnCE and DDS4CCM\n";
+
+ foreach $file (@files_inl, @files_cpp, @files_h) {
+ if (open (FILE, $file)) {
+ while (<FILE>) {
+ # look for debug statements
+ if (m/DANCE_DEBUG\s*\(\s*\d*\s*,/) {
+ print_warning ("$file:$.: Found numeric log level in debug statement");
+ }
+ if (m/DANCE_ERROR\s*\(\s*\d\s*,/) {
+ print_warning ("$file:$.: Found numeric log level in error statement");
+ }
+ if (m/DANCE_TRACE_LOG\s*\(\s*\d\s*,/) {
+ print_warning ("$file:$.: Found numeric log level in trace log statement");
+ }
+ if (m/DDS4CCM_DEBUG\s*\(\s*\d*\s*,/) {
+ print_warning ("$file:$.: Found numeric log level in debug statement");
+ }
+ if (m/DDS4CCM_ERROR\s*\(\s*\d\s*,/) {
+ print_warning ("$file:$.: Found numeric log level in error statement");
}
}
+
close (FILE);
}
else {
@@ -1548,9 +1709,14 @@ sub check_for_bad_ace_trace()
$function = $1;
}
+ # print "TRACE_CHECK. Class = $class\n";
+
# Look for TRACE statements
if (m/ACE_OS_TRACE\s*\(\s*\"(.*)\"/
- || m/ACE_TRACE\s*\(\s*\"(.*)\"/) {
+ || m/ACE_TRACE\s*\(\s*\"(.*)\"/
+ || m/CIAO_TRACE\s*\(\s*\"(.*)\"/
+ || m/DANCE_TRACE\s*\(\s*\"(.*)\"/
+ || m/DDS4CCM_TRACE\s*\(\s*\"(.*)\"/) {
my $trace = $1;
# reduce the classname
@@ -1558,15 +1724,19 @@ sub check_for_bad_ace_trace()
$class = $1;
}
+ # print "TRACE_CHECK. Found a trace. Class = $class\n";
+
if ($class =~ m/([^\s^\&^\*]*)\s*$/) {
$class = $1;
}
+ # print "TRACE_CHECK. Augmenting class. Class = $class\n";
+
if ($trace !~ m/\Q$function\E/
|| ($trace =~ m/\:\:/ && !($trace =~ m/\Q$class\E/ && $trace =~ m/\Q$function\E/))) {
print_error ("$file:$.: Mismatched TRACE");
print_error ("$file:$.: I see \"$trace\" but I think I'm in \""
- . $class . "::" . $function . "\"") if (defined $opt_v);
+ . $class . "::" . $function . "\"");
}
}
}
@@ -1599,9 +1769,9 @@ sub check_for_changelog_errors ()
print_error ("$file:$.: Backslashes in file path");
}
- # Check for CVS conflict tags
+ # Check for svn conflict tags
if (m/^<<<<</ || m/^=====/ || m/^>>>>>/) {
- print_error ("$file:$.: CVS conflict markers");
+ print_error ("$file:$.: svn conflict markers");
}
}
close (FILE);
@@ -1697,15 +1867,15 @@ sub check_for_include ()
}
if ($disable == 0) {
if (/^\s*#\s*include\s*<[(ace)|(TAO)|(CIAO)]\/.*>/) {
- print_error ("$file:$.: include <ace\/..> used") if ($opt_v);
+ print_error ("$file:$.: include <ace\/..> used");
++$bad_occurance;
}
if (/^\s*#\s*include\s*<tao\/.*>/) {
- print_error ("$file:$.: include <tao\/..> used") if ($opt_v);
+ print_error ("$file:$.: include <tao\/..> used");
++$bad_occurance;
}
if (/^\s*#\s*include\s*<ciao\/.*>/) {
- print_error ("$file:$.: include <ciao\/..> used") if ($opt_v);
+ print_error ("$file:$.: include <ciao\/..> used");
++$bad_occurance;
}
}
@@ -1786,7 +1956,7 @@ sub check_for_long_file_names ()
foreach $file (@files_cpp, @files_inl, @files_h, @files_html,
@files_dsp, @files_dsw, @files_gnu, @files_idl,
@files_pl, @files_changelog, @files_makefile,
- @files_bor, @files_mpc) {
+ @files_bor, @files_mpc, @files_generic) {
if ( length( basename($file) ) >= $max_filename )
{
print_error ("File name $file meets or exceeds $max_filename chars.");
@@ -1842,6 +2012,55 @@ sub check_for_refcountservantbase ()
}
}
+sub check_for_old_documentation_style ()
+{
+ print "Running documentation style check\n";
+
+ foreach $file (@files_h, @files_cpp, @files_inl) {
+ if (open (FILE, $file)) {
+ print "Looking at file $file\n" if $opt_d;
+ while (<FILE>) {
+
+ if (/\/\/\s*\= TITLE/) {
+ print_error ("$file:$.: found old documentation style // = TITLE");
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
+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;
+ }
+
+ 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 ()
@@ -1925,25 +2144,61 @@ sub check_for_ORB_init ()
}
}
+# This test checks for the presence of an include for ace/OS.h
+# which should never occur. Only user code is allowed to include OS.h.
+sub check_for_include_OS_h ()
+{
+ print "Running the OS.h inclusion check\n";
+ 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_include_OS_h/) {
+ $disable = 1;
+ next;
+ }
+ elsif (/FUZZ\: enable check_for_include_OS_h/) {
+ $disable = 0;
+ next;
+ }
+ elsif ($disable == 0 and /^\s*#\s*include\s*<[(ace)|(TAO)|(CIAO)]\/.*>/) {
+ print_error ("$file:$.: include <ace\/..> used");
+ ++$bad_occurance;
+ }
+ else {
+ if ($disable == 0 and /^\s*#\s*include\s*"ace\/OS.h"/) {
+ print_error ("$file:$.: include ace/OS.h used");
+ }
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
##############################################################################
-use vars qw/$opt_c $opt_d $opt_h $opt_l $opt_t $opt_m $opt_v/;
+use vars qw/$opt_c $opt_d $opt_h $opt_l $opt_t $opt_m/;
if (!getopts ('cdhl:t:mv') || $opt_h) {
- print "fuzz.pl [-cdhm] [-l level] [-t test_name][file1, file2, ...]\n";
+ print "fuzz.pl [-cdhm] [-l level] [-t test_names] [file1, file2, ...]\n";
print "\n";
print " -c only look at the files passed in\n";
print " -d turn on debugging\n";
print " -h display this help\n";
print " -l level set detection level (default = 5)\n";
- print " -t test_name specify any single test to run. This will disable the run level setting\n";
- print " -m only check locally modified files (uses cvs)\n";
- print " -v verbose mode\n";
+ print " -t test_names specify comma-separated list of tests to run\n".
+ " this will disable the run level setting\n";
+ print " -m only check locally modified files (uses svn)\n";
print "======================================================\n";
print "list of the tests that could be run:\n";
print "\t check_for_noncvs_files
+ check_for_generated_headers
check_for_synch_include
- check_for_OS_h_include
check_for_streams_include
check_for_dependency_file
check_for_makefile_variable
@@ -1975,7 +2230,10 @@ if (!getopts ('cdhl:t:mv') || $opt_h) {
check_for_non_bool_operators
check_for_long_file_names
check_for_refcountservantbase
- check_for_ORB_init\n";
+ check_for_TAO_Local_RefCounted_Object
+ check_for_ORB_init
+ check_for_trailing_whitespace
+ check_for_include_OS_h\n";
exit (1);
}
@@ -1996,16 +2254,25 @@ else {
}
if ($opt_t) {
- &$opt_t();
- exit (1);
+ my @tests = split '\s*,\s*', $opt_t;
+ for my $test (@tests) {
+ &$test();
+ }
+ print "\nfuzz.pl - $errors error(s), $warnings warning(s)\n";
+ exit ($errors > 0) ? 1 : 0;
}
print "--------------------Configuration: Fuzz - Level ",$opt_l,
"--------------------\n";
+check_for_export_file () if ($opt_l >= 4);
+check_for_trailing_whitespace () if ($opt_l >= 4);
+check_for_lack_ACE_OS () if ($opt_l >= 6);
+check_for_ACE_Guard () if ($opt_l >= 1);
+check_for_generated_headers () if ($opt_l >= 6);
check_for_bad_run_test () if ($opt_l >= 5);
-check_for_deprecated_macros () if ($opt_l > 1 );
-check_for_refcountservantbase () if ($opt_l > 1 );
+check_for_deprecated_macros () if ($opt_l >= 1);
+check_for_refcountservantbase () if ($opt_l >= 1);
check_for_msc_ver_string () if ($opt_l >= 3);
check_for_empty_files () if ($opt_l >= 1);
check_for_noncvs_files () if ($opt_l >= 1);
@@ -2018,13 +2285,11 @@ check_for_newline () if ($opt_l >= 1);
check_for_ACE_Thread_Mutex () if ($opt_l >= 1);
check_for_ACE_SYNCH_MUTEX () if ($opt_l >= 1);
check_for_tab () if ($opt_l >= 1);
-check_for_lack_ACE_OS () if ($opt_l >= 6);
check_for_exception_spec () if ($opt_l >= 1);
check_for_NULL () if ($opt_l >= 1);
check_for_inline () if ($opt_l >= 2);
check_for_math_include () if ($opt_l >= 3);
check_for_synch_include () if ($opt_l >= 6);
-check_for_OS_h_include () if ($opt_l >= 6);
check_for_line_length () if ($opt_l >= 8);
check_for_preprocessor_comments () if ($opt_l >= 7);
check_for_tchar () if ($opt_l >= 4);
@@ -2038,10 +2303,14 @@ check_for_changelog_errors () if ($opt_l >= 4);
check_for_ptr_arith_t () if ($opt_l >= 4);
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_ORB_init ();
-
-print "\nFuzz.pl - $errors error(s), $warnings warning(s)\n";
+check_for_long_file_names () if ($opt_l >= 1);
+check_for_improper_main_declaration () if ($opt_l >= 1);
+check_for_TAO_Local_RefCounted_Object () if ($opt_l >= 1);
+check_for_include_OS_h () if ($opt_l >= 1);
+check_for_numeric_log () if ($opt_l >= 3);
+check_for_ORB_init () if ($opt_l >= 1);
+check_for_old_documentation_style () if ($opt_l >= 6);
+
+print "\nfuzz.pl - $errors error(s), $warnings warning(s)\n";
exit (1) if $errors > 0;
diff --git a/ACE/bin/fuzz.py b/ACE/bin/fuzz.py
deleted file mode 100755
index cdf38de87f5..00000000000
--- a/ACE/bin/fuzz.py
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python
-""" Implements a command line client for the Python Fuzz module, much like fuzz.pl """
-
-def parse_args ():
- from optparse import OptionParser
-
- parser = OptionParser ("usage %prog [options] <files or directories to check>")
-
- parser.add_option ("--exclude-dirs", dest="exclude_dir", action="append", default=list (),
- help="A regular expression that when matched, will cause directories to be skipped.")
- parser.add_option ("--exclude-files", dest="exclude_file", action="append", default=list (),
- help="A regular expression that when matched, will cause files to be skipped.")
-
- return parser.parse_args ()
-
-
-import PythonACE.fuzz
-
-class Fuzz_Client:
- def __init__ (self, opts, args):
- import re
-
- self.ex_dirs = map (re.compile, opts.exclude_dir)
- self.ex_files = map (re.compile, opts.exclude_file)
- self.args = args
-
- def walk_dir (self, directory):
- import os
-
- for root, dirs, files in os.walk (directory):
- # Prune out .svn directories
- for item in dirs:
- if item == ".svn":
- dirs.remove (item)
-
- # Prune out exclusions
- for regex in self.ex_dirs:
- if regex.search (item) != None:
- dirs.remove (item)
-
- for item in files:
- for regex in self.ex_files:
- if regex.serch (item) != None:
- continue
- self.check_file (os.path.join (root, item))
-
- def check_file (self, the_file):
- f = open (the_file, 'r')
- PythonACE.fuzz.fuzz_check (the_file, f.read ())
- f.close ()
-
- def main (self):
- for item in self.args:
- import os.path
- if os.path.isfile (item):
- self.check_file (item)
- elif os.path.isdir (item):
- self.walk_dir (item)
- else:
- print item + " is not a file or directory."
-
-if __name__ == "__main__":
- opts, args = parse_args ()
- Fuzz = Fuzz_Client(opts, args)
- Fuzz.main ()
-
diff --git a/ACE/bin/g++_metric.sh b/ACE/bin/g++_metric.sh
index 93af97932a1..b24fc2bf355 100755
--- a/ACE/bin/g++_metric.sh
+++ b/ACE/bin/g++_metric.sh
@@ -17,12 +17,12 @@ do
shift
target=$1
break
- fi
+ fi
shift
done
# echo out "(%x)", the return value from g++, so the script processes the output
-# will only use times for successful compilations, i.e., "(0)".
+# will only use times for successful compilations, i.e., "(0)".
/usr/bin/time -f "//compile time(%x): ${PWD#$ACE_ROOT/}/${target} %U %S" g++ $commandline
retval=$?
diff --git a/ACE/bin/generate_doxygen.pl b/ACE/bin/generate_doxygen.pl
index e001fb827de..3fd02934168 100755
--- a/ACE/bin/generate_doxygen.pl
+++ b/ACE/bin/generate_doxygen.pl
@@ -21,11 +21,15 @@ if (!defined $TAO_ROOT) {
if (!defined $CIAO_ROOT) {
$CIAO_ROOT = "$TAO_ROOT/CIAO";
}
+if (!defined $DANCE_ROOT) {
+ $DANCE_ROOT = "$TAO_ROOT/DAnCE";
+}
$is_release = 0;
$exclude_ace = 0;
$exclude_tao = !-r "$TAO_ROOT/VERSION";
$exclude_ciao = !-r "$CIAO_ROOT/VERSION";
+$exclude_dance = !-r "$DANCE_ROOT/VERSION";
$verbose = 0;
$perl_path = '/usr/bin/perl';
$html_output_dir = '.';
@@ -44,6 +48,7 @@ if (defined $DDS_ROOT && -r "$DDS_ROOT/VERSION") {
'ace_rmcast',
'ace_ssl',
'ace_qos',
+ 'ace_inet',
'acexml');
@TAO_DOCS = ('tao'
,'tao_anytypecode'
@@ -73,11 +78,10 @@ if (defined $DDS_ROOT && -r "$DDS_ROOT/VERSION") {
,'tao_costime'
,'tao_costrader'
,'tao_portablegroup'
- ,'tao_pss'
,'tao_ifr');
-@CIAO_DOCS = ('ciao_config_handlers'
- ,'ciao_DAnCE'
+@CIAO_DOCS = ('ciao_dds4ccm'
,'ciao');
+@DANCE_DOCS = ('DAnCE');
@DDS_DOCS = ('dds');
# Modify defaults using the command line arguments
@@ -92,10 +96,11 @@ if (!-r "$ACE_ROOT/ace/config.h") {
$wrote_configh = 1;
}
-&generate_doxy_files ('ACE', "$ACE_ROOT", @ACE_DOCS) if (!$exclude_ace);
-&generate_doxy_files ('TAO', "$TAO_ROOT", @TAO_DOCS) if (!$exclude_tao);
-&generate_doxy_files ('CIAO', "$CIAO_ROOT", @CIAO_DOCS) if (!$exclude_ciao);
-&generate_doxy_files ('DDS', "$DDS_ROOT", @DDS_DOCS) if $dds;
+&generate_doxy_files ('ACE', " $ACE_ROOT", " $ACE_ROOT/VERSION", @ACE_DOCS) if (!$exclude_ace);
+&generate_doxy_files ('TAO', " $TAO_ROOT", " $TAO_ROOT/VERSION", @TAO_DOCS) if (!$exclude_tao);
+&generate_doxy_files ('CIAO', " $CIAO_ROOT", " $CIAO_ROOT/VERSION", @CIAO_DOCS) if (!$exclude_ciao);
+&generate_doxy_files ('DANCE'," $DANCE_ROOT", " $DANCE_ROOT/VERSION", @DANCE_DOCS) if (!$exclude_dance);
+&generate_doxy_files ('DDS', "$DDS_ROOT", " $DDS_ROOT/VERSION", @DDS_DOCS) if $dds;
unlink "$ACE_ROOT/ace/config.h" if $wrote_configh;
@@ -114,6 +119,8 @@ sub parse_args {
$exclude_tao = 1;
} elsif ($ARGV[0] eq "-exclude_ciao") {
$exclude_ciao = 1;
+ } elsif ($ARGV[0] eq "-exclude_dance") {
+ $exclude_dance = 1;
} elsif ($ARGV[0] eq "-include_dds") {
$dds = 1;
} elsif ($ARGV[0] eq "-verbose") {
@@ -145,8 +152,8 @@ sub generate_doxy_files {
my $KIT = shift;
my $ROOT_DIR = shift;
+ my $VERSION_FILE= shift;
my @DOCS = @_;
- my $VERSION_FILE = "$ROOT_DIR/VERSION";
my $VERSION = 'Snapshot ('.
POSIX::strftime("%Y/%m/%d-%H:%M", localtime)
@@ -292,7 +299,7 @@ sub get_versions () {
my ($major_version, $minor_version, $beta_version);
open (VERSION, '<'.$VERSION_FILE) ||
- die "$0: unable to open VERSION\n";
+ die "$0: unable to open $VERSION_FILE\n";
while (<VERSION>) {
chomp;
if (/$KIT version (\d+)\.(\d+)\.(\d+)/) {
diff --git a/ACE/bin/generate_rel_manpages b/ACE/bin/generate_rel_manpages
index 0cd9aad5667..b0579121edc 100755
--- a/ACE/bin/generate_rel_manpages
+++ b/ACE/bin/generate_rel_manpages
@@ -11,12 +11,7 @@ require Cwd;
###########
###### Sanity Checks
##########
-my $hostname;
-chomp ($hostname = $ENV{'HOSTNAME'} || `uname -n`);
-unless ("$hostname" eq 'naboo') {
- #### For efficiency sake . . .
- die "$0: must run on host naboo.dre.vanderbilt.edu\n";
-}
+
my $perl_path = '/usr/bin/perl';
my $status= 0;
@@ -26,15 +21,8 @@ my $status= 0;
my $doxy_path = '/usr/local/bin';
-my $doxy_version = '1.5.8';
-
-&can_run($doxy_path.'/doxygen --version | grep '.$doxy_version.' >/dev/null') ||
- die "$0: doxygen path or version incorrect, please fix the script\n";
-
$ENV{'PATH'} = $ENV{'PATH'}.':'.$doxy_path;
-
-
print "Starting doxygen document generation \n";
my $chgrp = 'chgrp';
@@ -44,7 +32,7 @@ my $egrep = 'egrep';
my $find = 'find';
my $gzip = 'gzip';
my $bzip = 'bzip2';
-my $make = 'make -f Release -s';
+my $tar = 'tar';
my $mv = 'mv -f';
my $scp = 'scp ';
my $rm = 'rm -f';
@@ -65,11 +53,6 @@ my $bin_files =
"\"\\.mak|\\.mdp|\\.ide|\\.exe\|\\.ico\|\\.gz\|\\.zip\|" .
"\\.gif|\\.vcp|\\.vcproj|\\.vcw|\\.sln\"";
-my $dest = 'bczar@download.dre.vanderbilt.edu:/export/www/download.dre/ACE+TAO-distribution';
-my $release_files = '';
-
-chomp ($release_files = `$make show_release_files`);
-
########
######## Main execution thread.
########
@@ -80,16 +63,17 @@ my $build_command =
"$find ./html $release_filter | $cpio -o -H tar | " .
"$gzip -9 > ACE-html.tar.gz && ".
"$find ./html $release_filter | $cpio -o -H tar | " .
- "$bzip -9 > ACE-html.tar.bz2 && ".
+ "$bzip -9 > ACE-html.tar.bz2 && ".
"$find ./html $release_filter | $egrep -v $bin_files | " .
"zip ACE-html.zip -q9@ &&" .
"md5sum ACE-html.tar.gz > ACE-html.tar.gz.md5 &&" .
"md5sum ACE-html.tar.bz2 > ACE-html.tar.bz2.md5 &&" .
- "md5sum ACE-html.zip > ACE-html.zip.md5 &&" .
- "$scp ACE-html.tar.gz ACE-html.tar.bz2 ACE-html.zip ACE-html.tar.gz.md5 ACE-html.tar.bz2.md5 ACE-html.zip.md5 $dest;";
+ "md5sum ACE-html.zip > ACE-html.zip.md5;";
&ex ($build_command)
- && die "$0: failed to move ACE man pages to $dest\n";
+ && die "$0: failed to package ACE man pages\n";
+
+print "Finished doxygen document generation \n";
exit $status;
diff --git a/ACE/bin/mail_test_stats.sh b/ACE/bin/mail_test_stats.sh
new file mode 100755
index 00000000000..e5aa91bba58
--- /dev/null
+++ b/ACE/bin/mail_test_stats.sh
@@ -0,0 +1,43 @@
+export TREE_ROOT=$HOME/ACE/latest
+export ACE_ROOT=$TREE_ROOT/ACE_wrappers
+export TAO_ROOT=$ACE_ROOT/TAO
+export CIAO_ROOT=$TAO_ROOT/CIAO
+mkdir -p $TREE_ROOT
+cd $TREE_ROOT
+svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/sets-anon/ACE+TAO+CIAO .
+cd $ACE_ROOT/bin
+rm *Tests.txt
+rm *TestRev.txt
+rm *Ignore.txt
+rm *Builds.txt
+./diff-builds-and-group-fixed-tests-only.sh
+
+MAILTO="devo-group@list.isis.vanderbilt.edu"
+MAIL="mail -S smtp=zimbra.remedy.nl"
+MAILFROM="jwillemsen@remedy.nl"
+
+MAIL_ATTACHMENTS=
+for fn in `ls *Tests.txt`; do
+ MAIL_ATTACHMENTS=$MAIL_ATTACHMENTS+"-a $fn "
+done
+for fn in `ls *NoTestRev.txt`; do
+ MAIL_ATTACHMENTS=$MAIL_ATTACHMENTS+"-a $fn "
+done
+CURRENTDATE=`date -u +%Y_%m_%d`
+mailfile="/tmp/rsmailfile"
+{
+ echo "Sending test statistics for" $CURRENTDATE
+ echo
+ cat *NoTestRev.txt
+ echo
+ echo "Sending with revision number"
+ cat *Tests.txt
+ echo
+ echo "Sending results per build"
+ cat *Builds.txt
+} > $mailfile
+
+$MAIL -r $MAILFROM -s "ACE/TAO/CIAO test statistics for $CURRENTDATE" $MAILTO < $mailfile
+
+rm -f $mailfile
+
diff --git a/ACE/bin/make_release.py b/ACE/bin/make_release.py
index 7d46456c030..f7807d5e178 100755
--- a/ACE/bin/make_release.py
+++ b/ACE/bin/make_release.py
@@ -1,4 +1,5 @@
-#!/usr/local/bin/python2.5
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
# @file make_release.py
# @author William R. Otte <wotte@dre.vanderbilt.edu>
@@ -9,6 +10,10 @@ from __future__ import with_statement
from time import strftime
import pysvn
import re
+import tempfile
+import shutil
+import subprocess
+import shlex
##################################################
#### Global variables
@@ -45,7 +50,7 @@ release_date = strftime (# ie: Mon Jan 23 00:35:37 CST 2006
""" This is a regex that detects files that SHOULD NOT have line endings
converted to CRLF when being put into a ZIP file """
-bin_regex = re.compile ("\.(mak|mdp|ide|exe|ico|gz|zip|xls|sxd|gif|vcp|vcproj|vcw|sln|dfm|jpg|png|vsd|bz2|pdf)$")
+bin_regex = re.compile ("\.(mak|mdp|ide|exe|ico|gz|zip|xls|sxd|gif|vcp|vcproj|vcw|sln|dfm|jpg|png|vsd|bz2|pdf|ppt|graffle|pptx|odt)$")
##################################################
@@ -67,7 +72,7 @@ def svn_login_callback (realm, username, may_save):
def svn_log_message_callback ():
""" Callback used by the svn library to generate log messages
for operations such as copy """
- return (True, "ChangeLogTag:%s %s <%s>" % (release_date, signature, mailid))
+ return (True, "ChangeLogTag: %s %s <%s>" % (release_date, signature, mailid))
svn_client = pysvn.Client ()
svn_client.callback_get_login = svn_login_callback
@@ -102,15 +107,20 @@ def parse_args ():
parser.add_option ("--root", dest="repo_root", action="store",
help="Specify an alternate repository root",
- default="https://svn.dre.vanderbilt.edu/DOC/")
+ default=None)
+ # By default get repo root from working copy
+ # default="https://svn.dre.vanderbilt.edu/DOC/")
+
+ parser.add_option ("--mpc_root", dest="mpc_root", action="store",
+ help="Specify an alternate MPC repository root",
+ default=None)
+ # By default get repo root from MPC root in working copy
parser.add_option ("-n", dest="take_action", action="store_false",
help="Take no action", default=True)
parser.add_option ("--verbose", dest="verbose", action="store_true",
help="Print out actions as they are being performed",
default=False)
- parser.add_option ("--override-host", dest="override_host", action="store_true",
- help="Override the default release host. Not reccomended", default=False)
(options, arguments) = parser.parse_args ()
if options.action is None:
@@ -163,12 +173,6 @@ def check_environment ():
print "ERROR: Must define MAILID environment to your email address for changelogs."
return False
- from socket import gethostname
-
- if ((not opts.override_host) and gethostname () != "anduril.dre.vanderbilt.edu"):
- print "ERROR: Must run script on anduril.dre.vanderbilt.edu"
- return False
-
return True
def vprint (string):
@@ -185,10 +189,11 @@ def commit (files):
""" Commits the supplied list of files to the repository. """
vprint ("Committing the following files: " + " ".join (files))
- rev = svn_client.checkin (files,
- "ChangeLogTag:%s %s <%s>" % (release_date, signature, mailid))
+ if opts.take_action:
+ rev = svn_client.checkin (files,
+ "ChangeLogTag:%s %s <%s>" % (release_date, signature, mailid))
- print "Checked in files, resuling in revision ", rev.number
+ print "Checked in files, resuling in revision ", rev.number
def check_workspace ():
""" Checks that the DOC and MPC repositories are up to date. """
@@ -202,12 +207,26 @@ def check_workspace ():
raise
try:
- rev = svn_client.update (doc_root + "ACE/MPC")
+ rev = svn_client.update (doc_root + "/ACE/MPC")
print "Successfully updated MPC working copy to revision "
except:
- print "Unable to update the MPC workspace at " + doc_root + "/MPC"
+ print "Unable to update the MPC workspace at " + doc_root + "/ACE/MPC"
raise
+ # By default retrieve repo root from working copy
+ if opts.repo_root is None:
+ info = svn_client.info2 (doc_root + "/ACE")[0]
+ opts.repo_root = info[1]["repos_root_URL"]
+
+ # By default retrieve MPC root from working copy
+ if opts.mpc_root is None:
+ info = svn_client.info2 (doc_root + "/ACE/MPC")[0]
+ opts.mpc_root = info[1]["repos_root_URL"]
+
+ vprint ("Repos root URL = " + opts.repo_root + "\n")
+ vprint ("Repos MPC root URL = " + opts.mpc_root + "\n")
+
+
def update_version_files (component):
""" Updates the version files for a given component. This includes
Version.h, the PRF, and the VERSION file."""
@@ -243,7 +262,7 @@ def update_version_files (component):
version_header = """
// -*- C++ -*-
// $Id$
-// This is file was automatically generated by \$ACE_ROOT/bin/make_release.
+// This is file was automatically generated by \$ACE_ROOT/bin/make_release.py
#define %s_MAJOR_VERSION %s
#define %s_MINOR_VERSION %s
@@ -293,6 +312,144 @@ def update_version_files (component):
return retval
+def update_spec_file ():
+
+ global comp_versions, opts
+
+ with open (doc_root + "/ACE/rpmbuild/ace-tao.spec", 'r+') as spec_file:
+ new_spec = ""
+ for line in spec_file.readlines ():
+ if line.find ("define ACEVER ") is not -1:
+ line = "%define ACEVER " + comp_versions["ACE_version"] + "\n"
+ if line.find ("define TAOVER ") is not -1:
+ line = "%define TAOVER " + comp_versions["TAO_version"] + "\n"
+ if line.find ("define CIAOVER ") is not -1:
+ line = "%define CIAOVER " + comp_versions["CIAO_version"] + "\n"
+ if line.find ("define DANCEVER ") is not -1:
+ line = "%define DANCEVER " + comp_versions["DAnCE_version"] + "\n"
+ if line.find ("define is_major_ver") is not -1:
+ if opts.release_type == "beta":
+ line = "%define is_major_ver 0\n"
+ else:
+ line = "%define is_major_ver 1\n"
+
+ new_spec += line
+
+ if opts.take_action:
+ spec_file.seek (0)
+ spec_file.truncate (0)
+ spec_file.writelines (new_spec)
+ else:
+ print "New spec file:"
+ print "".join (new_spec)
+
+ return [doc_root + "/ACE/rpmbuild/ace-tao.spec"]
+
+def update_debianbuild ():
+ """ Updates ACE_ROOT/debian directory.
+ - renames all files with version nrs in name to new scheme.
+ - updates version nrs in file debian/control
+ Currently ONLY ACE & TAO stuff is handled here """
+
+ global comp_versions
+
+ import glob
+ import re
+ from os.path import basename
+ from os.path import dirname
+ from os.path import join
+
+ files = list ()
+ prev_ace_ver = None
+ prev_tao_ver = None
+
+ # rename files
+ mask = re.compile ("(libace|libkokyu|libtao)(.*)(\d+\.\d+\.\d+)(.*)")
+ tao = re.compile ("tao", re.IGNORECASE)
+
+ for fname in glob.iglob(doc_root + '/ACE/debian/*'):
+ print "Considering " + fname
+ match = None
+
+ fbase = basename (fname)
+
+ match = mask.search (fbase)
+ fnewname = None
+ if match is not None:
+ if tao.search (fbase) is not None:
+ fnewname = join (dirname (fname), match.group (1) + match.group (2) + comp_versions["TAO_version"] + match.group (4))
+ prev_tao_ver = match.group (3)
+ else:
+ fnewname = join (dirname (fname), match.group (1) + match.group (2) + comp_versions["ACE_version"] + match.group (4))
+ prev_ace_ver = match.group (3)
+
+ print prev_ace_ver
+# print prev_tao_var
+
+ if fnewname is not None:
+ if opts.take_action:
+ svn_client.move (fname, fnewname)
+ else:
+ print "Rename: " + fname + " to " + fnewname + "\n"
+
+ files.append (fname)
+ files.append (fnewname)
+
+ print "Appending " + fname + " and " + fnewname
+
+ # update debianbuild/control
+ def update_ver (match):
+ if match.group (1) == 'libtao':
+ return match.group (1) + match.group (2) + comp_versions["TAO_version"] + match.group (4)
+ else:
+ return match.group (1) + match.group (2) + comp_versions["ACE_version"] + match.group (4)
+
+ with open (doc_root + "/ACE/debian/debian.control", 'r+') as control_file:
+ new_ctrl = ""
+ for line in control_file.readlines ():
+ if re.search ("^(Package|Depends|Suggests):", line) is not None:
+ line = mask.sub (update_ver, line)
+ elif re.search ('^Replaces:', line) is not None:
+ print comp_versions["ACE_version"]
+ line = line.replace (prev_ace_ver, comp_versions["ACE_version"])
+
+ new_ctrl += line
+
+ if opts.take_action:
+ control_file.seek (0)
+ control_file.truncate (0)
+ control_file.writelines (new_ctrl)
+ else:
+ print "New control file:"
+ print "".join (new_ctrl)
+
+ files.append (doc_root + "/ACE/debian/debian.control")
+
+ # rewrite debian/dsc
+ dsc_lines = """Format: 1.0
+Source: ACE+TAO+CIAO-src-%s
+Version: %s
+Binary: ace
+Maintainer: Johnny Willemsen <jwillemsen@remedy.nl>
+Architecture: any
+Build-Depends: gcc, make, g++, debhelper (>= 5), libssl-dev (>= 0.9.7d), dpatch (>= 2.0.10), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev (>= 8.4.7), zlib1g-dev, docbook-to-man, bzip2, autoconf, automake, libtool, autotools-dev, doxygen, graphviz
+Files:
+ 65b34001c9605f056713a7e146b052d1 46346654 ACE+TAO+CIAO-src-%s.tar.gz
+
+""" % (comp_versions["ACE_version"], comp_versions["TAO_version"], comp_versions["ACE_version"])
+ if opts.take_action:
+ with open (doc_root + "/ACE/debian/ace.dsc", 'r+') as dsc_file:
+ dsc_file.seek (0)
+ dsc_file.truncate (0)
+ dsc_file.writelines (dsc_lines)
+ else:
+ print "New dsc file:\n"
+ print dsc_lines
+
+ files.append (doc_root + "/ACE/debian/ace.dsc")
+
+ return files
+
def get_and_update_versions ():
""" Gets current version information for each component,
updates the version files, creates changelog entries,
@@ -302,14 +459,21 @@ def get_and_update_versions ():
get_comp_versions ("ACE")
get_comp_versions ("TAO")
get_comp_versions ("CIAO")
+ get_comp_versions ("DAnCE")
files = list ()
files += update_version_files ("ACE")
files += update_version_files ("TAO")
files += update_version_files ("CIAO")
+ files += update_version_files ("DAnCE")
files += create_changelog ("ACE")
files += create_changelog ("TAO")
files += create_changelog ("CIAO")
+ files += create_changelog ("DAnCE")
+ files += update_spec_file ()
+ files += update_debianbuild ()
+
+ print "Committing " + str(files)
commit (files)
except:
@@ -326,7 +490,7 @@ def create_changelog (component):
# generate our changelog entry
changelog_entry = """%s %s <%s>
-\t* %s version %s released.
+ * %s version %s released.
""" % (release_date, signature, mailid,
component,
@@ -405,16 +569,32 @@ def get_comp_versions (component):
elif opts.release_type == "beta":
comp_versions[component + "_beta"] += 1
- if opts.release_type == "beta":
- comp_versions [component + "_version"] = \
- str (comp_versions[component + "_major"]) + '.' + \
- str (comp_versions[component + "_minor"]) + '.' + \
- str (comp_versions[component + "_beta"])
- else:
- comp_versions [component + "_version"] = \
- str (comp_versions[component + "_major"]) + '.' + \
- str (comp_versions[component + "_minor"])
+ #if opts.release_type == "beta":
+ comp_versions [component + "_version"] = \
+ str (comp_versions[component + "_major"]) + '.' + \
+ str (comp_versions[component + "_minor"]) + '.' + \
+ str (comp_versions[component + "_beta"])
+ # else:
+ # comp_versions [component + "_version"] = \
+ # str (comp_versions[component + "_major"]) + '.' + \
+ # str (comp_versions[component + "_minor"])
+
+def update_latest_tag (which, branch):
+ """ Update one of the Latest_* tags externals to point the new release """
+ global opts
+ root_anon = re.sub ("^https:", "svn:", opts.repo_root)
+ propval = """ACE_wrappers %s/tags/%s/ACE
+ACE_wrappers/TAO %s/tags/%s/TAO
+ACE_wrappers/TAO/CIAO %s/tags/%s/CIAO
+ACE_wrappers/TAO/DAnCE %s/tags/%s/DAnCE
+""" % ((root_anon, branch) * 4)
+ tagname = "Latest_" + which
+ temp = tempfile.gettempdir () + "/" + tagname
+ svn_client.checkout (opts.repo_root + "/tags/" + tagname, temp, False)
+ svn_client.propset ("svn:externals", propval, temp)
+ svn_client.checkin (temp, "Updating for release " + branch)
+ shutil.rmtree (temp, True)
def tag ():
""" Tags the DOC and MPC repositories for the version """
@@ -423,13 +603,30 @@ def tag ():
branch = "ACE+TAO+CIAO-%d_%d_%d" % (comp_versions["ACE_major"],
comp_versions["ACE_minor"],
comp_versions["ACE_beta"])
- # Tag middleware
- svn_client.copy (opts.repo_root + "/Middleware/trunk",
- opts.repo_root + "/Middleware/tags/" + branch)
- # Tag MPC
- svn_client.copy (opts.repo_root + "/MPC/trunk",
- opts.repo_root + "/MPC/tags/" + branch)
+ if opts.take_action:
+ # Tag middleware
+ svn_client.copy (opts.repo_root + "/trunk",
+ opts.repo_root + "/tags/" + branch)
+
+ # Tag MPC
+ svn_client.copy (opts.mpc_root + "/trunk",
+ opts.mpc_root + "/tags/" + branch)
+
+ # Update latest tag
+ if opts.release_type == "major":
+ update_latest_tag ("Major", branch)
+ elif opts.release_type == "minor":
+ update_latest_tag ("Minor", branch)
+ elif opts.release_type == "beta":
+ update_latest_tag ("Beta", branch)
+ update_latest_tag ("Micro", branch)
+ if comp_versions["ACE_beta"] == 1:
+ update_latest_tag ("BFO", branch)
+ else:
+ print "Creating tags:\n"
+ print opts.repo_root + "/trunk -> " + opts.repo_root + "/tags/" + branch + "\n"
+ print opts.mpc_root + "/trunk -> " + opts.mpc_root + "/tags/" + branch + "\n"
##################################################
#### Packaging methods
@@ -455,6 +652,10 @@ def export_wc (stage_dir):
svn_client.export (doc_root + "/CIAO",
stage_dir + "/ACE_wrappers/TAO/CIAO")
+ print ("Exporting DAnCE")
+ svn_client.export (doc_root + "/DAnCE",
+ stage_dir + "/ACE_wrappers/TAO/DAnCE")
+
def update_packages (text_files, bin_files, stage_dir, package_dir):
import os
@@ -474,7 +675,8 @@ def update_packages (text_files, bin_files, stage_dir, package_dir):
# Zip binary files
print "\tAdding binary files to zip...."
- instream, outstream = os.popen2 ("xargs zip " + zip_base_args + zip_file)
+ p = subprocess.Popen (shlex.split ("xargs zip " + zip_base_args + zip_file), stdin=subprocess.PIPE, stdout=subprocess.PIPE, close_fds=True)
+ instream, outstream = (p.stdin, p.stdout)
instream.write (bin_files)
@@ -486,7 +688,8 @@ def update_packages (text_files, bin_files, stage_dir, package_dir):
os.wait ()
print "\tAdding text files to zip....."
- instream, outstream = os.popen2 ("xargs zip " + zip_base_args + zip_text_args + zip_file)
+ p = subprocess.Popen (shlex.split ("xargs zip " + zip_base_args + zip_text_args + zip_file), stdin=subprocess.PIPE, stdout=subprocess.PIPE, close_fds=True)
+ instream, outstream = (p.stdin, p.stdout)
instream.write (text_files)
@@ -499,11 +702,16 @@ def update_packages (text_files, bin_files, stage_dir, package_dir):
# Tar files
print "\tAdding to tar file...."
- instream, outstream = os.popen2 ("xargs tar " + tar_args + tar_file)
+ if (not os.path.exists (tar_file)):
+ open(tar_file, 'w').close ()
+ p = subprocess.Popen (shlex.split ("xargs tar " + tar_args + tar_file), stdin=subprocess.PIPE, stdout=subprocess.PIPE, close_fds=True)
+ instream, outstream = (p.stdin, p.stdout)
instream.write (' ' + bin_files + ' ' + text_files)
instream.close ()
+
+ print outstream.read ()
outstream.close ()
os.wait ()
@@ -589,9 +797,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)
@@ -626,7 +834,7 @@ def package (stage_dir, package_dir, decorator):
pass # swallow any errors
text_files, bin_files = create_file_lists (join (stage_dir, "ACE_wrappers"),
- "ACE_wrappers", ["TAO", "autom4te.cache"])
+ "ACE_wrappers", ["TAO"])
# write_file_lists ("fACE" + decorator, text_files, bin_files)
update_packages ("\n".join (text_files),
@@ -634,7 +842,6 @@ def package (stage_dir, package_dir, decorator):
stage_dir,
package_dir)
-
move_packages ("ACE" + decorator, stage_dir, package_dir)
text_files = list ()
@@ -642,7 +849,7 @@ def package (stage_dir, package_dir, decorator):
# for TAO:
text_files, bin_files = create_file_lists (join (stage_dir, "ACE_wrappers/TAO"),
- "ACE_wrappers/TAO", ["CIAO", "autom4te.cache"])
+ "ACE_wrappers/TAO", ["CIAO", "DAnCE"])
# write_file_lists ("fTAO" + decorator, text_files, bin_files)
update_packages ("\n".join (text_files),
@@ -654,9 +861,24 @@ def package (stage_dir, package_dir, decorator):
text_files = list ()
bin_files = list ()
+
+ # for DAnCE:
+ text_files, bin_files = create_file_lists (join (stage_dir, "ACE_wrappers/TAO/DAnCE"),
+ "ACE_wrappers/TAO/DAnCE", [])
+
+# write_file_lists ("fTAO" + decorator, text_files, bin_files)
+ update_packages ("\n".join (text_files),
+ "\n".join (bin_files),
+ stage_dir,
+ package_dir)
+
+ move_packages ("ACE+TAO+DAnCE" + decorator, stage_dir, package_dir)
+
+ text_files = list ()
+ bin_files = list ()
# for CIAO:
text_files, bin_files = create_file_lists (join (stage_dir, "ACE_wrappers/TAO/CIAO"),
- "ACE_wrappers/TAO/CIAO", "")
+ "ACE_wrappers/TAO/CIAO", [])
# write_file_lists ("fCIAO" + decorator, text_files, bin_files)
update_packages ("\n".join (text_files),
@@ -680,6 +902,7 @@ def generate_workspaces (stage_dir):
os.putenv ("MPC_ROOT", os.path.join (stage_dir, "ACE_wrappers", "MPC"))
os.putenv ("TAO_ROOT", os.path.join (stage_dir, "ACE_wrappers", "TAO"))
os.putenv ("CIAO_ROOT", os.path.join (stage_dir, "ACE_wrappers", "TAO", "CIAO"))
+ os.putenv ("DANCE_ROOT", os.path.join (stage_dir, "ACE_wrappers", "TAO", "DAnCE"))
# Create option strings
mpc_command = os.path.join (stage_dir, "ACE_wrappers", "bin", "mwc.pl")
@@ -687,66 +910,34 @@ def generate_workspaces (stage_dir):
mpc_option = ' -recurse -hierarchy -relative ACE_ROOT=' + stage_dir + '/ACE_wrappers '
mpc_option += ' -relative TAO_ROOT=' + stage_dir + '/ACE_wrappers/TAO '
mpc_option += ' -relative CIAO_ROOT=' + stage_dir + '/ACE_wrappers/TAO/CIAO '
+ mpc_option += ' -relative DANCE_ROOT=' + stage_dir + '/ACE_wrappers/TAO/DAnCE '
- static_vc71_option = ' -static -name_modifier *_vc71_Static -apply_project -exclude TAO/CIAO '
- static_vc71_option += mpc_option
-
- static_vc8_option = ' -static -name_modifier *_vc8_Static -apply_project -exclude TAO/CIAO '
- static_vc8_option += mpc_option
-
- static_vc9_option = ' -static -name_modifier *_vc9_Static -apply_project -exclude TAO/CIAO '
- static_vc9_option += mpc_option
-
+ vc10_option = ' -name_modifier *_vc10 '
vc9_option = ' -name_modifier *_vc9 '
vc8_option = ' -name_modifier *_vc8 '
- vc71_option = ' -name_modifier *_vc71 '
-
- # 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)"\' '
- ce_option += ' -value_template platforms+=\'"Windows Mobile 6 Professional SDK (ARMV4I)"\' '
redirect_option = str ()
if not opts.verbose:
redirect_option = " >> ../mpc.log 2>&1"
# Generate GNUmakefiles
+ print "\tBootstrapping autotools support"
+ ex ("bin/bootstrap " + redirect_option)
+
print "\tGenerating GNUmakefiles...."
ex (mpc_command + " -type gnuace " + exclude_option + mpc_option + redirect_option)
+ print "\tGenerating VC10 solutions..."
+ ex (mpc_command + " -type vc10 " + mpc_option + vc10_option + redirect_option)
+
print "\tGenerating VC9 solutions..."
ex (mpc_command + " -type vc9 " + mpc_option + vc9_option + redirect_option)
print "\tGenerating VC8 solutions..."
ex (mpc_command + " -type vc8 " + mpc_option + vc8_option + redirect_option)
- print "\tGenerating VC8 Windows CE solutions..."
- ex (mpc_command + " -type vc8 " + mpc_option + ce_option + redirect_option)
-
- print "\tGenerating VC71 solutions..."
- ex (mpc_command + " -type vc71 " + mpc_option + vc71_option + redirect_option)
-
- print "\tGenerating Borland makefiles"
- ex (mpc_command + " -type bmake " + mpc_option + exclude_option + redirect_option)
-
- print "\tGenerating VC71 Static solutions"
- ex (mpc_command + " -type vc71 " + static_vc71_option + redirect_option)
-
- print "\tGenerating VC8 Static solutions"
- ex (mpc_command + " -type vc8 " + static_vc8_option + redirect_option)
-
- print "\tGenerating VC9 Static solutions"
- ex (mpc_command + " -type vc9 " + static_vc9_option + redirect_option)
-
- print "\tBootstrapping autotools support"
- ex ("bin/bootstrap " + redirect_option)
-
print "\tCorrecting permissions for all generated files..."
- ex ("find ./ -name '*.vc[p,w]' -or -name '*.bmak' -or -name '*.vcproj' -or -name '*.sln' -or -name 'GNUmake*' | xargs chmod 0644")
+ ex ("find ./ -name '*.vc[p,w]' -or -name '*.bmak' -or -name '*.vcproj' -or -name '*.sln' -or -name '*.vcxproj' -or -name '*.filters' -or -name 'GNUmake*' | xargs chmod 0644")
def create_kit ():
""" Creates kits """
@@ -759,6 +950,7 @@ def create_kit ():
get_comp_versions ("ACE")
get_comp_versions ("TAO")
get_comp_versions ("CIAO")
+ get_comp_versions ("DAnCE")
print "Creating working directories...."
stage_dir, package_dir = make_working_directories ()
diff --git a/ACE/bin/mpc.pl b/ACE/bin/mpc.pl
index 7234756852f..903cf4ef2bc 100755
--- a/ACE/bin/mpc.pl
+++ b/ACE/bin/mpc.pl
@@ -20,8 +20,8 @@ use FindBin;
use File::Spec;
use File::Basename;
-my($basePath) = $FindBin::RealBin;
-my($baseName) = $FindBin::RealScript;
+my($basePath) = (defined $FindBin::RealBin ? $FindBin::RealBin :
+ File::Spec->rel2abs(dirname($0)));
if ($^O eq 'VMS') {
$basePath = File::Spec->rel2abs(dirname($0)) if ($basePath eq '');
$basePath = VMS::Filespec::unixify($basePath);
@@ -64,5 +64,5 @@ sub getBasePath {
# Main Section
# ************************************************************
-my($driver) = new Driver($basePath, basename($0));
+my($driver) = new Driver($basePath, Driver::projects());
exit($driver->run(@ARGV));
diff --git a/ACE/bin/msvc_mpc_auto_compile.pl b/ACE/bin/msvc_mpc_auto_compile.pl
index 14174e769b9..d72505a604b 100755
--- a/ACE/bin/msvc_mpc_auto_compile.pl
+++ b/ACE/bin/msvc_mpc_auto_compile.pl
@@ -33,6 +33,8 @@ else {
@orbsvcs_core_dirs = ("$ACE_ROOT\\TAO\\orbsvcs\\orbsvcs");
+@dance_core_dirs = ("$ACE_ROOT\\TAO\\DAnCE");
+
@ciao_core_dirs = ("$ACE_ROOT\\TAO\\CIAO");
$debug = 0;
@@ -158,6 +160,7 @@ sub Build_All ()
push @directories, @ace_core_dirs;
push @directories, @tao_core_dirs;
push @directories, @orbsvcs_core_dirs;
+ push @directories, @dance_core_dirs;
push @directories, @ciao_core_dirs;
print STDERR "First pass (libraries)\n" if ($print_status == 1);
@@ -219,6 +222,7 @@ sub Build_All_VC7 ()
push @directories, @ace_core_dirs;
push @directories, @tao_core_dirs;
push @directories, @orbsvcs_core_dirs;
+ push @directories, @dance_core_dirs;
push @directories, @ciao_core_dirs;
print STDERR "First pass (libraries)\n" if ($print_status == 1);
@@ -303,6 +307,7 @@ while ( $#ARGV >= 0 && $ARGV[0] =~ /^(-|\/)/ )
push @directories, @ace_core_dirs;
push @directories, @tao_core_dirs;
push @directories, @orbsvcs_core_dirs;
+ push @directories, @dance_core_dirs;
push @directories, @ciao_core_dirs;
}
elsif ($ARGV[0] =~ '-ALL') {# Build the CIAO and related
diff --git a/ACE/bin/msvc_static_order.lst b/ACE/bin/msvc_static_order.lst
index 755c530bd2f..551dcc7b04f 100644
--- a/ACE/bin/msvc_static_order.lst
+++ b/ACE/bin/msvc_static_order.lst
@@ -164,27 +164,27 @@ TAO/CIAO/CIDLC/CIDLC
TAO/CIAO/ciao/CIAO_Client
TAO/CIAO/ciao/CIAO_Container
TAO/CIAO/ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base
-TAO/CIAO/DAnCE/Deployment/Deployment_stub
+TAO/DAnCE/Deployment/Deployment_stub
TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent
TAO/CIAO/ciaosvcs/Events/CIAO_Events
-TAO/CIAO/DAnCE/Deployment/Deployment_svnt
-TAO/CIAO/DAnCE/Interfaces/ExecutionManager_stub
-TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager
+TAO/DAnCE/Deployment/Deployment_svnt
+TAO/DAnCE/Interfaces/ExecutionManager_stub
+TAO/DAnCE/DomainApplicationManager/DomainApplicationManager
TAO/CIAO/ciao/CIAO_Server
-TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager
-TAO/CIAO/DAnCE/Interfaces/NodeManager_stub
-TAO/CIAO/DAnCE/NodeApplication/Config_Manager
-TAO/CIAO/DAnCE/NodeApplication/NodeApp_Configurator
-TAO/CIAO/DAnCE/NodeApplication/NA_Configurator
-TAO/CIAO/DAnCE/NodeApplication/NoOp_Configurator
-TAO/CIAO/DAnCE/NodeApplication/NodeApplicationLib
-TAO/CIAO/DAnCE/NodeApplication/NodeApplication
-TAO/CIAO/DAnCE/NodeApplication/RTNA_Configurator
-TAO/CIAO/DAnCE/TargetManager/CIAO_TargetManager_stub
-TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager
-TAO/CIAO/DAnCE/NodeManager/Monitor_Monitorlib
-TAO/CIAO/DAnCE/NodeManager/NodeManager_svnt
-TAO/CIAO/DAnCE/NodeManager/NodeManager
+TAO/DAnCE/ExecutionManager/ExecutionManager
+TAO/DAnCE/Interfaces/NodeManager_stub
+TAO/DAnCE/NodeApplication/Config_Manager
+TAO/DAnCE/NodeApplication/NodeApp_Configurator
+TAO/DAnCE/NodeApplication/NA_Configurator
+TAO/DAnCE/NodeApplication/NoOp_Configurator
+TAO/DAnCE/NodeApplication/NodeApplicationLib
+TAO/DAnCE/NodeApplication/NodeApplication
+TAO/DAnCE/NodeApplication/RTNA_Configurator
+TAO/DAnCE/TargetManager/CIAO_TargetManager_stub
+TAO/DAnCE/NodeApplicationManager/NodeApplicationManager
+TAO/DAnCE/NodeManager/Monitor_Monitorlib
+TAO/DAnCE/NodeManager/NodeManager_svnt
+TAO/DAnCE/NodeManager/NodeManager
TAO/CIAO/tools/Config_Handlers/XSC_XML_Generation
TAO/CIAO/tools/Config_Handlers/XSC_XML_Handlers
TAO/CIAO/tools/Config_Handlers/Utils/CIAO_XML_Utils
@@ -196,24 +196,24 @@ TAO/CIAO/tools/Config_Handlers/RT-CCM/RT_CCM_XML_Generation
TAO/CIAO/tools/Config_Handlers/RT-CCM/RT_CCM_Config_Handlers
TAO/CIAO/tools/Config_Handlers/XSC_Config_Handlers
TAO/CIAO/tools/Config_Handlers/Package_Handlers/Package_Config_Handlers
-TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager
-TAO/CIAO/DAnCE/Plan_Generator/Plan_Generator
-TAO/CIAO/DAnCE/Utils/DAnCE_Utils
-TAO/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl
-TAO/CIAO/DAnCE/Plan_Launcher/Plan_Launcher
-TAO/CIAO/DAnCE/RepositoryManager/RMAdmin
-TAO/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser
-TAO/CIAO/DAnCE/TargetManager/CIAO_TargetManager_svnt
-TAO/CIAO/DAnCE/TargetManager/CIAO_TargetManager_exec
-TAO/CIAO/DAnCE/TargetManager/TMClient
-TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip_stub
-TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip_svnt
-TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip_exec
-TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_client
-TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_client_dynamic
-TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_client_ex
-TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_client_simple
-TAO/CIAO/bin/PerlCIAO/PerlCIAO
+TAO/DAnCE/RepositoryManager/RepositoryManager
+TAO/DAnCE/Plan_Generator/Plan_Generator
+TAO/DAnCE/Utils/DAnCE_Utils
+TAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl
+TAO/DAnCE/Plan_Launcher/Plan_Launcher
+TAO/DAnCE/RepositoryManager/RMAdmin
+TAO/DAnCE/StaticConfigurator/StaticDAnCEParser
+TAO/DAnCE/TargetManager/CIAO_TargetManager_svnt
+TAO/DAnCE/TargetManager/CIAO_TargetManager_exec
+TAO/DAnCE/TargetManager/TMClient
+TAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip_stub
+TAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip_svnt
+TAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip_exec
+TAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_client
+TAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_client_dynamic
+TAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_client_ex
+TAO/DAnCE/tests/NodeApplicationTest/NodeAppTest_client_simple
+TAO/bin/PerlCIAO/PerlCIAO
TAO/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_idl_gen
TAO/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub
TAO/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel
diff --git a/ACE/bin/mwc.pl b/ACE/bin/mwc.pl
index 7234756852f..8e8a838eb29 100755
--- a/ACE/bin/mwc.pl
+++ b/ACE/bin/mwc.pl
@@ -20,8 +20,8 @@ use FindBin;
use File::Spec;
use File::Basename;
-my($basePath) = $FindBin::RealBin;
-my($baseName) = $FindBin::RealScript;
+my($basePath) = (defined $FindBin::RealBin ? $FindBin::RealBin :
+ File::Spec->rel2abs(dirname($0)));
if ($^O eq 'VMS') {
$basePath = File::Spec->rel2abs(dirname($0)) if ($basePath eq '');
$basePath = VMS::Filespec::unixify($basePath);
@@ -64,5 +64,5 @@ sub getBasePath {
# Main Section
# ************************************************************
-my($driver) = new Driver($basePath, basename($0));
+my($driver) = new Driver($basePath, Driver::workspaces());
exit($driver->run(@ARGV));
diff --git a/ACE/bin/regenerate_exports.pl b/ACE/bin/regenerate_exports.pl
index 95e6bf67986..1261834e8ff 100755
--- a/ACE/bin/regenerate_exports.pl
+++ b/ACE/bin/regenerate_exports.pl
@@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
if 0;
# $Id$
-# Goes through ACE/TAO and replaces
+# Goes through ACE/TAO and replaces
use File::Find;
use Cwd;
@@ -37,7 +37,7 @@ sub wanted
if ($flag == 1) {
print "Regenerating: $file\n";
- if ($OSNAME eq 'MSWIn32') {
+ if ($OSNAME eq 'MSWIn32') {
$file =~ s/\//\\/g;
}
system ("perl -S generate_export_file.pl $args $name > $file");
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/bin/sets-manager.py b/ACE/bin/sets-manager.py
index 271e6006dec..09bb5213dd6 100755
--- a/ACE/bin/sets-manager.py
+++ b/ACE/bin/sets-manager.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-
+# $Id$
""" This script implements branching and tagging in the DOC group
repository, and automates the process of creating sets. """
@@ -42,7 +42,7 @@ def parse_args ():
parser.error ("must specify either a branch or tag action")
if opts.project is None:
- parser.error ("must specity a project to branch")
+ parser.error ("must specify a project to branch")
return (opts, args)
@@ -63,12 +63,19 @@ def svn_copy (source, dest):
execute (command)
def svn_propset (path, prop, value):
+ temp = open ("sets_manager_props.tmp", 'w')
+ temp.write (value)
+ temp.close ()
+
command = " ".join ([opts.svn,
"propset",
prop,
- "'" + value + "'",
+ "-F sets_manager_props.tmp",
path])
execute (command)
+
+ os.unlink ("sets_manager_props.tmp")
+
def svn_mkdir (path):
command = " ".join ([opts.svn,
diff --git a/ACE/bin/svn_props.py b/ACE/bin/svn_props.py
index da1a6d62df9..10e48ba6964 100755
--- a/ACE/bin/svn_props.py
+++ b/ACE/bin/svn_props.py
@@ -1,4 +1,5 @@
#!/usr/bin/python
+#$Id$
import sys
import re
diff --git a/ACE/bin/topinfo_iorsize_stats.sh b/ACE/bin/topinfo_iorsize_stats.sh
index 86088779c0b..7e1f2699326 100755
--- a/ACE/bin/topinfo_iorsize_stats.sh
+++ b/ACE/bin/topinfo_iorsize_stats.sh
@@ -37,7 +37,7 @@ server_start_size=`cat /proc/$s_id/status | grep VmRSS | awk '{print $2}'`;
# Just sleep for 2 seconds.
sleep 2;
-# Check whether the server has started
+# Check whether the server has started
file="test.ior"
if test -f $file
then
@@ -46,11 +46,11 @@ if test -f $file
c_id=$!;
# Wait till all the invocations are done
sleep 30;
- # Get the size once the client has made sufficient invocations.
+ # Get the size once the client has made sufficient invocations.
s_invocations=`cat /proc/$s_id/status | grep VmRSS | awk '{print $2}'`;
let "actual_server_growth=${s_invocations}-${server_start_size}";
if test $OPT == 1
- then
+ then
echo $DATE $s_invocations >> $DEST/source/server_opt_ior_size.txt
echo $DATE $actual_server_growth >> $DEST/source/opt_ior_size.txt
else
@@ -59,7 +59,7 @@ if test -f $file
fi
# Kill the server and client. We will look at better ways of doing
- # this later.
+ # this later.
kill -9 $c_id;
kill -9 $s_id;
rm -f $file
diff --git a/ACE/bin/topinfo_simple_stats.sh b/ACE/bin/topinfo_simple_stats.sh
index dab12934160..cb39a724755 100755
--- a/ACE/bin/topinfo_simple_stats.sh
+++ b/ACE/bin/topinfo_simple_stats.sh
@@ -27,12 +27,12 @@ cd TAO/performance-tests/Memory/Single_Threaded
s_id=$!;
# Just sleep for 2 seconds.
sleep 2;
-# Check whether the server has started
+# Check whether the server has started
file="test.ior"
if test -f $file
then
# Just get the size as soon the server is started, ie. the vanilla
- # server.
+ # server.
s_up=`cat /proc/$s_id/status | grep VmRSS | awk '{print $2}'`;
# Write it a file
@@ -42,19 +42,19 @@ if test -f $file
c_id=$!;
# Wait till all the invocations are done
sleep 10;
- # Get the size once the client has made sufficient invocations.
+ # Get the size once the client has made sufficient invocations.
s_invocations=`cat /proc/$s_id/status | grep VmRSS| awk '{print $2}'`;
-
+
echo $DATE $s_invocations >> $DEST/source/st_after_invoke_size.txt
-
+
# Get teh size of the client after all the invocations
c_invocations=`cat /proc/$c_id/status | grep VmRSS | awk '{print $2}'`;
echo $DATE $c_invocations >> $DEST/source/st_client_size.txt
# Kill the server and client. We will look at better ways of doing
- # this later.
+ # this later.
kill -9 $c_id;
-
+
# Just sleep for the server to release memory etc.
sleep 5;
diff --git a/ACE/bin/topinfo_stats.sh b/ACE/bin/topinfo_stats.sh
index 5e572f357b9..9f3a845e425 100755
--- a/ACE/bin/topinfo_stats.sh
+++ b/ACE/bin/topinfo_stats.sh
@@ -27,12 +27,12 @@ cd TAO/performance-tests/Memory/Single_Threaded
s_id=$!;
# Just sleep for 2 seconds.
sleep 2;
-# Check whether the server has started
+# Check whether the server has started
file="test.ior"
if test -f $file
then
# Just get the size as soon the server is started, ie. the vanilla
- # server.
+ # server.
s_up=`top -p $s_id -n 1 -b | grep $US| awk '{print $5}'`;
# Write it a file
@@ -42,15 +42,15 @@ if test -f $file
c_id=$!;
# Wait till all the invocations are done
sleep 10;
- # Get the size once the client has made sufficient invocations.
+ # Get the size once the client has made sufficient invocations.
s_invocations=`top -p $s_id -n 1 -b | grep $US| awk '{print $5}'`;
-
+
echo $DATE $s_invocations >> $DEST/source/st_after_invoke_size.txt
# Kill the server and client. We will look at better ways of doing
- # this later.
+ # this later.
kill -9 $c_id;
-
+
# Just sleep for the server to release memory etc.
sleep 5;
diff --git a/ACE/bin/update-ace+tao.sh b/ACE/bin/update-ace+tao.sh
index 9956eb8bb0e..9081750d181 100755
--- a/ACE/bin/update-ace+tao.sh
+++ b/ACE/bin/update-ace+tao.sh
@@ -26,8 +26,8 @@ tao_version=`version <TAO/VERSION TAO`
if [ -z $ace_version ]; then echo No ACE version after update; exit 1; fi
if [ -z $tao_version ]; then echo No TAO version after update; exit 1; fi
-echo Old software version tags: $old_ace_version $old_tao_version
-echo New software version tags: $ace_version $tao_version
+echo Old software version tags: $old_ace_version $old_tao_version
+echo New software version tags: $ace_version $tao_version
# Conserve net bandwidth if no change was observed
if [ $old_ace_version != $ace_version ] || [ x"$1"x = x"force"x ]; then
diff --git a/ACE/bin/vx_repo_link.pl b/ACE/bin/vx_repo_link.pl
deleted file mode 100755
index b4ec5f82ed8..00000000000
--- a/ACE/bin/vx_repo_link.pl
+++ /dev/null
@@ -1,217 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-#
-# $Id$
-#
-
-
-use FindBin;
-use lib $FindBin::Bin;
-
-use diagnostics;
-use Time::Local;
-use File::Basename;
-use File::Spec;
-use FileHandle;
-use Cwd;
-
-my $VXDEBUG = (defined $ENV{'VX_REPO_LINK_DEBUG'}) ? $ENV{'VX_REPO_LINK_DEBUG'} : 0;
-my $ace_root = $ENV{'ACE_ROOT'};
-$ace_root =~ s/\//\\/g;
-my $wind_base = $ENV{'WIND_BASE'};
-$wind_base =~ s/\//\\/g;
-my $AR = $ENV{'AR'};
-my $RANLIB = $ENV{'RANLIB'};
-my @lib_arr;
-my $lib;
-my $curdir = cwd();
-$curdir =~ s/\//\\/g;
-
-
-if ($VXDEBUG > 1)
-{
- print STDERR "AR = ". $AR . "\n";
- print STDERR "ACE_ROOT = " . $ace_root . "\n";
- print STDERR "WIND_BASE = " . $wind_base, "\n";
- print STDERR "curdir = " . $curdir, "\n";
-}
-
-if ($VXDEBUG > 1) {
- print STDERR "LINKLIBS are:\n";
-}
-
-while ($#ARGV >= 0)
-{
- if ($ARGV[0] =~ /^-l/) {
- $lib = shift;
- $lib =~ s/^-l//;
- if ($VXDEBUG > 1) {
- print STDERR $ace_root."/lib/lib".$lib.".a\n";
- }
- push @lib_arr, $lib;
- }
-}
-
-my @lib_registry = ();
-
-my $LINKLIBS = "";
-
-my $libobj_dir = ".lib";
-system("if not exist ".$libobj_dir." mkdir ".$libobj_dir);
-foreach $lib (@lib_arr) {
- my $libname = $ace_root."\\lib\\lib".$lib.".a";
- if (-e $libname) {
- if (! -e $libobj_dir."\\lib".$lib.".a") {
- if ($VXDEBUG) {
- print STDERR "Unpacking ".$lib."...\n";
- }
- system("cmd /c if exist ".$libobj_dir."\\".$lib." del /q/f ".$libobj_dir."\\".$lib."\\*.*");
- system("cmd /c (mkdir ".$libobj_dir."\\".$lib." && cd ".$libobj_dir."\\".$lib." && ".$AR." -x ".$libname." && cd ".$curdir.")");
-
- if ($VXDEBUG) {
- print STDERR "Processing ".$lib."...\n";
- }
-
- my @rpo_arr = glob ($libobj_dir."\\".$lib."\\*.rpo");
-
- if ($VXDEBUG > 1) {
- print STDERR "Read #".$#rpo_arr." filenames\n";
- }
-
- my $line;
- my $fh;
- my $newfh;
- my $module;
- foreach $rpo (@rpo_arr) {
- if ($VXDEBUG > 2) {
- print STDERR $rpo."\n";
- }
- $fh = new FileHandle();
- $newfh = new FileHandle();
- $module = basename($rpo, ".rpo");
- open ($newfh, '>', dirname($rpo)."\\".$module.".__rpo");
- open ($fh, '<', $rpo);
- while (defined ($line = readline $fh)) {
- if ($line =~ /^M /) {
- $line =~ s/\//\\/g;
- }
- elsif ($line =~ /^D /) {
- $line =~ s/(^D[ ])(.*ACE_wrappers)(.*)/${1}$ace_root${3}/;
- $line =~ s/\//\\/g;
- }
- elsif ($line =~ /^A /) {
- $line =~ s/('-I)([^ ]*ACE_wrappers)([']|[^']+')/${1}$ace_root${3}/g;
- $line =~ s/('-I)([^ ]*Tornado[^\/\\]+)([']|[^']+')/${1}$wind_base${3}/g;
- $line =~ s/('-o' )('.*')/'-o' '$curdir\/$libobj_dir\/$lib\/$module.o'/g;
- $line =~ s/\//\\/g;
- }
- print $newfh $line;
- }
- close ($fh);
- close ($newfh);
-
- system("cmd /c (del /f/q ".$rpo." && rename ".dirname($rpo)."\\".$module.".__rpo ".basename($rpo).")");
- }
-
- $fh = new FileHandle();
- open($fh, '<', $libobj_dir."\\".$lib."\\.prelink.spec");
- my $lnkcmd = readline($fh);
- my $arcmd = readline($fh);
- my $libdeps = readline($fh);
- close($fh);
-
- $lib_registry[++$#lib_registry] = {
- lib => $lib,
- linkcmd => $lnkcmd,
- arcmd => $arcmd,
- libdeps => (defined $libdeps ? $libdeps : '')
- };
- }
-
- $LINKLIBS = $LINKLIBS." ".$libobj_dir."\\lib".$lib.".a";
- }
- else {
- $LINKLIBS = "-l".$lib." ".$LINKLIBS;
- }
-}
-
-sub _find_lib_entry
-{
- my $lib = shift;
- foreach my $reg (@lib_registry) {
- if ($reg->{lib} =~ /(^| )$lib( |$)/) {
- return $reg;
- }
- }
- return undef;
-}
-
-sub _prelink_lib
-{
- my $lentry = shift;
- my $stack = shift;
- my $lib = $lentry->{lib};
- my $lnkcmd = $lentry->{linkcmd};
- my $arcmd = $lentry->{arcmd};
- my @deps = split(' ', $lentry->{libdeps});
-
- $lnkcmd =~ s/\n//g;
- $arcmd =~ s/\n//g;
-
- if ($VXDEBUG) {
- print STDERR "Prelink requested for ".$lib." (dependend on ".join(' ', @deps).")...\n";
- }
-
- # check dependencies
- foreach my $dep (@deps) {
- if ($VXDEBUG > 1) {
- print STDERR " Checking dependency ".$dep."(stack = ".$stack.")...\n";
- }
- if (($stack !~ /\<$dep\>/) && !(-e $libobj_dir."\\lib".$dep.".a")) {
- my $le = _find_lib_entry ($dep);
- if (defined $le) {
- _prelink_lib ($le, $stack." <".$lib.">");
- }
- }
- }
-
- # prelink library
- if ($VXDEBUG) {
- print STDERR "Prelinking ".$lib."...\n";
- }
-
- my $objs = join(' ', glob ($libobj_dir."\\".$lib."\\*.o"));
- my $libs = join(' ', glob ($libobj_dir."\\*.a"));
- if ($VXDEBUG > 1) {
- print STDERR " > cmd /c ".$lnkcmd." ".$libobj_dir."\\.prelink_lib ".$objs." ".$libs."\n";
- }
- system("cmd /c ".$lnkcmd." ".$libobj_dir."\\.prelink_lib ".$objs." ".$libs);
- system("cmd /c del /f/q ".$libobj_dir."\\.prelink_lib");
-
- # build prelinked library
- if ($VXDEBUG) {
- print STDERR "Building prelinked lib ".$lib."...\n";
- }
-
- $arcmd =~ s/lib$lib/$libobj_dir\\lib$lib/;
- #$arcmd = $AR." r ".$libobj_dir."\\lib".$lib.".a";
- $arcmd =~ s/ rv / rc /g;
- if ($VXDEBUG > 1) {
- print STDERR "cmd /c echo ".$objs." | ".$arcmd."\n";
- print STDERR "cmd /c (".$RANLIB." ".$libobj_dir."\\lib".$lib.".a && rmdir /s/q ".$libobj_dir."\\".$lib.")"."\n";
- }
- system("cmd /c echo ".$objs." | ".$arcmd);
- system("cmd /c (".$RANLIB." ".$libobj_dir."\\lib".$lib.".a && rmdir /s/q ".$libobj_dir."\\".$lib.")");
-}
-
-foreach my $libentry (@lib_registry) {
- if (! -e $libobj_dir."\\lib".$libentry->{lib}.".a") {
- _prelink_lib ($libentry, "");
- }
-}
-
-print $LINKLIBS."\n";
-
-1;
diff --git a/ACE/bin/vxworks_modify.pl b/ACE/bin/vxworks_modify.pl
deleted file mode 100755
index 75d4537b6be..00000000000
--- a/ACE/bin/vxworks_modify.pl
+++ /dev/null
@@ -1,578 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# ******************************************************************
-# Author: Chad Elliott (elliott_c@ociweb.com)
-# Date: 8/14/2000
-# $Id$
-# Description: Modify c++ source for combination with other source
-# files into a VxWorks module.
-# ******************************************************************
-
-# ******************************************************************
-# Pragma Section
-# ******************************************************************
-
-use strict;
-use File::Basename;
-
-# ******************************************************************
-# Data Section
-# ******************************************************************
-
-my($name) = "";
-my(@types) = ("short", "int", "long", "unsigned", "size_t",
- "char", "float", "double", "void",
- "CORBA::Boolean", "CORBA::Short", "CORBA::UShort",
- "CORBA::Long", "CORBA::ULong", "CORBA::Octet",
- "CORBA::Char", "CORBA::WChar", "CORBA::LongLong",
- "CORBA::ULongLong", "CORBA::Float", "CORBA::Double",
- "CORBA::LongDouble", "CORBA::Environment",
- );
-
-# **************************************************************
-# Subroutine Section
-# **************************************************************
-
-sub needsToBeStatic {
- my($line) = shift;
- $line =~ s/^\s+//;
- $line =~ s/\s+$//;
-
- if ($line !~ /\s*static\s+/) {
- foreach my $type (@types) {
- if ($line =~ /^(const\s+)?$type\s*[\*]*[\&]*\s*[^:]+/ ||
- $line =~ /^(const\s+)?$type\s*[\*]*[\&]*$/) {
- return 1;
- }
- }
- }
-}
-
-
-sub countChar {
- my($line) = shift;
- my($char) = shift;
- my($len) = length($line);
- my($count) = 0;
- my($indouble) = 0;
- my($insingle) = 0;
-
- for(my $i = 0; $i < $len; $i++) {
- my($ch) = substr($line, $i, 1);
- if ($char ne '"' && $ch eq '"') {
- $indouble ^= 1;
- }
- elsif ($char ne '\'' && $ch eq '\'') {
- $indouble ^= 1;
- }
- elsif ($ch eq $char && !$indouble && !$insingle) {
- $count++;
- }
- }
- return $count;
-}
-
-
-my($orbManager) = undef;
-sub lookForOrbRun {
- my($line) = shift;
- my($status) = 0;
-
- if ($line =~ /([\w:\-\>\.\(\)]+)->run\s*\(.*\)/ ||
- $line =~ /.*orb.*\.run/ ||
- (defined $orbManager && ($line =~ /$orbManager.run/ ||
- $line =~ /$orbManager->run/))) {
- $status = 1;
- }
- return $status;
-}
-
-
-sub modifyOrbRun {
- my($line) = shift;
- if (defined $orbManager && $line =~ /$orbManager/ &&
- $line =~ /(.*->run\s*\()([^\)]*)(\).*)/) {
- my($p1) = $1;
- my($p2) = $2;
- my($p3) = $3;
-
- $p2 =~ s/^\s+//;
- $p2 =~ s/\s+$//;
-
- # I am relying on convention here
- if ($p2 !~ /\s/) {
- $line = "$p1" . "TAO_TestCombinedThreads::getTimeout() " .
- "ACE_ENV_ARG_PARAMETER$p3\n";
- }
- }
- elsif ($line =~ /(.*->run\s*\()([^\)]*)(\).*)/) {
- my($p1) = $1;
- my($p2) = $2;
- my($p3) = $3;
-
- $p2 =~ s/^\s+//;
- $p2 =~ s/\s+$//;
-
- # I am relying on convention here
- if ($p2 !~ /\s/ && $p2 =~ /env/i) {
- $p3 = " ACE_ENV_ARG_PARAMETER$p3";
- $p2 = "";
- }
-
- if ($p2 eq "") {
- $line = $p1 . "TAO_TestCombinedThreads::getTimeout()" . "$p3\n";
- }
- }
- elsif ($line =~ /(.*\.run\s*\()([^\)]*)(\).*)/) {
- my($p1) = $1;
- my($p2) = $2;
- my($p3) = $3;
-
- $p2 =~ s/^\s+//;
- $p2 =~ s/\s+$//;
-
- # I am relying on convention here
- if ($p2 !~ /\s/ && $p2 =~ /env/i) {
- $line = "$p1" . "TAO_TestCombinedThreads::getTimeout() ".
- "ACE_ENV_ARG_PARAMETER$p3\n";
- }
- }
- return $line;
-}
-
-
-sub lookForActivate {
- my($line) = shift;
- my($taskBase) = shift;
- if ($line =~ /(\w+)\.activate/) {
- $$taskBase = $1;
- }
-}
-
-my($orbInitArg) = 0;
-sub lookForOrbInit {
- my($line) = shift;
- my($status) = 0;
- if ($line =~ /CORBA::ORB_init\s*\(/) {
- $orbInitArg = 0;
- $status = 1;
- }
- return $status;
-}
-
-
-sub replaceOrbName {
- my($line) = shift;
- if ($orbInitArg < 3) {
- if ($line =~ /ACE_ENV_ARG_PARAMETER/) {
- $line =~ s/ACE_ENV_ARG_PARAMETER/,ACE_ENV_ARG_PARAMETER/;
- }
- my($length) = length($line);
- my($previous) = 0;
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($line, $i, 1);
- ## Add the substr check because the ACE_ENV_ARG_PARAMETER doesn't
- ## have a comma before it and the above search and replace doesn't
- ## work for multi-lined ORB_init's
- if ($ch eq "," || $ch eq ")" ||
- ($orbInitArg == 2 && $i == $length - 1 &&
- substr($line, $previous) !~ /^\s+$/)) {
- $orbInitArg++;
- if ($ch eq ")" && $orbInitArg == 2) {
- $orbInitArg = 3;
- $previous = $i;
- }
- if ($orbInitArg == 3) {
- my($size) = $i - $previous;
- my($part) = substr($line, $previous, $size);
- $part =~ s/^\s+//;
- $part =~ s/\s+$//;
- if ($part eq '""' || $part eq '0') {
- substr($line, $previous, $size) = " \"$name\"";
- }
- elsif ($part eq '') {
- substr($line, $previous, $size) = ", \"$name\"";
- }
- last;
- }
- $previous = $i + 1;
- }
- }
- if ($line =~ /,ACE_ENV_ARG_PARAMETER/) {
- $line =~ s/,ACE_ENV_ARG_PARAMETER/ ACE_ENV_ARG_PARAMETER/;
- }
- }
- return $line;
-}
-
-
-my($initChildPOAArg) = 0;
-sub lookForInitChildPOA {
- my($line) = shift;
- my($status) = 0;
- if ($line =~ /init_child_poa\s*\(/) {
- $initChildPOAArg = 0;
- $status = 1;
- }
- return $status;
-}
-
-
-sub replaceChildOrbName {
- my($line) = shift;
- if ($initChildPOAArg < 4) {
- if ($line =~ /ACE_ENV_ARG_PARAMETER/) {
- $line =~ s/ACE_ENV_ARG_PARAMETER/,ACE_ENV_ARG_PARAMETER/;
- }
- my($length) = length($line);
- my($previous) = 0;
- my($replace) = " TAO_TestCombinedThreads::getRandomString(" .
- "\"$name\").c_str()";
-
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($line, $i, 1);
- ## Add the substr check because the ACE_ENV_ARG_PARAMETER doesn't
- ## have a comma before it and the above search and replace doesn't
- ## work for multi-lined ORB_init's
- if ($ch eq "," || $ch eq ")" ||
- ($orbInitArg == 2 && $i == $length - 1 &&
- substr($line, $previous) !~ /^\s+$/)) {
- $initChildPOAArg++;
- if ($initChildPOAArg == 4) {
- my($size) = $i - $previous;
- my($part) = substr($line, $previous, $size);
- # I am relying on convention here
- if ($part !~ /env/i) {
- substr($line, $previous, $size) = $replace;
- }
- else {
- substr($line, $previous, 0) = "$replace,\n";
- }
- last;
- }
- $previous = $i + 1;
- }
- }
- if ($line =~ /,ACE_ENV_ARG_PARAMETER/) {
- $line =~ s/,ACE_ENV_ARG_PARAMETER/ ACE_ENV_ARG_PARAMETER/;
- }
- }
- return $line;
-}
-
-
-sub usageAndExit {
- my($str) = shift;
- if (defined $str) {
- print STDERR "$str\n";
- }
- print STDERR "Usage: " . basename($0) .
- " [-orbcore] [-unix] [-notimeout] [-main <main prefix>]\n" .
- " <input file> <output file>\n";
- exit(1);
-}
-
-
-sub modifyFileAttributes {
- my($orig) = shift;
- my($new) = shift;
- my(@buf) = stat($orig);
-
- if (defined $buf[0]) {
- utime($buf[8], $buf[9] + 1, $new);
- }
-}
-
-
-# **************************************************************
-# Main Section
-# **************************************************************
-
-my($useORBCore) = 0;
-my($useThreadM) = 0;
-my($unixDefines) = 0;
-my($useTimeouts) = 1;
-
-while(defined $ARGV[0] && $ARGV[0] =~ /^-/) {
- if ($ARGV[0] eq '-threadmanager') {
- $useThreadM = 1;
- shift;
- }
- elsif ($ARGV[0] eq '-orbcore') {
- $useORBCore = 1;
- shift;
- }
- elsif ($ARGV[0] eq '-unix') {
- $unixDefines = 1;
- shift;
- }
- elsif ($ARGV[0] eq '-main') {
- shift;
- if (defined $ARGV[0]) {
- $name = $ARGV[0];
- shift;
- }
- else {
- usageAndExit("-main requires a parameter");
- }
- }
- elsif ($ARGV[0] eq '-notimeout') {
- $useTimeouts = 0;
- shift;
- }
- else {
- usageAndExit("Unknown option: $ARGV[0]");
- }
-}
-
-## We should have an input and output file name at this point.
-if ($#ARGV != 1) {
- usageAndExit();
-}
-
-
-# **************************************************************
-# Get the basename and remove the .cpp
-# We will use this as the prefix to our main function
-# **************************************************************
-
-if ($name eq "") {
- $name = basename($ARGV[0]);
- $name =~ s/\.cpp//;
- $name =~ s/\-/_/g;
-}
-
-# **************************************************************
-# Read in the file and push it into an array. Then, print it
-# out when we are done modifying it.
-# **************************************************************
-
-my($status) = 0;
-if (open(IN, $ARGV[0])) {
- if (open(OUT, ">$ARGV[1]")) {
- my(@lines) = ();
- my($line) = "";
- if ($useThreadM) {
- while(<IN>) {
- $line = $_;
- $line =~ s/ACE_Thread\s*::\s*join/TAO_TestCombinedThreads::thr_join/g;
-# $line =~ s/^\s*template\s*class\s*.*;\s*$//g;
- push(@lines, $line);
- }
- unshift(@lines, "#include <tests/TestUtils/TestCombinedThreads.h>\n");
- }
- elsif ($useORBCore) {
- my($insideInstance) = 0;
- while(<IN>) {
- $line = $_;
-# $line =~ s/^\s*template\s*class\s*.*;\s*$//g;
- if ($line =~ /^TAO_ORB_Core_instance\s*\(.*\)/) {
- $insideInstance = 1;
- }
- if ($insideInstance && $line =~ /return\s+/) {
- $line = " // Find the orb for the thread that " .
- "registered the ORB id\n" .
- " TAO_ORB_Core* hack = orb_table->find(" .
- "TAO_TestCombinedThreads::getORBId());\n" .
- " if (hack != 0) {\n" .
- " return hack;\n" .
- " }\n\n" . $line;
- $insideInstance = 0;
- }
- push(@lines, $line);
- }
- unshift(@lines, "#include <tests/TestUtils/TestCombinedThreads.h>\n");
- }
- else {
- my($insideComment) = 0;
- my($insideParens) = 0;
- my($scope) = 0;
- my($orbrunFound) = 0;
- my($insideORB_init) = 0;
- my($insideInitChildPOA) = 0;
- my($taskBase) = "";
- while(<IN>) {
- $line = $_;
-
- my($lookForClosingParens) = 1;
- ## Remove comments
- if ($line =~ /(.*)(\/\/[\/]+.*)/ || $line =~ /(.*)(\/\/.*)/) {
- my($qcount) = countChar($1, '"');
- $line = "$1";
- if (($qcount & 1) == 1) {
- $line .= $2;
- }
- $line .= "\n";
- }
- if ($line =~ /(.*)(\/\*.*\*\/)(.*)/) {
- $line = "$1$3\n";
- }
- elsif ($line =~ /(.*)(\/\*.*)/) {
- $insideComment = 1;
- $line = "$1\n";
- }
- elsif ($insideComment && $line =~ /(.*\*\/)(.*)/) {
- $insideComment = 0;
- $line = $2;
- }
- elsif ($insideComment) {
- $line = "\n";
- }
-
- if ($line =~ /TAO_ORB_Manager[\*\s]*\s+(\w+)/) {
- $orbManager = $1;
- }
-
- lookForActivate($line, \$taskBase);
- if ($taskBase ne "" && $line =~ /thr_mgr\s*\(\)\->wait\s*\(\)/) {
- $line =~ s/\->wait\s*\(.*\)/\->wait_grp \($taskBase.grp_id\(\)\)/;
- }
-
- $insideInitChildPOA = ($insideInitChildPOA ? 1 :
- lookForInitChildPOA($line));
- if ($insideInitChildPOA) {
- $line = replaceChildOrbName($line);
- if ($line =~ /\)\s*;/) {
- $insideInitChildPOA = 0;
- }
- }
-
- $insideORB_init = ($insideORB_init ? 1 : lookForOrbInit($line));
- if ($insideORB_init) {
- $line = replaceOrbName($line);
- if ($line =~ /\)\s*;/) {
- $insideORB_init = 0;
- }
- }
-
-
- if (!$orbrunFound && $useTimeouts) {
- if ($orbrunFound = lookForOrbRun($line)) {
- $line = modifyOrbRun($line);
- }
- }
-
- ## Check the scope
- if ($line =~ /{/) {
- $scope += countChar($line, '{');
- }
- ## Check for parens
- if ($line =~ /\(/) {
- $insideParens += countChar($line, '(');
- ## This takes care of things like
- ## int parse_args(...), but allows things like
- ## int parse_args(...,
- ## ...) to pass through which is what we want
- if ($line =~ /\)/) {
- $insideParens -= countChar($line, ')');
- $lookForClosingParens = 0;
- }
- }
-
- if ($scope == 0) {
- ## This section is for forward declarations
- if ($line =~ /;$/) {
- my($forward_done) = 0;
- my($counter) = $#lines;
- while(!$forward_done) {
- if ($lines[$counter] =~ /,$/) {
- if ($lines[$counter] =~ /\s+\w+\s*\(.*,$/ &&
- needsToBeStatic($lines[$counter])) {
- $lines[$counter] = "static $lines[$counter]";
- $forward_done = 1;
- }
- }
- else {
- $forward_done = 1;
- }
- $counter--;
- }
- }
- if (!$insideParens && needsToBeStatic($line)) {
- my($test) = $lines[$#lines];
- $test =~ s/^\s+//;
- $test =~ s/\s+$//;
- if ($test ne "static") {
- $line = "static $line";
- }
- }
- }
-
- if ($scope == 1 && $orbrunFound &&
- ($line =~ /\s*return/ || $line =~ /\s*ACE_RETURN/)) {
- $orbrunFound = 0;
- }
-
- # Going down in scope
- if ($line =~ /}/) {
- $scope -= countChar($line, '}');
- if ($orbrunFound && $scope == 1) {
- $orbrunFound = 0;
- }
- }
- if ($lookForClosingParens && $line =~ /\)/) {
- $insideParens -= countChar($line, ')');
- }
-
- ## Work backwards to remove the static from
- ## the main or a method body
- if ($scope == 0 &&
- ($line =~ /(main\s*(\()?)/ || $line =~ /\w+\s*::\s*\w+\s*\(/)) {
- if ($line =~ /^static\s+/) {
- $line =~ s/static\s+//;
- }
- else {
- if ($lines[$#lines] =~ /static\s+/) {
- $lines[$#lines] =~ s/static\s+//;
- }
- }
- }
-
- push(@lines, $line);
- if ($line =~ /(\smain\s*(\()?)/ || $line =~ /(^main\s*(\()?)/) {
- my($saved) = pop(@lines);
- if ($1 !~ /^\s*int/) {
- my($below) = pop(@lines);
- $saved = "$below$saved";
- }
- if ($unixDefines) {
- push(@lines, "#define main $name" . "_main\n\n");
- }
- else {
- push(@lines, "#define ace_main $name" . "_main\n" .
- "#define ace_main_i $name" . "_main_i\n\n");
- }
- push(@lines, $saved);
- }
- }
- ## Look for last include and append include statement
- for(my $i = $#lines; $i >= 0; $i--) {
- if ($lines[$i] =~ /#include\s+/) {
- $lines[$i] .= "#include <tests/" .
- "TestUtils/TestCombinedThreads.h>\n";
- last;
- }
- }
- unshift(@lines, "// \$Id\$\n\n");
- }
- print OUT @lines;
- close(OUT);
-
- if ($useThreadM || $useORBCore) {
- modifyFileAttributes($ARGV[0], $ARGV[1]);
- }
- }
- else {
- print STDERR "Unable to open $ARGV[1] for output\n";
- $status = 1;
- }
- close(IN);
-}
-else {
- print STDERR "Unable to open $ARGV[0] for input\n";
- $status = 1;
-}
-
-exit($status);
diff --git a/ACE/configure.ac b/ACE/configure.ac
index a1bb9ef08e5..dd6b532221c 100644
--- a/ACE/configure.ac
+++ b/ACE/configure.ac
@@ -14,10 +14,7 @@ dnl particularly with M4, do not modify this macro definition.
define([ACE_VERSION], patsubst(esyscmd(grep ACE_VERSION ace/Version.h | sed 's/.*\" *\(.*\)\".*/\1/'), [
]))dnl remove newline ending every `esyscmd' answer
-AC_INIT([ACE],
- ACE_VERSION,
- [ace-bugs@cs.wustl.edu],
- [ace])
+AC_INIT([ACE],[ACE_VERSION],[ace-bugs@list.isis.vanderbilt.edu],[ace])
AC_REVISION([$Id$])
@@ -39,7 +36,7 @@ additional details.])
dnl Require GNU Autoconf 2.58 or better. Previous versions did not
dnl correctly support HP-UX.
-AC_PREREQ([2.58])
+AC_PREREQ(2.61)
dnl Autoconf explicitly forbids patterns containing "_AC_". This causes
dnl a problem when using MPC to generate the Automake ".am" files since
@@ -135,6 +132,9 @@ AC_LANG([C++])
dnl If we are cross compiling disable certain things in the Makefiles.
AM_CONDITIONAL([ACE_CROSS_COMPILED], [test X$cross_compiling = Xyes])
+dnl If we are cross compiling disable certain things in the Makefiles.
+AM_CONDITIONAL([BUILD_CROSS_COMPILE], [test X$cross_compiling = Xyes])
+
dnl Look for the best awk-style program available.
AC_PROG_AWK
@@ -221,6 +221,7 @@ dnl Check for gethostbyname in -lnsl since some platforms (e.g. Solaris)
dnl put it there.
AC_SEARCH_LIBS([gethostbyname],[nsl],,)
+ACE_CHECK_HAS_FUNCS(gethostbyname2)
dnl Add --{enable,disable,with,without}-feature options.
ACE_CONFIGURATION_OPTIONS
@@ -368,9 +369,6 @@ AC_DISABLE_STATIC
dnl Enable Libtool module support
AC_LIBTOOL_DLOPEN
-dnl Enable support for "clean" DLLs.
-AC_LIBTOOL_WIN32_DLL
-
dnl
dnl ###### Relies on the as of yet unreleased Libtool 1.6 distribuion ###
dnl
@@ -493,10 +491,10 @@ AC_CHECK_HEADER([dlfcn.h],
case "$host_os" in
darwin*)
AC_DEFINE([ACE_LD_SEARCH_PATH],
- [ACE_LIB_TEXT ("DYLD_LIBRARY_PATH")],
+ [ACE_TEXT ("DYLD_LIBRARY_PATH")],
[Define to environment variable used for DLL search path])
AC_DEFINE([ACE_DLL_SUFFIX],
- [ACE_LIB_TEXT (".dylib")],
+ [ACE_TEXT (".dylib")],
[Define to DLL file suffix])
;;
esac
@@ -764,7 +762,7 @@ dnl Check if XTI headers define TCP macros that conflict with netinet/tcp.h's
# endif /* ACE_HAS_XTI */
# if !defined (ACE_LACKS_NETINET_TCP_H)
# include /**/ <netinet/tcp.h>
-# endif /* !ACE_LACKS_NETIINET_TCP_H */
+# endif /* !ACE_LACKS_NETINET_TCP_H */
]],[[
int a = 0;
]])],[
@@ -1004,12 +1002,6 @@ AC_CHECK_HEADER([new],
ACE_CHECK_HAS_HEADERS([new.h])
])
-dnl ace/OS.i can #include <cstring>,not #include <cstring.h>
-dnl "cstring" is the correct form.
-dnl TODO: Double check the above comment.
-AC_CHECK_HEADER([cstring],
- [AC_DEFINE([ACE_HAS_GNU_CSTRING_H])],)
-
AC_CHECK_HEADER([memory],,)
dnl Check for availablity of "new style" C++ stream headers
@@ -1304,6 +1296,11 @@ AC_CHECK_TYPE([sigset_t],
[AC_DEFINE([ACE_LACKS_SIGSET], 1,
[Define to 1 if the system lacks the type `sigset_t'.])],
[#include <signal.h>])
+AC_CHECK_TYPE([struct lifnum],
+ [],
+ [AC_DEFINE([ACE_LACKS_STRUCT_LIFNUM], 1,
+ [Define to 1 if the system uses int instead of `struct lifnum' for SIOCGIFNUM ioctl.])],
+ [#include <net/if.h>])
AC_CHECK_TYPE([struct utsname],
[],
[AC_DEFINE([ACE_LACKS_UTSNAME_T], 1,
@@ -1568,48 +1565,6 @@ ACE_CACHE_CHECK([for sys_siglist],
])
],[AC_DEFINE([ACE_HAS_SYS_SIGLIST])],)
-dnl Check for sys_errlist
-dnl TODO: Check whether this variable can be defined somewhere else.
-ACE_CACHE_CHECK([for sys_errlist],
- [ace_cv_lib_posix_sys_errlist],[
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <errno.h>
-#if !defined (_sys_errlist)
-# define _sys_errlist sys_errlist
-#endif
- ]],[[
- void* vp = (void*) &_sys_errlist;
- ]])],[
- ace_cv_lib_posix_sys_errlist=yes
- ],[
- dnl Check if sys_errlist is a global variable in a library
- AC_LINK_IFELSE([AC_LANG_PROGRAM(
- [[
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (_sys_errlist)
-# define _sys_errlist sys_errlist
-#endif
-
-extern const char * const _sys_errlist[];
- ]],
- [[
- void* vp = (void*) &_sys_errlist;
- ]])],
- [
- ace_cv_lib_posix_sys_errlist=yes
- ],
- [
- ace_cv_lib_posix_sys_errlist=no
- ])
- ])
- ],[AC_DEFINE([ACE_HAS_SYS_ERRLIST])],)
-
-dnl Save the cache for debugging purposes
-AC_CACHE_SAVE
-
dnl SECTION 9: checks for compiler characteristics
@@ -2984,6 +2939,27 @@ if test "$ac_cv_func__InterlockedIncrement" = yes &&
AC_DEFINE([ACE_HAS_INTRINSIC_INTERLOCKED])
fi
+dnl Check for GCC atomic builtin
+AC_MSG_CHECKING([for GCC atomic builtin])
+AC_LINK_IFELSE([AC_LANG_PROGRAM(
+ [[
+ ]],
+ [[
+ volatile unsigned long val = 10;
+ unsigned long retval = __sync_sub_and_fetch(&val, 1);
+ retval = __sync_add_and_fetch(&val, 1);
+ retval = __sync_fetch_and_sub(&val, 1);
+ retval = __sync_fetch_and_add(&val, 1);
+ ]])],
+ [
+ AC_MSG_RESULT([yes])
+ AC_DEFINE([ACE_HAS_GCC_ATOMIC_BUILTINS], 1,
+ [Define to 1 if compiler has builtin atomic support])
+ ],
+ [
+ AC_MSG_RESULT([no])
+ ])
+
ACE_CHECK_LACKS_FUNCS(access)
ACE_CHECK_LACKS_FUNCS(alphasort)
@@ -3312,11 +3288,10 @@ if test "$ac_cv_func_strnlen" = yes; then
[#include <string.h>])
fi
+ACE_CHECK_HAS_FUNCS(strsignal)
+
ACE_CHECK_LACKS_FUNCS(strchr)
-# believe it or not, both ACE_LACKS_STRERROR and ACE_HAS_STRERROR
-# feature test macros are currently used.
-ACE_CHECK_HAS_FUNCS(strerror)
ACE_CHECK_LACKS_FUNCS(strerror)
ACE_CHECK_LACKS_FUNCS(strftime)
@@ -3442,6 +3417,7 @@ main ()
AC_CHECK_FUNC([gethostbyaddr],,)
+if test "$cross_compiling" != yes; then
case "$host" in
*linux*)
dnl Linux Event Poll
@@ -3494,6 +3470,7 @@ main ()
[])
;;
esac
+fi
AC_CHECK_FUNC([gethrtime])
if test $ac_cv_func_gethrtime = "yes"; then
@@ -3504,30 +3481,6 @@ if test $ac_cv_func_gethrtime = "yes"; then
[#include <sys/time.h>])
fi
-AC_CHECK_FUNC([pread],
- [AC_CHECK_FUNC([pwrite],
- [
- AC_DEFINE([ACE_HAS_P_READ_WRITE])
- dnl Check if _XOPEN_SOURCE=500 macro is needed to make the pread() and
- dnl pwrite() prototypes visible.
- ACE_CACHE_CHECK([for pread prototype],
- [ace_cv_lib_has_pread_prototype],
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+pread], [unistd.h],
- [
- ace_cv_lib_has_pread_prototype=yes
- ],
- [
- ace_cv_lib_has_pread_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],,[AC_DEFINE([ACE_LACKS_PREAD_PROTOTYPE])])
- ],)],)
-
ACE_CHECK_LACKS_FUNCS(readv writev)
ACE_CHECK_HAS_FUNCS(set_t_errno)
@@ -3784,7 +3737,7 @@ dnl if test "$ace_cv_shm_open_requires_one_slash" = yes; then
dnl AC_DEFINE([ACE_SHM_OPEN_REQUIRES_ONE_SLASH])
dnl fi
-ACE_CHECK_HAS_FUNCS(snprintf)
+ACE_CHECK_LACKS_FUNCS(vsnprintf)
ACE_CHECK_LACKS_FUNCS(tempnam truncate)
@@ -4033,7 +3986,7 @@ dnl name.
dnl tested function name.
AC_CHECK_FUNC([pthread_condattr_setpshared],
[],
- [AC_DEFINE([ACE_LACKS_CONDATTR_PSHARED], 1,
+ [AC_DEFINE([ACE_LACKS_CONDATTR_PSHARED], 1,
[Define to 1 if system lacks pthread_condattr_setpshared()])])
dnl ACE_CHECK_LACKS_FUNCS(pthread_attr_setstack)
@@ -4603,11 +4556,11 @@ if test "$ace_user_enable_reentrant_funcs" = yes; then
#endif
]],
[[
- const char * name;
+ const char * name = 0;
struct passwd * pwent;
- char * buffer;
+ char * buffer = 0;
int buflen;
- struct passwd * result;
+ struct passwd * result = 0;
int status = getpwnam_r (name, pwent, buffer, buflen, &result);
]])],
@@ -4616,10 +4569,11 @@ if test "$ace_user_enable_reentrant_funcs" = yes; then
AC_DEFINE([ACE_HAS_POSIX_GETPWNAM_R])
fi
],
- [
+ [
dnl Nothing to do!
- ])
- ],
+ echo
+ ]),
+ ],,
[AC_DEFINE([ACE_LACKS_PWD_REENTRANT_FUNCTIONS])])
AC_CHECK_FUNC([ctime_r],,)
@@ -5980,85 +5934,6 @@ dnl
dnl SECTION 13: checks for system services
dnl
-dnl Check if platform defines ctime() as a macro
-ACE_CACHE_CHECK([for ctime() macro],
- [ace_cv_feature_have_ctime_macro],
- [
- AC_EGREP_CPP([ACE_CTIME_MACRO],
- [
-#include <time.h>
-
-#if defined (ctime)
- ACE_CTIME_MACRO
-#endif
- ],
- [
- ace_cv_feature_have_ctime_macro=yes
- ],
- [
- ace_cv_feature_have_ctime_macro=no
- ])
- ], [AC_DEFINE([ACE_HAS_BROKEN_CTIME])],)
-
-dnl Check if platform defines ctime_r, asctime_r, rand_r or getpwnam_r
-dnl as macros.
-ACE_CACHE_CHECK([for reentrant function macros],
- [ace_cv_feature_has_broken_r_routines],
- [
- AC_EGREP_CPP([ACE_R_MACROS],
- [
-#ifndef _REENTRANT
-# define _REENTRANT
-#endif
-
-#include <time.h>
-
-#if !defined (ACE_LACKS_PWD_H)
-# include <pwd.h>
-#endif
-
-#if defined (ctime_r) || \
- defined (asctime_r) || \
- defined (rand_r) || \
- defined (getpwnam_r)
- ACE_R_MACROS
-#endif
- ],
- [
- ace_cv_feature_has_broken_r_routines=yes
- ],
- [
- ace_cv_feature_has_broken_r_routines=no
- ])
- ], [AC_DEFINE([ACE_HAS_BROKEN_R_ROUTINES])],)
-
-dnl Check if platform defines sig{empty,fill,add,del}set as macros
-ACE_CACHE_CHECK([for sig{empty fill add del}set macros],
- [ace_cv_feature_have_sig_macros],
- [
- AC_EGREP_CPP([ACE_SIG_MACROS],
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <signal.h>
-
-#if defined (sigemptyset) || \
- defined (sigfillset) || \
- defined (sigaddset) || \
- defined (sigdelset) || \
- defined (sigismember)
- ACE_SIG_MACROS
-#endif
- ],
- [
- ace_cv_feature_have_sig_macros=yes
- ],
- [
- ace_cv_feature_have_sig_macros=no
- ])
- ], [AC_DEFINE([ACE_HAS_SIG_MACROS])],)
-
dnl Check for open() mode masks
ACE_CACHE_CHECK([for open() mode masks],
[ace_cv_feature_have_open_mode_masks],[
@@ -7114,7 +6989,7 @@ elif test "$ace_cv_lib_signal_vi1_2" != yes &&
test "$ace_cv_lib_struct_sigaction_vv1_handler" != yes &&
test "$ace_cv_lib_struct_sigaction_vi1a2_handler" != yes &&
test "$ace_cv_lib_struct_sigaction_va1_handler" = yes; then
- AC_DEFINE([ACE_HAS_LYNXOS_SIGNALS])
+ AC_DEFINE([ACE_HAS_LYNXOS4_SIGNALS])
AC_DEFINE([ACE_HAS_TANDEM_SIGNALS])
elif test "$ace_cv_lib_signal_vi1_2" = yes &&
test "$ace_cv_lib_signal_vi1_ret" = yes &&
@@ -7614,11 +7489,6 @@ if test -d $srcdir/protocols; then
AC_SUBST([protocols],[protocols])
fi
-if test -d $srcdir/TAO -a X$ace_user_with_tao = Xyes; then
- AC_CONFIG_SUBDIRS([TAO])
- AC_SUBST([TAO],[TAO])
-fi
-
dnl Note that the "ACE_VERSION" in the message below is an M4 macro
dnl that expands to the version of ACE being configured.
AC_CONFIG_COMMANDS([default],[
diff --git a/ACE/contrib/FaCE/CE_ARGV.CPP b/ACE/contrib/FaCE/CE_ARGV.CPP
deleted file mode 100644
index 6b97a30b640..00000000000
--- a/ACE/contrib/FaCE/CE_ARGV.CPP
+++ /dev/null
@@ -1,118 +0,0 @@
-// $Id$
-
-#include "CE_ARGV.H"
-
-
-CE_ARGV::CE_ARGV(wchar_t* cmdLine)
-: ce_argv_(0)
-, ce_argc_(0)
-{
- const wchar_t* dummyArgv = L"root"; // dummy for the first argv
- const wchar_t* separator = L" "; // blank space is a separator
-
- int formattedCmdLineLength = wcslen(dummyArgv) +
- wcslen(separator) +
- 1; // 1 is for the NULL at the end
-
- if (wcslen(cmdLine) > 0) {
- formattedCmdLineLength += wcslen(cmdLine);
- formattedCmdLineLength += wcslen(separator);
- }
-
- // formattedCmdLine will have dummyArgv and a separator at the beginning of cmdLine
- // and a separator at the end to generalize format and reduce the amount of code
- wchar_t* formattedCmdLine = 0;
- formattedCmdLine = new wchar_t[formattedCmdLineLength];
-
- wcscpy(formattedCmdLine, dummyArgv);
- wcscat(formattedCmdLine, separator);
-
- int max_possible_argc = 1; // start with 1 because of the dummyArgv at the beginning
-
- if (wcslen(cmdLine) > 0) {
- int formattedPos = wcslen(formattedCmdLine);
- int cmdLineLength = wcslen(cmdLine);
-
- // Inside of this for loop, it does same thing as strcat except it
- // checks and puts only one single white space between two argv entries.
- for (int i = 0; i < cmdLineLength; ++i) {
- if (iswspace(cmdLine[i]) != 0) {
- ++max_possible_argc; // counting the number of white spaces
- }
-
- formattedCmdLine[formattedPos++] = cmdLine[i];
-
- if (iswspace(cmdLine[i]) != 0) {
- // make sure there is only one white space between two argv entries.
- while ((i < cmdLineLength) && (iswspace(cmdLine[i + 1]) != 0)) {
- ++i;
- }
- }
- }
-
- formattedCmdLine[formattedPos] = 0;
- wcscat(formattedCmdLine, separator); // make sure formattedCmdLine ends with a blank
- }
-
- int formattedCmdLength = wcslen(formattedCmdLine);
-
- bool insideQuotation = false;
- int* argv_strlen = 0;
- int entry_size = 0;
- argv_strlen = new int[max_possible_argc];
-
- // determine argc
- for (int i = 0; i < formattedCmdLength; ++i) {
- if (formattedCmdLine[i] == '\\') {
- ++i; // ignore the following character
- ++entry_size;
- }
- else if (formattedCmdLine[i] == '"') {
- insideQuotation = !insideQuotation;
- }
- else if ((!insideQuotation) && (iswspace(formattedCmdLine[i]) != 0)) {
- // new argv entry end found
- argv_strlen[ce_argc_++] = entry_size; // cache the size of this entry
- entry_size = 0;
- }
- else {
- ++entry_size;
- }
- }
-
- ce_argv_ = new wchar_t*[ce_argc_ + 1];
- ce_argv_[ce_argc_] = 0; // Last command line entry is a NULL.
-
- for (int j = 0, cmdLinePos = 0; j < ce_argc_; ++j, ++cmdLinePos) {
- int length = argv_strlen[j];
-
- ce_argv_[j] = new wchar_t[length + 1];
- ce_argv_[j][length] = 0; // string termination null
-
- if (iswspace(formattedCmdLine[cmdLinePos]) != 0) {
- // This is where prior argv has trailing '"' at the end.
- ++cmdLinePos;
- }
-
- for (int n = 0; n < length; ++n, ++cmdLinePos) {
- if ((formattedCmdLine[cmdLinePos] == '\\') || (formattedCmdLine[cmdLinePos] == '"')) {
- ++cmdLinePos;
- }
-
- ce_argv_[j][n] = formattedCmdLine[cmdLinePos];
- }
- }
-
- delete argv_strlen;
- delete formattedCmdLine;
-}
-
-
-CE_ARGV::~CE_ARGV(void)
-{
- for (int i = 0; i < ce_argc_; ++i) {
- delete [] ce_argv_[i];
- }
-
- delete [] ce_argv_;
-}
diff --git a/ACE/contrib/FaCE/CE_ARGV.H b/ACE/contrib/FaCE/CE_ARGV.H
deleted file mode 100644
index 716887ae1a8..00000000000
--- a/ACE/contrib/FaCE/CE_ARGV.H
+++ /dev/null
@@ -1,90 +0,0 @@
-// -*- C++ -*-
-//=============================================================================
-/**
- * @file CE_ARGV.H
- *
- * $Id$
- *
- * @author Si Mong Park <spark@ociweb.com>
- */
-//=============================================================================
-
-#ifndef CE_ARGV_H
-#define CE_ARGV_H
-
-#include <windows.h>
-
-
-/**
- * @class CE_ARGV
- *
- * @brief This class is to hash input parameters, argc and argv, for WinCE platform.
- *
- * Since WinCE only supports wchar_t as an input from OS, some implementation detail,
- * especially for CORBA spec, will not support wchar_t (wchar_t) type parameter.
- * Moreover, WinCE's input parameter type is totally different than any other OS;
- * all command line parameters will be stored in a single wide-character string with
- * each unit parameter divided by blank space, and it does not provide the name of
- * executable (generally known as argv[0]).
- * This class is to convert CE's command line parameters and simulate as in the same
- * manner as other general platforms, adding 'root' as a first argc, which is for the
- * name of executable in other OS.
- */
-class CE_ARGV
-{
-public:
- /**
- * Ctor accepts CE command line as a parameter.
- */
- CE_ARGV(wchar_t* cmdLine);
-
- /**
- * Default Dtor that deletes any memory allocated for the converted string.
- */
- ~CE_ARGV(void);
-
- /**
- * Returns the number of command line parameters, same as argc on Unix.
- */
- int argc(void);
-
- /**
- * Returns the 'char**' that contains the converted command line parameters.
- */
- wchar_t** const argv(void);
-
-private:
- /**
- * Copy Ctor is not allowed.
- */
- CE_ARGV(void);
-
- /**
- * Copy Ctor is not allowed.
- */
- CE_ARGV(CE_ARGV&);
-
- /**
- * Pointer of converted command line parameters.
- */
- wchar_t** ce_argv_;
-
- /**
- * Integer that is same as argc on other OS's.
- */
- int ce_argc_;
-};
-
-
-inline int CE_ARGV::argc()
-{
- return ce_argc_;
-}
-
-
-inline wchar_t** const CE_ARGV::argv()
-{
- return ce_argv_;
-}
-
-#endif // CE_ARGV_H
diff --git a/ACE/contrib/FaCE/CE_ARGV.cpp b/ACE/contrib/FaCE/CE_ARGV.cpp
new file mode 100644
index 00000000000..2da41912678
--- /dev/null
+++ b/ACE/contrib/FaCE/CE_ARGV.cpp
@@ -0,0 +1,117 @@
+// $Id$
+
+#include "CE_ARGV.h"
+
+CE_ARGV::CE_ARGV(wchar_t* cmdLine)
+: ce_argv_(0)
+, ce_argc_(0)
+{
+ const wchar_t* dummyArgv = L"root"; // dummy for the first argv
+ const wchar_t* separator = L" "; // blank space is a separator
+
+ int formattedCmdLineLength = wcslen(dummyArgv) +
+ wcslen(separator) +
+ 1; // 1 is for the NULL at the end
+
+ if (wcslen(cmdLine) > 0) {
+ formattedCmdLineLength += wcslen(cmdLine);
+ formattedCmdLineLength += wcslen(separator);
+ }
+
+ // formattedCmdLine will have dummyArgv and a separator at the beginning of cmdLine
+ // and a separator at the end to generalize format and reduce the amount of code
+ wchar_t* formattedCmdLine = 0;
+ formattedCmdLine = new wchar_t[formattedCmdLineLength];
+
+ wcscpy(formattedCmdLine, dummyArgv);
+ wcscat(formattedCmdLine, separator);
+
+ int max_possible_argc = 1; // start with 1 because of the dummyArgv at the beginning
+
+ if (wcslen(cmdLine) > 0) {
+ int formattedPos = wcslen(formattedCmdLine);
+ int cmdLineLength = wcslen(cmdLine);
+
+ // Inside of this for loop, it does same thing as strcat except it
+ // checks and puts only one single white space between two argv entries.
+ for (int i = 0; i < cmdLineLength; ++i) {
+ if (iswspace(cmdLine[i]) != 0) {
+ ++max_possible_argc; // counting the number of white spaces
+ }
+
+ formattedCmdLine[formattedPos++] = cmdLine[i];
+
+ if (iswspace(cmdLine[i]) != 0) {
+ // make sure there is only one white space between two argv entries.
+ while ((i < cmdLineLength) && (iswspace(cmdLine[i + 1]) != 0)) {
+ ++i;
+ }
+ }
+ }
+
+ formattedCmdLine[formattedPos] = 0;
+ wcscat(formattedCmdLine, separator); // make sure formattedCmdLine ends with a blank
+ }
+
+ int formattedCmdLength = wcslen(formattedCmdLine);
+
+ bool insideQuotation = false;
+ int* argv_strlen = 0;
+ int entry_size = 0;
+ argv_strlen = new int[max_possible_argc];
+
+ // determine argc
+ for (int i = 0; i < formattedCmdLength; ++i) {
+ if (formattedCmdLine[i] == '\\') {
+ ++i; // ignore the following character
+ ++entry_size;
+ }
+ else if (formattedCmdLine[i] == '"') {
+ insideQuotation = !insideQuotation;
+ }
+ else if ((!insideQuotation) && (iswspace(formattedCmdLine[i]) != 0)) {
+ // new argv entry end found
+ argv_strlen[ce_argc_++] = entry_size; // cache the size of this entry
+ entry_size = 0;
+ }
+ else {
+ ++entry_size;
+ }
+ }
+
+ ce_argv_ = new wchar_t*[ce_argc_ + 1];
+ ce_argv_[ce_argc_] = 0; // Last command line entry is a NULL.
+
+ for (int j = 0, cmdLinePos = 0; j < ce_argc_; ++j, ++cmdLinePos) {
+ int length = argv_strlen[j];
+
+ ce_argv_[j] = new wchar_t[length + 1];
+ ce_argv_[j][length] = 0; // string termination null
+
+ if (iswspace(formattedCmdLine[cmdLinePos]) != 0) {
+ // This is where prior argv has trailing '"' at the end.
+ ++cmdLinePos;
+ }
+
+ for (int n = 0; n < length; ++n, ++cmdLinePos) {
+ if ((formattedCmdLine[cmdLinePos] == '\\') || (formattedCmdLine[cmdLinePos] == '"')) {
+ ++cmdLinePos;
+ }
+
+ ce_argv_[j][n] = formattedCmdLine[cmdLinePos];
+ }
+ }
+
+ delete argv_strlen;
+ delete formattedCmdLine;
+}
+
+
+CE_ARGV::~CE_ARGV(void)
+{
+ for (int i = 0; i < ce_argc_; ++i) {
+ delete [] ce_argv_[i];
+ }
+
+ delete [] ce_argv_;
+}
diff --git a/ACE/contrib/FaCE/CE_ARGV.h b/ACE/contrib/FaCE/CE_ARGV.h
new file mode 100644
index 00000000000..a4cf2b1aaad
--- /dev/null
+++ b/ACE/contrib/FaCE/CE_ARGV.h
@@ -0,0 +1,91 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file CE_ARGV.h
+ *
+ * $Id$
+ *
+ * @author Si Mong Park <spark@ociweb.com>
+ */
+//=============================================================================
+
+#ifndef CE_ARGV_H
+#define CE_ARGV_H
+
+#include <windows.h>
+#include <ctype.h>
+
+
+/**
+ * @class CE_ARGV
+ *
+ * @brief This class is to hash input parameters, argc and argv, for WinCE platform.
+ *
+ * Since WinCE only supports wchar_t as an input from OS, some implementation detail,
+ * especially for CORBA spec, will not support wchar_t (wchar_t) type parameter.
+ * Moreover, WinCE's input parameter type is totally different than any other OS;
+ * all command line parameters will be stored in a single wide-character string with
+ * each unit parameter divided by blank space, and it does not provide the name of
+ * executable (generally known as argv[0]).
+ * This class is to convert CE's command line parameters and simulate as in the same
+ * manner as other general platforms, adding 'root' as a first argc, which is for the
+ * name of executable in other OS.
+ */
+class CE_ARGV
+{
+public:
+ /**
+ * Ctor accepts CE command line as a parameter.
+ */
+ CE_ARGV(wchar_t* cmdLine);
+
+ /**
+ * Default Dtor that deletes any memory allocated for the converted string.
+ */
+ ~CE_ARGV(void);
+
+ /**
+ * Returns the number of command line parameters, same as argc on Unix.
+ */
+ int argc(void);
+
+ /**
+ * Returns the 'char**' that contains the converted command line parameters.
+ */
+ wchar_t** argv(void);
+
+private:
+ /**
+ * Copy Ctor is not allowed.
+ */
+ CE_ARGV(void);
+
+ /**
+ * Copy Ctor is not allowed.
+ */
+ CE_ARGV(CE_ARGV&);
+
+ /**
+ * Pointer of converted command line parameters.
+ */
+ wchar_t** ce_argv_;
+
+ /**
+ * Integer that is same as argc on other OS's.
+ */
+ int ce_argc_;
+};
+
+
+inline int CE_ARGV::argc()
+{
+ return ce_argc_;
+}
+
+
+inline wchar_t** CE_ARGV::argv()
+{
+ return ce_argv_;
+}
+
+#endif // CE_ARGV_H
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.h b/ACE/contrib/FaCE/FaCE.h
index ef1842323c0..89c1a7665bb 100644
--- a/ACE/contrib/FaCE/FaCE.h
+++ b/ACE/contrib/FaCE/FaCE.h
@@ -37,7 +37,6 @@ int main_i(int, wchar_t**);
#else
-#include <ace/OS.h>
#include <ace/CE_Screen_Output.h>
int ace_main_i(int, ACE_TCHAR**);
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/License.txt b/ACE/contrib/FaCE/License.txt
index ceaf85d3550..21719fba73b 100644
--- a/ACE/contrib/FaCE/License.txt
+++ b/ACE/contrib/FaCE/License.txt
@@ -24,4 +24,4 @@ all rights reserved.
== Warranty Information
==
-FaCE is provided 'as is' without warranties of any kind.
+FaCE is provided 'as is' without warranties of any kind.
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/FaCE/newres.h b/ACE/contrib/FaCE/newres.h
index 0fdbcaa3bb0..2847d54813d 100644
--- a/ACE/contrib/FaCE/newres.h
+++ b/ACE/contrib/FaCE/newres.h
@@ -31,7 +31,8 @@
#ifndef _INC_WINDOWS
#define _INC_WINDOWS
#include "winuser.h" // extract from windows header
- #include "winver.h"
+ #include "winver.h"
+ #include "windows.h"
#endif
#endif
diff --git a/ACE/contrib/FaCE/resource.h b/ACE/contrib/FaCE/resource.h
index a79d8345d1b..6faefc19e50 100644
--- a/ACE/contrib/FaCE/resource.h
+++ b/ACE/contrib/FaCE/resource.h
@@ -34,7 +34,7 @@
#define ID_TOOLS_SAVETOFILE 40012
// Next default values for new objects
-//
+//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 116
diff --git a/ACE/contrib/minizip/miniunz.c b/ACE/contrib/minizip/miniunz.c
index a78242a16c5..55f82b5c11f 100644
--- a/ACE/contrib/minizip/miniunz.c
+++ b/ACE/contrib/minizip/miniunz.c
@@ -319,7 +319,7 @@ int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,password)
printf("The file %s exists. Overwrite ? [y]es, [n]o, [A]ll: ",write_filename);
ret = scanf("%1s",answer);
- if (ret != 1)
+ if (ret != 1)
{
exit(EXIT_FAILURE);
}
@@ -569,7 +569,7 @@ int main(argc,argv)
return do_list(uf);
else if (opt_do_extract==1)
{
- if (opt_extractdir && chdir(dirname))
+ if (opt_extractdir && chdir(dirname))
{
printf("Error changing into %s, aborting\n", dirname);
exit(-1);
diff --git a/ACE/contrib/minizip/minizip.mpc b/ACE/contrib/minizip/minizip.mpc
index d02914de641..fe8d364d6d4 100644
--- a/ACE/contrib/minizip/minizip.mpc
+++ b/ACE/contrib/minizip/minizip.mpc
@@ -1,7 +1,7 @@
// -*- MPC -*-
// $Id$
-project (minizip) : zlib, vc_warnings {
+project (minizip) : install, zlib, vc_warnings {
sharedname = minizip
libout = $(ACE_ROOT)/lib
dynamicflags += MINIZIP_BUILD_DLL
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/contrib/minizip/minizip_export.h b/ACE/contrib/minizip/minizip_export.h
index 84b77df4fda..a19ccd9b1a2 100644
--- a/ACE/contrib/minizip/minizip_export.h
+++ b/ACE/contrib/minizip/minizip_export.h
@@ -16,7 +16,7 @@
# endif /* ! MINIZIP_HAS_DLL */
#endif /* MINIZIP_AS_STATIC_LIBS */
-#if defined (MINIZIP_HAS_DLL)
+#if defined (MINIZIP_HAS_DLL)
# if (MINIZIP_HAS_DLL == 1) && defined (_WINDOWS)
# if defined (MINIZIP_BUILD_DLL)
# define MINIZIP_EXPORT __declspec(dllexport)
@@ -28,6 +28,10 @@
# endif /* MINIZIP_HAS_DLL == 1 */
#endif /* MINIZIP_HAS_DLL */
+#if defined (__GNUC__) && ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)))
+# define MINIZIP_UNUSED_ARG(a) (void) (a)
+#else
# define MINIZIP_UNUSED_ARG(a) do {/* null */} while (&a == 0)
+#endif
#endif /* MINIZIP_EXPORT_H */
diff --git a/ACE/contrib/minizip/mztools.c b/ACE/contrib/minizip/mztools.c
index 1bb1cfb8fc8..9047871b212 100644
--- a/ACE/contrib/minizip/mztools.c
+++ b/ACE/contrib/minizip/mztools.c
@@ -226,17 +226,17 @@ uLong* bytesRecovered;
WRITE_32(header + 12, offsetCD); /* size of CD */
WRITE_32(header + 16, offset); /* offset to CD */
WRITE_16(header + 20, comsize); /* comment */
-
+
/* Header */
if (fwrite(header, 1, 22, fpOutCD) == 22) {
-
+
/* Comment field */
if (comsize > 0) {
if ((int)fwrite(comment, 1, comsize, fpOutCD) != comsize) {
err = Z_ERRNO;
}
}
-
+
} else {
err = Z_ERRNO;
}
@@ -258,14 +258,14 @@ uLong* bytesRecovered;
fclose(fpOutCD);
}
}
-
+
/* Close */
fclose(fpZip);
fclose(fpOut);
-
+
/* Wipe temporary file */
(void)remove(fileOutTmp);
-
+
/* Number of recovered entries */
if (err == Z_OK) {
if (nRecovered != 0) {
diff --git a/ACE/contrib/minizip/unzip.c b/ACE/contrib/minizip/unzip.c
index 171c2281562..14f5621f824 100644
--- a/ACE/contrib/minizip/unzip.c
+++ b/ACE/contrib/minizip/unzip.c
@@ -670,12 +670,12 @@ local int unzlocal_GetCurrentFileInfoInternal (unzFile file,
else
err=UNZ_ERRNO;
}
-
+
if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0))
- {
+ {
if (ZREAD(s->z_filefunc, s->filestream,extraField,uSizeRead)!=uSizeRead)
err=UNZ_ERRNO;
-
+
lSeek += file_info.size_file_extra - uSizeRead;
}
}
diff --git a/ACE/contrib/minizip/zip.c b/ACE/contrib/minizip/zip.c
index b39b9bfd640..a57fcfc61ef 100644
--- a/ACE/contrib/minizip/zip.c
+++ b/ACE/contrib/minizip/zip.c
@@ -944,7 +944,7 @@ extern MINIZIP_EXPORT int zipWriteInFileInZip (zipFile file,const void* buf,unsi
{
uLong uTotalOutBefore = zi->ci.stream.total_out;
err=deflate(&zi->ci.stream, Z_NO_FLUSH);
- zi->ci.pos_in_buffered_data +=
+ zi->ci.pos_in_buffered_data +=
(uInt)(zi->ci.stream.total_out - uTotalOutBefore);
}
else
diff --git a/ACE/contrib/utility/BuildRules/Archive.gcc.post.rules b/ACE/contrib/utility/BuildRules/Archive.gcc.post.rules
deleted file mode 100644
index 11b052d5200..00000000000
--- a/ACE/contrib/utility/BuildRules/Archive.gcc.post.rules
+++ /dev/null
@@ -1,47 +0,0 @@
-# file : BuildRules/Archive.gcc.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-
-#
-# Note: normally you wouldn't want to change anything below.
-#
-
-FULL_MODULE_PREFIX := $(MODULE_PREFIX)$(module_prefix)
-FULL_MODULE_SUFFIX := $(module_suffix)$(MODULE_SUFFIX)
-MODULE := $(FULL_MODULE_PREFIX)$(module_base)$(FULL_MODULE_SUFFIX)
-
-#
-# Pattern rules catalog.
-# {
-
-# Defined pattern rule to build .o from .cpp
-%.o : %.cpp
- $(CXX) $(CXX_PREPROCESS_FLAGS) $(CXX_COMPILE_FLAGS) -MD -MP -MT $(@:.o=.d) -MF $(@:.o=.d) -c $< -o $@
-
-# }
-
-# Defines the rule to build module from tarnslated c++ translation units.
-$(MODULE) : $(cxx_translation_units:.cpp=.o) $(translated_units)
- $(AR) $(AR_FLAGS) $@ $^
-
-# Defines a phony target to clean all what's been generated
-.PHONY : clean
-clean :
- -rm -f $(cxx_translation_units:.cpp=.o)
- -rm -f $(cxx_translation_units:.cpp=.d)
- -rm -f $(MODULE)
-
-
-# Include dependencies for c++ translation units.
-# @@ empty-check should be done in all cases.
-##
-ifneq ($(strip $(cxx_translation_units)),)
--include $(cxx_translation_units:.cpp=.d)
-endif
-
-
-# The following catch-all rule will skip unknown targets
-%:: ;@:
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Archive.gcc.pre.rules b/ACE/contrib/utility/BuildRules/Archive.gcc.pre.rules
deleted file mode 100644
index fbeb0329055..00000000000
--- a/ACE/contrib/utility/BuildRules/Archive.gcc.pre.rules
+++ /dev/null
@@ -1,28 +0,0 @@
-# file : BuildRules/Archive.gcc.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-# Forces make to delete targets whos rebuild commands failed but
-# updated the target.
-.DELETE_ON_ERROR:
-
-# Empties the suffix list for which old-fassion implicit rules would
-# be used. The net effect is that all predefined implicit rules are
-# disabled now.
-.SUFFIXES:
-
-CXX ?= g++
-CXX_DEP ?= $(CXX) -M
-
-CXX_PREPROCESS_FLAGS :=
-CXX_COMPILE_FLAGS := -Wall
-CXX_LINK_FLAGS :=
-CXX_LINK_LIBS :=
-
-AR ?= ar
-AR_FLAGS := -rc
-
-MODULE_PREFIX := lib
-MODULE_SUFFIX := .a
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Archive.post.rules b/ACE/contrib/utility/BuildRules/Archive.post.rules
deleted file mode 100644
index ffd1dc833f0..00000000000
--- a/ACE/contrib/utility/BuildRules/Archive.post.rules
+++ /dev/null
@@ -1,7 +0,0 @@
-# file : BuildRules/Archive.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-$(call include, $(dir $(MAKEFILE))/Archive.gcc.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Archive.pre.rules b/ACE/contrib/utility/BuildRules/Archive.pre.rules
deleted file mode 100644
index 7547d7176f6..00000000000
--- a/ACE/contrib/utility/BuildRules/Archive.pre.rules
+++ /dev/null
@@ -1,7 +0,0 @@
-# file : BuildRules/Archive.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-$(call include, $(dir $(MAKEFILE))/Archive.gcc.pre.rules)
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Bootstrap.rules b/ACE/contrib/utility/BuildRules/Bootstrap.rules
deleted file mode 100644
index 32d28e12038..00000000000
--- a/ACE/contrib/utility/BuildRules/Bootstrap.rules
+++ /dev/null
@@ -1,95 +0,0 @@
-# file : BuildRules/Bootstrap.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-# basics
-#
-#
-
-define set
-$(eval $1 := $(strip $2))
-endef
-
-define get
-$(value $(strip $1))
-endef
-
-define sub
-$(shell expr $1 - $2)
-endef
-
-define add
-$(shell expr $1 + $2)
-endef
-
-# stack
-#
-#
-
-define push
-$(eval $1 +=$(strip $2))
-endef
-
-define pop
-$(eval $1 :=$(wordlist 1,$(call sub, $(words $(value $(strip $1))), 1),$(value $(strip $1))))
-endef
-
-define top
-$(word $(words $(value $(strip $1))),$(value $(strip $1)))
-endef
-
-# local
-#
-#
-
-define path_to_id
-$(subst /,_,$(subst .,_,$(strip $1)))
-endef
-
-MAKEFILE := $(word $(call sub,$(words $(MAKEFILE_LIST)),1),$(MAKEFILE_LIST))
-INCLUSION_ID := $(call path_to_id,$(MAKEFILE))
-
-define get_inclusion_id
-$(INCLUSION_ID)
-endef
-
-define local_set
-$(eval $(strip $(call get_inclusion_id))_$1 := $(strip $2))
-endef
-
-define local_get
-$($(strip $(call get_inclusion_id))_$1)
-endef
-
-define local_origin
-$(origin $(strip $(call get_inclusion_id))_$1)
-endef
-
-
-define _get_inclusion_count
-$(if $(call local_get,INCLUSION_COUNT),$(call local_get,INCLUSION_COUNT),0)
-endef
-
-define _set_inclusion_count
-$(call local_set,INCLUSION_COUNT,$1)
-endef
-
-# include
-#
-#
-
-define include
-$(strip
- $(eval $(call push, include_stack, $(MAKEFILE))) \
- $(eval MAKEFILE :=$(strip $1)) \
- $(eval $(call push, inclusion_id_stack, $(INCLUSION_ID))) \
- $(eval $(call _set_inclusion_count,$(call add,$(call _get_inclusion_count),1))) \
- $(eval INCLUSION_ID :=$(INCLUSION_ID)_$(call local_get,INCLUSION_COUNT)_$(call path_to_id,$1)) \
- $(eval include $1) \
- $(eval INCLUSION_ID :=$(call top, inclusion_id_stack)) \
- $(eval $(call pop, inclusion_id_stack)) \
- $(eval MAKEFILE :=$(call top, include_stack)) \
- $(eval $(call pop, include_stack)))
-endef
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Documentation.post.rules b/ACE/contrib/utility/BuildRules/Documentation.post.rules
deleted file mode 100644
index 33fd0c2942f..00000000000
--- a/ACE/contrib/utility/BuildRules/Documentation.post.rules
+++ /dev/null
@@ -1,35 +0,0 @@
-# file : BuildRules/Documentation.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-#
-# Note: normally you wouldn't want to change anything below.
-#
-
-#
-# Pattern rules catalog.
-# {
-
-# Defined pattern rule to build .hpp.html from .hpp
-%.html : %
- $(DOC) $(DOC_FLAGS) -o $@ $<
-
-# }
-
-# The following rule will inhibit treatment of documentation as
-# default target.
-.PHONY : all
-all: ;@:
-
-.PHONY : documentation
-documentation : $(patsubst %,%.html,$(doc_translation_units))
-
-# Defines a phony target to clean all what's been generated
-.PHONY : clean
-clean :
- -rm -f $(patsubst %,%.html,$(doc_translation_units))
-
-# The following catch-all rule will skip unknown targets
-%:: ;@:
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Documentation.pre.rules b/ACE/contrib/utility/BuildRules/Documentation.pre.rules
deleted file mode 100644
index 33161d03d40..00000000000
--- a/ACE/contrib/utility/BuildRules/Documentation.pre.rules
+++ /dev/null
@@ -1,18 +0,0 @@
-# file : BuildRules/Documentation.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-# Forces make to delete targets whos rebuild commands failed but
-# updated the target.
-.DELETE_ON_ERROR:
-
-# Empties the suffix list for which old-fassion implicit rules would
-# be used. The net effect is that all predefined implicit rules are
-# disabled now.
-.SUFFIXES:
-
-DOC ?= cpp_to_html
-CXX_FLAGS :=
-
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Executable.gcc.post.rules b/ACE/contrib/utility/BuildRules/Executable.gcc.post.rules
deleted file mode 100644
index 6587cbf0757..00000000000
--- a/ACE/contrib/utility/BuildRules/Executable.gcc.post.rules
+++ /dev/null
@@ -1,46 +0,0 @@
-# file : BuildRules/Executable.gcc.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-#
-# Note: normally you wouldn't want to change anything below.
-#
-
-FULL_MODULE_PREFIX := $(MODULE_PREFIX)$(module_prefix)
-FULL_MODULE_SUFFIX := $(module_suffix)$(MODULE_SUFFIX)
-MODULE := $(FULL_MODULE_PREFIX)$(module_base)$(FULL_MODULE_SUFFIX)
-
-#
-# Pattern rules catalog.
-# {
-
-# Defined pattern rule to build .o from .cpp
-%.o : %.cpp
- $(CXX) $(CXX_PREPROCESS_FLAGS) $(CXX_COMPILE_FLAGS) -MD -MP -MT $(@:.o=.d) -MF $(@:.o=.d) -c $< -o $@
-
-# }
-
-# Defines the rule to build module from tarnslated c++ translation units.
-$(MODULE) : $(cxx_translation_units:.cpp=.o) $(translated_units)
- $(CXX) $(CXX_LINK_FLAGS) -o $@ $^ $(CXX_LINK_LIBS)
-
-# Defines a phony target to clean all what's been generated
-.PHONY : clean
-clean :
- -rm -f $(cxx_translation_units:.cpp=.o)
- -rm -f $(cxx_translation_units:.cpp=.d)
- -rm -f $(MODULE)
-
-
-# Define a phony target to invoke the test driver.
-.PHONY : test
-test : $(MODULE)
- ./$(MODULE)
-
-# Include dependencies for c++ translation units.
--include $(cxx_translation_units:.cpp=.d)
-
-# The following catch-all rule will skip unknown targets
-%:: ;@:
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Executable.gcc.pre.rules b/ACE/contrib/utility/BuildRules/Executable.gcc.pre.rules
deleted file mode 100644
index f7a0798c824..00000000000
--- a/ACE/contrib/utility/BuildRules/Executable.gcc.pre.rules
+++ /dev/null
@@ -1,26 +0,0 @@
-# file : BuildRules/Executable.gcc.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-# Forces make to delete targets whos rebuild commands failed but
-# updated the target.
-.DELETE_ON_ERROR:
-
-# Empties the suffix list for which old-fassion implicit rules would
-# be used. The net effect is that all predefined implicit rules are
-# disabled now.
-.SUFFIXES:
-
-CXX ?= g++
-
-CXX_PREPROCESS_FLAGS :=
-CXX_COMPILE_FLAGS := -Wall
-CXX_LINK_FLAGS :=
-CXX_LINK_LIBS :=
-
-
-MODULE_PREFIX :=
-MODULE_SUFFIX :=
-
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Executable.generic.post.rules b/ACE/contrib/utility/BuildRules/Executable.generic.post.rules
deleted file mode 100644
index 26fa9b3b515..00000000000
--- a/ACE/contrib/utility/BuildRules/Executable.generic.post.rules
+++ /dev/null
@@ -1,55 +0,0 @@
-# file : BuildRules/Executable.generic.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-#
-# Note: normally you wouldn't want to change anything below.
-#
-
-FULL_MODULE_PREFIX := $(MODULE_PREFIX)$(module_prefix)
-FULL_MODULE_SUFFIX := $(module_suffix)$(MODULE_SUFFIX)
-MODULE := $(FULL_MODULE_PREFIX)$(module_base)$(FULL_MODULE_SUFFIX)
-
-#
-# Pattern rules catalog.
-# {
-
-# Defines pattern rule to build .d from .cpp
-%.d: %.cpp
- set -e; $(CXX_DEP) $(CXX_PREPROCESS_FLAGS) $< \
- | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
- [ -s $@ ] || rm -f $@
-
-
-
-# Defined pattern rule to build .o from .cpp
-%.o : %.cpp
- $(CXX) $(CXX_PREPROCESS_FLAGS) $(CXX_COMPILE_FLAGS) -c $< -o $@
-
-# }
-
-# Defines the rule to build module from tarnslated c++ translation units.
-$(MODULE) : $(cxx_translation_units:.cpp=.o)
- $(CXX) $(CXX_LINK_FLAGS) -o $@ $^ $(CXX_LINK_LIBS)
-
-# Defines a phony target to clean all what's been generated
-.PHONY : clean
-clean :
- -rm -f $(cxx_translation_units:.cpp=.o)
- -rm -f $(cxx_translation_units:.cpp=.d)
- -rm -f $(MODULE)
-
-
-# Define a phony target to invoke the test driver.
-.PHONY : test
-test : $(MODULE)
- ./$(MODULE)
-
-# Include dependencies for c++ translation units.
-# Optimization: if we are cleaning there is no reason to calculate
-# dependencies because they will be removed a second later.
-ifneq ($(MAKECMDGOALS),clean)
- include $(cxx_translation_units:.cpp=.d)
-endif
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Executable.generic.pre.rules b/ACE/contrib/utility/BuildRules/Executable.generic.pre.rules
deleted file mode 100644
index 995dabeebda..00000000000
--- a/ACE/contrib/utility/BuildRules/Executable.generic.pre.rules
+++ /dev/null
@@ -1,26 +0,0 @@
-# file : BuildRules/Executable.generic.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-# Forces make to delete targets whos rebuild commands failed but
-# updated the target.
-.DELETE_ON_ERROR:
-
-# Empties the suffix list for which old-fassion implicit rules would
-# be used. The net effect is that all predefined implicit rules are
-# disabled now.
-.SUFFIXES:
-
-CXX ?= g++
-CXX_DEP ?= $(CXX) -M
-
-CXX_PREPROCESS_FLAGS :=
-CXX_COMPILE_FLAGS := -Wall
-CXX_LINK_FLAGS :=
-CXX_LINK_LIBS :=
-
-
-MODULE_PREFIX :=
-MODULE_SUFFIX :=
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Executable.post.rules b/ACE/contrib/utility/BuildRules/Executable.post.rules
deleted file mode 100644
index da146baf162..00000000000
--- a/ACE/contrib/utility/BuildRules/Executable.post.rules
+++ /dev/null
@@ -1,8 +0,0 @@
-# file : BuildRules/Executable.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-$(call include, $(dir $(MAKEFILE))/Executable.gcc.post.rules)
-
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Executable.pre.rules b/ACE/contrib/utility/BuildRules/Executable.pre.rules
deleted file mode 100644
index 10a1796450b..00000000000
--- a/ACE/contrib/utility/BuildRules/Executable.pre.rules
+++ /dev/null
@@ -1,8 +0,0 @@
-# file : BuildRules/Executable.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-$(call include, $(dir $(MAKEFILE))/Executable.gcc.pre.rules)
-
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Object.gcc.post.rules b/ACE/contrib/utility/BuildRules/Object.gcc.post.rules
deleted file mode 100644
index a58c2369435..00000000000
--- a/ACE/contrib/utility/BuildRules/Object.gcc.post.rules
+++ /dev/null
@@ -1,38 +0,0 @@
-# file : BuildRules/Object.gcc.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-
-#
-# Note: normally you wouldn't want to change anything below.
-#
-
-#
-# Pattern rules catalog.
-# {
-
-# Defined pattern rule to build .o from .cpp
-%.o : %.cpp
- $(CXX) $(CXX_PREPROCESS_FLAGS) $(CXX_COMPILE_FLAGS) -MD -MP -MT $(@:.o=.d) -MF $(@:.o=.d) -c $< -o $@
-
-# }
-
-# Defines the rule to build object files from c++ translation units.
-.PHONY : object
-object : $(cxx_translation_units:.cpp=.o)
-
-# Defines a phony target to clean all that's been generated
-.PHONY : clean
-clean :
- -rm -f $(cxx_translation_units:.cpp=.o)
- -rm -f $(cxx_translation_units:.cpp=.d)
-
-
-# Include dependencies for c++ translation units.
--include $(cxx_translation_units:.cpp=.d)
-
-
-# The following catch-all rule will skip unknown targets
-%:: ;@:
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Object.gcc.pre.rules b/ACE/contrib/utility/BuildRules/Object.gcc.pre.rules
deleted file mode 100644
index 8b8d5527abd..00000000000
--- a/ACE/contrib/utility/BuildRules/Object.gcc.pre.rules
+++ /dev/null
@@ -1,22 +0,0 @@
-# file : BuildRules/Object.gcc.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-# Forces make to delete targets whos rebuild commands failed but
-# updated the target.
-.DELETE_ON_ERROR:
-
-# Empties the suffix list for which old-fassion implicit rules would
-# be used. The net effect is that all predefined implicit rules are
-# disabled now.
-.SUFFIXES:
-
-CXX ?= g++
-CXX_DEP ?= $(CXX) -M
-
-CXX_PREPROCESS_FLAGS :=
-CXX_COMPILE_FLAGS := -Wall
-CXX_LINK_FLAGS :=
-CXX_LINK_LIBS :=
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Object.post.rules b/ACE/contrib/utility/BuildRules/Object.post.rules
deleted file mode 100644
index 383f759a25a..00000000000
--- a/ACE/contrib/utility/BuildRules/Object.post.rules
+++ /dev/null
@@ -1,7 +0,0 @@
-# file : BuildRules/Object.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-$(call include, $(dir $(MAKEFILE))/Object.gcc.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Object.pre.rules b/ACE/contrib/utility/BuildRules/Object.pre.rules
deleted file mode 100644
index 54c75e0643d..00000000000
--- a/ACE/contrib/utility/BuildRules/Object.pre.rules
+++ /dev/null
@@ -1,7 +0,0 @@
-# file : BuildRules/Object.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-$(call include, $(dir $(MAKEFILE))/Object.gcc.pre.rules)
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Recursion.post.rules b/ACE/contrib/utility/BuildRules/Recursion.post.rules
deleted file mode 100644
index e842f0f4b67..00000000000
--- a/ACE/contrib/utility/BuildRules/Recursion.post.rules
+++ /dev/null
@@ -1,37 +0,0 @@
-# file : BuildRules/Recursion.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-.PHONY: $(target_directory_list) $(target_makefile_list)
-
-_submodules:: $(target_directory_list) $(target_makefile_list)
-
-ifneq ($(strip $(target_directory_list)),)
-$(target_directory_list):
- $(MAKE) -C $@ -f $(default_makefile_name) $(MAKECMDGOALS)
-endif
-
-ifneq ($(strip $(target_makefile_list)),)
-$(target_makefile_list):
- $(MAKE) --no-print-directory -f $@ $(MAKECMDGOALS)
-endif
-
-# These rules keep make from trying to use the match-anything rule below to
-# rebuild the makefiles.
-#
-ifneq ($(strip $(default_makefile_name)),)
-$(default_makefile_name) : ;
-endif
-
-%.mk :: ;
-%.rules :: ;
-
-
-# Anything we don't know how to build will use this rule. The command is a
-# do-nothing command, but the prerequisites ensure that the appropriate
-# recursive invocations of make will occur.
-#
-% :: $(target_directory_list) $(target_makefile_list) ;
-
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Recursion.pre.rules b/ACE/contrib/utility/BuildRules/Recursion.pre.rules
deleted file mode 100644
index 1f03311fbc8..00000000000
--- a/ACE/contrib/utility/BuildRules/Recursion.pre.rules
+++ /dev/null
@@ -1,13 +0,0 @@
-# file : BuildRules/Recursion.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-.SUFFIXES:
-
-.PHONY: _submodules
-
-_submodules::
-
-default_makefile_name := Makefile
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Shared.gcc.post.rules b/ACE/contrib/utility/BuildRules/Shared.gcc.post.rules
deleted file mode 100644
index 641f79dfc1d..00000000000
--- a/ACE/contrib/utility/BuildRules/Shared.gcc.post.rules
+++ /dev/null
@@ -1,43 +0,0 @@
-# file : BuildRules/Shared.gcc.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-
-#
-# Note: normally you wouldn't want to change anything below.
-#
-
-FULL_MODULE_PREFIX := $(MODULE_PREFIX)$(module_prefix)
-FULL_MODULE_SUFFIX := $(module_suffix)$(MODULE_SUFFIX)
-MODULE := $(FULL_MODULE_PREFIX)$(module_base)$(FULL_MODULE_SUFFIX)
-
-#
-# Pattern rules catalog.
-# {
-
-# Defined pattern rule to build .o from .cpp
-%.o : %.cpp
- $(CXX) $(CXX_PREPROCESS_FLAGS) $(CXX_COMPILE_FLAGS) -MD -MP -MT $(@:.o=.d) -MF $(@:.o=.d) -c $< -o $@
-
-# }
-
-# Defines the rule to build module from tarnslated c++ translation units.
-$(MODULE) : $(cxx_translation_units:.cpp=.o) $(translated_units)
- $(CXX) $(CXX_LINK_FLAGS) -o $@ $^ $(CXX_LINK_LIBS)
-
-# Defines a phony target to clean all what's been generated
-.PHONY : clean
-clean :
- -rm -f $(cxx_translation_units:.cpp=.o)
- -rm -f $(cxx_translation_units:.cpp=.d)
- -rm -f $(MODULE)
-
-
-# Include dependencies for c++ translation units.
--include $(cxx_translation_units:.cpp=.d)
-
-
-# The following catch-all rule will skip unknown targets
-%:: ;@:
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Shared.gcc.pre.rules b/ACE/contrib/utility/BuildRules/Shared.gcc.pre.rules
deleted file mode 100644
index d32c42f5260..00000000000
--- a/ACE/contrib/utility/BuildRules/Shared.gcc.pre.rules
+++ /dev/null
@@ -1,26 +0,0 @@
-# file : BuildRules/Shared.gcc.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-# Forces make to delete targets whos rebuild commands failed but
-# updated the target.
-.DELETE_ON_ERROR:
-
-# Empties the suffix list for which old-fassion implicit rules would
-# be used. The net effect is that all predefined implicit rules are
-# disabled now.
-.SUFFIXES:
-
-CXX ?= g++
-CXX_DEP ?= $(CXX) -M
-
-CXX_PREPROCESS_FLAGS :=
-CXX_COMPILE_FLAGS := -fPIC -Wall
-CXX_LINK_FLAGS := -shared
-CXX_LINK_LIBS :=
-
-
-MODULE_PREFIX := lib
-MODULE_SUFFIX := .so
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Shared.generic.post.rules b/ACE/contrib/utility/BuildRules/Shared.generic.post.rules
deleted file mode 100644
index 19315b5d7ec..00000000000
--- a/ACE/contrib/utility/BuildRules/Shared.generic.post.rules
+++ /dev/null
@@ -1,51 +0,0 @@
-# file : BuildRules/Shared.generic.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-
-#
-# Note: normally you wouldn't want to change anything below.
-#
-
-FULL_MODULE_PREFIX := $(MODULE_PREFIX)$(module_prefix)
-FULL_MODULE_SUFFIX := $(module_suffix)$(MODULE_SUFFIX)
-MODULE := $(FULL_MODULE_PREFIX)$(module_base)$(FULL_MODULE_SUFFIX)
-
-#
-# Pattern rules catalog.
-# {
-
-# Defines pattern rule to build .d from .cpp
-%.d: %.cpp
- set -e; $(CXX_DEP) $(CXX_PREPROCESS_FLAGS) $< \
- | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
- [ -s $@ ] || rm -f $@
-
-
-
-# Defined pattern rule to build .o from .cpp
-%.o : %.cpp
- $(CXX) $(CXX_PREPROCESS_FLAGS) $(CXX_COMPILE_FLAGS) -c $< -o $@
-
-# }
-
-# Defines the rule to build module from tarnslated c++ translation units.
-$(MODULE) : $(cxx_translation_units:.cpp=.o)
- $(CXX) $(CXX_LINK_FLAGS) -o $@ $^ $(CXX_LINK_LIBS)
-
-# Defines a phony target to clean all what's been generated
-.PHONY : clean
-clean :
- -rm -f $(cxx_translation_units:.cpp=.o)
- -rm -f $(cxx_translation_units:.cpp=.d)
- -rm -f $(MODULE)
-
-
-# Include dependencies for c++ translation units.
-# Optimization: if we are cleaning there is no reason to calculate
-# dependencies because they will be removed a second later.
-ifneq ($(MAKECMDGOALS),clean)
- include $(cxx_translation_units:.cpp=.d)
-endif
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Shared.generic.pre.rules b/ACE/contrib/utility/BuildRules/Shared.generic.pre.rules
deleted file mode 100644
index 77b2a055956..00000000000
--- a/ACE/contrib/utility/BuildRules/Shared.generic.pre.rules
+++ /dev/null
@@ -1,26 +0,0 @@
-# file : BuildRules/Shared.generic.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-# Forces make to delete targets whos rebuild commands failed but
-# updated the target.
-.DELETE_ON_ERROR:
-
-# Empties the suffix list for which old-fassion implicit rules would
-# be used. The net effect is that all predefined implicit rules are
-# disabled now.
-.SUFFIXES:
-
-CXX ?= g++
-
-CXX_PREPROCESS_FLAGS :=
-CXX_COMPILE_FLAGS := -fPIC -Wall
-CXX_LINK_FLAGS := -shared
-CXX_LINK_LIBS :=
-
-
-MODULE_PREFIX := lib
-MODULE_SUFFIX := .so
-
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Shared.post.rules b/ACE/contrib/utility/BuildRules/Shared.post.rules
deleted file mode 100644
index 1f098c99b7b..00000000000
--- a/ACE/contrib/utility/BuildRules/Shared.post.rules
+++ /dev/null
@@ -1,7 +0,0 @@
-# file : BuildRules/Shared.post.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-$(call include, $(dir $(MAKEFILE))/Shared.gcc.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Shared.pre.rules b/ACE/contrib/utility/BuildRules/Shared.pre.rules
deleted file mode 100644
index 9ebbeb534dd..00000000000
--- a/ACE/contrib/utility/BuildRules/Shared.pre.rules
+++ /dev/null
@@ -1,7 +0,0 @@
-# file : BuildRules/Shared.pre.rules
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-$(call include, $(dir $(MAKEFILE))/Shared.gcc.pre.rules)
-# $Id$
diff --git a/ACE/contrib/utility/BuildRules/Thoughts b/ACE/contrib/utility/BuildRules/Thoughts
deleted file mode 100644
index 486a44f108b..00000000000
--- a/ACE/contrib/utility/BuildRules/Thoughts
+++ /dev/null
@@ -1,55 +0,0 @@
-
-Makefile variable naming style.
-
-* Each target is usually invoking one or more commands of the following type:
-
- (1) translator which translates target's prerequsites to target(s)
-
- (2) arbitrary command which doesn't create target (aka PHONY targets)
-
-Examples of type (1) are:
-
- - translation of c++ source to object code
-
- - translation of object code to executable/shared
-
-Examples of type (2) are:
-
- - test: terget
-
- - clean: target
-
-
-Some properties of these types of targets:
-
- (1) - usually implemented as an implicit rule
-
- - sometimes the same program is used as two separate translators
- (e.g. CXX is used as a compiler and as a linker)
-
-
-
- (2) - seldom (never?) implemented as an implicit rule
-
-
-
-Approach #1
-
-For type (1) name is derived from the translator's name e.g.
-
-CXX_COMPILE_FLAGS
-CXX_PREPROCESS_FLAGS
-CXX_LINK_FLAGS
-CXX_LINK_LIBS
-
-CC_
-LD_
-
-
-For type (2) name is derived from the target's name e.g.
-
-TEST_FLAGS
-CLEAN_FLAGS
-INSTALL_FLAGS
-
-$Id$
diff --git a/ACE/contrib/utility/Documentation/Build.xhtml b/ACE/contrib/utility/Documentation/Build.xhtml
deleted file mode 100644
index 97e759bdeb7..00000000000
--- a/ACE/contrib/utility/Documentation/Build.xhtml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/Build.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Building Utility Library</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="build,utility,library"/>
- <meta name="description" content="Building Utility Library"/>
-
- <link rel="stylesheet" type="text/css" href="Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-
-<p>Utility Library mostly consists of a header-only sub-libraries
-(the only exception is Introspection Library) so you don't need to
-build anything to start using it. However you may want to build
-examples or libraries that require compilation. This section describes
-how to do that.</p>
-
-<h1>Prerequisites</h1>
-
-<p>To build libraries or examples you will need GNU make and a C++
-compiler with good support of ISO C++ standard.</p>
-
-<p>Utility Library building environment requires latest features of
-GNU make so you have the following options (in the order of increasing
-complexity):</p>
-
-<ul>
-<li>Use GNU make 3.81 or later (not available at the time this is written).</li>
-<li>Use GNU make 3.80 with patches for bug
-<a href="http://savannah.gnu.org/bugs/?func=detailbug&amp;bug_id=1516&amp;group_id=71">1516</a>
-and
-<a href="http://savannah.gnu.org/bugs/?func=detailbug&amp;bug_id=1517&amp;group_id=71">1517</a>.
-</li>
-<li>Use GNU make from CVS.</li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/CommandLine/News.xhtml b/ACE/contrib/utility/Documentation/CommandLine/News.xhtml
deleted file mode 100644
index 31738f2150d..00000000000
--- a/ACE/contrib/utility/Documentation/CommandLine/News.xhtml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/CommandLine/News.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Command Line Processing Library News</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="commandline,command,line,option,argument,parameter,operand,argc,argv,news"/>
- <meta name="description" content="Command Line Processing Library News"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/CommandLine/Terminology.xhtml b/ACE/contrib/utility/Documentation/CommandLine/Terminology.xhtml
deleted file mode 100644
index 6c250f1fa70..00000000000
--- a/ACE/contrib/utility/Documentation/CommandLine/Terminology.xhtml
+++ /dev/null
@@ -1,272 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/CommandLine/Terminology.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Command Line Processing Model and Terminology</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2002-2003 Boris Kolpackov"/>
- <meta name="keywords" content="command,line,terminology,model,argv,argc,argument,command,option,operand"/>
- <meta name="description" content="Command Line Processing Model and Terminology"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
- <style type="text/css">
-
- table.center {
- border-collapse : collapse;
- }
-
- table.center * td {
- text-align : center;
- vertical-align : middle;
- }
-
- </style>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-
-<p>
-Command line is probably the most universal way of passing information from
-caller to the program. Concept of a command line is part of most operating
-systems and programming languages including C and C++. However model and
-terminology for command line processing vary greatly among different
-systems.</p>
-
-<p>
-<a href="http://unix.org/online.html">Single UNIX Specification</a> contains
-<a href="http://opengroup.org/onlinepubs/007904975/basedefs/xbd_chap12.html">
-Utility Argument Syntax Conventions and Guidelines</a> which document basic
-terminology for command line processing. Single UNIX Specification model is
-a "common denominator" for different UNIX implementations. It is somewhat
-minimal and targets system utilities rather than a wide spectrum of
-applications. Another de-facto command line processing model is
-<a href="http://gnu.org/prep/standards_18.html"> GNU Standard for Command
-Line Interfaces</a> which generally encourages conformance to the Single UNIX
-Specification but adds few extensions and uses different terminology.</p>
-
-<p>
-The idea behind this document is to establish terminology and complete model
-for command line processing. Terms translation between this document, Single
-UNIX Specification and GNU Standard for Command Line Interfaces is provided
-in Appendix A.</p>
-
-
-<h1>Model and Terminology</h1>
-
-<p>
-<em>Command line</em> is an array of character strings and not just
-a string with spaces between words as some people tend to think.</p>
-
-<p>
-Each string in a command line array is referred to as <em>argument
-</em>. First argument usually contains a string that refers to an executable.
-</p>
-
-<p>
-Interpretation of arguments is completely up to a program logic however
-conventions exist that vary among different systems. Usually groups of
-arguments are translated into a higher-level objects such as commands,
-options, and operands. These objects form a model for command line processing.
-All of them are defined below.</p>
-
-
-<p>
-<em>Command</em> is usually a word, or a single letter that represents
-a command to the program logic. Neither Single UNIX Specification nor GNU
-Standard for Command Line Interfaces has the notion of a command. Other terms
-for command include <em>action</em> and <em>function</em>. Command is usually
-(but not necessarily) the first argument after executable name. Here are few
-examples:</p>
-
-<p><code>tar x</code></p>
-
-<p class="indent">
-Here we have a one letter command <code>'x'</code> (extract). In GNU tar
-manual it is called <em>functional letter</em>.</p>
-
-<p><code>tar xvf</code></p>
-
-<p class="indent">
-Here we have three commands encoded as a single letter each. Actually
-semantically only <code>'x'</code> is a command while <code>'v'</code>
-(verbose) and <code>'f'</code> (read from a file) are options.</p>
-
-<p><code>openssl req</code></p>
-
-<p class="indent">
-Here we have a word command <code>'req'</code> (operations with certificate
-requests).</p>
-
-<p><code>cvs checkout foo</code></p>
-
-<p class="indent">
-Here we have a word command <code>'checkout'</code> and command operand
-<code>foo</code>.</p>
-
-
-<p><code>tar --help</code></p>
-
-<p class="indent">
-Even though <code>'--help'</code> is usually considered to be an option
-semantically it is a command.</p>
-
-
-<p>
-<em>Option</em> consists of <em>option name</em> and optionally
-one or more <em>option values</em>. Options are usually optional.
-Non-optional options are usually better represented by commands or operands.
-</p>
-
-<p>Option name usually takes up one argument. Option names usually start with
-a prefix (e.g. <code>'--compile-only'</code>, <code>'-c'</code> or <code>'/c'
-</code>). This helps distinguish them from commands and operands. Option name
-may have aliases (e.g. for option name <code>'--output-dir'</code> there could
-be an <code>'-o'</code> alias).</p>
-
-<p>
-Option without a value is alway optional and represents an option with implied
-binary value (e.g. {0, 1} or {false, true} etc.). Such option is sometimes
-called <em>flag</em>.</p>
-
-<p>
-Option can be associated with a program or a command. Thus the concept of
-option can be further refined to <em>program option</em> and <em>
-command option</em>. Program option alters behavior of the program as a
-whole while command option is only affecting particular command.</p>
-
-
-<p>Following are some examples:</p>
-
-<p><code>g++ -o hello.o hello.cpp</code></p>
-
-<p class="indent">
-Here we have an option with name <code>'-o'</code> which has a value
-<code>'hello.o'</code>. <code>'hello.cpp'</code> is an operand.</p>
-
-
-<p><code>ls -l</code></p>
-
-<p class="indent">Here we have a flag with name <code>'-l'</code>.</p>
-
-<p>
-<code>foo --bar=a,b,c</code><br/>
-<code>foo -b "a,b,c"</code><br/>
-<code>foo /baz a b c</code>
-</p>
-
-<p class="indent">
-Here we have a more elaborate example of a multi-format option. It has
-a name <code>'--bar'</code> and two aliases: <code>'-b'</code> and
-<code>'/baz'</code>. It also has three values (in our case they are
-<code>'a'</code>, <code>'b'</code>, and <code>'c'</code>).</p>
-
-<p><code>cvs -z 6 checkout -P foo</code></p>
-
-<p class="indent">
-Here we have a program option with name <code>'-z'</code> and value
-<code>'6'</code> (set compression level to be 6). <code>'checkout'</code>
-is a command. <code>-P</code> is a command flag (prune empty directories).
-<code>'foo'</code> is a command operand.</p>
-
-<p>
-<em>operand</em> usually represents an input value or a parameter.
-Operands can be mandatory or optional. Interpretation of operands is usually
-application-specific.</p>
-
-<p>
-Same as with option the concept of operand can be further refined to
-<em>program operand</em> and <em>command operand</em>.</p>
-
-<h1>Appendix A: Terms Translation</h1>
-
-<table summary="Terms Translation"
- border="1"
- cellspacing="0"
- cellpadding="4"
- class="center">
-
- <col width="34%" />
- <col width="33%" />
- <col width="33%" />
-
- <tr>
- <th>Term</th>
- <th>Single UNIX Specification</th>
- <th>GNU</th>
- </tr>
- <tr>
- <td>command line</td>
- <td>command line</td>
- <td>command line</td>
- </tr>
- <tr>
- <td>argument</td>
- <td>argument</td>
- <td>argument</td>
- </tr>
- <tr>
- <td>command</td>
- <td>--</td>
- <td>--</td>
- </tr>
- <tr>
- <td>option</td>
- <td>--</td>
- <td>option</td>
- </tr>
- <tr>
- <td>option name</td>
- <td>option</td>
- <td>name</td>
- </tr>
- <tr>
- <td>option value</td>
- <td>option-argument</td>
- <td>--</td>
- </tr>
- <tr>
- <td>program option</td>
- <td>--</td>
- <td>--</td>
- </tr>
- <tr>
- <td>command option</td>
- <td>--</td>
- <td>--</td>
- </tr>
- <tr>
- <td>operand</td>
- <td>operand</td>
- <td>argument</td>
- </tr>
- <tr>
- <td>program operand</td>
- <td>--</td>
- <td>--</td>
- </tr>
- <tr>
- <td>command operand</td>
- <td>--</td>
- <td>--</td>
- </tr>
-</table>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/CommandLine/Thoughts b/ACE/contrib/utility/Documentation/CommandLine/Thoughts
deleted file mode 100644
index a10675f5945..00000000000
--- a/ACE/contrib/utility/Documentation/CommandLine/Thoughts
+++ /dev/null
@@ -1,8 +0,0 @@
-
-@@ I should not assume that Utility::CommandLine is the only mechanism
- used to parse command line. Application developer may be using
- different components that employ different command line parsers.
- Thus it seem to me that I should use argv/argc as input/output
- format.
-
-$Id$
diff --git a/ACE/contrib/utility/Documentation/CommandLine/index.xhtml b/ACE/contrib/utility/Documentation/CommandLine/index.xhtml
deleted file mode 100644
index 7caf91689aa..00000000000
--- a/ACE/contrib/utility/Documentation/CommandLine/index.xhtml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/CommandLine/index.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Command Line Processing Library</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="commandline,command,line,option,argument,parameter,operand,argc,argv"/>
- <meta name="description" content="Command Line Processing Library"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-
-<p>
-Command Line Processing library is in early development stage. You may want
-to take a look at <a href="Terminology.xhtml">Command Line Processing Model
-and Terminology</a> page.
-</p>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/Compound.hpp.html b/ACE/contrib/utility/Documentation/ExH/Compound.hpp.html
deleted file mode 100644
index b8996f89552..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Compound.hpp.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-Compound.hpp</title>
-<link rel="stylesheet" href="../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ExH/Compound.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ExH
- </span><span class=special>{
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>Type</span><span class=special>, </span><span class=keyword>typename </span><span class=identifier>Base</span><span class=special>&gt;
- </span><span class=keyword>class </span><span class=identifier>Compound </span><span class=special>: </span><span class=keyword>public </span><span class=keyword>virtual </span><span class=identifier>Base
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>explicit
- </span><span class=identifier>Compound </span><span class=special>(</span><span class=keyword>char </span><span class=keyword>const</span><span class=special>* </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>explicit
- </span><span class=identifier>Compound </span><span class=special>(</span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=keyword>explicit
- </span><span class=identifier>Compound </span><span class=special>(</span><span class=identifier>T </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>Compound </span><span class=special>(</span><span class=identifier>Compound </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>src</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>virtual
- </span><span class=special>~</span><span class=identifier>Compound </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=identifier>Compound</span><span class=special>&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>Compound </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>src</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>protected</span><span class=special>:
- </span><span class=identifier>Compound </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
- </span><span class=special>};
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/Example/Makefile b/ACE/contrib/utility/Documentation/ExH/Example/Makefile
deleted file mode 100644
index e0188a81fbf..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Example/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# file : Documentation/ExH/Example/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Documentation.pre.rules)
-
-vpath %.cpp $(root)/Example/ExH/BadCast
-vpath %.cpp $(root)/Example/ExH/Compound
-vpath %.cpp $(root)/Example/ExH/HelloWorld
-vpath %.cpp $(root)/Example/ExH/LogicToSystem
-
-doc_translation_units := bad_cast.cpp \
- compound.cpp \
- hello_world.cpp \
- logic_to_system.cpp
-
-DOC_FLAGS := -css $(root)/Documentation/Style/CXX.css
-
-$(call include, $(root)/BuildRules/Documentation.post.rules)
-
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/ExH/Example/bad_cast.cpp.html b/ACE/contrib/utility/Documentation/ExH/Example/bad_cast.cpp.html
deleted file mode 100644
index ba5044e358a..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Example/bad_cast.cpp.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-bad_cast.cpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Example/ExH/BadCast/bad_cast.cpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=preprocessor>#include &quot;Utility/ExH/System/Exception.hpp&quot;
-
-</span><span class=preprocessor>#include &lt;iostream&gt;
-
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>cerr</span><span class=special>;
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>endl</span><span class=special>;
-
-
-</span><span class=keyword>struct </span><span class=identifier>A
-</span><span class=special>{
- </span><span class=keyword>virtual
- </span><span class=special>~</span><span class=identifier>A</span><span class=special>() </span><span class=special>{}
-</span><span class=special>};
-
-</span><span class=keyword>struct </span><span class=identifier>B
-</span><span class=special>{
- </span><span class=keyword>void
- </span><span class=identifier>foo </span><span class=special>() </span><span class=special>{}
-</span><span class=special>};
-
-</span><span class=keyword>void
-</span><span class=identifier>foo </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Utility</span><span class=special>::</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>)
-</span><span class=special>{
- </span><span class=identifier>A </span><span class=identifier>a</span><span class=special>;
-
- </span><span class=identifier>A</span><span class=special>&amp; </span><span class=identifier>ar </span><span class=special>(</span><span class=identifier>a</span><span class=special>);
-
- </span><span class=identifier>B</span><span class=special>&amp; </span><span class=identifier>br </span><span class=special>(</span><span class=keyword>dynamic_cast</span><span class=special>&lt;</span><span class=identifier>B</span><span class=special>&amp;&gt; </span><span class=special>(</span><span class=identifier>ar</span><span class=special>));
-
- </span><span class=identifier>br</span><span class=special>.</span><span class=identifier>foo </span><span class=special>();
-</span><span class=special>}
-
-</span><span class=keyword>int
-</span><span class=identifier>main </span><span class=special>()
-</span><span class=special>{
- </span><span class=keyword>try
- </span><span class=special>{
- </span><span class=identifier>foo </span><span class=special>();
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Utility</span><span class=special>::</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>ex</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught Utility::ExH::System::Exception: &quot;
- </span><span class=special>&lt;&lt; </span><span class=identifier>ex</span><span class=special>.</span><span class=identifier>what </span><span class=special>()
- </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=special>}
-</span><span class=special>}
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/Example/compound.cpp.html b/ACE/contrib/utility/Documentation/ExH/Example/compound.cpp.html
deleted file mode 100644
index 40ecf71eee9..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Example/compound.cpp.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-compound.cpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Example/ExH/Compound/compound.cpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=preprocessor>#include &quot;Utility/ExH/Compound.hpp&quot;
-</span><span class=preprocessor>#include &quot;Utility/ExH/System/Exception.hpp&quot;
-</span><span class=preprocessor>#include &quot;Utility/ExH/Logic/DescriptiveException.hpp&quot;
-
-</span><span class=comment>// Include some helper converters to allow exception initialization
-// with std::ostringstream
-
-</span><span class=preprocessor>#include &quot;Utility/ExH/StringStreamConverter.hpp&quot;
-
-</span><span class=preprocessor>#include &lt;iostream&gt;
-
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>cerr</span><span class=special>;
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>endl</span><span class=special>;
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string</span><span class=special>;
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>ostringstream</span><span class=special>;
-
-</span><span class=keyword>using </span><span class=keyword>namespace </span><span class=identifier>Utility</span><span class=special>::</span><span class=identifier>ExH</span><span class=special>;
-
-</span><span class=comment>// Here are our components
-
-</span><span class=keyword>class </span><span class=identifier>Base
-</span><span class=special>{
-</span><span class=keyword>public</span><span class=special>:
-
- </span><span class=comment>//
- // Exception definitions.
- //
-
- // Base logic exception class for component.
- </span><span class=keyword>class </span><span class=identifier>Exception_ </span><span class=special>{};
- </span><span class=keyword>typedef
- </span><span class=identifier>Compound </span><span class=special>&lt;</span><span class=identifier>Exception_</span><span class=special>, </span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>DescriptiveException</span><span class=special>&gt;
- </span><span class=identifier>Exception</span><span class=special>;
-
- </span><span class=keyword>class </span><span class=identifier>InvalidArgument_ </span><span class=special>{};
- </span><span class=keyword>typedef
- </span><span class=identifier>Compound </span><span class=special>&lt;</span><span class=identifier>InvalidArgument_</span><span class=special>, </span><span class=identifier>Exception</span><span class=special>&gt;
- </span><span class=identifier>InvalidArgument</span><span class=special>;
-
- </span><span class=keyword>class </span><span class=identifier>NotInitialized_ </span><span class=special>{};
- </span><span class=keyword>typedef
- </span><span class=identifier>Compound </span><span class=special>&lt;</span><span class=identifier>NotInitialized_</span><span class=special>, </span><span class=identifier>Exception</span><span class=special>&gt;
- </span><span class=identifier>NotInitialized</span><span class=special>;
-
-</span><span class=keyword>public</span><span class=special>:
-
- </span><span class=keyword>void
- </span><span class=identifier>foo </span><span class=special>(</span><span class=keyword>char </span><span class=keyword>const</span><span class=special>* </span><span class=identifier>str</span><span class=special>) </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>InvalidArgument</span><span class=special>, </span><span class=identifier>NotInitialized</span><span class=special>)
- </span><span class=special>{
- </span><span class=comment>// This is just an example.
-
- </span><span class=keyword>if </span><span class=special>(</span><span class=identifier>str </span><span class=special>== </span><span class=number>0</span><span class=special>)
- </span><span class=special>{
- </span><span class=keyword>throw </span><span class=identifier>InvalidArgument </span><span class=special>(</span><span class=string>&quot;Base::foo: first parameter is zero.&quot;</span><span class=special>);
- </span><span class=special>}
- </span><span class=keyword>else
- </span><span class=special>{
- </span><span class=identifier>ostringstream </span><span class=identifier>ostr</span><span class=special>;
- </span><span class=identifier>ostr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Base::foo [this = &quot; </span><span class=special>&lt;&lt; </span><span class=keyword>this </span><span class=special>&lt;&lt; </span><span class=string>&quot;]: object is not initialized.&quot;</span><span class=special>;
-
- </span><span class=keyword>throw </span><span class=identifier>NotInitialized </span><span class=special>(</span><span class=identifier>ostr</span><span class=special>);
- </span><span class=special>}
- </span><span class=special>}
-
-
- </span><span class=comment>// We don't know what implementation may decide to throw so
- // we allow to throw System exception and any logic exception
- // derived from Base::Exception
- </span><span class=keyword>virtual </span><span class=keyword>void
- </span><span class=identifier>vfoo </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>) </span><span class=special>= </span><span class=number>0</span><span class=special>;
-</span><span class=special>};
-
-</span><span class=keyword>class </span><span class=identifier>Derived </span><span class=special>: </span><span class=keyword>public </span><span class=identifier>Base
-</span><span class=special>{
-</span><span class=keyword>public</span><span class=special>:
-
- </span><span class=comment>// Define some Derived-specific logic exception.
- </span><span class=keyword>class </span><span class=identifier>NotImplemented_ </span><span class=special>{};
- </span><span class=keyword>typedef
- </span><span class=identifier>Compound </span><span class=special>&lt;</span><span class=identifier>NotImplemented_</span><span class=special>, </span><span class=identifier>Exception</span><span class=special>&gt;
- </span><span class=identifier>NotImplemented</span><span class=special>;
-
-</span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>virtual </span><span class=keyword>void
- </span><span class=identifier>vfoo </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>NotImplemented</span><span class=special>, </span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string </span><span class=identifier>str </span><span class=special>(</span><span class=string>&quot;Derived::vfoo: not implemented yet.&quot;</span><span class=special>);
- </span><span class=keyword>throw </span><span class=identifier>NotImplemented </span><span class=special>(</span><span class=identifier>str</span><span class=special>);
- </span><span class=special>}
-</span><span class=special>};
-
-</span><span class=keyword>int
-</span><span class=identifier>main </span><span class=special>()
-</span><span class=special>{
- </span><span class=keyword>try
- </span><span class=special>{
-
- </span><span class=identifier>Derived </span><span class=identifier>d</span><span class=special>;
- </span><span class=identifier>Base</span><span class=special>* </span><span class=identifier>pb </span><span class=special>(&amp;</span><span class=identifier>d</span><span class=special>);
-
- </span><span class=comment>// We can use generic handler.
- </span><span class=keyword>try
- </span><span class=special>{
- </span><span class=identifier>pb</span><span class=special>-&gt;</span><span class=identifier>vfoo </span><span class=special>();
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Base</span><span class=special>::</span><span class=identifier>Exception </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>ex</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught Base::Exception: &quot; </span><span class=special>&lt;&lt; </span><span class=identifier>ex</span><span class=special>.</span><span class=identifier>what </span><span class=special>() </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=special>}
-
-
- </span><span class=comment>// Or use more precise control.
- </span><span class=keyword>try
- </span><span class=special>{
- </span><span class=identifier>pb</span><span class=special>-&gt;</span><span class=identifier>foo </span><span class=special>(</span><span class=string>&quot;hello&quot;</span><span class=special>);
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Base</span><span class=special>::</span><span class=identifier>NotInitialized </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>ex</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught Base::NotInitialized: &quot; </span><span class=special>&lt;&lt; </span><span class=identifier>ex</span><span class=special>.</span><span class=identifier>what </span><span class=special>() </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=special>}
-
- </span><span class=comment>// Or use application-level handler.
- </span><span class=identifier>pb</span><span class=special>-&gt;</span><span class=identifier>foo </span><span class=special>(</span><span class=number>0</span><span class=special>);
-
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>Exception </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>ex</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught Logic::Exception: &quot; </span><span class=special>&lt;&lt; </span><span class=identifier>ex</span><span class=special>.</span><span class=identifier>what </span><span class=special>() </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(...)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught unknown exception using catch-all handler&quot; </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>;
- </span><span class=special>}
-
-</span><span class=special>}
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/Example/hello_world.cpp.html b/ACE/contrib/utility/Documentation/ExH/Example/hello_world.cpp.html
deleted file mode 100644
index 3d2497f325e..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Example/hello_world.cpp.html
+++ /dev/null
@@ -1,152 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-hello_world.cpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Example/ExH/HelloWorld/hello_world.cpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=preprocessor>#include &lt;cstdlib&gt; // for std::abort ()
-
-</span><span class=preprocessor>#include &lt;string&gt;
-</span><span class=preprocessor>#include &lt;iostream&gt;
-
-</span><span class=preprocessor>#include &quot;Utility/ExH/System/Exception.hpp&quot;
-</span><span class=preprocessor>#include &quot;Utility/ExH/Logic/Exception.hpp&quot;
-
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>cerr</span><span class=special>;
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>cout</span><span class=special>;
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>endl</span><span class=special>;
-
-</span><span class=keyword>using </span><span class=keyword>namespace </span><span class=identifier>Utility</span><span class=special>;
-
-</span><span class=keyword>class </span><span class=identifier>Application
-</span><span class=special>{
-</span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>class </span><span class=identifier>Exception </span><span class=special>: </span><span class=keyword>public </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>Exception </span><span class=special>{};
-
- </span><span class=comment>// Hint: you may want to try again...
- </span><span class=keyword>class </span><span class=identifier>FeelingDizzy </span><span class=special>: </span><span class=keyword>public </span><span class=identifier>Exception </span><span class=special>{};
-
- </span><span class=keyword>class </span><span class=identifier>InvalidArg </span><span class=special>: </span><span class=keyword>public </span><span class=identifier>Exception </span><span class=special>{};
-
-</span><span class=keyword>public</span><span class=special>:
- </span><span class=identifier>Application </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>)
- </span><span class=special>: </span><span class=comment>// The std::string c-tor may throw any kind of exceptions besides
- // quite possible std::bad_alloc.
- </span><span class=identifier>greeting_ </span><span class=special>(</span><span class=string>&quot;Hello, world!&quot;</span><span class=special>)
- </span><span class=special>{
- </span><span class=special>}
-
- </span><span class=identifier>Application </span><span class=special>(</span><span class=keyword>char </span><span class=keyword>const </span><span class=special>* </span><span class=identifier>greeting</span><span class=special>) </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>InvalidArg</span><span class=special>,
- </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>)
- </span><span class=special>: </span><span class=identifier>greeting_ </span><span class=special>(</span><span class=identifier>greeting </span><span class=special>== </span><span class=number>0 </span><span class=special>? </span><span class=string>&quot;&quot; </span><span class=special>: </span><span class=identifier>greeting</span><span class=special>)
- </span><span class=special>{
- </span><span class=keyword>if </span><span class=special>(</span><span class=identifier>greeting </span><span class=special>== </span><span class=number>0</span><span class=special>) </span><span class=keyword>throw </span><span class=identifier>InvalidArg </span><span class=special>();
- </span><span class=special>}
-
-</span><span class=keyword>public</span><span class=special>:
-
- </span><span class=keyword>void
- </span><span class=identifier>run </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>FeelingDizzy</span><span class=special>, </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>)
- </span><span class=special>{
- </span><span class=keyword>static </span><span class=keyword>unsigned </span><span class=keyword>int </span><span class=identifier>dizzy_count </span><span class=special>(</span><span class=number>0</span><span class=special>);
-
- </span><span class=keyword>if </span><span class=special>(</span><span class=identifier>dizzy_count</span><span class=special>++ </span><span class=special>&lt; </span><span class=number>5</span><span class=special>) </span><span class=keyword>throw </span><span class=identifier>FeelingDizzy </span><span class=special>();
-
- </span><span class=comment>// The next line can throw full bucket of exceptions
- // not to mention ios_base::failure.
- </span><span class=identifier>cout </span><span class=special>&lt;&lt; </span><span class=identifier>greeting_</span><span class=special>.</span><span class=identifier>c_str </span><span class=special>() </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=special>}
-
-</span><span class=keyword>private</span><span class=special>:
-
- </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string </span><span class=identifier>greeting_</span><span class=special>;
-</span><span class=special>};
-
-
-
-</span><span class=keyword>int
-</span><span class=identifier>main </span><span class=special>()
-</span><span class=special>{
- </span><span class=comment>// This is a catch-all layer that should be in use only
- // if we are really in trouble.
- </span><span class=keyword>try
- </span><span class=special>{
- </span><span class=comment>// This is a catch-system layer. Here we will catch exceptions like
- // bad_alloc, etc. If we get here it means that nobody wanted/managed
- // to recover from this kind of errors.
- </span><span class=keyword>try
- </span><span class=special>{
- </span><span class=comment>// This is a catch-logic layer. If we get here it usually
- // indicates an application logic error.
- </span><span class=keyword>try
- </span><span class=special>{
-
- </span><span class=comment>// Ok, here we go about our application logic.
- </span><span class=keyword>try
- </span><span class=special>{
- </span><span class=keyword>for </span><span class=special>(</span><span class=keyword>int </span><span class=identifier>i </span><span class=special>= </span><span class=number>0</span><span class=special>; </span><span class=identifier>i </span><span class=special>&lt; </span><span class=number>10</span><span class=special>; </span><span class=identifier>i</span><span class=special>++)
- </span><span class=special>{
- </span><span class=keyword>try
- </span><span class=special>{
- </span><span class=identifier>Application </span><span class=identifier>app </span><span class=special>(</span><span class=string>&quot;Hi dude!&quot;</span><span class=special>);
- </span><span class=identifier>app</span><span class=special>.</span><span class=identifier>run </span><span class=special>();
- </span><span class=keyword>break</span><span class=special>;
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Application</span><span class=special>::</span><span class=identifier>FeelingDizzy </span><span class=keyword>const</span><span class=special>&amp; </span><span class=special>)
- </span><span class=special>{
- </span><span class=keyword>if </span><span class=special>(</span><span class=identifier>i </span><span class=special>== </span><span class=number>9</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Given up!&quot; </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>;
- </span><span class=special>}
- </span><span class=keyword>else
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Application is feeling dizzy. Trying again...&quot;
- </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=special>}
- </span><span class=special>}
- </span><span class=special>}
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Application</span><span class=special>::</span><span class=identifier>InvalidArg </span><span class=keyword>const</span><span class=special>&amp; </span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Cought Application::InvalidArg : ...hmm... strange!&quot;
- </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>;
- </span><span class=special>}
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>Exception </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>e</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught Logic::Exception : &quot; </span><span class=special>&lt;&lt; </span><span class=identifier>e</span><span class=special>.</span><span class=identifier>what </span><span class=special>() </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>;
- </span><span class=special>}
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=keyword>const </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>&amp; </span><span class=identifier>e</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught System::Exception : &quot; </span><span class=special>&lt;&lt; </span><span class=identifier>e</span><span class=special>.</span><span class=identifier>what </span><span class=special>() </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>;
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(...)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught unknown exception using catch-all handler. &quot; </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>;
- </span><span class=special>}
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(...)
- </span><span class=special>{
- </span><span class=comment>// We get here in cases of some hard failure. For example when handling
- // exception, operator &lt;&lt; throws another exception. Usually application
- // cannot handle such failures itself so we just propagate it futher.
- </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>abort </span><span class=special>();
- </span><span class=special>}
-</span><span class=special>}
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html b/ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html
deleted file mode 100644
index d29794d4c2c..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-logic_to_system.cpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Example/ExH/LogicToSystem/logic_to_system.cpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=preprocessor>#include &quot;Utility/ExH/System/Exception.hpp&quot;
-</span><span class=preprocessor>#include &quot;Utility/ExH/Logic/Exception.hpp&quot;
-
-</span><span class=preprocessor>#include &lt;iostream&gt;
-
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>cerr</span><span class=special>;
-</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>endl</span><span class=special>;
-
-
-</span><span class=keyword>struct </span><span class=identifier>SubsystemA
-</span><span class=special>{
- </span><span class=keyword>class </span><span class=identifier>Exception </span><span class=special>: </span><span class=keyword>public </span><span class=identifier>Utility</span><span class=special>::</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>Exception </span><span class=special>{};
-
- </span><span class=keyword>void
- </span><span class=identifier>foo </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>)
- </span><span class=special>{
- </span><span class=keyword>throw </span><span class=identifier>Exception </span><span class=special>();
- </span><span class=special>}
-</span><span class=special>};
-
-
-</span><span class=keyword>struct </span><span class=identifier>SubsystemB
-</span><span class=special>{
- </span><span class=keyword>void
- </span><span class=identifier>foo </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Utility</span><span class=special>::</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>SubsystemA </span><span class=identifier>a</span><span class=special>;
- </span><span class=identifier>a</span><span class=special>.</span><span class=identifier>foo </span><span class=special>();
-
- </span><span class=comment>// Here SubsystemB is using SunsystemA but cannot (forgot, doesnt't
- // want to, doesn't know how to, etc - pick your favorite) handle
- // exception thrown by SubsystemA. As a result exception is
- // 'converted' to System::Exception.
- </span><span class=special>}
-</span><span class=special>};
-
-
-</span><span class=keyword>int
-</span><span class=identifier>main </span><span class=special>()
-</span><span class=special>{
- </span><span class=keyword>try
- </span><span class=special>{
- </span><span class=identifier>SubsystemB </span><span class=identifier>b</span><span class=special>;
- </span><span class=identifier>b</span><span class=special>.</span><span class=identifier>foo </span><span class=special>();
- </span><span class=special>}
- </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Utility</span><span class=special>::</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>ex</span><span class=special>)
- </span><span class=special>{
- </span><span class=identifier>cerr </span><span class=special>&lt;&lt; </span><span class=string>&quot;Caught Utility::ExH::System::Exception: &quot;
- </span><span class=special>&lt;&lt; </span><span class=identifier>ex</span><span class=special>.</span><span class=identifier>what </span><span class=special>()
- </span><span class=special>&lt;&lt; </span><span class=identifier>endl</span><span class=special>;
- </span><span class=special>}
-</span><span class=special>}
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/Logic/DescriptiveException.hpp.html b/ACE/contrib/utility/Documentation/ExH/Logic/DescriptiveException.hpp.html
deleted file mode 100644
index b54dbd30936..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Logic/DescriptiveException.hpp.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-DescriptiveException.hpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ExH/Logic/DescriptiveException.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ExH
- </span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>Logic
- </span><span class=special>{
- </span><span class=keyword>class </span><span class=identifier>DescriptiveException </span><span class=special>: </span><span class=keyword>public </span><span class=keyword>virtual </span><span class=identifier>Exception
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>explicit
- </span><span class=identifier>DescriptiveException </span><span class=special>(</span><span class=keyword>char </span><span class=keyword>const</span><span class=special>* </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>explicit
- </span><span class=identifier>DescriptiveException </span><span class=special>(</span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=keyword>explicit
- </span><span class=identifier>DescriptiveException </span><span class=special>(</span><span class=identifier>T </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>DescriptiveException </span><span class=special>(</span><span class=identifier>DescriptiveException </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>src</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>virtual
- </span><span class=special>~</span><span class=identifier>DescriptiveException </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>DescriptiveException</span><span class=special>&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>DescriptiveException </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>src</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>protected</span><span class=special>:
- </span><span class=identifier>DescriptiveException </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>void
- </span><span class=identifier>init </span><span class=special>(</span><span class=keyword>char </span><span class=keyword>const</span><span class=special>* </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>virtual </span><span class=keyword>char </span><span class=keyword>const</span><span class=special>*
- </span><span class=identifier>what </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>private</span><span class=special>:
- </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>auto_ptr</span><span class=special>&lt;</span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string</span><span class=special>&gt; </span><span class=identifier>description_</span><span class=special>;
- </span><span class=special>};
- </span><span class=special>}
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/Logic/Exception.hpp.html b/ACE/contrib/utility/Documentation/ExH/Logic/Exception.hpp.html
deleted file mode 100644
index 5b4b56aa46d..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Logic/Exception.hpp.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-Exception.hpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ExH/Logic/Exception.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ExH
- </span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>Logic
- </span><span class=special>{
-
- </span><span class=comment>// Logic::Exception inherits from System::Exception for the
- // following reason. Semantically for some part of the
- // system particular instance of Logic::Exception may seem as
- // opaque System::Exception and the only way to handle it would
- // be to propagate it further. In other words Logic::Exception
- // can be seemlesly &quot;converted&quot; to System::Exception if there is
- // no part of the system interested in handling it.
- //
-
- </span><span class=keyword>class </span><span class=identifier>Exception </span><span class=special>: </span><span class=keyword>public </span><span class=keyword>virtual </span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>virtual
- </span><span class=special>~</span><span class=identifier>Exception </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
- </span><span class=special>};
- </span><span class=special>}
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/Logic/Makefile b/ACE/contrib/utility/Documentation/ExH/Logic/Makefile
deleted file mode 100644
index d2d48d406bf..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Logic/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# file : Documentation/ExH/Logic/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Documentation.pre.rules)
-
-vpath %.hpp $(root)/Utility/ExH/Logic
-
-doc_translation_units := Exception.hpp DescriptiveException.hpp
-
-DOC_FLAGS := --strip-preprocessor -css $(root)/Documentation/Style/CXX.css
-
-$(call include, $(root)/BuildRules/Documentation.post.rules)
-
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/ExH/Makefile b/ACE/contrib/utility/Documentation/ExH/Makefile
deleted file mode 100644
index c4a5bc5f6c0..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Documentation/ExH/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list := Makefile.documentation
-target_directory_list := Logic System Example
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/ExH/Makefile.documentation b/ACE/contrib/utility/Documentation/ExH/Makefile.documentation
deleted file mode 100644
index 3ebf1511555..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/Makefile.documentation
+++ /dev/null
@@ -1,20 +0,0 @@
-# file : Documentation/ExH/Make.doc.mk
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Documentation.pre.rules)
-
-vpath %.hpp $(root)/Utility/ExH
-
-doc_translation_units := Compound.hpp
-
-DOC_FLAGS := --strip-preprocessor -css $(root)/Documentation/Style/CXX.css
-
-$(call include, $(root)/BuildRules/Documentation.post.rules)
-
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/ExH/News.xhtml b/ACE/contrib/utility/Documentation/ExH/News.xhtml
deleted file mode 100644
index b86f821c992..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/News.xhtml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/ExH/News.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Exception Handling Library News</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="news,C++,exception,handling,model"/>
- <meta name="description" content="Exception Handling Library News"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>1.2.0</h1>
-
-<ul class="multiline">
- <li>
- Fixed incorrect initialization of <code>DescriptiveException</code> with
- <code>std::ostringstream</code> object. Thanks to Karen Aroutiounov
- &lt;karen@ipmce.ru&gt; for reporting this.
- </li>
-</ul>
-
-<h1>1.1.0</h1>
-
-<ul class="multiline">
- <li>New regression test coverage.</li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/System/DescriptiveException.hpp.html b/ACE/contrib/utility/Documentation/ExH/System/DescriptiveException.hpp.html
deleted file mode 100644
index fb6b35d4143..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/System/DescriptiveException.hpp.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-DescriptiveException.hpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ExH/System/DescriptiveException.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ExH
- </span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>System
- </span><span class=special>{
- </span><span class=keyword>class </span><span class=identifier>DescriptiveException </span><span class=special>: </span><span class=keyword>public </span><span class=keyword>virtual </span><span class=identifier>Exception
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>explicit
- </span><span class=identifier>DescriptiveException </span><span class=special>(</span><span class=keyword>char </span><span class=keyword>const</span><span class=special>* </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>explicit
- </span><span class=identifier>DescriptiveException </span><span class=special>(</span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=keyword>explicit
- </span><span class=identifier>DescriptiveException </span><span class=special>(</span><span class=identifier>T </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>DescriptiveException </span><span class=special>(</span><span class=identifier>DescriptiveException </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>src</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>virtual
- </span><span class=special>~</span><span class=identifier>DescriptiveException </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>DescriptiveException</span><span class=special>&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>DescriptiveException </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>src</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>protected</span><span class=special>:
- </span><span class=identifier>DescriptiveException </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>void
- </span><span class=identifier>init </span><span class=special>(</span><span class=keyword>char </span><span class=keyword>const</span><span class=special>* </span><span class=identifier>description</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>virtual </span><span class=keyword>char </span><span class=keyword>const</span><span class=special>*
- </span><span class=identifier>what </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>private</span><span class=special>:
-
- </span><span class=keyword>static </span><span class=keyword>unsigned </span><span class=keyword>long </span><span class=keyword>const </span><span class=identifier>DESCRIPTION_SIZE </span><span class=special>= </span><span class=number>256</span><span class=special>;
-
- </span><span class=keyword>char </span><span class=identifier>description_ </span><span class=special>[</span><span class=identifier>DESCRIPTION_SIZE</span><span class=special>];
- </span><span class=special>};
- </span><span class=special>}
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/System/Exception.hpp.html b/ACE/contrib/utility/Documentation/ExH/System/Exception.hpp.html
deleted file mode 100644
index 60d6bd733f5..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/System/Exception.hpp.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-Exception.hpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ExH/System/Exception.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ExH
- </span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>System
- </span><span class=special>{
- </span><span class=comment>// This is the only way to make predefined exceptions like
- // std::bad_alloc, etc to appear in the right place of the hierarchy.
- //
-
- </span><span class=keyword>typedef </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>exception </span><span class=identifier>Exception</span><span class=special>;
- </span><span class=special>}
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ExH/System/Makefile b/ACE/contrib/utility/Documentation/ExH/System/Makefile
deleted file mode 100644
index 7c7bfbc8e8d..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/System/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# file : Documentation/ExH/System/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Documentation.pre.rules)
-
-vpath %.hpp $(root)/Utility/ExH/System
-
-doc_translation_units := Exception.hpp DescriptiveException.hpp
-
-DOC_FLAGS := --strip-preprocessor -css $(root)/Documentation/Style/CXX.css
-
-$(call include, $(root)/BuildRules/Documentation.post.rules)
-
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/ExH/index.xhtml b/ACE/contrib/utility/Documentation/ExH/index.xhtml
deleted file mode 100644
index c2d40d9fbaa..00000000000
--- a/ACE/contrib/utility/Documentation/ExH/index.xhtml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/ExH/index.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Exception Handling Library</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="C++,utility,exception,handling,model,ExH"/>
- <meta name="description" content="Exception Handling Library"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-
-<p>
-Exception Handling library was designed to promote consistent usage of
-exceptions and exception handling mechanisms throughout the project.
-For a quick overview of the basic idea you may want to look at some
-examples.</p>
-
-<h1>Examples</h1>
-
-<ul class="menu">
- <li><a href="Example/bad_cast.cpp.html">bad_cast.cpp</a></li>
- <li><a href="Example/compound.cpp.html">compound.cpp</a></li>
- <li><a href="Example/hello_world.cpp.html">hello_world.cpp</a></li>
- <li><a href="Example/logic_to_system.cpp.html">logic_to_system.cpp</a></li>
-</ul>
-
-<h1>Definitions</h1>
-
-<p>Following are the definitions of the main blocks of the model:</p>
-
-<ul class="menu">
- <li><a href="Compound.hpp.html">ExH::Compound</a></li>
- <li><a href="System/Exception.hpp.html">ExH::System::Exception</a></li>
- <li><a href="System/DescriptiveException.hpp.html">ExH::System::DescriptiveException</a></li>
- <li><a href="Logic/Exception.hpp.html">ExH::Logic::Exception</a></li>
- <li><a href="Logic/DescriptiveException.hpp.html">ExH::Logic::DescriptiveException</a></li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/Hetero/News.xhtml b/ACE/contrib/utility/Documentation/Hetero/News.xhtml
deleted file mode 100644
index b99645d704d..00000000000
--- a/ACE/contrib/utility/Documentation/Hetero/News.xhtml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/Hetero/News.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Heterogeneous Container Library News</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="c++,heterogeneous,container,news"/>
- <meta name="description" content="Heterogeneous Container Library News"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/Hetero/index.xhtml b/ACE/contrib/utility/Documentation/Hetero/index.xhtml
deleted file mode 100644
index d45a7b6e82d..00000000000
--- a/ACE/contrib/utility/Documentation/Hetero/index.xhtml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/Hetero/index.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Heterogeneous Container Library</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="c++,heterogeneous,container"/>
- <meta name="description" content="Heterogeneous Container Library"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-
-<p>Have you ever wanted to write something like this:</p>
-
-<pre>
-vector v;
-
-v.push_back (10);
-v.push_back (true);
-v.push_back ("hello");
-</pre>
-
-<p>Or maybe even something like this:</p>
-
-<pre>
-template &lt;typename T&gt;
-void print (T const&amp; t)
-{
- cout &lt;&lt; t &lt;&lt; endl;
-}
-
-for (vector::const_iterator i = v.begin (); i != v.end (); i++)
-{
- print (*i);
-}
-</pre>
-
-<p>If so then you may be interested in Heterogeneous Container Library.
-It is still in active development but you can take a look for some
-examples in Example/Hetero directory.</p>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/Introspection/News.xhtml b/ACE/contrib/utility/Documentation/Introspection/News.xhtml
deleted file mode 100644
index 257c790766c..00000000000
--- a/ACE/contrib/utility/Documentation/Introspection/News.xhtml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/Introspection/News.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Introspection Library News</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="introspection,library,news"/>
- <meta name="description" content="Introspection Library News"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>1.2.2</h1>
-<ul class="multiline">
- <li>
- Removed no-throw specification from <code>Introspection::Object::~Object()</code>.
- </li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/Introspection/index.xhtml b/ACE/contrib/utility/Documentation/Introspection/index.xhtml
deleted file mode 100644
index 462b2c87321..00000000000
--- a/ACE/contrib/utility/Documentation/Introspection/index.xhtml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/Introspection/index.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Introspection Library</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="c++,type,object,class,introspection"/>
- <meta name="description" content="Introspection Library"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-
-<p>
-Sometimes there is a need to analyze object's type at runtime. ISO C++
-provides some capabilities for this kind of introspection however they
-are limited to basic type information. Such information as type
-inheritance graph is not accessible in standard C++. Introspection
-Library provides a framework that enables discovery of type structure
-at runtime. The library is still in development stage but a few meaningful
-examples are available in Example/Introspection directory.</p>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/Makefile b/ACE/contrib/utility/Documentation/Makefile
deleted file mode 100644
index 6a2caae9002..00000000000
--- a/ACE/contrib/utility/Documentation/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Documentation/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := ExH ReferenceCounting Synch
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/News.xhtml b/ACE/contrib/utility/Documentation/News.xhtml
deleted file mode 100644
index b3ea1389e53..00000000000
--- a/ACE/contrib/utility/Documentation/News.xhtml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/News.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Utility Library News</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="news,C++,utility,exception,handling,model,reference,counting,thread,synchronization"/>
- <meta name="description" content="Utility Library News"/>
-
- <link rel="stylesheet" type="text/css" href="Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Sub-Library News</h1>
-
-<ul class="menu">
- <li><a href="ExH/News.xhtml">Exception Handling</a></li>
- <li><a href="ReferenceCounting/News.xhtml">Reference Counting</a></li>
- <li><a href="Synch/News.xhtml">Synchronization</a></li>
- <li><a href="Introspection/News.xhtml">Introspection</a></li>
-</ul>
-
-<h1>1.2.2</h1>
-<ul class="multiline">
- <li>Bug fixes in build system.</li>
-</ul>
-
-
-<h1>1.2.1</h1>
-<ul class="multiline">
- <li>
- Documentation bug fixes.
- </li>
-</ul>
-
-
-<h1>1.2.0</h1>
-<ul class="multiline">
- <li>
- Added new <a href="Hetero/index.xhtml">Heterogeneous Container Library</a>.
- </li>
- <li>
- Added new <a href="Introspection/index.xhtml">Introspection Library</a>.
- </li>
-</ul>
-
-
-<h1>1.1.0</h1>
-<ul class="multiline">
- <li>New directory structure.</li>
- <li>New dependency generation mechanism.</li>
- <li>Automatic documentation generation (<code>make documentation</code>).</li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ReferenceCounting/DefaultImpl.hpp.html b/ACE/contrib/utility/Documentation/ReferenceCounting/DefaultImpl.hpp.html
deleted file mode 100644
index 86edcd70ec2..00000000000
--- a/ACE/contrib/utility/Documentation/ReferenceCounting/DefaultImpl.hpp.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-DefaultImpl.hpp</title>
-<link rel="stylesheet" href="../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ReferenceCounting/DefaultImpl.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ReferenceCounting
- </span><span class=special>{
- </span><span class=comment>// Default reference counter implementation with parameterised
- // synchronization policy. It is assumed that none of the SynchPolicy
- // types throw any logic exceptions. If in fact they do then these
- // exceptions won't be handled and will be automatically converted
- // to system exceptions.
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>SynchPolicy </span><span class=special>= </span><span class=identifier>Utility</span><span class=special>::</span><span class=identifier>Synch</span><span class=special>::</span><span class=identifier>Policy</span><span class=special>::</span><span class=identifier>Null</span><span class=special>&gt;
- </span><span class=keyword>class </span><span class=identifier>DefaultImpl </span><span class=special>: </span><span class=keyword>public </span><span class=keyword>virtual </span><span class=identifier>Interface
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>class </span><span class=identifier>InconsistentState_ </span><span class=special>{};
- </span><span class=keyword>typedef
- </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Compound</span><span class=special>&lt;</span><span class=identifier>InconsistentState_</span><span class=special>, </span><span class=identifier>Exception</span><span class=special>&gt;
- </span><span class=identifier>InconsistentState</span><span class=special>;
-
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=identifier>DefaultImpl </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>virtual
- </span><span class=special>~</span><span class=identifier>DefaultImpl </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>virtual </span><span class=keyword>void
- </span><span class=identifier>add_ref </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>virtual </span><span class=keyword>void
- </span><span class=identifier>remove_ref </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>virtual </span><span class=identifier>count_t
- </span><span class=identifier>refcount_value </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>protected</span><span class=special>:
- </span><span class=keyword>virtual </span><span class=keyword>void
- </span><span class=identifier>add_ref_i </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>virtual </span><span class=keyword>bool
- </span><span class=identifier>remove_ref_i </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>virtual </span><span class=identifier>count_t
- </span><span class=identifier>refcount_value_i </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>typename </span><span class=identifier>SynchPolicy</span><span class=special>::</span><span class=identifier>Mutex</span><span class=special>&amp;
- </span><span class=identifier>lock_i </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>protected</span><span class=special>:
- </span><span class=keyword>typedef
- </span><span class=keyword>typename </span><span class=identifier>SynchPolicy</span><span class=special>::</span><span class=identifier>Mutex
- </span><span class=identifier>Mutex_</span><span class=special>;
-
- </span><span class=keyword>typedef
- </span><span class=keyword>typename </span><span class=identifier>SynchPolicy</span><span class=special>::</span><span class=identifier>ReadGuard
- </span><span class=identifier>ReadGuard_</span><span class=special>;
-
- </span><span class=keyword>typedef
- </span><span class=keyword>typename </span><span class=identifier>SynchPolicy</span><span class=special>::</span><span class=identifier>WriteGuard
- </span><span class=identifier>WriteGuard_</span><span class=special>;
-
- </span><span class=keyword>protected</span><span class=special>:
- </span><span class=keyword>mutable </span><span class=identifier>count_t </span><span class=identifier>ref_count_</span><span class=special>;
-
- </span><span class=keyword>private</span><span class=special>:
- </span><span class=keyword>mutable </span><span class=identifier>Mutex_ </span><span class=identifier>lock_</span><span class=special>;
-
- </span><span class=keyword>private</span><span class=special>:
- </span><span class=comment>// Copy semanic is not supported.
- </span><span class=identifier>DefaultImpl </span><span class=special>(</span><span class=identifier>DefaultImpl </span><span class=keyword>const</span><span class=special>&amp;) </span><span class=keyword>throw </span><span class=special>();
- </span><span class=identifier>DefaultImpl</span><span class=special>&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>DefaultImpl </span><span class=keyword>const</span><span class=special>&amp;) </span><span class=keyword>throw </span><span class=special>();
- </span><span class=special>};
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ReferenceCounting/Interface.hpp.html b/ACE/contrib/utility/Documentation/ReferenceCounting/Interface.hpp.html
deleted file mode 100644
index f81c1dc737c..00000000000
--- a/ACE/contrib/utility/Documentation/ReferenceCounting/Interface.hpp.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-Interface.hpp</title>
-<link rel="stylesheet" href="../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ReferenceCounting/Interface.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ReferenceCounting
- </span><span class=special>{
- </span><span class=comment>// Interface to a reference-countable object. Note that _remove_ref ()
- // member function has a no-throw semantic. Even though it can lead to
- // a diagnostic loss it was made no-throw because it has a destructor
- // semantic.
-
- </span><span class=keyword>class </span><span class=identifier>Interface
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>typedef
- </span><span class=keyword>unsigned </span><span class=keyword>long
- </span><span class=identifier>count_t</span><span class=special>;
-
- </span><span class=keyword>typedef
- </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception
- </span><span class=identifier>SystemException</span><span class=special>;
-
- </span><span class=keyword>class </span><span class=identifier>Exception_ </span><span class=special>{};
- </span><span class=keyword>typedef
- </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Compound</span><span class=special>&lt;</span><span class=identifier>Exception_</span><span class=special>, </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>DescriptiveException</span><span class=special>&gt;
- </span><span class=identifier>Exception</span><span class=special>;
-
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>virtual </span><span class=keyword>void
- </span><span class=identifier>add_ref </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>) </span><span class=special>= </span><span class=number>0</span><span class=special>;
-
- </span><span class=keyword>virtual </span><span class=keyword>void
- </span><span class=identifier>remove_ref </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>() </span><span class=special>= </span><span class=number>0</span><span class=special>;
-
- </span><span class=keyword>virtual </span><span class=identifier>count_t
- </span><span class=identifier>refcount_value </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>) </span><span class=special>= </span><span class=number>0</span><span class=special>;
-
- </span><span class=keyword>protected</span><span class=special>:
- </span><span class=identifier>Interface </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>virtual
- </span><span class=special>~</span><span class=identifier>Interface </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>protected</span><span class=special>:
- </span><span class=keyword>virtual </span><span class=keyword>void
- </span><span class=identifier>add_ref_i </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>) </span><span class=special>= </span><span class=number>0</span><span class=special>;
-
- </span><span class=keyword>virtual </span><span class=keyword>bool
- </span><span class=identifier>remove_ref_i </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>) </span><span class=special>= </span><span class=number>0</span><span class=special>;
-
- </span><span class=keyword>virtual </span><span class=identifier>count_t
- </span><span class=identifier>refcount_value_i </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>SystemException</span><span class=special>) </span><span class=special>= </span><span class=number>0</span><span class=special>;
-
- </span><span class=keyword>private</span><span class=special>:
- </span><span class=comment>// Copy semanic is not supported.
- </span><span class=identifier>Interface </span><span class=special>(</span><span class=identifier>Interface </span><span class=keyword>const</span><span class=special>&amp;) </span><span class=keyword>throw </span><span class=special>();
- </span><span class=identifier>Interface</span><span class=special>&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>Interface </span><span class=keyword>const</span><span class=special>&amp;) </span><span class=keyword>throw </span><span class=special>();
- </span><span class=special>};
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>Type</span><span class=special>&gt;
- </span><span class=identifier>Type</span><span class=special>*
- </span><span class=identifier>add_ref </span><span class=special>(</span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ReferenceCounting/Makefile b/ACE/contrib/utility/Documentation/ReferenceCounting/Makefile
deleted file mode 100644
index 3202f185418..00000000000
--- a/ACE/contrib/utility/Documentation/ReferenceCounting/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# file : Documentation/ReferenceCounting/Make.doc.mk
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Documentation.pre.rules)
-
-vpath %.hpp $(root)/Utility/ReferenceCounting
-
-doc_translation_units := DefaultImpl.hpp \
- Interface.hpp \
- SmartPtr.hpp \
- StrictPtr.hpp
-
-DOC_FLAGS := --strip-preprocessor -css $(root)/Documentation/Style/CXX.css
-
-$(call include, $(root)/BuildRules/Documentation.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/ReferenceCounting/News.xhtml b/ACE/contrib/utility/Documentation/ReferenceCounting/News.xhtml
deleted file mode 100644
index 472a97e9e66..00000000000
--- a/ACE/contrib/utility/Documentation/ReferenceCounting/News.xhtml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/ReferenceCounting/News.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Reference Counting Library News</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="news,C++,reference,counting,smart,pointer"/>
- <meta name="description" content="Reference Counting Library News"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>1.1.0</h1>
-<ul class="multiline">
-<li>New regression test coverage.</li>
-
-<li>
-<code>
-<a href="SmartPtr.hpp.html">Utility::ReferenceCounting::SmartPtr</a>
-</code>
-: added
-<pre class="cpp-code">
-template&lt;typename Other&gt;
-SmartPtr (SmartPtr&lt;Other&gt; const&amp;)
-</pre>
-and
-<pre class="cpp-code">
-template&lt;typename Other&gt;
-operator= (SmartPtr&lt;Other&gt; const&amp;)
-</pre>
-</li>
-
-<li>
-<code>
-<a href="SmartPtr.hpp.html">Utility::ReferenceCounting::SmartPtr</a>
-</code>
-: added
-<pre class="cpp-code">typedef T Type;</pre>
-in order to provide access to underlying type.
-</li>
-
-<li>
-<code><a href="index.xhtml">Utility::ReferenceCounting</a></code>
-: added
-<pre class="cpp-code">
-template &lt;typename D, typename S&gt;
-D*
-smart_cast (SmartPtr&lt;S&gt; const&amp;)
-</pre>
-to provide more convenient <code>dynamic_cast</code> functionality.
-</li>
-
-<li>
-<code><a href="index.xhtml">Utility::ReferenceCounting</a></code>
-: added
-<pre class="cpp-code">
-template &lt;typename T&gt;
-SmartPtr&lt;T&gt; acquire (T*)
-</pre>
-</li>
-
-<li>
-New
-<code>
-<a href="StrictPtr.hpp.html">Utility::ReferenceCounting::StrictPtr</a>
-</code>
-automatic pointer.
-</li>
-
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ReferenceCounting/SmartPtr.hpp.html b/ACE/contrib/utility/Documentation/ReferenceCounting/SmartPtr.hpp.html
deleted file mode 100644
index a2ef9342441..00000000000
--- a/ACE/contrib/utility/Documentation/ReferenceCounting/SmartPtr.hpp.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-SmartPtr.hpp</title>
-<link rel="stylesheet" href="../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ReferenceCounting/SmartPtr.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ReferenceCounting
- </span><span class=special>{
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=keyword>class </span><span class=identifier>SmartPtr
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>typedef
- </span><span class=identifier>T
- </span><span class=identifier>Type</span><span class=special>;
-
- </span><span class=keyword>class </span><span class=identifier>NotInitialized_ </span><span class=special>{};
- </span><span class=keyword>typedef
- </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Compound</span><span class=special>&lt;</span><span class=identifier>NotInitialized_</span><span class=special>, </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>DescriptiveException</span><span class=special>&gt;
- </span><span class=identifier>NotInitialized</span><span class=special>;
-
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=comment>// c-tor's
-
- </span><span class=identifier>SmartPtr </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
- </span><span class=identifier>SmartPtr </span><span class=special>(</span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>ptr</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
- </span><span class=identifier>SmartPtr </span><span class=special>(</span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s_ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>Other</span><span class=special>&gt;
- </span><span class=identifier>SmartPtr </span><span class=special>(</span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>Other</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s_ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=comment>// d-tor
-
- </span><span class=special>~</span><span class=identifier>SmartPtr </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=comment>// assignment &amp; copy-assignment operators
-
- </span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt;&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>ptr</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt;&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s_ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>Other</span><span class=special>&gt;
- </span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt;&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>Other</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s_ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=comment>//conversions
-
- </span><span class=keyword>operator </span><span class=identifier>Type</span><span class=special>* </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=comment>// accessors
-
- </span><span class=identifier>Type</span><span class=special>*
- </span><span class=keyword>operator</span><span class=special>-&gt; </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>NotInitialized</span><span class=special>);
-
- </span><span class=identifier>Type</span><span class=special>*
- </span><span class=identifier>in </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>Type</span><span class=special>*
- </span><span class=identifier>retn</span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>private</span><span class=special>:
- </span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>ptr_</span><span class=special>;
- </span><span class=special>};
-
- </span><span class=comment>// Specialization of add_ref function for SmartPtr&lt;T&gt;
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=identifier>T</span><span class=special>*
- </span><span class=identifier>add_ref </span><span class=special>(</span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>T</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
-
- </span><span class=comment>// Dynamic type conversion function for SmartPtr's
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>D</span><span class=special>, </span><span class=keyword>typename </span><span class=identifier>S</span><span class=special>&gt;
- </span><span class=identifier>D</span><span class=special>*
- </span><span class=identifier>smart_cast </span><span class=special>(</span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>S</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=comment>// Acquisition function
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=identifier>SmartPtr</span><span class=special>&lt;</span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=identifier>acquire </span><span class=special>(</span><span class=identifier>T</span><span class=special>* </span><span class=identifier>ptr</span><span class=special>) </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ReferenceCounting/StrictPtr.hpp.html b/ACE/contrib/utility/Documentation/ReferenceCounting/StrictPtr.hpp.html
deleted file mode 100644
index 13211b6e3c7..00000000000
--- a/ACE/contrib/utility/Documentation/ReferenceCounting/StrictPtr.hpp.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-StrictPtr.hpp</title>
-<link rel="stylesheet" href="../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/ReferenceCounting/StrictPtr.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>ReferenceCounting
- </span><span class=special>{
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=keyword>class </span><span class=identifier>StrictPtr
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>typedef
- </span><span class=identifier>T
- </span><span class=identifier>Type</span><span class=special>;
-
- </span><span class=keyword>class </span><span class=identifier>NotInitialized_ </span><span class=special>{};
- </span><span class=keyword>typedef
- </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Compound</span><span class=special>&lt;</span><span class=identifier>NotInitialized_</span><span class=special>, </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>DescriptiveException</span><span class=special>&gt;
- </span><span class=identifier>NotInitialized</span><span class=special>;
-
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=comment>// c-tor's
-
- </span><span class=identifier>StrictPtr </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>explicit
- </span><span class=identifier>StrictPtr </span><span class=special>(</span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>ptr</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>StrictPtr </span><span class=special>(</span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s_ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>Other</span><span class=special>&gt;
- </span><span class=identifier>StrictPtr </span><span class=special>(</span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>Other</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s_ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
- </span><span class=comment>// d-tor
-
- </span><span class=special>~</span><span class=identifier>StrictPtr </span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=comment>// assignment &amp; copy-assignment operators
-
- </span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt;&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>ptr</span><span class=special>) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt;&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s_ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>Other</span><span class=special>&gt;
- </span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>Type</span><span class=special>&gt;&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>Other</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s_ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=comment>// conversions
-
- // Note: implicit conversion (operator Type* ()) is not supported.
-
- // comparison
-
- </span><span class=keyword>bool
- </span><span class=keyword>operator</span><span class=special>== </span><span class=special>(</span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>other</span><span class=special>) </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>bool
- </span><span class=keyword>operator</span><span class=special>!= </span><span class=special>(</span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>other</span><span class=special>) </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=comment>// accessors
-
- </span><span class=identifier>Type</span><span class=special>*
- </span><span class=keyword>operator</span><span class=special>-&gt; </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>NotInitialized</span><span class=special>);
-
- </span><span class=identifier>Type</span><span class=special>*
- </span><span class=identifier>in </span><span class=special>() </span><span class=keyword>const </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>Type</span><span class=special>*
- </span><span class=identifier>retn</span><span class=special>() </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>private</span><span class=special>:
- </span><span class=identifier>Type</span><span class=special>* </span><span class=identifier>ptr_</span><span class=special>;
- </span><span class=special>};
-
- </span><span class=comment>// Specialization of add_ref function for StrictPtr&lt;T&gt;
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>T</span><span class=special>&gt;
- </span><span class=identifier>T</span><span class=special>*
- </span><span class=identifier>add_ref </span><span class=special>(</span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>T</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>ptr</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
-
- </span><span class=comment>// Dynamic type conversion function for StrictPtr's
- </span><span class=keyword>template </span><span class=special>&lt;</span><span class=keyword>typename </span><span class=identifier>D</span><span class=special>, </span><span class=keyword>typename </span><span class=identifier>S</span><span class=special>&gt;
- </span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>D</span><span class=special>&gt;
- </span><span class=identifier>strict_cast </span><span class=special>(</span><span class=identifier>StrictPtr</span><span class=special>&lt;</span><span class=identifier>S</span><span class=special>&gt; </span><span class=keyword>const</span><span class=special>&amp; </span><span class=identifier>s</span><span class=special>)
- </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>, </span><span class=identifier>Interface</span><span class=special>::</span><span class=identifier>SystemException</span><span class=special>);
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ReferenceCounting/index.xhtml b/ACE/contrib/utility/Documentation/ReferenceCounting/index.xhtml
deleted file mode 100644
index 43ead969460..00000000000
--- a/ACE/contrib/utility/Documentation/ReferenceCounting/index.xhtml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/ReferenceCounting/index.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Reference Counting Library</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="C++,utility,reference,counting"/>
- <meta name="description" content="Reference Counting Library"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-
-<p>Reference Counting Library provides basic building blocks for
-reference-countable objects. Implementation is modeled after CORBA
-IDL-to-C++ mapping's reference-countable objects and significantly
-extended.</p>
-
-
-<h1>Definitions</h1>
-
-<p>Below are the definitions of the key classes:</p>
-
-<ul class="menu">
- <li><a href="Interface.hpp.html">ReferenceCounting::Interface</a></li>
- <li><a href="DefaultImpl.hpp.html">ReferenceCounting::DefaultImpl</a></li>
- <li><a href="SmartPtr.hpp.html">ReferenceCounting::SmartPtr</a></li>
- <li><a href="StrictPtr.hpp.html">ReferenceCounting::StrictPtr</a></li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/ReleaseProcess b/ACE/contrib/utility/Documentation/ReleaseProcess
deleted file mode 100644
index 9b42a762902..00000000000
--- a/ACE/contrib/utility/Documentation/ReleaseProcess
+++ /dev/null
@@ -1,13 +0,0 @@
-1) go thru '@@' in source code
-
-2) build & test with g++ and cxx
-
-3) update news pages
-
-4) spellcheck/tidy/validate all xhtml files
-
-5) copy Utility to Utility-x.y.z; make documentation
-
-6) go manually thru all documentation pages with lynx & gui ua
-
-$Id$
diff --git a/ACE/contrib/utility/Documentation/Style/CXX.css b/ACE/contrib/utility/Documentation/Style/CXX.css
deleted file mode 100644
index 49bf0f34e51..00000000000
--- a/ACE/contrib/utility/Documentation/Style/CXX.css
+++ /dev/null
@@ -1,9 +0,0 @@
-pre { BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: gray 1pt solid; DISPLAY: block; PADDING-LEFT: 2pt; PADDING-BOTTOM: 2pt; MARGIN-LEFT: 32pt; BORDER-LEFT: gray 1pt solid; MARGIN-RIGHT: 32pt; PADDING-TOP: 2pt; BORDER-BOTTOM: gray 1pt solid; FONT-FAMILY: "Courier New", Courier, mono; background-color: #EEEEEE; font-size: small}
-.keyword { color: #000099}
-.identifier { }
-.comment { color: #990000}
-.special { color: #800040}
-.preprocessor { color: #006600}
-.string { color: #666666}
-.number { color: #666666}
-/* $Id$ */
diff --git a/ACE/contrib/utility/Documentation/Style/CXX_Blue.css b/ACE/contrib/utility/Documentation/Style/CXX_Blue.css
deleted file mode 100644
index 52b58d54119..00000000000
--- a/ACE/contrib/utility/Documentation/Style/CXX_Blue.css
+++ /dev/null
@@ -1,25 +0,0 @@
-pre {
- BORDER-RIGHT: gray 1pt solid;
- PADDING-RIGHT: 2pt;
- BORDER-TOP: gray 1pt solid;
- DISPLAY: block;
- PADDING-LEFT: 2pt;
- PADDING-BOTTOM: 2pt;
- MARGIN-LEFT: 32pt;
- BORDER-LEFT: gray 1pt solid;
- MARGIN-RIGHT: 32pt;
- PADDING-TOP: 2pt;
- BORDER-BOTTOM: gray 1pt solid;
- FONT-FAMILY: "Courier New", Courier, mono; background-color: #191970;
- font-size: small
-}
-
-.keyword { font-weight: bold; color: #afeeee}
-.identifier { color: #98fb98 }
-.comment { color: #add8e6}
-.special { color: #bebebe}
-.preprocessor { color: #7fffd4}
-.string { color: #87cefa}
-.number { color: #bebebe}
-.literal { color: #FF0000}
-/* $Id$ */
diff --git a/ACE/contrib/utility/Documentation/Style/Default.css b/ACE/contrib/utility/Documentation/Style/Default.css
deleted file mode 100644
index 2c90197f340..00000000000
--- a/ACE/contrib/utility/Documentation/Style/Default.css
+++ /dev/null
@@ -1,45 +0,0 @@
-body {
- font-family : sans-serif;
-
- color : black;
- background : white;
-
- max-width : 40em;
- padding : 2em 2em 2em 3em;
- margin : 0;
-}
-
-h1, h2, h3, h4, h5, h6 {
- font-family : sans-serif;
- font-weight : 500;
-}
-
-h1 { font-size : 170%; }
-h2 { font-size : 145%; }
-h3 { font-size : 125%; }
-h4 { font-size : 110%; }
-h5 { font-size : 106%; }
-h6 { font-size : 100%; }
-
-p.indent {
- margin-left : 1.5em;
-}
-
-/* list of links */
-
-ul.menu {
- list-style-type : none;
-}
-
-ul.menu li {
- padding-top : 0.3em;
- padding-bottom : 0.3em;
-}
-
-/* */
-
-ul.multiline li {
- padding-top : 0.4em;
- padding-bottom : 0.4em;
-}
-/* $Id$ */
diff --git a/ACE/contrib/utility/Documentation/Synch/Makefile b/ACE/contrib/utility/Documentation/Synch/Makefile
deleted file mode 100644
index a35e28b530d..00000000000
--- a/ACE/contrib/utility/Documentation/Synch/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Documentation/Synch/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := Policy
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/Synch/News.xhtml b/ACE/contrib/utility/Documentation/Synch/News.xhtml
deleted file mode 100644
index f7bf4f01285..00000000000
--- a/ACE/contrib/utility/Documentation/Synch/News.xhtml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/Synch/News.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Synchronization Library News</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="news,C++,synchronization,policy,thread"/>
- <meta name="description" content="Synchronization Library News"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>1.1.0</h1>
-<ul class="multiline">
- <li>New regression test coverage.</li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/Synch/Policy/Makefile b/ACE/contrib/utility/Documentation/Synch/Policy/Makefile
deleted file mode 100644
index 175d207b06e..00000000000
--- a/ACE/contrib/utility/Documentation/Synch/Policy/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# file : Documentation/Synch/Policy/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Documentation.pre.rules)
-
-vpath %.hpp $(root)/Utility/Synch/Policy
-
-doc_translation_units := Null.hpp
-
-DOC_FLAGS := --strip-preprocessor -css $(root)/Documentation/Style/CXX.css
-
-$(call include, $(root)/BuildRules/Documentation.post.rules)
-
-# $Id$
diff --git a/ACE/contrib/utility/Documentation/Synch/Policy/Null.hpp.html b/ACE/contrib/utility/Documentation/Synch/Policy/Null.hpp.html
deleted file mode 100644
index 21173a5951b..00000000000
--- a/ACE/contrib/utility/Documentation/Synch/Policy/Null.hpp.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<html>
-<head>
-<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter -->
-<title>
-Null.hpp</title>
-<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head>
-<body>
-<pre>
-<span class=comment>// file : Utility/Synch/Policy/Null.hpp
-// author : Boris Kolpackov &lt;boris@kolpackov.net&gt;
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-</span><span class=keyword>namespace </span><span class=identifier>Utility
-</span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>Synch
- </span><span class=special>{
- </span><span class=keyword>namespace </span><span class=identifier>Policy
- </span><span class=special>{
-
- </span><span class=keyword>class </span><span class=identifier>NullMutex
- </span><span class=special>{
- </span><span class=special>};
-
- </span><span class=keyword>class </span><span class=identifier>NullGuard
- </span><span class=special>{
- </span><span class=keyword>public</span><span class=special>:
- </span><span class=keyword>explicit
- </span><span class=identifier>NullGuard </span><span class=special>(</span><span class=identifier>NullMutex</span><span class=special>&amp;) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=keyword>private</span><span class=special>:
- </span><span class=identifier>NullGuard </span><span class=special>(</span><span class=identifier>NullGuard </span><span class=keyword>const</span><span class=special>&amp;) </span><span class=keyword>throw </span><span class=special>();
-
- </span><span class=identifier>NullGuard</span><span class=special>&amp;
- </span><span class=keyword>operator</span><span class=special>= </span><span class=special>(</span><span class=identifier>NullGuard </span><span class=keyword>const</span><span class=special>&amp;) </span><span class=keyword>throw </span><span class=special>();
- </span><span class=special>};
-
- </span><span class=keyword>struct </span><span class=identifier>Null
- </span><span class=special>{
- </span><span class=keyword>typedef
- </span><span class=identifier>NullMutex
- </span><span class=identifier>Mutex</span><span class=special>;
-
- </span><span class=keyword>typedef
- </span><span class=identifier>NullGuard
- </span><span class=identifier>ReadGuard</span><span class=special>;
-
- </span><span class=keyword>typedef
- </span><span class=identifier>NullGuard
- </span><span class=identifier>WriteGuard</span><span class=special>;
- </span><span class=special>};
- </span><span class=special>}
- </span><span class=special>}
-</span><span class=special>}
-
-</span></pre>
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/Synch/index.xhtml b/ACE/contrib/utility/Documentation/Synch/index.xhtml
deleted file mode 100644
index dd4a685ccc0..00000000000
--- a/ACE/contrib/utility/Documentation/Synch/index.xhtml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/Synch/index.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Synchronization Library</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="C++,utility,thread,synchronization,policy"/>
- <meta name="description" content="Synchronization Library"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-
-<p>
-Synchronization library provides a compile-time policy-based configurable
-facility of selecting synchronization mechanisms. For now there is only
-no-op synchronization policy provided which is suitable only for
-single-threaded applications. However it shouldn't be difficult to provide
-a wrapper policy for synchronization mechanisms used in a particular project.
-</p>
-
-<h1>Definitions</h1>
-<p>Below are the definitions of the key classes:</p>
-
-<ul class="menu">
- <li><a href="Policy/Null.hpp.html">Synch::Policy::Null</a></li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/TODO b/ACE/contrib/utility/Documentation/TODO
deleted file mode 100644
index 984a0cddb56..00000000000
--- a/ACE/contrib/utility/Documentation/TODO
+++ /dev/null
@@ -1,53 +0,0 @@
-
-New features/changes
----------------------------------------------------------------------------
-
-@@ DefaultImpl<> looks ugly. Is there a way to just write DefaultImpl
- (or, perhaps some other name)? Maybe also rename Interface to Object
- (will be consistent with Introspection::Object).
-
-@@ Abort facility
-
-@@ Maybe rename converter to convert
-
-@@ Maybe make reference counting object implement Introspection. However it
- will introduce inter-library dependency. Nop, this is a bad idea.
-
-@@ Maybe move <library>.hpp one level up to Utility/.
-
-@@ Go thru C++Templates chapter on RefCounting and SmartPointers and see if
- anything can be applied?
-
-@@ Examples for many features are missing
-
-@@ Introspection::TypeInfo should use set instead of vector for bases.
-
-
-Documentation
----------------------------------------------------------------------------
-
-@@ code in <pre> does not look nice in lynx (see Hetero/index.html for example)
-
-
-Building environment
----------------------------------------------------------------------------
-
-@@ Should probably make lib rules to build library when target is test (try to
- run 'make clean && make test' from Utility root).
-
-@@ Makefile variable names inconsistency (e.g. cxx_translation_units and CXX_PREPROCESS_FLAGS)
-
-%% Rename Config to Build or rather BuildRules?
-
-@@ Compiler-specific stuff is left after make clean. Potentially dangerous
- idea would be to remove everything except known files
-
-@@ Multi-compiler configuration
-
-@@ Building library with sources in sub-directories.
-
-
-Pre-release fixes
----------------------------------------------------------------------------
-
-$Id$
diff --git a/ACE/contrib/utility/Documentation/Template.xhtml b/ACE/contrib/utility/Documentation/Template.xhtml
deleted file mode 100644
index 41c9857dabf..00000000000
--- a/ACE/contrib/utility/Documentation/Template.xhtml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>@@</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="@@"/>
- <meta name="description" content="@@"/>
-
- <link rel="stylesheet" type="text/css" href="../Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>@@</h1>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount b/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount
deleted file mode 100644
index be8b252d4de..00000000000
--- a/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount
+++ /dev/null
@@ -1,95 +0,0 @@
-From: Gianni Mariani <gi2nospam@mariani.ws>
-Date: 26 Jul 2003 04:52:43 GMT
-Newsgroups: comp.lang.c++
-Subject: Re: enum count
-
-Clive wrote:
-> If you have an enum, is there any way during execution to find the number of
-> values in the enum?
-> Say I have,
->
-> enum great { five, ten, fifteen };
->
-> How could I get the number 3 from that?
->
->
-
-replace the enums with objects that report themselves to a registry.
-
-
-I have done it in the past using a template ...
-
-templace <typename base>
-class ExposedEnum : public base
-{
- public:
- int enum_val;
- ExposedEnum( int number )
- : enum_val( number )
- {
- ExposedEnumRegister<base>::Register( *this );
- }
-
- ExposedEnum( int number )
- : enum_val( ExposedEnumRegister<base>::GetNextNumber() )
- {
- ExposedEnumRegister<base>::Register( *this );
- }
-
-
-
-// some more stuff ...
-
- operator int () const
- {
- return enum_val;
- }
-
- explicit ExposedEnum( const ExposedEnum & foo );
-};
-
-
-template <typename base>
-class ExposedEnumRegister
-{
-
- static int GetNextNumber ....
-
- static void Register ....
-
- static int Count ....
-
-}
-
-
-Now you can forward declare them...
-
-extern ExposedEnum< great > five;
-
-extern ExposedEnum< great > ten;
-
-extern ExposedEnum< great > fifteen;
-
-
-
-
-In a cpp file you can instantiate them.
-
-ExposedEnum< great > five( 5 );
-
-ExposedEnum< great > ten( 10 );
-
-ExposedEnum< great > fifteen;
-
-
-Now, if you want to know how many you have :
-
-ExposedEnumRegister< great >::Count();
-
-
-
-Disclaimer - it's an outline only, yes it's incomplete.
-
-G
-
-$Id$
diff --git a/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount2 b/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount2
deleted file mode 100644
index d23e790b6d4..00000000000
--- a/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount2
+++ /dev/null
@@ -1,17 +0,0 @@
-From: Alexander Terekhov <terekhov@web.de>
-Date: Sat, 26 Jul 2003 19:17:52 +0200
-Newsgroups: comp.lang.c++
-Subject: Re: enum count
-
-
-Steve Pinard wrote:
->
-> Wouldn't that be nice? And wouldn't it be nice to be able to get the
-> strings "five", "ten", and "fifteen" too?
-
-http://lcgapp.cern.ch/project/architecture/XTI_accu.pdf
-
-regards,
-alexander.
-
-$Id$
diff --git a/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumInfo b/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumInfo
deleted file mode 100644
index e59a27c0820..00000000000
--- a/ACE/contrib/utility/Documentation/Thoughts/Enum/EnumInfo
+++ /dev/null
@@ -1,45 +0,0 @@
-From: "Klaus Eichner" <klaus_gb@yahoo.com>
-Date: Sat, 26 Jul 2003 14:53:23 +0100
-Newsgroups: comp.lang.c++
-Subject: Re: enum count
-
-"Clive" <clive@clive.clive> wrote in message
-news:3f21e5cc$0$23611$5a62ac22@freenews.iinet.net.au...
-> If you have an enum, is there any way during execution to find the number
-of
-> values in the enum?
-> Say I have,
->
-> enum great { five, ten, fifteen };
->
-> How could I get the number 3 from that?
-
-You could get the number 3 from 'great' with your own, user-defined
-'Enum_Info' template:
-
-cout << "The number of values in enum great is "
- << Enum_Info<great>::number_of_elements
- << endl;
-
-The 'Enum_Info' template is defined as follows.
-Suppose you have the following enums:
-
-enum great { five, ten, fifteen };
-enum greater { none, one, fourtytwo, fourtythree, fourtyfour };
-enum even_greater { minusone, minustwo, minusthree, minusfour, minusfive,
-minussix, minusseven };
-
-You could build a template class 'Enum_Info' which uses specialisation to
-register the number of elements in each enum
-
-template <class T> class Enum_Info { };
-template <> class Enum_Info<great> { static const int number_of_elements =
-3; };
-template <> class Enum_Info<greater> { static const int number_of_elements =
-5; };
-template <> class Enum_Info<even_greater> { static const int
-number_of_elements = 7; };
-
-
-
-$Id$
diff --git a/ACE/contrib/utility/Documentation/index.xhtml b/ACE/contrib/utility/Documentation/index.xhtml
deleted file mode 100644
index 87e82d228dc..00000000000
--- a/ACE/contrib/utility/Documentation/index.xhtml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
-<!--
-
-file : Documentation/index.xhtml
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2002-2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<head>
-
- <title>Utility Library</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="C++,utility,exception,handling,model,reference,counting,thread,synchronization"/>
- <meta name="description" content="Utility Library"/>
-
- <link rel="stylesheet" type="text/css" href="Style/Default.css"/>
-
-</head>
-
-<body>
-
-<h1>Introduction</h1>
-<p>
-Utility library is a place for generic C++ facilities that I found useful
-in more than one project.
-
-Here you can download the
-<a href="http://kolpackov.net/projects/Utility/Download.xhtml">
-latest version</a>.
-
-Utility library is a
-<a href="http://gnu.org/philosophy/categories.html#Non-CopyleftedFreeSoftware">
-non-copylefted free software</a> with zlib-like
-<a href="http://kolpackov.net/license.html">license</a>.
-
-For changes and new features check out <a href="News.xhtml">News section</a>.
-</p>
-
-<h1>Supported Platforms</h1>
-
-<p>
-For the time being I test Utility library with at least GNU G++ on Linux and
-Compaq (Digital) C++ (-std strict_ansi) on Tru64 UNIX. It also should compile
-and work fine with any decent C++ compiler. Also note that I don't have any
-plans to bloat source code in attempt to support broken compilers.</p>
-
-<h1>Building</h1>
-
-<p>
-Utility library mostly consists of header-only sub-libraries so you don't
-actually need to build anything to start using it. See <a href="Build.xhtml">
-Building Utility Library</a> section for more information.</p>
-
-<h1>Content</h1>
-
-<p>Utility Library consists of the following sub-libraries:</p>
-
-<ul class="menu">
- <li><a href="CommandLine/index.xhtml">Command Line Processing</a></li>
-
- <li><a href="ExH/index.xhtml">Exception Handling</a></li>
-
- <li><a href="Hetero/index.xhtml">Heterogeneous Container</a></li>
-
- <li><a href="Introspection/index.xhtml">Introspection</a></li>
-
- <li><a href="ReferenceCounting/index.xhtml">Reference Counting</a></li>
-
- <li><a href="Synch/index.xhtml">Synchronization</a></li>
-</ul>
-
-</body>
-</html>
-<!-- $Id$ -->
diff --git a/ACE/contrib/utility/Example/CommandLine/Foo/command.cpp b/ACE/contrib/utility/Example/CommandLine/Foo/command.cpp
deleted file mode 100644
index db829909f37..00000000000
--- a/ACE/contrib/utility/Example/CommandLine/Foo/command.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include <string>
-#include <iostream>
-
-using std::cerr;
-using std::endl;
-
-class Command
-{
-public:
- enum Value
- {
- HELP = 0,
- VERSION,
- DEFAULT
- };
-
- Command (Value v = Command::DEFAULT)
- : v_ (v)
- {
- }
-
- operator Value () const
- {
- return v_;
- }
-
- friend std::ostream&
- operator<< (std::ostream& os, Command c);
-
- friend std::istream&
- operator>> (std::istream& is, Command& c);
-
-private:
- Value v_;
- static char* labels_[];
-};
-
-char* Command::labels_[] = {"help", "version", "default"};
-
-
-std::ostream&
-operator<< (std::ostream& os, Command c)
-{
- return os << Command::labels_[c.v_];
-}
-
-std::istream&
-operator>> (std::istream& is, Command& c)
-{
- std::string s;
- is >> s;
- if (is)
- {
- if (s == Command::labels_[Command::HELP]) c.v_ = Command::HELP;
- else if (s == Command::labels_[Command::VERSION]) c.v_ = Command::VERSION;
- else is.setstate (std::ios::failbit);
- }
- return is;
-}
-
-int
-main ()
-{
- Command c = Command::HELP;
-
- c = Command::DEFAULT;
-
- Command c1 (Command::HELP);
-
- c = c1;
-
- cerr << c << endl;
-
- switch (c)
- {
- case Command::HELP:
- {
- cerr << "iiihuuu!!!" << endl;
- }
- }
-
- std::cin >> c1;
- if (std::cin) cerr << c1 << endl;
- else cerr << "*failed" << endl;
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/CommandLine/Foo/foo.cpp b/ACE/contrib/utility/Example/CommandLine/Foo/foo.cpp
deleted file mode 100644
index 550d1f6f170..00000000000
--- a/ACE/contrib/utility/Example/CommandLine/Foo/foo.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-#include <typeinfo>
-#include <string>
-#include <iostream>
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-namespace CommandLine
-{
- struct Parser
- {
- };
-}
-
-using std::string;
-using std::cerr;
-using std::endl;
-
-using namespace CommandLine;
-
-class Command
-{
-public:
- enum Value
- {
- HELP,
- VERSION,
- DEFAULT
- };
-
- Command (Value v = Command::DEFAULT)
- : v_ (v)
- {
- }
-
- operator Value () const
- {
- return v_;
- }
-
-private:
- Value v_;
-};
-
-
-int
-version ();
-
-int
-help (int argc, char* argv[]);
-
-int
-main (int argc, char* argv[])
-{
-
- // Step 1: determine command
- //
- // * there is usually one command
- // * command can be optional
- // * command usually takes up one argument
- //
-
- CommandParser<Command> cp;
-
- switch (cp.parse (argc, argv))
- {
- case Command::VERSION:
- {
- return version ();
- }
- case Command::HELP:
- {
- return help (argc, argv);
- }
- }
-
- // Step 2: parse options
- //
- // * options are usually optional
- // * options are usually position-independant
- // * options usually do not repeat
- // * options can take up more than one argument
- //
-
- OptionMap om;
-
- CompositeParser op;
-
- op.add (OptionParser<string> ("string", "--string", "-s"));
- op.add (OptionParser<unsigned long> ("number", "--number", "-n"));
-
- while (argc != 1 && !op.empty ())
- {
- om.insert (op.parse (argc, argv));
- }
-
- // Step 3: parse operands
- //
- // * operands usually position-dependant
- // * operand usually take up one argument
- //
-
- OperandParser<string> odp;
-
- string str = odp.parse (argc, argv);
-
- unsigned long num = 0;
-
- if (argc != 1)
- {
- OperandParser<unsigned long> op;
- num = op.parse (argc, argv);
- }
-
- string s = om.count ("string") ? om["string"] : "default";
- unsigned long l = om["number"];
-
- // om.at ()
- // om.get ()
- // om.resolve ()
- // om.option ()
- // om.value ()
-
- cerr << "opreation settings are:" << endl << endl
- << "option string : " << om.get<string> ("string", "default") << endl
- << "option number : " << om.get ("number", 10UL) << endl
- << "operand string : " << str << endl
- << "operand number : " << num << endl;
-}
-
-
-//
-//
-//
-int
-version ()
-{
- cerr << "foo 1.0" << endl;
- return 0;
-}
-
-
-//
-//
-//
-int
-help (int argc, char* argv[])
-{
- Command subject;
-
- if (argc != 1)
- {
- OperandParser<Command> op;
- subject = op.parse (argc, argv);
- }
-
- switch (subject)
- {
- case Command::HELP:
- {
- cerr << "foo help [<command>]" << endl << endl
- << "\t If <command> is specified then print extended help" << endl
- << "\t information for specified command. Otherwise print" << endl
- << "\t general usage information." << endl;
- break;
- }
- case Command::VERSION:
- {
- cerr << "foo version" << endl << endl
- << "\t Print version information." << endl;
- break;
- }
- default:
- {
- cerr << "foo version" << endl
- << "foo help [<command>]" << endl
- << "foo [-s|--string <str>] [-n|--number <num>] <str> [<num>]"
- << endl;
- break;
- }
- }
-
- return 0;
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/ExH/BadCast/Makefile b/ACE/contrib/utility/Example/ExH/BadCast/Makefile
deleted file mode 100644
index 9963d9708a1..00000000000
--- a/ACE/contrib/utility/Example/ExH/BadCast/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Example/ExH/BadCast/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := bad_cast.cpp
-
-module_base := bad_cast
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/ExH/BadCast/bad_cast.cpp b/ACE/contrib/utility/Example/ExH/BadCast/bad_cast.cpp
deleted file mode 100644
index 699add03047..00000000000
--- a/ACE/contrib/utility/Example/ExH/BadCast/bad_cast.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// file : Example/ExH/BadCast/bad_cast.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/ExH/System/Exception.hpp"
-
-#include <iostream>
-
-using std::cerr;
-using std::endl;
-
-
-struct A
-{
- virtual
- ~A() {}
-};
-
-struct B
-{
- void
- foo () {}
-};
-
-void
-foo ()
-{
- A a;
-
- A& ar (a);
-
- B& br (dynamic_cast<B&> (ar));
-
- br.foo ();
-}
-
-int
-main ()
-{
- try
- {
- foo ();
- }
- catch (Utility::ExH::System::Exception const& ex)
- {
- cerr << "Caught Utility::ExH::System::Exception: "
- << ex.what ()
- << endl;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/ExH/Compound/Makefile b/ACE/contrib/utility/Example/ExH/Compound/Makefile
deleted file mode 100644
index 8bd588587d5..00000000000
--- a/ACE/contrib/utility/Example/ExH/Compound/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Example/ExH/Compound/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := compound.cpp
-
-module_base := compound
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/ExH/Compound/compound.cpp b/ACE/contrib/utility/Example/ExH/Compound/compound.cpp
deleted file mode 100644
index e9f585ce6d3..00000000000
--- a/ACE/contrib/utility/Example/ExH/Compound/compound.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-// file : Example/ExH/Compound/compound.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/ExH/Compound.hpp"
-#include "Utility/ExH/System/Exception.hpp"
-#include "Utility/ExH/Logic/DescriptiveException.hpp"
-
-// Include some helper converters to allow exception initialization
-// with std::ostringstream
-
-#include "Utility/ExH/StringStreamConverter.hpp"
-
-#include <iostream>
-
-using std::cerr;
-using std::endl;
-using std::string;
-using std::ostringstream;
-
-using namespace Utility::ExH;
-
-// Here are our components
-
-class Base
-{
-public:
-
- //
- // Exception definitions.
- //
-
- // Base logic exception class for component.
- class Exception_ {};
- typedef
- Compound <Exception_, Logic::DescriptiveException>
- Exception;
-
- class InvalidArgument_ {};
- typedef
- Compound <InvalidArgument_, Exception>
- InvalidArgument;
-
- class NotInitialized_ {};
- typedef
- Compound <NotInitialized_, Exception>
- NotInitialized;
-
-public:
-
- void
- foo (char const* str)
- {
- // This is just an example.
-
- if (str == 0)
- {
- throw InvalidArgument ("Base::foo: first parameter is zero.");
- }
- else
- {
- ostringstream ostr;
- ostr << "Base::foo [this = " << this << "]: object is not initialized.";
-
- throw NotInitialized (ostr);
- }
- }
-
-
- // We don't know what implementation may decide to throw so
- // we allow to throw System exception and any logic exception
- // derived from Base::Exception
- virtual void
- vfoo () = 0;
-};
-
-class Derived : public Base
-{
-public:
-
- // Define some Derived-specific logic exception.
- class NotImplemented_ {};
- typedef
- Compound <NotImplemented_, Exception>
- NotImplemented;
-
-public:
- virtual void
- vfoo ()
- {
- std::string str ("Derived::vfoo: not implemented yet.");
- throw NotImplemented (str);
- }
-};
-
-int
-main ()
-{
- try
- {
-
- Derived d;
- Base* pb (&d);
-
- // We can use generic handler.
- try
- {
- pb->vfoo ();
- }
- catch (Base::Exception const& ex)
- {
- cerr << "Caught Base::Exception: " << ex.what () << endl;
- }
-
-
- // Or use more precise control.
- try
- {
- pb->foo ("hello");
- }
- catch (Base::NotInitialized const& ex)
- {
- cerr << "Caught Base::NotInitialized: " << ex.what () << endl;
- }
-
- // Or use application-level handler.
- pb->foo (0);
-
- }
- catch (Logic::Exception const& ex)
- {
- cerr << "Caught Logic::Exception: " << ex.what () << endl;
- }
- catch (...)
- {
- cerr << "Caught unknown exception using catch-all handler" << endl;
- return -1;
- }
-
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/ExH/HelloWorld/Makefile b/ACE/contrib/utility/Example/ExH/HelloWorld/Makefile
deleted file mode 100644
index 93debef0e7c..00000000000
--- a/ACE/contrib/utility/Example/ExH/HelloWorld/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Example/ExH/HelloWorld/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := hello_world.cpp
-
-module_base := hello_world
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/ExH/HelloWorld/hello_world.cpp b/ACE/contrib/utility/Example/ExH/HelloWorld/hello_world.cpp
deleted file mode 100644
index 9499bf09fe1..00000000000
--- a/ACE/contrib/utility/Example/ExH/HelloWorld/hello_world.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-// file : Example/ExH/HelloWorld/hello_world.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include <cstdlib> // for std::abort ()
-
-#include <string>
-#include <iostream>
-
-#include "Utility/ExH/System/Exception.hpp"
-#include "Utility/ExH/Logic/Exception.hpp"
-
-using std::cerr;
-using std::cout;
-using std::endl;
-
-using namespace Utility;
-
-class Application
-{
-public:
- class Exception : public ExH::Logic::Exception {};
-
- // Hint: you may want to try again...
- class FeelingDizzy : public Exception {};
-
- class InvalidArg : public Exception {};
-
-public:
- Application ()
- : // The std::string c-tor may throw any kind of exceptions besides
- // quite possible std::bad_alloc.
- greeting_ ("Hello, world!")
- {
- }
-
- Application (char const * greeting)
- : greeting_ (greeting == 0 ? "" : greeting)
- {
- if (greeting == 0) throw InvalidArg ();
- }
-
-public:
-
- void
- run ()
- {
- static unsigned int dizzy_count (0);
-
- if (dizzy_count++ < 5) throw FeelingDizzy ();
-
- // The next line can throw full bucket of exceptions
- // not to mention ios_base::failure.
- cout << greeting_.c_str () << endl;
- }
-
-private:
-
- std::string greeting_;
-};
-
-
-
-int
-main ()
-{
- // This is a catch-all layer that should be in use only
- // if we are really in trouble.
- try
- {
- // This is a catch-system layer. Here we will catch exceptions like
- // bad_alloc, etc. If we get here it means that nobody wanted/managed
- // to recover from this kind of errors.
- try
- {
- // This is a catch-logic layer. If we get here it usually
- // indicates an application logic error.
- try
- {
-
- // Ok, here we go about our application logic.
- try
- {
- for (int i = 0; i < 10; i++)
- {
- try
- {
- Application app ("Hi dude!");
- app.run ();
- break;
- }
- catch (Application::FeelingDizzy const& )
- {
- if (i == 9)
- {
- cerr << "Given up!" << endl;
- return -1;
- }
- else
- {
- cerr << "Application is feeling dizzy. Trying again..."
- << endl;
- }
- }
- }
- }
- catch (Application::InvalidArg const& )
- {
- cerr << "Cought Application::InvalidArg : ...hmm... strange!"
- << endl;
- return -1;
- }
- }
- catch (ExH::Logic::Exception const& e)
- {
- cerr << "Caught Logic::Exception : " << e.what () << endl;
- return -1;
- }
- }
- catch (const ExH::System::Exception& e)
- {
- cerr << "Caught System::Exception : " << e.what () << endl;
- return -1;
- }
- catch (...)
- {
- cerr << "Caught unknown exception using catch-all handler. " << endl;
- return -1;
- }
- }
- catch (...)
- {
- // We get here in cases of some hard failure. For example when handling
- // exception, operator << throws another exception. Usually application
- // cannot handle such failures itself so we just propagate it futher.
- std::abort ();
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/ExH/LogicToSystem/Makefile b/ACE/contrib/utility/Example/ExH/LogicToSystem/Makefile
deleted file mode 100644
index 789413c0a3c..00000000000
--- a/ACE/contrib/utility/Example/ExH/LogicToSystem/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Example/ExH/LogicToSystem/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := logic_to_system.cpp
-
-module_base := logic_to_system
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/ExH/LogicToSystem/logic_to_system.cpp b/ACE/contrib/utility/Example/ExH/LogicToSystem/logic_to_system.cpp
deleted file mode 100644
index 6f718e9c694..00000000000
--- a/ACE/contrib/utility/Example/ExH/LogicToSystem/logic_to_system.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// file : Example/ExH/LogicToSystem/logic_to_system.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/ExH/System/Exception.hpp"
-#include "Utility/ExH/Logic/Exception.hpp"
-
-#include <iostream>
-
-using std::cerr;
-using std::endl;
-
-
-struct SubsystemA
-{
- class Exception : public Utility::ExH::Logic::Exception {};
-
- void
- foo ()
- {
- throw Exception ();
- }
-};
-
-
-struct SubsystemB
-{
- void
- foo ()
- {
- SubsystemA a;
- a.foo ();
-
- // Here SubsystemB is using SunsystemA but cannot (forgot, doesnt't
- // want to, doesn't know how to, etc - pick your favorite) handle
- // exception thrown by SubsystemA. As a result exception is
- // 'converted' to System::Exception.
- }
-};
-
-
-int
-main ()
-{
- try
- {
- SubsystemB b;
- b.foo ();
- }
- catch (Utility::ExH::System::Exception const& ex)
- {
- cerr << "Caught Utility::ExH::System::Exception: "
- << ex.what ()
- << endl;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/ExH/Makefile b/ACE/contrib/utility/Example/ExH/Makefile
deleted file mode 100644
index 99eb95cf62f..00000000000
--- a/ACE/contrib/utility/Example/ExH/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Example/ExH/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := BadCast Compound HelloWorld LogicToSystem
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/Hetero/Container/Makefile b/ACE/contrib/utility/Example/Hetero/Container/Makefile
deleted file mode 100644
index 29135f54046..00000000000
--- a/ACE/contrib/utility/Example/Hetero/Container/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Example/Hetero/Container/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := container.cpp
-
-module_base := container
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/Hetero/Container/container.cpp b/ACE/contrib/utility/Example/Hetero/Container/container.cpp
deleted file mode 100644
index 30bc05fc1b9..00000000000
--- a/ACE/contrib/utility/Example/Hetero/Container/container.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-// file : Example/Hetero/Container/container.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/Hetero/Container.hpp"
-#include "Utility/Hetero/TypedContainer.hpp"
-#include "Utility/Hetero/Vector.hpp"
-#include "Utility/Hetero/Shell.hpp"
-
-#include <string>
-#include <iostream>
-#include <algorithm>
-
-using std::string;
-
-using std::cout;
-using std::cerr;
-using std::endl;
-
-namespace Hetero = Utility::Hetero;
-
-using Hetero::Container;
-using Hetero::TypedContainer;
-using Hetero::TypeList;
-using Hetero::Shell;
-
-
-struct PrintCore
-{
- typedef void RetType;
-
- template <typename T>
- void
- operator() (T const& t)
- {
- cout << t << endl;
- }
-};
-
-typedef Shell<PrintCore> Print;
-
-void
-print (bool b)
-{
- cout << (b ? "T" : "NIL") << endl;
-}
-
-int
-main ()
-{
- try
- {
- Container a (10L);
- Container b (true);
- Container c (string ("hello"));
-
- string s = c + string (" world");
-
- long l = a + 20L;
-
- cout << s << "; " << l << endl;
-
- print (b);
-
- //
- //
- //
-
- typedef
- TypedContainer <TypeList<long, bool, string> >
- MyContainer;
-
- MyContainer x (true);
- MyContainer y (10L);
- MyContainer z (string ("hey dude"));
-
- Print print;
-
- print (x);
- print (y);
- print (z);
-
- //
- //
- //
-
- typedef
- Hetero::Vector<long, bool, string>
- vector;
-
- vector v;
- v.push_back (10L);
- v.push_back (true);
- v.push_back (false);
- v.push_back (string ("hey"));
-
- for (vector::iterator i = v.begin (); i != v.end (); i++)
- {
- print (*i);
- }
-
- std::for_each (v.begin (), v.end (), print);
- }
- catch (Hetero::Typing const&)
- {
- cerr << "typing error" << endl;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/Hetero/Makefile b/ACE/contrib/utility/Example/Hetero/Makefile
deleted file mode 100644
index a55938e9502..00000000000
--- a/ACE/contrib/utility/Example/Hetero/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Example/Hetero/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := Container
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.cpp b/ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.cpp
deleted file mode 100644
index 0dbc616483e..00000000000
--- a/ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// file : Hierarchy.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Hierarchy.hpp"
-
-// A
-//
-//
-
-using Introspection::Object;
-using Introspection::Access;
-
-namespace
-{
- TypeInfo
- a_init_ ()
- {
- TypeInfo ti (typeid (A));
- ti.add_base (Access::PUBLIC, true, Object::static_type_info ());
- return ti;
- }
-
- TypeInfo a_ (a_init_ ());
-}
-
-TypeInfo const& A::
-static_type_info ()
-{
- return a_;
-}
-
-// B
-//
-//
-
-namespace
-{
- TypeInfo
- b_init_ ()
- {
- TypeInfo ti (typeid (B));
- ti.add_base (Access::PUBLIC, false, A::static_type_info ());
- return ti;
- }
-
- TypeInfo b_ (b_init_ ());
-}
-
-TypeInfo const& B::
-static_type_info ()
-{
- return b_;
-}
-
-// C
-//
-//
-
-namespace
-{
- TypeInfo
- c_init_ ()
- {
- TypeInfo ti (typeid (C));
- ti.add_base (Access::PUBLIC, true, A::static_type_info ());
- return ti;
- }
-
- TypeInfo c_ (c_init_ ());
-}
-
-TypeInfo const& C::
-static_type_info ()
-{
- return c_;
-}
-
-
-// D
-//
-//
-
-namespace
-{
- TypeInfo
- d_init_ ()
- {
- TypeInfo ti (typeid (D));
- ti.add_base (Access::PUBLIC, true, B::static_type_info ());
- ti.add_base (Access::PUBLIC, false, C::static_type_info ());
- return ti;
- }
-
- TypeInfo d_ (d_init_ ());
-}
-
-TypeInfo const& D::
-static_type_info ()
-{
- return d_;
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.hpp b/ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.hpp
deleted file mode 100644
index 213e0593f6b..00000000000
--- a/ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// file : Example/Introspection/InheritanceTree/Hierarchy.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef HIERARCHY_HPP
-#define HIERARCHY_HPP
-
-#include "Utility/Introspection/Introspection.hpp"
-
-namespace Introspection = Utility::Introspection;
-
-using Introspection::TypeInfo;
-using Introspection::TypeId;
-
-struct A : virtual Introspection::Object
-{
- A ()
- {
- type_info (static_type_info ());
- }
-
- static TypeInfo const&
- static_type_info ();
-};
-
-struct B : virtual A
-{
- B ()
- {
- type_info (static_type_info ());
- }
-
- static TypeInfo const&
- static_type_info ();
-};
-
-struct C : virtual A
-{
- C ()
- {
- type_info (static_type_info ());
- }
-
- static TypeInfo const&
- static_type_info ();
-};
-
-struct D : virtual B, C
-{
- D ()
- {
- type_info (static_type_info ());
- }
-
- static TypeInfo const&
- static_type_info ();
-};
-
-#endif // HIERARCHY_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Example/Introspection/InheritanceTree/Makefile b/ACE/contrib/utility/Example/Introspection/InheritanceTree/Makefile
deleted file mode 100644
index 9b839c2111f..00000000000
--- a/ACE/contrib/utility/Example/Introspection/InheritanceTree/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# file : Example/Introspection/InheritanceTree/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := Hierarchy.cpp inheritance_tree.cpp
-
-module_base := inheritance_tree
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-CXX_LINK_LIBS += -L$(root)/Utility/Introspection -lIntrospection
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/Introspection/InheritanceTree/inheritance_tree.cpp b/ACE/contrib/utility/Example/Introspection/InheritanceTree/inheritance_tree.cpp
deleted file mode 100644
index 61f68ab6aa5..00000000000
--- a/ACE/contrib/utility/Example/Introspection/InheritanceTree/inheritance_tree.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// file : Example/Introspection/InheritanceTree/inheritance_tree.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-// Note: This example is by no means complete. In fact properly printing
-// arbitrary C++ inheritance tree is a non-trivial task. If you would like
-// to improve this example please feel free to send your results back ;-).
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Hierarchy.hpp"
-
-#include <set>
-#include <iostream>
-
-using std::endl;
-
-typedef
-std::set<TypeId>
-TypeIdSet;
-
-void
-print_inheritance_tree_core (std::ostream& os,
- TypeInfo const& ti,
- TypeIdSet& set)
-{
- bool nl = false;
-
- for (TypeInfo::BaseIterator i = ti.begin_base ();
- i != ti.end_base ();
- i++)
- {
- TypeId tid (i->type_info ().type_id ());
-
- if (set.find (tid) != set.end ()) continue;
-
- nl = true;
- set.insert (tid);
- print_inheritance_tree_core (os, i->type_info (), set);
- }
-
- if (nl) os << endl;
-
- os << ti.type_id () << " ";
-}
-
-void
-print_inheritance_tree (std::ostream& os, TypeInfo const& ti)
-{
- TypeIdSet set;
- print_inheritance_tree_core (os, ti, set);
- os << endl;
-}
-
-int
-main ()
-{
- B* b = new D;
-
- print_inheritance_tree (std::cout, b->type_info ());
-
- delete b;
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/Introspection/Makefile b/ACE/contrib/utility/Example/Introspection/Makefile
deleted file mode 100644
index 2dc0a1f809e..00000000000
--- a/ACE/contrib/utility/Example/Introspection/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Example/Introspection/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := InheritanceTree Traversal
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/Introspection/Traversal/Makefile b/ACE/contrib/utility/Example/Introspection/Traversal/Makefile
deleted file mode 100644
index c9b1a8da46a..00000000000
--- a/ACE/contrib/utility/Example/Introspection/Traversal/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# file : Example/Introspection/Traversal/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := SyntaxTree.cpp Traversal.cpp driver.cpp
-
-module_base := driver
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-CXX_LINK_LIBS += -L$(root)/Utility/Introspection -lIntrospection
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.cpp b/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.cpp
deleted file mode 100644
index 71115ff2b24..00000000000
--- a/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// file : Example/Introspection/Traversal/SyntaxTree.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "SyntaxTree.hpp"
-
-using namespace Utility::Introspection;
-
-namespace SyntaxTree
-{
-
- // Node
- //
- //
-
- namespace
- {
- TypeInfo
- node_init_ ()
- {
- TypeInfo ti (typeid (Node));
- ti.add_base (Access::PUBLIC, true, Object::static_type_info ());
- return ti;
- }
-
- TypeInfo node_ (node_init_ ());
- }
-
- TypeInfo const& Node::
- static_type_info () { return node_; }
-
-
- // Declaration
- //
- //
-
- namespace
- {
- TypeInfo
- declaration_init_ ()
- {
- TypeInfo ti (typeid (Declaration));
- ti.add_base (Access::PUBLIC, true, Node::static_type_info ());
- return ti;
- }
-
- TypeInfo declaration_ (declaration_init_ ());
- }
-
- TypeInfo const& Declaration::
- static_type_info () { return declaration_; }
-
-
- // Scope
- //
- //
-
- namespace
- {
- TypeInfo
- scope_init_ ()
- {
- TypeInfo ti (typeid (Scope));
- ti.add_base (Access::PUBLIC, true, Declaration::static_type_info ());
- return ti;
- }
-
- TypeInfo scope_ (scope_init_ ());
- }
-
- TypeInfo const& Scope::
- static_type_info () { return scope_; }
-
-
- // InterfaceDecl
- //
- //
-
- namespace
- {
- TypeInfo
- interface_decl_init_ ()
- {
- TypeInfo ti (typeid (InterfaceDecl));
- ti.add_base (Access::PUBLIC, true, Declaration::static_type_info ());
- return ti;
- }
-
- TypeInfo interface_decl_ (interface_decl_init_ ());
- }
-
- TypeInfo const& InterfaceDecl::
- static_type_info () { return interface_decl_; }
-
-
- // InterfaceDef
- //
- //
-
- namespace
- {
- TypeInfo
- interface_def_init_ ()
- {
- TypeInfo ti (typeid (InterfaceDef));
- ti.add_base (Access::PUBLIC, true, InterfaceDecl::static_type_info ());
- ti.add_base (Access::PUBLIC, true, Scope::static_type_info ());
- return ti;
- }
-
- TypeInfo interface_def_ (interface_def_init_ ());
- }
-
- TypeInfo const& InterfaceDef::
- static_type_info () { return interface_def_; }
-
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp b/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp
deleted file mode 100644
index 7bd824ce683..00000000000
--- a/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-// file : Example/Introspection/Traversal/SyntaxTree.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef SYNTAX_TREE_HPP
-#define SYNTAX_TREE_HPP
-
-#include <vector>
-
-#include "Utility/Introspection/Introspection.hpp"
-
-namespace SyntaxTree
-{
- //
- //
- //
-
- struct Node : virtual Utility::Introspection::Object
- {
- Node ()
- {
- type_info (static_type_info ());
- }
-
- static Utility::Introspection::TypeInfo const&
- static_type_info ();
- };
-
- //
- //
- //
-
- struct Declaration : virtual Node
- {
- Declaration ()
- {
- type_info (static_type_info ());
- }
-
- static Utility::Introspection::TypeInfo const&
- static_type_info ();
- };
-
- typedef
- std::vector<Declaration*>
- DeclarationList;
-
- //
- //
- //
- struct Scope : virtual Declaration
- {
- Scope ()
- {
- type_info (static_type_info ());
- }
-
- static Utility::Introspection::TypeInfo const&
- static_type_info ();
-
- DeclarationList content_;
- };
-
- //
- //
- //
- struct InterfaceDecl : virtual Declaration
- {
- InterfaceDecl ()
- {
- type_info (static_type_info ());
- }
-
- static Utility::Introspection::TypeInfo const&
- static_type_info ();
- };
-
- //
- //
- //
- struct InterfaceDef : virtual InterfaceDecl, virtual Scope
- {
- InterfaceDef ()
- {
- type_info (static_type_info ());
- }
-
- static Utility::Introspection::TypeInfo const&
- static_type_info ();
- };
-}
-
-#endif // SYNTAX_TREE_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Example/Introspection/Traversal/Traversal.cpp b/ACE/contrib/utility/Example/Introspection/Traversal/Traversal.cpp
deleted file mode 100644
index 9fa94327c2c..00000000000
--- a/ACE/contrib/utility/Example/Introspection/Traversal/Traversal.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-// file : Example/Introspection/Traversal/Traversal.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Traversal.hpp"
-
-#include <set>
-#include <map>
-
-using namespace Utility::Introspection;
-
-namespace Traversal
-{
- // Dispatcher
- //
- //
-
- struct TypeInfoComparator
- {
- bool
- operator () (TypeInfo const& x, TypeInfo const& y) const
- {
- return x.type_id () < y.type_id ();
- }
- };
-
- typedef
- std::map<TypeInfo, unsigned long, TypeInfoComparator>
- LevelMap;
-
- typedef
- std::set<TypeInfo, TypeInfoComparator>
- TypeInfoSet;
-
- unsigned long
- compute_levels (TypeInfo const& ti, unsigned long cur, LevelMap& map)
- {
- unsigned long ret = cur;
-
- if (map.find (ti) == map.end () || map[ti] < cur) map[ti] = cur;
-
- for (TypeInfo::BaseIterator i = ti.begin_base ();
- i != ti.end_base ();
- i++)
- {
- unsigned long t = compute_levels (i->type_info (), cur + 1, map);
- if (t > ret) ret = t;
- }
-
- return ret;
- }
-
- void
- flatten_tree (TypeInfo const& ti, TypeInfoSet& set)
- {
- set.insert (ti);
-
- for (TypeInfo::BaseIterator i = ti.begin_base ();
- i != ti.end_base ();
- i++)
- {
- flatten_tree (i->type_info (), set);
- }
- }
-
- void Dispatcher::
- dispatch (SyntaxTree::Node* n)
- {
- LevelMap levels;
-
- unsigned long max = compute_levels (n->type_info (), 0, levels);
-
- for (unsigned long l = 0; l < max + 1; l++)
- {
- TypeInfoSet dispatched;
-
- for (LevelMap::const_iterator i = levels.begin ();
- i != levels.end ();
- i++)
- {
- if (i->second == l)
- {
- TraversalMap::const_iterator v =
- traversal_map_.find (i->first.type_id ());
-
- if (v != traversal_map_.end ())
- {
- v->second->traverse (n);
- flatten_tree (i->first, dispatched);
- }
- }
- }
-
- // Remove traversed types from level map.
- for (TypeInfoSet::const_iterator i = dispatched.begin ();
- i != dispatched.end ();
- i++)
- {
- levels.erase (*i);
- }
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/Introspection/Traversal/Traversal.hpp b/ACE/contrib/utility/Example/Introspection/Traversal/Traversal.hpp
deleted file mode 100644
index 7ee84523fc0..00000000000
--- a/ACE/contrib/utility/Example/Introspection/Traversal/Traversal.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-// file : Example/Introspection/Traversal/Traversal.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef TRAVERSAL_HPP
-#define TRAVERSAL_HPP
-
-#include <map>
-#include <iostream>
-
-#include "Utility/Introspection/Introspection.hpp"
-
-#include "SyntaxTree.hpp"
-
-namespace Traversal
-{
- class Traverser;
-
- //
- //
- //
- class Dispatcher
- {
- public:
- virtual
- ~Dispatcher ()
- {
- }
-
- virtual void
- dispatch (SyntaxTree::Node* n);
-
- protected:
- void
- map (Utility::Introspection::TypeId id, Traverser* t)
- {
- traversal_map_[id] = t;
- }
-
- private:
- typedef
- std::map<Utility::Introspection::TypeId, Traverser*>
- TraversalMap;
-
- TraversalMap traversal_map_;
- };
-
-
- //
- //
- //
- class Traverser : public virtual Dispatcher
- {
- public:
- virtual void
- traverse (SyntaxTree::Node* n) = 0;
- };
-
- //
- //
- //
- struct Node : Traverser
- {
- Node ()
- {
- map (typeid (SyntaxTree::Node), this);
- }
-
- virtual void
- traverse (SyntaxTree::Node*)
- {
- std::cerr << "node" << std::endl;
- }
- };
-
-
- //
- //
- //
- struct Declaration : Traverser
- {
- Declaration ()
- {
- map (typeid (SyntaxTree::Declaration), this);
- }
-
- virtual void
- traverse (SyntaxTree::Node*)
- {
- std::cerr << "declaration" << std::endl;
- }
- };
-
- //
- //
- //
- struct Scope : Traverser
- {
- Scope ()
- {
- map (typeid (SyntaxTree::Scope), this);
- }
-
- virtual void
- traverse (SyntaxTree::Node* n)
- {
- std::cerr << "scope" << std::endl;
-
- SyntaxTree::Scope* s = dynamic_cast<SyntaxTree::Scope*> (n);
-
- for (SyntaxTree::DeclarationList::iterator i = s->content_.begin ();
- i != s->content_.end ();
- i++)
- {
- dispatch (*i);
- }
- }
- };
-
- //
- //
- //
- struct InterfaceDecl : Traverser
- {
- InterfaceDecl ()
- {
- map (typeid (SyntaxTree::InterfaceDecl), this);
- }
-
- virtual void
- traverse (SyntaxTree::Node*)
- {
- std::cerr << "interface declaration" << std::endl;
- }
- };
-
- //
- //
- //
- struct InterfaceDef : Traverser
- {
- InterfaceDef ()
- {
- map (typeid (SyntaxTree::InterfaceDef), this);
- }
-
- virtual void
- traverse (SyntaxTree::Node*)
- {
- std::cerr << "interface definition" << std::endl;
- }
- };
-}
-
-#endif // TRAVERSAL_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Example/Introspection/Traversal/driver.cpp b/ACE/contrib/utility/Example/Introspection/Traversal/driver.cpp
deleted file mode 100644
index 30e1a4a3ab7..00000000000
--- a/ACE/contrib/utility/Example/Introspection/Traversal/driver.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// file : Example/Introspection/Traversal/driver.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include <iostream>
-
-#include "SyntaxTree.hpp"
-#include "Traversal.hpp"
-
-int
-main ()
-{
- using namespace SyntaxTree;
-
- /*
- Create a syntax tree that looks something like this:
-
- scope
- {
- interface declaration;
-
- scope
- {
- interface definition
- {
- decalartion;
- };
- };
- };
-
- */
-
- Scope s1;
-
- InterfaceDecl i1;
- s1.content_.push_back (&i1);
-
- Scope s2;
- s1.content_.push_back (&s2);
-
- InterfaceDef i2;
- s2.content_.push_back (&i2);
-
- Declaration d1;
- i2.content_.push_back (&d1);
-
- SyntaxTree::Node* root = &s1;
-
- // Now different ways of traversing this tree:
-
- {
- std::cout << "test #1" << std::endl;
-
- struct Generator : Traversal::Declaration, Traversal::Scope
- {
- };
-
- Generator g;
- g.dispatch (root);
-
- std::cout << std::endl;
- }
-
- {
- std::cout << "test #2" << std::endl;
-
- struct Generator : Traversal::Scope, Traversal::InterfaceDecl
- {
- };
-
- Generator g;
- g.dispatch (root);
-
- std::cout << std::endl;
- }
-
- {
- std::cout << "test #3" << std::endl;
-
- struct Generator : Traversal::Scope, Traversal::InterfaceDef
- {
- };
-
- Generator g;
- g.dispatch (root);
-
- std::cout << std::endl;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Example/Makefile b/ACE/contrib/utility/Example/Makefile
deleted file mode 100644
index 1caefc91a39..00000000000
--- a/ACE/contrib/utility/Example/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Example/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := ExH Hetero Introspection
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Makefile b/ACE/contrib/utility/Makefile
deleted file mode 100644
index d23e380254b..00000000000
--- a/ACE/contrib/utility/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# file : Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := .
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := Utility Test Example Documentation
-
-Test Example Documentation : Utility
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ExH/Compound/Makefile b/ACE/contrib/utility/Test/ExH/Compound/Makefile
deleted file mode 100644
index b596cd2fbce..00000000000
--- a/ACE/contrib/utility/Test/ExH/Compound/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ExH/Compound/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := compound.cpp
-
-module_base := compound
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ExH/Compound/compound.cpp b/ACE/contrib/utility/Test/ExH/Compound/compound.cpp
deleted file mode 100644
index df06353d4b9..00000000000
--- a/ACE/contrib/utility/Test/ExH/Compound/compound.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-// file : Test/ExH/Compound/compound.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ExH/Compound.hpp"
-
-#include <string>
-
-using namespace Utility::ExH;
-
-struct E {};
-
-void postcondition (bool p)
-{
- if (!p) throw E ();
-}
-
-class Base
-{
-protected:
- Base () throw ()
- {
- }
-
- void
- init (char const* description) throw ()
- {
- str_ = description;
- }
-
- char const*
- what () const throw ()
- {
- return str_.c_str ();
- }
-
-public:
- std::string str_;
-};
-
-class A_ {};
-typedef
-Compound<A_, Base>
-A;
-
-struct StringHolder
-{
- StringHolder (char const* s)
- : str_ (s)
- {
- }
-
- operator std::string () const
- {
- return str_;
- }
-
- std::string str_;
-};
-
-
-int main ()
-{
- try
- {
- // Compound (char const*)
- //
- {
- A a ("hello");
-
- postcondition (a.str_ == "hello");
- }
-
- // Compound (T const&)
- //
- {
- StringHolder a ("hello");
- A b (a);
-
- postcondition (b.str_ == "hello");
- }
-
- // Compound (Compound const&)
- //
- {
- A a ("hello");
- A b (a);
-
- postcondition (b.str_ == "hello");
- }
-
- // ~Compound ()
- //
-
- // operator= (Compound const&)
- //
- {
- A a ("hello");
- A b ("foo");
- b = a;
-
- postcondition (b.str_ == "hello");
- }
-
- // Compound ()
- //
-
- }
- catch (...)
- {
- return -1;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/ExH/Converter/Makefile b/ACE/contrib/utility/Test/ExH/Converter/Makefile
deleted file mode 100644
index 3f37652482d..00000000000
--- a/ACE/contrib/utility/Test/ExH/Converter/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ExH/Converter/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := converter.cpp
-
-module_base := converter
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ExH/Converter/converter.cpp b/ACE/contrib/utility/Test/ExH/Converter/converter.cpp
deleted file mode 100644
index 5e2fdc20db6..00000000000
--- a/ACE/contrib/utility/Test/ExH/Converter/converter.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// file : Test/ExH/Converter/converter.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/ExH/Converter.hpp"
-#include "Utility/ExH/StringStreamConverter.hpp"
-
-#include <string>
-#include <sstream>
-
-using std::string;
-using namespace Utility::ExH;
-
-struct E {};
-
-void postcondition (bool p)
-{
- if (!p) throw E ();
-}
-
-int
-main ()
-{
- try
- {
- // template<T>
- // converter (T const&)
- //
- {
- postcondition (converter ("hello") == string("hello"));
- }
-
- // template<>
- // converter (std::ostringstream const&)
- //
- {
- std::ostringstream ostr;
- ostr << "hello";
- postcondition (converter (ostr) == string("hello"));
- }
- }
- catch (...)
- {
- return -1;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/ExH/Inline/Makefile b/ACE/contrib/utility/Test/ExH/Inline/Makefile
deleted file mode 100644
index 26606c35669..00000000000
--- a/ACE/contrib/utility/Test/ExH/Inline/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ExH/Inline/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := inline.cpp unit.cpp
-
-module_base := inline
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ExH/Inline/inline.cpp b/ACE/contrib/utility/Test/ExH/Inline/inline.cpp
deleted file mode 100644
index 10ca764a34f..00000000000
--- a/ACE/contrib/utility/Test/ExH/Inline/inline.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// file : Test/ExH/Inline/inline.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-//
-// This is a link-time test to detect any problems with inline functions
-// (notably missing inline specifier).
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/ExH/ExH.hpp"
-
-int
-main ()
-{
-}
-
-//$Id$
diff --git a/ACE/contrib/utility/Test/ExH/Inline/unit.cpp b/ACE/contrib/utility/Test/ExH/Inline/unit.cpp
deleted file mode 100644
index 8a57af7d759..00000000000
--- a/ACE/contrib/utility/Test/ExH/Inline/unit.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// file : Test/ExH/Inline/unit.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ExH/ExH.hpp"
-
-//$Id$
diff --git a/ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/Makefile b/ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/Makefile
deleted file mode 100644
index 6ca8e6029ee..00000000000
--- a/ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ExH/Logic/DescriptiveException/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := descriptive_exception.cpp
-
-module_base := descriptive_exception
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/descriptive_exception.cpp b/ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/descriptive_exception.cpp
deleted file mode 100644
index c8ed217b824..00000000000
--- a/ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/descriptive_exception.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-// file : Test/ExH/Logic/DescriptiveException/descriptive_exception.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/ExH/Logic/DescriptiveException.hpp"
-
-#include <string>
-
-using std::string;
-using namespace Utility::ExH::Logic;
-
-struct E {};
-
-void postcondition (bool p)
-{
- if (!p) throw E ();
-}
-
-struct StringHolder
-{
- StringHolder (char const* s)
- : str_ (s)
- {
- }
-
- operator std::string () const
- {
- return str_;
- }
-
- string str_;
-};
-
-int
-main ()
-{
- try
- {
- // DescriptiveException (char const*)
- //
- {
- DescriptiveException a ("hello");
-
- postcondition (a.what () == string ("hello"));
- }
-
- // DescriptiveException (std::string const&)
- //
- {
- DescriptiveException a (string ("hello"));
-
- postcondition (a.what () == string ("hello"));
- }
-
-
- // DescriptiveException (T const&)
- //
- {
- StringHolder a ("hello");
-
- DescriptiveException b (a);
-
- postcondition (b.what () == string ("hello"));
- }
-
- // DescriptiveException (DescriptiveException const&)
- //
- {
- DescriptiveException a ("hello");
- DescriptiveException b (a);
-
- postcondition (b.what () == string ("hello"));
- }
-
- // ~DescriptiveException
- //
-
- // operator= (DescriptiveException const&)
- //
- {
- DescriptiveException a ("hello");
- DescriptiveException b ("foo");
- b = a;
-
- postcondition (b.what () == string ("hello"));
- }
-
- // DescriptiveException ()
- //
-
- // init (char const*)
- //
-
- // what ()
- //
- {
- DescriptiveException a ("hello");
-
- postcondition (a.what () == string ("hello"));
- }
- }
- catch (...)
- {
- return -1;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/ExH/Logic/Makefile b/ACE/contrib/utility/Test/ExH/Logic/Makefile
deleted file mode 100644
index 042b3a172a4..00000000000
--- a/ACE/contrib/utility/Test/ExH/Logic/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Test/ExH/Logic/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := DescriptiveException
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ExH/Makefile b/ACE/contrib/utility/Test/ExH/Makefile
deleted file mode 100644
index 161884a439c..00000000000
--- a/ACE/contrib/utility/Test/ExH/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Test/ExH/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := Compound Converter Inline Logic System
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ExH/System/DescriptiveException/Makefile b/ACE/contrib/utility/Test/ExH/System/DescriptiveException/Makefile
deleted file mode 100644
index 9fd89d86ade..00000000000
--- a/ACE/contrib/utility/Test/ExH/System/DescriptiveException/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ExH/System/DescriptiveException/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := descriptive_exception.cpp
-
-module_base := descriptive_exception
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp b/ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp
deleted file mode 100644
index 5ae1c86803e..00000000000
--- a/ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-// file : Test/ExH/System/DescriptiveException/descriptive_exception.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/ExH/System/DescriptiveException.hpp"
-
-#include <string>
-
-using std::string;
-using namespace Utility::ExH::System;
-
-struct E {};
-
-void postcondition (bool p)
-{
- if (!p) throw E ();
-}
-
-struct StringHolder
-{
- StringHolder (char const* s)
- : str_ (s)
- {
- }
-
- operator std::string () const
- {
- return str_;
- }
-
- string str_;
-};
-
-int
-main ()
-{
- try
- {
- // DescriptiveException (char const*)
- //
- {
- DescriptiveException a ("hello");
-
- postcondition (a.what () == string ("hello"));
- }
-
- // DescriptiveException (std::string const&)
- //
- {
- DescriptiveException a (string ("hello"));
-
- postcondition (a.what () == string ("hello"));
- }
-
- // DescriptiveException (T const&)
- //
- {
- StringHolder a ("hello");
-
- DescriptiveException b (a);
-
- postcondition (b.what () == string ("hello"));
- }
-
- // DescriptiveException (DescriptiveException const&)
- //
- {
- DescriptiveException a ("hello");
- DescriptiveException b (a);
-
- postcondition (b.what () == string ("hello"));
- }
-
- // ~DescriptiveException
- //
-
- // operator= (DescriptiveException const&)
- //
- {
- DescriptiveException a ("hello");
- DescriptiveException b ("foo");
- b = a;
-
- postcondition (b.what () == string ("hello"));
- }
-
- // DescriptiveException ()
- //
-
- // init (char const*)
- //
-
- // what ()
- //
- {
- DescriptiveException a ("hello");
-
- postcondition (a.what () == string ("hello"));
- }
- }
- catch (...)
- {
- return -1;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/ExH/System/Makefile b/ACE/contrib/utility/Test/ExH/System/Makefile
deleted file mode 100644
index 2ffea12a6ed..00000000000
--- a/ACE/contrib/utility/Test/ExH/System/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Test/ExH/System/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := DescriptiveException
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/Introspection/Inline/Makefile b/ACE/contrib/utility/Test/Introspection/Inline/Makefile
deleted file mode 100644
index fb7a72c1e2f..00000000000
--- a/ACE/contrib/utility/Test/Introspection/Inline/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/Introspection/Inline/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := inline.cpp unit.cpp
-
-module_base := inline
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/Introspection/Inline/inline.cpp b/ACE/contrib/utility/Test/Introspection/Inline/inline.cpp
deleted file mode 100644
index 9d2b4828f17..00000000000
--- a/ACE/contrib/utility/Test/Introspection/Inline/inline.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// file : Test/Introspection/Inline/inline.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-//
-// This is a link-time test to detect any problems with inline functions
-// (notably missing inline specifier).
-//
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/Introspection/Introspection.hpp"
-
-int
-main ()
-{
-}
-
-//$Id$
diff --git a/ACE/contrib/utility/Test/Introspection/Inline/unit.cpp b/ACE/contrib/utility/Test/Introspection/Inline/unit.cpp
deleted file mode 100644
index a5fe6f95b65..00000000000
--- a/ACE/contrib/utility/Test/Introspection/Inline/unit.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// file : Test/Introspection/Inline/unit.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/Introspection/Introspection.hpp"
-
-//$Id$
diff --git a/ACE/contrib/utility/Test/Introspection/Makefile b/ACE/contrib/utility/Test/Introspection/Makefile
deleted file mode 100644
index 8ed18da5c41..00000000000
--- a/ACE/contrib/utility/Test/Introspection/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Test/Introspection/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := Inline
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/Makefile b/ACE/contrib/utility/Test/Makefile
deleted file mode 100644
index 4ac5c3530b8..00000000000
--- a/ACE/contrib/utility/Test/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# file : Test/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := ExH Introspection ReferenceCounting Synch
-
-ReferenceCounting : ExH Synch
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/Makefile b/ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/Makefile
deleted file mode 100644
index c3f89dc7a9c..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ReferenceCounting/DefaultImpl/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := default_impl.cpp
-
-module_base := default_impl
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/default_impl.cpp b/ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/default_impl.cpp
deleted file mode 100644
index 428e78cd061..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/default_impl.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-// file : Test/ReferenceCounting/DefaultImpl/default_impl.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ReferenceCounting/DefaultImpl.hpp"
-
-using namespace Utility::ReferenceCounting;
-
-struct Base : public virtual Interface
-{
- virtual
- ~Base () throw ()
- {
- }
-};
-
-
-class Impl : public virtual Base,
- public virtual DefaultImpl <>
-{
-public:
- Impl (bool& destroyed)
- : dummy_ (false),
- destroyed_ (destroyed)
- {
- }
-
- Impl ()
- : dummy_ (false),
- destroyed_ (dummy_)
- {
- }
-
- virtual
- ~Impl () throw ()
- {
- destroyed_ = true;
- }
-
-public:
- void
- lock ()
- {
- lock_i ();
- }
-
-private:
- bool dummy_;
- bool& destroyed_;
-};
-
-struct E {};
-
-void postcondition (bool p)
-{
- if (!p) throw E ();
-}
-
-int main ()
-{
- try
- {
- // DefaultImpl
- //
- {
- Impl* a (new Impl);
-
- postcondition (a->refcount_value () == 1);
-
- a->remove_ref ();
- }
-
- // ~DefaultImpl
- //
- {
- Impl* a (new Impl);
- a->remove_ref ();
- }
-
- // add_ref
- //
- {
- Impl* a (new Impl);
-
- a->add_ref ();
-
- postcondition (a->refcount_value () == 2);
-
- a->remove_ref ();
- a->remove_ref ();
- }
-
-
- // remove_ref
- //
- {
- bool destroyed (false);
- Impl* a (new Impl (destroyed));
-
- a->add_ref ();
- a->remove_ref ();
-
- postcondition (destroyed == false && a->refcount_value () == 1);
-
- a->remove_ref ();
-
- postcondition (destroyed == true);
- }
-
-
- // refcount_value
- //
- {
- Impl* a (new Impl);
-
- postcondition (a->refcount_value () == 1);
- }
-
- // lock_i
- //
- {
- Impl* a (new Impl);
- a->lock ();
- }
- }
- catch (...)
- {
- return -1;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/Inline/Makefile b/ACE/contrib/utility/Test/ReferenceCounting/Inline/Makefile
deleted file mode 100644
index 5ae9a840c8d..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/Inline/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ReferenceCounting/Inline/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := inline.cpp unit.cpp
-
-module_base := inline
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/Inline/inline.cpp b/ACE/contrib/utility/Test/ReferenceCounting/Inline/inline.cpp
deleted file mode 100644
index 0ff2dfa9986..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/Inline/inline.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// file : Test/ReferenceCounting/Inline/inline.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-//
-// This is a link-time test to detect any problems with inline functions
-// (notably missing inline specifier).
-//
-
-#include "Utility/ReferenceCounting/ReferenceCounting.hpp"
-
-int main ()
-{
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/Inline/unit.cpp b/ACE/contrib/utility/Test/ReferenceCounting/Inline/unit.cpp
deleted file mode 100644
index 31dbfdb8708..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/Inline/unit.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// file : Test/ReferenceCounting/Inline/unit.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ReferenceCounting/ReferenceCounting.hpp"
-
-//$Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/Interface/Makefile b/ACE/contrib/utility/Test/ReferenceCounting/Interface/Makefile
deleted file mode 100644
index 4327774eb54..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/Interface/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ReferenceCounting/Interface/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := interface.cpp
-
-module_base := interface
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/Interface/interface.cpp b/ACE/contrib/utility/Test/ReferenceCounting/Interface/interface.cpp
deleted file mode 100644
index 8299881424e..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/Interface/interface.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// file : Test/ReferenceCounting/Interface/interface.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ReferenceCounting/Interface.hpp"
-
-using namespace Utility::ReferenceCounting;
-
-struct Obj : public virtual Interface
-{
- Obj ()
- : ref_count_ (1)
- {
- }
-
- virtual
- ~Obj () throw ()
- {
- }
-
-public:
- virtual void
- add_ref () const throw ()
- {
- add_ref_i ();
- }
-
-
- virtual void
- remove_ref () const throw ()
- {
- if (remove_ref_i ()) delete this;
- }
-
- virtual count_t
- refcount_value () const throw ()
- {
- return refcount_value_i ();
- }
-
-protected:
- virtual void
- add_ref_i () const throw ()
- {
- ++ref_count_;
- }
-
-
- virtual bool
- remove_ref_i () const throw ()
- {
- return --ref_count_ == 0;
- }
-
- virtual count_t
- refcount_value_i () const throw ()
- {
- return ref_count_;
- }
-
-private:
- mutable count_t ref_count_;
-};
-
-
-struct E {};
-
-void postcondition (bool p)
-{
- if (!p) throw E ();
-}
-
-int main ()
-{
- try
- {
- // add_ref
- //
- {
- Obj* a (new Obj);
-
- Obj* b (add_ref (a));
-
- postcondition (a == b && a->refcount_value () == 2);
-
- a->remove_ref ();
- b->remove_ref ();
- }
-
- {
- Obj* a (0);
-
- Obj* b (add_ref (a));
-
- postcondition (b == 0);
- }
- }
- catch (...)
- {
- return -1;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/Makefile b/ACE/contrib/utility/Test/ReferenceCounting/Makefile
deleted file mode 100644
index 1f7d981c87f..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Test/ReferenceCounting/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := Interface DefaultImpl Inline SmartPtr StrictPtr
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/Makefile b/ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/Makefile
deleted file mode 100644
index 7bbc0456949..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ReferenceCounting/SmartPtr/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := smart_ptr.cpp
-
-module_base := smart_ptr
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/smart_ptr.cpp b/ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/smart_ptr.cpp
deleted file mode 100644
index e03a0a06cfd..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/smart_ptr.cpp
+++ /dev/null
@@ -1,220 +0,0 @@
-// file : Test/ReferenceCounting/SmartPtr/smart_ptr.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ReferenceCounting/SmartPtr.hpp"
-#include "Utility/ReferenceCounting/DefaultImpl.hpp"
-
-using namespace Utility::ReferenceCounting;
-
-struct Base : public virtual Interface
-{
- virtual
- ~Base () throw ()
- {
- }
-};
-
-typedef
-SmartPtr<Base>
-BasePtr;
-
-class Impl : public virtual Base,
- public virtual DefaultImpl <>
-{
-public:
- Impl (bool& destroyed)
- : dummy_ (false),
- destroyed_ (destroyed)
- {
- }
-
- Impl ()
- : dummy_ (false),
- destroyed_ (dummy_)
- {
- }
-
- virtual
- ~Impl () throw ()
- {
- destroyed_ = true;
- }
-
-private:
- bool dummy_;
- bool& destroyed_;
-};
-
-typedef
-SmartPtr<Impl>
-ImplPtr;
-
-struct E {};
-
-void postcondition (bool p)
-{
- if (!p) throw E ();
-}
-
-int main ()
-{
- try
- {
- // SmartPtr ()
- //
- {
- BasePtr a;
-
- postcondition (a.in () == 0);
- }
-
- // SmartPtr (Type*)
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
-
- postcondition (b.in () == a && a->refcount_value () == 1);
- }
-
- // SmartPtr (SmartPtr<Type> const&)
- //
- {
- ImplPtr a (new Impl);
- ImplPtr b (a);
-
- postcondition (a.in () == b.in () && a->refcount_value () == 2);
- }
-
- // SmartPtr (SmartPtr<Other> const&)
- //
- {
- ImplPtr a (new Impl);
- BasePtr b (a);
-
- postcondition (b.in () == static_cast<Base*>(a.in ()) &&
- b->refcount_value () == 2);
- }
-
- // ~SmartPtr
- //
- {
- bool destroyed (false);
- {
- ImplPtr a (new Impl (destroyed));
- }
-
- postcondition (destroyed == true);
- }
-
- // operator= (Type* ptr)
- //
- {
- Impl* a (new Impl);
- ImplPtr b;
- b = a;
-
- postcondition (b.in () == a && a->refcount_value () == 1);
- }
-
- // operator= (SmartPtr<Type> const&)
- //
- {
- ImplPtr a (new Impl);
- ImplPtr b;
- b = a;
-
- postcondition (b.in () == a.in () && a->refcount_value () == 2);
- }
-
- // operator= (SmartPtr<Other> const&)
- //
- {
- ImplPtr a (new Impl);
- BasePtr b;
- b = a;
-
- postcondition (b.in () == static_cast<Base*>(a.in ()) &&
- b->refcount_value () == 2);
- }
-
- // operator Type*
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- Impl* c (b);
-
- postcondition (a == c);
- }
-
- // operator->
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- Impl* c (b.operator-> ());
-
- postcondition (a == c);
- }
-
- // in
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- Impl* c (b.in ());
-
- postcondition (a == c);
- }
-
- // retn
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- Impl* c (b.retn ());
-
- postcondition (a == c);
-
- b = a; // give ownership back
- }
-
- // add_ref
- //
- {
- ImplPtr a (new Impl);
- ImplPtr b (add_ref (a));
-
- postcondition (a.in () == b.in () && b->refcount_value () == 2);
- }
-
- // smart_cast
- //
- {
- BasePtr a (new Impl);
- ImplPtr b (smart_cast<Impl>(a));
-
- postcondition (b != 0 && b->refcount_value () == 2);
- }
-
- // acquire
- //
- {
- bool destroyed (false);
- Base::count_t c (0);
- {
- c = acquire (new Impl (destroyed))->refcount_value ();
- }
-
- postcondition (c == 1 && destroyed == true);
- }
- }
- catch (...)
- {
- return -1;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/Makefile b/ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/Makefile
deleted file mode 100644
index e078ef688fe..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/ReferenceCounting/StrictPtr/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := strict_ptr.cpp
-
-module_base := strict_ptr
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/strict_ptr.cpp b/ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/strict_ptr.cpp
deleted file mode 100644
index 76fe667900f..00000000000
--- a/ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/strict_ptr.cpp
+++ /dev/null
@@ -1,218 +0,0 @@
-// file : Test/ReferenceCounting/StrictPtr/strict_ptr.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ReferenceCounting/StrictPtr.hpp"
-#include "Utility/ReferenceCounting/DefaultImpl.hpp"
-
-using namespace Utility::ReferenceCounting;
-
-struct Base : public virtual Interface
-{
- virtual
- ~Base () throw ()
- {
- }
-};
-
-typedef
-StrictPtr<Base>
-BasePtr;
-
-class Impl : public virtual Base,
- public virtual DefaultImpl <>
-{
-public:
- Impl (bool& destroyed)
- : dummy_ (false),
- destroyed_ (destroyed)
- {
- }
-
- Impl ()
- : dummy_ (false),
- destroyed_ (dummy_)
- {
- }
-
- virtual
- ~Impl () throw ()
- {
- destroyed_ = true;
- }
-
-private:
- bool dummy_;
- bool& destroyed_;
-};
-
-typedef
-StrictPtr<Impl>
-ImplPtr;
-
-struct E {};
-
-void postcondition (bool p)
-{
- if (!p) throw E ();
-}
-
-int main ()
-{
- try
- {
- // StrictPtr ()
- //
- {
- BasePtr a;
-
- postcondition (a.in () == 0);
- }
-
- // StrictPtr (Type*)
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
-
- postcondition (b.in () == a && a->refcount_value () == 1);
- }
-
- // StrictPtr (StrictPtr<Type> const&)
- //
- {
- ImplPtr a (new Impl);
- ImplPtr b (a);
-
- postcondition (a.in () == b.in () && a->refcount_value () == 2);
- }
-
- // StrictPtr (StrictPtr<Other> const&)
- //
- {
- ImplPtr a (new Impl);
- BasePtr b (a);
-
- postcondition (b.in () == static_cast<Base*>(a.in ()) &&
- b->refcount_value () == 2);
- }
-
- // ~StrictPtr
- //
- {
- bool destroyed (false);
- {
- ImplPtr a (new Impl (destroyed));
- }
-
- postcondition (destroyed == true);
- }
-
- // operator= (Type* ptr)
- //
- {
- Impl* a (new Impl);
- ImplPtr b;
- b = a;
-
- postcondition (b.in () == a && a->refcount_value () == 1);
- }
-
- // operator= (StrictPtr<Type> const&)
- //
- {
- ImplPtr a (new Impl);
- ImplPtr b;
- b = a;
-
- postcondition (b.in () == a.in () && a->refcount_value () == 2);
- }
-
- // operator= (StrictPtr<Other> const&)
- //
- {
- ImplPtr a (new Impl);
- BasePtr b;
- b = a;
-
- postcondition (b.in () == static_cast<Base*>(a.in ()) &&
- b->refcount_value () == 2);
- }
-
- // operator==
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- bool r (b.in () == a);
-
- postcondition (r == true);
- }
-
- // operator!=
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- bool r (b.in () != a);
-
- postcondition (r == false);
- }
-
- // operator->
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- Impl* c (b.operator-> ());
-
- postcondition (a == c);
- }
-
- // in
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- Impl* c (b.in ());
-
- postcondition (a == c);
- }
-
- // retn
- //
- {
- Impl* a (new Impl);
- ImplPtr b (a);
- Impl* c (b.retn ());
-
- postcondition (a == c);
-
- b = a; // give ownership back
- }
-
- // add_ref
- //
- {
- ImplPtr a (new Impl);
- ImplPtr b (add_ref (a));
-
- postcondition (a.in () == b.in () && b->refcount_value () == 2);
- }
-
- // strict_cast
- //
- {
- BasePtr a (new Impl);
- ImplPtr b (strict_cast<Impl>(a));
-
- postcondition (b != 0 && b->refcount_value () == 2);
- }
- }
- catch (...)
- {
- return -1;
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Test/Synch/Inline/Makefile b/ACE/contrib/utility/Test/Synch/Inline/Makefile
deleted file mode 100644
index 2101cc3ee8c..00000000000
--- a/ACE/contrib/utility/Test/Synch/Inline/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# file : Test/Synch/Inline/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Executable.pre.rules)
-
-
-cxx_translation_units := inline.cpp unit.cpp
-
-module_base := inline
-module_prefix :=
-module_suffix :=
-
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-
-$(call include, $(root)/BuildRules/Executable.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Test/Synch/Inline/inline.cpp b/ACE/contrib/utility/Test/Synch/Inline/inline.cpp
deleted file mode 100644
index a70dd06d739..00000000000
--- a/ACE/contrib/utility/Test/Synch/Inline/inline.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// file : Test/Synch/Inline/inline.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-//
-// This is a link-time test to detect any problems with inline functions
-// (notably missing inline specifier).
-//
-
-/* FUZZ: disable check_for_improper_main_declaration */
-
-#include "Utility/Synch/Policy/Null.hpp"
-
-int
-main ()
-{
-}
-
-//$Id$
diff --git a/ACE/contrib/utility/Test/Synch/Inline/unit.cpp b/ACE/contrib/utility/Test/Synch/Inline/unit.cpp
deleted file mode 100644
index b570c97ae5e..00000000000
--- a/ACE/contrib/utility/Test/Synch/Inline/unit.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// file : Test/Synch/Inline/unit.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/Synch/Policy/Null.hpp"
-
-//$Id$
diff --git a/ACE/contrib/utility/Test/Synch/Makefile b/ACE/contrib/utility/Test/Synch/Makefile
deleted file mode 100644
index c4b730ca6a5..00000000000
--- a/ACE/contrib/utility/Test/Synch/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Test/Synch/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := Inline
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Compound.hpp b/ACE/contrib/utility/Utility/ExH/Compound.hpp
deleted file mode 100644
index c21f5013853..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Compound.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// file : Utility/ExH/Compound.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_COMPOUND_HPP
-#define UTILITY_EX_H_COMPOUND_HPP
-
-#include <string>
-
-namespace Utility
-{
- namespace ExH
- {
- template <typename Type, typename _Base>
- class Compound : public virtual _Base
- {
- public:
- typedef _Base Base;
-
- explicit
- Compound (char const* description) throw ();
-
- explicit
- Compound (std::string const& description) throw ();
-
- template <typename T>
- explicit
- Compound (T const& description) throw ();
-
- Compound (Compound const& src) throw ();
-
- virtual
- ~Compound () throw ();
-
- public:
- Compound&
- operator= (Compound const& src) throw ();
-
- protected:
- Compound () throw ();
- };
- }
-}
-
-#include "Utility/ExH/Compound.tpp"
-
-#endif // UTILITY_EX_H_COMPOUND_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Compound.tpp b/ACE/contrib/utility/Utility/ExH/Compound.tpp
deleted file mode 100644
index 08c9f8194a9..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Compound.tpp
+++ /dev/null
@@ -1,74 +0,0 @@
-// file : Utility/ExH/Compound.tpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ExH/Converter.hpp"
-
-namespace Utility
-{
- namespace ExH
- {
- // c-tor's & d-tor
- template <typename Type, typename Base>
- Compound<Type, Base>::
- Compound () throw ()
- {
- }
-
- template <typename Type, typename Base>
- Compound<Type, Base>::
- Compound (char const* description) throw ()
- {
- Base::init (description);
- }
-
- template <typename Type, typename Base>
- Compound<Type, Base>::
- Compound (std::string const& description) throw ()
- {
- try
- {
- Base::init (description.c_str ());
- }
- catch (...)
- {
- }
- }
-
- template <typename Type, typename Base>
- template <typename T>
- Compound<Type, Base>::
- Compound (T const& description) throw ()
- {
- Base::init (converter<T> (description).c_str ());
- }
-
- template <typename Type, typename Base>
- Compound<Type, Base>::
- Compound (Compound const& src) throw ()
- : Base::Base::Base (),
- Base::Base (),
- Base ()
- {
- Base::init (src.what ());
- }
-
- template <typename Type, typename Base>
- Compound<Type, Base>::
- ~Compound () throw ()
- {
- }
-
- // operator=
-
- template <typename Type, typename Base>
- Compound<Type, Base>& Compound<Type, Base>::
- operator= (Compound const& src) throw ()
- {
- Base::init (src.what ());
- return *this;
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Converter.hpp b/ACE/contrib/utility/Utility/ExH/Converter.hpp
deleted file mode 100644
index 563114fd1c4..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Converter.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// file : Utility/ExH/Converter.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_CONVERTER_HPP
-#define UTILITY_EX_H_CONVERTER_HPP
-
-#include <string>
-
-namespace Utility
-{
- namespace ExH
- {
- template <typename T>
- std::string
- converter (T const& t);
- }
-}
-
-#include "Utility/ExH/Converter.tpp"
-
-#endif // UTILITY_EX_H_CONVERTER_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Converter.tpp b/ACE/contrib/utility/Utility/ExH/Converter.tpp
deleted file mode 100644
index 2d48015fe80..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Converter.tpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// file : Utility/ExH/Converter.tpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ExH
- {
- template <typename T>
- std::string
- converter (T const& t)
- {
- // Default implementation just assumes that implicit converion exist.
- return t;
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/ExH.hpp b/ACE/contrib/utility/Utility/ExH/ExH.hpp
deleted file mode 100644
index 722ecd02d25..00000000000
--- a/ACE/contrib/utility/Utility/ExH/ExH.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-// file : Utility/ExH/ExH.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_EX_H_HPP
-#define UTILITY_EX_H_EX_H_HPP
-
-#include "Utility/ExH/System/Exception.hpp"
-#include "Utility/ExH/System/DescriptiveException.hpp"
-
-#include "Utility/ExH/Logic/Exception.hpp"
-#include "Utility/ExH/Logic/DescriptiveException.hpp"
-
-#include "Utility/ExH/Compound.hpp"
-
-#include "Utility/ExH/Converter.hpp"
-#include "Utility/ExH/StringStreamConverter.hpp"
-
-#endif // UTILITY_EX_H_EX_H_HPP
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.hpp b/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.hpp
deleted file mode 100644
index 160ad74182d..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// file : Utility/ExH/Logic/DescriptiveException.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_LOGIC_DESCRIPTIVE_EXCEPTION_HPP
-#define UTILITY_EX_H_LOGIC_DESCRIPTIVE_EXCEPTION_HPP
-
-#include <memory>
-#include <string>
-
-
-#include "Utility/ExH/Logic/Exception.hpp"
-
-namespace Utility
-{
- namespace ExH
- {
- namespace Logic
- {
- class DescriptiveException : public virtual Exception
- {
- public:
- typedef Exception Base;
-
- explicit
- DescriptiveException (char const* description) throw ();
-
- explicit
- DescriptiveException (std::string const& description) throw ();
-
- template <typename T>
- explicit
- DescriptiveException (T const& description) throw ();
-
- DescriptiveException (DescriptiveException const& src) throw ();
-
- virtual
- ~DescriptiveException () throw ();
-
- DescriptiveException&
- operator= (DescriptiveException const& src) throw ();
-
- protected:
- DescriptiveException () throw ();
-
- void
- init (char const* description) throw ();
-
- public:
- virtual char const*
- what () const throw ();
-
- private:
- std::auto_ptr<std::string> description_;
- };
- }
- }
-}
-
-#include "Utility/ExH/Logic/DescriptiveException.ipp"
-#include "Utility/ExH/Logic/DescriptiveException.tpp"
-
-#endif // UTILITY_EX_H_LOGIC_DESCRIPTIVE_EXCEPTION_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.ipp b/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.ipp
deleted file mode 100644
index 0e2fc1e8916..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.ipp
+++ /dev/null
@@ -1,106 +0,0 @@
-// file : Utility/ExH/Logic/DescriptiveException.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ExH
- {
- namespace Logic
- {
- // c-tor's & d-tor
-
- inline DescriptiveException::
- DescriptiveException () throw ()
- {
- }
-
- inline DescriptiveException::
- DescriptiveException (char const* description) throw ()
- {
- init (description);
- }
-
- inline DescriptiveException::
- DescriptiveException (std::string const& description) throw ()
- {
- try
- {
- init (description.c_str ());
- }
- catch (...)
- {
- }
- }
-
- inline DescriptiveException::
- DescriptiveException (DescriptiveException const& src) throw ()
- : std::exception (),
- Exception ()
- {
- init (src.what ());
- }
-
- inline DescriptiveException::
- ~DescriptiveException () throw ()
- {
- }
-
- inline DescriptiveException& DescriptiveException::
- operator= (DescriptiveException const& src) throw ()
- {
- init (src.what ());
- return *this;
- }
-
-
- // accessors / modifiers
-
- inline void
- DescriptiveException::init (char const* description) throw ()
- {
- try
- {
- if (description == 0 || description[0] == '\0')
- {
- description_.reset (0);
- }
- else
- {
- if (description_.get () != 0)
- {
- *description_ = description;
- }
- else
- {
- description_.reset (new std::string (description));
- }
- }
- }
- catch (...)
- {
- description_.reset (0);
- }
- }
-
- inline char const*
- DescriptiveException::what () const throw ()
- {
- try
- {
- if (description_.get () != 0)
- {
- return description_->c_str ();
- }
- }
- catch (...)
- {
- }
-
- return Exception::what ();
- }
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.tpp b/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.tpp
deleted file mode 100644
index 02c65a67e2b..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.tpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// file : Utility/ExH/Logic/DescriptiveException.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ExH/Converter.hpp"
-
-namespace Utility
-{
- namespace ExH
- {
- namespace Logic
- {
- template <typename T>
- DescriptiveException::
- DescriptiveException (T const& description) throw ()
- {
- init (converter<T> (description).c_str ());
- }
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Logic/Exception.hpp b/ACE/contrib/utility/Utility/ExH/Logic/Exception.hpp
deleted file mode 100644
index 613945c09b3..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Logic/Exception.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// file : Utility/ExH/Logic/Exception.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_LOGIC_EXCEPTION_HPP
-#define UTILITY_EX_H_LOGIC_EXCEPTION_HPP
-
-#include "Utility/ExH/System/Exception.hpp"
-
-namespace Utility
-{
- namespace ExH
- {
- namespace Logic
- {
-
- // Logic::Exception inherits from System::Exception for the
- // following reason. Semantically for some part of the
- // system particular instance of Logic::Exception may seem as
- // opaque System::Exception and the only way to handle it would
- // be to propagate it further. In other words Logic::Exception
- // can be seemlesly "converted" to System::Exception if there is
- // no part of the system interested in handling it.
- //
-
- class Exception : public virtual System::Exception
- {
- public:
- typedef System::Exception Base;
-
- virtual
- ~Exception () throw ();
- };
- }
- }
-}
-
-#include "Utility/ExH/Logic/Exception.ipp"
-
-#endif // UTILITY_EX_H_LOGIC_EXCEPTION_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/Logic/Exception.ipp b/ACE/contrib/utility/Utility/ExH/Logic/Exception.ipp
deleted file mode 100644
index d3b774be937..00000000000
--- a/ACE/contrib/utility/Utility/ExH/Logic/Exception.ipp
+++ /dev/null
@@ -1,20 +0,0 @@
-// file : Utility/ExH/Logic/Exception.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ExH
- {
- namespace Logic
- {
- inline Exception::
- ~Exception () throw ()
- {
- }
- }
- }
-}
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/StringStreamConverter.hpp b/ACE/contrib/utility/Utility/ExH/StringStreamConverter.hpp
deleted file mode 100644
index a9a495f22e2..00000000000
--- a/ACE/contrib/utility/Utility/ExH/StringStreamConverter.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// file : Utility/ExH/StringStreamConverter.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_STRING_STREAM_CONVERTER_HPP
-#define UTILITY_EX_H_STRING_STREAM_CONVERTER_HPP
-
-#include <sstream>
-
-#include "Utility/ExH/Converter.hpp"
-
-namespace Utility
-{
- namespace ExH
- {
- template <>
- std::string
- converter (std::ostringstream const& t);
- }
-}
-
-#include "Utility/ExH/StringStreamConverter.ipp"
-
-#endif // UTILITY_EX_H_STRING_STREAM_CONVERTER_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/StringStreamConverter.ipp b/ACE/contrib/utility/Utility/ExH/StringStreamConverter.ipp
deleted file mode 100644
index e454ac3f96c..00000000000
--- a/ACE/contrib/utility/Utility/ExH/StringStreamConverter.ipp
+++ /dev/null
@@ -1,18 +0,0 @@
-// file : Utility/ExH/StringStreamConverter.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ExH
- {
- template <>
- inline std::string
- converter (std::ostringstream const& t)
- {
- return t.str ();
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.hpp b/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.hpp
deleted file mode 100644
index 1045d0ee9ae..00000000000
--- a/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// file : Utility/ExH/System/DescriptiveException.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_SYSTEM_DESCRIPTIVE_EXCEPTION_HPP
-#define UTILITY_EX_H_SYSTEM_DESCRIPTIVE_EXCEPTION_HPP
-
-#include <string>
-#include "Utility/ExH/System/Exception.hpp"
-
-namespace Utility
-{
- namespace ExH
- {
- namespace System
- {
- class DescriptiveException : public virtual Exception
- {
- public:
- typedef Exception Base;
-
- explicit
- DescriptiveException (char const* description) throw ();
-
- explicit
- DescriptiveException (std::string const& description) throw ();
-
- template <typename T>
- explicit
- DescriptiveException (T const& description) throw ();
-
- DescriptiveException (DescriptiveException const& src) throw ();
-
- virtual
- ~DescriptiveException () throw ();
-
- DescriptiveException&
- operator= (DescriptiveException const& src) throw ();
-
- protected:
- DescriptiveException () throw ();
-
- void
- init (char const* description) throw ();
-
- public:
- virtual char const*
- what () const throw ();
-
- private:
-
- static unsigned long const DESCRIPTION_SIZE = 256;
-
- char description_ [DESCRIPTION_SIZE];
- };
- }
- }
-}
-
-#include "Utility/ExH/System/DescriptiveException.ipp"
-#include "Utility/ExH/System/DescriptiveException.tpp"
-
-#endif // UTILITY_EX_H_SYSTEM_DESCRIPTIVE_EXCEPTION_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.ipp b/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.ipp
deleted file mode 100644
index cedaeacc937..00000000000
--- a/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.ipp
+++ /dev/null
@@ -1,91 +0,0 @@
-// file : Utility/ExH/System/DescriptiveException.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include <cstring>
-
-namespace Utility
-{
- namespace ExH
- {
- namespace System
- {
- // c-tor's & d-tor
-
- inline DescriptiveException::
- DescriptiveException () throw ()
- {
- description_[0] = '\0';
- }
-
- inline DescriptiveException::
- DescriptiveException (char const* description) throw ()
- {
- init (description);
- }
-
- inline DescriptiveException::
- DescriptiveException (std::string const& description) throw ()
- {
- try
- {
- init (description.c_str ());
- }
- catch (...)
- {
- }
- }
-
- inline DescriptiveException::
- DescriptiveException (DescriptiveException const& src) throw ()
- : Base ()
- {
- init (src.what ());
- }
-
- inline DescriptiveException::
- ~DescriptiveException () throw ()
- {
- }
-
- inline DescriptiveException& DescriptiveException::
- operator= (DescriptiveException const& src) throw ()
- {
- init (src.what ());
- return *this;
- }
-
-
- // accessors / modifiers
-
- inline void DescriptiveException::
- init (char const* description) throw ()
- {
- if (description != 0)
- {
- std::strncpy (description_, description, DESCRIPTION_SIZE - 1);
- description_[DESCRIPTION_SIZE - 1] = '\0';
- }
- else
- {
- description_[0] = '\0';
- }
- }
-
- inline char const* DescriptiveException::
- what () const throw ()
- {
- if (description_[0] != '\0')
- {
- return description_;
- }
- else
- {
- return Exception::what ();
- }
- }
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.tpp b/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.tpp
deleted file mode 100644
index 320216acc2e..00000000000
--- a/ACE/contrib/utility/Utility/ExH/System/DescriptiveException.tpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// file : Utility/ExH/System/DescriptiveException.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/ExH/Converter.hpp"
-
-namespace Utility
-{
- namespace ExH
- {
- namespace System
- {
- template <typename T>
- inline DescriptiveException::
- DescriptiveException (T const& description) throw ()
- {
- init (converter<T> (description).c_str ());
- }
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ExH/System/Exception.hpp b/ACE/contrib/utility/Utility/ExH/System/Exception.hpp
deleted file mode 100644
index 0ed7fbfa975..00000000000
--- a/ACE/contrib/utility/Utility/ExH/System/Exception.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// file : Utility/ExH/System/Exception.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_SYSTEM_EXCEPTION_HPP
-#define UTILITY_EX_H_SYSTEM_EXCEPTION_HPP
-
-#include <exception>
-
-namespace Utility
-{
- namespace ExH
- {
- namespace System
- {
- // This is the only way to make predefined exceptions like
- // std::bad_alloc, etc to appear in the right place of the hierarchy.
- //
-
- typedef std::exception Exception;
- }
- }
-}
-
-#endif // UTILITY_EX_H_SYSTEM_EXCEPTION_HPP
-
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Hetero/Container.hpp b/ACE/contrib/utility/Utility/Hetero/Container.hpp
deleted file mode 100644
index d28d5fff0c4..00000000000
--- a/ACE/contrib/utility/Utility/Hetero/Container.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-// file : Utility/Hetero/Container.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_HETERO_CONTAINER_HPP
-#define UTILITY_HETERO_CONTAINER_HPP
-
-#include <typeinfo>
-
-namespace Utility
-{
- namespace Hetero
- {
- //
- //
- //
- class Typing {};
-
- //
- //
- //
- class Container
- {
- public:
- ~Container ()
- {
- delete holder_;
- }
-
- public:
- template <typename T>
- Container (T const& t)
- : holder_ (new TypedHolder<T> (t))
- {
- }
-
- Container (Container const& c)
- : holder_ (c.holder_->clone ())
- {
- }
-
- public:
- template <typename T>
- Container&
- operator= (T const& t)
- {
- delete holder_;
- holder_ = 0;
- holder_ = new TypedHolder<T> (t);
- return *this;
- }
-
- Container&
- operator= (Container const& c)
- {
- delete holder_;
- holder_ = 0;
- holder_ = c.holder_->clone ();
- return *this;
- }
-
- public:
- template <typename T>
- operator T& ()
- {
- return value<T> ();
- }
-
- template <typename T>
- operator T const& () const
- {
- return value<T> ();
- }
-
- public:
- template <typename T>
- T&
- value ()
- {
- if (holder_->type () == typeid (T))
- {
- return dynamic_cast<TypedHolder<T>*>(holder_)->value ();
- }
- else
- {
- throw Typing ();
- }
- }
-
- template <typename T>
- T const&
- value () const
- {
- if (holder_->type () == typeid (T))
- {
- return dynamic_cast<TypedHolder<T>*>(holder_)->value ();
- }
- else
- {
- throw Typing ();
- }
- }
-
- public:
- std::type_info const&
- type () const
- {
- return holder_->type ();
- }
-
- public:
- template <typename T>
- friend T
- operator+ (Container const& a, T const& b)
- {
- return a.value<T> () + b;
- }
-
- template <typename T>
- friend T
- operator+ (T const& a, Container const& b)
- {
- return a + b.value<T> ();
- }
-
- private:
- struct Holder
- {
- virtual
- ~Holder () {}
-
- virtual Holder*
- clone () const = 0;
-
- virtual std::type_info const&
- type () const = 0;
- };
-
- template <typename T>
- struct TypedHolder : public Holder
- {
- TypedHolder (T const& value)
- : value_ (value)
- {
- }
-
- virtual Holder*
- clone () const
- {
- return new TypedHolder<T> (value_);
- }
-
- virtual std::type_info const&
- type () const
- {
- return typeid (T);
- }
-
- T const&
- value () const
- {
- return value_;
- }
-
- T&
- value ()
- {
- return value_;
- }
-
- private:
- T value_;
- };
-
- Holder* holder_;
- };
- }
-}
-
-#endif // UTILITY_HETERO_CONTAINER_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Hetero/Shell.hpp b/ACE/contrib/utility/Utility/Hetero/Shell.hpp
deleted file mode 100644
index 0d37a6ba09d..00000000000
--- a/ACE/contrib/utility/Utility/Hetero/Shell.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// file : Utility/Hetero/Shell.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_HETERO_SHELL_HPP
-#define UTILITY_HETERO_SHELL_HPP
-
-namespace Utility
-{
- namespace Hetero
- {
-
- //
- //
- //
- class ShellCore
- {
- protected:
- template <typename F, typename T0>
- static typename F::RetType
- apply (F& f, TypedContainer<TypeList<T0> >& c)
- {
- if (type_check <T0> (c)) return type_apply<T0> (f, c);
-
- throw Utility::Hetero::Typing ();
- }
-
- template <typename F, typename T0, typename T1>
- static typename F::RetType
- apply (F& f, TypedContainer<TypeList<T0, T1> >& c)
- {
- if (type_check <T0> (c)) return type_apply<T0> (f, c);
- if (type_check <T1> (c)) return type_apply<T1> (f, c);
-
- throw Utility::Hetero::Typing ();
- }
-
- template <typename F, typename T0, typename T1, typename T2>
- static typename F::RetType
- apply (F& f, TypedContainer<TypeList<T0, T1, T2> >& c)
- {
- if (type_check <T0> (c)) return type_apply<T0> (f, c);
- if (type_check <T1> (c)) return type_apply<T1> (f, c);
- if (type_check <T2> (c)) return type_apply<T2> (f, c);
-
- throw Utility::Hetero::Typing ();
- }
-
- private:
- template <typename T>
- static bool
- type_check (Container& c)
- {
- return c.type () == typeid (T);
- }
-
- template <typename T, typename F>
- static typename F::RetType
- type_apply (F& f, Container& c)
- {
- return f (c. template value<T> ());
- }
- };
-
-
- //
- //
- //
- template <typename F>
- struct Shell : F, ShellCore
- {
- using F::operator ();
-
- template <typename T>
- typename F::RetType
- operator () (TypedContainer<T>& p)
- {
- return apply (*this, p);
- }
- };
- }
-}
-
-#endif // UTILITY_HETERO_SHELL_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Hetero/TypeList.hpp b/ACE/contrib/utility/Utility/Hetero/TypeList.hpp
deleted file mode 100644
index ee7e96c2bcd..00000000000
--- a/ACE/contrib/utility/Utility/Hetero/TypeList.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-// file : Utility/Hetero/TypeList.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_HETERO_TYPE_LIST_HPP
-#define UTILITY_HETERO_TYPE_LIST_HPP
-
-namespace Utility
-{
- namespace Hetero
- {
- class NullType {};
-
- template <typename t0 = NullType,
- typename t1 = NullType,
- typename t2 = NullType>
- struct TypeList
- {
- typedef t0 T0;
- typedef t1 T1;
- typedef t2 T2;
- };
-
- template <typename t0, typename t1>
- struct TypeList<t0, t1, NullType>
- {
- typedef t0 T0;
- typedef t1 T1;
- };
-
- template <typename t0>
- struct TypeList<t0, NullType, NullType>
- {
- typedef t0 T0;
- };
-
- template <>
- struct TypeList<NullType, NullType, NullType>
- {
- };
- }
-}
-
-#endif // UTILITY_HETERO_TYPE_LIST_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Hetero/TypedContainer.hpp b/ACE/contrib/utility/Utility/Hetero/TypedContainer.hpp
deleted file mode 100644
index 67f94bda0ec..00000000000
--- a/ACE/contrib/utility/Utility/Hetero/TypedContainer.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-// file : Utility/Hetero/TypedContainer.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_HETERO_TYPED_CONTAINER_HPP
-#define UTILITY_HETERO_TYPED_CONTAINER_HPP
-
-#include "Utility/Hetero/Container.hpp"
-#include "Utility/Hetero/TypeList.hpp"
-
-namespace Utility
-{
- namespace Hetero
- {
- template <typename TL>
- class TypedContainer : public Container
- {
- public:
- typedef TL Types;
-
- public:
- template <typename T>
- TypedContainer (T const& t)
- : Container (t)
- {
- }
-
- TypedContainer (TypedContainer const& c)
- : Container (static_cast<Container const&> (c))
- {
- }
-
- public:
- template <typename T>
- TypedContainer&
- operator= (T const& t)
- {
- Container& self = *this;
- self = t;
- return *this;
- }
-
- TypedContainer&
- operator= (TypedContainer const& c)
- {
- Container& self = *this;
- Container const& other = c;
- self = other;
- return *this;
- }
- };
- }
-}
-
-#endif // UTILITY_HETERO_TYPED_CONTAINER_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Hetero/Vector.hpp b/ACE/contrib/utility/Utility/Hetero/Vector.hpp
deleted file mode 100644
index 3826bd6bb1f..00000000000
--- a/ACE/contrib/utility/Utility/Hetero/Vector.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// file : Utility/Hetero/Vector.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_HETERO_VECTOR_HPP
-#define UTILITY_HETERO_VECTOR_HPP
-
-#include <vector>
-
-#include "Utility/Hetero/TypeList.hpp"
-#include "Utility/Hetero/TypedContainer.hpp"
-
-namespace Utility
-{
- namespace Hetero
- {
- template <typename T0 = NullType,
- typename T1 = NullType,
- typename T2 = NullType>
- class Vector;
-
- template <>
- class Vector<NullType, NullType, NullType>;
-
- template <typename T0>
- class Vector<T0, NullType, NullType> :
- public std::vector<TypedContainer<TypeList<T0> > >
- {
- };
-
- template <typename T0, typename T1>
- class Vector<T0, T1, NullType> :
- public std::vector<TypedContainer<TypeList<T0, T1> > >
- {
- };
-
- template <typename T0, typename T1, typename T2>
- class Vector :
- public std::vector<TypedContainer<TypeList<T0, T1, T2> > >
- {
- };
- }
-}
-
-#endif // UTILITY_HETERO_VECTOR_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/Introspection.hpp b/ACE/contrib/utility/Utility/Introspection/Introspection.hpp
deleted file mode 100644
index d514f62837a..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/Introspection.hpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// file : Utility/Introspection/Introspection.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_INTROSPECTION_INTROSPECTION_HPP
-#define UTILITY_INTROSPECTION_INTROSPECTION_HPP
-
-#include "Utility/Introspection/TypeId.hpp"
-#include "Utility/Introspection/TypeInfo.hpp"
-#include "Utility/Introspection/Object.hpp"
-
-#endif // UTILITY_INTROSPECTION_INTROSPECTION_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/Makefile b/ACE/contrib/utility/Utility/Introspection/Makefile
deleted file mode 100644
index 43f2f67cb51..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# file : Utility/Introspection/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ../..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Archive.pre.rules)
-
-cxx_translation_units := TypeId.cpp Object.cpp
-
-module_base := Introspection
-
-CXX_PREPROCESS_FLAGS += -I $(root)
-
-$(call include, $(root)/BuildRules/Archive.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/Object.cpp b/ACE/contrib/utility/Utility/Introspection/Object.cpp
deleted file mode 100644
index 015a2736aad..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/Object.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// file : Utility/Introspection/Object.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/Introspection/Object.hpp"
-
-namespace Utility
-{
- namespace Introspection
- {
- namespace
- {
- TypeInfo object_ (typeid (Object));
- }
-
- TypeInfo const& Object::
- static_type_info () throw ()
- {
- return object_;
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/Object.hpp b/ACE/contrib/utility/Utility/Introspection/Object.hpp
deleted file mode 100644
index fdf8228c9f3..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/Object.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// file : Utility/Introspection/Object.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_INTROSPECTION_OBJECT_HPP
-#define UTILITY_INTROSPECTION_OBJECT_HPP
-
-#include "Utility/Introspection/TypeInfo.hpp"
-
-namespace Utility
-{
- namespace Introspection
- {
- class Object
- {
- public:
- static TypeInfo const&
- static_type_info () throw ();
-
- virtual TypeInfo const&
- type_info () const throw ();
-
- protected:
- virtual
- ~Object ();
-
- Object () throw ();
- Object (Object const&) throw ();
-
- Object&
- operator= (Object const&) throw ();
-
- protected:
- virtual void
- type_info (TypeInfo const& tid) throw ();
-
- private:
- TypeInfo const* type_info_;
- };
- }
-}
-
-#include "Utility/Introspection/Object.ipp"
-
-#endif // UTILITY_INTROSPECTION_OBJECT_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/Object.ipp b/ACE/contrib/utility/Utility/Introspection/Object.ipp
deleted file mode 100644
index 7b5de978c6e..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/Object.ipp
+++ /dev/null
@@ -1,48 +0,0 @@
-// file : Utility/Introspection/Object.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace Introspection
- {
- inline TypeInfo const& Object::
- type_info () const throw ()
- {
- return *type_info_;
- }
-
- inline Object::
- ~Object ()
- {
- }
-
- inline Object::
- Object () throw ()
- {
- type_info (static_type_info ());
- }
-
-
- inline Object::
- Object (Object const&) throw ()
- {
- type_info (static_type_info ());
- }
-
-
- inline Object& Object::
- operator= (Object const&) throw ()
- {
- return *this;
- }
-
- inline void Object::
- type_info (TypeInfo const& tid) throw ()
- {
- type_info_ = &tid;
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/TypeId.cpp b/ACE/contrib/utility/Utility/Introspection/TypeId.cpp
deleted file mode 100644
index a0ceddac2a1..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/TypeId.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// file : Utility/Introspection/TypeId.cpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#include "Utility/Introspection/TypeId.hpp"
-
-#include <ostream>
-
-namespace Utility
-{
- namespace Introspection
- {
- std::ostream&
- operator << (std::ostream& os, TypeId const& t)
- {
- return os << t.tid_->name ();
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/TypeId.hpp b/ACE/contrib/utility/Utility/Introspection/TypeId.hpp
deleted file mode 100644
index 51f66f99a0b..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/TypeId.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// file : Utility/Introspection/TypeId.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_INTROSPECTION_TYPE_ID_HPP
-#define UTILITY_INTROSPECTION_TYPE_ID_HPP
-
-#include <typeinfo>
-#include <iosfwd>
-
-namespace Utility
-{
- namespace Introspection
- {
- class TypeId
- {
- public:
- template<typename T>
- TypeId (T const& t);
-
- TypeId (std::type_info const& tid);
-
- public:
- bool
- operator == (TypeId const& other) const;
-
- bool
- operator != (TypeId const& other) const;
-
- bool
- operator < (TypeId const& other) const;
-
- friend std::ostream&
- operator << (std::ostream& os, TypeId const& t);
-
- private:
- std::type_info const* tid_;
- };
- }
-}
-
-#include "Utility/Introspection/TypeId.tpp"
-#include "Utility/Introspection/TypeId.ipp"
-
-#endif // UTILITY_INTROSPECTION_TYPE_ID_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/TypeId.ipp b/ACE/contrib/utility/Utility/Introspection/TypeId.ipp
deleted file mode 100644
index 83a5a503517..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/TypeId.ipp
+++ /dev/null
@@ -1,37 +0,0 @@
-// file : Utility/Introspection/TypeId.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-// cvs-id : $Id$
-
-namespace Utility
-{
- namespace Introspection
- {
- inline TypeId::
- TypeId (std::type_info const& tid)
- : tid_ (&tid)
- {
- }
-
-
- inline bool TypeId::
- operator == (TypeId const& other) const
- {
- return *tid_ == *other.tid_;
- }
-
- inline bool TypeId::
- operator != (TypeId const& other) const
- {
- return *tid_ != *other.tid_;
- }
-
- inline bool TypeId::
- operator < (TypeId const& other) const
- {
- return tid_->before (*other.tid_);
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/TypeId.tpp b/ACE/contrib/utility/Utility/Introspection/TypeId.tpp
deleted file mode 100644
index 7c3daef603c..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/TypeId.tpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// file : Utility/Introspection/TypeId.tpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace Introspection
- {
- template<typename T>
- inline TypeId::
- TypeId (T const& t)
- : tid_ (&typeid (t))
- {
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/TypeInfo.hpp b/ACE/contrib/utility/Utility/Introspection/TypeInfo.hpp
deleted file mode 100644
index 4321fdc522c..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/TypeInfo.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// file : Utility/Introspection/TypeInfo.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_INTROSPECTION_TYPE_INFO_HPP
-#define UTILITY_INTROSPECTION_TYPE_INFO_HPP
-
-#include <vector>
-
-#include "Utility/Introspection/TypeId.hpp"
-
-namespace Utility
-{
- namespace Introspection
- {
- //
- //
- //
- struct Access
- {
- enum Value
- {
- PRIVATE,
- PROTECTED,
- PUBLIC
- };
- };
-
- // Forward declaration of class TypeInfo.
- //
- //
- class TypeInfo;
-
- //
- //
- //
- class BaseInfo
- {
- public:
- BaseInfo (Access::Value access,
- bool virtual_base,
- TypeInfo const& ti);
-
- public:
- TypeInfo const&
- type_info () const;
-
- Access::Value
- access () const;
-
- bool
- virtual_base () const;
-
- private:
- TypeInfo const* ti_;
- bool virtual_base_;
- Access::Value access_;
- };
-
-
- //
- //
- //
- class TypeInfo
- {
- private:
- typedef
- std::vector<BaseInfo>
- BaseInfoList;
-
- public:
- typedef
- BaseInfoList::const_iterator
- BaseIterator;
-
- public:
- TypeInfo (TypeId const& tid);
-
- TypeId
- type_id () const;
-
- BaseIterator
- begin_base () const;
-
- BaseIterator
- end_base () const;
-
- void
- add_base (Access::Value access,
- bool virtual_base,
- TypeInfo const& ti);
-
- private:
- TypeId tid_;
- BaseInfoList base_;
- };
- }
-}
-
-#include "Utility/Introspection/TypeInfo.ipp"
-
-#endif // UTILITY_INTROSPECTION_TYPE_INFO_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Introspection/TypeInfo.ipp b/ACE/contrib/utility/Utility/Introspection/TypeInfo.ipp
deleted file mode 100644
index 395cf7d6539..00000000000
--- a/ACE/contrib/utility/Utility/Introspection/TypeInfo.ipp
+++ /dev/null
@@ -1,77 +0,0 @@
-// file : Utility/Introspection/TypeInfo.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace Introspection
- {
- // BaseInfo
- //
- //
-
- inline BaseInfo::
- BaseInfo (Access::Value access, bool virtual_base, TypeInfo const& ti)
- : ti_ (&ti),
- virtual_base_ (virtual_base),
- access_ (access)
- {
- }
-
- inline TypeInfo const& BaseInfo::
- type_info () const
- {
- return *ti_;
- }
-
-
- inline Access::Value BaseInfo::
- access () const
- {
- return access_;
- }
-
- inline bool BaseInfo::
- virtual_base () const
- {
- return virtual_base_;
- }
-
-
- // TypeInfo
- //
- //
- inline TypeInfo::
- TypeInfo (TypeId const& tid)
- : tid_ (tid)
- {
- }
-
- inline TypeId TypeInfo::
- type_id () const
- {
- return tid_;
- }
-
- inline TypeInfo::BaseIterator TypeInfo::
- begin_base () const
- {
- return base_.begin ();
- }
-
-
- inline TypeInfo::BaseIterator TypeInfo::
- end_base () const
- {
- return base_.end ();
- }
-
- inline void TypeInfo::
- add_base (Access::Value access, bool virtual_base, TypeInfo const& ti)
- {
- base_.push_back (BaseInfo (access, virtual_base, ti));
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Makefile b/ACE/contrib/utility/Utility/Makefile
deleted file mode 100644
index e6951f317fa..00000000000
--- a/ACE/contrib/utility/Utility/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : Utility/Makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2002-2003 Boris Kolpackov
-# license : http://kolpackov.net/license.html
-
-root := ..
-
-include $(root)/BuildRules/Bootstrap.rules
-
-$(call include, $(root)/BuildRules/Recursion.pre.rules)
-
-target_makefile_list :=
-target_directory_list := Introspection
-
-$(call include, $(root)/BuildRules/Recursion.post.rules)
-# $Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.hpp b/ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.hpp
deleted file mode 100644
index f6fac55a359..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// file : Utility/ReferenceCounting/DefaultImpl.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_REFERENCE_COUNTING_DEFAULT_IMPL_HPP
-#define UTILITY_REFERENCE_COUNTING_DEFAULT_IMPL_HPP
-
-#include "Utility/ExH/Compound.hpp"
-#include "Utility/ExH/Logic/DescriptiveException.hpp"
-
-#include "Utility/Synch/Policy/Null.hpp"
-
-#include "Utility/ReferenceCounting/Interface.hpp"
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- // Default reference counter implementation with parameterised
- // synchronization policy. It is assumed that none of the SynchPolicy
- // types throw any logic exceptions. If in fact they do then these
- // exceptions won't be handled and will be automatically converted
- // to system exceptions.
-
- template <typename SynchPolicy = Utility::Synch::Policy::Null>
- class DefaultImpl : public virtual Interface
- {
- public:
- class InconsistentState_ {};
-
- typedef
- ExH::Compound<InconsistentState_, Exception>
- InconsistentState;
-
- public:
- DefaultImpl ();
-
- virtual
- ~DefaultImpl () throw ();
-
- public:
- virtual void
- add_ref () const;
-
- virtual void
- remove_ref () const throw ();
-
- virtual count_t
- refcount_value () const;
-
- protected:
- virtual void
- add_ref_i () const;
-
- virtual bool
- remove_ref_i () const;
-
- virtual count_t
- refcount_value_i () const;
-
- typename SynchPolicy::Mutex&
- lock_i () const throw ();
-
- protected:
- typedef
- typename SynchPolicy::Mutex
- Mutex_;
-
- typedef
- typename SynchPolicy::ReadGuard
- ReadGuard_;
-
- typedef
- typename SynchPolicy::WriteGuard
- WriteGuard_;
-
- protected:
- mutable count_t ref_count_;
-
- private:
- mutable Mutex_ lock_;
-
- private:
- // Copy semanic is not supported.
- DefaultImpl (DefaultImpl const&) throw ();
- DefaultImpl&
- operator= (DefaultImpl const&) throw ();
- };
- }
-}
-
-#include "Utility/ReferenceCounting/DefaultImpl.ipp"
-
-#endif // UTILITY_REFERENCE_COUNTING_DEFAULT_IMPL_HPP
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.ipp b/ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.ipp
deleted file mode 100644
index eaed51a644a..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.ipp
+++ /dev/null
@@ -1,105 +0,0 @@
-// file : Utility/ReferenceCounting/DefaultImpl.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- // c-tor & d-tor
-
- template <typename SynchPolicy>
- DefaultImpl<SynchPolicy>::
- DefaultImpl ()
- : ref_count_ (1),
- lock_ ()
- {
- }
-
- template <typename SynchPolicy>
- DefaultImpl<SynchPolicy>::
- ~DefaultImpl () throw ()
- {
- }
-
- // add_ref, remove_ref and refcount_value member functions
-
- template <typename SynchPolicy>
- void DefaultImpl<SynchPolicy>::
- add_ref () const
- {
- WriteGuard_ guard (lock_);
- add_ref_i ();
- }
-
- template <typename SynchPolicy>
- void DefaultImpl<SynchPolicy>::
- remove_ref () const throw ()
- {
- bool destroy (false);
- try
- {
- WriteGuard_ guard (lock_);
- destroy = remove_ref_i ();
- }
- catch (...)
- {
- // there is nothing we can do
- }
-
- if (destroy) delete this;
- }
-
- template <typename SynchPolicy>
- Interface::count_t DefaultImpl<SynchPolicy>::
- refcount_value () const
- {
- ReadGuard_ guard (lock_);
- return refcount_value_i ();
- }
-
- // add_ref_i, remove_ref_i and refcount_value_i member functions
-
- template <typename SynchPolicy>
- void DefaultImpl<SynchPolicy>::
- add_ref_i () const
- {
- ref_count_++;
- }
-
- template <typename SynchPolicy>
- bool DefaultImpl<SynchPolicy>::
- remove_ref_i () const
- {
- bool destroy (false);
- if (ref_count_ > 0)
- {
- if (--ref_count_ == 0) destroy = true;
- }
- else
- {
- throw InconsistentState (
- "Utility::ReferenceCounting::DefaultImpl::_remove_ref_i: "
- "reference counter is zero.");
- }
- return destroy;
-
- }
-
- template <typename SynchPolicy>
- Interface::count_t DefaultImpl<SynchPolicy>::
- refcount_value_i () const
- {
- return ref_count_;
- }
-
- template <typename SynchPolicy>
- typename SynchPolicy::Mutex& DefaultImpl<SynchPolicy>::
- lock_i() const throw ()
- {
- return lock_;
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.hpp b/ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.hpp
deleted file mode 100644
index 20346e859b3..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// file : Utility/ReferenceCounting/ExternalLockImpl.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_REFERENCE_COUNTING_EXTERNAL_LOCK_IMPL_HPP
-#define UTILITY_REFERENCE_COUNTING_EXTERNAL_LOCK_IMPL_HPP
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
-
- /*
-
- Not ported yet.
-
- class ExternalLockRefCounter : public virtual Util::RefCountBase
- {
- public:
- ExternalLockRefCounter (ACE_Lock* lock = 0);
- virtual ~ExternalLockRefCounter ();
-
- void init (ACE_Lock* lock);
-
- public:
-
- virtual void _add_ref ();
- virtual void _remove_ref ();
- virtual unsigned long _refcount_value ();
-
- protected:
-
- virtual void _add_ref_i ();
- virtual bool _remove_ref_i ();
- virtual unsigned long _refcount_value_i ();
-
- ACE_Lock* lock_i ();
-
- private:
-
- typedef ACE_Guard <ACE_Lock> Guard_;
-
- ACE_Lock* lock_;
- unsigned long ref_count_;
-
- private:
- ExternalLockRefCounter (const ExternalLockRefCounter& );
- void operator= (const ExternalLockRefCounter& );
- };
-
- */
- }
-}
-
-#include "Utility/ReferenceCounting/ExternalLockImpl.ipp"
-
-#endif // UTILITY_REFERENCE_COUNTING_EXTERNAL_LOCK_IMPL_HPP
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.ipp b/ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.ipp
deleted file mode 100644
index 7552d411f27..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.ipp
+++ /dev/null
@@ -1,122 +0,0 @@
-// file : Utility/ReferenceCounting/ExternalLockImpl.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- /*
- inline
- ExternalLockRefCounter::ExternalLockRefCounter (ACE_Lock* lock)
- : lock_ (lock),
- ref_count_ (1)
- {
- }
-
- inline
- void
- ExternalLockRefCounter::init (ACE_Lock* lock)
- {
- lock_ = lock;
- }
-
- inline
- ExternalLockRefCounter::~ExternalLockRefCounter ()
- {
- }
-
- inline
- ACE_Lock*
- ExternalLockRefCounter::lock_i ()
- {
- return lock_;
- }
-
- inline
- void
- ExternalLockRefCounter::_add_ref ()
- {
- if (lock_)
- {
- Guard_ guard (*lock_);
- _add_ref_i ();
- }
- else
- {
- _add_ref_i ();
- }
- }
-
- inline
- void
- ExternalLockRefCounter::_remove_ref ()
- {
- bool destroy = false;
- {
- if (lock_)
- {
- Guard_ guard (*lock_);
- destroy = _remove_ref_i ();
- }
- else
- {
- destroy = _remove_ref_i ();
- }
- }
- if (destroy) delete this;
- }
-
- inline
- unsigned long
- ExternalLockRefCounter::_refcount_value ()
- {
- if (lock_)
- {
- Guard_ guard (*lock_);
- return _refcount_value_i ();
- }
- else
- {
- return _refcount_value_i ();
- }
- }
-
- inline
- void
- ExternalLockRefCounter::_add_ref_i ()
- {
- ref_count_++;
- }
-
- inline
- bool
- ExternalLockRefCounter::_remove_ref_i ()
- {
- bool destroy = false;
- if (ref_count_ > 0)
- {
- if (--ref_count_ == 0) destroy = true;
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "ExternalLockRefCounter::_remove_ref() "
- " _remove_ref() called while ref_coundt == 0\n"
- ));
- }
- return destroy;
- }
-
- inline
- unsigned long
- ExternalLockRefCounter::_refcount_value_i ()
- {
- return ref_count_;
- }
- */
- }
-}
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/Interface.hpp b/ACE/contrib/utility/Utility/ReferenceCounting/Interface.hpp
deleted file mode 100644
index 4f0a8f24201..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/Interface.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// file : Utility/ReferenceCounting/Interface.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_REFERENCE_COUNTING_INTERFACE_HPP
-#define UTILITY_REFERENCE_COUNTING_INTERFACE_HPP
-
-#include "Utility/ExH/Compound.hpp"
-#include "Utility/ExH/System/Exception.hpp"
-#include "Utility/ExH/Logic/Exception.hpp"
-#include "Utility/ExH/Logic/DescriptiveException.hpp"
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- // Interface to a reference-countable object. Note that _remove_ref ()
- // member function has a no-throw semantic. Even though it can lead to
- // a diagnostic loss it was made no-throw because it has a destructor
- // semantic.
-
- class Interface
- {
- public:
- typedef
- unsigned long
- count_t;
-
- typedef
- ExH::System::Exception
- SystemException;
-
- typedef ExH::Logic::DescriptiveException Exception;
-
- public:
- virtual void
- add_ref () const = 0;
-
- virtual void
- remove_ref () const throw () = 0;
-
- virtual count_t
- refcount_value () const = 0;
-
- protected:
- Interface () throw ();
-
- virtual
- ~Interface () throw ();
-
- protected:
- virtual void
- add_ref_i () const = 0;
-
- virtual bool
- remove_ref_i () const = 0;
-
- virtual count_t
- refcount_value_i () const = 0;
-
- private:
- // Copy semanic is not supported.
- Interface (Interface const&) throw ();
- Interface&
- operator= (Interface const&) throw ();
- };
-
- template <typename Type>
- Type*
- add_ref (Type* ptr);
- }
-}
-
-#include "Utility/ReferenceCounting/Interface.tpp"
-#include "Utility/ReferenceCounting/Interface.ipp"
-
-#endif // UTILITY_REFERENCE_COUNTING_INTERFACE_HPP
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/Interface.ipp b/ACE/contrib/utility/Utility/ReferenceCounting/Interface.ipp
deleted file mode 100644
index f901db4b248..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/Interface.ipp
+++ /dev/null
@@ -1,22 +0,0 @@
-// file : Utility/ReferenceCounting/Interface.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- inline Interface::
- ~Interface () throw ()
- {
- }
-
- inline Interface::
- Interface () throw ()
- {
- }
- }
-}
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/Interface.tpp b/ACE/contrib/utility/Utility/ReferenceCounting/Interface.tpp
deleted file mode 100644
index ff426ff7bcc..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/Interface.tpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// file : Utility/ReferenceCounting/Interface.tpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- template <typename Type>
- inline Type*
- add_ref (Type* ptr)
- {
- if (ptr != 0) ptr->add_ref ();
- return ptr;
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/ReferenceCounting.hpp b/ACE/contrib/utility/Utility/ReferenceCounting/ReferenceCounting.hpp
deleted file mode 100644
index a20fe0d888c..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/ReferenceCounting.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// file : Utility/ReferenceCounting/ReferenceCounting.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_REFERENCE_COUNTING_REFERENCE_COUNTING_HPP
-#define UTILITY_REFERENCE_COUNTING_REFERENCE_COUNTING_HPP
-
-#include "Utility/ReferenceCounting/Interface.hpp"
-#include "Utility/ReferenceCounting/DefaultImpl.hpp"
-#include "Utility/ReferenceCounting/SmartPtr.hpp"
-#include "Utility/ReferenceCounting/StrictPtr.hpp"
-
-#endif // UTILITY_REFERENCE_COUNTING_REFERENCE_COUNTING_HPP
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.hpp b/ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.hpp
deleted file mode 100644
index ab6163e5d18..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// file : Utility/ReferenceCounting/SmartPtr.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_REFERENCE_COUNTING_SMART_PTR_HPP
-#define UTILITY_REFERENCE_COUNTING_SMART_PTR_HPP
-
-#include "Utility/ExH/Compound.hpp"
-#include "Utility/ExH/Logic/DescriptiveException.hpp"
-
-#include "Utility/ReferenceCounting/Interface.hpp"
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- template <typename T>
- class SmartPtr
- {
- public:
- typedef
- T
- Type;
-
- class NotInitialized_ {};
- typedef
- ExH::Compound<NotInitialized_, ExH::Logic::DescriptiveException>
- NotInitialized;
-
- public:
- // c-tor's
-
- SmartPtr () throw ();
- SmartPtr (Type* ptr) throw ();
- SmartPtr (SmartPtr<Type> const& s_ptr);
-
- template <typename Other>
- SmartPtr (SmartPtr<Other> const& s_ptr);
-
- // d-tor
-
- ~SmartPtr () throw ();
-
- // assignment & copy-assignment operators
-
- SmartPtr<Type>&
- operator= (Type* ptr) throw ();
-
- SmartPtr<Type>&
- operator= (SmartPtr<Type> const& s_ptr);
-
- template <typename Other>
- SmartPtr<Type>&
- operator= (SmartPtr<Other> const& s_ptr);
-
- //conversions
-
- operator Type* () const throw ();
-
- // accessors
-
- Type*
- operator-> () const;
-
- Type*
- in () const throw ();
-
- Type*
- retn() throw ();
-
- private:
- Type* ptr_;
- };
-
- // Specialization of add_ref function for SmartPtr<T>
- template <typename T>
- T*
- add_ref (SmartPtr<T> const& ptr);
-
-
- // Dynamic type conversion function for SmartPtr's
- template <typename D, typename S>
- D*
- smart_cast (SmartPtr<S> const& s);
-
- // Acquisition function
- template <typename T>
- SmartPtr<T>
- acquire (T* ptr);
- }
-}
-
-#include "Utility/ReferenceCounting/SmartPtr.tpp"
-
-#endif // UTILITY_REFERENCE_COUNTING_SMART_PTR_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.tpp b/ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.tpp
deleted file mode 100644
index 515eee7c1a9..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.tpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// file : Utility/ReferenceCounting/SmartPtr.tpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- // c-tor's & d-tor
-
- template <typename T>
- SmartPtr<T>::
- SmartPtr () throw ()
- : ptr_ (0)
- {
- }
-
- template <typename T>
- SmartPtr<T>::
- SmartPtr (Type* ptr) throw ()
- : ptr_ (ptr)
- {
- }
-
- template <typename T>
- SmartPtr<T>::
- SmartPtr (SmartPtr<Type> const& s_ptr)
- : ptr_ (add_ref (s_ptr.in ()))
- {
- }
-
- template <typename T>
- template <typename Other>
- SmartPtr<T>::
- SmartPtr (SmartPtr<Other> const& s_ptr)
- : ptr_ (add_ref (s_ptr.in ()))
- {
- }
-
-
- template <typename T>
- SmartPtr<T>::
- ~SmartPtr () throw ()
- {
- // This is an additional catch-all layer to protect from
- // non-conformant Type.
- try
- {
- if (ptr_ != 0) ptr_->remove_ref ();
- }
- catch (...)
- {
- }
- }
-
- // operator=
-
- template <typename T>
- SmartPtr<T>& SmartPtr<T>::
- operator= (Type* ptr) throw ()
- {
- if (ptr_ != 0) ptr_->remove_ref ();
- ptr_ = ptr;
- return *this;
- }
-
-
- template <typename T>
- SmartPtr<T>& SmartPtr<T>::
- operator= (SmartPtr<Type> const& s_ptr)
- {
- Type* old_ptr (ptr_);
- Type* new_ptr (add_ref (s_ptr.in ())); // this can throw
- if (old_ptr != 0) old_ptr->remove_ref ();
-
- ptr_ = new_ptr; // commit
-
- return *this;
- }
-
-
- template <typename T>
- template <typename Other>
- SmartPtr<T>& SmartPtr<T>::
- operator= (SmartPtr<Other> const& s_ptr)
- {
- Type* old_ptr (ptr_);
- Other* new_ptr (add_ref (s_ptr.in ())); // this can throw
- if (old_ptr != 0) old_ptr->remove_ref ();
-
- ptr_ = new_ptr; // commit
-
- return *this;
- }
-
- // conversions
-
- template <typename T>
- SmartPtr<T>::
- operator T* () const throw ()
- {
- return ptr_;
- }
-
-
- // accessors
-
- template <typename T>
- T* SmartPtr<T>::
- operator-> () const
- {
- if (ptr_ == 0)
- {
- throw NotInitialized(
- "Utility::ReferenceCounting::SmartPtr::operator-> : "
- "unable to dereference NULL pointer.");
- }
- return ptr_;
- }
-
- template <typename T>
- T* SmartPtr<T>::
- in () const throw ()
- {
- return ptr_;
- }
-
- template <typename T>
- T* SmartPtr<T>::
- retn() throw ()
- {
- Type* ret (ptr_);
- ptr_ = 0;
- return ret;
- }
-
- // Specialization of add_ref function for SmartPtr<T>
- template <typename T>
- T*
- add_ref (SmartPtr<T> const& ptr)
- {
- // delegate to generic implementation
- return add_ref (ptr.in ());
- }
-
- // Dynamic type conversion function for SmartPtr's
- template <typename D, typename S>
- D*
- smart_cast (SmartPtr<S> const& s)
- {
- return add_ref (dynamic_cast<D*>(s.in ()));
- }
-
- // Acquisition function
- template <typename T>
- SmartPtr<T>
- acquire (T* ptr)
- {
- return SmartPtr<T> (ptr);
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.hpp b/ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.hpp
deleted file mode 100644
index 76b1781f911..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-// file : Utility/ReferenceCounting/StrictPtr.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_REFERENCE_COUNTING_STRICT_PTR_HPP
-#define UTILITY_REFERENCE_COUNTING_STRICT_PTR_HPP
-
-#include "Utility/ExH/Compound.hpp"
-#include "Utility/ExH/Logic/DescriptiveException.hpp"
-
-#include "Utility/ReferenceCounting/Interface.hpp"
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- template <typename T>
- class StrictPtr
- {
- public:
- typedef
- T
- Type;
-
- class NotInitialized_ {};
- typedef
- ExH::Compound<NotInitialized_, ExH::Logic::DescriptiveException>
- NotInitialized;
-
- public:
- // c-tor's
-
- StrictPtr () throw ();
-
- explicit
- StrictPtr (Type* ptr) throw ();
-
- StrictPtr (StrictPtr<Type> const& s_ptr);
-
- template <typename Other>
- StrictPtr (StrictPtr<Other> const& s_ptr);
- // d-tor
-
- ~StrictPtr () throw ();
-
- // assignment & copy-assignment operators
-
- StrictPtr<Type>&
- operator= (Type* ptr) throw ();
-
- StrictPtr<Type>&
- operator= (StrictPtr<Type> const& s_ptr);
-
- template <typename Other>
- StrictPtr<Type>&
- operator= (StrictPtr<Other> const& s_ptr);
-
- // conversions
-
- // Note: implicit conversion (operator Type* ()) is not supported.
-
- // comparison
-
- bool
- operator== (Type* other) const throw ();
-
- bool
- operator!= (Type* other) const throw ();
-
- // accessors
-
- Type*
- operator-> () const;
-
- Type*
- in () const throw ();
-
- Type*
- retn() throw ();
-
- private:
- Type* ptr_;
- };
-
- // Specialization of add_ref function for StrictPtr<T>
- template <typename T>
- T*
- add_ref (StrictPtr<T> const& ptr);
-
- // Dynamic type conversion function for StrictPtr's
- template <typename D, typename S>
- StrictPtr<D>
- strict_cast (StrictPtr<S> const& s);
- }
-}
-
-#include "Utility/ReferenceCounting/StrictPtr.tpp"
-
-#endif // UTILITY_REFERENCE_COUNTING_STRICT_PTR_HPP
-
-//$Id$
diff --git a/ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.tpp b/ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.tpp
deleted file mode 100644
index 9e15632e7a6..00000000000
--- a/ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.tpp
+++ /dev/null
@@ -1,161 +0,0 @@
-// file : Utility/ReferenceCounting/StrictPtr.tpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ReferenceCounting
- {
- // c-tor's & d-tor
-
- template <typename T>
- StrictPtr<T>::
- StrictPtr () throw ()
- : ptr_ (0)
- {
- }
-
- template <typename T>
- StrictPtr<T>::
- StrictPtr (Type* ptr) throw ()
- : ptr_ (ptr)
- {
- }
-
- template <typename T>
- StrictPtr<T>::
- StrictPtr (StrictPtr<Type> const& s_ptr)
- : ptr_ (add_ref (s_ptr.in ()))
- {
- }
-
- template <typename T>
- template <typename Other>
- StrictPtr<T>::
- StrictPtr (StrictPtr<Other> const& s_ptr)
- : ptr_ (add_ref (s_ptr.in ()))
- {
- }
-
-
- template <typename T>
- StrictPtr<T>::
- ~StrictPtr () throw ()
- {
- // This is an additional catch-all layer to protect from
- // non-conformant Type.
- try
- {
- if (ptr_ != 0) ptr_->remove_ref ();
- }
- catch (...)
- {
- }
- }
-
- // operator=
-
- template <typename T>
- StrictPtr<T>&
- StrictPtr<T>::operator= (Type* ptr) throw ()
- {
- if (ptr_ != 0) ptr_->remove_ref ();
- ptr_ = ptr;
- return *this;
- }
-
- template <typename T>
- StrictPtr<T>& StrictPtr<T>::
- operator= (StrictPtr<Type> const& s_ptr)
- {
- Type* old_ptr (ptr_);
- Type* new_ptr (add_ref (s_ptr.in ())); // this can throw
- if (old_ptr != 0) old_ptr->remove_ref ();
-
- ptr_ = new_ptr; // commit
-
- return *this;
- }
-
-
- template <typename T>
- template <typename Other>
- StrictPtr<T>& StrictPtr<T>::
- operator= (StrictPtr<Other> const& s_ptr)
- {
- Type* old_ptr (ptr_);
- Other* new_ptr (add_ref (s_ptr.in ())); // this can throw
- if (old_ptr != 0) old_ptr->remove_ref ();
-
- ptr_ = new_ptr; // commit
-
- return *this;
- }
-
- // comparison
-
- template <typename T>
- bool StrictPtr<T>::
- operator== (Type* other) const throw ()
- {
- return ptr_ == other;
- }
-
- template <typename T>
- bool StrictPtr<T>::
- operator!= (Type* other) const throw ()
- {
- return ptr_ != other;
- }
-
- // accessors
-
- template <typename T>
- T* StrictPtr<T>::
- operator-> () const
- {
- if (ptr_ == 0)
- {
- throw NotInitialized(
- "Utility::ReferenceCounting::StrictPtr::operator-> : "
- "unable to dereference NULL pointer.");
- }
- return ptr_;
- }
-
- template <typename T>
- T* StrictPtr<T>::
- in () const throw ()
- {
- return ptr_;
- }
-
- template <typename T>
- T* StrictPtr<T>::
- retn() throw ()
- {
- Type* ret (ptr_);
- ptr_ = 0;
- return ret;
- }
-
- // Specialization of add_ref function for StrictPtr<T>
- template <typename T>
- T*
- add_ref (StrictPtr<T> const& ptr)
- {
- // delegate to generic implementation
- return add_ref (ptr.in ());
- }
-
- // Dynamic type conversion function for StrictPtr's
- template <typename D, typename S>
- StrictPtr<D>
- strict_cast (StrictPtr<S> const& s)
- {
- return StrictPtr<D>(add_ref (dynamic_cast<D*>(s.in ())));
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Synch/Policy/Null.hpp b/ACE/contrib/utility/Utility/Synch/Policy/Null.hpp
deleted file mode 100644
index cfc9c8f788e..00000000000
--- a/ACE/contrib/utility/Utility/Synch/Policy/Null.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// file : Utility/Synch/Policy/Null.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_SYNCH_POLICY_NULL_HPP
-#define UTILITY_SYNCH_POLICY_NULL_HPP
-
-namespace Utility
-{
- namespace Synch
- {
- namespace Policy
- {
-
- class NullMutex
- {
- };
-
- class NullGuard
- {
- public:
- explicit
- NullGuard (NullMutex&) throw ();
-
- private:
- NullGuard (NullGuard const&) throw ();
-
- NullGuard&
- operator= (NullGuard const&) throw ();
- };
-
- struct Null
- {
- typedef
- NullMutex
- Mutex;
-
- typedef
- NullGuard
- ReadGuard;
-
- typedef
- NullGuard
- WriteGuard;
- };
- }
- }
-}
-
-#include "Utility/Synch/Policy/Null.ipp"
-
-#endif // UTILITY_SYNCH_POLICY_NULL_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Utility/Synch/Policy/Null.ipp b/ACE/contrib/utility/Utility/Synch/Policy/Null.ipp
deleted file mode 100644
index dbc4c78b698..00000000000
--- a/ACE/contrib/utility/Utility/Synch/Policy/Null.ipp
+++ /dev/null
@@ -1,20 +0,0 @@
-// file : Utility/Synch/Policy/Null.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace Synch
- {
- namespace Policy
- {
- inline NullGuard::
- NullGuard (NullMutex&) throw ()
- {
- }
- }
- }
-}
-
-//$Id$
diff --git a/ACE/contrib/utility/Vault/StringConverter.hpp b/ACE/contrib/utility/Vault/StringConverter.hpp
deleted file mode 100644
index 0bcb94676b7..00000000000
--- a/ACE/contrib/utility/Vault/StringConverter.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// file : Utility/ExH/StringConverter.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_EX_H_STRING_CONVERTER_HPP
-#define UTILITY_EX_H_STRING_CONVERTER_HPP
-
-#include <string>
-
-#include "Utility/ExH/Converter.hpp"
-
-namespace Utility
-{
- namespace ExH
- {
- template <>
- char const*
- converter (std::string const& t) throw ();
- }
-}
-
-#include "Utility/ExH/StringConverter.ipp"
-
-#endif // UTILITY_EX_H_STRING_CONVERTER_HPP
-
-//$Id$
diff --git a/ACE/contrib/utility/Vault/StringConverter.ipp b/ACE/contrib/utility/Vault/StringConverter.ipp
deleted file mode 100644
index c508c8c752a..00000000000
--- a/ACE/contrib/utility/Vault/StringConverter.ipp
+++ /dev/null
@@ -1,18 +0,0 @@
-// file : Utility/ExH/StringConverter.ipp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace ExH
- {
- template <>
- inline char const*
- converter (std::string const& t) throw ()
- {
- return t.c_str ();
- }
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Vault/hetero/map b/ACE/contrib/utility/Vault/hetero/map
deleted file mode 100644
index 0a6113e5c31..00000000000
--- a/ACE/contrib/utility/Vault/hetero/map
+++ /dev/null
@@ -1,13 +0,0 @@
-// file : Utility/hetero/map
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_HETERO_MAP
-#define UTILITY_HETERO_MAP
-
-#include "Utility/hetero/map.hpp"
-
-#endif // UTILITY_HETERO_MAP
-
-// $Id$
diff --git a/ACE/contrib/utility/Vault/hetero/map.hpp b/ACE/contrib/utility/Vault/hetero/map.hpp
deleted file mode 100644
index 2959c06fbd8..00000000000
--- a/ACE/contrib/utility/Vault/hetero/map.hpp
+++ /dev/null
@@ -1,249 +0,0 @@
-// file : Utility/hetero/map.hpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-#ifndef UTILITY_HETERO_MAP_HPP
-#define UTILITY_HETERO_MAP_HPP
-
-#include <typeinfo>
-#include <map>
-
-namespace Utility
-{
- namespace hetero
- {
- template <typename Key>
- class map
- {
- private:
- struct ValueBase
- {
- virtual
- ~ValueBase () {}
- };
-
- template <typename T>
- class Value : public ValueBase
- {
- public:
- Value (T const& t)
- : t_ (t)
- {
- }
-
- T t_;
- };
-
- typedef
- std::map<Key, ValueBase*>
- ValueMap;
-
- typedef
- typename std::map<Key, ValueBase*>::value_type
- ValueType;
-
- public:
-
- class Typing {};
-
- template <typename T>
- struct type
- {
- typedef std::pair <Key const, T> value_type;
- };
-
- template <typename First>
- struct Pair
- {
- First first;
-
- Pair ()
- : first (),
- second_ (0)
- {
- }
-
- Pair (First const& k, ValueBase* v)
- : first (k),
- second_ (v)
- {
- }
-
- template <typename T>
- T&
- second ()
- {
- Value<T>* v = dynamic_cast<Value<T>*> (second_);
- if (v == 0) throw Typing ();
-
- return v->t_;
- }
-
- template <typename T>
- T const&
- second () const
- {
- Value<T>* v = dynamic_cast<Value<T>*> (second_);
- if (v == 0) throw Typing ();
-
- return v->t_;
- }
-
- private:
- ValueBase* second_;
- };
-
- friend
- class iterator
- {
- public:
- iterator (typename ValueMap::iterator const& i)
- : i_ (i)
- {
- }
-
- public:
-
- Pair<Key>&
- operator* ()
- {
- current_ = Pair<Key> (i_->first, i_->second);
- return current_;
- }
-
- Pair<Key>*
- operator-> ()
- {
- current_ = Pair<Key> (i_->first, i_->second);
- return &current_;
- }
-
- public:
- bool
- operator== (iterator const& other)
- {
- return i_ == other.i_;
- }
-
- bool
- operator!= (iterator const& other)
- {
- return i_ != other.i_;
- }
-
- private:
- typename ValueMap::iterator i_;
- Pair<Key> current_;
- };
-
-
- friend
- class const_iterator
- {
- public:
- const_iterator (typename ValueMap::const_iterator const& i)
- : i_ (i)
- {
- }
-
- public:
-
- Pair<Key> const&
- operator* ()
- {
- current_ = Pair<Key> (i_->first, i_->second);
- return current_;
- }
-
- Pair<Key> const*
- operator-> ()
- {
- current_ = Pair<Key> (i_->first, i_->second);
- return &current_;
- }
-
- public:
- bool
- operator== (const_iterator const& other)
- {
- return i_ == other.i_;
- }
-
- bool
- operator!= (const_iterator const& other)
- {
- return i_ != other.i_;
- }
-
- private:
- typename ValueMap::const_iterator i_;
- Pair<Key> current_;
- };
-
- public:
- iterator
- begin ()
- {
- return iterator (map_.begin ());
- }
-
- const_iterator
- begin () const
- {
- return const_iterator (map_.begin ());
- }
-
- iterator
- end ()
- {
- return iterator (map_.end ());
- }
-
- const_iterator
- end () const
- {
- return const_iterator (map_.end ());
- }
-
- public:
-
- template <typename T>
- bool
- insert (std::pair <Key, T> const& x)
- {
- ValueType v (x.first, new Value<T> (x.second));
- return map_.insert (v).second;
- }
-
- template <typename T>
- bool
- insert (Key const& k, T const& t)
- {
- ValueType v (k, new Value<T> (t));
- return map_.insert (v).second;
- }
-
- public:
- iterator
- find (Key const& k)
- {
- return iterator (map_.find (k));
- }
-
- const_iterator
- find (Key const& k) const
- {
- return const_iterator (map_.find (k));
- }
-
- private:
- ValueMap map_;
- };
- }
-}
-
-#include "Utility/hetero/map.tpp"
-
-#endif // UTILITY_HETERO_MAP_HPP
-//$Id$
diff --git a/ACE/contrib/utility/Vault/hetero/map.tpp b/ACE/contrib/utility/Vault/hetero/map.tpp
deleted file mode 100644
index f2e0dfe69b8..00000000000
--- a/ACE/contrib/utility/Vault/hetero/map.tpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// file : utility/hetero/map.tpp
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2002-2003 Boris Kolpackov
-// license : http://kolpackov.net/license.html
-
-namespace Utility
-{
- namespace hetero
- {
- }
-}
-//$Id$
diff --git a/ACE/contrib/utility/Version b/ACE/contrib/utility/Version
deleted file mode 100644
index 937a6c086f5..00000000000
--- a/ACE/contrib/utility/Version
+++ /dev/null
@@ -1,3 +0,0 @@
-1.2.2
-
-$Id$
diff --git a/ACE/contrib/utility/license.html b/ACE/contrib/utility/license.html
deleted file mode 100644
index 89388e0aff1..00000000000
--- a/ACE/contrib/utility/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!--
-
-file : kolpackov.net/license.html
-author : Boris Kolpackov <boris@kolpackov.net>
-copyright : Copyright (c) 2003 Boris Kolpackov
-license : http://kolpackov.net/license.html
-
--->
-
-<html>
-
-<head>
-
- <title>kolpackov.net/license.html</title>
-
- <meta name="author" content="Boris Kolpackov"/>
- <meta name="copyright" content="&copy; 2001-2003 Boris Kolpackov"/>
- <meta name="keywords" content="Boris,Kolpackov,Kolpakov,software,license,copyright"/>
- <meta name="description" content="software license"/>
- <meta http-equiv="Content-Language" content="en"/>
-
- <style type="text/css">
- body {
- font-family: monospace;
- }
- </style>
-
-</head>
-
-<body>
-
-<div align="left">
-<table width="640" border="0" cellspacing="0" cellpadding="0">
-<tr>
-<td>
-
- <p>This software or documentation is provided 'as-is', without any
- express or implied warranty. In no event will the author or contributors
- be held liable for any damages arising from the use of this software
- or documentation.</p>
-
- <p>Permission is granted to anyone to use this software or documentation
- for any purpose, including commercial applications, and to alter it and
- redistribute it freely, subject to the following restrictions:</p>
-
-<blockquote>
-
- <p>1. The origin of this software or documentation must not be
- misrepresented; you must not claim that you wrote the original
- software or documentation. If you use this software or
- documentation in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.</p>
-
- <p>2. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software or documentation.
- Altered source versions may be contributed back to the author to be
- integrated into the original software or documentation at the
- author's discretion.</p>
-
- <p>3. Neither this notice or reference to it nor any copyright, author or
- contributor clause may be removed from or altered in any software
- source distribution or documentation covered by this license.</p>
-
- <p>4. Neither the name of the author, nor the names of contributors may be
- used to endorse or promote products derived from this software or
- documentation without specific prior written permission.</p>
-
-</blockquote>
-
-</td>
-</tr>
-</table>
-</div>
-</body>
-</html>
-
-<!-- $Id$ -->
diff --git a/ACE/debian/ACE-DPKG.mwc b/ACE/debian/ACE-DPKG.mwc
new file mode 100644
index 00000000000..583d6325e3b
--- /dev/null
+++ b/ACE/debian/ACE-DPKG.mwc
@@ -0,0 +1,32 @@
+// $Id$
+
+workspace {
+ exclude {
+ TAO
+ performance-tests
+
+ examples
+ ACEXML/examples
+ ASNMP
+
+ tests
+ Kokyu/tests
+ ACEXML/tests
+ apps/gperf/tests
+ apps/drwho
+ apps/Gateway
+ apps/AWS
+ apps/JAWS
+ apps/JAWS2
+ apps/JAWS3
+ apps/mkcsregdb
+ apps/soreduce
+
+ websvcs
+ contrib
+ protocols/tests
+ protocols/examples
+
+ netsvcs/clients
+ }
+}
diff --git a/ACE/debian/Basic_Logging_Service.sgml b/ACE/debian/Basic_Logging_Service.sgml
new file mode 100644
index 00000000000..d3dd5a50714
--- /dev/null
+++ b/ACE/debian/Basic_Logging_Service.sgml
@@ -0,0 +1,68 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "Basic_Logging_Service">
+ <!ENTITY revision "$Revision$">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_notify_logging_service "<citerefentry><refentrytitle>Notify_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_event_logging_service "<citerefentry><refentrytitle>Event_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_rt_event_logging_service "<citerefentry><refentrytitle>RTEvent_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_naming_service "<citerefentry><refentrytitle>Naming_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY Naming_Service "<application>tao_cosnaming</application>">
+ <!ENTITY Basic_Logging_Service "<application>tao_tls_basic</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_notify_logging_service;, &man_event_logging_service;, &man_rt_event_logging_service;, &man_naming_service;">
+ <!ENTITY year "1999">
+ <!ENTITY username "David Hanvey">
+ <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
+]>
+<refentry>
+ <refmeta>
+ <refentrytitle>BASIC_LOGGING_SERVICE</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>TAO Basic Telecom Log Service</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is an event-unaware implementation of the Telecom Log Service.
+ </para>
+ <para>
+ The Telecom Log Service specification may be found on the OMG
+ website at <ulink
+ url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
+ </para>
+ <para>
+ &applname; requires a running &Naming_Service; and registers with
+ it as `BasicLogFactory'.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>BUGS</title>
+ <para>
+ Currently all Logs records are stored in memory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>&username; &useremail;</para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/Event_Logging_Service.sgml b/ACE/debian/Event_Logging_Service.sgml
new file mode 100644
index 00000000000..8288e3b6e0e
--- /dev/null
+++ b/ACE/debian/Event_Logging_Service.sgml
@@ -0,0 +1,70 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "Event_Logging_Service">
+ <!ENTITY revision "$Revision$">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_event_service "<citerefentry><refentrytitle>Event_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_basic_logging_service "<citerefentry><refentrytitle>Basic_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_notify_logging_service "<citerefentry><refentrytitle>Notify_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_rt_event_logging_service "<citerefentry><refentrytitle>RTEvent_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_naming_service "<citerefentry><refentrytitle>Naming_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY Naming_Service "<application>tao_cosnaming</application>">
+ <!ENTITY Event_Logging_Service "<application>tao_tls_event</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_event_service;, &man_basic_logging_service;, &man_notify_logging_service;, &man_rt_event_logging_service;, &man_naming_service;">
+ <!ENTITY year "1999">
+ <!ENTITY username "David Hanvey">
+ <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
+]>
+<refentry>
+ <refmeta>
+ <refentrytitle>EVENT_LOGGING_SERVICE</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>TAO Event Telecom Log Service</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is an implementation of the Telecom Log Service that
+ integrates with the Event Service.
+ </para>
+ <para>
+ The Telecom Log Service specification may be found on the OMG
+ website at <ulink
+ url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
+ </para>
+ <para>
+ &applname; requires a running &Naming_Service; and registers with
+ it as `EventLogFactory'.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>BUGS</title>
+ <para>
+ Currently all Logs records are stored in memory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>&username; &useremail;</para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/Notify_Logging_Service.sgml b/ACE/debian/Notify_Logging_Service.sgml
new file mode 100644
index 00000000000..d1577fbdff6
--- /dev/null
+++ b/ACE/debian/Notify_Logging_Service.sgml
@@ -0,0 +1,70 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "Notify_Logging_Service">
+ <!ENTITY revision "$Revision$">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_notify_service "<citerefentry><refentrytitle>Notify_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_basic_logging_service "<citerefentry><refentrytitle>Basic_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_event_logging_service "<citerefentry><refentrytitle>Event_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_rt_event_logging_service "<citerefentry><refentrytitle>RTEvent_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_naming_service "<citerefentry><refentrytitle>Naming_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY Naming_Service "<application>tao_cosnaming</application>">
+ <!ENTITY Notify_Logging_Service "<application>tao_tls_notify</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_notify_service;, &man_basic_logging_service;, &man_event_logging_service;, &man_rt_event_logging_service;, &man_naming_service;">
+ <!ENTITY year "1999">
+ <!ENTITY username "David Hanvey">
+ <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
+]>
+<refentry>
+ <refmeta>
+ <refentrytitle>NOTIFY_LOGGING_SERVICE</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>TAO Notify Telecom Log Service</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is an implementation of the Telecom Log Service that
+ integrates with the Notification Service.
+ </para>
+ <para>
+ The Telecom Log Service specification may be found on the OMG
+ website at <ulink
+ url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
+ </para>
+ <para>
+ &applname; requires a running &Naming_Service; and registers with
+ it as `NotifyLogFactory'.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>BUGS</title>
+ <para>
+ Currently all Logs records are stored in memory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>&username; &useremail;</para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/README.Debian b/ACE/debian/README.Debian
new file mode 100644
index 00000000000..ac8744097e1
--- /dev/null
+++ b/ACE/debian/README.Debian
@@ -0,0 +1,37 @@
+ACE for Debian
+--------------
+
+
+== Environment variables ==
+
+If the software you are compiling requires $ACE_ROOT to be set (for
+example, the tutorials), you may set it to /usr/lib/ace. For bash,
+the command to do this is
+
+ export ACE_ROOT=/usr/lib/ace
+
+
+Likewise, for TAO:
+
+ export TAO_ROOT=${ACE_ROOT}/TAO
+
+
+== Compiling examples ==
+
+To compile ACE or TAO examples (in libace-doc and libtao-orbsvcs-doc), you'll
+need:
+ 1. to define ACE_ROOT and TAO_ROOT as explained above.
+ 2. to install mpc-ace package if needed.
+ 3. to copy and uncompress the example you want to test, e.g.:
+
+ cp /usr/share/doc/libtao-orbsvcs-doc/examples/CosEC $HOME/ex1
+ find $HOME/ex1 -type f -name '*.gz' | xargs gunzip
+
+ 4. to regenerate the GNUmakefiles for this new location:
+
+ cd $HOME/ex1
+ mwc-ace -recurse -value_project install=. -value_project libout=.
+
+ 5. now you can compile your example.
+
+ -- Thomas Girard <thomas.g.girard@free.fr>, Sun, 23 May 2010 11:04:27 +0200
diff --git a/ACE/debian/README.source b/ACE/debian/README.source
new file mode 100644
index 00000000000..215d61d90eb
--- /dev/null
+++ b/ACE/debian/README.source
@@ -0,0 +1,44 @@
+= Compiling ACE+TAO Debian packages =
+
+ * ACE+TAO+CIAO-src-<version>.tar.bz2 is retrieved from:
+ http://download.dre.vanderbilt.edu/previous_versions/
+ The -src version does not contain pre-generated Makefiles. They are
+ regenerated in the buid process.
+
+ * Patching relies on dpatch; see: /usr/share/doc/dpatch/README.source.gz
+
+ -- Thomas Girard <thomas.g.girard@free.fr>, Sat, 5 Jun 2010 14:39:44 +0200
+
+= New releases =
+
+When preparing a new release, there are several things to remember:
+
+ - Update patch 34-bts386713 (change soversions)
+
+ - Regenerate the list of include files for libace-inet-dev and
+ libace-inet-ssl-dev:
+
+ From debian/tmp:
+
+ $ find . -type f | grep -vi https | grep -vi ssl --> These go to libace-inet-dev
+
+ The ones matching HTTPS or SSL go in libace-inet-ssl-dev.install:
+
+ usr/include/ace/INet/*SSL*
+ usr/include/ace/INet/*HTTPS*
+
+ But that might need updating if ACE_INet_SSL starts supporting FTPS or others
+
+ libace-inet-ssl-dev requires libace-inet-dev
+
+ Also, make sure none of the files in libace-inet-dev include anything from
+ libace-inet-ssl-dev. Test with:
+
+ From debian/tmp/usr/include/ace/INet:
+
+ $ find . -type f | grep -vi https | grep -vi ssl | xargs -I {} grep -Hi "include.*ssl"
+
+ $ find . -type f | grep -vi https | grep -vi ssl | xargs -I {} grep -Hi "include.*https"
+
+ (both should return nothing)
+
diff --git a/ACE/debian/RTEvent_Logging_Service.sgml b/ACE/debian/RTEvent_Logging_Service.sgml
new file mode 100644
index 00000000000..924920a6566
--- /dev/null
+++ b/ACE/debian/RTEvent_Logging_Service.sgml
@@ -0,0 +1,70 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "RTEvent_Logging_Service">
+ <!ENTITY revision "$Revision$">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_event_service "<citerefentry><refentrytitle>Event_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_basic_logging_service "<citerefentry><refentrytitle>Basic_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_notify_logging_service "<citerefentry><refentrytitle>Notify_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_event_logging_service "<citerefentry><refentrytitle>Event_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_naming_service "<citerefentry><refentrytitle>Naming_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY Naming_Service "<application>tao_cosnaming</application>">
+ <!ENTITY RTEvent_Logging_Service "<application>tao_tls_rtevent</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_event_service;, &man_basic_logging_service;, &man_notify_logging_service;, &man_event_logging_service;, &man_naming_service;">
+ <!ENTITY year "1999">
+ <!ENTITY username "David Hanvey">
+ <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
+]>
+<refentry>
+ <refmeta>
+ <refentrytitle>RTEVENT_LOGGING_SERVICE</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>TAO RTEvent Telecom Log Service</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is an implementation of the Telecom Log Service that
+ integrates with the RTEvent Service.
+ </para>
+ <para>
+ The Telecom Log Service specification may be found on the OMG
+ website at <ulink
+ url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
+ </para>
+ <para>
+ &applname; requires a running &Naming_Service; and registers with
+ it as `RTEventLogFactory'.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>BUGS</title>
+ <para>
+ Currently all Logs records are stored in memory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>&username; &useremail;</para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/TAO-DPKG.mwc b/ACE/debian/TAO-DPKG.mwc
new file mode 100644
index 00000000000..5b5d5878bfe
--- /dev/null
+++ b/ACE/debian/TAO-DPKG.mwc
@@ -0,0 +1,28 @@
+// $Id$
+
+workspace {
+ exclude {
+ CIAO
+ DAnCE
+ examples
+ orbsvcs/examples
+
+ performance-tests
+ orbsvcs/tests/Notify/performance-tests
+ orbsvcs/performance-tests
+
+ interop-tests
+
+ tests
+ examples/PluggableUDP/tests
+ orbsvcs/tests
+ orbsvcs/examples/CosEC/RtEC_Based/tests
+
+ docs
+ DevGuideExamples
+ orbsvcs/DevGuideExamples
+ utils/logWalker
+ utils/monitor
+ }
+}
+
diff --git a/ACE/debianbuild/TAO_ORB_Options.sgml b/ACE/debian/TAO_ORB_Options.sgml
index e31fbefd50a..e31fbefd50a 100644
--- a/ACE/debianbuild/TAO_ORB_Options.sgml
+++ b/ACE/debian/TAO_ORB_Options.sgml
diff --git a/ACE/debian/TODO b/ACE/debian/TODO
new file mode 100644
index 00000000000..c0ea7c66e22
--- /dev/null
+++ b/ACE/debian/TODO
@@ -0,0 +1,19 @@
+= Misc =
+ * default tao_idl lookup path?
+ * current IDL should be in orvsvcs/orbsvcs
+ * see current bugs:
+ o package websvcs library?
+ o create man pages for ace/tao binaries
+ * rewrite the patch to load TAO libraries by SONAME and RFC it
+ * add cpp dependency to tao_idl
+ * install .mpc files?
+ * What about REACTOR_NOTIFICATION_QUEUE?
+ * fltk and gl
+ * Build location leaks in generated documentation
+
+= MWC and MPC =
+ * some makefile are not regenerated (e.g. JAWS). Seems like a bug.
+
+= CIAO =
+ * to restore
+ * autoconf support
diff --git a/ACE/debianbuild/gperf-ace.docs b/ACE/debian/ace-gperf.docs
index b14ede1b24f..b14ede1b24f 100644
--- a/ACE/debianbuild/gperf-ace.docs
+++ b/ACE/debian/ace-gperf.docs
diff --git a/ACE/debianbuild/gperf-ace.install b/ACE/debian/ace-gperf.install
index 04c9b7c515b..04c9b7c515b 100644
--- a/ACE/debianbuild/gperf-ace.install
+++ b/ACE/debian/ace-gperf.install
diff --git a/ACE/debian/ace-netsvcs.docs b/ACE/debian/ace-netsvcs.docs
new file mode 100644
index 00000000000..bb7c4c21e10
--- /dev/null
+++ b/ACE/debian/ace-netsvcs.docs
@@ -0,0 +1,3 @@
+ACE_wrappers/PROBLEM-REPORT-FORM
+ACE_wrappers/netsvcs/servers/README
+ACE_wrappers/netsvcs/ACE-netsvcs.html
diff --git a/ACE/debian/ace-netsvcs.install b/ACE/debian/ace-netsvcs.install
new file mode 100644
index 00000000000..eb7ff510d4e
--- /dev/null
+++ b/ACE/debian/ace-netsvcs.install
@@ -0,0 +1,2 @@
+../../ACE_wrappers/netsvcs/servers/ace_netsvcs usr/bin
+../../ACE_wrappers/netsvcs/servers/svc.conf* usr/share/ace-netsvcs
diff --git a/ACE/debian/ace-netsvcs.manpages b/ACE/debian/ace-netsvcs.manpages
new file mode 100644
index 00000000000..43bf0f7a731
--- /dev/null
+++ b/ACE/debian/ace-netsvcs.manpages
@@ -0,0 +1 @@
+debian/ace_netsvcs.1
diff --git a/ACE/debian/ace.dsc b/ACE/debian/ace.dsc
new file mode 100644
index 00000000000..10194ba7561
--- /dev/null
+++ b/ACE/debian/ace.dsc
@@ -0,0 +1,10 @@
+Format: 1.0
+Source: ACE+TAO+CIAO-src-6.0.3
+Version: 2.0.3
+Binary: ace
+Maintainer: Johnny Willemsen <jwillemsen@remedy.nl>
+Architecture: any
+Build-Depends: gcc, make, g++, debhelper (>= 5), libssl-dev (>= 0.9.7d), dpatch (>= 2.0.10), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev (>= 8.4.7), zlib1g-dev, docbook-to-man, bzip2, autoconf, automake, libtool, autotools-dev, doxygen, graphviz
+Files:
+ 65b34001c9605f056713a7e146b052d1 46346654 ACE+TAO+CIAO-src-6.0.3.tar.gz
+
diff --git a/ACE/debian/ace_netsvcs.sgml b/ACE/debian/ace_netsvcs.sgml
new file mode 100644
index 00000000000..910c02c68e2
--- /dev/null
+++ b/ACE/debian/ace_netsvcs.sgml
@@ -0,0 +1,158 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "ace_netsvcs">
+ <!ENTITY seealso "/usr/share/ace-netsvcs/svc.conf, /usr/share/doc/ace-netsvcs/ACE-netsvcs.html">
+]>
+<!-- This file was written by Marek Brudka <mbrudka@aster.pl> -->
+<!-- on September 2010 for the Debian GNU/Linux operating system. -->
+<!-- It is mainly a plain text to DocBook conversion of the USAGE file. -->
+
+<refentry>
+ <refmeta>
+ <refentrytitle>ACE_NETSVCS</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>ACE network services driver.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <arg rep="repeat"><replaceable>OPTION</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is a driver to start ACE network services. Currently,
+ libnetsvcs provides: Naming Service, Time Service, Token Service,
+ Server Logging Service, Client Logging Service, Logging Strategy Service.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>-f</parameter> <replaceable>svc.conf</replaceable> </term>
+ <listitem>
+ <para>
+ Specifies a <replaceable>svc.conf</replaceable> configuration file name other
+ than the default one. Can be specified multiple times to use multiple files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-d</parameter></term>
+ <listitem>
+ <para>
+ Turn on debugging mode.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-n</parameter></term>
+ <listitem>
+ <para>
+ Explicitly disables the use of static services. This flag overrides the @a ignore_static_svcs parameter value.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-p</parameter> <replaceable>pathname</replaceable></term>
+ <listitem>
+ <para>
+ Specifies a <replaceable>pathname</replaceable> which is used to store the process id.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-s</parameter> <replaceable>signal</replaceable></term>
+ <listitem>
+ <para>
+ Specifies a <replaceable>signal</replaceable> number other than SIGHUP to trigger
+ reprocessing of the configuration file(s). Ignored for platforms that do not have
+ POSIX signals, such as Windows.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-y</parameter></term>
+ <listitem>
+ <para>
+ Explicitly enables the use of static services. This flag
+ overrides the @a ignore_static_svcs parameter value.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-S</parameter> <replaceable>directive</replaceable></term>
+ <listitem>
+ <para>
+ Specifies a service <replaceable>directive</replaceable> string.
+ Enclose the string in quotes
+ and escape any embedded quotes with a backslash. This option
+ specifies service directives without the need for a configuration
+ file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-b</parameter></term>
+ <listitem>
+ <para>
+ Option to indicate that we should be a daemon. Note that when
+ this option is used, the process will be daemonized before the
+ service configuration file(s) are read. During daemonization,
+ (on POSIX systems) the current directory will be changed to "/"
+ so the caller should either fully specify the file names, or
+ execute a @c chroot() to the appropriate directory.
+ @sa ACE::daemonize().
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-k</parameter> <replaceable>point</replaceable></term>
+ <listitem>
+ <para>
+ Specifies the rendezvous <replaceable>point</replaceable> to use for the ACE distributed
+ logger.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>EXAMPLES</title>
+ <variablelist>
+ <varlistentry>
+ <term><code>&applname; -f /usr/share/ace-netsvcs/svc.conf</code></term>
+ <listitem>
+ <para>
+ Starts ACE network services using example configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><code>&applname; -S &#39;dynamic Name_Server Service_Object * netsvcs:_make_ACE_Name_Acceptor() ""-p 20006""&#39; </code></term>
+ <listitem>
+ <para>
+ Starts ACE Naming service using command line configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>Douglas C. Schmidt<email>&lt;schmidt@cs.wustl.edu&gt;</email> </para>
+ </refsect1>
+</refentry>
+
+
diff --git a/ACE/debian/cmp-autoconf-regular.sh b/ACE/debian/cmp-autoconf-regular.sh
new file mode 100755
index 00000000000..a0e5f19b192
--- /dev/null
+++ b/ACE/debian/cmp-autoconf-regular.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+usage() {
+ cat >&2 << EOF
+usage: $0 <first> <second>
+compares ACE config.h files (using cpp)
+e.g.: $0 ACE_wrappers/ace/config-linux.h objdir/ace/config.h
+EOF
+}
+
+report_to() {
+ g++ -E -DACE_HAS_LINUX_NPTL -dM -I"$ACE_ROOT" $1 | \
+ grep '^#define ACE' | grep -v '^#define ACE_CONFIG' | \
+ sed -e 's/^#define \+\([A-Z0-9_]\+\) *$/#define \1 1/g' | \
+ sort >> $2
+}
+
+if test "a$ACE_ROOT" = "a"; then
+ echo "$0: please define ACE_ROOT" >&2
+ exit 1
+fi
+
+if test "$#" -ne 2; then
+ usage
+ exit 2
+fi
+
+ONE_TMP=`mktemp -t ace_cmp_one.XXXXXXXXXX` || exit 1
+TWO_TMP=`mktemp -t ace_cmp_two.XXXXXXXXXX` || exit 1
+
+trap "rm $ONE_TMP $TWO_TMP" EXIT
+
+report_to $1 $ONE_TMP
+report_to $2 $TWO_TMP
+
+diff -u $ONE_TMP $TWO_TMP
+
diff --git a/ACE/debian/cmp-installation.sh b/ACE/debian/cmp-installation.sh
new file mode 100755
index 00000000000..150c9879a05
--- /dev/null
+++ b/ACE/debian/cmp-installation.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+# $Id$
+#
+# This script compares autoconf-based installation against regular builds
+# provided files.
+#
+# This script should be run after `make install DESTDIR=debian/tmp' has been
+# run on autoconf-based build.
+#
+
+set -e
+
+P1=ACE_wrappers
+P2=debian/tmp/usr/include
+
+# Find files
+# ff <from>
+ff() {
+ find "$1" -name '*.h' -o -name '*.inl' -o -name '*.hpp' -o -name '*.ipp'
+}
+
+# Remove path with examples, tests and tutorial from STDIN
+drop() {
+ grep -E -v '(examples|tests|tutorials)/'
+}
+
+# Removed unused/unshipped stuff
+unused() {
+ grep -E -v '^/(ASNMP|CIAO|TAO_IDL|ace/QoS|apps|contrib|utils)'
+}
+
+F1=`mktemp -t ace_regular.XXXXXXXXXX`
+F2=`mktemp -t ace_autoconf.XXXXXXXXXX`
+trap "rm $F1 $F2" 0
+
+ff $P1 | sed -e "s@$P1@@" -e "s@/TAO@@" -e "s@/protocols@@" -e "s@^/orbsvcs@@" | drop | unused | sort >> $F1
+ff $P2 | sed -e "s@$P2@@" | sort >> $F2
+diff -u $F1 $F2
diff --git a/ACE/debian/compat b/ACE/debian/compat
new file mode 100644
index 00000000000..7f8f011eb73
--- /dev/null
+++ b/ACE/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/ACE/debian/config.h b/ACE/debian/config.h
new file mode 100644
index 00000000000..3b19ea9a58c
--- /dev/null
+++ b/ACE/debian/config.h
@@ -0,0 +1,29 @@
+// $Id$
+
+#ifndef ACE_CONFIG_H_INCLUDED
+#define ACE_CONFIG_H_INCLUDED
+#ifdef __FreeBSD_kernel__
+#include "config-kfreebsd.h"
+#else // assume linux
+/*
+ * Macros that were enabled in Debian are stored here.
+ *
+ * Rationale: those were captured in the generated libraries on
+ * compilation; hence the same values must be used when including
+ * ACE+TAO headers, to avoid unexpected results.
+ */
+#ifndef ACE_HAS_IPV6
+#define ACE_HAS_IPV6 1
+#endif
+
+#ifndef ACE_USES_IPV4_IPV6_MIGRATION
+#define ACE_USES_IPV4_IPV6_MIGRATION 1
+#endif
+
+#ifndef __ACE_INLINE__
+#define __ACE_INLINE__
+#endif
+
+#include "config-linux.h"
+#endif // __FreeBSD_version
+#endif /* ACE_CONFIG_H_INCLUDED */
diff --git a/ACE/debian/copyright b/ACE/debian/copyright
new file mode 100644
index 00000000000..0a6655e643d
--- /dev/null
+++ b/ACE/debian/copyright
@@ -0,0 +1,692 @@
+This package was debianized by:
+ Ossama Othman <ossama@debian.org> on Fri, 25 Sep 1998 16:43:42 -0400.
+Then maintained by:
+ Brian Nelson <pyro@debian.org>
+ Konstantinos Margaritis <markos@debian.org>
+ Thomas Girard <thomas.g.girard@free.fr>
+
+It is now maintained by:
+ Debian ACE+TAO maintainers <pkg-ace-devel@lists.alioth.debian.org>
+
+It was downloaded from: <http://download.dre.vanderbilt.edu/>
+
+Files: *
+Copyright: © 1993-2011 Douglas C. Schmidt and his research group at
+ Washington University, University of California, Irvine,
+ and Vanderbilt University
+License: other-BSD
+ Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM), and
+ CoSMIC(TM)
+
+ [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), and [4]CoSMIC(TM) (henceforth
+ referred to as "DOC software") are copyrighted by [5]Douglas C.
+ Schmidt and his [6]research group at [7]Washington University,
+ [8]University of California, Irvine, and [9]Vanderbilt University,
+ Copyright (c) 1993-2008, all rights reserved. Since DOC software is
+ open-source, freely available software, you are free to use, modify,
+ copy, and distribute--perpetually and irrevocably--the DOC software
+ source code and object code produced from the source, as well as copy
+ and distribute modified versions of this software. You must, however,
+ include this copyright statement along with any code built using DOC
+ software that you release. No copyright statement needs to be provided
+ if you just ship binary executables of your software products.
+
+ You can use DOC software in commercial and/or binary software releases
+ and are under no obligation to redistribute any of your source code
+ that is built using DOC software. Note, however, that you may not do
+ anything to the DOC software code, such as copyrighting it yourself or
+ claiming authorship of the DOC software code, that will prevent DOC
+ software from being distributed freely using an open-source
+ development model. You needn't inform anyone that you're using DOC
+ software in your software, though we encourage you to let [10]us know
+ so we can promote your project in the [11]DOC software success
+ stories.
+
+ The [12]ACE, [13]TAO, [14]CIAO, and [15]CoSMIC web sites are
+ maintained by the [16]DOC Group at the [17]Institute for Software
+ Integrated Systems (ISIS) and the [18]Center for Distributed Object
+ Computing of Washington University, St. Louis for the development of
+ open-source software as part of the open-source software community. By
+ submitting comments, suggestions, code, code snippets, techniques
+ (including that of usage) and algorithms (collectively
+ ``Submissions''), submitters acknowledge that they have the right to
+ do so, that any such Submissions are given freely and unreservedly,
+ and that they waive any claims to copyright or ownership. In addition,
+ submitters acknowledge that any such Submission might become part of
+ the copyright maintained on the overall body of code that comprises
+ the DOC software. By making a Submission, submitter agree to these
+ terms. Moreover, submitters acknowledge that the incorporation or
+ modification of such Submissions is entirely at the discretion of the
+ moderators of the open-source DOC software projects or their
+ designees.
+
+ Submissions are provided by the submitter ``as is'' with no warranties
+ whatsoever, including any warranty of merchantability, noninfringement
+ of third party intellectual property, or fitness for any particular
+ purpose. In no event shall the submitter be liable for any direct,
+ indirect, special, exemplary, punitive, or consequential damages,
+ including without limitation, lost profits, even if advised of the
+ possibility of such damages. Likewise, DOC software is provided as is
+ with no warranties of any kind, including the warranties of design,
+ merchantability, and fitness for a particular purpose,
+ noninfringement, or arising from a course of dealing, usage or trade
+ practice. Washington University, UC Irvine, Vanderbilt University,
+ their employees, and students shall have no liability with respect to
+ the infringement of copyrights, trade secrets or any patents by DOC
+ software or any part thereof. Moreover, in no event will Washington
+ University, UC Irvine, or Vanderbilt University, their employees, or
+ students be liable for any lost revenue or profits or other special,
+ indirect and consequential damages.
+
+ DOC software is provided with no support and without any obligation on
+ the part of Washington University, UC Irvine, Vanderbilt University,
+ their employees, or students to assist in its use, correction,
+ modification, or enhancement. A [19]number of companies around the
+ world provide commercial support for DOC software, however.
+
+ DOC software is Y2K-compliant, as long as the underlying OS platform
+ is Y2K-compliant. Likewise, DOC software is compliant with the new US
+ daylight savings rule passed by Congress as "The Energy Policy Act of
+ 2005," which established new daylight savings times (DST) rules for
+ the United States that expand DST as of March 2007. Since DOC software
+ obtains time/date and calendaring information from operating systems
+ users will not be affected by the new DST rules as long as they
+ upgrade their operating systems accordingly.
+
+ The names ACE(TM), TAO(TM), CIAO(TM), CoSMIC(TM), Washington
+ University, UC Irvine, and Vanderbilt University, may not be used to
+ endorse or promote products or services derived from this source
+ without express written permission from Washington University, UC
+ Irvine, or Vanderbilt University. Further, products or services
+ derived from this source may not be called ACE(TM), TAO(TM), CIAO(TM),
+ or CoSMIC(TM) nor may the name Washington University, UC Irvine, or
+ Vanderbilt University appear in their names, without express written
+ permission from Washington University, UC Irvine, and Vanderbilt
+ University.
+
+ If you have any suggestions, additions, comments, or questions, please
+ let [20]me know.
+
+ [21]Douglas C. Schmidt
+ _________________________________________________________________
+
+ Back to the [22]ACE home page.
+
+ References
+ 1. http://www.cs.wustl.edu/~schmidt/ACE.html
+ 2. http://www.cs.wustl.edu/~schmidt/TAO.html
+ 3. http://www.dre.vanderbilt.edu/CIAO/
+ 4. http://www.dre.vanderbilt.edu/cosmic/
+ 5. http://www.dre.vanderbilt.edu/~schmidt/
+ 6. http://www.cs.wustl.edu/~schmidt/ACE-members.html
+ 7. http://www.wustl.edu/
+ 8. http://www.uci.edu/
+ 9. http://www.vanderbilt.edu/
+ 10. mailto:doc_group@cs.wustl.edu
+ 11. http://www.cs.wustl.edu/~schmidt/ACE-users.html
+ 12. http://www.cs.wustl.edu/~schmidt/ACE.html
+ 13. http://www.cs.wustl.edu/~schmidt/TAO.html
+ 14. http://www.dre.vanderbilt.edu/CIAO/
+ 15. http://www.dre.vanderbilt.edu/cosmic/
+ 16. http://www.dre.vanderbilt.edu/
+ 17. http://www.isis.vanderbilt.edu/
+ 18. http://www.cs.wustl.edu/~schmidt/doc-center.html
+ 19. http://www.cs.wustl.edu/~schmidt/commercial-support.html
+ 20. mailto:d.schmidt@vanderbilt.edu
+ 21. http://www.dre.vanderbilt.edu/~schmidt/
+ 22. http://www.cs.wustl.edu/ACE.html
+
+Files: apps/gperf/*
+Copyright: © 1989 Free Software Foundation, Inc.
+License: GPL-2+
+ On Debian systems the full text of the GNU General Public License (Version 2)
+ can be found in the `/usr/share/common-licenses/GPL-2' file.
+
+Files: ACE_wrappers/MPC/*
+Copyright: © 2003-2006 OCI. St. Louis MO USA
+License: other-BSD
+ MPC (Licensed Product) is protected by copyright, and is distributed under
+ the following terms.
+
+ MPC (Make, Project and workspace Creator) is an open source tool, developed
+ by OCI and written in Perl. It is designed to generate a variety of tool
+ specific project files from a common baseline. Through the powerful
+ combination of inheritance and defaults MPC is able to reduce the
+ maintenance burden normally associated with keeping multiple target
+ platforms, their unique build tools, and inconsistent feature sets current.
+ It is also easily extensible to support new build environments. The
+ objective is to solve the prevalent problem of fragile build environments,
+ usually experienced by developer groups, by replacing it with a singular
+ robust build environment, and an active community of users committed to its
+ evolution.
+
+ Since MPC is open source and free of licensing fees, you are free to use,
+ modify, and distribute the source code, as long as you include this
+ copyright statement.
+
+ In particular, you can use MPC to build proprietary software and are under
+ no obligation to redistribute any of your source code that is built using
+ MPC. Note, however, that you may not do anything to the MPC code, such as
+ copyrighting it yourself or claiming authorship of the MPC code, that will
+ prevent MPC from being distributed freely using an open source development
+ model.
+
+ Warranty
+
+ LICENSED PRODUCT IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
+ THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, OR ARISING FROM A COURSE OF DEALING, USAGE OR
+ TRADE PRACTICE.
+
+ Support
+
+ LICENSED PRODUCT IS PROVIDED WITH NO SUPPORT AND WITHOUT ANY OBLIGATION ON
+ THE PART OF OCI OR ANY OF ITS SUBSIDIARIES OR AFFILIATES TO ASSIST IN ITS
+ USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+ Support may be available from OCI to users who have agreed to a support
+ contract.
+
+ Liability
+
+ OCI OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+ RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+ LICENSED PRODUCT OR ANY PART THEREOF.
+
+ IN NO EVENT WILL OCI OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+ DAMAGES, EVEN IF OCI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ MPC copyright OCI. St. Louis MO USA, 2003-2006
+
+Files: ACE_wrappers/contrib/minizip/*.[ch]
+Copyright: © 1998-2005 Gilles Vollant
+License: ZLIB
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+Files: ACE_wrappers/contrib/utility/*
+Copyright: © 2002-2003 Boris Kolpackov
+License: other-BSD
+ This software or documentation is provided 'as-is', without any
+ express or implied warranty. In no event will the author or contributors
+ be held liable for any damages arising from the use of this software
+ or documentation.
+
+ Permission is granted to anyone to use this software or documentation
+ for any purpose, including commercial applications, and to alter it and
+ redistribute it freely, subject to the following restrictions:
+
+ 1. The origin of this software or documentation must not be
+ misrepresented; you must not claim that you wrote the original
+ software or documentation. If you use this software or
+ documentation in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software or documentation.
+ Altered source versions may be contributed back to the author to be
+ integrated into the original software or documentation at the
+ author's discretion.
+
+ 3. Neither this notice or reference to it nor any copyright, author or
+ contributor clause may be removed from or altered in any software
+ source distribution or documentation covered by this license.
+
+ 4. Neither the name of the author, nor the names of contributors may be
+ used to endorse or promote products derived from this software or
+ documentation without specific prior written permission.
+
+Files: ACE_wrappers/TAO/TAO_IDL/*
+ ACE_wrappers/*/drv_*_ifr.*
+ ACE_wrappers/*/be_produce.cpp
+ ACE_wrappers/*/be_extern.h
+Copyright: © 1992-1995 Sun Micosystems, Inc
+License: other
+ COPYRIGHT
+
+ Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the
+ United States of America. All Rights Reserved.
+
+ This product is protected by copyright and distributed under the
+ following license restricting its use.
+
+ The Interface Definition Language Compiler Front End (CFE) is made
+ available for your use provided that you include this license and
+ copyright notice on all media and documentation and the software
+ program in which this product is incorporated in whole or part. You
+ may copy and extend functionality (but may not remove functionality)
+ of the Interface Definition Language CFE without charge, but you are
+ not authorized to license or distribute it to anyone else except as
+ part of a product or program developed by you or with the express
+ written consent of Sun Microsystems, Inc. ("Sun").
+
+ The names of Sun Microsystems, Inc. and any of its subsidiaries or
+ affiliates may not be used in advertising or publicity pertaining to
+ distribution of Interface Definition Language CFE as permitted herein.
+
+ This license is effective until terminated by Sun for failure to
+ comply with this license. Upon termination, you shall destroy or
+ return all code and documentation for the Interface Definition
+ Language CFE.
+
+ INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES
+ OF ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A
+ COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+
+ INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND
+ WITHOUT ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES
+ OR AFFILIATES TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR
+ ENHANCEMENT.
+
+ SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY
+ WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY
+ PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+ IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE
+ LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND
+ CONSEQUENTIAL DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY
+ OF SUCH DAMAGES.
+
+ Use, duplication, or disclosure by the government is subject to
+ restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+ Technical Data and Computer Software clause at DFARS 252.227-7013 and
+ FAR 52.227-19.
+
+ Sun, Sun Microsystems and the Sun logo are trademarks or registered
+ trademarks of Sun Microsystems, Inc.
+
+ SunSoft, Inc.
+ 2550 Garcia Avenue
+ Mountain View, California 94043
+
+ NOTE:
+
+ SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+ trademarks or registered trademarks of Sun Microsystems, Inc.
+
+Files: ACE_wrappers/TAO/tao/DynamicInterface/Unknown_User_Exception.h
+ ACE_wrappers/TAO/tao/DynamicInterface/ExceptionList.h
+ ACE_wrappers/TAO/tao/DynamicInterface/Request.h
+ ACE_wrappers/TAO/tao/DynamicInterface/Server_Request.h
+ ACE_wrappers/TAO/tao/default_ports.h
+ ACE_wrappers/TAO/tao/Stub.h
+ ACE_wrappers/TAO/tao/corba.h
+ ACE_wrappers/TAO/tao/GIOP_Message_Base.h
+ ACE_wrappers/TAO/tao/Stub.cpp
+ ACE_wrappers/TAO/tao/Object.h
+ ACE_wrappers/TAO/tao/TAO_Server_Request.h
+ ACE_wrappers/TAO/tao/CDR.h
+ ACE_wrappers/TAO/tao/orbconf.h
+ ACE_wrappers/TAO/tao/AnyTypeCode/Marshal.cpp
+ ACE_wrappers/TAO/tao/AnyTypeCode/append.cpp
+ ACE_wrappers/TAO/tao/AnyTypeCode/NVList.h
+ ACE_wrappers/TAO/tao/Object.cpp
+ ACE_wrappers/TAO/tao/Principal.h
+ ACE_wrappers/TAO/tao/Principal.cpp
+Copyright: © 1995 Sun Microsystems, Inc
+License: other
+ This notice applies to all files in this software distribution that
+ were originally derived from SunSoft IIOP code (these files contain
+ Sun Microsystems copyright notices).
+
+ COPYRIGHT AND LICENSING
+ -----------------------
+
+ Copyright 1995 Sun Microsystems, Inc.
+ Printed in the United States of America.
+ All Rights Reserved.
+
+ This software product (LICENSED PRODUCT), implementing the Object
+ Management Group's "Internet Inter-ORB Protocol", is protected by
+ copyright and is distributed under the following license restricting
+ its use. Portions of LICENSED PRODUCT may be protected by one or more
+ U.S. or foreign patents, or pending applications.
+
+ LICENSED PRODUCT is made available for your use provided that you
+ include this license and copyright notice on all media and
+ documentation and the software program in which this product is
+ incorporated in whole or part.
+
+ You may copy, modify, distribute, or sublicense the LICENSED PRODUCT
+ without charge as part of a product or software program developed by
+ you, so long as you preserve the functionality of interoperating with
+ the Object Management Group's "Internet Inter-ORB Protocol" version
+ one. However, any uses other than the foregoing uses shall require
+ the express written consent of Sun Microsystems, Inc.
+
+ The names of Sun Microsystems, Inc. and any of its subsidiaries or
+ affiliates may not be used in advertising or publicity pertaining to
+ distribution of the LICENSED PRODUCT as permitted herein.
+
+ This license is effective until terminated by Sun for failure to
+ comply with this license. Upon termination, you shall destroy or
+ return all code and documentation for the LICENSED PRODUCT.
+
+ LICENSED PRODUCT IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND
+ INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+ DEALING, USAGE OR TRADE PRACTICE.
+
+ LICENSED PRODUCT IS PROVIDED WITH NO SUPPORT AND WITHOUT ANY
+ OBLIGATION ON THE PART OF SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+ TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+ SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY
+ WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY
+ PATENTS BY LICENSED PRODUCT OR ANY PART THEREOF.
+
+ IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE
+ LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND
+ CONSEQUENTIAL DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY
+ OF SUCH DAMAGES.
+
+ Use, duplication, or disclosure by the government is subject to
+ restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+ Technical Data and Computer Software clause at DFARS 252.227-7013 and
+ FAR 52.227-19.
+
+ SunOS, SunSoft, Sun, Solaris, Sun Microsystems and the Sun logo are
+ trademarks or registered trademarks of Sun Microsystems, Inc.
+
+ SunSoft, Inc.
+ 2550 Garcia Avenue
+ Mountain View, California 94043
+
+Files: ACE_wrappers/ace/OS_NS_unistd.inl (swab function)
+Copyright: © 1994-2006 Red Hat, Inc.
+License: BSD-3
+
+Files: ACE_wrappers/ace/UTF32_Encoding_Converter.cpp
+ ACE_wrappers/ace/UTF16_Encoding_Converter.cpp
+ ACE_wrappers/ace/UTF16_Encoding_Converter.inl
+Copyright: © 2001-2004 Unicode, Inc.
+License: other
+ Limitations on Rights to Redistribute This Code
+
+ Unicode, Inc. hereby grants the right to freely use the information
+ supplied in this file in the creation of products supporting the
+ Unicode Standard, and to make copies of this file in any form
+ for internal or external distribution as long as this notice
+ remains attached.
+
+Files: ACE_wrappers/apps/JAWS3/*
+Copyright: © 2000 James Hu and Entera, Inc.
+License: other
+ Copyright and Licensing Information for JAWS Adaptive Web Server,
+ version 3 (JAWS3).
+
+ JAWS3 is copyrighted by James Hu and Entera, Inc., Copyright (c)
+ 2000, all rights reserved. Since JAWS3 is open source, free
+ software, you are free to use, modify, and distribute the JAWS3
+ source code and object code produced or otherwise derived from
+ JAWS3, provided you include this copyright statement in all versions
+ of such code.
+
+ In particular, you can use JAWS3 in proprietary software and are
+ under no obligation to redistribute any of your source code that is
+ derived from JAWS3. Note, however, that you may not modify the
+ JAWS3 code in any way, or take any other action such as copyrighting
+ it yourself or claiming authorship of the JAWS3 code, that will
+ prevent JAWS3 from being distributed freely using an open source
+ development model.
+
+ JAWS3 is provided as is with no warranties of any kind, including
+ the warranties of design, merchantibility and fitness for a
+ particular purpose, noninfringement, or arising from a course of
+ dealing, usage or trade practice. Moreover, JAWS3 is provided with
+ no support and without any obligation on the part of Entera, Inc.,
+ or its employees.
+
+ Entera, Inc., and its employees shall have no liability with respect
+ to the infringement of copyrights, trade secrets or any patents by
+ JAWS3 or any part thereof. Moreover, in no event will Entera, Inc.,
+ or its employees, be liable for any lost revenue or profits or other
+ special, indirect and consequential damages.
+
+ By submitting comments, suggestions, code, code snippets, techniques
+ (including that of usage), and algorithms, submitters acknowledge
+ that they have the right to do so, that any such submissions are
+ given freely and unreservedly, and that they waive any claims to
+ copyright or ownership. In addition, submitters acknowledge that
+ any such submission might become part of the copyright maintained on
+ the overall body of code, which comprises the JAWS3 software. By
+ making a submission, submitters agree to these terms. Furthermore,
+ submitters acknowledge that the incorporation or modification of
+ such submissions is entirely at the discretion of the moderators of
+ the open source JAWS3 project or their designees.
+
+ The names JAWS3 and Entera, Inc., may not be used to endorse or
+ promote products or services derived from this source without
+ express written permission from Entera, Inc. Further, products or
+ services derived from this source may not be called JAWS3 nor may
+ the name Entera, Inc., appear in their names, without express
+ written permission from Entera, Inc.
+
+ If you have any suggestions, additions, comments, or questions,
+ please let me know.
+
+ James C. Hu
+ Entera, Inc.
+ jxh@entera.com
+
+Files: ACE_wrappers/apps/JAWS/clients/WebSTONE/*
+Copyright: © 1995 Silicon Graphics, Inc.
+License: other
+ This file and all files contained in this directory are
+ copyright 1995, Silicon Graphics, Inc.
+
+ This software is provided without support and without any obligation on the
+ part of Silicon Graphics, Inc. to assist in its use, correction, modification
+ or enhancement. There is no guarantee that this software will be included in
+ future software releases, and it probably will not be included.
+
+ THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
+ OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+
+ In no event will Silicon Graphics, Inc. be liable for any lost revenue or
+ profits or other special, indirect and consequential damages, even if
+ Silicon Graphics, Inc. has been advised of the possibility of such damages.
+
+Files: ACE_wrappers/ASNMP/*
+Copyright: © 1996 Hewlett-Packard Company
+ © 1988, 1989, 1991, 1992 Carnegie Mellon University
+ © 1997 Cisco Systems, Inc.
+License: other-BSD
+ These copyrights apply to the SNMP++ module shipped with the ACE library:
+
+ /*===================================================================
+ Copyright (c) 1996
+ Hewlett-Packard Company
+
+ ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
+ Permission to use, copy, modify, distribute and/or sell this software
+ and/or its documentation is hereby granted without fee. User agrees
+ to display the above copyright notice and this license notice in all
+ copies of the software and any documentation of the software. User
+ agrees to assume all liability for the use of the software; Hewlett-Packard
+ makes no representations about the suitability of this software for any
+ purpose. It is provided "AS-IS without warranty of any kind,either express
+ or implied. User hereby grants a royalty-free license to any and all
+ derivatives based upon this software code base.
+
+ =====================================================================*/
+
+ /**********************************************************************
+ Copyright 1988, 1989, 1991, 1992 by Carnegie Mellon University
+
+ All Rights Reserved
+
+ Permission to use, copy, modify, and distribute this software and its
+ documentation for any purpose and without fee is hereby granted,
+ provided that the above copyright notice appear in all copies and that
+ both that copyright notice and this permission notice appear in
+ supporting documentation, and that the name of CMU not be
+ used in advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ SOFTWARE.
+ ******************************************************************/
+
+ Certain portions of this version of HP's SNMP++ are:
+
+ /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+ Copyright 1997 Cisco Systems, Inc.
+
+ Permission to use, copy, modify, and distribute this software for any
+ purpose and without fee is hereby granted, provided that this
+ copyright and permission notice appear on all copies of the software and
+ supporting documentation, the name of Cisco Systems, Inc. not be used
+ in advertising or publicity pertaining to distribution of the
+ program without specific prior permission, and notice be given
+ in supporting documentation that modification, copying and distribution is by
+ permission of Cisco Systems, Inc.
+
+ Cisco Systems, Inc. makes no representations about the suitability of this
+ software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
+ AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
+ LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
+ FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
+ LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
+ SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
+ DAMAGES.
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
+
+Files: ACE_wrappers/ace/OS_NS_wchar.cpp (wcs*_emulation functions)
+Copyright: © 1991, 1993 The Regents of the University of California
+License: BSD-4
+ Copyright (c) 1991, 1993
+ The Regents of the University of California. All rights reserved.
+
+ This code is derived from software contributed to Berkeley by
+ James W. Williams of NASA Goddard Space Flight Center.
+
+ 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.
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+ 4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+
+Files: ACE_wrappers/ace/Get_Opt.cpp
+Copyright: © 1987, 1993, 1994 The Regents of the University of California
+ © 2000 The NetBSD Foundation, Inc.
+License: BSD-4
+ Copyright (c) 1987, 1993, 1994
+ The Regents of the University of California. All rights reserved.
+
+ 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.
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+ 4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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) 2000 The NetBSD Foundation, Inc.
+ All rights reserved.
+
+ This code is derived from software contributed to The NetBSD Foundation
+ by Dieter Baron and Thomas Klausner.
+
+ 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.
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the NetBSD
+ Foundation, Inc. and its contributors.
+ 4. Neither the name of The NetBSD Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ ``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 FOUNDATION OR CONTRIBUTORS
+ 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.
+
+Files: ACE_wrappers/examples/C++NPv1
+ ACE_wrappers/examples/C++NPv2
+ ACE_wrappers/examples/APG
+Copyright: © 2001, 2003 Addison Wesley
+License: other
+ All of the files in these directories are copyright Addison Wesley,
+ and they come with absolutely no warranty whatsoever. Permission is
+ hereby granted to use these programs for educational or commercial
+ purposes.
diff --git a/ACE/debian/debian.changelog b/ACE/debian/debian.changelog
new file mode 100644
index 00000000000..72683e1e5c5
--- /dev/null
+++ b/ACE/debian/debian.changelog
@@ -0,0 +1,1026 @@
+ace (6.0.1-1) unstable; urgency=low
+
+ [ Pau Garcia i Quiles ]
+ * New upstream release
+ * Drop patch 12-add-DESTDIR-to-MPC (applied upstream)
+ * Drop patch 13-add-QtReactor-export (applied upstream)
+ * Drop patch 14-fix-tcl-flags (applied upstream)
+ * Drop patch 16-fix-pidl-install (applied upstream)
+ * Update patch 11-promote-QtResource-to-qt4
+ * Update patch 15-fix-lzo-flags
+ * Update patch 34-bts386713
+ * Require debhelper >= 7 (it was already required, in practice)
+ * Register documentation with doc-base
+ * Explicitly set source format 1.0 until we move to 3.0
+ * Package ACE_INet and ACE_INet_SSL
+
+ [ Thomas Girard ]
+ * Build-depend on Tcl/Tk >= 8.5.
+
+ -- Pau Garcia i Quiles <pgquiles@elpauer.org> Sun, 20 Feb 2011 16:33:13 +0100
+
+ace (6.0.0-1) experimental; urgency=low
+
+ * New upstream release:
+ o use new make install target.
+ o remove generator_pkgconfig.sh, no longer needed.
+ o new binary renaming:
+ - LoadManager => tao_loadmanager
+ - LoadMonitor => tao_loadmonitor
+ - ImplRepo_Service => tao_imr_locator
+ - ImR_Activator => tao_imr_activator
+ - IFR_Service => tao_ifr_service
+ - Fault_Detector => tao_fault_detector
+ - Fault_Notifier => tao_fault_notifier
+ - Scheduling_Service => tao_cosscheduling
+ - Dump_Schedule => tao_dump_schedule
+ o remove libACE_gperf_lib.
+ o remove patches that were merged upstream:
+ - 11-create-ace_qt4reactor-mpb.dpatch
+ - 12-create-config_kfreebsd.dpatch
+ - 16-rename-tao-programs.dpatch
+ - 24-add-missing-headers.dpatch
+ - 25-remove-duplicate-files.dpatch
+ - 47-change-netsvcs.dpatch
+ - 48-fix-doxygen-cross-links.dpatch
+ o remove useless patches:
+ - 10-fix-prj-install.dpatch
+ - 19-gcc43.dpatch
+ o rework existing patches:
+ - 20-versioned_libs.dpatch, for versioned_so=2
+ - 34-bts386713.dpatch
+ - 90-patch-mpc-basedir.dpatch
+ o new patches or scripts:
+ - 12-add-DESTDIR-to-MPC.dpatch, to add and use DESTDIR in make install
+ - 13-add-QtReactor_export.h.dpatch, to add a missing header in
+ libace-qtreactor-dev package.
+ - 16-fix-pidl-install.dpatch, to add missing .pidl files.
+ - fix_doxygen.sh, to regenerate the patch for Doxygen reduction.
+ * Bump Standards-Version: to 3.9.1.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Thu, 06 Jan 2011 07:39:04 +0100
+
+ace (5.7.7-4) unstable; urgency=high
+ [ Marek Brudka ]
+ * Synchronized *.pc with *.so and created transitional tags. Closes: #598169
+
+ -- Marek Brudka <mbrudka@aster.pl> Mon, 27 Sep 2010 20:36:00 +0200
+
+ace (5.7.7-3) unstable; urgency=low
+ [ Marek Brudka ]
+ * Configuration file for KFreeBSD created. Closes: #591586.
+ * Restored pkgconfig files. Closes: #591610.
+ * Provided manpages for tao_catior, tao_nslist, tao_nsdel,
+ tao_nsadd, ace_netsvcs.
+
+ [ Thomas Girard ]
+ * Disable -fvisibility=hidden on armel since it does not seem to work on
+ that platform. Closes: #593225.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Tue, 07 Sep 2010 20:04:20 +0200
+
+ace (5.7.7-2) unstable; urgency=low
+
+ * Rebuild with sid tk-dev build-dependency. Closes: #590512.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Mon, 02 Aug 2010 23:49:01 +0200
+
+ace (5.7.7-1) unstable; urgency=low
+
+ [ Thomas Girard ]
+ * Add Marek to Uploaders: field.
+ * Remove dependencies on autotools; these are no longer needed now that we
+ have agreed to move back to the traditional compilation method.
+ * Add bzip2 and lzo ZIOP implementation.
+ * New patch: 20-versioned_libs.dpatch, to generate libraries with names
+ following libACE-5.7.7.so pattern instead of libACE.so.5.7.7.
+ * Rename binaries and packages to follow what is used in RPMs.
+ * Move $ACE_ROOT to /usr/lib/ace.
+
+ [ Marek Brudka ]
+ * New upstream release:
+ o add libACE_gperf, libACE_ETCL and libACE_Monitor_Control to libace
+ o add headers and libraries for Monitor, ZIOP, ETCL to libtao package
+ o renamed gperf-ace to ace_gperf to follow the upstream convention
+ o renamed utilities (ns{add,del,list} to tao_ns{add,del,list}) in tao-utils
+ to follow the upstream changes
+ * Change compilation back to traditional ACE+TAO build method:
+ o adapt existing Debian build mechanism
+ o remove patches no longer needed because of this switch
+ o use MPC generated makefiles
+ o install build result using MPC/prj_install.pl and .ins files
+ o temporarily excluded logWalker from build
+ * New patch: 10-fix-prj-install to work-around a problem installing files
+ * Added PerlACE to mpc-ace. Closes: #522557
+ * Created patch to reduce the size of doxygen doc. Closes: #562164
+ * Created patch to fix cross references in doxygen tags
+ * Created libnetsvcs packages. Closes: #466137. Addresses: LP#185285
+ * Moved IDL fiels from /usr/include into /usr/share/idl
+
+ [ Pau Garcia i Quiles ]
+ * New upstream release
+ * Add dependency on ${misc:Depends}
+ * Add new libraries and update patch 34-bts386713 accordingly
+ * Update patch 02-qt4 (partially fixed upstream)
+ * Drop patch 05-autoconf-fox (fixed upstream)
+ * Drop patch 06-fix-kokyu-mpc (fixed upstream)
+ * Drop patch 07-autoconf-fix-gperf (fixed upstream)
+ * Drop patch 08-fix-perl-shebang (fixed upstream)
+ * Drop patch 10-fix-fox-resource-export (fixed upstream)
+ * Drop patch 11-fix-fox-reactor.dpatch (fixed upstream)
+ * Update patch 12-fix-fox-include
+ * Drop patch 13-fix-fox-errors (fixed upstream except for the #include, which
+ I have now merged in 12-fix-fox-include)
+ * Drop patch 14-autoconf-tao (fixed upstream)
+ * Drop patch 15-fix-fltk-include (fixed upstream)
+ * Drop patch 17-protect-mpc-path (fixed upstream)
+ * Drop patch 18-fix-bswap-detection (fixed upstream)
+ * Update patch 19-gcc43
+ * Drop patch 20-fix-iostream-detection (fixed upstream)
+ * Drop patch 22-remove-Ge-doc (fixed upstream)
+ * Drop patch 23-add-sh-shebang (fixed upstream)
+ * Update patch 24-add-missing-headers (WORK IN PROGRESS)
+ * Update patch 34-bts386713
+ * Drop patch 49-missing-template (fixed upstream)
+ * Update patch 90-patch-mpc-basedir
+ * Update patch 91-patch-dg-basedir
+ * Add patch 93-hack-to-fix-libtoolize
+ * Add patch 94-build-crosscompile
+ * Add patch 95-build-ace-for-tao
+ * Add patch 96-build-athena3d
+ * Remove DH_COMPAT definition from the debian/rules file, it's already in
+ debian/compat
+ * Fix fox-config location, detection method has changed since 5.6.3
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Sun, 23 May 2010 16:58:42 +0200
+
+ace (5.6.3-6) unstable; urgency=low
+
+ [ Thomas Girard ]
+ * Remove obsolete maintainers:
+ - Konstantinos Margaritis <markos@debian.org>
+ - Brian Nelson <pyro@debian.org>
+ Closes: #521487.
+ * Bump Standards-Version: to 3.8.3.
+ * Remove erroneous #define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR in config.h;
+ causing diagnostics to FTBFS. Closes: #552899.
+ * Remove extra ACLOCAL_AMFLAGS from already existing Makefile.am; causing
+ recent aclocal to abort. Thanks to Pau Garcia i Quiles for the patch.
+ Closes: #518735.
+ * Add README.source.
+ * Add Pau Garcia i Quiles to the list of maintainers.
+ * Fix many issues spotted by lintian.
+
+ [ Pau Garcia i Quiles ]
+ * Add new patches:
+ - Remove duplicate files from .mpc files so that Makefile.am files do
+ not have duplicates
+ - Run autoupdate and autoreconf in the ACE and TAO directories in order
+ to update from libtool 1.5 (what upstream uses) to libtool 2.2
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Sun, 13 Dec 2009 11:47:50 +0100
+
+ace (5.6.3-5) unstable; urgency=low
+
+ * Do not ship MPC config files in both mpc-ace and libace-dev packages;
+ they're meant to be only in mpc-ace. Make mpc-ace Replaces: the bogus
+ previous upload. Closes: #484718.
+ * Bump Standards-Version: to 3.8.0.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Fri, 13 Jun 2008 21:52:28 +0000
+
+ace (5.6.3-4) unstable; urgency=low
+
+ * Add the following missing programs to libace-dev:
+ o $ACE_ROOT/bin/generate_export_file.pl
+ o $ACE_ROOT/bin/split-cpp
+ o $ACE_ROOT/bin/g++dep
+ o $ACE_ROOT/bin/add_rel_link.sh
+ * Move DependencyGenerator from mpc-ace to libace-dev.
+ * New patch, 22-remove-Ge-doc.dpatch, to remove documentation for
+ tao_idl -Ge flag that no longer works. Thanks to Pascal Giard for
+ reporting this.
+ * Remove PACKAGE_* definitions from /usr/include/ace/config.h. Thanks to
+ Pascal Giard for reporting this.
+ * Remove pre-etch Conflicts: and Replaces: information.
+ * Add missing headers found with cmp-installation.sh. Closes: #481088.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Sat, 24 May 2008 15:47:01 +0000
+
+ace (5.6.3-3) unstable; urgency=low
+
+ * Pass full path to fox-config-1.6 instead of trying to detect fox-config
+ since fox-config is an alternative. Should fix multiple FTBFS.
+ * Enable IPv6 again. Disabling it was a mistake: it does work. But on an
+ IPv4 only host one need to specify the end-point to use, e.g. :
+ Naming_Service -ORBEndPoint iiop://localhost:1234
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Thu, 24 Apr 2008 18:27:07 +0000
+
+ace (5.6.3-2) unstable; urgency=low
+
+ * Add missing libfox-1.6-dev build dependency. Thanks to Bastian Blank for
+ the report. Closes: #476822.
+ * Build depend on libqt4-dev (>= 4.4~rc1-4) to fix FTBFS. Thanks to
+ Martin Zobel-Helas for the report and to Sune Vuorela for the fix.
+ Closes: #476505.
+ * Add platform_macros.GNU.in and have autotools handle it so that it's
+ possible to ship rules.*.GNU. Closes: #469843, #469845.
+ * Remove doxygen-generated files we don't need.
+ * (Build-)Depend on tk-dev instead of tk8.4-dev.
+ * Rework debian/patches/05-autoconf-fox.dpatch not to link against too
+ many libs.
+ * Restore doxygen build-dependency.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Tue, 22 Apr 2008 18:23:46 +0000
+
+ace (5.6.3-1) unstable; urgency=low
+
+ * New upstream release:
+ o missing os_include/os_byteswap.h is included. Closes: #469844.
+ * Upload to unstable.
+ * New packages: libace-foxreactor and libtao-foxresource, integrating
+ with the FOX toolkit.
+ * Build doxygen again.
+ * Rewrite debian/copyright, following proposal from:
+ http://wiki.debian.org/Proposals/CopyrightFormat
+ * Add a watch file.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Sat, 12 Apr 2008 17:10:14 +0000
+
+ace (5.6.2-1) experimental; urgency=low
+
+ * New upstream release.
+ * Generate .am files instead of patching them; hence drop:
+ o patches/02-tao-sonames-release-am.dpatch
+ o tao-sonames-release-am.sh
+ * Fix DEB_BUILD_OPTIONS=noopt.
+ * Add zlib1g-dev and libzzip-dev build dependencies.
+ * Enable symbol visibility.
+ * Manually add missing some autoconf tests to reduce differences against
+ regular ACE build method.
+ * Do not generate doxygen; it fails now.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Sun, 06 Jan 2008 21:05:37 +0100
+
+ace (5.5.9-1) experimental; urgency=low
+
+ * New upstream release. We now use the -src.tar.bz2 tarball, hence:
+ o generate autotools stuff at compile time
+ o huge patches/06-bootstrap is dropped
+ * Fix broken libtao-tkresource package.
+ * Drop no longer needed patches:
+ o 03-compile-lifecycle
+ o 04-compile-ftrt
+ o 07-ace-tao-ssliop-refcount
+ * New patches:
+ o 02-qt4 to switch to Qt4
+ o 02-fltk-no-gl to avoid linking with libfltk_gl
+ o 03-g++-new-throws to prevent autoconfiguration from eating all
+ memory testing whether std::bad_alloc is thrown
+ * Disable patch 20-check-_REENTRANT; it's not needed when using autotools
+ method. Closes: #420216.
+ * Update patch 34-bts386713.
+ * Use debian/compat instead of DH_COMPAT.
+ * Drop no longer needed dpkg-dev tightened build-dependency since it is
+ available in etch.
+ * Generate doxygen documentation. Closes: #391011.
+ * Enable ACE reactor notification queue.
+ * Move $ACE_ROOT/bin/MakeProjectCreator/config files into libace-dev.
+ * Install $TAO_ROOT/MPC files into libtao-dev.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Tue, 17 Jul 2007 22:50:36 +0200
+
+ace (5.5.6-2) experimental; urgency=low
+
+ * debian/control: fix broken Conflicts: fields. Package split for
+ libtao-orbsvcs happened in libtao-orbsvcs1.4.7c2a 5.4.7-11 and this should
+ not be changed.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Fri, 23 Mar 2007 18:38:41 +0000
+
+ace (5.5.6-1) experimental; urgency=low
+
+ Thomas Girard:
+ * New upstream release. Closes: #381647.
+ * Switch to the autotools method. Consequences:
+ o CIAO packages are dropped for now
+ o static libraries are removed as well
+ o IPv6 is disabled again
+ * Drop obsolete patches and scripts.
+ * We no longer ship TAO_ORB_Options.1 in libtao-orbsvcs.
+ * debian/patches/01-change-tao-sonames.dpatch: enable TAO_VERSION_NAME
+ propagation from configure, and use it for TAO libraries.
+ * debian/patches/02-tao-sonames-release-am.dpatch: diff on Makefile.am
+ after application of the 01-change-tao-sonames patch.
+ * debian/patches/03-compile-lifecycle.dpatch: enables LifeCycle
+ compilation.
+ * debian/patches/04-compile-ftrt.dpatch: enables FTRT_EventService
+ compilation.
+ * debian/patches/07-ace-tao-ssliop-refcount.dpatch: fix ssliop reference
+ counting problem.
+
+ Konstantinos Margaritis:
+ * changed URL in copyright to new one.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Thu, 15 Mar 2007 22:12:29 +0000
+
+ace (5.4.7-11) unstable; urgency=low
+
+ * debian/control: package HTBP, the protocol over HTTP tunneling library.
+ * debian/control: split libace into libace + libace-ssl.
+ * debian/control: move binaries in their own tao-* packages.
+ * debian/patches/34-bts386713.dpatch: dlopen() TAO libraries using their
+ full name (Closes: #386713).
+ * debian/generate_pkgconfig.sh: generate .pc files (Closes: #367480).
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Sat, 23 Sep 2006 15:02:12 +0200
+
+ace (5.4.7-10) unstable; urgency=low
+
+ * debian/rules: fix and honor DEB_BUILD_OPTIONS.
+ * debian/libace-dev.install: drop QoS header files as QoS in not compiled
+ in.
+ * debian/*.install: fix empty wildcard expansion that produce errors when
+ DH_COMPAT is 5.
+ * debian/libtao-dev.install: do not distribute include files from TAO_IDL.
+ They are not needed and don't get installed when using the autotools
+ method.
+ * debian/rules: rename mwc.pl and mpc.pl to mwc-ace and mpc-ace.
+ * debian/ace-config*,debian/tao-config*: dropped. These files were no
+ longer installed.
+ * debian/libace-dev.install: don't install ace-config and tao-config
+ manpages either (Closes: #367478).
+ * debian/control: relax mpc-ace dependencies. This package now installs
+ without pulling any ACE library. Thanks to Alex Bodnaru for noticing.
+ * debian/control: simplify packages synopsis and descriptions.
+ * debian/control: drop xerces dependency (Closes: #378605). Xerces is
+ only needed by DAnCE, which is not packaged yet.
+ * debian/libace-dev.install: remove generate_export_file.pl for now.
+ * patches/31-gcc-4.1-fix.dpatch: add other type-punned fixes taken from
+ upstream.
+ * debian/mpc.sgml: new man page.
+ * debian/patches/32-bug1770-fix.dpatch,33-bug1805-fix.dpatch: backport
+ two patches for SSL wrappers.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Thu, 20 Jul 2006 20:55:53 +0200
+
+ace (5.4.7-9) unstable; urgency=low
+
+ * debian/patches/28-bug2222-fix.dpatch, debian/patches/29-bug2262.dpatch:
+ backport upstream fixes.
+ * debian/patches/31-gcc-4.1-fix.dpatch: fix "dereferencing type-punned
+ pointers" gcc 4.1 warning.
+ * debian/patches/30-Env_Value-template-specialization-fix.dpatch:
+ backport template specialization fix (Closes: #358898).
+ * debian/patches/20-debian-compiler-definitions.dpatch: downgrade
+ optimization flag from `-O3' to `-O2'.
+ * debian/rules: add ${perl:Depends} for mpc-ace package.
+ * debian/control: make a new package, libciao-doc.
+ * debian/libtao-dev.install: add missing pkg-config file for ImR_Client
+ library.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Wed, 29 Mar 2006 22:14:53 +0200
+
+ace (5.4.7-8) unstable; urgency=low
+
+ * debian/copy_template_sources.sh: add missing files to `libtao-dev'
+ package. Thanks to Arren and Bernhard Seibold for reporting this.
+ * debian/patches/23-PortableGroup-exceptions-propagation.dpatch,
+ debian/patches/24-collocated-oneway+SYNC_WITH_SERVER-fix.dpatch,
+ debian/patches/25-TypeCode-equivalent-fix.dpatch,
+ debian/patches/26-union-_default-fix.dpatch,
+ debian/patches/27-bug2225-fix.dpatch: backport various upstream
+ fixes.
+ * debian/control: tighten build dependency from `xlibs-dev' to
+ `libxt-dev'. (Closes: #346607).
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Fri, 13 Jan 2006 17:15:37 +0200
+
+ace (5.4.7-7) unstable; urgency=low
+
+ * debian/config/config.h: add IPv6 support. Thanks to David Hausheer
+ for the report and the fix. (Closes: #341988)
+ * debian/patches/23-TTY_IO-compilation-fix.dpatch: new patch to work
+ around `struct termios` platform-specific fields. (Closes: #342328).
+ * debian/patches/84-skip-DAnCE-compilation.dpatch: completely disable
+ DAnCE compilation, since we don't package it. (Closes: #336020).
+ * Really close fixed in NMU bugs (Closes: #324271, #339142).
+
+ -- Konstantinos Margaritis <markos@debian.org> Mon, 19 Dec 2005 13:40:48 +0200
+
+ace (5.4.7-6) unstable; urgency=low
+
+ * debian/control: consolidate package descriptions.
+ * debian/patches/16-g++4-visibility-tweaks.dpatch:
+ Backport upstream tweaks for g++ 4 visibility feature and disable
+ visibility hiding for now. (Closes: #324271).
+ * debian/rules: g++ 4.0.2 was ICE'ing on #pragma once. This is no
+ longer true as of g++-4.0_4.0.2-4, so we can use g++4 again. For the
+ record, another possible fix was to #define ACE_LACKS_PRAGMA_ONCE in
+ `$ACE_ROOT/ace/config.h`.
+ * Add `c2a` suffix to all libs for libstdc++ allocator change.
+ (Closes: #339142).
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Fri, 18 Nov 2005 20:23:59 +0100
+
+ace (5.4.7-5) unstable; urgency=low
+
+ * Force gcc 3.4 for all arches, seems gcc 4.0 produces errors on all of
+ them. (Closes: #333981)
+
+ -- Konstantinos Margaritis <markos@debian.org> Wed, 12 Oct 2005 03:26:14 +0300
+
+ace (5.4.7-4) unstable; urgency=medium
+
+ * Rebuilt package for the Qt C++ transition. (Closes: #327926).
+ * Also, gcc 4.0 is buggy in some arches, use g++-3.4 on them instead.
+ Update: Even on i386, cpp-4.0 produces Internal Compiler Errors(ICEs). For
+ this reason, cpp-3.4 will be used instead (but with gcc/g++ 4.0.
+
+ -- Konstantinos Margaritis <markos@debian.org> Mon, 4 Oct 2005 03:21:20 +0300
+
+ace (5.4.7-3) unstable; urgency=low
+
+ * Fixed (another) missing build-dependency. (Closes: #323630)
+ (this is getting irritating :-)
+
+ -- Konstantinos Margaritis <markos@debian.org> Thu, 18 Aug 2005 10:29:48 +0300
+
+ace (5.4.7-2) unstable; urgency=low
+
+ * Fixed missing build-dependency in the .dsc file. (Closes: #323181)
+
+ -- Konstantinos Margaritis <markos@debian.org> Tue, 16 Aug 2005 01:09:09 +0300
+
+ace (5.4.7-1) unstable; urgency=low
+
+ * Thomas Girard <thomas.g.girard@free.fr>
+ - New upstream release. (Closes: #317488)
+ - Package names were changed to include the full library soname.
+ (Closes: #288161)
+ - debian/control: libtao-{xt,qt}reactor are now called
+ libtao-{xt,qt}resource. Also add libtao-{fl,tk}resource.
+ - debian/control: add new package libace-tmcast5.4.7.
+ * Konstantinos Margaritis
+ - Now use the .bz2 version of the original tarball to save space.
+
+ -- Konstantinos Margaritis <markos@debian.org> Fri, 12 Aug 2005 12:45:13 +0300
+
+ace (5.4.2.1.0-4) unstable; urgency=high
+
+ * Thomas Girard <thomas.g.girard@free.fr>
+ - debian/control:
+ o libacexml-dev depends on libace-dev.
+ o libkokyu-dev depends on libace-dev.
+ o libtao-dev depends on libtao1.4.
+ o normalize Depends: and Build-Depends: sections.
+ - debian/ace-config.1 debian/tao-config.1: fix hyphenation problem
+ reported by lintian.
+ - debian/libciao-dev.install: add missing .idl and .pidl files.
+ (Closes: #307258)
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Mon, 2 May 2005 19:30:01 +0200
+
+ace (5.4.2.1.0-3) unstable; urgency=high
+
+ * Thomas Girard <thomas.g.girard@free.fr>
+ - debian/patches/84-mpc-honour-soversion.dpatch: new patch from
+ upstream to honour the `version' keyword for libraries.
+ - debian/patches/17-fix-tao-encode_value-memory-leak: new patch
+ from upstream to fix a potential memory leak.
+ - debian/mpc-ace.install: add depgen.pl. (Closes: #289157)
+ - debian/tao_idl: new script that automatically sets ACE_ROOT and
+ TAO_ROOT environment variables. (Closes: #289158)
+ - debian/rules: unbreak gperf-ace. (Closes: #294338)
+ - debian/remove_reactor_dups.sh: new script to ensure that duplicate
+ reactor header files get deleted. (Closes: #294660)
+ - debian/patches/21-always-inline.dpatch, debian/config.h: Always
+ define __ACE_INLINE__, and remove the inline option from the MPC
+ generated GNUmakefiles. Thanks to Marek Brudka for reporting this and
+ for providing the fix. (Closes: #290114)
+ - debian/patches/18-fix-trader-twiddle-operator.dpatch: backport
+ fix to correct operator ~ in trader constraints.
+ - debian/patches/19-fix-taoidl-fd-leak.dpatch: backport a fix to
+ close open file.
+ - debian/control: lib{ace,tao}qtreactor-dev packages depend on
+ libqt3-mt-dev.
+ - debian/libtao-orbsvcs1.4.install:
+ o Add FT_ReplicationManager.
+ o Add Fault_Detector and Fault_Notifier.
+ - debian/control:
+ o mpc-ace is in devel section.
+ o lib{ace,tao}-{fl,tk,qt,xt}reactor-dev are in libdevel section.
+ - debian/tao_ifr: new wrapper script that automatically sets ACE_ROOT
+ and TAO_ROOT environment variables.
+ - debian/libtao-orbsvcs1.4.manpages: add TAO_ORB_Options.1 manpage.
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Wed, 30 Mar 2005 23:24:40 +0200
+
+ace (5.4.2.1.0-2) unstable; urgency=medium
+
+ * Konstantinos Margaritis <markos@debian.org>
+ - Changed dependency of libfltk1-dev in libace-flreactor-dev to
+ libfltk1.1-dev (Closes: #289287)
+ - Added Uploaders field in control.
+
+ -- Konstantinos Margaritis <markos@debian.org> Sat, 8 Jan 2005 22:39:05 +0200
+
+ace (5.4.2.1.0-1) unstable; urgency=low
+
+ * Thomas Girard <thomas.g.girard@free.fr>
+ - Much lintian cleaning.
+ - Integrate upstream MPC patch to honour `libout' and `install' keywords.
+ - Repackage FTRT_EventChannel.
+ - Bug 242881 was closed in the previous upload. (Closes: #242881)
+ - debian/control: libtao-dev should depend on libace-dev.
+ (Closes: #277052)
+ - debian/{Basic,Event,Notify,RTEvent}_Logging_Service.sgml: new man pages.
+ - debian/rules: add docbook-to-man calls.
+ * Raphael Bossek <bossekr@debian.org>
+ - debian/config/debian.features: MPC configuration for Debian GNU/Linux added
+ - debian/config/platform_macros.GNU: Removed due to introduction of
+ debian.features files. This file will be generated
+ - debian/rules: Uses dpatch. Simplified clean target by removing temporary
+ ACE_wrappers subdirectory. Install ace-config and tao-config scripts
+ with executable bit set (Closes: #278522, #278523)
+ - debian/control: Added new reactor packages. Removed depricated
+ suggestions on ace+tao-utilities. Added libssl-dev as recommendation for
+ libace-dev. Added suggestions for pkg-config
+ - Upgrade to latest version of TAO (Closes: #265238)
+ - debian/pkgconfig-ace, debian/pkgconfig-tao, debian/ace.pc.in,
+ debian/tao.pc.in: Support for pkg-config added
+ - debian/libace-dev.links: Added sym-link for /usr/share/ace/lib and
+ /usr/share/ace/bin/generate_export_file.pl
+ - debian/*.docs, debian/*.manpages: Added source directory ACE_wrappers as prefix
+ - debian/libace-dev.install: Added ACE_wrappers/bin/generate_export_file.pl
+
+ -- Thomas Girard <thomas.g.girard@free.fr> Mon, 18 Oct 2004 13:35:56 +0200
+
+ace (5.4.2.1-1) unstable; urgency=low
+
+ * Thomas Girard <thomas.g.girard@free.fr>
+ - New upstream release. (Closes: #243062)
+ - Do not link against Xt libs. (Closes: #251477)
+ - As such, libace-dev does not need to depend on libxt-dev nor xlibs-dev
+ (Closes: #253226)
+ - Add MPC.
+ - Patch ACE_IOStream to support g++ 3.3. (Closes: #243473)
+ - Patch MPC to honour `libout' and `install' keywords in GNUmakefile
+ generation. See DOC Bug#1915.
+ - Backport a fix to NotifyLoggingService from CVS.
+ - Make %S work in ACE_DEBUG.
+ * Konstantinos Margaritis
+ - Fixed missed path for libACE.so.5.4.2 in dh_shlibdeps
+ - Fixed incorrect timestamp of original archive (1970 etc).
+
+ -- Konstantinos Margaritis <markos@debian.org> Thu, 2 Sep 2004 23:04:56 +0200
+
+ace (5.4.0.1-1.1) unstable; urgency=low
+
+ * Fixed ACE_NDEBUG configuration of ACE. (Closes: #242881)
+ * Build-depends on libqt3-headers removed qt_reactor not set.
+ * System capabilities will be determined by including <unistd.h> in
+ <ace/config.h>.
+
+ -- Raphael Bossek <bossekr@debian.org> Thu, 8 Apr 2004 15:37:24 +0200
+
+ace (5.4.0.1-1) unstable; urgency=low
+
+ * KM: release to fix the timestamp errors in the upstream source.
+
+ -- Konstantinos Margaritis <markos@debian.org> Sun, 29 Feb 2004 21:11:14 +0200
+
+ace (5.4-3) unstable; urgency=low
+
+ * KM: backported fixes from CVS to fix 64-bit pointer to int casting in
+ orbsvcs/RTCosScheduling files. This is to fix FTBFS bug in 64-bit archs,
+ until 5.4.1 is released (mid-march).
+ Closes: #233890
+
+ -- Konstantinos Margaritis <markos@debian.org> Wed, 28 Feb 2004 15:53:30 +0200
+
+ace (5.4-2) unstable; urgency=low
+
+ * KM: Includes patch from Raphael Bossek <bossekr@debian.org> to handle
+ bug in tao_idl to use ACE_GPERF instead of plain gperf.
+ * BN: libace-dev now suggests libtao-dev instead of the non-existing tao
+ package. (Closes: #233488)
+ * BN: prepended a "-" to the chmod commands in debian/rules so that they
+ don't fail if used repeatedly.
+
+ -- Brian Nelson <pyro@debian.org> Wed, 18 Feb 2004 02:23:07 -0800
+
+ace (5.4-1) unstable; urgency=low
+
+ * KM: new upstream release
+ * KM: Now builds also ACE+SSL library, Kokyu and CIAO libs.
+ * KM: Due to the orbsvcs executables we can't have 2 different versions
+ of the libtao-orbsvcs1.x package, so we have to replace. This doesn't apply
+ for libace5.x, libtao1.x or the rest of the libs.
+ * Closes: #229134 (fixed dependencies).
+
+ -- Konstantinos Margaritis <markos@debian.org> Sun, 25 Jan 2004 13:33:20 +0200
+
+ace (5.3.1-8) unstable; urgency=low
+
+ * KM: Included the .pidl files in libtao-dev package. These
+ were needed by some .idl files. (Closes: #213568)
+
+ -- Konstantinos Margaritis <markos@debian.org> Wed, 29 Oct 2003 23:46:01 +0200
+
+ace (5.3.1-7) unstable; urgency=low
+
+ * BN: Changed maintainer to "Debian ACE+TAO maintainers
+ <pkg-ace-devel@lists.alioth.debian.org>" and moved myself to the
+ Uploaders.
+ * KM: Fixed conflicting file "/usr/bin/catior" by changing the name to
+ tao-catior in libtao-dev. (Closes: #214421)
+
+ -- Brian Nelson <pyro@debian.org> Thu, 9 Oct 2003 15:05:12 -0700
+
+ace (5.3.1-6) unstable; urgency=low
+
+ * Added the ORB services .idl files that were left out from the
+ libtao-orbsvcs-dev package. (Closes: #213568)
+
+ -- Konstantinos Margaritis <markos@debian.org> Sun, 5 Oct 2003 12:31:21 +0300
+
+ace (5.3.1-5) unstable; urgency=low
+
+ * Regenerated .diff.gz so that it is no longer broken (Closes: #211501)
+ * Back out Debian-specific change in the way that CosNamingC.h is
+ included in TAO/utils/nslist/nslist.cpp. I'm not sure why this was
+ changed in the first place, but it broke the build. (Closes: #213611)
+
+ -- Brian Nelson <pyro@debian.org> Wed, 1 Oct 2003 10:28:54 -0700
+
+ace (5.3.1-4) unstable; urgency=low
+
+ * Moved the manpages back to -dev packages to follow policy.
+ * Now mostly lintian clean.
+ * provided manpages for a few executables.
+
+ -- Konstantinos Margaritis <markos@debian.org> Wed, 17 Sep 2003 11:43:55 +0300
+
+ace (5.3.1-3) unstable; urgency=low
+
+ * Updated to new standards version 3.6.1
+ * Fixed the section of a couple of packages.
+ * Now the getrlimit, etc functions are always defined
+ as ints. g++ 3.x does not complain anymore (Closes: #104681).
+
+ -- Konstantinos Margaritis <markos@debian.org> Tue, 16 Sep 2003 10:31:03 +0300
+
+ace (5.3.1-2) unstable; urgency=low
+
+ * Now the following TAO packages are created:
+ libtao1.3.1, libtao-dev, libtao-doc, libtao-orbsvcs1.3.1,
+ libtao-orbsvcs-dev.
+ * Also included ACEXML library in two separate packages:
+ libacexml5.3.1, libacexml-dev.
+ * Full doxygen documentation not included due to size concerns.
+ (Closes: #108749).
+ * tao-config included in libtao-dev. (Closes: #159234).
+ * All -dev packages carry their respective examples in full and
+ uncompressed. (Closes: #52145, #76967).
+ * libACE.a is compiled with thread support enabled. (Closes: #126717).
+ dbbalancer now builds successfully with -static.
+ * Moved all manpages to respective -doc pagkaces. (Closes: #73044).
+
+ -- Konstantinos Margaritis <markos@debian.org> Tue, 9 Sep 2003 10:41:14 +0300
+
+ace (5.3.1-1) unstable; urgency=low
+
+ * New upstream release
+ * New maintainers for the package, Brian Nelson <pyro@debian.org> and
+ Konstantinos Margaritis <markos@debian.org> (Closes #199768)
+ * Removed build-dependency on versioned g++
+ * Bumped up standards version to 3.6.0
+ * Dropped version string from -dev package name
+ * libace-dev: downgrade tao to suggests (where did tao go anyway?)
+ * Use debian/compat for debhelper versioning
+ * Use dh_install instead of dh_movefiles, and dh_link instead of manual
+ ln. The debian/rules file is a lot less hairy now.
+ * Reinstated a libace-doc package (Closes: #192338)
+ * Added symlinks to /usr/share/ace so that this directory can serve as
+ $ACE_ROOT. Added a corresponding note to the README.Debian
+ file. (Closes: #80329)
+ * Removed the /usr/lib/libACE.so.5 and libACE_RMCast.so.5 symlinks, and
+ made the package names match the sonames. The sonames now include the
+ full version string, so ACE libs of different versions from now on
+ should coexist nicely, even though upstream doesn't use a proper
+ versioning scheme. (Closes: #147741)
+
+ -- Brian Nelson <pyro@debian.org> Fri, 15 Aug 2003 00:15:59 -0700
+
+ace (5.2.4-1.2) unstable; urgency=low
+
+ * fix to previous NMU
+ * (Closes: #190792)
+
+ -- Konstantinos Margaritis <markos@debian.org> Sat, 26 Apr 2003 19:18:49 +0300
+
+ace (5.2.4-1.1) unstable; urgency=low
+
+ * gcc-3.2 transition, NMU patch by Andreas Metzler <ametzler@debian.org>
+ * (Closes: #188328)
+
+ -- Konstantinos Margaritis <markos@debian.org> Fri, 11 Apr 2003 23:25:38 +0200
+
+ace (5.2.4-1) unstable; urgency=low
+
+ * New upstream.
+ * Incorporated below change from Goswin. (Closes: #159236)
+
+ -- Ossama Othman <ossama@valinor.ece.uci.edu> Sun, 15 Sep 2002 14:14:06 -0700
+
+ace (5.2.1-1.1) unstable; urgency=low
+
+ * debian/control: libace5.2-dev recommends tao
+ * ace-config: export ACE_ROOT
+ make -f /usr/share/ace/ace-config.GNU
+ test for tao-confg
+ unset MAKEs env vars to prevent extranous output
+ * debian/rules: install platform macros in
+ $(ACE_PREFIX)/share/ace/include/makeinclude/
+
+ -- Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de> Mon, 02 Sep 2002 02:37:25 +0200
+
+ace (5.2.1-1) unstable; urgency=low
+
+ * New upstream.
+ * Pulled in updated g++ configuration header and Linux Makefile rules
+ for ACE. They allow implicit template instantiation to occur.
+ * Disabled support for the ACE_XT_Reactor. Most folks never use it.
+
+ -- Ossama Othman <ossama@debian.org> Mon, 25 Feb 2002 13:15:25 -0800
+
+ace (5.1.8-7) unstable; urgency=low
+
+ * Really removed the flex/lex checks in configure.in.
+
+ -- Ossama Othman <ossama@debian.org> Wed, 28 Nov 2001 15:30:59 -0800
+
+ace (5.1.8-6) unstable; urgency=low
+
+ * Added "libtool" to Build-Depend field, and run libtoolize in `rules'
+ file to pull in links to recent config.sub, config.guess and
+ ltmain.sh revisions. (Closes: #120141)
+ * Removed local autoconf test that checks if new() throws exception
+ on failure. The test caused build hosts to come to a crawl. g++
+ does indeed throw an exception.
+ Just configure that explicitly. (Closes: #90731)
+ * Removed flex and yacc checks in configure.in. They aren't necessary
+ to build ACE.
+ * Closed bug related to gcc internal compiler error. (Closes: #85230)
+ * Removed unnecessary g++ dependency in control file. (Closes: #84405)
+ * Added missing xlibs-dev dependency to libace5.1-dev package.
+
+ -- Ossama Othman <ossama@debian.org> Mon, 26 Nov 2001 16:53:33 -0800
+
+ace (5.1.8-5.1) unstable; urgency=high
+
+ * NMU
+ * Added the missing build dependencies on flex and xlibs-dev.
+ (closes: #101170)
+
+ -- Adrian Bunk <bunk@fs.tum.de> Sat, 10 Nov 2001 01:17:53 +0100
+
+ace (5.1.8-5) unstable; urgency=low
+
+ * libace5.1 and libace5.1-dev now conflict with their corresponding ACE
+ 5.0 debian packages, since both sets of packages have files with the
+ same name. libace5.1-dev also conflicts with libace4.6-dev. (#74031)
+ * Added xlib6g-dev to the list of build dependencies. The X11 libraries
+ aren't strictly necessary to build ACE, but the Debian packages enable
+ ACE's XtReactor support.
+ * Updated `README.Debian'. The Debian ACE packages are no longer built
+ using experimental ACE Configuration Project distributions. They are
+ built using the upstream distribution's autoconf support (contributed
+ by the ACE Configuration Project).
+
+ -- Ossama Othman <ossama@debian.org> Thu, 5 Oct 2000 17:35:56 -0700
+
+ace (5.1.8-4) unstable; urgency=low
+
+ * Updated configure script from new upstream since it detects the CDROM
+ and STREAMS ioctl conflict in current kernels and glibc 2.1.94. This
+ fixes a seg fault that would occur in ACE applications that use the
+ ACE_Reactor.
+
+ -- Ossama Othman <ossama@debian.org> Wed, 4 Oct 2000 14:43:48 -0700
+
+ace (5.1.8-3) unstable; urgency=low
+
+ * Rebuilt against glibc 2.1.94 (pre-2.2).
+
+ -- Ossama Othman <ossama@debian.org> Fri, 29 Sep 2000 12:40:39 -0700
+
+ace (5.1.8-2) unstable; urgency=low
+
+ * Added missing Build-Depends and Build-Depends-Indep fields to the
+ control file. (#70113)
+ * Corrected `debian/rules' so that it doesn't erase the installed
+ `config-all.h' header.
+
+ -- Ossama Othman <ossama@debian.org> Sat, 23 Sep 2000 09:54:26 -0700
+
+ace (5.1.8-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Ossama Othman <ossama@debian.org> Fri, 25 Aug 2000 15:45:01 -0700
+
+ace (5.0.7-4) frozen unstable; urgency=low
+
+ * Rebuilt the packages so that they get installed in the unstable
+ distribution archive, in addition to the frozen one. (#58366)
+
+ -- Ossama Othman <ossama@debian.org> Wed, 24 May 2000 15:15:21 -0700
+
+ace (5.0.7-3) frozen; urgency=high
+
+ * Updated libtool related files from latest libtool multi-language
+ branch snapshot. Regenerated the configure script. It now has the
+ appropriate deplibs regex. Apparently, there was a problem with M4
+ quoting in the last package upload. (#63932)
+ * Explicitly enable C++ exception support. A fix to the configure
+ script caused this to be necessary since the configure script disables
+ exception handling by default.
+ * Updated `debian/rules' file to use debhelper v2 support.
+ * Updated download location in `debian/copyright'.
+
+ -- Ossama Othman <ossama@debian.org> Fri, 19 May 2000 15:05:30 -0700
+
+ace (5.0.7-2) frozen; urgency=low
+
+ * Updated `acewindex.html' file so that it is no longer empty. (#50704)
+ * Updated `ACE_Log_Msg.3' man page so that important information is
+ included when it is generated. This patch was incorporated upstream.
+ (#51224)
+ * Replaced configure script and related files with current upstream
+ configure script. Patched OS.{h,i} with llseek/lseek64 related
+ upstream fixes. This should correct the lseek64 and llseek problems
+ encountered in the m68k port. (#50094, #51074)
+ * Updated ace-config.in with latest upstream since the previous one was
+ missing a "-lACE" in the library list.
+ * Fixed "--infodir" and "--mandir" configure script options in `rules'
+ file. They incorrectly used a the actual install prefix instead of
+ the debian package install prefix. This fixes a problem where the
+ gperf-ace documentation wasn't being registered doc-base.
+
+ -- Ossama Othman <ossama@debian.org> Mon, 17 Jan 2000 18:39:18 -0800
+
+ace (5.0.7-1) unstable; urgency=low
+
+ * New upstream.
+ * Enabled C++ template repository during build. This will reduce
+ the size of the resulting binaries by about 20%.
+ * Updated copyright file. (updated distribution terms contain
+ suggestions contributed by Richard M. Stallman)
+ * FHS updates.
+ * Added versioned shlibs dependencies via "-V" option for dh_makeshlibs.
+ This is important since new versions of libACE are not always binary
+ compatible with previous versions.
+ * Updated libace5.0-dev to use package dh_installinfo to install
+ gperf-ace.info file.
+ * Minor update to ACE documentation index.html file.
+ * Added ACE man pages in HTML format.
+
+ -- Ossama Othman <ossama@debian.org> Fri, 29 Oct 1999 21:13:10 -0500
+
+ace (4.6.44-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Ossama Othman <ossama@debian.org> Tue, 13 Jul 1999 20:23:11 -0500
+
+ace (4.6.42-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Ossama Othman <ossama@debian.org> Sat, 26 Jun 1999 15:46:16 -0500
+
+ace (4.6.37-1) unstable; urgency=low
+
+ * New upstream.
+ * Added doc-base support.
+
+ -- Ossama Othman <ossama@debian.org> Tue, 27 Apr 1999 13:28:53 -0500
+
+ace (4.6.31-2) unstable; urgency=low
+
+ * Removed clone.1 man page since ACE clone utility isn't needed
+ for the Debian packages.
+
+ -- Ossama Othman <ossama@debian.org> Mon, 22 Mar 1999 14:47:50 -0600
+
+ace (4.6.31-1) unstable; urgency=low
+
+ * New upstream beta.
+ * Added ACE PROBLEM-REPORT-FORM to each package. (#34455)
+ * Rebuilt against glibc 2.1. (#34573)
+ * Added check for struct siginfo_t in signal.h. Thanks to
+ Konstantinos Margaritis <kmargar@cc.uoa.gr> for pointing this
+ configuration bug out. (#34678)
+
+ -- Ossama Othman <ossama@debian.org> Sun, 24 Jan 1999 15:49:04 -0500
+
+ace (4.6.15-1) unstable; urgency=low
+
+ * Updated to ACE release 4.6.15.
+
+ -- Ossama Othman <ossama@debian.org> Sat, 16 Jan 1999 18:47:25 -0500
+
+ace (4.6.13-1) unstable; urgency=low
+
+ * Updated to ACE release 4.6.13.
+
+ -- Ossama Othman <ossama@debian.org> Thu, 14 Jan 1999 19:54:41 -0500
+
+ace (4.6.12-2) unstable; urgency=low
+
+ * Forgot to change libace4.6-dev dependency from version 4.6.7 to 4.6.12.
+
+ -- Ossama Othman <ossama@debian.org> Thu, 14 Jan 1999 02:47:13 -0500
+
+ace (4.6.12-1) unstable; urgency=low
+
+ * Updated to ACE release 4.6.12.
+
+ -- Ossama Othman <ossama@debian.org> Thu, 14 Jan 1999 01:17:16 -0500
+
+ace (4.6.7-1) unstable; urgency=low
+
+ * Force libtool to link "-lpthread" into ACE's inter-library dependencies
+ since the configure script detects that the "-pthread" flag can be used
+ which make it unneccessary to explicitly link to "-lpthread." However, we
+ want the "-lpthread" dependency since not all users or programs use the
+ "-pthread" compiler flag.
+ * Fixed packaging bug where run-time library package tried to install/remove
+ the gperf-ace info file.
+ * Updated to ACE release 4.6.7.
+
+ -- Ossama Othman <ossama@debian.org> Tue, 15 Dec 1998 16:29:10 -0500
+
+ace (4.6.5-3) unstable; urgency=low
+
+ * Enabled ACE debugging macros.
+ * Enabled ACE logging macros (LM_DEBUG and LM_INFO).
+
+ -- Ossama Othman <ossama@debian.org> Tue, 8 Dec 1998 14:22:02 -0500
+
+ace (4.6.5-2) unstable; urgency=low
+
+ * Released ace-4.6.5-2 packages.
+ * gperf files (gperf, gperf.1 and gperf.info) will be installed as gperf-ace
+ to prevent conflicts with the existing Cygnus based gperf package.
+ * Corrected libACE compile list by removing template sources from the
+ libACE "SOURCES" make variable.
+
+ -- Ossama Othman <ossama@debian.org> Thu, 3 Dec 1998 15:59:06 -0500
+
+ace (4.6.5-1) unstable; urgency=low
+
+ * Released ace-4.6.5-1 packages
+
+ -- Ossama Othman <othman@astrosun.tn.cornell.edu> Tue, 1 Dec 1998 16:09:49 -0500
+
+ace (4.6.4-2) unstable; urgency=low
+
+ * Added libnsl to library check for t_accept() (not a Debian issue).
+ * Moved all pre-processor related lines to the first column of the M4 block
+ so that they will be in the first column of their respective test programs.
+ * Made definition of ACE_HAS_NONSTATIC_OBJECT_MANAGER a configure script
+ option since there was no working autoconf test for it.
+
+ -- Ossama Othman <othman@astrosun.tn.cornell.edu> Mon, 30 Nov 1998 17:24:49 -0500
+
+ace (4.6.4-1) unstable; urgency=low
+
+ * Added "install-info" commands to postinst and prerm scripts.
+ * Added a "modernized" gperf.info to the distribution.
+ * Added "#ifndef" guards to PACKAGE, VERSION, DEBUG and NDEBUG macros in
+ acconfig.h to prevent redefinition when using ACE with a package that
+ defines them.
+ * Added Env_Value_T.cpp to list of template sources to be installed.
+ * Moved ace-config script to "-dev" package.
+ * Added gperf to the distribution.
+
+ -- Ossama Othman <othman@astrosun.tn.cornell.edu> Fri, 13 Nov 1998 16:02:32 -0500
+
+ace (4.6.3-2) unstable; urgency=low
+
+ * Released ace-4.6.3-2 packages.
+ * Corrected ace-config and configure scripts so that the X11 libraries are
+ displayed correctly by the ace-config script.
+
+ -- Ossama Othman <othman@astrosun.tn.cornell.edu> Thu, 12 Nov 1998 17:24:11 -0500
+
+ace (4.6.3-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Ossama Othman <othman@astrosun.tn.cornell.edu> Thu, 12 Nov 1998 13:13:59 -0500
+
diff --git a/ACE/debian/debian.control b/ACE/debian/debian.control
new file mode 100644
index 00000000000..8fd9854e57c
--- /dev/null
+++ b/ACE/debian/debian.control
@@ -0,0 +1,800 @@
+Source: ace
+Section: devel
+Priority: optional
+Maintainer: Debian ACE+TAO maintainers <pkg-ace-devel@lists.alioth.debian.org>
+Uploaders: Thomas Girard <thomas.g.girard@free.fr>, Pau Garcia i Quiles <pgquiles@elpauer.org>, Marek Brudka <mbrudka@aster.pl>
+Build-Depends: debhelper (>= 7), libssl-dev (>= 0.9.7d), dpatch (>= 2.0.10), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev (>= 8.5), libfox-1.6-dev, zlib1g-dev, libzzip-dev, liblzo2-dev, docbook-to-man, bzip2, libbz2-dev, doxygen, graphviz
+Standards-Version: 3.9.1
+Vcs-Svn: svn://svn.debian.org/svn/pkg-ace/trunk
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-ace/trunk
+Homepage: http://www.cs.wustl.edu/~schmidt/ACE.html
+
+Package: mpc-ace
+Architecture: all
+Depends: ${perl:Depends}, ${misc:Depends}
+Recommends: make
+Replaces: libace-dev (= 5.6.3-4)
+Suggests: libace-dev, pkg-config
+Description: makefile, project and workspace creator
+ This package contains the Makefile, Project and Workspace Creator (MPC)
+ as distributed with the ACE toolkit.
+ .
+ MPC generates platform and compiler specific files to automate the
+ compilation process.
+ .
+ The following programs are included:
+ * mpc-ace, generating project files for a single target
+ * mwc-ace, generating workspace files for a set of projects
+
+Package: libace-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: C++ network programming framework
+ This package contains the ADAPTIVE Communication Environment (ACE)
+ framework.
+ .
+ It provides platform independent C++ wrappers for interprocess
+ communication:
+ * signals
+ * pipes
+ * sockets
+ * message queues
+ * semaphores
+ * shared memory
+ as well as thread, process management routines and much more.
+ .
+ Moreover, it defines patterns for common communication tasks. Beyond
+ these:
+ * Reactor, to handle event demultiplexing and dispatching
+ * Proactor, for asynchronous I/O driven programs
+
+Package: libace-dev
+Architecture: any
+Section: libdevel
+Depends: libace-6.0.3 (= ${binary:Version}), ${misc:Depends}
+Suggests: libace-doc, libtao-dev, pkg-config
+Replaces: mpc-ace (<< 5.6.3-4)
+Description: C++ network programming framework development files
+ This package contains the header files and static library for the ACE
+ framework.
+
+Package: libace-doc
+Architecture: all
+Section: doc
+Depends: ${misc:Depends}
+Suggests: libace-dev
+Recommends: doc-base
+Description: C++ network programming framework documentation
+ This package contains the ACE overview documentation, tutorials,
+ examples, and information regarding upstream development.
+
+Package: libace-ssl-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE secure socket layer library
+ This package contains wrappers that integrate the OpenSSL library in
+ the ACE framework.
+
+Package: libace-ssl-dev
+Architecture: any
+Section: libdevel
+Depends: libace-ssl-6.0.1 (= ${binary:Version}), libace-dev (= ${binary:Version}), libssl-dev (>= 6.0.3d), ${misc:Depends}
+Description: ACE secure socket layer library development files
+ This package contains the header files and static library for the ACE
+ SSL library.
+
+Package: libace-rmcast-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE reliable multicast library
+ The RMCast library is a reliable source-ordered multicast protocol
+ implementation.
+ .
+ It uses sequence number for re-ordering, duplicate suppression and
+ loss detection of messages.
+
+Package: libace-rmcast-dev
+Architecture: any
+Section: libdevel
+Depends: libace-rmcast-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Description: ACE reliable multicast library development files
+ This package contains the header files and static library for the ACE
+ reliable multicast library.
+
+Package: libace-tmcast-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE transactional multicast library
+ The TMCast library is a transaction multicast protocol
+ implementation.
+ .
+ Each message is delivered to multicast group members as a
+ transaction: an atomic, consistent and isolated action.
+
+Package: libace-tmcast-dev
+Architecture: any
+Section: libdevel
+Depends: libace-tmcast-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Description: ACE transactional multicast library development files
+ This package contains the header files and static library for the ACE
+ transactional multicast library.
+
+Package: libace-htbp-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE protocol over HTTP tunneling library
+ The HTTP Tunneling, Bidirectional, Protocol (HTBP) library enables
+ the writing of stream-based protocols over HTTP.
+ .
+ This allows clients behind a firewall to establish a connection with
+ outbound servers using the HTTP protocol.
+
+Package: libace-htbp-dev
+Architecture: any
+Section: libdevel
+Depends: libace-htbp-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Description: ACE protocol over HTTP tunneling library development files
+ This package contains the header files and static library for the ACE
+ HTBP library.
+
+Package: libace-inet-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE library for Inet protocol clients
+ ACE addon library for Inet protocol clients (and possibly servers
+ at some point) like http://, ftp:// etc
+
+Package: libace-inet-dev
+Architecture: any
+Section: libdevel
+Depends: libace-inet-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Description: ACE library for Inet protocol clients development files
+ ACE addon library for Inet protocol clients (and possibly servers
+ at some point) like http://, ftp:// etc
+
+Package: libace-inet-ssl-6.0.3
+Architecture: any
+Section: libs
+Depends: libace-inet-6.0.1, libace-ssl-6.0.3, ${shlibs:Depends}, ${misc:Depends}
+Description: ACE library for Inet protocol clients with SSL support
+ ACE addon library for Inet protocol clients (and possibly servers
+ at some point) which support SSL like https://, ftps:// etc
+
+Package: libace-inet-ssl-dev
+Architecture: any
+Section: libdevel
+Depends: libace-inet-ssl-6.0.3 (= ${binary:Version}), libace-inet-dev (= ${binary:Version}), libace-ssl-dev (= ${binary:Version}), ${misc:Depends}
+Description: ACE library for Inet protocol clients with SSL support development files
+ ACE addon library for Inet protocol clients (and possibly servers
+ at some point) which support SSL like https://, ftps:// etc
+
+Package: ace-gperf
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: gperf-ace (<< 5.7.7-1)
+Replaces: gperf-ace (<< 5.7.7-1)
+Description: ACE perfect hash function generator
+ ace_gperf is the ACE version of gperf.
+ .
+ Both ace_gperf and gperf were written by the same author, and have
+ basically the same options and functionality. ace_gperf simply takes
+ advantage of the some of the features provided by the ACE library.
+
+Package: gperf-ace
+Architecture: all
+Depends: ace-gperf, ${misc:Depends}
+Description: ACE perfect hash function generator (transitional package)
+ This package is a transitional package to ace-gperf.
+ .
+ It can be safely removed after installation.
+
+Package: libacexml-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE SAX based XML parsing library
+ This package provides interfaces for XML parsing based on Simple API
+ for XML (SAX) 2.0, defined by David Megginson. This is an
+ event-driven parsing approach.
+ .
+ ACEXML is a small footprint and portable library. It does not
+ validate XML documents and supports only Unicode encoding.
+
+Package: libacexml-dev
+Architecture: any
+Section: libdevel
+Replaces: libace-dev (<< 5.7.7-4)
+Depends: libacexml-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Description: ACE SAX based XML parsing library development files
+ This package contains the header files and static library for the ACE
+ XML parsing library.
+
+Package: libkokyu-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: libtao-2.0.1, libtao-orbsvcs-2.0.3
+Description: ACE scheduling and dispatching library
+ Kokyu is a library designed to provide flexible scheduling and
+ dispatching services.
+ .
+ Currently it provides real-time scheduling and dispatching services
+ for TAO real-time CORBA Event Service.
+
+Package: libkokyu-dev
+Architecture: any
+Section: libdevel
+Depends: libkokyu-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Description: ACE scheduling and dispatching library development files
+ This package contains the header files and static library for the ACE
+ scheduling and dispatching library.
+
+Package: libace-qtreactor-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE-GUI reactor integration for Qt
+ Recognizing the need to write reactor-based GUI applications, the ACE
+ community has created several reactor extensions for use with X
+ Window System. Each of these extends the ACE_Select_Reactor to work
+ with a specific toolkit. By using these reactors, your GUI
+ application can remain single threaded yet still respond to both GUI
+ events, such as button presses, any your own application events.
+ .
+ The ACE_QtReactor extends both the ACE_Select_Reactor and the
+ Trolltech Qt library's QObjects class. Rather then using select(),
+ the QtWaitForMultipleEvents() function is used.
+
+Package: libace-qtreactor-dev
+Architecture: any
+Section: libdevel
+Depends: libace-qtreactor-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), libqt4-dev, ${misc:Depends}
+Description: ACE-GUI reactor integration for Qt development files
+ This package contains header files and static library for the ACE-Qt
+ reactor integration.
+
+Package: libace-xtreactor-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE-GUI reactor integration for Xt
+ Recognizing the need to write reactor-based GUI applications, the ACE
+ community has created several reactor extensions for use with X
+ Window System. Each of these extends the ACE_Select_Reactor to work
+ with a specific toolkit. By using these reactors, your GUI
+ application can remain single threaded yet still respond to both GUI
+ events, such as button presses, any your own application events.
+ .
+ The ACE_XtReactor extends both the ACE_Select_Reactor and the X
+ Toolkit library function XtWaitForMultipleEvents().
+
+Package: libace-xtreactor-dev
+Architecture: any
+Section: libdevel
+Depends: libace-xtreactor-6.0.1 (= ${binary:Version}), libace-dev (= ${binary:Version}), libxt-dev (>= 6.0.3), ${misc:Depends}
+Description: ACE-GUI reactor integration for Xt development files
+ This package contains header files and static library for the ACE-Xt
+ reactor integration.
+
+Package: libace-tkreactor-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE-GUI reactor integration for Tk
+ Recognizing the need to write reactor-based GUI applications, the ACE
+ community has created several reactor extensions for use with X
+ Window System. Each of these extends the ACE_Select_Reactor to work
+ with a specific toolkit. By using these reactors, your GUI
+ application can remain single threaded yet still respond to both GUI
+ events, such as button presses, any your own application events.
+ .
+ The ACE_TkReactor provides reactor functionality around the popular
+ Tcl/Tk library. The underlying Tcl/Tk method used is
+ Tcl_DoOneEvent().
+
+Package: libace-tkreactor-dev
+Architecture: any
+Section: libdevel
+Depends: libace-tkreactor-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), tk-dev (>= 8.5), ${misc:Depends}
+Description: ACE-GUI reactor integration for Tk development files
+ This package contains header files and static library for the ACE-Tk
+ reactor integration.
+
+Package: libace-flreactor-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE-GUI reactor integration for Fl
+ Recognizing the need to write reactor-based GUI applications, the ACE
+ community has created several reactor extensions for use with X
+ Window System. Each of these extends the ACE_Select_Reactor to work
+ with a specific toolkit. By using these reactors, your GUI
+ application can remain single threaded yet still respond to both GUI
+ events, such as button presses, any your own application events.
+ .
+ The ACE_FlReactor integrates with the FastLight toolkit's Fl::wait()
+ method.
+
+Package: libace-flreactor-dev
+Architecture: any
+Section: libdevel
+Depends: libace-flreactor-6.0.1 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfltk1.1-dev (>= 6.0.3), ${misc:Depends}
+Description: ACE-GUI reactor integration for Fl development files
+ This package contains header files and static library for the ACE-Fl
+ reactor integration.
+
+Package: libace-foxreactor-6.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE-GUI reactor integration for FOX
+ Recognizing the need to write reactor-based GUI applications, the ACE
+ community has created several reactor extensions for use with X
+ Window System. Each of these extends the ACE_Select_Reactor to work
+ with a specific toolkit. By using these reactors, your GUI
+ application can remain single threaded yet still respond to both GUI
+ events, such as button presses, any your own application events.
+ .
+ The ACE_FoxReactor integrates with the FOX toolkit.
+
+Package: libace-foxreactor-dev
+Architecture: any
+Section: libdevel
+Depends: libace-foxreactor-6.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfox-1.6-dev, ${misc:Depends}
+Description: ACE-GUI reactor integration for FOX development files
+ This package contains header files and static library for the ACE-FOX
+ reactor integration.
+
+Package: libtao-2.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE based CORBA ORB core libraries
+ The ACE ORB (TAO) is an open-source Common Object Request Broker
+ Architecture (CORBA) 2.x-compliant Object Request Broker (ORB). It
+ supports real-time extensions.
+ .
+ This package contains TAO core libraries.
+
+Package: libtao-dev
+Architecture: any
+Section: libdevel
+Replaces: libtao-orbsvcs-dev (<< 5.7.7-4)
+Depends: libtao-2.0.3 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Suggests: libtao-doc, libtao-orbsvcs-dev
+Description: ACE based CORBA ORB core libraries development files
+ This package contains the header files for TAO. Due to the size of
+ the static libs (> 400MB) they have been left out.
+
+Package: libtao-doc
+Architecture: all
+Section: doc
+Depends: libace-doc (= ${source:Version}), ${misc:Depends}
+Suggests: libtao-dev
+Recommends: doc-base
+Description: ACE based CORBA ORB core libraries documentation
+ This package contains the TAO overview documentation, tutorials,
+ examples, and information regarding upstream development.
+
+Package: libtao-orbsvcs-2.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO CORBA services libraries
+ This package contains libraries that are needed by many TAO programs.
+
+Package: libtao-orbsvcs-dev
+Architecture: any
+Section: libdevel
+Replaces: libtao-dev (<< 5.7.7-4)
+Depends: libtao-orbsvcs-2.0.3 (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Description: TAO CORBA services development files
+ This package contains the header files for the TAO CORBA services.
+ .
+ Due to the size of the static libs (> 400MB) they have been left out.
+ The examples and some documentation have been included as well.
+
+Package: libtao-qtresource-2.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${misc:Depends}
+Description: TAO-GUI reactor integration for Qt
+ The Qt resource factory integrates ACE QtReactor into TAO ORB
+ reactor.
+
+Package: libtao-qtresource-dev
+Architecture: any
+Section: libdevel
+Depends: libtao-qtresource-2.0.3 (= ${binary:Version}), libace-qtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Description: TAO-GUI reactor integration for Qt development files
+ This package contains header files and static library for the TAO-Qt
+ reactor integration.
+
+Package: libtao-xtresource-2.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO-GUI reactor integration for Xt
+ The Xt resource factory integrates ACE XtReactor into TAO ORB
+ reactor.
+
+Package: libtao-xtresource-dev
+Architecture: any
+Section: libdevel
+Depends: libtao-xtresource-2.0.3 (= ${binary:Version}), libace-xtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Description: TAO-GUI reactor integration for Xt development files
+ This package contains header files and static library for the TAO-Xt
+ reactor integration.
+
+Package: libtao-flresource-2.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO-GUI reactor integration for Fl
+ The Fl resource factory integrates ACE FlReactor into TAO ORB
+ reactor.
+
+Package: libtao-flresource-dev
+Architecture: any
+Section: libdevel
+Depends: libtao-flresource-2.0.3 (= ${binary:Version}), libace-flreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Description: TAO-GUI reactor integration for Fl development files
+ This package contains header files and static library for the TAO-Fl
+ reactor integration.
+
+Package: libtao-tkresource-2.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO-GUI reactor integration for Tk
+ The Tk resource factory integrates ACE TkReactor into TAO ORB
+ reactor.
+
+Package: libtao-tkresource-dev
+Architecture: any
+Section: libdevel
+Depends: libtao-tkresource-2.0.3 (= ${binary:Version}), libace-tkreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Description: TAO-GUI reactor integration for Tk development files
+ This package contains header files and static library for the TAO-Tk
+ reactor integration.
+
+Package: libtao-foxresource-2.0.3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO-GUI reactor integration for FOX
+ The Fl resource factory integrates ACE FoxReactor into TAO ORB
+ reactor.
+
+Package: libtao-foxresource-dev
+Architecture: any
+Section: libdevel
+Depends: libtao-foxresource-2.0.3 (= ${binary:Version}), libace-foxreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Description: TAO-GUI reactor integration for FOX development files
+ This package contains header files and static library for the TAO-FOX
+ reactor integration.
+
+Package: tao-idl
+Architecture: any
+Depends: libtao-2.0.3 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: TAO IDL to C++ compiler
+ This package provides a Interface Definition Language (IDL) to C++
+ compiler.
+ .
+ Use tao_idl to generate stubs and skeletons to call or implement
+ CORBA distributed objects in C++.
+
+Package: tao-ifr
+Architecture: any
+Depends: libtao-2.0.3 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: TAO interface repository
+ CORBA-aware programs can contact an interface repository to get
+ objects interfaces at run-time. Then they can use the Dynamic
+ Invocation Interface (DII) mechanism to invoke requests on those
+ objects.
+ .
+ This package includes the following programs:
+ * IFR_Service: interface repository server
+ * tao_ifr: feeds in the interface repository
+
+Package: tao-imr
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO implementation repository
+ An implementation repository activates CORBA servers on demand.
+ .
+ This package includes the following programs:
+ * ImplRepo_Service: the main server; delegates call to activators
+ * ImR_Activator: activates and shuts servers down on demand
+ * tao_imr: registers servers for later activation
+
+Package: tao-ft
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO fault tolerant services
+ TAO supports Fault Tolerance for CORBA Objects.
+ .
+ This package includes three FT CORBA infrastructure components:
+ * Fault_Detector that monitors a process or a host
+ * Fault_Notifier that receives fault reports from detectors
+ * FT_ReplicationManager that manages object groups
+
+Package: tao-utils
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: tao-cosnaming
+Description: TAO naming service and IOR utilities
+ This package includes programs to query or control a CORBA naming
+ service, and to dump an IOR.
+ .
+ The following programs are included:
+ * tao_nslist, to list naming context and object bindings
+ * tao_nsadd, to create bindings
+ * tao_nsdel, to remove bindings
+ * tao_catior, to dump the content of an Interoperable Object Reference
+
+Package: tao-cosnaming
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: tao-naming (<< 5.7.7-1)
+Replaces: tao-naming (<< 5.7.7-1)
+Recommends: tao-utils
+Description: TAO naming service
+ TAO implementation of CORBA interoperable naming service (INS).
+ .
+ A naming service provides a location service for CORBA objects.
+ Given a name, it will return the Interoperable Object Reference (IOR)
+ for the CORBA object that was registered with this name.
+ .
+ The following program is included:
+ * tao_cosnaming
+
+Package: tao-naming
+Architecture: all
+Depends: tao-cosnaming, ${misc:Depends}
+Description: TAO naming service (transitional package)
+ This package is a transitional package to tao-cosnaming.
+ .
+ It can be safely removed after installation.
+
+Package: tao-costrading
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: tao-trading (<< 5.7.7-1)
+Replaces: tao-trading (<< 5.7.7-1)
+Description: TAO trading service
+ TAO implementation of CORBA trading service.
+ .
+ A trading service is quite like a naming service except that it
+ relies on a set of properties instead of a name to find object
+ references.
+ .
+ The following program is included:
+ * tao_costrading
+
+Package: tao-trading
+Architecture: all
+Depends: tao-costrading, ${misc:Depends}
+Description: TAO trading service (transitional package)
+ This package is a transitional package to tao-costrading.
+ .
+ It can be safely removed after installation.
+
+Package: tao-cosevent
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: tao-event (<< 5.7.7-1)
+Replaces: tao-event (<< 5.7.7-1)
+Description: TAO event service
+ An event service creates channels where suppliers and consumers can
+ push or pull events. This channel enables asynchronous, message based
+ communication between consumers and suppliers.
+ .
+ This event service supports both the Push and Pull styles for event
+ communication.
+ .
+ The following program is included:
+ * tao_cosevent
+
+Package: tao-event
+Architecture: all
+Depends: tao-cosevent, ${misc:Depends}
+Description: TAO event service (transitional package)
+ This package is a transitional package to tao-cosevent.
+ .
+ It can be safely removed after installation.
+
+Package: tao-rtevent
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO real-time event service
+ Another TAO implementation of CORBA event service. For more
+ information on CORBA event service have a look at tao-cosevent
+ package.
+ .
+ This version does not support the Pull style but provides a real-time
+ event channel.
+ .
+ The following program is included:
+ * tao_rtevent
+
+Package: tao-ftrtevent
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO fault-tolerant real-time event service
+ TAO fault-tolerant, real-time CORBA event service. For more
+ information on CORBA event service have a look at tao-cosevent
+ package.
+ .
+ This package contains:
+ * ftrt_eventservice, the fault-tolerant event channel
+ * ftrtec_factory_service, spawning ftrt_eventservice processes
+ * ftrtec_gateway_service, relaying events to FT CORBA unaware clients
+
+Package: tao-cosnotification
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: tao-notify (<< 5.7.7-1)
+Replaces: tao-notify (<< 5.7.7-1)
+Description: TAO notification service
+ A notification service enhances an event service. For more
+ information on CORBA event service have a look at tao-cosevent
+ package.
+ .
+ The notification service adds:
+ * quality of service control on reliability and speed
+ * event filtering
+ .
+ This package contains:
+ * tao_cosnotification
+
+Package: tao-notify
+Architecture: all
+Depends: tao-cosnotification, ${misc:Depends}
+Description: TAO notification service (transitional package)
+ This package is a transitional package to tao-cosnotification.
+ .
+ It can be safely removed after installation.
+
+Package: tao-load
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO load balancing service
+ TAO implementation of OMG Load Balancing and Monitoring
+ specification.
+ .
+ This package provides:
+ * LoadManager, that distributes loads across objects
+ * LoadMonitor, that monitors and reports loads to a manager
+
+Package: tao-tls
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: tao-log (<< 5.7.7-1)
+Replaces: tao-log (<< 5.7.7-1)
+Description: TAO telecom log services
+ TAO implementations of CORBA telecom log service.
+ .
+ Four separate services are provided:
+ * tao_tls_basic
+ * tao_tls_event
+ * tao_tls_notify
+ * tao_tls_rtevent
+
+Package: tao-log
+Architecture: all
+Depends: tao-tls, ${misc:Depends}
+Description: TAO telecom log services (transitional package)
+ This package is a transitional package to tao-tls.
+ .
+ It can be safely removed after installation.
+
+Package: tao-scheduling
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: TAO scheduling service
+ TAO implementation of CORBA scheduling service.
+ .
+ This package contains:
+ * Scheduling_Service
+ * Dump_Schedule
+
+Package: tao-cosconcurrency
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: tao-concurrency (<< 5.7.7-1)
+Replaces: tao-concurrency (<< 5.7.7-1)
+Description: TAO concurrency service
+ A concurrency service provides a mechanism to acquire and release
+ locks in a distributed system.
+ .
+ TAO version does not support transactions.
+
+Package: tao-concurrency
+Architecture: all
+Depends: tao-cosconcurrency, ${misc:Depends}
+Description: TAO concurrency service (transitional package)
+ This package is a transitional package to tao-cosconcurrency.
+ .
+ It can be safely removed after installation.
+
+Package: tao-coslifecycle
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: tao-lifecycle (<< 5.7.7-1)
+Replaces: tao-lifecycle (<< 5.7.7-1)
+Description: TAO lifecycle service
+ The CORBA lifecycle service allows clients to create, delete, copy
+ and move objects.
+ .
+ This package contains the TAO implementation of such service.
+
+Package: tao-lifecycle
+Architecture: all
+Depends: tao-coslifecycle, ${misc:Depends}
+Description: TAO lifecycle service (transitional package)
+ This package is a transitional package to tao-coslifecycle.
+ .
+ It can be safely removed after installation.
+
+Package: tao-costime
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: tao-time (<< 5.7.7-1)
+Replaces: tao-time (<< 5.7.7-1)
+Description: TAO time service
+ A time service offers globally synchronized time to clients.
+ .
+ This package contains two programs:
+ * tao_costime_clerk, answering client requests
+ * tao_costime_server, queried by clerks to keep their time
+ synchronized
+
+Package: tao-time
+Architecture: all
+Depends: tao-costime, ${misc:Depends}
+Description: TAO time service (transitional package)
+ This package is a transitional package to tao-costime.
+ .
+ It can be safely removed after installation.
+
+Package: ace-netsvcs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE network service implementations
+ ACE network services provide reusable components for common
+ distributed system tasks such as logging, naming, locking, and time
+ synchronization.
+ .
+ This package contains driver program and exemplary configuration
+ files that links the various ACE network services together, either
+ statically or dynamically, to form complete server programs.
+
+Package: libnetsvcs-6.0.1
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ACE network service implementations
+ ACE network services provide reusable components for common
+ distributed system tasks such as logging, naming, locking, and time
+ synchronization.
+ .
+ This package contains runtime libraries for ACE network services.
+
+Package: libnetsvcs-dev
+Architecture: any
+Section: libdevel
+Depends: libnetsvcs-6.0.1 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Description: ACE network service implementations
+ ACE network services provide reusable components for common
+ distributed system tasks such as logging, naming, locking, and time
+ synchronization.
+ .
+ This package contains header files and static library for the ACE
+ network services library.
diff --git a/ACE/debian/debian.rules b/ACE/debian/debian.rules
new file mode 100644
index 00000000000..a44dcbaa608
--- /dev/null
+++ b/ACE/debian/debian.rules
@@ -0,0 +1,198 @@
+#!/usr/bin/make -f
+
+# debian/rules file for ACE+TAO Debian GNU/Linux packages
+# written February 2002 by Ossama Othman <ossama@debian.org>
+# Modified August 2003 by Brian Nelson <pyro@debian.org>
+# Copyright (C) 2004 Raphael Bossek <bossekr@debian.org>
+# Copyright © 2005-2010 Thomas Girard <thomas.g.girard@free.fr>
+
+INSTALL_755 := install -o root -g root -m 755
+
+ACE_SUBDIR := ACE_wrappers
+ACE_ARCHIVE := $(shell ls -1 ACE+TAO+CIAO-src-*.tar.bz2 2>/dev/null || echo ace-archive-missing)
+MWCFLAGS := -type gnuace -noreldefs
+ACE_MAKE_FLAGS := versioned_so=2
+
+MAN1 := debian/ace_netsvcs.1 \
+ debian/tao_catior.1 \
+ debian/tao_nslist.1 \
+ debian/tao_nsadd.1 \
+ debian/tao_nsdel.1 \
+ debian/tao_tls_basic.1 \
+ debian/tao_tls_event.1 \
+ debian/tao_tls_notify.1 \
+ debian/tao_tls_rtevent.1 \
+ debian/TAO_ORB_Options.1 \
+ debian/mpc-ace.1
+# Where we install every file before calling dh_install
+DT := debian/tmp
+
+DOXYGEN_FILES_TO_REMOVE := -name '*.md5' -o \
+ -name '*.dot' -o \
+ -name '*.idx' -o \
+ -name '*.map' -o \
+ -name '*.tag' -o \
+ -name 'index.hh?'
+
+export ACE_ROOT := $(shell pwd)/$(ACE_SUBDIR)
+export MPC_ROOT := $(ACE_ROOT)/MPC
+export TAO_ROOT := $(ACE_ROOT)/TAO
+export CIAO_ROOT := $(TAO_ROOT)/CIAO
+export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(ACE_ROOT)/lib
+export QTDIR := /usr/share/qt4
+
+# This dpatches are only a place holders. The `prepatch' and `postbuild' targets stops
+# here by default.
+PREPATCH_MARK := 50-prepatch-dummy-mark.dpatch
+POST_BUILD_MARK := 75-post-build-dummy-mark.dpatch
+UNTIL_BUILD := $(PREPATCH_MARK)
+UNTIL_POST_BUILD := $(POST_BUILD_MARK)
+
+.NOTPARALLEL: debian/mpc-ace.sgml debian/%.1 prepatch extract doxygen clean install build binary-indep binary-arch binary
+.PHONY: doxygen patch unpatch prepatch extract build clean binary-indep binary-arch binary install source diff configure
+
+extract: extract-stamp
+extract-stamp: $(ACE_ARCHIVE)
+ tar -xjf $<
+ cp debian/platform_macros.GNU $(ACE_ROOT)/include/makeinclude
+ cp debian/config.h $(ACE_ROOT)/ace/config.h
+ cp debian/default.features $(ACE_ROOT)/bin/MakeProjectCreator/config
+ # We need to delete this one to prevent an empty library generation
+ rm -f $(ACE_ROOT)/ace/ace_qt3reactor.mpc
+ touch $@
+
+debian/mpc-ace.sgml: ACE_wrappers/MPC/docs/MPC.sgml
+ sed -e 's/mpc\.pl/mpc-ace/g' -e 's/mwc\.pl/mwc-ace/g' $< > $@
+
+debian/%.1: debian/%.sgml
+ docbook-to-man $< > $@
+
+# Prepare a ACE_wrappers directory where most of the patches are applied.
+prepatch: prepatch-stamp
+prepatch-stamp: extract-stamp
+ dpatch apply-until $(UNTIL_BUILD)
+ touch $@
+
+pl-stamp: prepatch-stamp
+ for fn in `find "$(ACE_ROOT)" -name "*.pl"`; do (echo '#!/usr/bin/perl'; cat "$$fn") > "$${fn}T"; mv "$${fn}T" "$$fn"; chmod a+x "$$fn"; done
+ touch $@
+
+configure: configure-stamp
+configure-stamp: prepatch-stamp pl-stamp
+ cp debian/ACE-DPKG.mwc $(ACE_ROOT)
+ cd $(ACE_ROOT) && ./bin/mwc.pl $(MWCFLAGS) ACE-DPKG.mwc
+ cp debian/TAO-DPKG.mwc $(TAO_ROOT)
+ cd $(TAO_ROOT) && ./../bin/mwc.pl $(MWCFLAGS) TAO-DPKG.mwc
+ touch $@
+
+patch: patch-stamp
+patch-stamp: configure-stamp
+ dpatch apply-until $(UNTIL_POST_BUILD)
+ touch $@
+
+unpatch:
+ dpatch deapply-all
+ rm -rf patch-stamp debian/patched
+
+doxygen: doxygen-stamp
+doxygen-stamp: build-stamp
+ cd $(ACE_ROOT) && bin/generate_doxygen.pl -is_release -exclude_ciao
+ find $(ACE_ROOT)/html/libace-doc $(DOXYGEN_FILES_TO_REMOVE) | xargs -r rm -f
+ find $(ACE_ROOT)/html/libtao-doc $(DOXYGEN_FILES_TO_REMOVE) | xargs -r rm -f
+# Somehow search/ is still generated, even if we don't want it.
+ find $(ACE_ROOT)/html -type d -name search | xargs -r rm -Rf
+ touch $@
+
+build: build-stamp manpages-stamp
+build-stamp: patch-stamp
+ dh_testdir
+ cd $(ACE_ROOT) && $(MAKE) $(ACE_MAKE_FLAGS)
+ cd $(TAO_ROOT) && $(MAKE) $(ACE_MAKE_FLAGS)
+ touch $@
+
+manpages-stamp: $(MAN1)
+ touch $@
+
+clean:
+ dh_testdir
+ rm -rf $(ACE_SUBDIR) debian/patched $(MAN1) *-stamp debian/mpc-ace.sgml
+ dh_clean
+
+post-build-patch: post-build-patch-stamp
+post-build-patch-stamp: build-stamp
+ dpatch apply-all
+ touch $@
+
+
+install: post-build-patch
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs
+# Install all files in debian/tmp
+ cd $(ACE_ROOT) && $(MAKE) install DESTDIR=$(CURDIR)/$(DT)/ INSTALL_PREFIX=/usr install_rpath=0 $(ACE_MAKE_FLAGS)
+ cd $(TAO_ROOT) && $(MAKE) install DESTDIR=$(CURDIR)/$(DT)/ INSTALL_PREFIX=/usr install_rpath=0 $(ACE_MAKE_FLAGS)
+
+ mkdir -p $(DT)/usr/share/man/man1
+ cp $(ACE_ROOT)/apps/gperf/ace_gperf.1 $(DT)/usr/share/man/man1
+
+# Relocate .idl and .pidl files
+ cd $(DT) && for f in $$(find usr/include -name '*.idl' -o -name '*.pidl') ; do \
+ g=$$(echo $${f%%include*}share/idl/$${f##*usr/include/}) ; \
+ mkdir -p $$(dirname $$g) ; \
+ mv $$f $$g ; \
+ done
+
+# We provide scripts replacement for tao_idl and tao_ifr; they
+# automatically define ACE_ROOT and TAO_ROOT
+ mkdir -p $(DT)/usr/lib/ace/TAO
+ mv $(DT)/usr/bin/tao_idl $(DT)/usr/bin/tao_ifr $(DT)/usr/lib/ace/TAO
+
+ $(INSTALL_755) -D debian/tao_idl $(DT)/usr/bin/tao_idl
+ $(INSTALL_755) -D debian/tao_ifr $(DT)/usr/bin/tao_ifr
+
+ dh_install --sourcedir=$(DT) --list-missing
+
+binary-indep: build install doxygen-stamp
+ dh_testdir -i
+ dh_testroot -i
+ dh_installdocs -i
+
+ chmod -x debian/libtao-doc/usr/share/doc/libtao-doc/examples/RTCORBA/Activity/svc.conf.server
+ chmod -x debian/libtao-doc/usr/share/doc/libtao-doc/examples/Simulator/DOVEBrowser/make.bat
+ chmod -x debian/libtao-doc/usr/share/doc/libtao-doc/examples/RTCORBA/Activity/svc.conf.client
+
+ dh_installman -i
+ dh_installchangelogs -i $(ACE_ROOT)/ChangeLog
+ dh_perl -i
+ dh_link -i
+ dh_compress -i -Xexamples -Xtutorials
+ dh_fixperms -i
+ dh_installdeb -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+binary-arch: build install
+ dh_testdir -a
+ dh_testroot -a
+ dh_installdocs -a -A
+ dh_installman -a
+ dh_installinfo -pace-gperf $(ACE_ROOT)/apps/gperf/ace_gperf.info
+ dh_installchangelogs -a $(ACE_ROOT)/ChangeLog
+ dh_installchangelogs -pace-gperf $(ACE_ROOT)/apps/gperf/ChangeLog
+ dh_strip -a
+ dh_link -a
+ dh_compress -a
+ dh_fixperms -a
+ dh_makeshlibs -a -V
+ dh_installdeb -a
+ dh_shlibdeps -a -l `ls -1 debian/lib*.install | sed -e 's#\(.*\)\.install#\1/usr/lib#' | tr '\n' ':' | sed -e 's#:$$##'`
+ dh_gencontrol -a
+ dh_md5sums -a
+ dh_builddeb -a
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
diff --git a/ACE/debian/default.features b/ACE/debian/default.features
new file mode 100644
index 00000000000..8651c9baa7a
--- /dev/null
+++ b/ACE/debian/default.features
@@ -0,0 +1,35 @@
+// Misc
+acexml = 1
+ace_svcconf = 1
+ace_token = 1
+ssl = 1
+ipv6 = 1
+exceptions = 1
+
+// GUI reactors
+xt = 1
+ace_xtreactor = 1
+tao_xtresource = 1
+
+tk = 1
+ace_tkreactor = 1
+tao_tkresource = 1
+
+fl = 1
+ace_flreactor = 1
+tao_flresource = 1
+
+qt = 1
+qt4 = 1
+ace_qtreactor = 1
+tao_qtresource = 1
+
+fox = 1
+ace_foxreactor = 1
+tao_foxresource = 1
+
+// ZIOP
+zlib = 1
+zzip = 1
+bzip2 = 1
+lzo1 = 1
diff --git a/ACE/debian/fix_doxygen.sh b/ACE/debian/fix_doxygen.sh
new file mode 100755
index 00000000000..f304ad0b15d
--- /dev/null
+++ b/ACE/debian/fix_doxygen.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# This script regenerates changes on the Doxygen templates.
+#
+
+rm -Rf ACE_wrappers.orig
+cp -a ACE_wrappers ACE_wrappers.orig
+
+for f in $(find ACE_wrappers -name '*.doxygen')
+do
+ sed -e 's#GENERATE_HTMLHELP = YES#GENERATE_HTMLHELP = NO#' \
+ -e 's#COLLABORATION_GRAPH = YES#COLLABORATION_GRAPH = NO#' \
+ -e 's#INCLUDE_GRAPH = YES#INCLUDE_GRAPH = NO#' \
+ -e 's#INCLUDED_BY_GRAPH = YES#INCLUDED_BY_GRAPH = NO#' \
+ -e 's#SEARCHENGINE = YES#SEARCHENGINE = NO#' \
+ -e 's#DOT_MULTI_TARGETS = YES#DOT_MULTI_TARGETS = YES \
+DOT_GRAPH_MAX_NODES = 15 \
+DOT_IMAGE_FORMAT = png#' < $f > $f.new
+
+ mv $f.new $f
+done
+
+cat > debian/patches/49-reduce-doxygen-doc.dpatch <<EOF
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 49-reduce-doxygen-doc.dpatch by Marek Brudka <mbrudka@aster.pl>
+##
+## DP: Enforce doxygen to generate smaller doxumentation
+
+@DPATCH@
+EOF
+
+diff -Nru ACE_wrappers.orig ACE_wrappers >> debian/patches/49-reduce-doxygen-doc.dpatch
diff --git a/ACE/debian/gperf-ace.docs b/ACE/debian/gperf-ace.docs
new file mode 100644
index 00000000000..b14ede1b24f
--- /dev/null
+++ b/ACE/debian/gperf-ace.docs
@@ -0,0 +1,2 @@
+ACE_wrappers/PROBLEM-REPORT-FORM
+ACE_wrappers/apps/gperf/README
diff --git a/ACE/debian/gperf-ace.install b/ACE/debian/gperf-ace.install
new file mode 100644
index 00000000000..04c9b7c515b
--- /dev/null
+++ b/ACE/debian/gperf-ace.install
@@ -0,0 +1,2 @@
+usr/bin/ace_gperf
+usr/share/man/man1/ace_gperf.1
diff --git a/ACE/debian/libace-6.0.3.docs b/ACE/debian/libace-6.0.3.docs
new file mode 100644
index 00000000000..353228fca88
--- /dev/null
+++ b/ACE/debian/libace-6.0.3.docs
@@ -0,0 +1,8 @@
+ACE_wrappers/README
+ACE_wrappers/VERSION
+ACE_wrappers/AUTHORS
+ACE_wrappers/docs/FAQ
+ACE_wrappers/PROBLEM-REPORT-FORM
+ACE_wrappers/THANKS
+ACE_wrappers/VERSION
+ACE_wrappers/NEWS
diff --git a/ACE/debian/libace-6.0.3.install b/ACE/debian/libace-6.0.3.install
new file mode 100644
index 00000000000..d9afda38c12
--- /dev/null
+++ b/ACE/debian/libace-6.0.3.install
@@ -0,0 +1,4 @@
+usr/lib/libACE-*.so
+usr/lib/libACE_ETCL-*.so
+usr/lib/libACE_Monitor_Control-*.so
+usr/lib/libACE_ETCL_Parser-*.so
diff --git a/ACE/debian/libace-dev.docs b/ACE/debian/libace-dev.docs
new file mode 100644
index 00000000000..8739fd12096
--- /dev/null
+++ b/ACE/debian/libace-dev.docs
@@ -0,0 +1,7 @@
+ACE_wrappers/README
+ACE_wrappers/VERSION
+ACE_wrappers/AUTHORS
+ACE_wrappers/docs/FAQ
+ACE_wrappers/PROBLEM-REPORT-FORM
+ACE_wrappers/THANKS
+ACE_wrappers/VERSION
diff --git a/ACE/debian/libace-dev.install b/ACE/debian/libace-dev.install
new file mode 100644
index 00000000000..d0210e070ee
--- /dev/null
+++ b/ACE/debian/libace-dev.install
@@ -0,0 +1,19 @@
+../../ACE_wrappers/bin/generate_export_file.pl usr/lib/ace/bin
+../../ACE_wrappers/bin/split-cpp.pl usr/lib/ace/bin
+../../ACE_wrappers/bin/g++dep usr/lib/ace/bin
+../../ACE_wrappers/bin/add_rel_link.sh usr/lib/ace/bin
+../../ACE_wrappers/bin/depgen.pl usr/lib/ace/bin
+../../ACE_wrappers/bin/DependencyGenerator usr/lib/ace/bin
+../../ACE_wrappers/include usr/lib/ace
+../../ACE_wrappers/include/makeinclude/platform_macros.GNU usr/lib/ace/include/makeinclude
+usr/include/ace/*.{h,inl,cpp}
+usr/include/ace/os_include
+usr/lib/libACE.so
+usr/include/ace/ETCL/*.{h,inl,cpp}
+usr/include/ace/Monitor_Control/*.{h,inl,cpp}
+usr/lib/libACE_ETCL_Parser.so
+usr/lib/libACE_Monitor_Control.so
+usr/lib/libACE_ETCL.so
+usr/lib/pkgconfig/ACE.pc
+usr/lib/pkgconfig/ACE_ETCL.pc
+usr/lib/pkgconfig/ACE_ETCL_Parser.pc
diff --git a/ACE/debian/libace-dev.links b/ACE/debian/libace-dev.links
new file mode 100644
index 00000000000..35049802992
--- /dev/null
+++ b/ACE/debian/libace-dev.links
@@ -0,0 +1,2 @@
+usr/include/ace usr/lib/ace/ace
+usr/lib usr/lib/ace/lib
diff --git a/ACE/debian/libace-doc.doc-base.reference b/ACE/debian/libace-doc.doc-base.reference
new file mode 100644
index 00000000000..ec00934fb7d
--- /dev/null
+++ b/ACE/debian/libace-doc.doc-base.reference
@@ -0,0 +1,10 @@
+Document: libace-reference
+Title: ACE online documentation
+Author: Douglas C. Schmidt and his research group
+Abstract: This set of documents provides help for developing applications
+ using the ACE, TAO and CIAO libraries.
+Section: Programming/C++
+
+Format: html
+Index: /usr/share/doc/libace-doc/index.html
+Files: /usr/share/doc/libace-doc/*.html
diff --git a/ACE/debian/libace-doc.docs b/ACE/debian/libace-doc.docs
new file mode 100644
index 00000000000..51515917f40
--- /dev/null
+++ b/ACE/debian/libace-doc.docs
@@ -0,0 +1,3 @@
+ACE_wrappers/docs
+ACE_wrappers/examples
+ACE_wrappers/html/libace-doc/*
diff --git a/ACE/debian/libace-flreactor-6.0.3.install b/ACE/debian/libace-flreactor-6.0.3.install
new file mode 100644
index 00000000000..528836aacee
--- /dev/null
+++ b/ACE/debian/libace-flreactor-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_FlReactor-*.so
diff --git a/ACE/debianbuild/libace-flreactor-dev.install b/ACE/debian/libace-flreactor-dev.install
index 4de36ed5380..4de36ed5380 100644
--- a/ACE/debianbuild/libace-flreactor-dev.install
+++ b/ACE/debian/libace-flreactor-dev.install
diff --git a/ACE/debian/libace-foxreactor-6.0.3.install b/ACE/debian/libace-foxreactor-6.0.3.install
new file mode 100644
index 00000000000..e360f29f5af
--- /dev/null
+++ b/ACE/debian/libace-foxreactor-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_FoxReactor-*.so
diff --git a/ACE/debianbuild/libace-foxreactor-dev.install b/ACE/debian/libace-foxreactor-dev.install
index 610f74fa297..610f74fa297 100644
--- a/ACE/debianbuild/libace-foxreactor-dev.install
+++ b/ACE/debian/libace-foxreactor-dev.install
diff --git a/ACE/debian/libace-htbp-6.0.3.install b/ACE/debian/libace-htbp-6.0.3.install
new file mode 100644
index 00000000000..08103fd5cad
--- /dev/null
+++ b/ACE/debian/libace-htbp-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_HTBP-*.so
diff --git a/ACE/debianbuild/libace-htbp-dev.docs b/ACE/debian/libace-htbp-dev.docs
index d8a3e7dc562..d8a3e7dc562 100644
--- a/ACE/debianbuild/libace-htbp-dev.docs
+++ b/ACE/debian/libace-htbp-dev.docs
diff --git a/ACE/debianbuild/libace-htbp-dev.install b/ACE/debian/libace-htbp-dev.install
index 4f12cdbf717..4f12cdbf717 100644
--- a/ACE/debianbuild/libace-htbp-dev.install
+++ b/ACE/debian/libace-htbp-dev.install
diff --git a/ACE/debian/libace-inet-6.0.3.install b/ACE/debian/libace-inet-6.0.3.install
new file mode 100644
index 00000000000..59a73a509d0
--- /dev/null
+++ b/ACE/debian/libace-inet-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_INet-*.so
diff --git a/ACE/debian/libace-inet-dev.install b/ACE/debian/libace-inet-dev.install
new file mode 100644
index 00000000000..e68c7bb5479
--- /dev/null
+++ b/ACE/debian/libace-inet-dev.install
@@ -0,0 +1,66 @@
+usr/lib/libACE_INet.so
+usr/include/ace/INet/Sock_IOStream.cpp
+usr/include/ace/INet/FTP_IOStream.h
+usr/include/ace/INet/HTTP_Request.inl
+usr/include/ace/INet/HTTP_IOStream.h
+usr/include/ace/INet/HTTP_Session.h
+usr/include/ace/INet/HTTP_ClientRequestHandler.h
+usr/include/ace/INet/HTTP_BasicAuthentication.h
+usr/include/ace/INet/FTP_URL.h
+usr/include/ace/INet/Response.h
+usr/include/ace/INet/HTTP_SessionBase.inl
+usr/include/ace/INet/StreamHandler.cpp
+usr/include/ace/INet/BidirStreamBuffer.cpp
+usr/include/ace/INet/HTTP_StreamPolicyBase.h
+usr/include/ace/INet/RequestHandler.h
+usr/include/ace/INet/FTP_Session.cpp
+usr/include/ace/INet/String_IOStream.h
+usr/include/ace/INet/HTTP_StreamPolicy.cpp
+usr/include/ace/INet/FTP_ClientRequestHandler.inl
+usr/include/ace/INet/HeaderBase.h
+usr/include/ace/INet/HTTP_URL.inl
+usr/include/ace/INet/BidirStreamBuffer.h
+usr/include/ace/INet/IOS_util.h
+usr/include/ace/INet/StreamInterceptor.cpp
+usr/include/ace/INet/FTP_IOStream.inl
+usr/include/ace/INet/ConnectionCache.inl
+usr/include/ace/INet/Sock_IOStream.h
+usr/include/ace/INet/ClientRequestHandler.inl
+usr/include/ace/INet/HTTP_Header.inl
+usr/include/ace/INet/HTTP_ClientRequestHandler.inl
+usr/include/ace/INet/HTTP_Session.cpp
+usr/include/ace/INet/ClientRequestHandler.h
+usr/include/ace/INet/HTTP_IOStream.inl
+usr/include/ace/INet/URLBase.inl
+usr/include/ace/INet/StreamInterceptor.h
+usr/include/ace/INet/AuthenticationBase.h
+usr/include/ace/INet/HTTP_URL.h
+usr/include/ace/INet/HTTP_Status.h
+usr/include/ace/INet/URLBase.h
+usr/include/ace/INet/HTTP_Request.h
+usr/include/ace/INet/BufferedStreamBuffer.cpp
+usr/include/ace/INet/FTP_ClientRequestHandler.h
+usr/include/ace/INet/FTP_Session.h
+usr/include/ace/INet/FTP_Request.inl
+usr/include/ace/INet/FTP_Request.h
+usr/include/ace/INet/INet_Export.h
+usr/include/ace/INet/FTP_Response.h
+usr/include/ace/INet/AuthenticationBase.inl
+usr/include/ace/INet/HTTP_StreamPolicyBase.cpp
+usr/include/ace/INet/ConnectionCache.h
+usr/include/ace/INet/INet_Log.h
+usr/include/ace/INet/HTTP_Response.h
+usr/include/ace/INet/HTTP_Status.inl
+usr/include/ace/INet/HTTP_Response.inl
+usr/include/ace/INet/StreamHandler.h
+usr/include/ace/INet/HTTP_SessionBase.h
+usr/include/ace/INet/String_IOStream.cpp
+usr/include/ace/INet/BufferedStreamBuffer.h
+usr/include/ace/INet/HeaderBase.inl
+usr/include/ace/INet/HTTP_BasicAuthentication.inl
+usr/include/ace/INet/HTTP_Header.h
+usr/include/ace/INet/FTP_Response.inl
+usr/include/ace/INet/FTP_URL.inl
+usr/include/ace/INet/HTTP_StreamPolicy.h
+usr/include/ace/INet/Request.h
+usr/lib/pkgconfig/ACE_INet.pc
diff --git a/ACE/debian/libace-inet-ssl-6.0.3.install b/ACE/debian/libace-inet-ssl-6.0.3.install
new file mode 100644
index 00000000000..b9b8b9045f7
--- /dev/null
+++ b/ACE/debian/libace-inet-ssl-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_INet_SSL-*.so
diff --git a/ACE/debian/libace-inet-ssl-dev.install b/ACE/debian/libace-inet-ssl-dev.install
new file mode 100644
index 00000000000..dfe71453638
--- /dev/null
+++ b/ACE/debian/libace-inet-ssl-dev.install
@@ -0,0 +1,4 @@
+usr/include/ace/INet/*SSL*
+usr/include/ace/INet/*HTTPS*
+usr/lib/libACE_INet_SSL.so
+usr/lib/pkgconfig/ACE_INet_SSL.pc
diff --git a/ACE/debian/libace-qtreactor-6.0.3.install b/ACE/debian/libace-qtreactor-6.0.3.install
new file mode 100644
index 00000000000..1d371e1e571
--- /dev/null
+++ b/ACE/debian/libace-qtreactor-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_QtReactor-*.so
diff --git a/ACE/debianbuild/libace-qtreactor-dev.install b/ACE/debian/libace-qtreactor-dev.install
index c5fd689c59a..c5fd689c59a 100644
--- a/ACE/debianbuild/libace-qtreactor-dev.install
+++ b/ACE/debian/libace-qtreactor-dev.install
diff --git a/ACE/debian/libace-rmcast-6.0.3.install b/ACE/debian/libace-rmcast-6.0.3.install
new file mode 100644
index 00000000000..86e78259853
--- /dev/null
+++ b/ACE/debian/libace-rmcast-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_RMCast-*.so
diff --git a/ACE/debianbuild/libace-rmcast-dev.docs b/ACE/debian/libace-rmcast-dev.docs
index 7e7b6b827e3..7e7b6b827e3 100644
--- a/ACE/debianbuild/libace-rmcast-dev.docs
+++ b/ACE/debian/libace-rmcast-dev.docs
diff --git a/ACE/debianbuild/libace-rmcast-dev.install b/ACE/debian/libace-rmcast-dev.install
index 9fffea503bc..9fffea503bc 100644
--- a/ACE/debianbuild/libace-rmcast-dev.install
+++ b/ACE/debian/libace-rmcast-dev.install
diff --git a/ACE/debian/libace-ssl-6.0.3.install b/ACE/debian/libace-ssl-6.0.3.install
new file mode 100644
index 00000000000..8df45a6d55f
--- /dev/null
+++ b/ACE/debian/libace-ssl-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_SSL-*.so
diff --git a/ACE/debianbuild/libace-ssl-dev.install b/ACE/debian/libace-ssl-dev.install
index 1a1c38eb201..1a1c38eb201 100644
--- a/ACE/debianbuild/libace-ssl-dev.install
+++ b/ACE/debian/libace-ssl-dev.install
diff --git a/ACE/debian/libace-tkreactor-6.0.3.install b/ACE/debian/libace-tkreactor-6.0.3.install
new file mode 100644
index 00000000000..12ab35062d2
--- /dev/null
+++ b/ACE/debian/libace-tkreactor-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_TkReactor-*.so
diff --git a/ACE/debianbuild/libace-tkreactor-dev.install b/ACE/debian/libace-tkreactor-dev.install
index d61e98a09f8..d61e98a09f8 100644
--- a/ACE/debianbuild/libace-tkreactor-dev.install
+++ b/ACE/debian/libace-tkreactor-dev.install
diff --git a/ACE/debian/libace-tmcast-6.0.3.install b/ACE/debian/libace-tmcast-6.0.3.install
new file mode 100644
index 00000000000..e066131dea0
--- /dev/null
+++ b/ACE/debian/libace-tmcast-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_TMCast-*.so
diff --git a/ACE/debianbuild/libace-tmcast-dev.docs b/ACE/debian/libace-tmcast-dev.docs
index e740752c6a4..e740752c6a4 100644
--- a/ACE/debianbuild/libace-tmcast-dev.docs
+++ b/ACE/debian/libace-tmcast-dev.docs
diff --git a/ACE/debianbuild/libace-tmcast-dev.install b/ACE/debian/libace-tmcast-dev.install
index 19eaad0d3cb..19eaad0d3cb 100644
--- a/ACE/debianbuild/libace-tmcast-dev.install
+++ b/ACE/debian/libace-tmcast-dev.install
diff --git a/ACE/debian/libace-xtreactor-6.0.3.install b/ACE/debian/libace-xtreactor-6.0.3.install
new file mode 100644
index 00000000000..c53614c7208
--- /dev/null
+++ b/ACE/debian/libace-xtreactor-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libACE_XtReactor-*.so
diff --git a/ACE/debianbuild/libace-xtreactor-dev.install b/ACE/debian/libace-xtreactor-dev.install
index b24baea6a03..b24baea6a03 100644
--- a/ACE/debianbuild/libace-xtreactor-dev.install
+++ b/ACE/debian/libace-xtreactor-dev.install
diff --git a/ACE/debianbuild/libacexml-5.6.8.docs b/ACE/debian/libacexml-6.0.3.docs
index 4ebd1c55c18..4ebd1c55c18 100644
--- a/ACE/debianbuild/libacexml-5.6.8.docs
+++ b/ACE/debian/libacexml-6.0.3.docs
diff --git a/ACE/debian/libacexml-6.0.3.install b/ACE/debian/libacexml-6.0.3.install
new file mode 100644
index 00000000000..d3e912ffa51
--- /dev/null
+++ b/ACE/debian/libacexml-6.0.3.install
@@ -0,0 +1,3 @@
+usr/lib/libACEXML_XML_Svc_Conf_Parser-*.so
+usr/lib/libACEXML-*.so
+usr/lib/libACEXML_Parser-*.so
diff --git a/ACE/debianbuild/libacexml-dev.docs b/ACE/debian/libacexml-dev.docs
index 77ec1b320a1..77ec1b320a1 100644
--- a/ACE/debianbuild/libacexml-dev.docs
+++ b/ACE/debian/libacexml-dev.docs
diff --git a/ACE/debian/libacexml-dev.install b/ACE/debian/libacexml-dev.install
new file mode 100644
index 00000000000..f7ed6a74851
--- /dev/null
+++ b/ACE/debian/libacexml-dev.install
@@ -0,0 +1,7 @@
+usr/include/ACEXML
+usr/lib/libACEXML.so
+usr/lib/libACEXML_Parser.so
+usr/lib/libACEXML_XML_Svc_Conf_Parser.so
+usr/lib/pkgconfig/ACEXML.pc
+usr/lib/pkgconfig/ACEXML_XML_Svc_Conf_Parser.pc
+usr/lib/pkgconfig/ACEXML_Parser.pc
diff --git a/ACE/debian/libacexml-dev.links b/ACE/debian/libacexml-dev.links
new file mode 100644
index 00000000000..c7e89c801f5
--- /dev/null
+++ b/ACE/debian/libacexml-dev.links
@@ -0,0 +1 @@
+usr/include/ACEXML usr/lib/ace/ACEXML
diff --git a/ACE/debianbuild/libkokyu-5.6.8.docs b/ACE/debian/libkokyu-6.0.3.docs
index 35ee2dbe99c..35ee2dbe99c 100644
--- a/ACE/debianbuild/libkokyu-5.6.8.docs
+++ b/ACE/debian/libkokyu-6.0.3.docs
diff --git a/ACE/debian/libkokyu-6.0.3.install b/ACE/debian/libkokyu-6.0.3.install
new file mode 100644
index 00000000000..62854308f96
--- /dev/null
+++ b/ACE/debian/libkokyu-6.0.3.install
@@ -0,0 +1 @@
+usr/lib/libKokyu-*.so
diff --git a/ACE/debian/libkokyu-dev.doc-base.intro b/ACE/debian/libkokyu-dev.doc-base.intro
new file mode 100644
index 00000000000..d87a28ec97e
--- /dev/null
+++ b/ACE/debian/libkokyu-dev.doc-base.intro
@@ -0,0 +1,9 @@
+Document: libkokyu-intro
+Title: Kokyu, middleware framework for flexible scheduling and dispatching
+Author: Douglas C. Schmidt and his research group
+Abstract: An introduction to Kokyu: what it is, use cases, configuration, usage
+Section: Programming/C++
+
+Format: html
+Index: usr/share/doc/libkokyu-dev/docs/Kokyu.html
+Files: usr/share/doc/libkokyu-dev/docs/Kokyu.html
diff --git a/ACE/debianbuild/libkokyu-dev.docs b/ACE/debian/libkokyu-dev.docs
index 50165282295..50165282295 100644
--- a/ACE/debianbuild/libkokyu-dev.docs
+++ b/ACE/debian/libkokyu-dev.docs
diff --git a/ACE/debianbuild/libkokyu-dev.install b/ACE/debian/libkokyu-dev.install
index 33ef826a07d..33ef826a07d 100644
--- a/ACE/debianbuild/libkokyu-dev.install
+++ b/ACE/debian/libkokyu-dev.install
diff --git a/ACE/debian/libkokyu-dev.links b/ACE/debian/libkokyu-dev.links
new file mode 100644
index 00000000000..5902b6e1a12
--- /dev/null
+++ b/ACE/debian/libkokyu-dev.links
@@ -0,0 +1 @@
+usr/include/Kokyu usr/lib/ace/Kokyu
diff --git a/ACE/debian/libnetsvcs-6.0.1.docs b/ACE/debian/libnetsvcs-6.0.1.docs
new file mode 100644
index 00000000000..492d0275b79
--- /dev/null
+++ b/ACE/debian/libnetsvcs-6.0.1.docs
@@ -0,0 +1,2 @@
+ACE_wrappers/netsvcs/lib/README
+ACE_wrappers/PROBLEM-REPORT-FORM
diff --git a/ACE/debian/libnetsvcs-6.0.1.install b/ACE/debian/libnetsvcs-6.0.1.install
new file mode 100644
index 00000000000..8518b04cf49
--- /dev/null
+++ b/ACE/debian/libnetsvcs-6.0.1.install
@@ -0,0 +1 @@
+../../ACE_wrappers/netsvcs/lib/libnetsvcs-*.so usr/lib
diff --git a/ACE/debian/libnetsvcs-dev.docs b/ACE/debian/libnetsvcs-dev.docs
new file mode 100644
index 00000000000..492d0275b79
--- /dev/null
+++ b/ACE/debian/libnetsvcs-dev.docs
@@ -0,0 +1,2 @@
+ACE_wrappers/netsvcs/lib/README
+ACE_wrappers/PROBLEM-REPORT-FORM
diff --git a/ACE/debian/libnetsvcs-dev.install b/ACE/debian/libnetsvcs-dev.install
new file mode 100644
index 00000000000..390b60bcdaa
--- /dev/null
+++ b/ACE/debian/libnetsvcs-dev.install
@@ -0,0 +1,3 @@
+../../ACE_wrappers/netsvcs/lib/*.h usr/include/netsvcs
+../../ACE_wrappers/netsvcs/lib/*_T.cpp usr/include/netsvcs
+../../ACE_wrappers/netsvcs/lib/libnetsvcs.so usr/lib
diff --git a/ACE/debianbuild/libtao-1.6.8.docs b/ACE/debian/libtao-2.0.3.docs
index a79beab3449..a79beab3449 100644
--- a/ACE/debianbuild/libtao-1.6.8.docs
+++ b/ACE/debian/libtao-2.0.3.docs
diff --git a/ACE/debian/libtao-2.0.3.install b/ACE/debian/libtao-2.0.3.install
new file mode 100644
index 00000000000..65d040bd469
--- /dev/null
+++ b/ACE/debian/libtao-2.0.3.install
@@ -0,0 +1,41 @@
+usr/lib/libTAO-*.so
+usr/lib/libTAO_AnyTypeCode-*.so
+usr/lib/libTAO_BiDirGIOP-*.so
+usr/lib/libTAO_CodecFactory-*.so
+usr/lib/libTAO_Codeset-*.so
+usr/lib/libTAO_Compression-*.so
+usr/lib/libTAO_CSD_Framework-*.so
+usr/lib/libTAO_CSD_ThreadPool-*.so
+usr/lib/libTAO_DynamicAny-*.so
+usr/lib/libTAO_DynamicInterface-*.so
+usr/lib/libTAO_EndpointPolicy-*.so
+usr/lib/libTAO_IFR_Client-*.so
+usr/lib/libTAO_IORInterceptor-*.so
+usr/lib/libTAO_IORManip-*.so
+usr/lib/libTAO_IORTable-*.so
+usr/lib/libTAO_Messaging-*.so
+usr/lib/libTAO_ObjRefTemplate-*.so
+usr/lib/libTAO_PI-*.so
+usr/lib/libTAO_PI_Server-*.so
+usr/lib/libTAO_PortableServer-*.so
+usr/lib/libTAO_RTCORBA-*.so
+usr/lib/libTAO_RTPortableServer-*.so
+usr/lib/libTAO_RTScheduler-*.so
+usr/lib/libTAO_SmartProxies-*.so
+usr/lib/libTAO_Strategies-*.so
+usr/lib/libTAO_TC-*.so
+usr/lib/libTAO_TC_IIOP-*.so
+usr/lib/libTAO_TypeCodeFactory-*.so
+usr/lib/libTAO_Utils-*.so
+usr/lib/libTAO_Valuetype-*.so
+usr/lib/libTAO_ImR_Client-*.so
+usr/lib/libTAO_DiffServPolicy-*.so
+usr/lib/libTAO_ZlibCompressor-*.so
+usr/lib/libTAO_Bzip2Compressor-*.so
+usr/lib/libTAO_LzoCompressor-*.so
+usr/lib/libTAO_IFR_BE-*.so
+usr/lib/libTAO_IDL_FE-*.so
+usr/lib/libTAO_IDL_BE-*.so
+usr/lib/libTAO_ZIOP-*.so
+usr/lib/libTAO_ETCL-*.so
+usr/lib/libTAO_Monitor-*.so
diff --git a/ACE/debian/libtao-dev.dirs b/ACE/debian/libtao-dev.dirs
new file mode 100644
index 00000000000..aa540e5148e
--- /dev/null
+++ b/ACE/debian/libtao-dev.dirs
@@ -0,0 +1 @@
+usr/lib/ace/TAO/MPC
diff --git a/ACE/debianbuild/libtao-dev.docs b/ACE/debian/libtao-dev.docs
index e9b5ab32d7c..e9b5ab32d7c 100644
--- a/ACE/debianbuild/libtao-dev.docs
+++ b/ACE/debian/libtao-dev.docs
diff --git a/ACE/debian/libtao-dev.install b/ACE/debian/libtao-dev.install
new file mode 100644
index 00000000000..8f9a5179c09
--- /dev/null
+++ b/ACE/debian/libtao-dev.install
@@ -0,0 +1,113 @@
+usr/include/tao/*.{h,i,inl,cpp}
+usr/share/idl/tao
+usr/lib/libTAO.so
+usr/include/tao/AnyTypeCode
+usr/lib/libTAO_AnyTypeCode.so
+usr/include/tao/BiDir_GIOP
+usr/lib/libTAO_BiDirGIOP.so
+usr/include/tao/CodecFactory
+usr/lib/libTAO_CodecFactory.so
+usr/include/tao/Codeset
+usr/lib/libTAO_Codeset.so
+usr/include/tao/Compression
+usr/lib/libTAO_Compression.so
+usr/include/tao/CSD_Framework
+usr/lib/libTAO_CSD_Framework.so
+usr/include/tao/CSD_ThreadPool
+usr/lib/libTAO_CSD_ThreadPool.so
+usr/include/tao/DynamicAny
+usr/lib/libTAO_DynamicAny.so
+usr/include/tao/DynamicInterface
+usr/lib/libTAO_DynamicInterface.so
+usr/include/tao/EndpointPolicy
+usr/lib/libTAO_EndpointPolicy.so
+usr/include/tao/IFR_Client
+usr/lib/libTAO_IFR_Client.so
+usr/include/tao/ImR_Client
+usr/lib/libTAO_ImR_Client.so
+usr/include/tao/IORInterceptor
+usr/lib/libTAO_IORInterceptor.so
+usr/include/tao/IORManipulation
+usr/lib/libTAO_IORManip.so
+usr/include/tao/IORTable
+usr/lib/libTAO_IORTable.so
+usr/include/tao/Messaging
+usr/lib/libTAO_Messaging.so
+usr/include/tao/ObjRefTemplate
+usr/lib/libTAO_ObjRefTemplate.so
+usr/include/tao/PI
+usr/lib/libTAO_PI.so
+usr/include/tao/PI_Server
+usr/lib/libTAO_PI_Server.so
+usr/include/tao/PortableServer
+usr/lib/libTAO_PortableServer.so
+usr/include/tao/RTCORBA
+usr/lib/libTAO_RTCORBA.so
+usr/include/tao/RTPortableServer
+usr/lib/libTAO_RTPortableServer.so
+usr/include/tao/RTScheduling
+usr/lib/libTAO_RTScheduler.so
+usr/include/tao/SmartProxies
+usr/lib/libTAO_SmartProxies.so
+usr/include/tao/Strategies
+usr/lib/libTAO_Strategies.so
+usr/include/tao/TransportCurrent
+usr/lib/libTAO_TC.so
+usr/lib/libTAO_TC_IIOP.so
+usr/include/tao/TypeCodeFactory
+usr/lib/libTAO_TypeCodeFactory.so
+usr/include/tao/Utils
+usr/lib/libTAO_Utils.so
+usr/include/tao/Valuetype
+usr/lib/libTAO_Valuetype.so
+usr/lib/libTAO_DiffServPolicy.so
+usr/include/tao/DiffServPolicy
+usr/include/tao/ZIOP
+usr/lib/libTAO_ZIOP.so
+usr/lib/libTAO_ZlibCompressor.so
+usr/lib/libTAO_Bzip2Compressor.so
+usr/lib/libTAO_LzoCompressor.so
+usr/include/tao/ETCL
+usr/lib/libTAO_ETCL.so
+usr/include/tao/Monitor
+usr/lib/libTAO_Monitor.so
+../../ACE_wrappers/TAO/MPC/config usr/lib/ace/TAO/MPC
+../../ACE_wrappers/TAO/rules.tao.GNU usr/lib/ace/TAO
+usr/lib/libTAO_IFR_BE.so
+usr/lib/libTAO_IDL_FE.so
+usr/lib/libTAO_IDL_BE.so
+usr/lib/pkgconfig/TAO_RTScheduler.pc
+usr/lib/pkgconfig/TAO_DynamicInterface.pc
+usr/lib/pkgconfig/TAO_ZlibCompressor.pc
+usr/lib/pkgconfig/TAO_AnyTypeCode.pc
+usr/lib/pkgconfig/TAO_Bzip2Compressor.pc
+usr/lib/pkgconfig/TAO_LzoCompressor.pc
+usr/lib/pkgconfig/TAO_Valuetype.pc
+usr/lib/pkgconfig/TAO_BiDirGIOP.pc
+usr/lib/pkgconfig/TAO_IORInterceptor.pc
+usr/lib/pkgconfig/TAO_SmartProxies.pc
+usr/lib/pkgconfig/TAO_PortableServer.pc
+usr/lib/pkgconfig/TAO_TypeCodeFactory.pc
+usr/lib/pkgconfig/TAO.pc
+usr/lib/pkgconfig/TAO_Messaging.pc
+usr/lib/pkgconfig/TAO_CSD_Framework.pc
+usr/lib/pkgconfig/TAO_PI_Server.pc
+usr/lib/pkgconfig/TAO_ObjRefTemplate.pc
+usr/lib/pkgconfig/TAO_DynamicAny.pc
+usr/lib/pkgconfig/TAO_Monitor.pc
+usr/lib/pkgconfig/TAO_Compression.pc
+usr/lib/pkgconfig/TAO_Strategies.pc
+usr/lib/pkgconfig/TAO_IORTable.pc
+usr/lib/pkgconfig/TAO_CSD_ThreadPool.pc
+usr/lib/pkgconfig/TAO_CodecFactory.pc
+usr/lib/pkgconfig/TAO_EndpointPolicy.pc
+usr/lib/pkgconfig/TAO_IORManip.pc
+usr/lib/pkgconfig/TAO_ZIOP.pc
+usr/lib/pkgconfig/TAO_DiffServPolicy.pc
+usr/lib/pkgconfig/TAO_PI.pc
+usr/lib/pkgconfig/TAO_Utils.pc
+usr/lib/pkgconfig/TAO_IFR_Client.pc
+usr/lib/pkgconfig/TAO_ETCL.pc
+usr/lib/pkgconfig/TAO_RTPortableServer.pc
+usr/lib/pkgconfig/TAO_RTCORBA.pc
+usr/lib/pkgconfig/TAO_ImR_Client.pc
diff --git a/ACE/debian/libtao-dev.links b/ACE/debian/libtao-dev.links
new file mode 100644
index 00000000000..63bee37bbc8
--- /dev/null
+++ b/ACE/debian/libtao-dev.links
@@ -0,0 +1 @@
+usr/include/tao usr/lib/ace/TAO/tao
diff --git a/ACE/debian/libtao-doc.doc-base.reference b/ACE/debian/libtao-doc.doc-base.reference
new file mode 100644
index 00000000000..bcc8e282f70
--- /dev/null
+++ b/ACE/debian/libtao-doc.doc-base.reference
@@ -0,0 +1,10 @@
+Document: libtao-reference
+Title: TAO online documentation
+Author: Douglas C. Schmidt and his research group
+Abstract: This set of documents provides help for developing applications
+ using the ACE, TAO and CIAO libraries.
+Section: Programming/C++
+
+Format: html
+Index: /usr/share/doc/libtao-doc/index.html
+Files: /usr/share/doc/libtao-doc/*.html
diff --git a/ACE/debian/libtao-doc.docs b/ACE/debian/libtao-doc.docs
new file mode 100644
index 00000000000..4ea0a048aa0
--- /dev/null
+++ b/ACE/debian/libtao-doc.docs
@@ -0,0 +1,3 @@
+ACE_wrappers/TAO/docs
+ACE_wrappers/TAO/examples
+ACE_wrappers/html/libtao-doc/*
diff --git a/ACE/debian/libtao-flresource-2.0.3.install b/ACE/debian/libtao-flresource-2.0.3.install
new file mode 100644
index 00000000000..5d4ee6ce57a
--- /dev/null
+++ b/ACE/debian/libtao-flresource-2.0.3.install
@@ -0,0 +1 @@
+usr/lib/libTAO_FlResource-*.so
diff --git a/ACE/debianbuild/libtao-flresource-dev.install b/ACE/debian/libtao-flresource-dev.install
index 218c4c24c75..218c4c24c75 100644
--- a/ACE/debianbuild/libtao-flresource-dev.install
+++ b/ACE/debian/libtao-flresource-dev.install
diff --git a/ACE/debian/libtao-foxresource-2.0.3.install b/ACE/debian/libtao-foxresource-2.0.3.install
new file mode 100644
index 00000000000..6ceb47601aa
--- /dev/null
+++ b/ACE/debian/libtao-foxresource-2.0.3.install
@@ -0,0 +1 @@
+usr/lib/libTAO_FoxResource-*.so
diff --git a/ACE/debianbuild/libtao-foxresource-dev.install b/ACE/debian/libtao-foxresource-dev.install
index b3b52d4941d..b3b52d4941d 100644
--- a/ACE/debianbuild/libtao-foxresource-dev.install
+++ b/ACE/debian/libtao-foxresource-dev.install
diff --git a/ACE/debianbuild/libtao-orbsvcs-1.6.8.NEWS b/ACE/debian/libtao-orbsvcs-2.0.3.NEWS
index ea0759e0ade..ea0759e0ade 100644
--- a/ACE/debianbuild/libtao-orbsvcs-1.6.8.NEWS
+++ b/ACE/debian/libtao-orbsvcs-2.0.3.NEWS
diff --git a/ACE/debian/libtao-orbsvcs-2.0.3.install b/ACE/debian/libtao-orbsvcs-2.0.3.install
new file mode 100644
index 00000000000..e0e491e9095
--- /dev/null
+++ b/ACE/debian/libtao-orbsvcs-2.0.3.install
@@ -0,0 +1,68 @@
+usr/lib/libTAO_AV-*.so
+usr/lib/libTAO_CosConcurrency-*.so
+usr/lib/libTAO_CosConcurrency_Skel-*.so
+usr/lib/libTAO_CosConcurrency_Serv-*.so
+usr/lib/libTAO_CosEvent-*.so
+usr/lib/libTAO_CosEvent_Skel-*.so
+usr/lib/libTAO_CosEvent_Serv-*.so
+usr/lib/libTAO_CosLifeCycle-*.so
+usr/lib/libTAO_CosLoadBalancing-*.so
+usr/lib/libTAO_CosNaming-*.so
+usr/lib/libTAO_CosNaming_Skel-*.so
+usr/lib/libTAO_CosNaming_Serv-*.so
+usr/lib/libTAO_CosNotification-*.so
+usr/lib/libTAO_CosNotification_Persist-*.so
+usr/lib/libTAO_CosNotification_Skel-*.so
+usr/lib/libTAO_CosNotification_Serv-*.so
+usr/lib/libTAO_CosNotification_MC-*.so
+usr/lib/libTAO_CosNotification_MC_Ext-*.so
+usr/lib/libTAO_CosProperty-*.so
+usr/lib/libTAO_CosProperty_Skel-*.so
+usr/lib/libTAO_CosProperty_Serv-*.so
+usr/lib/libTAO_CosTime-*.so
+usr/lib/libTAO_CosTrading-*.so
+usr/lib/libTAO_CosTrading_Skel-*.so
+usr/lib/libTAO_CosTrading_Serv-*.so
+usr/lib/libTAO_CosLifeCycle_Skel-*.so
+usr/lib/libTAO_DsEventLogAdmin-*.so
+usr/lib/libTAO_DsEventLogAdmin_Skel-*.so
+usr/lib/libTAO_DsEventLogAdmin_Serv-*.so
+usr/lib/libTAO_DsLogAdmin-*.so
+usr/lib/libTAO_DsLogAdmin_Skel-*.so
+usr/lib/libTAO_DsLogAdmin_Serv-*.so
+usr/lib/libTAO_DsNotifyLogAdmin-*.so
+usr/lib/libTAO_DsNotifyLogAdmin_Skel-*.so
+usr/lib/libTAO_DsNotifyLogAdmin_Serv-*.so
+usr/lib/libTAO_FaultTolerance-*.so
+usr/lib/libTAO_FT_ClientORB-*.so
+usr/lib/libTAO_FT_ServerORB-*.so
+usr/lib/libTAO_FTORB_Utils-*.so
+usr/lib/libTAO_FTRT_EventChannel-*.so
+usr/lib/libTAO_FtRtEvent-*.so
+usr/lib/libTAO_FTRT_ClientORB-*.so
+usr/lib/libTAO_HTIOP-*.so
+usr/lib/libTAO_IFRService-*.so
+usr/lib/libTAO_PortableGroup-*.so
+usr/lib/libTAO_RTCORBAEvent-*.so
+usr/lib/libTAO_RTEvent-*.so
+usr/lib/libTAO_RTEvent_Serv-*.so
+usr/lib/libTAO_RTEvent_Skel-*.so
+usr/lib/libTAO_RTEventLogAdmin-*.so
+usr/lib/libTAO_RTEventLogAdmin_Skel-*.so
+usr/lib/libTAO_RTEventLogAdmin_Serv-*.so
+usr/lib/libTAO_RTKokyuEvent-*.so
+usr/lib/libTAO_RTSched-*.so
+usr/lib/libTAO_RTSchedEvent-*.so
+usr/lib/libTAO_RT_Notification-*.so
+usr/lib/libTAO_SSLIOP-*.so
+usr/lib/libTAO_Security-*.so
+usr/lib/libTAO_Svc_Utils-*.so
+usr/lib/libTAO_Notify_Service-*.so
+usr/lib/libTAO_CosTime_Serv-*.so
+usr/lib/libTAO_CosTime_Skel-*.so
+usr/lib/libTAO_Catior_i-*.so
+usr/lib/libTAO_ImR_Locator_IDL-*.so
+usr/lib/libTAO_ImR_Activator-*.so
+usr/lib/libTAO_ReplicationManagerLib-*.so
+usr/lib/libTAO_ImR_Activator_IDL-*.so
+usr/lib/libTAO_ImR_Locator-*.so
diff --git a/ACE/debian/libtao-orbsvcs-dev.install b/ACE/debian/libtao-orbsvcs-dev.install
new file mode 100644
index 00000000000..d324341efca
--- /dev/null
+++ b/ACE/debian/libtao-orbsvcs-dev.install
@@ -0,0 +1,115 @@
+usr/include/orbsvcs
+usr/share/idl/orbsvcs
+usr/lib/libTAO_AV.so
+usr/lib/libTAO_CosConcurrency.so
+usr/lib/libTAO_CosConcurrency_Skel.so
+usr/lib/libTAO_CosConcurrency_Serv.so
+usr/lib/libTAO_CosEvent.so
+usr/lib/libTAO_CosEvent_Skel.so
+usr/lib/libTAO_CosEvent_Serv.so
+usr/lib/libTAO_CosLifeCycle.so
+usr/lib/libTAO_CosLoadBalancing.so
+usr/lib/libTAO_CosNaming.so
+usr/lib/libTAO_CosNaming_Skel.so
+usr/lib/libTAO_CosNaming_Serv.so
+usr/lib/libTAO_CosNotification.so
+usr/lib/libTAO_CosNotification_Persist.so
+usr/lib/libTAO_CosNotification_Skel.so
+usr/lib/libTAO_CosNotification_Serv.so
+usr/lib/libTAO_CosNotification_MC.so
+usr/lib/libTAO_CosNotification_MC_Ext.so
+usr/lib/libTAO_CosProperty.so
+usr/lib/libTAO_CosProperty_Skel.so
+usr/lib/libTAO_CosProperty_Serv.so
+usr/lib/libTAO_CosTime.so
+usr/lib/libTAO_CosTrading.so
+usr/lib/libTAO_CosTrading_Skel.so
+usr/lib/libTAO_CosTrading_Serv.so
+usr/lib/libTAO_DsEventLogAdmin.so
+usr/lib/libTAO_DsEventLogAdmin_Skel.so
+usr/lib/libTAO_DsEventLogAdmin_Serv.so
+usr/lib/libTAO_DsLogAdmin.so
+usr/lib/libTAO_DsLogAdmin_Skel.so
+usr/lib/libTAO_DsLogAdmin_Serv.so
+usr/lib/libTAO_DsNotifyLogAdmin.so
+usr/lib/libTAO_DsNotifyLogAdmin_Skel.so
+usr/lib/libTAO_DsNotifyLogAdmin_Serv.so
+usr/lib/libTAO_FT_ServerORB.so
+usr/lib/libTAO_FT_ClientORB.so
+usr/lib/libTAO_FTORB_Utils.so
+usr/lib/libTAO_FaultTolerance.so
+usr/lib/libTAO_HTIOP.so
+usr/lib/libTAO_IFRService.so
+usr/lib/libTAO_PortableGroup.so
+usr/lib/libTAO_RTCORBAEvent.so
+usr/lib/libTAO_RTEvent.so
+usr/lib/libTAO_RTEvent_Serv.so
+usr/lib/libTAO_RTEvent_Skel.so
+usr/lib/libTAO_RTEventLogAdmin.so
+usr/lib/libTAO_RTEventLogAdmin_Skel.so
+usr/lib/libTAO_RTEventLogAdmin_Serv.so
+usr/lib/libTAO_RTKokyuEvent.so
+usr/lib/libTAO_RTSched.so
+usr/lib/libTAO_RTSchedEvent.so
+usr/lib/libTAO_RT_Notification.so
+usr/lib/libTAO_SSLIOP.so
+usr/lib/libTAO_Security.so
+usr/lib/libTAO_Svc_Utils.so
+usr/lib/libTAO_FTRT_EventChannel.so
+usr/lib/libTAO_FtRtEvent.so
+usr/lib/libTAO_FTRT_ClientORB.so
+usr/lib/libTAO_CosLifeCycle_Skel.so
+usr/lib/libTAO_Notify_Service.so
+usr/lib/libTAO_CosTime_Serv.so
+usr/lib/libTAO_CosTime_Skel.so
+usr/lib/libTAO_Catior_i.so
+usr/lib/libTAO_ReplicationManagerLib.so
+usr/lib/libTAO_ImR_Activator.so
+usr/lib/libTAO_ImR_Locator.so
+usr/lib/libTAO_ImR_Locator_IDL.so
+usr/lib/libTAO_ImR_Activator_IDL.so
+usr/lib/pkgconfig/TAO_CosLoadBalancing.pc
+usr/lib/pkgconfig/TAO_CosConcurrency_Serv.pc
+usr/lib/pkgconfig/TAO_CosEvent.pc
+usr/lib/pkgconfig/TAO_DsLogAdmin_Skel.pc
+usr/lib/pkgconfig/TAO_DsEventLogAdmin.pc
+usr/lib/pkgconfig/TAO_CosProperty_Skel.pc
+usr/lib/pkgconfig/TAO_CosEvent_Serv.pc
+usr/lib/pkgconfig/TAO_CosNotification_Skel.pc
+usr/lib/pkgconfig/TAO_DsNotifyLogAdmin_Serv.pc
+usr/lib/pkgconfig/TAO_CosTime_Skel.pc
+usr/lib/pkgconfig/TAO_RTEventLogAdmin_Skel.pc
+usr/lib/pkgconfig/TAO_CosProperty.pc
+usr/lib/pkgconfig/TAO_CosLifeCycle_Skel.pc
+usr/lib/pkgconfig/TAO_RTEvent_Skel.pc
+usr/lib/pkgconfig/TAO_FaultTolerance.pc
+usr/lib/pkgconfig/TAO_RTEvent.pc
+usr/lib/pkgconfig/TAO_CosNaming.pc
+usr/lib/pkgconfig/TAO_CosConcurrency_Skel.pc
+usr/lib/pkgconfig/TAO_FT_ServerORB.pc
+usr/lib/pkgconfig/TAO_DsLogAdmin.pc
+usr/lib/pkgconfig/TAO_DsEventLogAdmin_Skel.pc
+usr/lib/pkgconfig/TAO_FT_ClientORB.pc
+usr/lib/pkgconfig/TAO_CosTrading_Skel.pc
+usr/lib/pkgconfig/TAO_CosNotification.pc
+usr/lib/pkgconfig/TAO_CosTrading.pc
+usr/lib/pkgconfig/TAO_CosTime_Serv.pc
+usr/lib/pkgconfig/TAO_CosNaming_Skel.pc
+usr/lib/pkgconfig/TAO_CosProperty_Serv.pc
+usr/lib/pkgconfig/TAO_DsNotifyLogAdmin_Skel.pc
+usr/lib/pkgconfig/TAO_CosEvent_Skel.pc
+usr/lib/pkgconfig/TAO_CosNotification_Serv.pc
+usr/lib/pkgconfig/TAO_FTORB_Utils.pc
+usr/lib/pkgconfig/TAO_CosConcurrency.pc
+usr/lib/pkgconfig/TAO_DsNotifyLogAdmin.pc
+usr/lib/pkgconfig/TAO_CosNaming_Serv.pc
+usr/lib/pkgconfig/TAO_DsLogAdmin_Serv.pc
+usr/lib/pkgconfig/TAO_CosTime.pc
+usr/lib/pkgconfig/TAO_RTEvent_Serv.pc
+usr/lib/pkgconfig/TAO_CosTrading_Serv.pc
+usr/lib/pkgconfig/TAO_CosLifeCycle.pc
+usr/lib/pkgconfig/TAO_DsEventLogAdmin_Serv.pc
+usr/lib/pkgconfig/TAO_RTEventLogAdmin.pc
+usr/lib/pkgconfig/TAO_RTEventLogAdmin_Serv.pc
+usr/lib/pkgconfig/TAO_Svc_Utils.pc
+usr/lib/pkgconfig/TAO_PortableGroup.pc
diff --git a/ACE/debian/libtao-orbsvcs-dev.links b/ACE/debian/libtao-orbsvcs-dev.links
new file mode 100644
index 00000000000..3eddab7829c
--- /dev/null
+++ b/ACE/debian/libtao-orbsvcs-dev.links
@@ -0,0 +1 @@
+usr/include/orbsvcs usr/lib/ace/TAO/orbsvcs
diff --git a/ACE/debian/libtao-qtresource-2.0.3.install b/ACE/debian/libtao-qtresource-2.0.3.install
new file mode 100644
index 00000000000..172f4c45db8
--- /dev/null
+++ b/ACE/debian/libtao-qtresource-2.0.3.install
@@ -0,0 +1 @@
+usr/lib/libTAO_QtResource-*.so
diff --git a/ACE/debianbuild/libtao-qtresource-dev.install b/ACE/debian/libtao-qtresource-dev.install
index d4bfe3864c8..d4bfe3864c8 100644
--- a/ACE/debianbuild/libtao-qtresource-dev.install
+++ b/ACE/debian/libtao-qtresource-dev.install
diff --git a/ACE/debian/libtao-tkresource-2.0.3.install b/ACE/debian/libtao-tkresource-2.0.3.install
new file mode 100644
index 00000000000..7f543154b5b
--- /dev/null
+++ b/ACE/debian/libtao-tkresource-2.0.3.install
@@ -0,0 +1 @@
+usr/lib/libTAO_TkResource-*.so
diff --git a/ACE/debianbuild/libtao-tkresource-dev.install b/ACE/debian/libtao-tkresource-dev.install
index daaa40e9b7e..daaa40e9b7e 100644
--- a/ACE/debianbuild/libtao-tkresource-dev.install
+++ b/ACE/debian/libtao-tkresource-dev.install
diff --git a/ACE/debian/libtao-xtresource-2.0.3.install b/ACE/debian/libtao-xtresource-2.0.3.install
new file mode 100644
index 00000000000..ab5151ed073
--- /dev/null
+++ b/ACE/debian/libtao-xtresource-2.0.3.install
@@ -0,0 +1 @@
+usr/lib/libTAO_XtResource-*.so
diff --git a/ACE/debianbuild/libtao-xtresource-dev.install b/ACE/debian/libtao-xtresource-dev.install
index 24782aea620..24782aea620 100644
--- a/ACE/debianbuild/libtao-xtresource-dev.install
+++ b/ACE/debian/libtao-xtresource-dev.install
diff --git a/ACE/debianbuild/mpc-ace.docs b/ACE/debian/mpc-ace.docs
index fb3dd6ec92c..fb3dd6ec92c 100644
--- a/ACE/debianbuild/mpc-ace.docs
+++ b/ACE/debian/mpc-ace.docs
diff --git a/ACE/debian/mpc-ace.install b/ACE/debian/mpc-ace.install
new file mode 100644
index 00000000000..58f450ccfc7
--- /dev/null
+++ b/ACE/debian/mpc-ace.install
@@ -0,0 +1,8 @@
+../../ACE_wrappers/bin/m[p,w]c.pl usr/lib/ace/bin
+../../ACE_wrappers/bin/MakeProjectCreator usr/lib/ace/bin
+../../ACE_wrappers/MPC/config usr/lib/ace/MPC
+../../ACE_wrappers/MPC/modules usr/lib/ace/MPC
+../../ACE_wrappers/MPC/templates usr/lib/ace/MPC
+../../ACE_wrappers/MPC/*.pl usr/lib/ace/MPC
+../../ACE_wrappers/MPC/ChangeLog usr/lib/ace/MPC
+../../ACE_wrappers/bin/PerlACE/*.pm usr/lib/ace/bin/PerlACE
diff --git a/ACE/debian/mpc-ace.links b/ACE/debian/mpc-ace.links
new file mode 100644
index 00000000000..18382ceb65b
--- /dev/null
+++ b/ACE/debian/mpc-ace.links
@@ -0,0 +1,3 @@
+usr/lib/ace/bin/mpc.pl usr/bin/mpc-ace
+usr/lib/ace/bin/mwc.pl usr/bin/mwc-ace
+usr/share/man/man1/mpc-ace.1.gz usr/share/man/man1/mwc-ace.1.gz
diff --git a/ACE/debianbuild/mpc-ace.manpages b/ACE/debian/mpc-ace.manpages
index 59e55053a00..59e55053a00 100644
--- a/ACE/debianbuild/mpc-ace.manpages
+++ b/ACE/debian/mpc-ace.manpages
diff --git a/ACE/debian/patches/00list b/ACE/debian/patches/00list
new file mode 100644
index 00000000000..90084d75aef
--- /dev/null
+++ b/ACE/debian/patches/00list
@@ -0,0 +1,11 @@
+11-promote-QtResource-to-qt4.dpatch
+15-fix-lzo-flags.dpatch
+16-ace-inet-pkgconfig-files.dpatch
+20-versioned_libs.dpatch
+34-bts386713.dpatch
+49-reduce-doxygen-doc.dpatch
+50-prepatch-dummy-mark.dpatch
+75-post-build-dummy-mark.dpatch
+90-patch-mpc-basedir.dpatch
+91-patch-dg-basedir.dpatch
+92-default-ACE_ROOT.dpatch
diff --git a/ACE/debianbuild/patches/00patch-opts b/ACE/debian/patches/00patch-opts
index d49694774c8..d49694774c8 100644
--- a/ACE/debianbuild/patches/00patch-opts
+++ b/ACE/debian/patches/00patch-opts
diff --git a/ACE/debian/patches/15-fix-lzo-flags.dpatch b/ACE/debian/patches/15-fix-lzo-flags.dpatch
new file mode 100644
index 00000000000..fc7dfd3499d
--- /dev/null
+++ b/ACE/debian/patches/15-fix-lzo-flags.dpatch
@@ -0,0 +1,25 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 15-fix-lzo-flags.dpatch by Thomas Girard <thomas.g.girard@free.fr>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: hardcode LZO headers location.
+
+@DPATCH@
+
+diff -rupd ACE_wrappers.orig/MPC/config/lzo1.mpb ACE_wrappers/MPC/config/lzo1.mpb
+--- ACE_wrappers.orig/MPC/config/lzo1.mpb 2011-02-13 20:54:12.115281001 +0100
++++ ACE_wrappers/MPC/config/lzo1.mpb 2011-02-13 20:54:51.187281001 +0100
+@@ -8,11 +8,11 @@ feature(lzo1) {
+ LZO1_INCDIR
+ $(LZO1_ROOT)/include
+ }
+- includes += $(LZO1_INCDIR)
++ includes += /usr/include/lzo
+ libpaths += $(LZO1_ROOT)/lib
+ specific (prop:microsoft) {
+ lit_libs += liblzo
+ } else {
+- lit_libs += lzo
++ lit_libs += lzo2
+ }
+ }
diff --git a/ACE/debian/patches/20-versioned_libs.dpatch b/ACE/debian/patches/20-versioned_libs.dpatch
new file mode 100755
index 00000000000..df803fa4fe2
--- /dev/null
+++ b/ACE/debian/patches/20-versioned_libs.dpatch
@@ -0,0 +1,136 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 20-versioned_libs.dpatch by Thomas Girard <thomas.g.girard@free.fr>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Change versioning from libACE.so.x.y.z to libACE-x.y.z.so.
+
+@DPATCH@
+--- ACE_wrappers.orig/include/makeinclude/wrapper_macros.GNU 2010-10-05 09:27:20.000000000 +0200
++++ ACE_wrappers/include/makeinclude/wrapper_macros.GNU 2010-12-22 15:40:14.126127937 +0100
+@@ -78,7 +78,10 @@
+ # If versioned_so is 1 (enabled), the SOVERSION make
+ # variable can also be set to specify the version info
+ # to append to the name - it should have a leading '.' -
+-# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA.
++# else it defaults to .ACE_MAJOR.ACE_MINOR.ACE_BETA. If 2,
++# the version will be appended to the name but *before* the
++# $(SOEXT) - it should have a lead '-' - else it defaults to
++# -ACE_MAJOR.ACE_MINOR.ACE_BETA.
+ # wfmo Build with wfmo support (Win32 only)
+ # winregistry Build with windows registry support (Win32 only)
+ # winnt Build WinNT-specific projects (Win32 only)
+--- ACE_wrappers.orig/MPC/prj_install.pl 2010-09-14 21:39:33.000000000 +0200
++++ ACE_wrappers/MPC/prj_install.pl 2010-12-22 15:38:28.746110985 +0100
+@@ -186,7 +186,7 @@
+ my $fh = new FileHandle();
+ if (opendir($fh, $odir)) {
+ foreach my $file (grep(!/^\.\.?$/, readdir($fh))) {
+- if ($file =~ /^lib$name\.(a|so|sl)/ ||
++ if ($file =~ /^lib$name(-[0-9]+(\.[0-9]+)*)?\.(a|so|sl)/ ||
+ $file =~ /^(lib)?$name.*\.(dll|lib)$/i) {
+ push(@libs, "$dir$insdir$binarydir$file");
+ }
+--- ACE_wrappers.orig/include/makeinclude/platform_g++_common.GNU 2010-11-19 16:47:53.000000000 +0100
++++ ACE_wrappers/include/makeinclude/platform_g++_common.GNU 2010-12-22 16:16:05.914110606 +0100
+@@ -72,7 +72,7 @@
+ # If the platform file didn't already set versioned_so, default to 1.
+ versioned_so ?= 1
+ with_ld ?=
+-ifeq ($(versioned_so),1)
++ifneq ($(versioned_so),0)
+ ifeq ($(with_ld),hpux)
+ SOFLAGS += -Wl,+h -Wl,$(SONAME)
+ else
+--- ACE_wrappers.orig/include/makeinclude/rules.lib.GNU 2010-09-23 18:17:42.000000000 +0200
++++ ACE_wrappers/include/makeinclude/rules.lib.GNU 2010-12-22 16:38:13.874115232 +0100
+@@ -11,7 +11,7 @@
+ # Library versioning
+ #---------------------------------------------------------------------------
+
+-ifeq ($(versioned_so),1)
++ifneq ($(versioned_so),0)
+ # Turn on symbol versioning. The scheme that we follow is to allow
+ # applications dependent on libraries, with same version numbers (major,
+ # minor and beta) to run, but applications with dependencies on libraries
+@@ -20,13 +20,23 @@
+ # Version number of the libraries
+ #
+ ifeq ($(SOVERSION),)
+- SOVERSION = .$(GNUACE_PROJECT_VERSION)
++ ifeq ($(versioned_so),1)
++ SOVERSION = .$(GNUACE_PROJECT_VERSION)
++ else ifeq ($(versioned_so),2)
++ SOVERSION = -$(GNUACE_PROJECT_VERSION)
++ else
++ $(error unknown value for versioned_so: $(versioned_so))
++ endif
+ endif # SOVERSION
+
+ # Name that will be written into the dynamic library
+ #
+ ifeq ($(SONAME),)
+- SONAME = $(SHLIB)$(SOVERSION)
++ ifeq ($(versioned_so),1)
++ SONAME = $(SHLIB)$(SOVERSION)
++ else ifeq ($(versioned_so),2)
++ SONAME = $(patsubst %.$(SOEXT),%,$(SHLIB))$(SOVERSION).$(SOEXT)
++ endif
+ endif # SONAME
+ endif # versioned_so
+
+@@ -47,9 +57,15 @@
+ # Setup shared library variables, including versions.
+ VSHLIB_NO_VER = $(ARCH_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
+ CLEANUP_VSHLIB_NO_VER = $(CLEANUP_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
+-VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION))
+-CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION))
+-SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION))
++ifneq ($(versioned_so),2)
++ VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION))
++ CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION))
++ SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION))
++else
++ VSHLIB = $(patsubst %.$(SOEXT),%,$(VSHLIB_NO_VER))$(SOVERSION).$(SOEXT)
++ CLEANUP_VSHLIB = $(patsubst %.$(SOEXT),%,$(CLEANUP_VSHLIB_NO_VER))$(SOVERSION).$(SOEXT)
++ SHLIB_WITH_VER = $(patsubst %.$(SOEXT),%,$(SHLIB))$(SOVERSION).$(SOEXT)
++endif
+
+ SHLIBA ?=
+ VSHLIBA = $(ARCH_SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
+--- ACE_wrappers.orig/include/makeinclude/rules.local.GNU 2010-11-05 15:31:15.000000000 +0100
++++ ACE_wrappers/include/makeinclude/rules.local.GNU 2010-12-22 17:21:40.474300601 +0100
+@@ -297,13 +297,23 @@
+ fi
+ else #firstword of LN_S is not cp, so we're using real symlinks
+ ifneq ($(SOVERSION),)
+- @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
++ ifneq ($(versioned_so),2)
++ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
+ if test ! -s $@ ; then \
+ $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ fi ; \
+- fi
++ fi
++ else
++ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
++ if test ! -s $@ ; then \
++ $(RM) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
++ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
++ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%$(SOVERSION).$(SOEXT)=%.$(SOEXT)); \
++ fi ; \
++ fi
++ endif #versioned_so
+ endif #SOVERSION
+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
+ if test ! -s $@ ; then \
+@@ -336,6 +346,8 @@
+ -$(RM) $(SHLIB_UNCHECKED)
+ ifeq ($(versioned_so),1)
+ -$(RM) $(SHLIB_UNCHECKED)$(SOVERSION)
++else ifeq ($(versioned_so),2)
++ -$(RM) $(SHLIB_UNCHECKED:.$(SOEXT)=$(SOVERSION).$(SOEXT))
+ endif
+ endif
+
diff --git a/ACE/debian/patches/34-bts386713.dpatch b/ACE/debian/patches/34-bts386713.dpatch
new file mode 100644
index 00000000000..64f3f58bd13
--- /dev/null
+++ b/ACE/debian/patches/34-bts386713.dpatch
@@ -0,0 +1,406 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 34-bts386713.dpatch by Pau Garcia i Quiles <pgquiles@elpauer.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: load libraries with their complete name
+
+@DPATCH@
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp ACE_wrappers/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp 2009-12-14 00:42:05.534162607 +0100
++++ ACE_wrappers/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp 2009-12-14 00:59:12.215257079 +0100
+@@ -14,7 +14,7 @@ ACE_RCSID (PortableGroup,
+
+ static const char pg_poa_factory_name[] = "TAO_GOA";
+ static const ACE_TCHAR pg_poa_factory_directive[] = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+- "TAO_GOA", "TAO_PortableGroup", "_make_TAO_PG_Object_Adapter_Factory", "");
++ "TAO_GOA", "libTAO_PortableGroup-2.0.1.so", "_make_TAO_PG_Object_Adapter_Factory", "");
+
+ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp ACE_wrappers/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp 2009-12-14 00:42:06.382162746 +0100
++++ ACE_wrappers/TAO/orbsvcs/tests/Bug_3486_Regression/server.cpp 2009-12-14 00:59:12.215257079 +0100
+@@ -18,7 +18,7 @@ ACE_TCHAR const * const scpc_unloadOrb =
+
+ ACE_TCHAR const * const scpc_loadNamingService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNamingService",
+- "TAO_CosNaming_Serv",
++ "libTAO_CosNaming_Serv-2.0.1.so",
+ "_make_TAO_Naming_Loader",
+ ""
+ );
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp 2009-12-14 00:42:06.030162565 +0100
++++ ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp 2009-12-14 00:59:12.215257079 +0100
+@@ -20,7 +20,7 @@ ACE_TCHAR const * const scpc_unloadOrb =
+
+ ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+- "TAO_CosNotification_Serv",
++ "libTAO_CosNotification_Serv-2.0.1.so",
+ "_make_TAO_CosNotify_Service",
+ ""
+ );
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp 2009-12-14 00:42:06.026162764 +0100
++++ ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/server.cpp 2009-12-14 00:59:12.215257079 +0100
+@@ -24,7 +24,7 @@ ACE_TCHAR const * const scpc_unloadOrb =
+
+ ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+- "TAO_CosNotification_Serv",
++ "libTAO_CosNotification_Serv-2.0.1.so",
+ "_make_TAO_CosNotify_Service",
+ "-UseSeparateDispatchingORB 1"
+ );
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp 2009-12-14 00:42:06.018162604 +0100
++++ ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -20,7 +20,7 @@ ACE_TCHAR const * const scpc_unloadOrb =
+
+ ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+- "TAO_Notify_Service",
++ "libTAO_Notify_Service-2.0.1.so",
+ "_make_TAO_Notify_Service_Driver",
+ "-NoNameSvc -RunThreads 0"
+ );
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp 2009-12-14 00:42:06.046162766 +0100
++++ ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -23,7 +23,7 @@ ACE_TCHAR const * const scpc_unloadOrb =
+
+ ACE_TCHAR scpc_loadNotifyService[max_length] = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+- "TAO_Notify_Service",
++ "libTAO_Notify_Service-2.0.1.so",
+ "_make_TAO_Notify_Service_Driver",
+ "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 0 -ORBInitRef NameService=iioploc://%s:%s/NameService -IORoutput %s"
+ );
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp 2009-12-14 00:42:06.074162491 +0100
++++ ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -20,7 +20,7 @@ ACE_TCHAR const * const scpc_unloadOrb =
+
+ ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+- "TAO_Notify_Service",
++ "libTAO_Notify_Service-2.0.1.so",
+ "_make_TAO_Notify_Service_Driver",
+ "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 10 -ORBInitRef NameService=file://naming.ior -IORoutput notify.ior"
+ );
+@@ -29,7 +29,7 @@ ACE_TCHAR const * const scpc_unloadNotif
+
+ ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNamingService",
+- "TAO_CosNaming_Serv",
++ "libTAO_CosNaming_Serv-2.0.1.so",
+ "_make_TAO_Naming_Loader",
+ "testNameService testNameService -ORBId testDllOrb -m 0 -o naming.ior"
+ );
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp 2009-12-14 00:42:06.038162926 +0100
++++ ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -20,7 +20,7 @@ ACE_TCHAR const * const scpc_unloadOrb =
+
+ ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+- "TAO_Notify_Service",
++ "libTAO_Notify_Service-2.0.1.so",
+ "_make_TAO_Notify_Service_Driver_INCORRECT",
+ "-NoNameSvc -RunThreads 0"
+ );
+diff -rupd ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp
+--- ACE_wrappers.orig/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp 2009-12-14 00:42:06.062163609 +0100
++++ ACE_wrappers/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -24,7 +24,7 @@ ACE_TCHAR const * const scpc_unloadOrb =
+
+ ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNamingService",
+- "TAO_CosNaming_Serv",
++ "libTAO_CosNaming_Serv-2.0.1.so",
+ "_make_TAO_Naming_Loader",
+ "testNameService testNameService -ORBId testDllOrb -m 0 -o naming.ior"
+ );
+@@ -34,7 +34,7 @@ ACE_TCHAR const * const scpc_unloadNameS
+
+ ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+- "TAO_Notify_Service",
++ "libTAO_Notify_Service-2.0.1.so",
+ "_make_TAO_Notify_Service_Driver",
+ "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 1 -ORBInitRef NameService=file://naming.ior -IORoutput notify.ior"
+ );
+diff -rupd ACE_wrappers.orig/TAO/tao/Codeset/Codeset_Manager_i.cpp ACE_wrappers/TAO/tao/Codeset/Codeset_Manager_i.cpp
+--- ACE_wrappers.orig/TAO/tao/Codeset/Codeset_Manager_i.cpp 2009-12-14 00:42:09.538164079 +0100
++++ ACE_wrappers/TAO/tao/Codeset/Codeset_Manager_i.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -358,7 +358,7 @@ TAO_Codeset_Manager_i::open(TAO_ORB_Core
+ if (fact == 0)
+ ACE_Service_Config::process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE ("UTF8_Latin1_Factory",
+- "TAO_Codeset",
++ "libTAO_Codeset-2.0.1.so",
+ "_make_TAO_UTF8_Latin1_Factory",
+ ""));
+ else
+@@ -375,7 +375,7 @@ TAO_Codeset_Manager_i::open(TAO_ORB_Core
+ if (fact == 0)
+ ACE_Service_Config::process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE ("UTF16_BOM_Factory",
+- "TAO_Codeset",
++ "libTAO_Codeset-2.0.1.so",
+ "_make_TAO_UTF16_BOM_Factory",
+ ""));
+ else
+diff -rupd ACE_wrappers.orig/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp ACE_wrappers/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp
+--- ACE_wrappers.orig/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp 2009-12-14 00:42:09.426163271 +0100
++++ ACE_wrappers/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -13,7 +13,7 @@ ACE_RCSID (CSD,
+ static const ACE_TCHAR csd_poa_factory_directive[] =
+ ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "TAO_CSD_Object_Adapter_Factory",
+- "TAO_CSD_Framework",
++ "libTAO_CSD_Framework-2.0.1.so",
+ "_make_TAO_CSD_Object_Adapter_Factory",
+ "");
+
+diff -rupd ACE_wrappers.orig/TAO/tao/ORB_Core.cpp ACE_wrappers/TAO/tao/ORB_Core.cpp
+--- ACE_wrappers.orig/TAO/tao/ORB_Core.cpp 2009-12-14 00:42:09.538164079 +0100
++++ ACE_wrappers/TAO/tao/ORB_Core.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -1643,7 +1643,7 @@ TAO_ORB_Core::policy_factory_registry_i
+ {
+ this->configuration ()->process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("PolicyFactory_Loader",
+- "TAO_PI",
++ "libTAO_PI-2.0.1.so",
+ "_make_TAO_PolicyFactory_Loader",
+ ""));
+ loader =
+@@ -1695,7 +1695,7 @@ TAO_ORB_Core::orbinitializer_registry_i
+ {
+ this->configuration ()->process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE ("ORBInitializer_Registry",
+- "TAO_PI",
++ "libTAO_PI-2.0.1.so",
+ "_make_ORBInitializer_Registry",
+ ""));
+ this->orbinitializer_registry_ =
+@@ -2429,7 +2429,7 @@ TAO_ORB_Core::resolve_typecodefactory_i
+ {
+ this->configuration ()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("TypeCodeFactory",
+- "TAO_TypeCodeFactory",
++ "libTAO_TypeCodeFactory-2.0.1.so",
+ "_make_TAO_TypeCodeFactory_Loader",
+ ""));
+ loader =
+@@ -2462,7 +2462,7 @@ TAO_ORB_Core::resolve_codecfactory_i (vo
+ {
+ this->configuration()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
+- "TAO_CodecFactory",
++ "libTAO_CodecFactory-2.0.1.so",
+ "_make_TAO_CodecFactory_Loader",
+ ""));
+ loader =
+@@ -2489,7 +2489,7 @@ TAO_ORB_Core::resolve_compression_manage
+ {
+ this->configuration()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("Compression",
+- "TAO_Compression",
++ "libTAO_Compression-2.0.1.so",
+ "_make_TAO_Compression_Loader",
+ ""));
+ loader =
+@@ -2515,7 +2515,7 @@ TAO_ORB_Core::resolve_poa_current_i (voi
+ {
+ this->configuration()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_POA_Current_Factory",
+- "TAO_PortableServer",
++ "libTAO_PortableServer-2.0.1.so",
+ "_make_TAO_POA_Current_Factory",
+ ""));
+ loader =
+@@ -2544,7 +2544,7 @@ TAO_ORB_Core::resolve_picurrent_i (void)
+ {
+ this->configuration ()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("PICurrent_Loader",
+- "TAO_PI",
++ "libTAO_PI-2.0.1.so",
+ "_make_TAO_PICurrent_Loader",
+ ""));
+ loader =
+@@ -2575,7 +2575,7 @@ TAO_ORB_Core::resolve_dynanyfactory_i (v
+ {
+ this->configuration ()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("DynamicAny_Loader",
+- "TAO_DynamicAny",
++ "libTAO_DynamicAny-2.0.1.so",
+ "_make_TAO_DynamicAny_Loader",
+ ""));
+ loader =
+@@ -2602,7 +2602,7 @@ TAO_ORB_Core::resolve_iormanipulation_i
+ {
+ this->configuration()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("IORManip_Loader",
+- "TAO_IORManip",
++ "libTAO_IORManip-2.0.1.so",
+ "_make_TAO_IORManip_Loader",
+ ""));
+ loader =
+@@ -2628,7 +2628,7 @@ TAO_ORB_Core::resolve_ior_table_i (void)
+ {
+ this->configuration ()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_IORTable",
+- "TAO_IORTable",
++ "libTAO_IORTable-2.0.1.so",
+ "_make_TAO_Table_Adapter_Factory",
+ ""));
+ factory =
+@@ -2663,7 +2663,7 @@ TAO_ORB_Core::resolve_monitor_i (void)
+ {
+ this->configuration ()->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("Monitor_Init",
+- "TAO_Monitor",
++ "libTAO_Monitor-2.0.1.so",
+ "_make_TAO_Monitor_Init",
+ ""));
+ loader =
+diff -rupd ACE_wrappers.orig/TAO/tao/ORBInitializer_Registry.cpp ACE_wrappers/TAO/tao/ORBInitializer_Registry.cpp
+--- ACE_wrappers.orig/TAO/tao/ORBInitializer_Registry.cpp 2009-12-14 00:42:09.662163328 +0100
++++ ACE_wrappers/TAO/tao/ORBInitializer_Registry.cpp 2009-12-14 00:59:12.219164079 +0100
+@@ -53,7 +53,7 @@ namespace PortableInterceptor
+ {
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
+- "TAO_PI",
++ "libTAO_PI-2.0.1.so",
+ "_make_ORBInitializer_Registry",
+ ""));
+ orbinitializer_registry_ =
+diff -rupd ACE_wrappers.orig/TAO/tao/params.cpp ACE_wrappers/TAO/tao/params.cpp
+--- ACE_wrappers.orig/TAO/tao/params.cpp 2009-12-14 00:42:09.170163692 +0100
++++ ACE_wrappers/TAO/tao/params.cpp 2009-12-14 00:59:12.259162724 +0100
+@@ -59,7 +59,7 @@ TAO_ORB_Parameters::TAO_ORB_Parameters (
+ , poa_factory_name_ ("TAO_Object_Adapter_Factory")
+ , poa_factory_directive_
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Object_Adapter_Factory",
+- "TAO_PortableServer",
++ "libTAO_PortableServer-2.0.1.so",
+ "_make_TAO_Object_Adapter_Factory",
+ ""))
+ , forward_invocation_on_object_not_exist_ (false)
+diff -rupd ACE_wrappers.orig/TAO/tao/PI/ORBInitInfo.cpp ACE_wrappers/TAO/tao/PI/ORBInitInfo.cpp
+--- ACE_wrappers.orig/TAO/tao/PI/ORBInitInfo.cpp 2009-12-14 00:42:09.534163639 +0100
++++ ACE_wrappers/TAO/tao/PI/ORBInitInfo.cpp 2009-12-14 00:59:12.223163120 +0100
+@@ -121,7 +121,7 @@ TAO_ORBInitInfo::codec_factory (void)
+ {
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
+- "TAO_CodecFactory",
++ "libTAO_CodecFactory-2.0.1.so",
+ "_make_TAO_CodecFactory_Loader",
+ ""));
+ loader =
+diff -rupd ACE_wrappers.orig/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp ACE_wrappers/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
+--- ACE_wrappers.orig/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp 2009-12-14 00:42:09.422163150 +0100
++++ ACE_wrappers/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp 2009-12-14 00:59:12.223163120 +0100
+@@ -83,7 +83,7 @@ namespace TAO
+ {
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE(
+- "ImR_Client_Adapter", "TAO_ImR_Client",
++ "ImR_Client_Adapter", "libTAO_ImR_Client-2.0.1.so",
+ "_make_ImR_Client_Adapter_Impl", ""));
+
+ adapter =
+diff -rupd ACE_wrappers.orig/TAO/tao/RTCORBA/RT_ORBInitializer.cpp ACE_wrappers/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
+--- ACE_wrappers.orig/TAO/tao/RTCORBA/RT_ORBInitializer.cpp 2009-12-14 00:42:09.774162647 +0100
++++ ACE_wrappers/TAO/tao/RTCORBA/RT_ORBInitializer.cpp 2009-12-14 00:59:12.223163120 +0100
+@@ -41,7 +41,7 @@ static const char rt_poa_factory_name[]
+ static const ACE_TCHAR rt_poa_factory_directive[] =
+ ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "TAO_RT_Object_Adapter_Factory",
+- "TAO_RTPortableServer",
++ "libTAO_RTPortableServer-2.0.1.so",
+ "_make_TAO_RT_Object_Adapter_Factory",
+ "");
+
+diff -rupd ACE_wrappers.orig/TAO/tao/TAO_Internal.cpp ACE_wrappers/TAO/tao/TAO_Internal.cpp
+--- ACE_wrappers.orig/TAO/tao/TAO_Internal.cpp 2009-12-14 00:42:10.102163319 +0100
++++ ACE_wrappers/TAO/tao/TAO_Internal.cpp 2009-12-14 00:59:12.223163120 +0100
+@@ -534,7 +534,7 @@ namespace
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE (
+ "TAO_Codeset",
+- "TAO_Codeset",
++ "libTAO_Codeset-2.0.1.so",
+ "_make_TAO_Codeset_Manager_Factory",
+ ""));
+
+diff -rupd ACE_wrappers.orig/TAO/tests/DLL_ORB/client.cpp ACE_wrappers/TAO/tests/DLL_ORB/client.cpp
+--- ACE_wrappers.orig/TAO/tests/DLL_ORB/client.cpp 2009-12-14 00:42:12.254247172 +0100
++++ ACE_wrappers/TAO/tests/DLL_ORB/client.cpp 2009-12-14 01:19:12.378162468 +0100
+@@ -30,7 +30,7 @@ ACE_TMAIN(int, ACE_TCHAR *[])
+ if (ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "Client_Module",
+- "Test_Client_Module",
++ "libTest_Client_Module-2.0.1.so",
+ "_make_Test_Client_Module",
+ "-k file://test.ior")) != 0)
+ {
+diff -rupd ACE_wrappers.orig/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp ACE_wrappers/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp
+--- ACE_wrappers.orig/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp 2009-12-14 00:42:13.546163086 +0100
++++ ACE_wrappers/TAO/tests/ORB_Local_Config/Bug_2612/Test.cpp 2009-12-14 01:26:03.054181888 +0100
+@@ -13,7 +13,7 @@ ACE_TCHAR const * const scpc_loadOrb = /
+ // each parameter CANNOT be split into multiple quoted strings "line1" "nextline" with the expectation that
+ // they will be join together. Hence the long parameter 4.
+ ACE_DYNAMIC_SERVICE_DIRECTIVE ("testDllOrb",
+- "DllOrb",
++ "DllOrb.so",
+ "_make_DllOrb",
+ "DllOrb -t 1 -ORBGestalt Local -ORBDebugLevel 3 -ORBId testORB -ORBInitRef NameService=file:///tmp/test-ns.ior -ORBDottedDecimalAddresses 1"
+ );
+diff -rupd ACE_wrappers.orig/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp ACE_wrappers/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp
+--- ACE_wrappers.orig/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp 2009-12-14 00:42:13.650166654 +0100
++++ ACE_wrappers/TAO/tests/ORB_Local_Config/Service_Dependency/Test.cpp 2009-12-14 00:59:12.259162724 +0100
+@@ -153,7 +153,7 @@ testORBInitializer_Registry (int , ACE_T
+ {
+ one->process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
+- "TAO_PI",
++ "libTAO_PI-2.0.1.so",
+ "_make_ORBInitializer_Registry",
+ ""));
+ oir =
+@@ -252,7 +252,7 @@ testORBInitializer_Registry (int , ACE_T
+
+ one->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("PolicyFactory_Loader",
+- "TAO_PI",
++ "libTAO_PI-2.0.1.so",
+ "_make_TAO_PolicyFactory_Loader",
+ ""));
+
+@@ -292,7 +292,7 @@ testServiceDependency (int , ACE_TCHAR *
+
+ int result = one->process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Codeset",
+- "TAO_Codeset",
++ "libTAO_Codeset-2.0.1.so",
+ "_make_TAO_Codeset_Manager_Factory",
+ ""));
+ if (result != 0)
+diff -rupd ACE_wrappers.orig/TAO/tests/TransportCurrent/Framework/simple.cpp ACE_wrappers/TAO/tests/TransportCurrent/Framework/simple.cpp
+--- ACE_wrappers.orig/TAO/tests/TransportCurrent/Framework/simple.cpp 2009-12-14 00:42:10.274245769 +0100
++++ ACE_wrappers/TAO/tests/TransportCurrent/Framework/simple.cpp 2009-12-14 00:59:12.259162724 +0100
+@@ -59,7 +59,7 @@ testCurrentLoader (int, char *[])
+ #if !defined (TAO_AS_STATIC_LIBS)
+ int ret = ACE_Service_Config::process_directive
+ (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Transport_Current_Loader",
+- "TAO_Transport_Current",
++ "libTAO_Transport_Current-2.0.1.so",
+ "_make_TAO_Transport_Current_Loader",
+ ""));
+ ACE_ASSERT (ret == 0);
diff --git a/ACE/debian/patches/49-reduce-doxygen-doc.dpatch b/ACE/debian/patches/49-reduce-doxygen-doc.dpatch
new file mode 100755
index 00000000000..1a271ce7eac
--- /dev/null
+++ b/ACE/debian/patches/49-reduce-doxygen-doc.dpatch
@@ -0,0 +1,1356 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 49-reduce-doxygen-doc.dpatch by Marek Brudka <mbrudka@aster.pl>
+##
+## DP: Enforce doxygen to generate smaller doxumentation
+
+@DPATCH@
+diff -Nru ACE_wrappers.orig/etc/ace.doxygen ACE_wrappers/etc/ace.doxygen
+--- ACE_wrappers.orig/etc/ace.doxygen 2010-08-27 08:55:58.000000000 +0200
++++ ACE_wrappers/etc/ace.doxygen 2010-12-22 12:30:24.662111324 +0100
+@@ -89,7 +89,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -162,11 +162,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+@@ -177,4 +179,4 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+diff -Nru ACE_wrappers.orig/etc/ace_inet.doxygen ACE_wrappers/etc/ace_inet.doxygen
+--- ACE_wrappers.orig/etc/ace_inet.doxygen 2010-08-26 15:03:59.000000000 +0200
++++ ACE_wrappers/etc/ace_inet.doxygen 2010-12-22 12:30:24.658111164 +0100
+@@ -79,7 +79,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/etc/ace_man.doxygen ACE_wrappers/etc/ace_man.doxygen
+--- ACE_wrappers.orig/etc/ace_man.doxygen 2010-07-15 14:53:52.000000000 +0200
++++ ACE_wrappers/etc/ace_man.doxygen 2010-12-22 12:30:24.646112292 +0100
+@@ -79,7 +79,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -153,7 +153,9 @@
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = NO
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+diff -Nru ACE_wrappers.orig/etc/ace_qos.doxygen ACE_wrappers/etc/ace_qos.doxygen
+--- ACE_wrappers.orig/etc/ace_qos.doxygen 2010-08-26 15:03:59.000000000 +0200
++++ ACE_wrappers/etc/ace_qos.doxygen 2010-12-22 12:30:24.666112600 +0100
+@@ -79,7 +79,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/etc/ace_rmcast.doxygen ACE_wrappers/etc/ace_rmcast.doxygen
+--- ACE_wrappers.orig/etc/ace_rmcast.doxygen 2010-08-26 15:03:59.000000000 +0200
++++ ACE_wrappers/etc/ace_rmcast.doxygen 2010-12-22 12:30:24.654111074 +0100
+@@ -79,7 +79,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/etc/ace_ssl.doxygen ACE_wrappers/etc/ace_ssl.doxygen
+--- ACE_wrappers.orig/etc/ace_ssl.doxygen 2010-08-26 15:03:59.000000000 +0200
++++ ACE_wrappers/etc/ace_ssl.doxygen 2010-12-22 12:30:24.658111164 +0100
+@@ -79,7 +79,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/etc/acexml.doxygen ACE_wrappers/etc/acexml.doxygen
+--- ACE_wrappers.orig/etc/acexml.doxygen 2010-08-27 08:55:58.000000000 +0200
++++ ACE_wrappers/etc/acexml.doxygen 2010-12-22 12:30:24.650111474 +0100
+@@ -79,7 +79,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/CIAO/etc/ciao_dds4ccm.doxygen ACE_wrappers/TAO/CIAO/etc/ciao_dds4ccm.doxygen
+--- ACE_wrappers.orig/TAO/CIAO/etc/ciao_dds4ccm.doxygen 2010-08-26 15:02:28.000000000 +0200
++++ ACE_wrappers/TAO/CIAO/etc/ciao_dds4ccm.doxygen 2010-12-22 12:30:24.642111085 +0100
+@@ -78,7 +78,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -156,11 +156,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -170,4 +172,4 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+diff -Nru ACE_wrappers.orig/TAO/CIAO/etc/ciao.doxygen ACE_wrappers/TAO/CIAO/etc/ciao.doxygen
+--- ACE_wrappers.orig/TAO/CIAO/etc/ciao.doxygen 2010-08-26 15:02:28.000000000 +0200
++++ ACE_wrappers/TAO/CIAO/etc/ciao.doxygen 2010-12-22 12:30:24.638112112 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -157,11 +157,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -171,5 +173,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/DAnCE/etc/DAnCE.doxygen ACE_wrappers/TAO/DAnCE/etc/DAnCE.doxygen
+--- ACE_wrappers.orig/TAO/DAnCE/etc/DAnCE.doxygen 2010-10-18 15:04:02.000000000 +0200
++++ ACE_wrappers/TAO/DAnCE/etc/DAnCE.doxygen 2010-12-22 12:30:20.295124601 +0100
+@@ -76,7 +76,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -157,11 +157,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -171,4 +173,4 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_anytypecode.doxygen ACE_wrappers/TAO/etc/tao_anytypecode.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_anytypecode.doxygen 2010-08-29 11:59:08.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_anytypecode.doxygen 2010-12-22 12:30:24.602110537 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_av.doxygen ACE_wrappers/TAO/etc/tao_av.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_av.doxygen 2010-08-27 13:53:52.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_av.doxygen 2010-12-22 12:30:24.582110786 +0100
+@@ -80,7 +80,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -154,11 +154,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -168,5 +170,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_compression.doxygen ACE_wrappers/TAO/etc/tao_compression.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_compression.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_compression.doxygen 2010-12-22 12:30:20.878131085 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_cosevent.doxygen ACE_wrappers/TAO/etc/tao_cosevent.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_cosevent.doxygen 2010-08-27 13:38:20.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_cosevent.doxygen 2010-12-22 12:30:24.598111145 +0100
+@@ -80,7 +80,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -155,11 +155,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -169,5 +171,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_cosnaming.doxygen ACE_wrappers/TAO/etc/tao_cosnaming.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_cosnaming.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_cosnaming.doxygen 2010-12-22 12:30:21.223110624 +0100
+@@ -78,7 +78,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -151,11 +151,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -165,5 +167,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_cosnotification.doxygen ACE_wrappers/TAO/etc/tao_cosnotification.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_cosnotification.doxygen 2010-08-27 08:56:43.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_cosnotification.doxygen 2010-12-22 12:30:24.618111943 +0100
+@@ -85,7 +85,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -161,11 +161,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -175,5 +177,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_costime.doxygen ACE_wrappers/TAO/etc/tao_costime.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_costime.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_costime.doxygen 2010-12-22 12:30:24.630111165 +0100
+@@ -78,7 +78,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -152,11 +152,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -166,5 +168,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_costrader.doxygen ACE_wrappers/TAO/etc/tao_costrader.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_costrader.doxygen 2010-08-27 08:56:43.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_costrader.doxygen 2010-12-22 12:30:24.610111414 +0100
+@@ -80,7 +80,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -154,11 +154,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -168,5 +170,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao.doxygen ACE_wrappers/TAO/etc/tao.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao.doxygen 2010-12-22 12:30:24.590120464 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -163,5 +165,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_dynamicany.doxygen ACE_wrappers/TAO/etc/tao_dynamicany.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_dynamicany.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_dynamicany.doxygen 2010-12-22 12:30:20.830123725 +0100
+@@ -78,7 +78,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_dynamicinterface.doxygen ACE_wrappers/TAO/etc/tao_dynamicinterface.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_dynamicinterface.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_dynamicinterface.doxygen 2010-12-22 12:30:24.634110975 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -163,5 +165,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_esf.doxygen ACE_wrappers/TAO/etc/tao_esf.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_esf.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_esf.doxygen 2010-12-22 12:30:21.518127442 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -151,11 +151,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -165,5 +167,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_ifr.doxygen ACE_wrappers/TAO/etc/tao_ifr.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_ifr.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_ifr.doxygen 2010-12-22 12:30:22.870128736 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -153,11 +153,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -167,5 +169,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_implrepo.doxygen ACE_wrappers/TAO/etc/tao_implrepo.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_implrepo.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_implrepo.doxygen 2010-12-22 12:30:24.618111943 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -152,11 +152,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -166,5 +168,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_iormanip.doxygen ACE_wrappers/TAO/etc/tao_iormanip.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_iormanip.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_iormanip.doxygen 2010-12-22 12:30:21.158130577 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_iortable.doxygen ACE_wrappers/TAO/etc/tao_iortable.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_iortable.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_iortable.doxygen 2010-12-22 12:30:24.606110976 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_pi.doxygen ACE_wrappers/TAO/etc/tao_pi.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_pi.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_pi.doxygen 2010-12-22 12:30:22.062125221 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_pi_server.doxygen ACE_wrappers/TAO/etc/tao_pi_server.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_pi_server.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_pi_server.doxygen 2010-12-22 12:30:21.526111070 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_portablegroup.doxygen ACE_wrappers/TAO/etc/tao_portablegroup.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_portablegroup.doxygen 2010-08-27 08:56:43.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_portablegroup.doxygen 2010-12-22 12:30:21.034131295 +0100
+@@ -80,7 +80,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -154,11 +154,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -168,5 +170,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_portableserver.doxygen ACE_wrappers/TAO/etc/tao_portableserver.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_portableserver.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_portableserver.doxygen 2010-12-22 12:30:21.634129344 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_rtcorba.doxygen ACE_wrappers/TAO/etc/tao_rtcorba.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_rtcorba.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_rtcorba.doxygen 2010-12-22 12:30:20.890112008 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_rtevent.doxygen ACE_wrappers/TAO/etc/tao_rtevent.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_rtevent.doxygen 2010-08-27 08:56:43.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_rtevent.doxygen 2010-12-22 12:30:24.598111145 +0100
+@@ -86,7 +86,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -161,11 +161,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -175,5 +177,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_rtportableserver.doxygen ACE_wrappers/TAO/etc/tao_rtportableserver.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_rtportableserver.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_rtportableserver.doxygen 2010-12-22 12:30:22.962130865 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -150,11 +150,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -164,5 +166,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_security.doxygen ACE_wrappers/TAO/etc/tao_security.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_security.doxygen 2010-08-27 08:56:43.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_security.doxygen 2010-12-22 12:30:24.594110497 +0100
+@@ -82,7 +82,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -156,11 +156,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -170,5 +172,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_smartproxies.doxygen ACE_wrappers/TAO/etc/tao_smartproxies.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_smartproxies.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_smartproxies.doxygen 2010-12-22 12:30:24.586111085 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -163,5 +165,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_ssliop.doxygen ACE_wrappers/TAO/etc/tao_ssliop.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_ssliop.doxygen 2010-08-27 08:56:43.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_ssliop.doxygen 2010-12-22 12:30:24.622110636 +0100
+@@ -82,7 +82,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -157,11 +157,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -171,5 +173,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_strategies.doxygen ACE_wrappers/TAO/etc/tao_strategies.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_strategies.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_strategies.doxygen 2010-12-22 12:30:24.634110975 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -149,11 +149,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -163,5 +165,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_transportcurrent.doxygen ACE_wrappers/TAO/etc/tao_transportcurrent.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_transportcurrent.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_transportcurrent.doxygen 2010-12-22 12:30:24.614111155 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -151,11 +151,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -165,5 +167,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
+diff -Nru ACE_wrappers.orig/TAO/etc/tao_ziop.doxygen ACE_wrappers/TAO/etc/tao_ziop.doxygen
+--- ACE_wrappers.orig/TAO/etc/tao_ziop.doxygen 2010-08-26 15:03:34.000000000 +0200
++++ ACE_wrappers/TAO/etc/tao_ziop.doxygen 2010-12-22 12:30:24.626110796 +0100
+@@ -77,7 +77,7 @@
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+-GENERATE_HTMLHELP = YES
++GENERATE_HTMLHELP = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+@@ -151,11 +151,13 @@
+
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+-COLLABORATION_GRAPH = YES
++COLLABORATION_GRAPH = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+-DOT_MULTI_TARGETS = YES
++DOT_MULTI_TARGETS = YES
++DOT_GRAPH_MAX_NODES = 15
++DOT_IMAGE_FORMAT = png
+ MAX_DOT_GRAPH_DEPTH = 3
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
+ # found. If left blank, it is assumed the dot tool can be found on the path.
+@@ -165,5 +167,5 @@
+ # Configuration::additions related to the search engine
+ #---------------------------------------------------------------------------
+
+-SEARCHENGINE = YES
++SEARCHENGINE = NO
+
diff --git a/ACE/debianbuild/patches/50-prepatch-dummy-mark.dpatch b/ACE/debian/patches/50-prepatch-dummy-mark.dpatch
index 758f5225979..758f5225979 100644
--- a/ACE/debianbuild/patches/50-prepatch-dummy-mark.dpatch
+++ b/ACE/debian/patches/50-prepatch-dummy-mark.dpatch
diff --git a/ACE/debian/patches/75-post-build-dummy-mark.dpatch b/ACE/debian/patches/75-post-build-dummy-mark.dpatch
new file mode 100755
index 00000000000..5631d2ab1c8
--- /dev/null
+++ b/ACE/debian/patches/75-post-build-dummy-mark.dpatch
@@ -0,0 +1,8 @@
+#! /bin/sh -e
+## 75-post-build-mark-dummy.dpatch by Raphael Bossek <bossekr@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: This files does nothing then be a mark for the `autotools'
+## DP: debian/rules's target.
+
+exit 0
diff --git a/ACE/debian/patches/90-patch-mpc-basedir.dpatch b/ACE/debian/patches/90-patch-mpc-basedir.dpatch
new file mode 100644
index 00000000000..bfa2f0dee23
--- /dev/null
+++ b/ACE/debian/patches/90-patch-mpc-basedir.dpatch
@@ -0,0 +1,42 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 90-patch-mpc-basedir.dpatch by <pgquiles@elpauer.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Set MPC base dir directly, no need to fix the tests performed by ACE
+## DP: because there is no Debian/VMS (yet :-)
+
+@DPATCH@
+--- ACE_wrappers.orig/bin/mpc.pl 2010-03-08 16:38:06.000000000 +0100
++++ ACE_wrappers/bin/mpc.pl 2010-12-22 15:04:58.478119377 +0100
+@@ -20,13 +20,7 @@
+ use File::Spec;
+ use File::Basename;
+
+-my($basePath) = (defined $FindBin::RealBin ? $FindBin::RealBin :
+- File::Spec->rel2abs(dirname($0)));
+-if ($^O eq 'VMS') {
+- $basePath = File::Spec->rel2abs(dirname($0)) if ($basePath eq '');
+- $basePath = VMS::Filespec::unixify($basePath);
+-}
+-$basePath .= '/MakeProjectCreator';
++my($basePath) = '/usr/lib/ace/bin/MakeProjectCreator';
+
+ my($mpcroot) = $ENV{MPC_ROOT};
+ my($mpcpath) = (defined $mpcroot ? $mpcroot :
+--- ACE_wrappers.orig/bin/mwc.pl 2010-03-08 16:38:06.000000000 +0100
++++ ACE_wrappers/bin/mwc.pl 2010-12-22 15:05:34.150111643 +0100
+@@ -20,13 +20,7 @@
+ use File::Spec;
+ use File::Basename;
+
+-my($basePath) = (defined $FindBin::RealBin ? $FindBin::RealBin :
+- File::Spec->rel2abs(dirname($0)));
+-if ($^O eq 'VMS') {
+- $basePath = File::Spec->rel2abs(dirname($0)) if ($basePath eq '');
+- $basePath = VMS::Filespec::unixify($basePath);
+-}
+-$basePath .= '/MakeProjectCreator';
++my($basePath) = '/usr/lib/ace/bin/MakeProjectCreator';
+
+ my($mpcroot) = $ENV{MPC_ROOT};
+ my($mpcpath) = (defined $mpcroot ? $mpcroot :
diff --git a/ACE/debian/patches/91-patch-dg-basedir.dpatch b/ACE/debian/patches/91-patch-dg-basedir.dpatch
new file mode 100644
index 00000000000..1da7dc963c6
--- /dev/null
+++ b/ACE/debian/patches/91-patch-dg-basedir.dpatch
@@ -0,0 +1,24 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 91-patch-dg-basedir.dpatch by Thomas Girard <thomas.g.girard@free.fr>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix path to DependencyGenerator.
+
+@DPATCH@
+--- ACE_wrappers.orig/bin/depgen.pl 2008-12-09 05:42:49.000000000 +0100
++++ ACE_wrappers/bin/depgen.pl 2010-12-22 15:15:11.046305586 +0100
+@@ -19,12 +19,8 @@
+ use File::Spec;
+ use File::Basename;
+
+-my($basePath) = $FindBin::RealBin;
+-if ($^O eq 'VMS') {
+- $basePath = File::Spec->rel2abs(dirname($0)) if ($basePath eq '');
+- $basePath = VMS::Filespec::unixify($basePath);
+-}
+-unshift(@INC, $basePath . '/DependencyGenerator');
++my($basePath) = '/usr/lib/ace/bin/DependencyGenerator';
++unshift(@INC, $basePath);
+
+ my($mpcroot) = $ENV{MPC_ROOT};
+ my($mpcpath) = (defined $mpcroot ? $mpcroot :
diff --git a/ACE/debian/patches/92-default-ACE_ROOT.dpatch b/ACE/debian/patches/92-default-ACE_ROOT.dpatch
new file mode 100644
index 00000000000..4da617a9b09
--- /dev/null
+++ b/ACE/debian/patches/92-default-ACE_ROOT.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 92-default-ACE_ROOT.dpatch by Thomas Girard <thomas.g.girard@free.fr>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Automatically set ACE_ROOT to /usr/share/ace in MPC generated
+## DP: GNUmakefile if no ACE_ROOT is set.
+
+@DPATCH@
+--- ACE_wrappers.orig/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
++++ ACE_wrappers/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
+@@ -89,6 +89,9 @@
+ "ifeq (\$(findstring k,\$(MAKEFLAGS)),k)$crlf",
+ " KEEP_GOING = -$crlf",
+ "endif$crlf$crlf",
++ "ifndef ACE_ROOT$crlf",
++ " export ACE_ROOT = /usr/lib/ace$crlf",
++ "endif$crlf",
+ "include \$(ACE_ROOT)/include/makeinclude/macros.GNU$crlf";
+
+ if ($named) {
diff --git a/ACE/debian/platform_macros.GNU b/ACE/debian/platform_macros.GNU
new file mode 100644
index 00000000000..76b032671f5
--- /dev/null
+++ b/ACE/debian/platform_macros.GNU
@@ -0,0 +1,29 @@
+# $Id$
+
+debug = 0
+optimize = 1
+inline = 1
+
+ssl = 1
+
+xt = 1
+tk = 1
+fl = 1
+fox = 1
+qt4 = 1
+ace_qt4reactor = 1
+
+bzip2 = 1
+lzo1 = 1
+zlib = 1
+
+# Work-around #593225
+ARMEL_TARGET := $(shell echo '__ARMEL__' | $(CC) -E - | tail -n 1)
+ifeq ($(ARMEL_TARGET),1)
+ no_hidden_visibility = 1
+endif
+
+include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
+
+PLATFORM_FOX_CPPFLAGS=-I/usr/include/fox-1.6
+PLATFORM_FOX_LIBS=-lFOX-1.6
diff --git a/ACE/debianbuild/platform_macros.GNU.in b/ACE/debian/platform_macros.GNU.in
index 4ab8f0aac88..4ab8f0aac88 100644
--- a/ACE/debianbuild/platform_macros.GNU.in
+++ b/ACE/debian/platform_macros.GNU.in
diff --git a/ACE/debianbuild/tao-concurrency.docs b/ACE/debian/tao-concurrency.docs
index 27759070d95..27759070d95 100644
--- a/ACE/debianbuild/tao-concurrency.docs
+++ b/ACE/debian/tao-concurrency.docs
diff --git a/ACE/debian/tao-concurrency.install b/ACE/debian/tao-concurrency.install
new file mode 100644
index 00000000000..57e3ade667c
--- /dev/null
+++ b/ACE/debian/tao-concurrency.install
@@ -0,0 +1 @@
+usr/bin/tao_cosconcurrency
diff --git a/ACE/debian/tao-cosconcurrency.docs b/ACE/debian/tao-cosconcurrency.docs
new file mode 100644
index 00000000000..27759070d95
--- /dev/null
+++ b/ACE/debian/tao-cosconcurrency.docs
@@ -0,0 +1 @@
+ACE_wrappers/TAO/orbsvcs/Concurrency_Service/README
diff --git a/ACE/debian/tao-cosconcurrency.install b/ACE/debian/tao-cosconcurrency.install
new file mode 100644
index 00000000000..57e3ade667c
--- /dev/null
+++ b/ACE/debian/tao-cosconcurrency.install
@@ -0,0 +1 @@
+usr/bin/tao_cosconcurrency
diff --git a/ACE/debianbuild/tao-event.docs b/ACE/debian/tao-cosevent.docs
index 323dd9c38cc..323dd9c38cc 100644
--- a/ACE/debianbuild/tao-event.docs
+++ b/ACE/debian/tao-cosevent.docs
diff --git a/ACE/debian/tao-cosevent.install b/ACE/debian/tao-cosevent.install
new file mode 100644
index 00000000000..59fda859a86
--- /dev/null
+++ b/ACE/debian/tao-cosevent.install
@@ -0,0 +1 @@
+usr/bin/tao_cosevent
diff --git a/ACE/debian/tao-coslifecycle.install b/ACE/debian/tao-coslifecycle.install
new file mode 100644
index 00000000000..43a7c3c1fac
--- /dev/null
+++ b/ACE/debian/tao-coslifecycle.install
@@ -0,0 +1 @@
+usr/bin/tao_coslifecycle
diff --git a/ACE/debianbuild/tao-naming.docs b/ACE/debian/tao-cosnaming.docs
index 1f38248a647..1f38248a647 100644
--- a/ACE/debianbuild/tao-naming.docs
+++ b/ACE/debian/tao-cosnaming.docs
diff --git a/ACE/debian/tao-cosnaming.install b/ACE/debian/tao-cosnaming.install
new file mode 100644
index 00000000000..926ddbde817
--- /dev/null
+++ b/ACE/debian/tao-cosnaming.install
@@ -0,0 +1 @@
+usr/bin/tao_cosnaming
diff --git a/ACE/debianbuild/tao-notify.docs b/ACE/debian/tao-cosnotification.docs
index 08af3d3f8fe..08af3d3f8fe 100644
--- a/ACE/debianbuild/tao-notify.docs
+++ b/ACE/debian/tao-cosnotification.docs
diff --git a/ACE/debian/tao-cosnotification.install b/ACE/debian/tao-cosnotification.install
new file mode 100644
index 00000000000..28b3d8d4e42
--- /dev/null
+++ b/ACE/debian/tao-cosnotification.install
@@ -0,0 +1 @@
+usr/bin/tao_cosnotification
diff --git a/ACE/debianbuild/tao-time.docs b/ACE/debian/tao-costime.docs
index d474eb065e6..d474eb065e6 100644
--- a/ACE/debianbuild/tao-time.docs
+++ b/ACE/debian/tao-costime.docs
diff --git a/ACE/debian/tao-costime.install b/ACE/debian/tao-costime.install
new file mode 100644
index 00000000000..8a71e3adcc2
--- /dev/null
+++ b/ACE/debian/tao-costime.install
@@ -0,0 +1,2 @@
+usr/bin/tao_costime_clerk
+usr/bin/tao_costime_server
diff --git a/ACE/debianbuild/tao-trading.docs b/ACE/debian/tao-costrading.docs
index 5c5869da934..5c5869da934 100644
--- a/ACE/debianbuild/tao-trading.docs
+++ b/ACE/debian/tao-costrading.docs
diff --git a/ACE/debian/tao-costrading.install b/ACE/debian/tao-costrading.install
new file mode 100644
index 00000000000..426ce60ffec
--- /dev/null
+++ b/ACE/debian/tao-costrading.install
@@ -0,0 +1 @@
+usr/bin/tao_costrading
diff --git a/ACE/debian/tao-event.docs b/ACE/debian/tao-event.docs
new file mode 100644
index 00000000000..323dd9c38cc
--- /dev/null
+++ b/ACE/debian/tao-event.docs
@@ -0,0 +1 @@
+ACE_wrappers/TAO/orbsvcs/CosEvent_Service/README
diff --git a/ACE/debian/tao-event.install b/ACE/debian/tao-event.install
new file mode 100644
index 00000000000..59fda859a86
--- /dev/null
+++ b/ACE/debian/tao-event.install
@@ -0,0 +1 @@
+usr/bin/tao_cosevent
diff --git a/ACE/debianbuild/tao-ft.docs b/ACE/debian/tao-ft.docs
index 2ba85e3736d..2ba85e3736d 100644
--- a/ACE/debianbuild/tao-ft.docs
+++ b/ACE/debian/tao-ft.docs
diff --git a/ACE/debian/tao-ft.install b/ACE/debian/tao-ft.install
new file mode 100644
index 00000000000..3366ca08047
--- /dev/null
+++ b/ACE/debian/tao-ft.install
@@ -0,0 +1,3 @@
+usr/bin/tao_fault_detector
+usr/bin/tao_fault_notifier
+usr/bin/tao_ft_replicationmanager
diff --git a/ACE/debianbuild/tao-ftrtevent.install b/ACE/debian/tao-ftrtevent.install
index df412324715..df412324715 100644
--- a/ACE/debianbuild/tao-ftrtevent.install
+++ b/ACE/debian/tao-ftrtevent.install
diff --git a/ACE/debian/tao-idl.install b/ACE/debian/tao-idl.install
new file mode 100644
index 00000000000..c3e25072f85
--- /dev/null
+++ b/ACE/debian/tao-idl.install
@@ -0,0 +1,2 @@
+usr/bin/tao_idl
+usr/lib/ace/TAO/tao_idl
diff --git a/ACE/debianbuild/tao-idl.links b/ACE/debian/tao-idl.links
index a331370709b..a331370709b 100644
--- a/ACE/debianbuild/tao-idl.links
+++ b/ACE/debian/tao-idl.links
diff --git a/ACE/debianbuild/tao-idl.manpages b/ACE/debian/tao-idl.manpages
index bbaa6e3fb67..bbaa6e3fb67 100644
--- a/ACE/debianbuild/tao-idl.manpages
+++ b/ACE/debian/tao-idl.manpages
diff --git a/ACE/debianbuild/tao-ifr.docs b/ACE/debian/tao-ifr.docs
index 4b680d8f663..4b680d8f663 100644
--- a/ACE/debianbuild/tao-ifr.docs
+++ b/ACE/debian/tao-ifr.docs
diff --git a/ACE/debian/tao-ifr.install b/ACE/debian/tao-ifr.install
new file mode 100644
index 00000000000..4cc7f00779a
--- /dev/null
+++ b/ACE/debian/tao-ifr.install
@@ -0,0 +1,3 @@
+usr/bin/tao_ifr_service
+usr/bin/tao_ifr
+usr/lib/ace/TAO/tao_ifr
diff --git a/ACE/debianbuild/tao-imr.docs b/ACE/debian/tao-imr.docs
index 015d20b03f7..015d20b03f7 100644
--- a/ACE/debianbuild/tao-imr.docs
+++ b/ACE/debian/tao-imr.docs
diff --git a/ACE/debian/tao-imr.install b/ACE/debian/tao-imr.install
new file mode 100644
index 00000000000..1e71a7240e6
--- /dev/null
+++ b/ACE/debian/tao-imr.install
@@ -0,0 +1,3 @@
+usr/bin/tao_imr_locator
+usr/bin/tao_imr_activator
+usr/bin/tao_imr
diff --git a/ACE/debian/tao-lifecycle.install b/ACE/debian/tao-lifecycle.install
new file mode 100644
index 00000000000..43a7c3c1fac
--- /dev/null
+++ b/ACE/debian/tao-lifecycle.install
@@ -0,0 +1 @@
+usr/bin/tao_coslifecycle
diff --git a/ACE/debianbuild/tao-load.docs b/ACE/debian/tao-load.docs
index d9c83468cb0..d9c83468cb0 100644
--- a/ACE/debianbuild/tao-load.docs
+++ b/ACE/debian/tao-load.docs
diff --git a/ACE/debian/tao-load.install b/ACE/debian/tao-load.install
new file mode 100644
index 00000000000..3d305a1b84a
--- /dev/null
+++ b/ACE/debian/tao-load.install
@@ -0,0 +1,2 @@
+usr/bin/tao_loadmanager
+usr/bin/tao_loadmonitor
diff --git a/ACE/debianbuild/tao-log.docs b/ACE/debian/tao-log.docs
index 8a75e5909f2..8a75e5909f2 100644
--- a/ACE/debianbuild/tao-log.docs
+++ b/ACE/debian/tao-log.docs
diff --git a/ACE/debian/tao-log.install b/ACE/debian/tao-log.install
new file mode 100644
index 00000000000..227add0d8c5
--- /dev/null
+++ b/ACE/debian/tao-log.install
@@ -0,0 +1,4 @@
+usr/bin/tao_tls_basic
+usr/bin/tao_tls_event
+usr/bin/tao_tls_notify
+usr/bin/RTtao_tls_event
diff --git a/ACE/debianbuild/tao-log.manpages b/ACE/debian/tao-log.manpages
index b94e70dc2db..b94e70dc2db 100644
--- a/ACE/debianbuild/tao-log.manpages
+++ b/ACE/debian/tao-log.manpages
diff --git a/ACE/debian/tao-naming.docs b/ACE/debian/tao-naming.docs
new file mode 100644
index 00000000000..1f38248a647
--- /dev/null
+++ b/ACE/debian/tao-naming.docs
@@ -0,0 +1 @@
+ACE_wrappers/TAO/orbsvcs/Naming_Service/README
diff --git a/ACE/debian/tao-naming.install b/ACE/debian/tao-naming.install
new file mode 100644
index 00000000000..926ddbde817
--- /dev/null
+++ b/ACE/debian/tao-naming.install
@@ -0,0 +1 @@
+usr/bin/tao_cosnaming
diff --git a/ACE/debian/tao-notify.docs b/ACE/debian/tao-notify.docs
new file mode 100644
index 00000000000..08af3d3f8fe
--- /dev/null
+++ b/ACE/debian/tao-notify.docs
@@ -0,0 +1 @@
+ACE_wrappers/TAO/orbsvcs/Notify_Service/README
diff --git a/ACE/debian/tao-notify.install b/ACE/debian/tao-notify.install
new file mode 100644
index 00000000000..28b3d8d4e42
--- /dev/null
+++ b/ACE/debian/tao-notify.install
@@ -0,0 +1 @@
+usr/bin/tao_cosnotification
diff --git a/ACE/debian/tao-rtevent.install b/ACE/debian/tao-rtevent.install
new file mode 100644
index 00000000000..f40d9ea4ded
--- /dev/null
+++ b/ACE/debian/tao-rtevent.install
@@ -0,0 +1 @@
+usr/bin/tao_rtevent
diff --git a/ACE/debian/tao-scheduling.install b/ACE/debian/tao-scheduling.install
new file mode 100644
index 00000000000..54a247067dc
--- /dev/null
+++ b/ACE/debian/tao-scheduling.install
@@ -0,0 +1,2 @@
+usr/bin/tao_cosscheduling
+usr/bin/tao_dump_schedule
diff --git a/ACE/debian/tao-time.docs b/ACE/debian/tao-time.docs
new file mode 100644
index 00000000000..d474eb065e6
--- /dev/null
+++ b/ACE/debian/tao-time.docs
@@ -0,0 +1 @@
+ACE_wrappers/TAO/orbsvcs/Time_Service/README
diff --git a/ACE/debian/tao-time.install b/ACE/debian/tao-time.install
new file mode 100644
index 00000000000..91c8dc09c8b
--- /dev/null
+++ b/ACE/debian/tao-time.install
@@ -0,0 +1,2 @@
+usr/bin/tao_costime_server
+usr/bin/tao_costime_clerk
diff --git a/ACE/debian/tao-tls.docs b/ACE/debian/tao-tls.docs
new file mode 100644
index 00000000000..8a75e5909f2
--- /dev/null
+++ b/ACE/debian/tao-tls.docs
@@ -0,0 +1 @@
+ACE_wrappers/TAO/orbsvcs/Logging_Service/README
diff --git a/ACE/debian/tao-tls.install b/ACE/debian/tao-tls.install
new file mode 100644
index 00000000000..e49c3ec45b4
--- /dev/null
+++ b/ACE/debian/tao-tls.install
@@ -0,0 +1,4 @@
+usr/bin/tao_tls_basic
+usr/bin/tao_tls_event
+usr/bin/tao_tls_notify
+usr/bin/tao_tls_rtevent
diff --git a/ACE/debian/tao-tls.manpages b/ACE/debian/tao-tls.manpages
new file mode 100644
index 00000000000..5e5ad07e5c9
--- /dev/null
+++ b/ACE/debian/tao-tls.manpages
@@ -0,0 +1,4 @@
+debian/tao_tls_basic.1
+debian/tao_tls_event.1
+debian/tao_tls_notify.1
+debian/tao_tls_rtevent.1
diff --git a/ACE/debian/tao-trading.docs b/ACE/debian/tao-trading.docs
new file mode 100644
index 00000000000..5c5869da934
--- /dev/null
+++ b/ACE/debian/tao-trading.docs
@@ -0,0 +1 @@
+ACE_wrappers/TAO/orbsvcs/Trading_Service/README
diff --git a/ACE/debian/tao-trading.install b/ACE/debian/tao-trading.install
new file mode 100644
index 00000000000..426ce60ffec
--- /dev/null
+++ b/ACE/debian/tao-trading.install
@@ -0,0 +1 @@
+usr/bin/tao_costrading
diff --git a/ACE/debian/tao-utils.docs b/ACE/debian/tao-utils.docs
new file mode 100644
index 00000000000..31c595c6150
--- /dev/null
+++ b/ACE/debian/tao-utils.docs
@@ -0,0 +1,4 @@
+ACE_wrappers/TAO/utils/nslist/README.nslist
+ACE_wrappers/TAO/utils/catior/README.catior
+ACE_wrappers/TAO/utils/catior/test
+
diff --git a/ACE/debian/tao-utils.install b/ACE/debian/tao-utils.install
new file mode 100644
index 00000000000..bb19843035e
--- /dev/null
+++ b/ACE/debian/tao-utils.install
@@ -0,0 +1,2 @@
+usr/bin/tao_ns{add,del,list}
+usr/bin/tao_catior
diff --git a/ACE/debian/tao-utils.manpages b/ACE/debian/tao-utils.manpages
new file mode 100644
index 00000000000..f6c7976d1bd
--- /dev/null
+++ b/ACE/debian/tao-utils.manpages
@@ -0,0 +1,4 @@
+debian/tao_catior.1
+debian/tao_nslist.1
+debian/tao_nsadd.1
+debian/tao_nsdel.1
diff --git a/ACE/debian/tao_catior.sgml b/ACE/debian/tao_catior.sgml
new file mode 100644
index 00000000000..9756edbea32
--- /dev/null
+++ b/ACE/debian/tao_catior.sgml
@@ -0,0 +1,99 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "tao_catior">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosnaming "<citerefentry><refentrytitle>tao_cosnaming</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY tao_cosnaming "<application>tao_cosnaming</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_tao_cosnaming;">
+]>
+<!-- This file was written by Marek Brudka <mbrudka@aster.pl> -->
+<!-- on September 2010 for the Debian GNU/Linux operating system. -->
+<!-- It is mainly a plain text to DocBook conversion of the USAGE file. -->
+
+<refentry>
+ <refmeta>
+ <refentrytitle>TAO_CatIOR</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>Stringified IOR decoder and viewer.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ <arg>-f <replaceable>file</replaceable></arg>
+ <arg>-n <replaceable>name</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; takes in a <filename>file</filename> which contains the IOR and will then output the
+encoded information to stdout.
+ </para>
+ <para>
+ Details of stringified IOR are described for example in page 33 of
+ <ulink
+ url="http://www.omg.org/spec/CORBA/3.1/Interoperability/PDF">OMG CORBA specification, Part 2: Interoperability, v3.1.</ulink>.
+ </para>
+ <para>
+ Examples of IOR can be found in <filename>/usr/share/doc/tao-utils/</filename> directory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>-ORBoptions</parameter></term>
+ <listitem>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-f</parameter> <replaceable>filename</replaceable></term>
+ <listitem>
+ <para>
+ Takes in a <filename>file</filename> which contains the IOR and will then output the
+ encoded information to stdout.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>-n</parameter> <replaceable>named</replaceable></term>
+ <listitem>
+ <para>
+ Displays decoded IOR of the <replaceable>named</replaceable> object registered at NamingService.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>EXAMPLES</title>
+ <variablelist>
+ <varlistentry>
+ <term>&applname; -f <filename>/usr/share/doc/tao-utils/test/test1.ior</filename></term>
+ <listitem>
+ <para>
+ Displays decoded IOR from <filename>/usr/share/doc/tao-utils/test/test1.ior</filename>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>Jeff Hopper<email>&lt;jrhopper@cts.com&gt;</email> </para>
+ <para>Jason Cohen<email>&lt;jcohen@atl.lmco.com&gt;</email> </para>
+ </refsect1>
+
+</refentry>
diff --git a/ACE/debian/tao_idl b/ACE/debian/tao_idl
new file mode 100644
index 00000000000..fc0e9aef074
--- /dev/null
+++ b/ACE/debian/tao_idl
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+ACE_ROOT=/usr/lib/ace; export ACE_ROOT;
+TAO_ROOT=$ACE_ROOT/TAO; export TAO_ROOT;
+
+exec $TAO_ROOT/tao_idl "$@"
diff --git a/ACE/debian/tao_ifr b/ACE/debian/tao_ifr
new file mode 100644
index 00000000000..b5b7e93cdba
--- /dev/null
+++ b/ACE/debian/tao_ifr
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+ACE_ROOT=/usr/lib/ace; export ACE_ROOT;
+TAO_ROOT=$ACE_ROOT/TAO; export TAO_ROOT;
+
+exec $TAO_ROOT/tao_ifr "$@"
diff --git a/ACE/debian/tao_nsadd.sgml b/ACE/debian/tao_nsadd.sgml
new file mode 100644
index 00000000000..565c0f06f29
--- /dev/null
+++ b/ACE/debian/tao_nsadd.sgml
@@ -0,0 +1,145 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "tao_nsadd">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosnaming "<citerefentry><refentrytitle>tao_cosnaming</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_nslist "<citerefentry><refentrytitle>tao_nslist</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_nsdel "<citerefentry><refentrytitle>tao_nsdel</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY tao_cosnaming "<application>tao_cosnaming</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_tao_cosnaming;, &man_tao_nslist;, &man_tao_nsdel;">
+]>
+<!-- This file was written by Marek Brudka <mbrudka@aster.pl> -->
+<!-- on September 2010 for the Debian GNU/Linux operating system. -->
+<!-- It is mainly a plain text to DocBook conversion of the USAGE file. -->
+
+<refentry>
+ <refmeta>
+ <refentrytitle>TAO_NSADD</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>Naming Service add utility.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ <arg rep="repeat"><replaceable>OPTION</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; adds or replaces new entry to the NamingService.
+ </para>
+ <para>
+ &applname; requires a running NamingService.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>-ORBoptions</parameter></term>
+ <listitem>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--ns</parameter> <replaceable>IOR</replaceable> </term>
+ <listitem>
+ <para>
+ Use NamingService <replaceable>IOR</replaceable> instead of default.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--name</parameter> <replaceable>name</replaceable> </term>
+ <listitem>
+ <para>
+ Register <replaceable>name</replaceable> in NamingService.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--ior</parameter><replaceable>IOR</replaceable></term>
+ <listitem>
+ <para>
+ <replaceable>IOR</replaceable> of the object to be registered.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--newcontext</parameter></term>
+ <term><parameter>--ctx</parameter></term>
+ <listitem>
+ <para>
+ If --ctx is NOT given; binds a final object.
+ </para>
+ <para>
+ If both --ior and --ctx are specified; binds the existing\n" "naming context specified.
+ </para>
+ <para>
+ If --ctx is given without --ior; binds a new naming context.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--rebind</parameter></term>
+ <listitem>
+ <para>
+ Replace the existing bindings of the same type (object or context).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--quiet</parameter></term>
+ <listitem>
+ <para>
+ Do not display all ID/Kinds found/created.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>--ctxsep</parameter> <replaceable>character</replaceable></term>
+ <listitem>
+ <para>
+ Set context separation <replaceable>character</replaceable>, defaults to "/".
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term><parameter>--kindsep</parameter> <replaceable>character</replaceable></term>
+ <listitem>
+ <para>
+ Set ID/Kind separation <replaceable>character</replaceable>, defaults to ".".
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>Simon Massey <email>&lt;sma@prismtech.com&gt;</email> </para>
+ <para>Carlos O'Ryan <email>&lt;coryan@uci.edu&gt;</email> </para>
+ <para>Paul Caffrey <email>&lt;denginere@hotmail.com&gt;</email> </para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/tao_nsdel.sgml b/ACE/debian/tao_nsdel.sgml
new file mode 100644
index 00000000000..08c90207574
--- /dev/null
+++ b/ACE/debian/tao_nsdel.sgml
@@ -0,0 +1,120 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "tao_nsdel">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosnaming "<citerefentry><refentrytitle>tao_cosnaming</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_nslist "<citerefentry><refentrytitle>tao_nslist</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_nsadd "<citerefentry><refentrytitle>tao_nsadd</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY tao_cosnaming "<application>tao_cosnaming</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_tao_cosnaming;, &man_tao_nslist;, &man_tao_nsadd;">
+]>
+<!-- This file was written by Marek Brudka <mbrudka@aster.pl> -->
+<!-- on September 2010 for the Debian GNU/Linux operating system. -->
+<!-- It is mainly a plain text to DocBook conversion of the USAGE file. -->
+
+<refentry>
+ <refmeta>
+ <refentrytitle>TAO_NSDEL</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>Naming Service delete utility.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ <arg rep="repeat"><replaceable>OPTION</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; deletes an entry from the NamingService.
+ </para>
+ <para>
+ &applname; requires a running NamingService.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>-ORBoptions</parameter></term>
+ <listitem>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--ns</parameter> <replaceable>IOR</replaceable> </term>
+ <listitem>
+ <para>
+ Use NamingService <replaceable>IOR</replaceable> instead of default.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--name</parameter> <replaceable>name</replaceable> </term>
+ <listitem>
+ <para>
+ Delete the entry with <replaceable>name</replaceable> in NamingService.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--destroy</parameter></term>
+ <listitem>
+ <para>
+ Destroy a naming context before unbinding, otherwise orphan it.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--quiet</parameter></term>
+ <listitem>
+ <para>
+ Do not display all ID/Kinds found/deleted.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--ctxsep</parameter> <replaceable>character</replaceable></term>
+ <listitem>
+ <para>
+ Set context separation <replaceable>character</replaceable>, defaults to "/".
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--kindsep</parameter> <replaceable>character</replaceable></term>
+ <listitem>
+ <para>
+ Set ID/Kind separation <replaceable>character</replaceable>, defaults to ".".
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--rtt</parameter> <replaceable>seconds</replaceable></term>
+ <listitem>
+ <para>
+ Set the relative round trip timeout policy to <replaceable>seconds</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>Carlos O'Ryan <email>&lt;coryan@uci.edu&gt;</email> </para>
+ <para>Paul Caffrey <email>&lt;denginere@hotmail.com&gt;</email> </para>
+ <para>Simon Massey <email>&lt;sma@prismtech.com&gt;</email> </para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/tao_nslist.sgml b/ACE/debian/tao_nslist.sgml
new file mode 100644
index 00000000000..83790968b39
--- /dev/null
+++ b/ACE/debian/tao_nslist.sgml
@@ -0,0 +1,165 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "tao_nslist">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosnaming "<citerefentry><refentrytitle>tao_cosnaming</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY tao_cosnaming "<application>tao_cosnaming</application>">
+ <!ENTITY man_tao_nsdel "<citerefentry><refentrytitle>tao_nsdel</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_nsadd "<citerefentry><refentrytitle>tao_nsadd</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_tao_cosnaming;, &man_tao_nsadd;, &man_tao_nsdel;">
+]>
+<!-- This file was written by Marek Brudka <mbrudka@aster.pl> -->
+<!-- on September 2010 for the Debian GNU/Linux operating system. -->
+<!-- It is mainly a plain text to DocBook conversion of the USAGE file. -->
+
+<refentry>
+ <refmeta>
+ <refentrytitle>TAO_NSLIST</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>Naming Service listing utility.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ <arg rep="repeat"><replaceable>OPTION</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; lists the current entries in the NamingService; in a nicely formatted manner.
+ </para>
+ <para>
+ When invoked without arguments &applname; displays the contents of the default NamingService,
+ including the protocol and endpoint of each object reference.
+ </para>
+ <para>
+ &applname; requires a running NamingService.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>-ORBoptions</parameter></term>
+ <listitem>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--nsior</parameter></term>
+ <listitem>
+ <para>
+ Display the naming service IOR and exit. This can be used to locate the TAO NameService for non-TAO applications and excludes using any other options.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--ns</parameter> <replaceable>IOR</replaceable> </term>
+ <listitem>
+ <para>
+ Use given <replaceable>IOR</replaceable> for NamingService.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--ior</parameter></term>
+ <listitem>
+ <para>
+ Print the contents of the NamingService, including the IOR of each
+ reference entry and the IOR of the NameService itself.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--ctxior</parameter></term>
+ <listitem>
+ <para>
+ Print additionally the IORs of any subcontexts found within NamingService.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--tree</parameter> <replaceable>character</replaceable></term>
+ <listitem>
+ <para>
+ Print tree of object registered in NamingService using <replaceable>character</replaceable> for drawing tramlines, defaults to "|" .
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--node</parameter> <replaceable>character</replaceable></term>
+ <listitem>
+ <para>
+ Print tree of object registered in NamingService using <replaceable>character</replaceable> for drawing nodes, defaults to "+" .
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--noloops</parameter></term>
+ <listitem>
+ <para>
+ Inhibit drawing of naming context loops.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--name</parameter> <replaceable>name</replaceable></term>
+ <listitem>
+ <para>
+ Lists sub-set of <replaceable>name</replaceable>, defaults to root.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--ctxsep</parameter> <replaceable>character</replaceable></term>
+ <listitem>
+ <para>
+ Set context separation <replaceable>character</replaceable>, defaults to "/".
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--kindsep</parameter> <replaceable>character</replaceable></term>
+ <listitem>
+ <para>
+ Set ID/Kind separation <replaceable>character</replaceable>, defaults to ".".
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--max</parameter> <replaceable>number</replaceable></term>
+ <listitem>
+ <para>
+ Set limit of displayed sub-context depth to <replaceable>number</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>--rtt</parameter> <replaceable>seconds</replaceable></term>
+ <listitem>
+ <para>
+ Set the relative round trip timeout policy to <replaceable>seconds</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>Thomas Lockhart<email>&lt;Thomas.Lockhart@jpl.nasa.gov&gt;</email> </para>
+ <para>Simon Massey <email>&lt;sma@prismtech.com&gt;</email> </para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/tao_tls_basic.sgml b/ACE/debian/tao_tls_basic.sgml
new file mode 100644
index 00000000000..53527cff4b5
--- /dev/null
+++ b/ACE/debian/tao_tls_basic.sgml
@@ -0,0 +1,68 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "tao_tls_basic">
+ <!ENTITY revision "$Revision$">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_notify "<citerefentry><refentrytitle>tao_tls_notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_event "<citerefentry><refentrytitle>tao_tls_event</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_rtevent "<citerefentry><refentrytitle>tao_tls_rtevent</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_naming_service "<citerefentry><refentrytitle>tao_cosnaming</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY tao_cosnaming "<application>tao_cos_naming</application>">
+ <!ENTITY tao_tls_basic "<application>tao_tls_basic</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_tao_tls_notify;, &man_tao_tls_event;, &man_tao_tls_rtevent;, &man_naming_service;">
+ <!ENTITY year "1999">
+ <!ENTITY username "David Hanvey">
+ <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
+]>
+<refentry>
+ <refmeta>
+ <refentrytitle>TAO_TLS_BASIC</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>TAO Basic Telecom Log Service</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is an event-unaware implementation of the Telecom Log Service.
+ </para>
+ <para>
+ The Telecom Log Service specification may be found on the OMG
+ website at <ulink
+ url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
+ </para>
+ <para>
+ &applname; requires a running &tao_cosnaming; and registers with
+ it as `BasicLogFactory'.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>BUGS</title>
+ <para>
+ Currently all Logs records are stored in memory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>&username; &useremail;</para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/tao_tls_event.sgml b/ACE/debian/tao_tls_event.sgml
new file mode 100644
index 00000000000..7c416d031b3
--- /dev/null
+++ b/ACE/debian/tao_tls_event.sgml
@@ -0,0 +1,70 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "tao_tls_event">
+ <!ENTITY revision "$Revision$">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosevent "<citerefentry><refentrytitle>tao_cosevent</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_basic "<citerefentry><refentrytitle>tao_tls_basic</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_notify "<citerefentry><refentrytitle>tao_tls_notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_rtevent "<citerefentry><refentrytitle>tao_tls_rtevent</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosnaming "<citerefentry><refentrytitle>tao_cosnaming</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY tao_cosnaming "<application>tao_cosnaming</application>">
+ <!ENTITY tao_tls_event "<application>tao_tls_event</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_tao_cosevent;, &man_tao_tls_basic;, &man_tao_tls_notify;, &man_tao_tls_rtevent;, &man_tao_cosnaming;">
+ <!ENTITY year "1999">
+ <!ENTITY username "David Hanvey">
+ <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
+]>
+<refentry>
+ <refmeta>
+ <refentrytitle>TAO_TLS_EVENT</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>TAO Event Telecom Log Service</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is an implementation of the Telecom Log Service that
+ integrates with the Event Service.
+ </para>
+ <para>
+ The Telecom Log Service specification may be found on the OMG
+ website at <ulink
+ url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
+ </para>
+ <para>
+ &applname; requires a running &tao_cosnaming; and registers with
+ it as `EventLogFactory'.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>BUGS</title>
+ <para>
+ Currently all Logs records are stored in memory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>&username; &useremail;</para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/tao_tls_notify.sgml b/ACE/debian/tao_tls_notify.sgml
new file mode 100644
index 00000000000..a25fed60c88
--- /dev/null
+++ b/ACE/debian/tao_tls_notify.sgml
@@ -0,0 +1,70 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "Tao_Tls_Notify">
+ <!ENTITY revision "$Revision$">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosnotify "<citerefentry><refentrytitle>tao_cosnotify</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_basic "<citerefentry><refentrytitle>tao_tls_basic</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_event "<citerefentry><refentrytitle>tao_tls_event</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_rtevent "<citerefentry><refentrytitle>tao_tls_rtevent</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosnaming "<citerefentry><refentrytitle>tao_cosnaming</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY tao_cosnaming "<application>tao_cosnaming</application>">
+ <!ENTITY tao_tls_notify "<application>tao_tls_notify</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_tao_cosnotify;, &man_tao_tls_basic;, &man_tao_tls_event;, &man_tao_tls_rtevent;, &man_tao_cosnaming;">
+ <!ENTITY year "1999">
+ <!ENTITY username "David Hanvey">
+ <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
+]>
+<refentry>
+ <refmeta>
+ <refentrytitle>TAO_TLS_NOTIFY</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>TAO Notify Telecom Log Service</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is an implementation of the Telecom Log Service that
+ integrates with the Notification Service.
+ </para>
+ <para>
+ The Telecom Log Service specification may be found on the OMG
+ website at <ulink
+ url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
+ </para>
+ <para>
+ &applname; requires a running &tao_cosnaming; and registers with
+ it as `NotifyLogFactory'.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>BUGS</title>
+ <para>
+ Currently all Logs records are stored in memory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>&username; &useremail;</para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debian/tao_tls_rtevent.sgml b/ACE/debian/tao_tls_rtevent.sgml
new file mode 100644
index 00000000000..2b6cb206f5a
--- /dev/null
+++ b/ACE/debian/tao_tls_rtevent.sgml
@@ -0,0 +1,70 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY applname "tao_tls_rtevent">
+ <!ENTITY revision "$Revision$">
+ <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosevent "<citerefentry><refentrytitle>tao_cosevent</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_basic "<citerefentry><refentrytitle>tao_tls_basic</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_notify "<citerefentry><refentrytitle>tao_tls_notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_tls_event "<citerefentry><refentrytitle>tao_tls_event</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY man_tao_cosnaming "<citerefentry><refentrytitle>tao_cosnaming</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
+ <!ENTITY tao_cosnaming "<application>tao_cosnaming</application>">
+ <!ENTITY tao_tls_rtevent "<application>tao_tls_rtevent</application>">
+ <!ENTITY seealso "&man_tao_orb_options;, &man_tao_cosevent;, &man_tao_tls_basic;, &man_tao_tls_notify;, &man_tao_tls_event;, &man_tao_cosnaming;">
+ <!ENTITY year "1999">
+ <!ENTITY username "David Hanvey">
+ <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
+]>
+<refentry>
+ <refmeta>
+ <refentrytitle>TAO_TLS_RTEVENT</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&applname;</refname>
+ <refpurpose>TAO RTEvent Telecom Log Service</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>SYNOPSIS</title>
+ <cmdsynopsis>
+ <command>&applname;</command>
+ <group><arg>-ORBoptions</arg></group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &applname; is an implementation of the Telecom Log Service that
+ integrates with the RTEvent Service.
+ </para>
+ <para>
+ The Telecom Log Service specification may be found on the OMG
+ website at <ulink
+ url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
+ </para>
+ <para>
+ &applname; requires a running &tao_cosnaming; and registers with
+ it as `RTEventLogFactory'.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <para>
+ The program follows the usual TAO ORB command line syntax. See
+ &man_tao_orb_options;.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>BUGS</title>
+ <para>
+ Currently all Logs records are stored in memory.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>&seealso;</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>&username; &useremail;</para>
+ </refsect1>
+</refentry>
diff --git a/ACE/debianbuild/watch b/ACE/debian/watch
index ecc70a07613..ecc70a07613 100644
--- a/ACE/debianbuild/watch
+++ b/ACE/debian/watch
diff --git a/ACE/debianbuild/Basic_Logging_Service.sgml b/ACE/debianbuild/Basic_Logging_Service.sgml
deleted file mode 100644
index bd74c24ef56..00000000000
--- a/ACE/debianbuild/Basic_Logging_Service.sgml
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
- <!ENTITY applname "Basic_Logging_Service">
- <!ENTITY revision "$Revision$">
- <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_notify_logging_service "<citerefentry><refentrytitle>Notify_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_event_logging_service "<citerefentry><refentrytitle>Event_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_rt_event_logging_service "<citerefentry><refentrytitle>RTEvent_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_naming_service "<citerefentry><refentrytitle>Naming_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY Naming_Service "<application>Naming_Service</application>">
- <!ENTITY Basic_Logging_Service "<application>Basic_Logging_Service</application>">
- <!ENTITY seealso "&man_tao_orb_options;, &man_notify_logging_service;, &man_event_logging_service;, &man_rt_event_logging_service;, &man_naming_service;">
- <!ENTITY year "1999">
- <!ENTITY username "David Hanvey">
- <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
-]>
-<refentry>
- <refmeta>
- <refentrytitle>BASIC_LOGGING_SERVICE</refentrytitle>
- <manvolnum>1</manvolnum>
- </refmeta>
- <refnamediv>
- <refname>&applname;</refname>
- <refpurpose>TAO Basic Telecom Log Service</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <title>SYNOPSIS</title>
- <cmdsynopsis>
- <command>&applname;</command>
- <group><arg>-ORBoptions</arg></group>
- </cmdsynopsis>
- </refsynopsisdiv>
- <refsect1>
- <title>DESCRIPTION</title>
- <para>
- &applname; is an event-unaware implementation of the Telecom Log Service.
- </para>
- <para>
- The Telecom Log Service specification may be found on the OMG
- website at <ulink
- url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
- </para>
- <para>
- &applname; requires a running &Naming_Service; and registers with
- it as `BasicLogFactory'.
- </para>
- </refsect1>
- <refsect1>
- <title>OPTIONS</title>
- <para>
- The program follows the usual TAO ORB command line syntax. See
- &man_tao_orb_options;.
- </para>
- </refsect1>
- <refsect1>
- <title>BUGS</title>
- <para>
- Currently all Logs records are stored in memory.
- </para>
- </refsect1>
- <refsect1>
- <title>SEE ALSO</title>
- <para>&seealso;</para>
- </refsect1>
- <refsect1>
- <title>AUTHOR</title>
- <para>&username; &useremail;</para>
- </refsect1>
-</refentry>
diff --git a/ACE/debianbuild/Event_Logging_Service.sgml b/ACE/debianbuild/Event_Logging_Service.sgml
deleted file mode 100644
index 8980166a883..00000000000
--- a/ACE/debianbuild/Event_Logging_Service.sgml
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
- <!ENTITY applname "Event_Logging_Service">
- <!ENTITY revision "$Revision$">
- <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_event_service "<citerefentry><refentrytitle>Event_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_basic_logging_service "<citerefentry><refentrytitle>Basic_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_notify_logging_service "<citerefentry><refentrytitle>Notify_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_rt_event_logging_service "<citerefentry><refentrytitle>RTEvent_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_naming_service "<citerefentry><refentrytitle>Naming_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY Naming_Service "<application>Naming_Service</application>">
- <!ENTITY Event_Logging_Service "<application>Event_Logging_Service</application>">
- <!ENTITY seealso "&man_tao_orb_options;, &man_event_service;, &man_basic_logging_service;, &man_notify_logging_service;, &man_rt_event_logging_service;, &man_naming_service;">
- <!ENTITY year "1999">
- <!ENTITY username "David Hanvey">
- <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
-]>
-<refentry>
- <refmeta>
- <refentrytitle>EVENT_LOGGING_SERVICE</refentrytitle>
- <manvolnum>1</manvolnum>
- </refmeta>
- <refnamediv>
- <refname>&applname;</refname>
- <refpurpose>TAO Event Telecom Log Service</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <title>SYNOPSIS</title>
- <cmdsynopsis>
- <command>&applname;</command>
- <group><arg>-ORBoptions</arg></group>
- </cmdsynopsis>
- </refsynopsisdiv>
- <refsect1>
- <title>DESCRIPTION</title>
- <para>
- &applname; is an implementation of the Telecom Log Service that
- integrates with the Event Service.
- </para>
- <para>
- The Telecom Log Service specification may be found on the OMG
- website at <ulink
- url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
- </para>
- <para>
- &applname; requires a running &Naming_Service; and registers with
- it as `EventLogFactory'.
- </para>
- </refsect1>
- <refsect1>
- <title>OPTIONS</title>
- <para>
- The program follows the usual TAO ORB command line syntax. See
- &man_tao_orb_options;.
- </para>
- </refsect1>
- <refsect1>
- <title>BUGS</title>
- <para>
- Currently all Logs records are stored in memory.
- </para>
- </refsect1>
- <refsect1>
- <title>SEE ALSO</title>
- <para>&seealso;</para>
- </refsect1>
- <refsect1>
- <title>AUTHOR</title>
- <para>&username; &useremail;</para>
- </refsect1>
-</refentry>
diff --git a/ACE/debianbuild/Notify_Logging_Service.sgml b/ACE/debianbuild/Notify_Logging_Service.sgml
deleted file mode 100644
index ec874c8c8a4..00000000000
--- a/ACE/debianbuild/Notify_Logging_Service.sgml
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
- <!ENTITY applname "Notify_Logging_Service">
- <!ENTITY revision "$Revision$">
- <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_notify_service "<citerefentry><refentrytitle>Notify_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_basic_logging_service "<citerefentry><refentrytitle>Basic_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_event_logging_service "<citerefentry><refentrytitle>Event_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_rt_event_logging_service "<citerefentry><refentrytitle>RTEvent_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_naming_service "<citerefentry><refentrytitle>Naming_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY Naming_Service "<application>Naming_Service</application>">
- <!ENTITY Notify_Logging_Service "<application>Notify_Logging_Service</application>">
- <!ENTITY seealso "&man_tao_orb_options;, &man_notify_service;, &man_basic_logging_service;, &man_event_logging_service;, &man_rt_event_logging_service;, &man_naming_service;">
- <!ENTITY year "1999">
- <!ENTITY username "David Hanvey">
- <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
-]>
-<refentry>
- <refmeta>
- <refentrytitle>NOTIFY_LOGGING_SERVICE</refentrytitle>
- <manvolnum>1</manvolnum>
- </refmeta>
- <refnamediv>
- <refname>&applname;</refname>
- <refpurpose>TAO Notify Telecom Log Service</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <title>SYNOPSIS</title>
- <cmdsynopsis>
- <command>&applname;</command>
- <group><arg>-ORBoptions</arg></group>
- </cmdsynopsis>
- </refsynopsisdiv>
- <refsect1>
- <title>DESCRIPTION</title>
- <para>
- &applname; is an implementation of the Telecom Log Service that
- integrates with the Notification Service.
- </para>
- <para>
- The Telecom Log Service specification may be found on the OMG
- website at <ulink
- url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
- </para>
- <para>
- &applname; requires a running &Naming_Service; and registers with
- it as `NotifyLogFactory'.
- </para>
- </refsect1>
- <refsect1>
- <title>OPTIONS</title>
- <para>
- The program follows the usual TAO ORB command line syntax. See
- &man_tao_orb_options;.
- </para>
- </refsect1>
- <refsect1>
- <title>BUGS</title>
- <para>
- Currently all Logs records are stored in memory.
- </para>
- </refsect1>
- <refsect1>
- <title>SEE ALSO</title>
- <para>&seealso;</para>
- </refsect1>
- <refsect1>
- <title>AUTHOR</title>
- <para>&username; &useremail;</para>
- </refsect1>
-</refentry>
diff --git a/ACE/debianbuild/README.Debian b/ACE/debianbuild/README.Debian
deleted file mode 100644
index 46528c360d0..00000000000
--- a/ACE/debianbuild/README.Debian
+++ /dev/null
@@ -1,35 +0,0 @@
-ACE for Debian
---------------
-
-
-== Environment variables ==
-
-If the software you are compiling requires $ACE_ROOT to be set (for
-example, the tutorials), you may set it to /usr/share/ace. For bash,
-the command to do this is
-
- export ACE_ROOT=/usr/share/ace
-
-
-Likewise, for TAO:
-
- export TAO_ROOT=${ACE_ROOT}/TAO
-
-
-== Compiling examples ==
-
-To compile ACE or TAO examples (in libace-doc and libtao-orbsvcs-doc), you'll
-need:
- 1. to define ACE_ROOT and TAO_ROOT as explained above.
- 2. to install mpc-ace package if needed.
- 3. to copy and uncompress the example you want to test, e.g.:
-
- cp /usr/share/doc/libtao-orbsvcs-doc/examples/CosEC $HOME/ex1
- find $HOME/ex1 -type f -name '*.gz' | xargs gunzip
-
- 4. to regenerate the GNUmakefiles for this new location:
-
- cd $HOME/ex1
- mwc-ace -recurse -value_project install=. -value_project libout=.
-
- 5. now you can compile your example.
diff --git a/ACE/debianbuild/RTEvent_Logging_Service.sgml b/ACE/debianbuild/RTEvent_Logging_Service.sgml
deleted file mode 100644
index 3bb123c89e6..00000000000
--- a/ACE/debianbuild/RTEvent_Logging_Service.sgml
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
- <!ENTITY applname "RTEvent_Logging_Service">
- <!ENTITY revision "$Revision$">
- <!ENTITY man_tao_orb_options "<citerefentry><refentrytitle>TAO_ORB_Options</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_event_service "<citerefentry><refentrytitle>Event_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_basic_logging_service "<citerefentry><refentrytitle>Basic_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_notify_logging_service "<citerefentry><refentrytitle>Notify_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_event_logging_service "<citerefentry><refentrytitle>Event_Logging_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY man_naming_service "<citerefentry><refentrytitle>Naming_Service</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
- <!ENTITY Naming_Service "<application>Naming_Service</application>">
- <!ENTITY RTEvent_Logging_Service "<application>RTEvent_Logging_Service</application>">
- <!ENTITY seealso "&man_tao_orb_options;, &man_event_service;, &man_basic_logging_service;, &man_notify_logging_service;, &man_event_logging_service;, &man_naming_service;">
- <!ENTITY year "1999">
- <!ENTITY username "David Hanvey">
- <!ENTITY useremail "<email>&lt;d.hanvey@qub.ac.uk&gt;</email>">
-]>
-<refentry>
- <refmeta>
- <refentrytitle>RTEVENT_LOGGING_SERVICE</refentrytitle>
- <manvolnum>1</manvolnum>
- </refmeta>
- <refnamediv>
- <refname>&applname;</refname>
- <refpurpose>TAO RTEvent Telecom Log Service</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <title>SYNOPSIS</title>
- <cmdsynopsis>
- <command>&applname;</command>
- <group><arg>-ORBoptions</arg></group>
- </cmdsynopsis>
- </refsynopsisdiv>
- <refsect1>
- <title>DESCRIPTION</title>
- <para>
- &applname; is an implementation of the Telecom Log Service that
- integrates with the RTEvent Service.
- </para>
- <para>
- The Telecom Log Service specification may be found on the OMG
- website at <ulink
- url="http://www.omg.org/cgi-bin/doc?telecom/99-05-01"></ulink>.
- </para>
- <para>
- &applname; requires a running &Naming_Service; and registers with
- it as `RTEventLogFactory'.
- </para>
- </refsect1>
- <refsect1>
- <title>OPTIONS</title>
- <para>
- The program follows the usual TAO ORB command line syntax. See
- &man_tao_orb_options;.
- </para>
- </refsect1>
- <refsect1>
- <title>BUGS</title>
- <para>
- Currently all Logs records are stored in memory.
- </para>
- </refsect1>
- <refsect1>
- <title>SEE ALSO</title>
- <para>&seealso;</para>
- </refsect1>
- <refsect1>
- <title>AUTHOR</title>
- <para>&username; &useremail;</para>
- </refsect1>
-</refentry>
diff --git a/ACE/debianbuild/TODO b/ACE/debianbuild/TODO
deleted file mode 100644
index 721de639197..00000000000
--- a/ACE/debianbuild/TODO
+++ /dev/null
@@ -1,24 +0,0 @@
-= Misc =
- * default tao_idl lookup path?
- * put IDL in /usr/share/idl
- * current IDL should be in orvsvcs/orbsvcs
- * see current bugs:
- o package netsvcs library
- o package websvcs library?
- * rewrite the patch to load TAO libraries by SONAME and RFC it
- * move ACE_ROOT from /usr/share/ace to /usr/lib/ace?
- * hide .real programs in /usr/lib/ace?
- * make all TAO programs start with tao_, and put distribution compatible
- program in /usr/lib/tao
-
-= MWC and MPC =
- * they should define $ACE_ROOT and $TAO_ROOT if they're not
- * some makefile are not regenerated (e.g. JAWS). Seems like a bug.
-
-= autoconf support =
- * some macros are missing (see rules)
-
-= CIAO =
- * to restore
- * autoconf support
- * cidlc
diff --git a/ACE/debianbuild/changelog b/ACE/debianbuild/changelog
deleted file mode 100644
index 1249c97813a..00000000000
--- a/ACE/debianbuild/changelog
+++ /dev/null
@@ -1,850 +0,0 @@
-ace (5.6.6-1) experimental; urgency=low
-
- * New upstream release.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Fri, 03 Oct 2008 21:57:29 +0000
-
-ace (5.6.3-5) unstable; urgency=low
-
- * Do not ship MPC config files in both mpc-ace and libace-dev packages;
- they're meant to be only in mpc-ace. Make mpc-ace Replaces: the bogus
- previous upload. Closes: #484718.
- * Bump Standards-Version: to 3.8.0.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Fri, 13 Jun 2008 21:52:28 +0000
-
-ace (5.6.3-4) unstable; urgency=low
-
- * Add the following missing programs to libace-dev:
- o $ACE_ROOT/bin/generate_export_file.pl
- o $ACE_ROOT/bin/split-cpp
- o $ACE_ROOT/bin/g++dep
- o $ACE_ROOT/bin/add_rel_link.sh
- * Move DependencyGenerator from mpc-ace to libace-dev.
- * New patch, 22-remove-Ge-doc.dpatch, to remove documentation for
- tao_idl -Ge flag that no longer works. Thanks to Pascal Giard for
- reporting this.
- * Remove PACKAGE_* definitions from /usr/include/ace/config.h. Thanks to
- Pascal Giard for reporting this.
- * Remove pre-etch Conflicts: and Replaces: information.
- * Add missing headers found with cmp-installation.sh. Closes: #481088.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Sat, 24 May 2008 15:47:01 +0000
-
-ace (5.6.3-3) unstable; urgency=low
-
- * Pass full path to fox-config-1.6 instead of trying to detect fox-config
- since fox-config is an alternative. Should fix multiple FTBFS.
- * Enable IPv6 again. Disabling it was a mistake: it does work. But on an
- IPv4 only host one need to specify the end-point to use, e.g. :
- Naming_Service -ORBEndPoint iiop://localhost:1234
-
- -- Thomas Girard <thomas.g.girard@free.fr> Thu, 24 Apr 2008 18:27:07 +0000
-
-ace (5.6.3-2) unstable; urgency=low
-
- * Add missing libfox-1.6-dev build dependency. Thanks to Bastian Blank for
- the report. Closes: #476822.
- * Build depend on libqt4-dev (>= 4.4~rc1-4) to fix FTBFS. Thanks to
- Martin Zobel-Helas for the report and to Sune Vuorela for the fix.
- Closes: #476505.
- * Add platform_macros.GNU.in and have autotools handle it so that it's
- possible to ship rules.*.GNU. Closes: #469843, #469845.
- * Remove doxygen-generated files we don't need.
- * (Build-)Depend on tk-dev instead of tk8.4-dev.
- * Rework debian/patches/05-autoconf-fox.dpatch not to link against too
- many libs.
- * Restore doxygen build-dependency.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Tue, 22 Apr 2008 18:23:46 +0000
-
-ace (5.6.3-1) unstable; urgency=low
-
- * New upstream release:
- o missing os_include/os_byteswap.h is included. Closes: #469844.
- * Upload to unstable.
- * New packages: libace-foxreactor and libtao-foxresource, integrating
- with the FOX toolkit.
- * Build doxygen again.
- * Rewrite debian/copyright, following proposal from:
- http://wiki.debian.org/Proposals/CopyrightFormat
- * Add a watch file.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Sat, 12 Apr 2008 17:10:14 +0000
-
-ace (5.6.2-1) experimental; urgency=low
-
- * New upstream release.
- * Generate .am files instead of patching them; hence drop:
- o patches/02-tao-sonames-release-am.dpatch
- o tao-sonames-release-am.sh
- * Fix DEB_BUILD_OPTIONS=noopt.
- * Add zlib1g-dev and libzzip-dev build dependencies.
- * Enable symbol visibility.
- * Manually add missing some autoconf tests to reduce differences against
- regular ACE build method.
- * Do not generate doxygen; it fails now.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Sun, 06 Jan 2008 21:05:37 +0100
-
-ace (5.5.9-1) experimental; urgency=low
-
- * New upstream release. We now use the -src.tar.bz2 tarball, hence:
- o generate autotools stuff at compile time
- o huge patches/06-bootstrap is dropped
- * Fix broken libtao-tkresource package.
- * Drop no longer needed patches:
- o 03-compile-lifecycle
- o 04-compile-ftrt
- o 07-ace-tao-ssliop-refcount
- * New patches:
- o 02-qt4 to switch to Qt4
- o 02-fltk-no-gl to avoid linking with libfltk_gl
- o 03-g++-new-throws to prevent autoconfiguration from eating all
- memory testing whether std::bad_alloc is thrown
- * Disable patch 20-check-_REENTRANT; it's not needed when using autotools
- method. Closes: #420216.
- * Update patch 34-bts386713.
- * Use debian/compat instead of DH_COMPAT.
- * Drop no longer needed dpkg-dev tightened build-dependency since it is
- available in etch.
- * Generate doxygen documentation. Closes: #391011.
- * Enable ACE reactor notification queue.
- * Move $ACE_ROOT/bin/MakeProjectCreator/config files into libace-dev.
- * Install $TAO_ROOT/MPC files into libtao-dev.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Tue, 17 Jul 2007 22:50:36 +0200
-
-ace (5.5.6-2) experimental; urgency=low
-
- * debian/control: fix broken Conflicts: fields. Package split for
- libtao-orbsvcs happened in libtao-orbsvcs1.4.7c2a 5.4.7-11 and this should
- not be changed.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Fri, 23 Mar 2007 18:38:41 +0000
-
-ace (5.5.6-1) experimental; urgency=low
-
- Thomas Girard:
- * New upstream release. Closes: #381647.
- * Switch to the autotools method. Consequences:
- o CIAO packages are dropped for now
- o static libraries are removed as well
- o IPv6 is disabled again
- * Drop obsolete patches and scripts.
- * We no longer ship TAO_ORB_Options.1 in libtao-orbsvcs.
- * debian/patches/01-change-tao-sonames.dpatch: enable TAO_VERSION_NAME
- propagation from configure, and use it for TAO libraries.
- * debian/patches/02-tao-sonames-release-am.dpatch: diff on Makefile.am
- after application of the 01-change-tao-sonames patch.
- * debian/patches/03-compile-lifecycle.dpatch: enables LifeCycle
- compilation.
- * debian/patches/04-compile-ftrt.dpatch: enables FTRT_EventService
- compilation.
- * debian/patches/07-ace-tao-ssliop-refcount.dpatch: fix ssliop reference
- counting problem.
-
- Konstantinos Margaritis:
- * changed URL in copyright to new one.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Thu, 15 Mar 2007 22:12:29 +0000
-
-ace (5.4.7-11) unstable; urgency=low
-
- * debian/control: package HTBP, the protocol over HTTP tunneling library.
- * debian/control: split libace into libace + libace-ssl.
- * debian/control: move binaries in their own tao-* packages.
- * debian/patches/34-bts386713.dpatch: dlopen() TAO libraries using their
- full name (Closes: #386713).
- * debian/generate_pkgconfig.sh: generate .pc files (Closes: #367480).
-
- -- Thomas Girard <thomas.g.girard@free.fr> Sat, 23 Sep 2006 15:02:12 +0200
-
-ace (5.4.7-10) unstable; urgency=low
-
- * debian/rules: fix and honor DEB_BUILD_OPTIONS.
- * debian/libace-dev.install: drop QoS header files as QoS in not compiled
- in.
- * debian/*.install: fix empty wildcard expansion that produce errors when
- DH_COMPAT is 5.
- * debian/libtao-dev.install: do not distribute include files from TAO_IDL.
- They are not needed and don't get installed when using the autotools
- method.
- * debian/rules: rename mwc.pl and mpc.pl to mwc-ace and mpc-ace.
- * debian/ace-config*,debian/tao-config*: dropped. These files were no
- longer installed.
- * debian/libace-dev.install: don't install ace-config and tao-config
- manpages either (Closes: #367478).
- * debian/control: relax mpc-ace dependencies. This package now installs
- without pulling any ACE library. Thanks to Alex Bodnaru for noticing.
- * debian/control: simplify packages synopsis and descriptions.
- * debian/control: drop xerces dependency (Closes: #378605). Xerces is
- only needed by DAnCE, which is not packaged yet.
- * debian/libace-dev.install: remove generate_export_file.pl for now.
- * patches/31-gcc-4.1-fix.dpatch: add other type-punned fixes taken from
- upstream.
- * debian/mpc.sgml: new man page.
- * debian/patches/32-bug1770-fix.dpatch,33-bug1805-fix.dpatch: backport
- two patches for SSL wrappers.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Thu, 20 Jul 2006 20:55:53 +0200
-
-ace (5.4.7-9) unstable; urgency=low
-
- * debian/patches/28-bug2222-fix.dpatch, debian/patches/29-bug2262.dpatch:
- backport upstream fixes.
- * debian/patches/31-gcc-4.1-fix.dpatch: fix "dereferencing type-punned
- pointers" gcc 4.1 warning.
- * debian/patches/30-Env_Value-template-specialization-fix.dpatch:
- backport template specialization fix (Closes: #358898).
- * debian/patches/20-debian-compiler-definitions.dpatch: downgrade
- optimization flag from `-O3' to `-O2'.
- * debian/rules: add ${perl:Depends} for mpc-ace package.
- * debian/control: make a new package, libciao-doc.
- * debian/libtao-dev.install: add missing pkg-config file for ImR_Client
- library.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Wed, 29 Mar 2006 22:14:53 +0200
-
-ace (5.4.7-8) unstable; urgency=low
-
- * debian/copy_template_sources.sh: add missing files to `libtao-dev'
- package. Thanks to Arren and Bernhard Seibold for reporting this.
- * debian/patches/23-PortableGroup-exceptions-propagation.dpatch,
- debian/patches/24-collocated-oneway+SYNC_WITH_SERVER-fix.dpatch,
- debian/patches/25-TypeCode-equivalent-fix.dpatch,
- debian/patches/26-union-_default-fix.dpatch,
- debian/patches/27-bug2225-fix.dpatch: backport various upstream
- fixes.
- * debian/control: tighten build dependency from `xlibs-dev' to
- `libxt-dev'. (Closes: #346607).
-
- -- Thomas Girard <thomas.g.girard@free.fr> Fri, 13 Jan 2006 17:15:37 +0200
-
-ace (5.4.7-7) unstable; urgency=low
-
- * debian/config/config.h: add IPv6 support. Thanks to David Hausheer
- for the report and the fix. (Closes: #341988)
- * debian/patches/23-TTY_IO-compilation-fix.dpatch: new patch to work
- around `struct termios` platform-specific fields. (Closes: #342328).
- * debian/patches/84-skip-DAnCE-compilation.dpatch: completely disable
- DAnCE compilation, since we don't package it. (Closes: #336020).
- * Really close fixed in NMU bugs (Closes: #324271, #339142).
-
- -- Konstantinos Margaritis <markos@debian.org> Mon, 19 Dec 2005 13:40:48 +0200
-
-ace (5.4.7-6) unstable; urgency=low
-
- * debian/control: consolidate package descriptions.
- * debian/patches/16-g++4-visibility-tweaks.dpatch:
- Backport upstream tweaks for g++ 4 visibility feature and disable
- visibility hiding for now. (Closes: #324271).
- * debian/rules: g++ 4.0.2 was ICE'ing on #pragma once. This is no
- longer true as of g++-4.0_4.0.2-4, so we can use g++4 again. For the
- record, another possible fix was to #define ACE_LACKS_PRAGMA_ONCE in
- `$ACE_ROOT/ace/config.h`.
- * Add `c2a` suffix to all libs for libstdc++ allocator change.
- (Closes: #339142).
-
- -- Thomas Girard <thomas.g.girard@free.fr> Fri, 18 Nov 2005 20:23:59 +0100
-
-ace (5.4.7-5) unstable; urgency=low
-
- * Force gcc 3.4 for all arches, seems gcc 4.0 produces errors on all of
- them. (Closes: #333981)
-
- -- Konstantinos Margaritis <markos@debian.org> Wed, 12 Oct 2005 03:26:14 +0300
-
-ace (5.4.7-4) unstable; urgency=medium
-
- * Rebuilt package for the Qt C++ transition. (Closes: #327926).
- * Also, gcc 4.0 is buggy in some arches, use g++-3.4 on them instead.
- Update: Even on i386, cpp-4.0 produces Internal Compiler Errors(ICEs). For
- this reason, cpp-3.4 will be used instead (but with gcc/g++ 4.0.
-
- -- Konstantinos Margaritis <markos@debian.org> Mon, 4 Oct 2005 03:21:20 +0300
-
-ace (5.4.7-3) unstable; urgency=low
-
- * Fixed (another) missing build-dependency. (Closes: #323630)
- (this is getting irritating :-)
-
- -- Konstantinos Margaritis <markos@debian.org> Thu, 18 Aug 2005 10:29:48 +0300
-
-ace (5.4.7-2) unstable; urgency=low
-
- * Fixed missing build-dependency in the .dsc file. (Closes: #323181)
-
- -- Konstantinos Margaritis <markos@debian.org> Tue, 16 Aug 2005 01:09:09 +0300
-
-ace (5.4.7-1) unstable; urgency=low
-
- * Thomas Girard <thomas.g.girard@free.fr>
- - New upstream release. (Closes: #317488)
- - Package names were changed to include the full library soname.
- (Closes: #288161)
- - debian/control: libtao-{xt,qt}reactor are now called
- libtao-{xt,qt}resource. Also add libtao-{fl,tk}resource.
- - debian/control: add new package libace-tmcast5.4.7.
- * Konstantinos Margaritis
- - Now use the .bz2 version of the original tarball to save space.
-
- -- Konstantinos Margaritis <markos@debian.org> Fri, 12 Aug 2005 12:45:13 +0300
-
-ace (5.4.2.1.0-4) unstable; urgency=high
-
- * Thomas Girard <thomas.g.girard@free.fr>
- - debian/control:
- o libacexml-dev depends on libace-dev.
- o libkokyu-dev depends on libace-dev.
- o libtao-dev depends on libtao1.4.
- o normalize Depends: and Build-Depends: sections.
- - debian/ace-config.1 debian/tao-config.1: fix hyphenation problem
- reported by lintian.
- - debian/libciao-dev.install: add missing .idl and .pidl files.
- (Closes: #307258)
-
- -- Thomas Girard <thomas.g.girard@free.fr> Mon, 2 May 2005 19:30:01 +0200
-
-ace (5.4.2.1.0-3) unstable; urgency=high
-
- * Thomas Girard <thomas.g.girard@free.fr>
- - debian/patches/84-mpc-honour-soversion.dpatch: new patch from
- upstream to honour the `version' keyword for libraries.
- - debian/patches/17-fix-tao-encode_value-memory-leak: new patch
- from upstream to fix a potential memory leak.
- - debian/mpc-ace.install: add depgen.pl. (Closes: #289157)
- - debian/tao_idl: new script that automatically sets ACE_ROOT and
- TAO_ROOT environment variables. (Closes: #289158)
- - debian/rules: unbreak gperf-ace. (Closes: #294338)
- - debian/remove_reactor_dups.sh: new script to ensure that duplicate
- reactor header files get deleted. (Closes: #294660)
- - debian/patches/21-always-inline.dpatch, debian/config.h: Always
- define __ACE_INLINE__, and remove the inline option from the MPC
- generated GNUmakefiles. Thanks to Marek Brudka for reporting this and
- for providing the fix. (Closes: #290114)
- - debian/patches/18-fix-trader-twiddle-operator.dpatch: backport
- fix to correct operator ~ in trader constraints.
- - debian/patches/19-fix-taoidl-fd-leak.dpatch: backport a fix to
- close open file.
- - debian/control: lib{ace,tao}qtreactor-dev packages depend on
- libqt3-mt-dev.
- - debian/libtao-orbsvcs1.4.install:
- o Add FT_ReplicationManager.
- o Add Fault_Detector and Fault_Notifier.
- - debian/control:
- o mpc-ace is in devel section.
- o lib{ace,tao}-{fl,tk,qt,xt}reactor-dev are in libdevel section.
- - debian/tao_ifr: new wrapper script that automatically sets ACE_ROOT
- and TAO_ROOT environment variables.
- - debian/libtao-orbsvcs1.4.manpages: add TAO_ORB_Options.1 manpage.
-
- -- Thomas Girard <thomas.g.girard@free.fr> Wed, 30 Mar 2005 23:24:40 +0200
-
-ace (5.4.2.1.0-2) unstable; urgency=medium
-
- * Konstantinos Margaritis <markos@debian.org>
- - Changed dependency of libfltk1-dev in libace-flreactor-dev to
- libfltk1.1-dev (Closes: #289287)
- - Added Uploaders field in control.
-
- -- Konstantinos Margaritis <markos@debian.org> Sat, 8 Jan 2005 22:39:05 +0200
-
-ace (5.4.2.1.0-1) unstable; urgency=low
-
- * Thomas Girard <thomas.g.girard@free.fr>
- - Much lintian cleaning.
- - Integrate upstream MPC patch to honour `libout' and `install' keywords.
- - Repackage FTRT_EventChannel.
- - Bug 242881 was closed in the previous upload. (Closes: #242881)
- - debian/control: libtao-dev should depend on libace-dev.
- (Closes: #277052)
- - debian/{Basic,Event,Notify,RTEvent}_Logging_Service.sgml: new man pages.
- - debian/rules: add docbook-to-man calls.
- * Raphael Bossek <bossekr@debian.org>
- - debian/config/debian.features: MPC configuration for Debian GNU/Linux added
- - debian/config/platform_macros.GNU: Removed due to introduction of
- debian.features files. This file will be generated
- - debian/rules: Uses dpatch. Simplified clean target by removing temporary
- ACE_wrappers subdirectory. Install ace-config and tao-config scripts
- with executable bit set (Closes: #278522, #278523)
- - debian/control: Added new reactor packages. Removed depricated
- suggestions on ace+tao-utilities. Added libssl-dev as recommendation for
- libace-dev. Added suggestions for pkg-config
- - Upgrade to latest version of TAO (Closes: #265238)
- - debian/pkgconfig-ace, debian/pkgconfig-tao, debian/ace.pc.in,
- debian/tao.pc.in: Support for pkg-config added
- - debian/libace-dev.links: Added sym-link for /usr/share/ace/lib and
- /usr/share/ace/bin/generate_export_file.pl
- - debian/*.docs, debian/*.manpages: Added source directory ACE_wrappers as prefix
- - debian/libace-dev.install: Added ACE_wrappers/bin/generate_export_file.pl
-
- -- Thomas Girard <thomas.g.girard@free.fr> Mon, 18 Oct 2004 13:35:56 +0200
-
-ace (5.4.2.1-1) unstable; urgency=low
-
- * Thomas Girard <thomas.g.girard@free.fr>
- - New upstream release. (Closes: #243062)
- - Do not link against Xt libs. (Closes: #251477)
- - As such, libace-dev does not need to depend on libxt-dev nor xlibs-dev
- (Closes: #253226)
- - Add MPC.
- - Patch ACE_IOStream to support g++ 3.3. (Closes: #243473)
- - Patch MPC to honour `libout' and `install' keywords in GNUmakefile
- generation. See DOC Bug#1915.
- - Backport a fix to NotifyLoggingService from CVS.
- - Make %S work in ACE_DEBUG.
- * Konstantinos Margaritis
- - Fixed missed path for libACE.so.5.4.2 in dh_shlibdeps
- - Fixed incorrect timestamp of original archive (1970 etc).
-
- -- Konstantinos Margaritis <markos@debian.org> Thu, 2 Sep 2004 23:04:56 +0200
-
-ace (5.4.0.1-1.1) unstable; urgency=low
-
- * Fixed ACE_NDEBUG configuration of ACE. (Closes: #242881)
- * Build-depends on libqt3-headers removed qt_reactor not set.
- * System capabilities will be determined by including <unistd.h> in
- <ace/config.h>.
-
- -- Raphael Bossek <bossekr@debian.org> Thu, 8 Apr 2004 15:37:24 +0200
-
-ace (5.4.0.1-1) unstable; urgency=low
-
- * KM: release to fix the timestamp errors in the upstream source.
-
- -- Konstantinos Margaritis <markos@debian.org> Sun, 29 Feb 2004 21:11:14 +0200
-
-ace (5.4-3) unstable; urgency=low
-
- * KM: backported fixes from CVS to fix 64-bit pointer to int casting in
- orbsvcs/RTCosScheduling files. This is to fix FTBFS bug in 64-bit archs,
- until 5.4.1 is released (mid-march).
- Closes: #233890
-
- -- Konstantinos Margaritis <markos@debian.org> Wed, 28 Feb 2004 15:53:30 +0200
-
-ace (5.4-2) unstable; urgency=low
-
- * KM: Includes patch from Raphael Bossek <bossekr@debian.org> to handle
- bug in tao_idl to use ACE_GPERF instead of plain gperf.
- * BN: libace-dev now suggests libtao-dev instead of the non-existing tao
- package. (Closes: #233488)
- * BN: prepended a "-" to the chmod commands in debian/rules so that they
- don't fail if used repeatedly.
-
- -- Brian Nelson <pyro@debian.org> Wed, 18 Feb 2004 02:23:07 -0800
-
-ace (5.4-1) unstable; urgency=low
-
- * KM: new upstream release
- * KM: Now builds also ACE+SSL library, Kokyu and CIAO libs.
- * KM: Due to the orbsvcs executables we can't have 2 different versions
- of the libtao-orbsvcs1.x package, so we have to replace. This doesn't apply
- for libace5.x, libtao1.x or the rest of the libs.
- * Closes: #229134 (fixed dependencies).
-
- -- Konstantinos Margaritis <markos@debian.org> Sun, 25 Jan 2004 13:33:20 +0200
-
-ace (5.3.1-8) unstable; urgency=low
-
- * KM: Included the .pidl files in libtao-dev package. These
- were needed by some .idl files. (Closes: #213568)
-
- -- Konstantinos Margaritis <markos@debian.org> Wed, 29 Oct 2003 23:46:01 +0200
-
-ace (5.3.1-7) unstable; urgency=low
-
- * BN: Changed maintainer to "Debian ACE+TAO maintainers
- <pkg-ace-devel@lists.alioth.debian.org>" and moved myself to the
- Uploaders.
- * KM: Fixed conflicting file "/usr/bin/catior" by changing the name to
- tao-catior in libtao-dev. (Closes: #214421)
-
- -- Brian Nelson <pyro@debian.org> Thu, 9 Oct 2003 15:05:12 -0700
-
-ace (5.3.1-6) unstable; urgency=low
-
- * Added the ORB services .idl files that were left out from the
- libtao-orbsvcs-dev package. (Closes: #213568)
-
- -- Konstantinos Margaritis <markos@debian.org> Sun, 5 Oct 2003 12:31:21 +0300
-
-ace (5.3.1-5) unstable; urgency=low
-
- * Regenerated .diff.gz so that it is no longer broken (Closes: #211501)
- * Back out Debian-specific change in the way that CosNamingC.h is
- included in TAO/utils/nslist/nslist.cpp. I'm not sure why this was
- changed in the first place, but it broke the build. (Closes: #213611)
-
- -- Brian Nelson <pyro@debian.org> Wed, 1 Oct 2003 10:28:54 -0700
-
-ace (5.3.1-4) unstable; urgency=low
-
- * Moved the manpages back to -dev packages to follow policy.
- * Now mostly lintian clean.
- * provided manpages for a few executables.
-
- -- Konstantinos Margaritis <markos@debian.org> Wed, 17 Sep 2003 11:43:55 +0300
-
-ace (5.3.1-3) unstable; urgency=low
-
- * Updated to new standards version 3.6.1
- * Fixed the section of a couple of packages.
- * Now the getrlimit, etc functions are always defined
- as ints. g++ 3.x does not complain anymore (Closes: #104681).
-
- -- Konstantinos Margaritis <markos@debian.org> Tue, 16 Sep 2003 10:31:03 +0300
-
-ace (5.3.1-2) unstable; urgency=low
-
- * Now the following TAO packages are created:
- libtao1.3.1, libtao-dev, libtao-doc, libtao-orbsvcs1.3.1,
- libtao-orbsvcs-dev.
- * Also included ACEXML library in two separate packages:
- libacexml5.3.1, libacexml-dev.
- * Full doxygen documentation not included due to size concerns.
- (Closes: #108749).
- * tao-config included in libtao-dev. (Closes: #159234).
- * All -dev packages carry their respective examples in full and
- uncompressed. (Closes: #52145, #76967).
- * libACE.a is compiled with thread support enabled. (Closes: #126717).
- dbbalancer now builds successfully with -static.
- * Moved all manpages to respective -doc pagkaces. (Closes: #73044).
-
- -- Konstantinos Margaritis <markos@debian.org> Tue, 9 Sep 2003 10:41:14 +0300
-
-ace (5.3.1-1) unstable; urgency=low
-
- * New upstream release
- * New maintainers for the package, Brian Nelson <pyro@debian.org> and
- Konstantinos Margaritis <markos@debian.org> (Closes #199768)
- * Removed build-dependency on versioned g++
- * Bumped up standards version to 3.6.0
- * Dropped version string from -dev package name
- * libace-dev: downgrade tao to suggests (where did tao go anyway?)
- * Use debian/compat for debhelper versioning
- * Use dh_install instead of dh_movefiles, and dh_link instead of manual
- ln. The debian/rules file is a lot less hairy now.
- * Reinstated a libace-doc package (Closes: #192338)
- * Added symlinks to /usr/share/ace so that this directory can serve as
- $ACE_ROOT. Added a corresponding note to the README.Debian
- file. (Closes: #80329)
- * Removed the /usr/lib/libACE.so.5 and libACE_RMCast.so.5 symlinks, and
- made the package names match the sonames. The sonames now include the
- full version string, so ACE libs of different versions from now on
- should coexist nicely, even though upstream doesn't use a proper
- versioning scheme. (Closes: #147741)
-
- -- Brian Nelson <pyro@debian.org> Fri, 15 Aug 2003 00:15:59 -0700
-
-ace (5.2.4-1.2) unstable; urgency=low
-
- * fix to previous NMU
- * (Closes: #190792)
-
- -- Konstantinos Margaritis <markos@debian.org> Sat, 26 Apr 2003 19:18:49 +0300
-
-ace (5.2.4-1.1) unstable; urgency=low
-
- * gcc-3.2 transition, NMU patch by Andreas Metzler <ametzler@debian.org>
- * (Closes: #188328)
-
- -- Konstantinos Margaritis <markos@debian.org> Fri, 11 Apr 2003 23:25:38 +0200
-
-ace (5.2.4-1) unstable; urgency=low
-
- * New upstream.
- * Incorporated below change from Goswin. (Closes: #159236)
-
- -- Ossama Othman <ossama@valinor.ece.uci.edu> Sun, 15 Sep 2002 14:14:06 -0700
-
-ace (5.2.1-1.1) unstable; urgency=low
-
- * debian/control: libace5.2-dev recommends tao
- * ace-config: export ACE_ROOT
- make -f /usr/share/ace/ace-config.GNU
- test for tao-confg
- unset MAKEs env vars to prevent extranous output
- * debian/rules: install platform macros in
- $(ACE_PREFIX)/share/ace/include/makeinclude/
-
- -- Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de> Mon, 02 Sep 2002 02:37:25 +0200
-
-ace (5.2.1-1) unstable; urgency=low
-
- * New upstream.
- * Pulled in updated g++ configuration header and Linux Makefile rules
- for ACE. They allow implicit template instantiation to occur.
- * Disabled support for the ACE_XT_Reactor. Most folks never use it.
-
- -- Ossama Othman <ossama@debian.org> Mon, 25 Feb 2002 13:15:25 -0800
-
-ace (5.1.8-7) unstable; urgency=low
-
- * Really removed the flex/lex checks in configure.in.
-
- -- Ossama Othman <ossama@debian.org> Wed, 28 Nov 2001 15:30:59 -0800
-
-ace (5.1.8-6) unstable; urgency=low
-
- * Added "libtool" to Build-Depend field, and run libtoolize in `rules'
- file to pull in links to recent config.sub, config.guess and
- ltmain.sh revisions. (Closes: #120141)
- * Removed local autoconf test that checks if new() throws exception
- on failure. The test caused build hosts to come to a crawl. g++
- does indeed throw an exception.
- Just configure that explicitly. (Closes: #90731)
- * Removed flex and yacc checks in configure.in. They aren't necessary
- to build ACE.
- * Closed bug related to gcc internal compiler error. (Closes: #85230)
- * Removed unnecessary g++ dependency in control file. (Closes: #84405)
- * Added missing xlibs-dev dependency to libace5.1-dev package.
-
- -- Ossama Othman <ossama@debian.org> Mon, 26 Nov 2001 16:53:33 -0800
-
-ace (5.1.8-5.1) unstable; urgency=high
-
- * NMU
- * Added the missing build dependencies on flex and xlibs-dev.
- (closes: #101170)
-
- -- Adrian Bunk <bunk@fs.tum.de> Sat, 10 Nov 2001 01:17:53 +0100
-
-ace (5.1.8-5) unstable; urgency=low
-
- * libace5.1 and libace5.1-dev now conflict with their corresponding ACE
- 5.0 debian packages, since both sets of packages have files with the
- same name. libace5.1-dev also conflicts with libace4.6-dev. (#74031)
- * Added xlib6g-dev to the list of build dependencies. The X11 libraries
- aren't strictly necessary to build ACE, but the Debian packages enable
- ACE's XtReactor support.
- * Updated `README.Debian'. The Debian ACE packages are no longer built
- using experimental ACE Configuration Project distributions. They are
- built using the upstream distribution's autoconf support (contributed
- by the ACE Configuration Project).
-
- -- Ossama Othman <ossama@debian.org> Thu, 5 Oct 2000 17:35:56 -0700
-
-ace (5.1.8-4) unstable; urgency=low
-
- * Updated configure script from new upstream since it detects the CDROM
- and STREAMS ioctl conflict in current kernels and glibc 2.1.94. This
- fixes a seg fault that would occur in ACE applications that use the
- ACE_Reactor.
-
- -- Ossama Othman <ossama@debian.org> Wed, 4 Oct 2000 14:43:48 -0700
-
-ace (5.1.8-3) unstable; urgency=low
-
- * Rebuilt against glibc 2.1.94 (pre-2.2).
-
- -- Ossama Othman <ossama@debian.org> Fri, 29 Sep 2000 12:40:39 -0700
-
-ace (5.1.8-2) unstable; urgency=low
-
- * Added missing Build-Depends and Build-Depends-Indep fields to the
- control file. (#70113)
- * Corrected `debian/rules' so that it doesn't erase the installed
- `config-all.h' header.
-
- -- Ossama Othman <ossama@debian.org> Sat, 23 Sep 2000 09:54:26 -0700
-
-ace (5.1.8-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Ossama Othman <ossama@debian.org> Fri, 25 Aug 2000 15:45:01 -0700
-
-ace (5.0.7-4) frozen unstable; urgency=low
-
- * Rebuilt the packages so that they get installed in the unstable
- distribution archive, in addition to the frozen one. (#58366)
-
- -- Ossama Othman <ossama@debian.org> Wed, 24 May 2000 15:15:21 -0700
-
-ace (5.0.7-3) frozen; urgency=high
-
- * Updated libtool related files from latest libtool multi-language
- branch snapshot. Regenerated the configure script. It now has the
- appropriate deplibs regex. Apparently, there was a problem with M4
- quoting in the last package upload. (#63932)
- * Explicitly enable C++ exception support. A fix to the configure
- script caused this to be necessary since the configure script disables
- exception handling by default.
- * Updated `debian/rules' file to use debhelper v2 support.
- * Updated download location in `debian/copyright'.
-
- -- Ossama Othman <ossama@debian.org> Fri, 19 May 2000 15:05:30 -0700
-
-ace (5.0.7-2) frozen; urgency=low
-
- * Updated `acewindex.html' file so that it is no longer empty. (#50704)
- * Updated `ACE_Log_Msg.3' man page so that important information is
- included when it is generated. This patch was incorporated upstream.
- (#51224)
- * Replaced configure script and related files with current upstream
- configure script. Patched OS.{h,i} with llseek/lseek64 related
- upstream fixes. This should correct the lseek64 and llseek problems
- encountered in the m68k port. (#50094, #51074)
- * Updated ace-config.in with latest upstream since the previous one was
- missing a "-lACE" in the library list.
- * Fixed "--infodir" and "--mandir" configure script options in `rules'
- file. They incorrectly used a the actual install prefix instead of
- the debian package install prefix. This fixes a problem where the
- gperf-ace documentation wasn't being registered doc-base.
-
- -- Ossama Othman <ossama@debian.org> Mon, 17 Jan 2000 18:39:18 -0800
-
-ace (5.0.7-1) unstable; urgency=low
-
- * New upstream.
- * Enabled C++ template repository during build. This will reduce
- the size of the resulting binaries by about 20%.
- * Updated copyright file. (updated distribution terms contain
- suggestions contributed by Richard M. Stallman)
- * FHS updates.
- * Added versioned shlibs dependencies via "-V" option for dh_makeshlibs.
- This is important since new versions of libACE are not always binary
- compatible with previous versions.
- * Updated libace5.0-dev to use package dh_installinfo to install
- gperf-ace.info file.
- * Minor update to ACE documentation index.html file.
- * Added ACE man pages in HTML format.
-
- -- Ossama Othman <ossama@debian.org> Fri, 29 Oct 1999 21:13:10 -0500
-
-ace (4.6.44-1) unstable; urgency=low
-
- * New upstream.
-
- -- Ossama Othman <ossama@debian.org> Tue, 13 Jul 1999 20:23:11 -0500
-
-ace (4.6.42-1) unstable; urgency=low
-
- * New upstream.
-
- -- Ossama Othman <ossama@debian.org> Sat, 26 Jun 1999 15:46:16 -0500
-
-ace (4.6.37-1) unstable; urgency=low
-
- * New upstream.
- * Added doc-base support.
-
- -- Ossama Othman <ossama@debian.org> Tue, 27 Apr 1999 13:28:53 -0500
-
-ace (4.6.31-2) unstable; urgency=low
-
- * Removed clone.1 man page since ACE clone utility isn't needed
- for the Debian packages.
-
- -- Ossama Othman <ossama@debian.org> Mon, 22 Mar 1999 14:47:50 -0600
-
-ace (4.6.31-1) unstable; urgency=low
-
- * New upstream beta.
- * Added ACE PROBLEM-REPORT-FORM to each package. (#34455)
- * Rebuilt against glibc 2.1. (#34573)
- * Added check for struct siginfo_t in signal.h. Thanks to
- Konstantinos Margaritis <kmargar@cc.uoa.gr> for pointing this
- configuration bug out. (#34678)
-
- -- Ossama Othman <ossama@debian.org> Sun, 24 Jan 1999 15:49:04 -0500
-
-ace (4.6.15-1) unstable; urgency=low
-
- * Updated to ACE release 4.6.15.
-
- -- Ossama Othman <ossama@debian.org> Sat, 16 Jan 1999 18:47:25 -0500
-
-ace (4.6.13-1) unstable; urgency=low
-
- * Updated to ACE release 4.6.13.
-
- -- Ossama Othman <ossama@debian.org> Thu, 14 Jan 1999 19:54:41 -0500
-
-ace (4.6.12-2) unstable; urgency=low
-
- * Forgot to change libace4.6-dev dependency from version 4.6.7 to 4.6.12.
-
- -- Ossama Othman <ossama@debian.org> Thu, 14 Jan 1999 02:47:13 -0500
-
-ace (4.6.12-1) unstable; urgency=low
-
- * Updated to ACE release 4.6.12.
-
- -- Ossama Othman <ossama@debian.org> Thu, 14 Jan 1999 01:17:16 -0500
-
-ace (4.6.7-1) unstable; urgency=low
-
- * Force libtool to link "-lpthread" into ACE's inter-library dependencies
- since the configure script detects that the "-pthread" flag can be used
- which make it unneccessary to explicitly link to "-lpthread." However, we
- want the "-lpthread" dependency since not all users or programs use the
- "-pthread" compiler flag.
- * Fixed packaging bug where run-time library package tried to install/remove
- the gperf-ace info file.
- * Updated to ACE release 4.6.7.
-
- -- Ossama Othman <ossama@debian.org> Tue, 15 Dec 1998 16:29:10 -0500
-
-ace (4.6.5-3) unstable; urgency=low
-
- * Enabled ACE debugging macros.
- * Enabled ACE logging macros (LM_DEBUG and LM_INFO).
-
- -- Ossama Othman <ossama@debian.org> Tue, 8 Dec 1998 14:22:02 -0500
-
-ace (4.6.5-2) unstable; urgency=low
-
- * Released ace-4.6.5-2 packages.
- * gperf files (gperf, gperf.1 and gperf.info) will be installed as gperf-ace
- to prevent conflicts with the existing Cygnus based gperf package.
- * Corrected libACE compile list by removing template sources from the
- libACE "SOURCES" make variable.
-
- -- Ossama Othman <ossama@debian.org> Thu, 3 Dec 1998 15:59:06 -0500
-
-ace (4.6.5-1) unstable; urgency=low
-
- * Released ace-4.6.5-1 packages
-
- -- Ossama Othman <othman@astrosun.tn.cornell.edu> Tue, 1 Dec 1998 16:09:49 -0500
-
-ace (4.6.4-2) unstable; urgency=low
-
- * Added libnsl to library check for t_accept() (not a Debian issue).
- * Moved all pre-processor related lines to the first column of the M4 block
- so that they will be in the first column of their respective test programs.
- * Made definition of ACE_HAS_NONSTATIC_OBJECT_MANAGER a configure script
- option since there was no working autoconf test for it.
-
- -- Ossama Othman <othman@astrosun.tn.cornell.edu> Mon, 30 Nov 1998 17:24:49 -0500
-
-ace (4.6.4-1) unstable; urgency=low
-
- * Added "install-info" commands to postinst and prerm scripts.
- * Added a "modernized" gperf.info to the distribution.
- * Added "#ifndef" guards to PACKAGE, VERSION, DEBUG and NDEBUG macros in
- acconfig.h to prevent redefinition when using ACE with a package that
- defines them.
- * Added Env_Value_T.cpp to list of template sources to be installed.
- * Moved ace-config script to "-dev" package.
- * Added gperf to the distribution.
-
- -- Ossama Othman <othman@astrosun.tn.cornell.edu> Fri, 13 Nov 1998 16:02:32 -0500
-
-ace (4.6.3-2) unstable; urgency=low
-
- * Released ace-4.6.3-2 packages.
- * Corrected ace-config and configure scripts so that the X11 libraries are
- displayed correctly by the ace-config script.
-
- -- Ossama Othman <othman@astrosun.tn.cornell.edu> Thu, 12 Nov 1998 17:24:11 -0500
-
-ace (4.6.3-1) unstable; urgency=low
-
- * Initial Release.
-
- -- Ossama Othman <othman@astrosun.tn.cornell.edu> Thu, 12 Nov 1998 13:13:59 -0500
-
diff --git a/ACE/debianbuild/cmp-installation.sh b/ACE/debianbuild/cmp-installation.sh
deleted file mode 100755
index d12d8e83dd8..00000000000
--- a/ACE/debianbuild/cmp-installation.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-#
-# This script compares autoconf-based installation against regular builds
-# provided files.
-#
-# This script should be run after `make install DESTDIR=debian/tmp' has been
-# run on autoconf-based build.
-#
-
-set -e
-
-P1=ACE_wrappers
-P2=debian/tmp/usr/include
-
-# Find files
-# ff <from>
-ff() {
- find "$1" -name '*.h' -o -name '*.inl' -o -name '*.hpp' -o -name '*.ipp'
-}
-
-# Remove path with examples, tests and tutorial from STDIN
-drop() {
- grep -E -v '(examples|tests|tutorials)/'
-}
-
-# Removed unused/unshipped stuff
-unused() {
- grep -E -v '^/(ASNMP|CIAO|TAO_IDL|ace/QoS|apps|contrib|utils)'
-}
-
-F1=`mktemp -t ace_regular.XXXXXXXXXX`
-F2=`mktemp -t ace_autoconf.XXXXXXXXXX`
-trap "rm $F1 $F2" 0
-
-ff $P1 | sed -e "s@$P1@@" -e "s@/TAO@@" -e "s@/protocols@@" -e "s@^/orbsvcs@@" | drop | unused | sort >> $F1
-ff $P2 | sed -e "s@$P2@@" | sort >> $F2
-diff -u $F1 $F2
diff --git a/ACE/debianbuild/compat b/ACE/debianbuild/compat
deleted file mode 100644
index 7ed6ff82de6..00000000000
--- a/ACE/debianbuild/compat
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/ACE/debianbuild/control b/ACE/debianbuild/control
deleted file mode 100644
index 0c84d35242b..00000000000
--- a/ACE/debianbuild/control
+++ /dev/null
@@ -1,626 +0,0 @@
-Source: ace
-Section: devel
-Priority: optional
-Maintainer: Debian ACE+TAO maintainers <pkg-ace-devel@lists.alioth.debian.org>
-Uploaders: Konstantinos Margaritis <markos@debian.org>, Brian Nelson <pyro@debian.org>, Thomas Girard <thomas.g.girard@free.fr>
-Build-Depends: debhelper (>= 5), libssl-dev (>= 0.9.7d), dpatch (>= 2.0.10), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev (>= 8.4.7), libfox-1.6-dev, zlib1g-dev, libzzip-dev, docbook-to-man, bzip2, autoconf, automake, libtool, autotools-dev, doxygen
-Build-Conflicts: autoconf2.13, automake1.4
-Standards-Version: 3.8.0
-Vcs-Svn: svn://svn.debian.org/svn/pkg-ace/trunk
-Vcs-Browser: http://svn.debian.org/wsvn/pkg-ace/trunk
-Homepage: http://www.cs.wustl.edu/~schmidt/ACE.html
-
-Package: mpc-ace
-Architecture: all
-Section: devel
-Depends: ${perl:Depends}
-Recommends: make
-Replaces: libace-dev (= 5.6.7-4)
-Suggests: libace-dev, pkg-config
-Description: makefile, project and workspace creator
- This package contains the Makefile, Project and Workspace Creator (MPC)
- as distributed with the ACE toolkit.
- .
- MPC generates platform and compiler specific files to automate the
- compilation process.
- .
- The following programs are included:
- * mpc-ace, generating project files for a single target
- * mwc-ace, generating workspace files for a set of projects
-
-Package: libace-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: C++ network programming framework
- This package contains the ADAPTIVE Communication Environment (ACE)
- framework.
- .
- It provides platform independent C++ wrappers for interprocess
- communication:
- * signals
- * pipes
- * sockets
- * message queues
- * semaphores
- * shared memory
- as well as thread, process management routines and much more.
- .
- Moreover, it defines patterns for common communication tasks. Beyond
- these:
- * Reactor, to handle event demultiplexing and dispatching
- * Proactor, for asynchronous I/O driven programs
-
-Package: libace-dev
-Architecture: any
-Section: libdevel
-Depends: libace-5.6.7 (= ${binary:Version})
-Suggests: libace-doc, libtao-dev, pkg-config
-Replaces: mpc-ace (<< 5.6.7-4)
-Description: C++ network programming framework development files
- This package contains the header files and static library for the ACE
- framework.
-
-Package: libace-doc
-Architecture: all
-Section: doc
-Suggests: libace-dev
-Description: C++ network programming framework documentation
- This package contains the ACE overview documentation, tutorials,
- examples, and information regarding upstream development.
-
-Package: libace-ssl-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE secure socket layer library
- This package contains wrappers that integrate the OpenSSL library in the
- ACE framework.
-
-Package: libace-ssl-dev
-Architecture: any
-Section: libdevel
-Depends: libace-ssl-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libssl-dev (>= 0.9.7d)
-Description: ACE secure socket layer library development files
- This package contains the header files and static library for the ACE
- SSL library.
-
-Package: libace-rmcast-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE reliable multicast library
- The RMCast library is a reliable source-ordered multicast protocol
- implementation.
- .
- It uses sequence number for re-ordering, duplicate suppression and
- loss detection of messages.
-
-Package: libace-rmcast-dev
-Architecture: any
-Section: libdevel
-Depends: libace-rmcast-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version})
-Description: ACE reliable multicast library development files
- This package contains the header files and static library for the ACE
- reliable multicast library.
-
-Package: libace-tmcast-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE transactional multicast library
- The TMCast library is a transaction multicast protocol implementation.
- .
- Each message is delivered to multicast group members as a transaction:
- an atomic, consistent and isolated action.
-
-Package: libace-tmcast-dev
-Architecture: any
-Section: libdevel
-Depends: libace-tmcast-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version})
-Description: ACE transactional multicast library development files
- This package contains the header files and static library for the ACE
- transactional multicast library.
-
-Package: libace-htbp-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE protocol over HTTP tunneling library
- The HTTP Tunneling, Bidirectional, Protocol (HTBP) library enables
- the writing of stream-based protocols over HTTP.
- .
- This allows clients behind a firewall to establish a connection with
- outbound servers using the HTTP protocol.
-
-Package: libace-htbp-dev
-Architecture: any
-Section: libdevel
-Depends: libace-htbp-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version})
-Description: ACE protocol over HTTP tunneling library development files
- This package contains the header files and static library for the ACE
- HTBP library.
-
-Package: gperf-ace
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: ACE perfect hash function generator
- gperf-ace is the ACE version of gperf.
- .
- Both gperf-ace and gperf were written by the same author, and have
- basically the same options and functionality. gperf-ace simply takes
- advantage of the some of the features provided by the ACE library.
-
-Package: libacexml-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE SAX based XML parsing library
- This package provides interfaces for XML parsing based on Simple API
- for XML (SAX) 2.0, defined by David Megginson. This is an event-driven
- parsing approach.
- .
- ACEXML is a small footprint and portable library. It does not validate
- XML documents and supports only Unicode encoding.
-
-Package: libacexml-dev
-Architecture: any
-Section: libdevel
-Depends: libacexml-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version})
-Description: ACE SAX based XML parsing library development files
- This package contains the header files and static library for the ACE
- XML parsing library.
-
-Package: libkokyu-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Suggests: libtao-1.6.9, libtao-orbsvcs-1.6.9
-Description: ACE scheduling and dispatching library
- Kokyu is a library designed to provide flexible scheduling and
- dispatching services.
- .
- Currently it provides real-time scheduling and dispatching services
- for TAO real-time CORBA Event Service.
-
-Package: libkokyu-dev
-Architecture: any
-Section: libdevel
-Depends: libkokyu-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version})
-Description: ACE scheduling and dispatching library development files
- This package contains the header files and static library for the ACE
- scheduling and dispatching library.
-
-Package: libace-qtreactor-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE-GUI reactor integration for Qt
- Recognizing the need to write reactor-based GUI applications, the ACE
- community has created several reactor extensions for use with X Window
- System. Each of these extends the ACE_Select_Reactor to work with a
- specific toolkit. By using these reactors, your GUI application can remain
- single threaded yet still respond to both GUI events, such as button
- presses, any your own application events.
- .
- The ACE_QtReactor extends both the ACE_Select_Reactor and the Trolltech Qt
- library's QObjects class. Rather then using select(), the
- QtWaitForMultipleEvents() function is used.
-
-Package: libace-qtreactor-dev
-Architecture: any
-Section: libdevel
-Depends: libace-qtreactor-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libqt4-dev
-Description: ACE-GUI reactor integration for Qt development files
- This package contains header files and static library for the ACE-Qt
- reactor integration.
-
-Package: libace-xtreactor-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE-GUI reactor integration for Xt
- Recognizing the need to write reactor-based GUI applications, the ACE
- community has created several reactor extensions for use with X Window
- System. Each of these extends the ACE_Select_Reactor to work with a
- specific toolkit. By using these reactors, your GUI application can remain
- single threaded yet still respond to both GUI events, such as button presses,
- any your own application events.
- .
- The ACE_XtReactor extends both the ACE_Select_Reactor and the X Toolkit
- library function XtWaitForMultipleEvents().
-
-Package: libace-xtreactor-dev
-Architecture: any
-Section: libdevel
-Depends: libace-xtreactor-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libxt-dev (>= 4.3.0)
-Description: ACE-GUI reactor integration for Xt development files
- This package contains header files and static library for the ACE-Xt
- reactor integration.
-
-Package: libace-tkreactor-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE-GUI reactor integration for Tk
- Recognizing the need to write reactor-based GUI applications, the ACE
- community has created several reactor extensions for use with X Window
- System. Each of these extends the ACE_Select_Reactor to work with a
- specific toolkit. By using these reactors, your GUI application can remain
- single threaded yet still respond to both GUI events, such as button presses,
- any your own application events.
- .
- The ACE_TkReactor provides reactor functionality around the popular Tcl/Tk
- library. The underlying Tcl/Tk method used is Tcl_DoOneEvent().
-
-Package: libace-tkreactor-dev
-Architecture: any
-Section: libdevel
-Depends: libace-tkreactor-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), tk-dev (>= 8.4.7)
-Description: ACE-GUI reactor integration for Tk development files
- This package contains header files and static library for the ACE-Tk
- reactor integration.
-
-Package: libace-flreactor-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE-GUI reactor integration for Fl
- Recognizing the need to write reactor-based GUI applications, the ACE
- community has created several reactor extensions for use with X Window
- System. Each of these extends the ACE_Select_Reactor to work with a
- specific toolkit. By using these reactors, your GUI application can remain
- single threaded yet still respond to both GUI events, such as button presses,
- any your own application events.
- .
- The ACE_FlReactor integrates with the FastLight toolkit's Fl::wait() method.
-
-Package: libace-flreactor-dev
-Architecture: any
-Section: libdevel
-Depends: libace-flreactor-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfltk1.1-dev (>= 1.1.4)
-Description: ACE-GUI reactor integration for Fl development files
- This package contains header files and static library for the ACE-Fl
- reactor integration.
-
-Package: libace-foxreactor-5.6.7
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE-GUI reactor integration for FOX
- Recognizing the need to write reactor-based GUI applications, the ACE
- community has created several reactor extensions for use with X Window
- System. Each of these extends the ACE_Select_Reactor to work with a
- specific toolkit. By using these reactors, your GUI application can remain
- single threaded yet still respond to both GUI events, such as button
- presses, any your own application events.
- .
- The ACE_FoxReactor integrates with the FOX toolkit.
-
-Package: libace-foxreactor-dev
-Architecture: any
-Section: libdevel
-Depends: libace-foxreactor-5.6.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfox-1.6-dev
-Description: ACE-GUI reactor integration for FOX development files
- This package contains header files and static library for the ACE-FOX
- reactor integration.
-
-Package: libtao-1.6.9
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: ACE based CORBA ORB core libraries
- The ACE ORB (TAO) is an open-source Common Object Request Broker
- Architecture (CORBA) 2.x-compliant Object Request Broker (ORB). It
- supports real-time extensions.
- .
- This package contains TAO core libraries.
-
-Package: libtao-dev
-Architecture: any
-Section: libdevel
-Depends: libtao-1.6.9 (= ${binary:Version}), libace-dev (= ${binary:Version})
-Suggests: libtao-doc, libtao-orbsvcs-dev
-Description: ACE based CORBA ORB core libraries development files
- This package contains the header files for TAO. Due to the size of the
- static libs (> 400MB) they have been left out.
-
-Package: libtao-doc
-Architecture: all
-Section: doc
-Depends: libace-doc (= ${source:Version})
-Suggests: libtao-dev
-Description: ACE based CORBA ORB core libraries documentation
- This package contains the TAO overview documentation, tutorials,
- examples, and information regarding upstream development.
-
-Package: libtao-orbsvcs-1.6.9
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: TAO CORBA services libraries
- This package contains libraries that are needed by many TAO programs.
-
-Package: libtao-orbsvcs-dev
-Architecture: any
-Section: libdevel
-Depends: libtao-orbsvcs-1.6.9 (= ${binary:Version}), libtao-dev (= ${binary:Version})
-Description: TAO CORBA services development files
- This package contains the header files for the TAO CORBA services.
- .
- Due to the size of the static libs (> 400MB) they have been left out.
- The examples and some documentation have been included as well.
-
-Package: libtao-qtresource-1.6.9
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: TAO-GUI reactor integration for Qt
- The Qt resource factory integrates ACE QtReactor into TAO ORB reactor.
-
-Package: libtao-qtresource-dev
-Architecture: any
-Section: libdevel
-Depends: libtao-qtresource-1.6.9 (= ${binary:Version}), libace-qtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version})
-Description: TAO-GUI reactor integration for Qt development files
- This package contains header files and static library for the TAO-Qt
- reactor integration.
-
-Package: libtao-xtresource-1.6.9
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: TAO-GUI reactor integration for Xt
- The Xt resource factory integrates ACE XtReactor into TAO ORB reactor.
-
-Package: libtao-xtresource-dev
-Architecture: any
-Section: libdevel
-Depends: libtao-xtresource-1.6.9 (= ${binary:Version}), libace-xtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version})
-Description: TAO-GUI reactor integration for Xt development files
- This package contains header files and static library for the TAO-Xt
- reactor integration.
-
-Package: libtao-flresource-1.6.9
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: TAO-GUI reactor integration for Fl
- The Fl resource factory integrates ACE FlReactor into TAO ORB reactor.
-
-Package: libtao-flresource-dev
-Architecture: any
-Section: libdevel
-Depends: libtao-flresource-1.6.9 (= ${binary:Version}), libace-flreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version})
-Description: TAO-GUI reactor integration for Fl development files
- This package contains header files and static library for the TAO-Fl
- reactor integration.
-
-Package: libtao-tkresource-1.6.9
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: TAO-GUI reactor integration for Tk development files
- The Tk resource factory integrates ACE TkReactor into TAO ORB reactor.
-
-Package: libtao-tkresource-dev
-Architecture: any
-Section: libdevel
-Depends: libtao-tkresource-1.6.9 (= ${binary:Version}), libace-tkreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version})
-Description: TAO-GUI reactor integration for Tk development files
- This package contains header files and static library for the TAO-Tk
- reactor integration.
-
-Package: libtao-foxresource-1.6.9
-Architecture: any
-Section: libs
-Depends: ${shlibs:Depends}
-Description: TAO-GUI reactor integration for FOX
- The Fl resource factory integrates ACE FoxReactor into TAO ORB reactor.
-
-Package: libtao-foxresource-dev
-Architecture: any
-Section: libdevel
-Depends: libtao-foxresource-1.6.9 (= ${binary:Version}), libace-foxreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version})
-Description: TAO-GUI reactor integration for FOX development files
- This package contains header files and static library for the TAO-FOX
- reactor integration.
-
-Package: tao-idl
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO IDL to C++ compiler
- This package provides a Interface Definition Language (IDL) to C++ compiler.
- .
- Use tao_idl to generate stubs and skeletons to call or implement CORBA
- distributed objects in C++.
-
-Package: tao-ifr
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO interface repository
- CORBA-aware programs can contact an interface repository to get objects
- interfaces at run-time. Then they can use the Dynamic Invocation
- Interface (DII) mechanism to invoke requests on those objects.
- .
- This package includes the following programs:
- * IFR_Service: interface repository server
- * tao_ifr: feeds in the interface repository
-
-Package: tao-imr
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO implementation repository
- An implementation repository activates CORBA servers on demand.
- .
- This package includes the following programs:
- * ImplRepo_Service: the main server; delegates call to activators
- * ImR_Activator: activates and shuts servers down on demand
- * tao_imr: registers servers for later activation
-
-Package: tao-ft
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO fault tolerant services
- TAO supports Fault Tolerance for CORBA Objects.
- .
- This package includes three FT CORBA infrastructure components:
- * Fault_Detector that monitors a process or a host
- * Fault_Notifier that receives fault reports from detectors
- * FT_ReplicationManager that manages object groups
-
-Package: tao-utils
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Suggests: tao-naming
-Description: TAO naming service and IOR utilities
- This package includes programs to query or control a CORBA naming
- service, and to dump an IOR.
- .
- The following programs are included:
- * tao-nslist, to list naming context and object bindings
- * tao-nsadd, to create bindings
- * tao-nsdel, to remove bindings
- * tao-catior, to dump the content of an Interoperable Object Reference
-
-Package: tao-naming
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Recommends: tao-utils
-Description: TAO naming service
- TAO implementation of CORBA interoperable naming service (INS).
- .
- A naming service provides a location service for CORBA objects. Given a
- name, it will return the Interoperable Object Reference (IOR) for the CORBA
- object that was registered with this name.
-
-Package: tao-trading
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO trading service
- TAO implementation of CORBA trading service.
- .
- A trading service is quite like a naming service except that it relies on a
- set of properties instead of a name to find object references.
-
-Package: tao-event
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO event service
- An event service creates channels where suppliers and consumers
- can push or pull events. This channel enables asynchronous, message
- based communication between consumers and suppliers.
- .
- This event service supports both the Push and Pull styles for event
- communication.
-
-Package: tao-rtevent
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO real-time event service
- Another TAO implementation of CORBA event service. For more information on
- CORBA event service have a look at tao-event package.
- .
- This version does not support the Pull style but provides a real-time
- event channel.
-
-Package: tao-ftrtevent
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO fault-tolerant real-time event service
- TAO fault-tolerant, real-time CORBA event service. For more information on
- CORBA event service have a look at tao-event package.
- .
- This package contains:
- * ftrt_eventservice, the fault-tolerant event channel
- * ftrtec_factory_service, spawning ftrt_eventservice processes
- * ftrtec_gateway_service, relaying events to FT CORBA unaware clients
-
-Package: tao-notify
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO notification service
- A notification service enhances an event service. For more information on
- CORBA event service have a look at tao-event package.
- .
- The notification service adds:
- * quality of service control on reliability and speed
- * event filtering
-
-Package: tao-load
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO load balancing service
- TAO implementation of OMG Load Balancing and Monitoring specification.
- .
- This package provides:
- * LoadManager, that distributes loads across objects
- * LoadMonitor, that monitors and reports loads to a manager
-
-Package: tao-log
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO telecom log services
- TAO implementations of CORBA telecom log service.
- .
- Four separate services are provided:
- * Basic_Logging_Service
- * Event_Logging_Service
- * Notify_Logging_Service
- * RTEvent_Logging_Service
-
-Package: tao-scheduling
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO scheduling service
- TAO implementation of CORBA scheduling service.
- .
- This package contains:
- * Scheduling_Service
- * Dump_Schedule
-
-Package: tao-concurrency
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO concurrency service
- A concurrency service provides a mechanism to acquire and release locks in
- a distributed system.
- .
- TAO version does not support transactions.
-
-Package: tao-lifecycle
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO lifecycle service
- The CORBA lifecycle service allows clients to create, delete, copy and move
- objects.
- .
- This package contains the TAO implementation of such service.
-
-Package: tao-time
-Architecture: any
-Section: devel
-Depends: ${shlibs:Depends}
-Description: TAO time service
- A time service offers globally synchronized time to clients.
- .
- This package contains two programs:
- * Time_Service_Clerk, answering client requests
- * Time_Service_Server, queried by clerks to keep their time synchronized
diff --git a/ACE/debianbuild/copyright b/ACE/debianbuild/copyright
deleted file mode 100644
index 891512b3683..00000000000
--- a/ACE/debianbuild/copyright
+++ /dev/null
@@ -1,690 +0,0 @@
-This package was debianized by:
- Ossama Othman <ossama@debian.org> on Fri, 25 Sep 1998 16:43:42 -0400.
-
-It is now maintained by:
- Brian Nelson <pyro@debian.org>
- Konstantinos Margaritis <markos@debian.org>
- Thomas Girard <thomas.g.girard@free.fr>
-
-It was downloaded from: <http://download.dre.vanderbilt.edu/>
-
-Files: *
-Copyright: © 1993-2008 Douglas C. Schmidt and his research group at
- Washington University, University of California, Irvine,
- and Vanderbilt University
-License: other-BSD
- Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM), and
- CoSMIC(TM)
-
- [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), and [4]CoSMIC(TM) (henceforth
- referred to as "DOC software") are copyrighted by [5]Douglas C.
- Schmidt and his [6]research group at [7]Washington University,
- [8]University of California, Irvine, and [9]Vanderbilt University,
- Copyright (c) 1993-2008, all rights reserved. Since DOC software is
- open-source, freely available software, you are free to use, modify,
- copy, and distribute--perpetually and irrevocably--the DOC software
- source code and object code produced from the source, as well as copy
- and distribute modified versions of this software. You must, however,
- include this copyright statement along with any code built using DOC
- software that you release. No copyright statement needs to be provided
- if you just ship binary executables of your software products.
-
- You can use DOC software in commercial and/or binary software releases
- and are under no obligation to redistribute any of your source code
- that is built using DOC software. Note, however, that you may not do
- anything to the DOC software code, such as copyrighting it yourself or
- claiming authorship of the DOC software code, that will prevent DOC
- software from being distributed freely using an open-source
- development model. You needn't inform anyone that you're using DOC
- software in your software, though we encourage you to let [10]us know
- so we can promote your project in the [11]DOC software success
- stories.
-
- The [12]ACE, [13]TAO, [14]CIAO, and [15]CoSMIC web sites are
- maintained by the [16]DOC Group at the [17]Institute for Software
- Integrated Systems (ISIS) and the [18]Center for Distributed Object
- Computing of Washington University, St. Louis for the development of
- open-source software as part of the open-source software community. By
- submitting comments, suggestions, code, code snippets, techniques
- (including that of usage) and algorithms (collectively
- ``Submissions''), submitters acknowledge that they have the right to
- do so, that any such Submissions are given freely and unreservedly,
- and that they waive any claims to copyright or ownership. In addition,
- submitters acknowledge that any such Submission might become part of
- the copyright maintained on the overall body of code that comprises
- the DOC software. By making a Submission, submitter agree to these
- terms. Moreover, submitters acknowledge that the incorporation or
- modification of such Submissions is entirely at the discretion of the
- moderators of the open-source DOC software projects or their
- designees.
-
- Submissions are provided by the submitter ``as is'' with no warranties
- whatsoever, including any warranty of merchantability, noninfringement
- of third party intellectual property, or fitness for any particular
- purpose. In no event shall the submitter be liable for any direct,
- indirect, special, exemplary, punitive, or consequential damages,
- including without limitation, lost profits, even if advised of the
- possibility of such damages. Likewise, DOC software is provided as is
- with no warranties of any kind, including the warranties of design,
- merchantability, and fitness for a particular purpose,
- noninfringement, or arising from a course of dealing, usage or trade
- practice. Washington University, UC Irvine, Vanderbilt University,
- their employees, and students shall have no liability with respect to
- the infringement of copyrights, trade secrets or any patents by DOC
- software or any part thereof. Moreover, in no event will Washington
- University, UC Irvine, or Vanderbilt University, their employees, or
- students be liable for any lost revenue or profits or other special,
- indirect and consequential damages.
-
- DOC software is provided with no support and without any obligation on
- the part of Washington University, UC Irvine, Vanderbilt University,
- their employees, or students to assist in its use, correction,
- modification, or enhancement. A [19]number of companies around the
- world provide commercial support for DOC software, however.
-
- DOC software is Y2K-compliant, as long as the underlying OS platform
- is Y2K-compliant. Likewise, DOC software is compliant with the new US
- daylight savings rule passed by Congress as "The Energy Policy Act of
- 2005," which established new daylight savings times (DST) rules for
- the United States that expand DST as of March 2007. Since DOC software
- obtains time/date and calendaring information from operating systems
- users will not be affected by the new DST rules as long as they
- upgrade their operating systems accordingly.
-
- The names ACE(TM), TAO(TM), CIAO(TM), CoSMIC(TM), Washington
- University, UC Irvine, and Vanderbilt University, may not be used to
- endorse or promote products or services derived from this source
- without express written permission from Washington University, UC
- Irvine, or Vanderbilt University. Further, products or services
- derived from this source may not be called ACE(TM), TAO(TM), CIAO(TM),
- or CoSMIC(TM) nor may the name Washington University, UC Irvine, or
- Vanderbilt University appear in their names, without express written
- permission from Washington University, UC Irvine, and Vanderbilt
- University.
-
- If you have any suggestions, additions, comments, or questions, please
- let [20]me know.
-
- [21]Douglas C. Schmidt
- _________________________________________________________________
-
- Back to the [22]ACE home page.
-
- References
- 1. http://www.cs.wustl.edu/~schmidt/ACE.html
- 2. http://www.cs.wustl.edu/~schmidt/TAO.html
- 3. http://www.dre.vanderbilt.edu/CIAO/
- 4. http://www.dre.vanderbilt.edu/cosmic/
- 5. http://www.dre.vanderbilt.edu/~schmidt/
- 6. http://www.cs.wustl.edu/~schmidt/ACE-members.html
- 7. http://www.wustl.edu/
- 8. http://www.uci.edu/
- 9. http://www.vanderbilt.edu/
- 10. mailto:doc_group@cs.wustl.edu
- 11. http://www.cs.wustl.edu/~schmidt/ACE-users.html
- 12. http://www.cs.wustl.edu/~schmidt/ACE.html
- 13. http://www.cs.wustl.edu/~schmidt/TAO.html
- 14. http://www.dre.vanderbilt.edu/CIAO/
- 15. http://www.dre.vanderbilt.edu/cosmic/
- 16. http://www.dre.vanderbilt.edu/
- 17. http://www.isis.vanderbilt.edu/
- 18. http://www.cs.wustl.edu/~schmidt/doc-center.html
- 19. http://www.cs.wustl.edu/~schmidt/commercial-support.html
- 20. mailto:d.schmidt@vanderbilt.edu
- 21. http://www.dre.vanderbilt.edu/~schmidt/
- 22. http://www.cs.wustl.edu/ACE.html
-
-Files: apps/gperf/*
-Copyright: © 1989 Free Software Foundation, Inc.
-License: GPL-2+
- On Debian systems the full text of the GNU General Public License (Version 2)
- can be found in the `/usr/share/common-licenses/GPL-2' file.
-
-Files: ACE_wrappers/MPC/*
-Copyright: © 2003-2006 OCI. St. Louis MO USA
-License: other-BSD
- MPC (Licensed Product) is protected by copyright, and is distributed under
- the following terms.
-
- MPC (Make, Project and workspace Creator) is an open source tool, developed
- by OCI and written in Perl. It is designed to generate a variety of tool
- specific project files from a common baseline. Through the powerful
- combination of inheritance and defaults MPC is able to reduce the
- maintenance burden normally associated with keeping multiple target
- platforms, their unique build tools, and inconsistent feature sets current.
- It is also easily extensible to support new build environments. The
- objective is to solve the prevalent problem of fragile build environments,
- usually experienced by developer groups, by replacing it with a singular
- robust build environment, and an active community of users committed to its
- evolution.
-
- Since MPC is open source and free of licensing fees, you are free to use,
- modify, and distribute the source code, as long as you include this
- copyright statement.
-
- In particular, you can use MPC to build proprietary software and are under
- no obligation to redistribute any of your source code that is built using
- MPC. Note, however, that you may not do anything to the MPC code, such as
- copyrighting it yourself or claiming authorship of the MPC code, that will
- prevent MPC from being distributed freely using an open source development
- model.
-
- Warranty
-
- LICENSED PRODUCT IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE, NON-INFRINGEMENT, OR ARISING FROM A COURSE OF DEALING, USAGE OR
- TRADE PRACTICE.
-
- Support
-
- LICENSED PRODUCT IS PROVIDED WITH NO SUPPORT AND WITHOUT ANY OBLIGATION ON
- THE PART OF OCI OR ANY OF ITS SUBSIDIARIES OR AFFILIATES TO ASSIST IN ITS
- USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
-
- Support may be available from OCI to users who have agreed to a support
- contract.
-
- Liability
-
- OCI OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
- RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
- LICENSED PRODUCT OR ANY PART THEREOF.
-
- IN NO EVENT WILL OCI OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
- ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
- DAMAGES, EVEN IF OCI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- MPC copyright OCI. St. Louis MO USA, 2003-2006
-
-Files: ACE_wrappers/contrib/minizip/*.[ch]
-Copyright: © 1998-2005 Gilles Vollant
-License: ZLIB
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
-Files: ACE_wrappers/contrib/utility/*
-Copyright: © 2002-2003 Boris Kolpackov
-License: other-BSD
- This software or documentation is provided 'as-is', without any
- express or implied warranty. In no event will the author or contributors
- be held liable for any damages arising from the use of this software
- or documentation.
-
- Permission is granted to anyone to use this software or documentation
- for any purpose, including commercial applications, and to alter it and
- redistribute it freely, subject to the following restrictions:
-
- 1. The origin of this software or documentation must not be
- misrepresented; you must not claim that you wrote the original
- software or documentation. If you use this software or
- documentation in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
-
- 2. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software or documentation.
- Altered source versions may be contributed back to the author to be
- integrated into the original software or documentation at the
- author's discretion.
-
- 3. Neither this notice or reference to it nor any copyright, author or
- contributor clause may be removed from or altered in any software
- source distribution or documentation covered by this license.
-
- 4. Neither the name of the author, nor the names of contributors may be
- used to endorse or promote products derived from this software or
- documentation without specific prior written permission.
-
-Files: ACE_wrappers/TAO/TAO_IDL/*
- ACE_wrappers/*/drv_*_ifr.*
- ACE_wrappers/*/be_produce.cpp
- ACE_wrappers/*/be_extern.h
-Copyright: © 1992-1995 Sun Micosystems, Inc
-License: other
- COPYRIGHT
-
- Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the
- United States of America. All Rights Reserved.
-
- This product is protected by copyright and distributed under the
- following license restricting its use.
-
- The Interface Definition Language Compiler Front End (CFE) is made
- available for your use provided that you include this license and
- copyright notice on all media and documentation and the software
- program in which this product is incorporated in whole or part. You
- may copy and extend functionality (but may not remove functionality)
- of the Interface Definition Language CFE without charge, but you are
- not authorized to license or distribute it to anyone else except as
- part of a product or program developed by you or with the express
- written consent of Sun Microsystems, Inc. ("Sun").
-
- The names of Sun Microsystems, Inc. and any of its subsidiaries or
- affiliates may not be used in advertising or publicity pertaining to
- distribution of Interface Definition Language CFE as permitted herein.
-
- This license is effective until terminated by Sun for failure to
- comply with this license. Upon termination, you shall destroy or
- return all code and documentation for the Interface Definition
- Language CFE.
-
- INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES
- OF ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND
- FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A
- COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-
- INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND
- WITHOUT ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES
- OR AFFILIATES TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR
- ENHANCEMENT.
-
- SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY
- WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY
- PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
-
- IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE
- LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND
- CONSEQUENTIAL DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY
- OF SUCH DAMAGES.
-
- Use, duplication, or disclosure by the government is subject to
- restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
- Technical Data and Computer Software clause at DFARS 252.227-7013 and
- FAR 52.227-19.
-
- Sun, Sun Microsystems and the Sun logo are trademarks or registered
- trademarks of Sun Microsystems, Inc.
-
- SunSoft, Inc.
- 2550 Garcia Avenue
- Mountain View, California 94043
-
- NOTE:
-
- SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
- trademarks or registered trademarks of Sun Microsystems, Inc.
-
-Files: ACE_wrappers/TAO/tao/DynamicInterface/Unknown_User_Exception.h
- ACE_wrappers/TAO/tao/DynamicInterface/ExceptionList.h
- ACE_wrappers/TAO/tao/DynamicInterface/Request.h
- ACE_wrappers/TAO/tao/DynamicInterface/Server_Request.h
- ACE_wrappers/TAO/tao/default_ports.h
- ACE_wrappers/TAO/tao/Stub.h
- ACE_wrappers/TAO/tao/corba.h
- ACE_wrappers/TAO/tao/GIOP_Message_Base.h
- ACE_wrappers/TAO/tao/Stub.cpp
- ACE_wrappers/TAO/tao/Object.h
- ACE_wrappers/TAO/tao/TAO_Server_Request.h
- ACE_wrappers/TAO/tao/CDR.h
- ACE_wrappers/TAO/tao/orbconf.h
- ACE_wrappers/TAO/tao/AnyTypeCode/Marshal.cpp
- ACE_wrappers/TAO/tao/AnyTypeCode/append.cpp
- ACE_wrappers/TAO/tao/AnyTypeCode/NVList.h
- ACE_wrappers/TAO/tao/Object.cpp
- ACE_wrappers/TAO/tao/Principal.h
- ACE_wrappers/TAO/tao/Principal.cpp
-Copyright: © 1995 Sun Microsystems, Inc
-License: other
- This notice applies to all files in this software distribution that
- were originally derived from SunSoft IIOP code (these files contain
- Sun Microsystems copyright notices).
-
- COPYRIGHT AND LICENSING
- -----------------------
-
- Copyright 1995 Sun Microsystems, Inc.
- Printed in the United States of America.
- All Rights Reserved.
-
- This software product (LICENSED PRODUCT), implementing the Object
- Management Group's "Internet Inter-ORB Protocol", is protected by
- copyright and is distributed under the following license restricting
- its use. Portions of LICENSED PRODUCT may be protected by one or more
- U.S. or foreign patents, or pending applications.
-
- LICENSED PRODUCT is made available for your use provided that you
- include this license and copyright notice on all media and
- documentation and the software program in which this product is
- incorporated in whole or part.
-
- You may copy, modify, distribute, or sublicense the LICENSED PRODUCT
- without charge as part of a product or software program developed by
- you, so long as you preserve the functionality of interoperating with
- the Object Management Group's "Internet Inter-ORB Protocol" version
- one. However, any uses other than the foregoing uses shall require
- the express written consent of Sun Microsystems, Inc.
-
- The names of Sun Microsystems, Inc. and any of its subsidiaries or
- affiliates may not be used in advertising or publicity pertaining to
- distribution of the LICENSED PRODUCT as permitted herein.
-
- This license is effective until terminated by Sun for failure to
- comply with this license. Upon termination, you shall destroy or
- return all code and documentation for the LICENSED PRODUCT.
-
- LICENSED PRODUCT IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND
- INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A
- PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
- DEALING, USAGE OR TRADE PRACTICE.
-
- LICENSED PRODUCT IS PROVIDED WITH NO SUPPORT AND WITHOUT ANY
- OBLIGATION ON THE PART OF SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
- TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
-
- SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY
- WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY
- PATENTS BY LICENSED PRODUCT OR ANY PART THEREOF.
-
- IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE
- LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND
- CONSEQUENTIAL DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY
- OF SUCH DAMAGES.
-
- Use, duplication, or disclosure by the government is subject to
- restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
- Technical Data and Computer Software clause at DFARS 252.227-7013 and
- FAR 52.227-19.
-
- SunOS, SunSoft, Sun, Solaris, Sun Microsystems and the Sun logo are
- trademarks or registered trademarks of Sun Microsystems, Inc.
-
- SunSoft, Inc.
- 2550 Garcia Avenue
- Mountain View, California 94043
-
-Files: ACE_wrappers/ace/OS_NS_unistd.inl (swab function)
-Copyright: © 1994-2006 Red Hat, Inc.
-License: BSD-3
-
-Files: ACE_wrappers/ace/UTF32_Encoding_Converter.cpp
- ACE_wrappers/ace/UTF16_Encoding_Converter.cpp
- ACE_wrappers/ace/UTF16_Encoding_Converter.inl
-Copyright: © 2001-2004 Unicode, Inc.
-License: other
- Limitations on Rights to Redistribute This Code
-
- Unicode, Inc. hereby grants the right to freely use the information
- supplied in this file in the creation of products supporting the
- Unicode Standard, and to make copies of this file in any form
- for internal or external distribution as long as this notice
- remains attached.
-
-Files: ACE_wrappers/apps/JAWS3/*
-Copyright: © 2000 James Hu and Entera, Inc.
-License: other
- Copyright and Licensing Information for JAWS Adaptive Web Server,
- version 3 (JAWS3).
-
- JAWS3 is copyrighted by James Hu and Entera, Inc., Copyright (c)
- 2000, all rights reserved. Since JAWS3 is open source, free
- software, you are free to use, modify, and distribute the JAWS3
- source code and object code produced or otherwise derived from
- JAWS3, provided you include this copyright statement in all versions
- of such code.
-
- In particular, you can use JAWS3 in proprietary software and are
- under no obligation to redistribute any of your source code that is
- derived from JAWS3. Note, however, that you may not modify the
- JAWS3 code in any way, or take any other action such as copyrighting
- it yourself or claiming authorship of the JAWS3 code, that will
- prevent JAWS3 from being distributed freely using an open source
- development model.
-
- JAWS3 is provided as is with no warranties of any kind, including
- the warranties of design, merchantibility and fitness for a
- particular purpose, noninfringement, or arising from a course of
- dealing, usage or trade practice. Moreover, JAWS3 is provided with
- no support and without any obligation on the part of Entera, Inc.,
- or its employees.
-
- Entera, Inc., and its employees shall have no liability with respect
- to the infringement of copyrights, trade secrets or any patents by
- JAWS3 or any part thereof. Moreover, in no event will Entera, Inc.,
- or its employees, be liable for any lost revenue or profits or other
- special, indirect and consequential damages.
-
- By submitting comments, suggestions, code, code snippets, techniques
- (including that of usage), and algorithms, submitters acknowledge
- that they have the right to do so, that any such submissions are
- given freely and unreservedly, and that they waive any claims to
- copyright or ownership. In addition, submitters acknowledge that
- any such submission might become part of the copyright maintained on
- the overall body of code, which comprises the JAWS3 software. By
- making a submission, submitters agree to these terms. Furthermore,
- submitters acknowledge that the incorporation or modification of
- such submissions is entirely at the discretion of the moderators of
- the open source JAWS3 project or their designees.
-
- The names JAWS3 and Entera, Inc., may not be used to endorse or
- promote products or services derived from this source without
- express written permission from Entera, Inc. Further, products or
- services derived from this source may not be called JAWS3 nor may
- the name Entera, Inc., appear in their names, without express
- written permission from Entera, Inc.
-
- If you have any suggestions, additions, comments, or questions,
- please let me know.
-
- James C. Hu
- Entera, Inc.
- jxh@entera.com
-
-Files: ACE_wrappers/apps/JAWS/clients/WebSTONE/*
-Copyright: © 1995 Silicon Graphics, Inc.
-License: other
- This file and all files contained in this directory are
- copyright 1995, Silicon Graphics, Inc.
-
- This software is provided without support and without any obligation on the
- part of Silicon Graphics, Inc. to assist in its use, correction, modification
- or enhancement. There is no guarantee that this software will be included in
- future software releases, and it probably will not be included.
-
- THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
- OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-
- In no event will Silicon Graphics, Inc. be liable for any lost revenue or
- profits or other special, indirect and consequential damages, even if
- Silicon Graphics, Inc. has been advised of the possibility of such damages.
-
-Files: ACE_wrappers/ASNMP/*
-Copyright: © 1996 Hewlett-Packard Company
- © 1988, 1989, 1991, 1992 Carnegie Mellon University
- © 1997 Cisco Systems, Inc.
-License: other-BSD
- These copyrights apply to the SNMP++ module shipped with the ACE library:
-
- /*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-
- =====================================================================*/
-
- /**********************************************************************
- Copyright 1988, 1989, 1991, 1992 by Carnegie Mellon University
-
- All Rights Reserved
-
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted,
- provided that the above copyright notice appear in all copies and that
- both that copyright notice and this permission notice appear in
- supporting documentation, and that the name of CMU not be
- used in advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- SOFTWARE.
- ******************************************************************/
-
- Certain portions of this version of HP's SNMP++ are:
-
- /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- Copyright 1997 Cisco Systems, Inc.
-
- Permission to use, copy, modify, and distribute this software for any
- purpose and without fee is hereby granted, provided that this
- copyright and permission notice appear on all copies of the software and
- supporting documentation, the name of Cisco Systems, Inc. not be used
- in advertising or publicity pertaining to distribution of the
- program without specific prior permission, and notice be given
- in supporting documentation that modification, copying and distribution is by
- permission of Cisco Systems, Inc.
-
- Cisco Systems, Inc. makes no representations about the suitability of this
- software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
- AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
- LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
- FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
- LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
- SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
- DAMAGES.
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-Files: ACE_wrappers/ace/OS_NS_wchar.cpp (wcs*_emulation functions)
-Copyright: © 1991, 1993 The Regents of the University of California
-License: BSD-4
- Copyright (c) 1991, 1993
- The Regents of the University of California. All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- James W. Williams of NASA Goddard Space Flight Center.
-
- 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.
- 3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
- 4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
-
-Files: ACE_wrappers/ace/Get_Opt.cpp
-Copyright: © 1987, 1993, 1994 The Regents of the University of California
- © 2000 The NetBSD Foundation, Inc.
-License: BSD-4
- Copyright (c) 1987, 1993, 1994
- The Regents of the University of California. All rights reserved.
-
- 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.
- 3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
- 4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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) 2000 The NetBSD Foundation, Inc.
- All rights reserved.
-
- This code is derived from software contributed to The NetBSD Foundation
- by Dieter Baron and Thomas Klausner.
-
- 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.
- 3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the NetBSD
- Foundation, Inc. and its contributors.
- 4. Neither the name of The NetBSD Foundation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- ``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 FOUNDATION OR CONTRIBUTORS
- 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.
-
-Files: ACE_wrappers/examples/C++NPv1
- ACE_wrappers/examples/C++NPv2
- ACE_wrappers/examples/APG
-Copyright: © 2001, 2003 Addison Wesley
-License: other
- All of the files in these directories are copyright Addison Wesley,
- and they come with absolutely no warranty whatsoever. Permission is
- hereby granted to use these programs for educational or commercial
- purposes.
diff --git a/ACE/debianbuild/dsc b/ACE/debianbuild/dsc
deleted file mode 100644
index 0eb4b47c54f..00000000000
--- a/ACE/debianbuild/dsc
+++ /dev/null
@@ -1,10 +0,0 @@
-# Format: 1.0
-# Source: ace
-# Version: 1.5.7
-# Binary: ace
-# Maintainer: Johnny Willemsen <jwillemsen@remedy.nl>
-# Architecture: any
-# Build-Depends: g++
-# Files:
-# d57283ebb8157ae919762c58419353c8 133282 ACE+TAO+CIAO-src-5.6.7.tar.bz2
-#
diff --git a/ACE/debianbuild/libace-5.6.8.docs b/ACE/debianbuild/libace-5.6.8.docs
deleted file mode 100644
index e367841dc93..00000000000
--- a/ACE/debianbuild/libace-5.6.8.docs
+++ /dev/null
@@ -1,8 +0,0 @@
-ACE_wrappers/README
-ACE_wrappers/VERSION
-ACE_wrappers/AUTHORS
-ACE_wrappers/FAQ
-ACE_wrappers/PROBLEM-REPORT-FORM
-ACE_wrappers/THANKS
-ACE_wrappers/VERSION
-ACE_wrappers/NEWS
diff --git a/ACE/debianbuild/libace-5.6.8.install b/ACE/debianbuild/libace-5.6.8.install
deleted file mode 100644
index c1cbf26a13f..00000000000
--- a/ACE/debianbuild/libace-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE-*.so*
diff --git a/ACE/debianbuild/libace-dev.docs b/ACE/debianbuild/libace-dev.docs
deleted file mode 100644
index 8d00ada38de..00000000000
--- a/ACE/debianbuild/libace-dev.docs
+++ /dev/null
@@ -1,7 +0,0 @@
-ACE_wrappers/README
-ACE_wrappers/VERSION
-ACE_wrappers/AUTHORS
-ACE_wrappers/FAQ
-ACE_wrappers/PROBLEM-REPORT-FORM
-ACE_wrappers/THANKS
-ACE_wrappers/VERSION
diff --git a/ACE/debianbuild/libace-dev.install b/ACE/debianbuild/libace-dev.install
deleted file mode 100644
index f6c547fad2d..00000000000
--- a/ACE/debianbuild/libace-dev.install
+++ /dev/null
@@ -1,12 +0,0 @@
-../../ACE_wrappers/bin/generate_export_file.pl usr/share/ace/bin
-../../ACE_wrappers/bin/split-cpp usr/share/ace/bin
-../../ACE_wrappers/bin/g++dep usr/share/ace/bin
-../../ACE_wrappers/bin/add_rel_link.sh usr/share/ace/bin
-../../ACE_wrappers/bin/depgen.pl usr/share/ace/bin
-../../ACE_wrappers/bin/DependencyGenerator usr/share/ace/bin
-../../ACE_wrappers/include usr/share/ace
-../../objdir/include/makeinclude/platform_macros.GNU usr/share/ace/include/makeinclude
-usr/include/ace/*.{h,inl,cpp}
-usr/include/ace/os_include
-usr/lib/libACE.so
-usr/lib/pkgconfig/ACE.pc
diff --git a/ACE/debianbuild/libace-dev.links b/ACE/debianbuild/libace-dev.links
deleted file mode 100644
index 3efd6197eb5..00000000000
--- a/ACE/debianbuild/libace-dev.links
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/include/ace usr/share/ace/ace
-usr/lib usr/share/ace/lib
diff --git a/ACE/debianbuild/libace-doc.docs b/ACE/debianbuild/libace-doc.docs
deleted file mode 100644
index f15b7f7c57e..00000000000
--- a/ACE/debianbuild/libace-doc.docs
+++ /dev/null
@@ -1,3 +0,0 @@
-ACE_wrappers/docs
-ACE_wrappers/examples
-ACE_wrappers/html/ace/*
diff --git a/ACE/debianbuild/libace-flreactor-5.6.8.install b/ACE/debianbuild/libace-flreactor-5.6.8.install
deleted file mode 100644
index 550aa832bf0..00000000000
--- a/ACE/debianbuild/libace-flreactor-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_FlReactor-*.so*
diff --git a/ACE/debianbuild/libace-foxreactor-5.6.8.install b/ACE/debianbuild/libace-foxreactor-5.6.8.install
deleted file mode 100644
index fd0fc562b85..00000000000
--- a/ACE/debianbuild/libace-foxreactor-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_FoxReactor-*.so*
diff --git a/ACE/debianbuild/libace-htbp-5.6.8.install b/ACE/debianbuild/libace-htbp-5.6.8.install
deleted file mode 100644
index 9467b8be94b..00000000000
--- a/ACE/debianbuild/libace-htbp-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_HTBP-*.so*
diff --git a/ACE/debianbuild/libace-qtreactor-5.6.8.install b/ACE/debianbuild/libace-qtreactor-5.6.8.install
deleted file mode 100644
index 7b9064dfd86..00000000000
--- a/ACE/debianbuild/libace-qtreactor-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_QtReactor-*.so*
diff --git a/ACE/debianbuild/libace-rmcast-5.6.8.install b/ACE/debianbuild/libace-rmcast-5.6.8.install
deleted file mode 100644
index 20aeea4c29b..00000000000
--- a/ACE/debianbuild/libace-rmcast-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_RMCast-*.so*
diff --git a/ACE/debianbuild/libace-ssl-5.6.8.install b/ACE/debianbuild/libace-ssl-5.6.8.install
deleted file mode 100644
index 46f38fe8510..00000000000
--- a/ACE/debianbuild/libace-ssl-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_SSL-*.so*
diff --git a/ACE/debianbuild/libace-tkreactor-5.6.8.install b/ACE/debianbuild/libace-tkreactor-5.6.8.install
deleted file mode 100644
index 38a14bc655f..00000000000
--- a/ACE/debianbuild/libace-tkreactor-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_TkReactor-*.so*
diff --git a/ACE/debianbuild/libace-tmcast-5.6.8.install b/ACE/debianbuild/libace-tmcast-5.6.8.install
deleted file mode 100644
index 024bf2de1bb..00000000000
--- a/ACE/debianbuild/libace-tmcast-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_TMCast-*.so*
diff --git a/ACE/debianbuild/libace-xtreactor-5.6.8.install b/ACE/debianbuild/libace-xtreactor-5.6.8.install
deleted file mode 100644
index f981828eb55..00000000000
--- a/ACE/debianbuild/libace-xtreactor-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libACE_XtReactor-*.so*
diff --git a/ACE/debianbuild/libacexml-5.6.8.install b/ACE/debianbuild/libacexml-5.6.8.install
deleted file mode 100644
index 2c0837e6b38..00000000000
--- a/ACE/debianbuild/libacexml-5.6.8.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/lib/libACEXML_XML_Svc_Conf_Parser-*.so*
-usr/lib/libACEXML-*.so*
-usr/lib/libACEXML_Parser-*.so*
diff --git a/ACE/debianbuild/libacexml-dev.install b/ACE/debianbuild/libacexml-dev.install
deleted file mode 100644
index 06b82c95daf..00000000000
--- a/ACE/debianbuild/libacexml-dev.install
+++ /dev/null
@@ -1,5 +0,0 @@
-usr/include/ACEXML
-usr/lib/libACEXML.so
-usr/lib/libACEXML_Parser.so
-usr/lib/libACEXML_XML_Svc_Conf_Parser.so
-usr/lib/pkgconfig/ACEXML*.pc
diff --git a/ACE/debianbuild/libacexml-dev.links b/ACE/debianbuild/libacexml-dev.links
deleted file mode 100644
index 16f0027f673..00000000000
--- a/ACE/debianbuild/libacexml-dev.links
+++ /dev/null
@@ -1 +0,0 @@
-usr/include/ACEXML usr/share/ace/ACEXML
diff --git a/ACE/debianbuild/libkokyu-5.6.8.install b/ACE/debianbuild/libkokyu-5.6.8.install
deleted file mode 100644
index 6bd63ce5377..00000000000
--- a/ACE/debianbuild/libkokyu-5.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libKokyu-*.so*
diff --git a/ACE/debianbuild/libkokyu-dev.links b/ACE/debianbuild/libkokyu-dev.links
deleted file mode 100644
index eb6d21d003a..00000000000
--- a/ACE/debianbuild/libkokyu-dev.links
+++ /dev/null
@@ -1 +0,0 @@
-usr/include/Kokyu usr/share/ace/Kokyu
diff --git a/ACE/debianbuild/libtao-1.6.8.install b/ACE/debianbuild/libtao-1.6.8.install
deleted file mode 100644
index 38fc18caa42..00000000000
--- a/ACE/debianbuild/libtao-1.6.8.install
+++ /dev/null
@@ -1,33 +0,0 @@
-usr/lib/libTAO-*.so*
-usr/lib/libTAO_AnyTypeCode-*.so*
-usr/lib/libTAO_BiDirGIOP-*.so*
-usr/lib/libTAO_CodecFactory-*.so*
-usr/lib/libTAO_Codeset-*.so*
-usr/lib/libTAO_Compression-*.so*
-usr/lib/libTAO_CSD_Framework-*.so*
-usr/lib/libTAO_CSD_ThreadPool-*.so*
-usr/lib/libTAO_DynamicAny-*.so*
-usr/lib/libTAO_DynamicInterface-*.so*
-usr/lib/libTAO_EndpointPolicy-*.so*
-usr/lib/libTAO_IFR_Client-*.so*
-usr/lib/libTAO_IORInterceptor-*.so*
-usr/lib/libTAO_IORManip-*.so*
-usr/lib/libTAO_IORTable-*.so*
-usr/lib/libTAO_Messaging-*.so*
-usr/lib/libTAO_ObjRefTemplate-*.so*
-usr/lib/libTAO_PI-*.so*
-usr/lib/libTAO_PI_Server-*.so*
-usr/lib/libTAO_PortableServer-*.so*
-usr/lib/libTAO_RTCORBA-*.so*
-usr/lib/libTAO_RTPortableServer-*.so*
-usr/lib/libTAO_RTScheduler-*.so*
-usr/lib/libTAO_SmartProxies-*.so*
-usr/lib/libTAO_Strategies-*.so*
-usr/lib/libTAO_TC-*.so*
-usr/lib/libTAO_TC_IIOP-*.so*
-usr/lib/libTAO_TypeCodeFactory-*.so*
-usr/lib/libTAO_Utils-*.so*
-usr/lib/libTAO_Valuetype-*.so*
-usr/lib/libTAO_ImR_Client-*.so*
-usr/lib/libTAO_DiffServPolicy-*.so*
-usr/lib/libTAO_ZlibCompressor-*.so*
diff --git a/ACE/debianbuild/libtao-dev.dirs b/ACE/debianbuild/libtao-dev.dirs
deleted file mode 100644
index 9ec18989c12..00000000000
--- a/ACE/debianbuild/libtao-dev.dirs
+++ /dev/null
@@ -1 +0,0 @@
-usr/share/ace/TAO/MPC
diff --git a/ACE/debianbuild/libtao-dev.install b/ACE/debianbuild/libtao-dev.install
deleted file mode 100644
index b62a82dbd26..00000000000
--- a/ACE/debianbuild/libtao-dev.install
+++ /dev/null
@@ -1,97 +0,0 @@
-usr/include/tao/*.{h,i,inl,idl,pidl,cpp}
-usr/lib/libTAO.so
-usr/lib/pkgconfig/TAO.pc
-usr/include/tao/AnyTypeCode
-usr/lib/libTAO_AnyTypeCode.so
-usr/lib/pkgconfig/TAO_AnyTypeCode.pc
-usr/include/tao/BiDir_GIOP
-usr/lib/libTAO_BiDirGIOP.so
-usr/lib/pkgconfig/TAO_BiDirGIOP.pc
-usr/include/tao/CodecFactory
-usr/lib/libTAO_CodecFactory.so
-usr/lib/pkgconfig/TAO_CodecFactory.pc
-usr/include/tao/Codeset
-usr/lib/libTAO_Codeset.so
-#usr/lib/pkgconfig/TAO_Codeset.pc
-usr/include/tao/Compression
-usr/lib/libTAO_Compression.so
-usr/lib/pkgconfig/TAO_Compression.pc
-usr/include/tao/CSD_Framework
-usr/lib/libTAO_CSD_Framework.so
-usr/lib/pkgconfig/TAO_CSD_Framework.pc
-usr/include/tao/CSD_ThreadPool
-usr/lib/libTAO_CSD_ThreadPool.so
-usr/lib/pkgconfig/TAO_CSD_ThreadPool.pc
-usr/include/tao/DynamicAny
-usr/lib/libTAO_DynamicAny.so
-usr/lib/pkgconfig/TAO_DynamicAny.pc
-usr/include/tao/DynamicInterface
-usr/lib/libTAO_DynamicInterface.so
-usr/lib/pkgconfig/TAO_DynamicInterface.pc
-usr/include/tao/EndpointPolicy
-usr/lib/libTAO_EndpointPolicy.so
-usr/lib/pkgconfig/TAO_EndpointPolicy.pc
-usr/include/tao/IFR_Client
-usr/lib/libTAO_IFR_Client.so
-usr/lib/pkgconfig/TAO_IFR_Client.pc
-usr/include/tao/ImR_Client
-usr/lib/libTAO_ImR_Client.so
-usr/lib/pkgconfig/TAO_ImR_Client.pc
-usr/include/tao/IORInterceptor
-usr/lib/libTAO_IORInterceptor.so
-usr/lib/pkgconfig/TAO_IORInterceptor.pc
-usr/include/tao/IORManipulation
-usr/lib/libTAO_IORManip.so
-usr/lib/pkgconfig/TAO_IORManip.pc
-usr/include/tao/IORTable
-usr/lib/libTAO_IORTable.so
-usr/lib/pkgconfig/TAO_IORTable.pc
-usr/include/tao/Messaging
-usr/lib/libTAO_Messaging.so
-usr/lib/pkgconfig/TAO_Messaging.pc
-usr/include/tao/ObjRefTemplate
-usr/lib/libTAO_ObjRefTemplate.so
-usr/lib/pkgconfig/TAO_ObjRefTemplate.pc
-usr/include/tao/PI
-usr/lib/libTAO_PI.so
-usr/lib/pkgconfig/TAO_PI.pc
-usr/include/tao/PI_Server
-usr/lib/libTAO_PI_Server.so
-usr/lib/pkgconfig/TAO_PI_Server.pc
-usr/include/tao/PortableServer
-usr/lib/libTAO_PortableServer.so
-usr/lib/pkgconfig/TAO_PortableServer.pc
-usr/include/tao/RTCORBA
-usr/lib/libTAO_RTCORBA.so
-usr/lib/pkgconfig/TAO_RTCORBA.pc
-usr/include/tao/RTPortableServer
-usr/lib/libTAO_RTPortableServer.so
-usr/lib/pkgconfig/TAO_RTPortableServer.pc
-usr/include/tao/RTScheduling
-usr/lib/libTAO_RTScheduler.so
-usr/lib/pkgconfig/TAO_RTScheduler.pc
-usr/include/tao/SmartProxies
-usr/lib/libTAO_SmartProxies.so
-usr/lib/pkgconfig/TAO_SmartProxies.pc
-usr/include/tao/Strategies
-usr/lib/libTAO_Strategies.so
-usr/lib/pkgconfig/TAO_Strategies.pc
-usr/include/tao/TransportCurrent
-usr/lib/libTAO_TC.so
-usr/lib/libTAO_TC_IIOP.so
-usr/include/tao/TypeCodeFactory
-usr/lib/libTAO_TypeCodeFactory.so
-usr/lib/pkgconfig/TAO_TypeCodeFactory.pc
-usr/include/tao/Utils
-usr/lib/libTAO_Utils.so
-usr/lib/pkgconfig/TAO_Utils.pc
-usr/include/tao/Valuetype
-usr/lib/libTAO_Valuetype.so
-usr/lib/pkgconfig/TAO_Valuetype.pc
-usr/lib/libTAO_DiffServPolicy.so
-usr/lib/pkgconfig/TAO_DiffServPolicy.pc
-usr/include/tao/DiffServPolicy
-usr/lib/libTAO_ZlibCompressor.so
-usr/lib/pkgconfig/TAO_ZlibCompressor.pc
-../../ACE_wrappers/TAO/MPC/config usr/share/ace/TAO/MPC
-../../ACE_wrappers/TAO/rules.tao.GNU usr/share/ace/TAO
diff --git a/ACE/debianbuild/libtao-dev.links b/ACE/debianbuild/libtao-dev.links
deleted file mode 100644
index d07668bc513..00000000000
--- a/ACE/debianbuild/libtao-dev.links
+++ /dev/null
@@ -1 +0,0 @@
-usr/include/tao usr/share/ace/TAO/tao
diff --git a/ACE/debianbuild/libtao-doc.docs b/ACE/debianbuild/libtao-doc.docs
deleted file mode 100644
index 23026c0f89d..00000000000
--- a/ACE/debianbuild/libtao-doc.docs
+++ /dev/null
@@ -1,3 +0,0 @@
-ACE_wrappers/TAO/docs
-ACE_wrappers/TAO/examples
-ACE_wrappers/html/tao/*
diff --git a/ACE/debianbuild/libtao-flresource-1.6.8.install b/ACE/debianbuild/libtao-flresource-1.6.8.install
deleted file mode 100644
index 5387bf74f53..00000000000
--- a/ACE/debianbuild/libtao-flresource-1.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libTAO_FlResource-*.so*
diff --git a/ACE/debianbuild/libtao-foxresource-1.6.8.install b/ACE/debianbuild/libtao-foxresource-1.6.8.install
deleted file mode 100644
index bfaad19f8eb..00000000000
--- a/ACE/debianbuild/libtao-foxresource-1.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libTAO_FoxResource-*.so*
diff --git a/ACE/debianbuild/libtao-orbsvcs-1.6.8.install b/ACE/debianbuild/libtao-orbsvcs-1.6.8.install
deleted file mode 100644
index 59883c71dea..00000000000
--- a/ACE/debianbuild/libtao-orbsvcs-1.6.8.install
+++ /dev/null
@@ -1,59 +0,0 @@
-usr/lib/libTAO_AV-*.so*
-usr/lib/libTAO_CosConcurrency-*.so*
-usr/lib/libTAO_CosConcurrency_Skel-*.so*
-usr/lib/libTAO_CosConcurrency_Serv-*.so*
-usr/lib/libTAO_CosEvent-*.so*
-usr/lib/libTAO_CosEvent_Skel-*.so*
-usr/lib/libTAO_CosEvent_Serv-*.so*
-usr/lib/libTAO_CosLifeCycle-*.so*
-usr/lib/libTAO_CosLoadBalancing-*.so*
-usr/lib/libTAO_CosNaming-*.so*
-usr/lib/libTAO_CosNaming_Skel-*.so*
-usr/lib/libTAO_CosNaming_Serv-*.so*
-usr/lib/libTAO_CosNotification-*.so*
-usr/lib/libTAO_CosNotification_Persist-*.so*
-usr/lib/libTAO_CosNotification_Skel-*.so*
-usr/lib/libTAO_CosNotification_Serv-*.so*
-usr/lib/libTAO_CosNotification_MC-*.so*
-usr/lib/libTAO_CosNotification_MC_Ext-*.so*
-usr/lib/libTAO_CosProperty-*.so*
-usr/lib/libTAO_CosProperty_Skel-*.so*
-usr/lib/libTAO_CosProperty_Serv-*.so*
-usr/lib/libTAO_CosTime-*.so*
-usr/lib/libTAO_CosTrading-*.so*
-usr/lib/libTAO_CosTrading_Skel-*.so*
-usr/lib/libTAO_CosTrading_Serv-*.so*
-usr/lib/libTAO_DsEventLogAdmin-*.so*
-usr/lib/libTAO_DsEventLogAdmin_Skel-*.so*
-usr/lib/libTAO_DsEventLogAdmin_Serv-*.so*
-usr/lib/libTAO_DsLogAdmin-*.so*
-usr/lib/libTAO_DsLogAdmin_Skel-*.so*
-usr/lib/libTAO_DsLogAdmin_Serv-*.so*
-usr/lib/libTAO_DsNotifyLogAdmin-*.so*
-usr/lib/libTAO_DsNotifyLogAdmin_Skel-*.so*
-usr/lib/libTAO_DsNotifyLogAdmin_Serv-*.so*
-usr/lib/libTAO_ETCL-*.so*
-usr/lib/libTAO_FaultTolerance-*.so*
-usr/lib/libTAO_FT_ClientORB-*.so*
-usr/lib/libTAO_FT_ServerORB-*.so*
-usr/lib/libTAO_FTORB_Utils-*.so*
-usr/lib/libTAO_FTRT_EventChannel-*.so*
-usr/lib/libTAO_FtRtEvent-*.so*
-usr/lib/libTAO_FTRT_ClientORB-*.so*
-usr/lib/libTAO_HTIOP-*.so*
-usr/lib/libTAO_IFRService-*.so*
-usr/lib/libTAO_PortableGroup-*.so*
-usr/lib/libTAO_RTCORBAEvent-*.so*
-usr/lib/libTAO_RTEvent-*.so*
-usr/lib/libTAO_RTEvent_Serv-*.so*
-usr/lib/libTAO_RTEvent_Skel-*.so*
-usr/lib/libTAO_RTEventLogAdmin-*.so*
-usr/lib/libTAO_RTEventLogAdmin_Skel-*.so*
-usr/lib/libTAO_RTEventLogAdmin_Serv-*.so*
-usr/lib/libTAO_RTKokyuEvent-*.so*
-usr/lib/libTAO_RTSched-*.so*
-usr/lib/libTAO_RTSchedEvent-*.so*
-usr/lib/libTAO_RT_Notification-*.so*
-usr/lib/libTAO_SSLIOP-*.so*
-usr/lib/libTAO_Security-*.so*
-usr/lib/libTAO_Svc_Utils-*.so*
diff --git a/ACE/debianbuild/libtao-orbsvcs-dev.install b/ACE/debianbuild/libtao-orbsvcs-dev.install
deleted file mode 100644
index bc2098b0585..00000000000
--- a/ACE/debianbuild/libtao-orbsvcs-dev.install
+++ /dev/null
@@ -1,117 +0,0 @@
-usr/include/orbsvcs
-usr/lib/libTAO_AV.so
-usr/lib/libTAO_CosConcurrency.so
-usr/lib/libTAO_CosConcurrency_Skel.so
-usr/lib/libTAO_CosConcurrency_Serv.so
-usr/lib/libTAO_CosEvent.so
-usr/lib/libTAO_CosEvent_Skel.so
-usr/lib/libTAO_CosEvent_Serv.so
-usr/lib/libTAO_CosLifeCycle.so
-usr/lib/libTAO_CosLoadBalancing.so
-usr/lib/libTAO_CosNaming.so
-usr/lib/libTAO_CosNaming_Skel.so
-usr/lib/libTAO_CosNaming_Serv.so
-usr/lib/libTAO_CosNotification.so
-usr/lib/libTAO_CosNotification_Persist.so
-usr/lib/libTAO_CosNotification_Skel.so
-usr/lib/libTAO_CosNotification_Serv.so
-usr/lib/libTAO_CosNotification_MC.so
-usr/lib/libTAO_CosNotification_MC_Ext.so
-usr/lib/libTAO_CosProperty.so
-usr/lib/libTAO_CosProperty_Skel.so
-usr/lib/libTAO_CosProperty_Serv.so
-usr/lib/libTAO_CosTime.so
-usr/lib/libTAO_CosTrading.so
-usr/lib/libTAO_CosTrading_Skel.so
-usr/lib/libTAO_CosTrading_Serv.so
-usr/lib/libTAO_DsEventLogAdmin.so
-usr/lib/libTAO_DsEventLogAdmin_Skel.so
-usr/lib/libTAO_DsEventLogAdmin_Serv.so
-usr/lib/libTAO_DsLogAdmin.so
-usr/lib/libTAO_DsLogAdmin_Skel.so
-usr/lib/libTAO_DsLogAdmin_Serv.so
-usr/lib/libTAO_DsNotifyLogAdmin.so
-usr/lib/libTAO_DsNotifyLogAdmin_Skel.so
-usr/lib/libTAO_DsNotifyLogAdmin_Serv.so
-usr/lib/libTAO_ETCL.so
-usr/lib/libTAO_FT_ServerORB.so
-usr/lib/libTAO_FT_ClientORB.so
-usr/lib/libTAO_FTORB_Utils.so
-usr/lib/libTAO_FaultTolerance.so
-usr/lib/libTAO_HTIOP.so
-usr/lib/libTAO_IFRService.so
-usr/lib/libTAO_PortableGroup.so
-usr/lib/libTAO_RTCORBAEvent.so
-usr/lib/libTAO_RTEvent.so
-usr/lib/libTAO_RTEvent_Serv.so
-usr/lib/libTAO_RTEvent_Skel.so
-usr/lib/libTAO_RTEventLogAdmin.so
-usr/lib/libTAO_RTEventLogAdmin_Skel.so
-usr/lib/libTAO_RTEventLogAdmin_Serv.so
-usr/lib/libTAO_RTKokyuEvent.so
-usr/lib/libTAO_RTSched.so
-usr/lib/libTAO_RTSchedEvent.so
-usr/lib/libTAO_RT_Notification.so
-usr/lib/libTAO_SSLIOP.so
-usr/lib/libTAO_Security.so
-usr/lib/libTAO_Svc_Utils.so
-usr/lib/libTAO_FTRT_EventChannel.so
-usr/lib/libTAO_FtRtEvent.so
-usr/lib/libTAO_FTRT_ClientORB.so
-#usr/lib/pkgconfig/TAO_AV.pc
-usr/lib/pkgconfig/TAO_CosConcurrency.pc
-usr/lib/pkgconfig/TAO_CosConcurrency_Skel.pc
-usr/lib/pkgconfig/TAO_CosConcurrency_Serv.pc
-usr/lib/pkgconfig/TAO_CosEvent.pc
-usr/lib/pkgconfig/TAO_CosEvent_Skel.pc
-usr/lib/pkgconfig/TAO_CosEvent_Serv.pc
-usr/lib/pkgconfig/TAO_CosLifeCycle.pc
-usr/lib/pkgconfig/TAO_CosLoadBalancing.pc
-usr/lib/pkgconfig/TAO_CosNaming.pc
-usr/lib/pkgconfig/TAO_CosNaming_Skel.pc
-usr/lib/pkgconfig/TAO_CosNaming_Serv.pc
-usr/lib/pkgconfig/TAO_CosNotification.pc
-usr/lib/pkgconfig/TAO_CosNotification_Skel.pc
-usr/lib/pkgconfig/TAO_CosNotification_Serv.pc
-#usr/lib/pkgconfig/TAO_CosNotification_Persist.pc
-usr/lib/pkgconfig/TAO_CosProperty.pc
-usr/lib/pkgconfig/TAO_CosProperty_Skel.pc
-usr/lib/pkgconfig/TAO_CosProperty_Serv.pc
-usr/lib/pkgconfig/TAO_CosTime.pc
-usr/lib/pkgconfig/TAO_CosTrading.pc
-usr/lib/pkgconfig/TAO_CosTrading_Skel.pc
-usr/lib/pkgconfig/TAO_CosTrading_Serv.pc
-usr/lib/pkgconfig/TAO_DsEventLogAdmin.pc
-usr/lib/pkgconfig/TAO_DsEventLogAdmin_Skel.pc
-usr/lib/pkgconfig/TAO_DsEventLogAdmin_Serv.pc
-usr/lib/pkgconfig/TAO_DsLogAdmin.pc
-usr/lib/pkgconfig/TAO_DsLogAdmin_Skel.pc
-usr/lib/pkgconfig/TAO_DsLogAdmin_Serv.pc
-usr/lib/pkgconfig/TAO_DsNotifyLogAdmin.pc
-usr/lib/pkgconfig/TAO_DsNotifyLogAdmin_Skel.pc
-usr/lib/pkgconfig/TAO_DsNotifyLogAdmin_Serv.pc
-usr/lib/pkgconfig/TAO_ETCL.pc
-usr/lib/pkgconfig/TAO_FT_ServerORB.pc
-usr/lib/pkgconfig/TAO_FT_ClientORB.pc
-usr/lib/pkgconfig/TAO_FTORB_Utils.pc
-usr/lib/pkgconfig/TAO_FaultTolerance.pc
-#usr/lib/pkgconfig/TAO_IFRService.pc
-#usr/lib/pkgconfig/TAO_HTIOP.pc
-usr/lib/pkgconfig/TAO_PortableGroup.pc
-#usr/lib/pkgconfig/TAO_RTCORBAEvent.pc
-usr/lib/pkgconfig/TAO_RTEvent.pc
-usr/lib/pkgconfig/TAO_RTEvent_Serv.pc
-usr/lib/pkgconfig/TAO_RTEvent_Skel.pc
-usr/lib/pkgconfig/TAO_RTEventLogAdmin.pc
-usr/lib/pkgconfig/TAO_RTEventLogAdmin_Skel.pc
-usr/lib/pkgconfig/TAO_RTEventLogAdmin_Serv.pc
-#usr/lib/pkgconfig/TAO_RTKokyuEvent.pc
-#usr/lib/pkgconfig/TAO_RTSched.pc
-#usr/lib/pkgconfig/TAO_RTSchedEvent.pc
-#usr/lib/pkgconfig/TAO_RT_Notification.pc
-#usr/lib/pkgconfig/TAO_SSLIOP.pc
-#usr/lib/pkgconfig/TAO_Security.pc
-usr/lib/pkgconfig/TAO_Svc_Utils.pc
-#usr/lib/pkgconfig/TAO_FTRT_EventChannel.pc
-#usr/lib/pkgconfig/TAO_FtRtEvent.pc
-#usr/lib/pkgconfig/TAO_FTRT_ClientORB.pc
diff --git a/ACE/debianbuild/libtao-orbsvcs-dev.links b/ACE/debianbuild/libtao-orbsvcs-dev.links
deleted file mode 100644
index 42fe43bc2a7..00000000000
--- a/ACE/debianbuild/libtao-orbsvcs-dev.links
+++ /dev/null
@@ -1 +0,0 @@
-usr/include/orbsvcs usr/share/ace/TAO/orbsvcs
diff --git a/ACE/debianbuild/libtao-qtresource-1.6.8.install b/ACE/debianbuild/libtao-qtresource-1.6.8.install
deleted file mode 100644
index b5af230536e..00000000000
--- a/ACE/debianbuild/libtao-qtresource-1.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libTAO_QtResource-*.so*
diff --git a/ACE/debianbuild/libtao-tkresource-1.6.8.install b/ACE/debianbuild/libtao-tkresource-1.6.8.install
deleted file mode 100644
index 9de803ef62b..00000000000
--- a/ACE/debianbuild/libtao-tkresource-1.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libTAO_TkResource-*.so*
diff --git a/ACE/debianbuild/libtao-xtresource-1.6.8.install b/ACE/debianbuild/libtao-xtresource-1.6.8.install
deleted file mode 100644
index b6a1ca56d3c..00000000000
--- a/ACE/debianbuild/libtao-xtresource-1.6.8.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/libTAO_XtResource-*.so*
diff --git a/ACE/debianbuild/mpc-ace.install b/ACE/debianbuild/mpc-ace.install
deleted file mode 100644
index a6820c5fa42..00000000000
--- a/ACE/debianbuild/mpc-ace.install
+++ /dev/null
@@ -1,8 +0,0 @@
-usr/bin/mpc-ace
-usr/bin/mwc-ace
-../../ACE_wrappers/bin/MakeProjectCreator usr/share/ace/bin
-../../ACE_wrappers/MPC/config usr/share/ace/MPC
-../../ACE_wrappers/MPC/modules usr/share/ace/MPC
-../../ACE_wrappers/MPC/templates usr/share/ace/MPC
-../../ACE_wrappers/MPC/*.pl usr/share/ace/MPC
-../../ACE_wrappers/MPC/ChangeLog usr/share/ace/MPC
diff --git a/ACE/debianbuild/mpc-ace.links b/ACE/debianbuild/mpc-ace.links
deleted file mode 100644
index e0fc68a6beb..00000000000
--- a/ACE/debianbuild/mpc-ace.links
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/mpc-ace usr/share/ace/bin/mpc.pl
-usr/bin/mwc-ace usr/share/ace/bin/mwc.pl
-usr/share/man/man1/mpc-ace.1.gz usr/share/man/man1/mwc-ace.1.gz
diff --git a/ACE/debianbuild/patches/00list b/ACE/debianbuild/patches/00list
deleted file mode 100644
index 58876f97286..00000000000
--- a/ACE/debianbuild/patches/00list
+++ /dev/null
@@ -1,9 +0,0 @@
-01-change-tao-sonames
-02-fltk-no-gl
-02-qt4
-04-reduce-opt
-12-fix-fox-include
-15-fix-fltk-include
-34-bts386713
-50-prepatch-dummy-mark
-92-default-ACE_ROOT
diff --git a/ACE/debianbuild/patches/01-change-tao-sonames.dpatch b/ACE/debianbuild/patches/01-change-tao-sonames.dpatch
deleted file mode 100644
index 0f1c3a7a9af..00000000000
--- a/ACE/debianbuild/patches/01-change-tao-sonames.dpatch
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 01-change_tao_sonames.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: propagate TAO_VERSION_NAME in all TAO Makefile.am files.
-
-@DPATCH@
---- ACE_wrappers.orig/TAO/configure.ac
-+++ ACE_wrappers/TAO/configure.ac
-@@ -149,10 +149,12 @@
- TAO_MAJOR=$2
- TAO_MINOR=$3
- TAO_BETA=$4
-+TAO_VERSION_NAME=TAO_VERSION
-
- AC_SUBST([TAO_MAJOR])
- AC_SUBST([TAO_MINOR])
- AC_SUBST([TAO_BETA])
-+AC_SUBST([TAO_VERSION_NAME])
-
- dnl We should have --with/--enable flags for these options.
- dnl Until we do, set them to reasonable defaults.
---- ACE_wrappers.orig/TAO/MPC/config/taodefaults.mpb
-+++ ACE_wrappers/TAO/MPC/config/taodefaults.mpb
-@@ -7,7 +7,7 @@
- libpaths += $(ACE_ROOT)/lib
-
- specific(automake) {
-- am_version = @TAO_MAJOR@:@TAO_MINOR@:@TAO_BETA@
-+ am_release = @TAO_VERSION_NAME@
- includes += $(TAO_BUILDDIR)
- libpaths -= $(ACE_ROOT)/lib
- }
diff --git a/ACE/debianbuild/patches/02-fltk-no-gl.dpatch b/ACE/debianbuild/patches/02-fltk-no-gl.dpatch
deleted file mode 100644
index 1828c31e2b0..00000000000
--- a/ACE/debianbuild/patches/02-fltk-no-gl.dpatch
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 02-fltk-no-gl.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## DP: do not link against libfltk_gl
-
-@DPATCH@
---- ACE_wrappers.orig/m4/ace.m4
-+++ ACE_wrappers/m4/ace.m4
-@@ -1180,8 +1180,8 @@
- fi
- fi
- if test X"${FLTKCONFIG}" != X; then
-- ACE_FLTK_CPPFLAGS=`$FLTKCONFIG --use-gl --cxxflags 2>/dev/null`
-- ACE_FLTK_LIBS=`$FLTKCONFIG --use-gl --ldflags 2>/dev/null`
-+ ACE_FLTK_CPPFLAGS=`$FLTKCONFIG --cxxflags 2>/dev/null`
-+ ACE_FLTK_LIBS=`$FLTKCONFIG --ldflags 2>/dev/null`
-
- AC_SUBST(ACE_FLTK_CPPFLAGS)
- AC_SUBST(ACE_FLTK_LIBS)
diff --git a/ACE/debianbuild/patches/02-qt4.dpatch b/ACE/debianbuild/patches/02-qt4.dpatch
deleted file mode 100644
index 5a0501f024b..00000000000
--- a/ACE/debianbuild/patches/02-qt4.dpatch
+++ /dev/null
@@ -1,32 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 02-qt4.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: detect Qt4 instead of Qt3
-
-@DPATCH@
---- ACE_wrappers.orig/m4/ace.m4
-+++ ACE_wrappers/m4/ace.m4
-@@ -1265,18 +1265,18 @@
- AC_DEFUN([ACE_PATH_QT],
- [
- ac_qt_found=no
-- PKG_CHECK_MODULES([Qt], [qt-mt],
-+ PKG_CHECK_MODULES([Qt4], [QtCore QtGui],
- [ac_qt_found=yes],
- [AC_MSG_RESULT([not found])])
- if test X"${ac_qt_found}" = Xyes; then
-- ACE_QT_CPPFLAGS="${Qt_CFLAGS}"
-- ACE_QT_LIBS="${Qt_LIBS}"
-+ ACE_QT_CPPFLAGS="${Qt4_CFLAGS}"
-+ ACE_QT_LIBS="${Qt4_LIBS}"
- AC_SUBST(ACE_QT_CPPFLAGS)
- AC_SUBST(ACE_QT_LIBS)
-
- AS_IF([test -n "$QTDIR"],
- [],
-- [QTDIR=`$PKG_CONFIG --variable=prefix qt-mt 2>/dev/null`])
-+ [QTDIR=`$PKG_CONFIG --variable=prefix QtCore 2>/dev/null`])
- AC_SUBST(QTDIR)
- fi
- ])
diff --git a/ACE/debianbuild/patches/04-reduce-opt.dpatch b/ACE/debianbuild/patches/04-reduce-opt.dpatch
deleted file mode 100644
index 7f072829c7e..00000000000
--- a/ACE/debianbuild/patches/04-reduce-opt.dpatch
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 04-reduce-opt.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: drop -O3 default optimization level
-
-@DPATCH@
---- ACE_wrappers.orig/m4/compiler.m4
-+++ ACE_wrappers/m4/compiler.m4
-@@ -234,7 +234,7 @@
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS"
- DCXXFLAGS="$DCXXFLAGS"
-- OCXXFLAGS="-O3"
-+ OCXXFLAGS=""
- fi
- ;;
- esac
diff --git a/ACE/debianbuild/patches/05-autoconf-fox.dpatch b/ACE/debianbuild/patches/05-autoconf-fox.dpatch
deleted file mode 100644
index 0315ab11eec..00000000000
--- a/ACE/debianbuild/patches/05-autoconf-fox.dpatch
+++ /dev/null
@@ -1,116 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 05-autoconf-fox.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: add autoconf support for Fox
-
-@DPATCH@
---- ACE_wrappers.orig/m4/ace.m4
-+++ ACE_wrappers/m4/ace.m4
-@@ -501,6 +501,7 @@
- ACE_ENABLE_QT_REACTOR
- ACE_ENABLE_TK_REACTOR
- ACE_ENABLE_XT_REACTOR
-+ ACE_ENABLE_FOX_REACTOR
-
- # placeholder for WxWindows/wxWidgets support
- AM_CONDITIONAL([BUILD_WXWINDOWS], false)
-@@ -1543,4 +1544,58 @@
- [test X$ace_user_enable_xt_reactor = Xyes])
- ])
-
-+# ACE_PATH_FOX
-+#---------------------------------------------------------------------------
-+AC_DEFUN([ACE_PATH_FOX],
-+[AC_ARG_WITH([fox-config],
-+ AS_HELP_STRING([--with-fox-config=PATH],
-+ [path to fox-config [[automatic]]]),
-+ [ ac_fox_config="${withval}" ])
-+ if test X"${ac_fox_config}" = X; then
-+ AC_PATH_PROG([FOXCONFIG], [fox-config], [], [])
-+ else
-+ AC_MSG_CHECKING([whether ${ac_fox_config} exists])
-+ if test -f "${ac_fox_config}"; then
-+ FOXCONFIG="${ac_fox_config}"
-+ AC_MSG_RESULT([yes])
-+ else
-+ AC_MSG_RESULT([no])
-+ fi
-+ fi
-+ if test X"${FOXCONFIG}" != X; then
-+ ACE_FOX_CPPFLAGS=-I/usr/include/fox-1.6
-+ ACE_FOX_LIBS=-lFOX-1.6
-+ AC_SUBST(ACE_FOX_CPPFLAGS)
-+ AC_SUBST(ACE_FOX_LIBS)
-+ fi
-+])
-
-+# ACE_ENABLE_FOX_REACTOR
-+#---------------------------------------------------------------------------
-+AC_DEFUN([ACE_ENABLE_FOX_REACTOR],
-+[AC_REQUIRE([ACE_PATH_FOX])
-+AC_ARG_ENABLE([fox-reactor],
-+ AS_HELP_STRING([--enable-fox-reactor],
-+ [build support for the FoxReactor [[no]]]),
-+ [case "${enableval}" in
-+ yes)
-+ AS_IF([test X"${FOXCONFIG}" != X],
-+ [ace_user_enable_fox_reactor=yes],
-+ [AC_MSG_ERROR([ACE_FoxReactor cannot be enabled: fox-config not found.])])
-+ ;;
-+ no)
-+ ace_user_enable_fox_reactor=no
-+ ;;
-+ *)
-+ AC_MSG_ERROR([bad value ${enableval} for --enable-fox-reactor])
-+ ;;
-+ esac],
-+ [
-+ ace_user_enable_fox_reactor=no
-+ ])
-+AM_CONDITIONAL([BUILD_FOX], [test X$ace_user_enable_fox_reactor = Xyes])
-+AM_CONDITIONAL([BUILD_ACE_FOXREACTOR],
-+ [test X$ace_user_enable_fox_reactor = Xyes])
-+AM_CONDITIONAL([BUILD_TAO_FOXRESOURCE],
-+ [test X$ace_user_enable_fox_reactor = Xyes])
-+])
---- ACE_wrappers.orig/bin/MakeProjectCreator/config/global.features
-+++ ACE_wrappers/bin/MakeProjectCreator/config/global.features
-@@ -90,6 +90,8 @@
- ace_tkreactor = 1
- // Use FlReactor
- ace_flreactor = 1
-+// Use FoxReactor
-+ace_foxreactor = 1
-
- // Features for TAO support for various GUI libraries
- // Use QtResources for TAO
-@@ -100,6 +102,8 @@
- tao_tkresource = 1
- // Use FlResources for TAO
- tao_flresource = 1
-+// Use FoxResources for TAO
-+tao_foxresource = 1
-
- //Use the ZIP_Wrapper feature for when using the ZIP wrapper classes
- ZIP_Wrapper = 0
---- ACE_wrappers.orig/ace/ace.mwc
-+++ ACE_wrappers/ace/ace.mwc
-@@ -6,6 +6,7 @@
- ace.mpc
- ace_for_tao.mpc
- ace_flreactor.mpc
-+ ace_foxreactor.mpc
- ace_qtreactor.mpc
- ace_tkreactor.mpc
- ace_xtreactor.mpc
---- ACE_wrappers.orig/TAO/configure.ac
-+++ ACE_wrappers/TAO/configure.ac
-@@ -183,6 +183,7 @@
- ACE_ENABLE_QT_REACTOR
- ACE_ENABLE_TK_REACTOR
- ACE_ENABLE_XT_REACTOR
-+ACE_ENABLE_FOX_REACTOR
- ACE_PATH_ZZIP
- ACE_PATH_ZLIB
-
diff --git a/ACE/debianbuild/patches/06-fix-kokyu-mpc.dpatch b/ACE/debianbuild/patches/06-fix-kokyu-mpc.dpatch
deleted file mode 100644
index 9d08731ca6f..00000000000
--- a/ACE/debianbuild/patches/06-fix-kokyu-mpc.dpatch
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 06-revert-mpc-kokyu-change.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: use upstream patch to unbreak Kokyu library search path
-
-@DPATCH@
---- ACE_wrappers.orig/bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm
-+++ ACE_wrappers/bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm
-@@ -135,7 +135,7 @@
- $reldir = 'Kokyu';
- }
- }
-- $str =~ s!$libname!\$(top_builddir)/$reldir/$libname!;
-+ $str =~ s!$libname!\$(ACE_BUILDDIR)/$reldir/$libname!;
- return $str;
- }
- elsif ($libname =~ /^lib(tao|kokyu)/i) {
diff --git a/ACE/debianbuild/patches/07-autoconf-fix-gperf.dpatch b/ACE/debianbuild/patches/07-autoconf-fix-gperf.dpatch
deleted file mode 100644
index 27332fe00b8..00000000000
--- a/ACE/debianbuild/patches/07-autoconf-fix-gperf.dpatch
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 07-autoconf-fix-gperf.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: fix an autotools error in GPERF handling.
-
-@DPATCH@
---- ACE_wrappers.orig/m4/ace.m4
-+++ ACE_wrappers/m4/ace.m4
-@@ -535,7 +535,7 @@
- AC_MSG_WARN([existing gperf may be overwritten during installation])
- ],[])
- fi
-- AM_CONDITIONAL([COMPILE_GPERF], [test X$ace_user_enable_gperf = Xyes])
-+ AM_CONDITIONAL([BUILD_GPERF], [test X$ace_user_enable_gperf = Xyes])
-
- ACE_ENABLE_QOS
- ACE_ENABLE_SSL
diff --git a/ACE/debianbuild/patches/09-autoconf-fix-no-base-include-headers.diff b/ACE/debianbuild/patches/09-autoconf-fix-no-base-include-headers.diff
deleted file mode 100644
index b026082d727..00000000000
--- a/ACE/debianbuild/patches/09-autoconf-fix-no-base-include-headers.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- ACE_wrappers.orig/ace/Makefile.am
-+++ ACE_wrappers/ace/Makefile.am
-@@ -10,6 +10,7 @@
-
- includedir = @includedir@/ace
- pkgconfigdir = @libdir@/pkgconfig
-+nobase_include_HEADERS =
-
- ACE_BUILDDIR = $(top_builddir)
- ACE_ROOT = $(top_srcdir)
-@@ -336,7 +337,7 @@
- libACE_la_LDFLAGS = \
- -release @ACE_VERSION_NAME@
-
--nobase_include_HEADERS = \
-+nobase_include_HEADERS += \
- ACE.h \
- ACE.inl \
- ACE_export.h \
diff --git a/ACE/debianbuild/patches/12-fix-fox-include.dpatch b/ACE/debianbuild/patches/12-fix-fox-include.dpatch
deleted file mode 100644
index 26ff9767537..00000000000
--- a/ACE/debianbuild/patches/12-fix-fox-include.dpatch
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 12-fix-fox-include.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: drop fox/ prefix in include, it's correctly set by fox-config
-
-@DPATCH@
---- ACE_wrappers.orig/ace/FoxReactor/FoxReactor.h
-+++ ACE_wrappers/ace/FoxReactor/FoxReactor.h
-@@ -27,7 +27,7 @@
-
- #include "ace/Select_Reactor.h"
-
--#include <fox/fx.h>
-+#include <fx.h>
-
- /**
- * @class ACE_FoxReactor
---- ACE_wrappers.orig/TAO/tao/FoxResource/FoxResource_Loader.h
-+++ ACE_wrappers/TAO/tao/FoxResource/FoxResource_Loader.h
-@@ -24,7 +24,7 @@
-
- #include "tao/Versioned_Namespace.h"
-
--#include <fox/fx.h>
-+#include <fx.h>
-
- TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
diff --git a/ACE/debianbuild/patches/14-autoconf-tao.dpatch b/ACE/debianbuild/patches/14-autoconf-tao.dpatch
deleted file mode 100644
index f13d0e95d50..00000000000
--- a/ACE/debianbuild/patches/14-autoconf-tao.dpatch
+++ /dev/null
@@ -1,54 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 14-autoconf-tao.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: enhance TAO autoconf support
-
-@DPATCH@
---- ACE_wrappers.orig/TAO/configure.ac
-+++ ACE_wrappers/TAO/configure.ac
-@@ -124,10 +124,6 @@
- AC_PROG_CXX
- AC_PROG_CXXCPP
-
--dnl Configure libtool
--AC_DISABLE_STATIC
--AC_PROG_LIBTOOL
--
- ACE_CHECK_THREADS
-
- dnl Set the test language as C++
-@@ -190,6 +186,33 @@
- TAO_ENABLE_EXAMPLES
- TAO_ENABLE_TESTS
-
-+dnl The user's/default C++ flags are stored in "CXXFLAGS." We use
-+dnl the variable "ACE_CXXFLAGS" to set the C++ flags we want. At the end
-+dnl of the configuration process we combine ACE_CXXFLAGS and CXXFLAGS
-+dnl into CXXFLAGS (e.g., CXXFLAGS="$ACE_CXXFLAGS $CXXFLAGS"). CXXFLAGS
-+dnl goes after ACE_CXXFLAGS so that the user's C++ flag command line
-+dnl choices always override the configure script's choices.
-+ACE_CXXFLAGS=""
-+ACE_CFLAGS=""
-+
-+ACE_SET_COMPILER_FLAGS
-+
-+dnl Disable building of static libraries by default
-+AC_DISABLE_STATIC
-+
-+dnl Enable Libtool module support
-+AC_LIBTOOL_DLOPEN
-+
-+dnl Enable support for "clean" DLLs.
-+AC_LIBTOOL_WIN32_DLL
-+
-+dnl Check for libtool and turn on Automake processing for Libtool
-+AC_PROG_LIBTOOL
-+
-+CXXFLAGS="$ACE_CXXFLAGS $X_CFLAGS $CXXFLAGS"
-+CFLAGS="$ACE_CFLAGS $X_CFLAGS $CFLAGS"
-+CPPFLAGS="$ACE_CPPFLAGS $CPPFLAGS"
-+LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
- dnl
- dnl SECTION 16: AC_CONFIG_FILES([FILE...])
diff --git a/ACE/debianbuild/patches/15-fix-fltk-include.dpatch b/ACE/debianbuild/patches/15-fix-fltk-include.dpatch
deleted file mode 100644
index 54dc8b6c348..00000000000
--- a/ACE/debianbuild/patches/15-fix-fltk-include.dpatch
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 15-fix-fltk-include.dpatch by Raphael Bossek <bossekr@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Uses new FLTK header files.
-
-@DPATCH@
-
---- ACE_wrappers/ace/FlReactor/FlReactor.cpp.orig 2004-10-25 00:08:59.932411424 +0200
-+++ ACE_wrappers/ace/FlReactor/FlReactor.cpp 2004-10-25 00:09:08.272143592 +0200
-@@ -6,7 +6,7 @@
-
- #if defined (ACE_HAS_FL)
-
--#include /**/ <FL/Fl.h>
-+#include /**/ <FL/Fl.H>
-
- ACE_ALLOC_HOOK_DEFINE (ACE_FlReactor)
-
diff --git a/ACE/debianbuild/patches/16-skip-apps.dpatch b/ACE/debianbuild/patches/16-skip-apps.dpatch
deleted file mode 100644
index c59bcedbda4..00000000000
--- a/ACE/debianbuild/patches/16-skip-apps.dpatch
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 16-skip-apps.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## DP: do not compile some apps
-
-@DPATCH@
---- ACE_wrappers.orig/apps/apps.mwc
-+++ ACE_wrappers/apps/apps.mwc
-@@ -2,4 +2,13 @@
- // $Id$
-
- workspace {
-+ exclude {
-+ drwho
-+ Gateway
-+ JAWS
-+ JAWS2
-+ JAWS3
-+ mkcsregdb
-+ soreduce
-+ }
- }
diff --git a/ACE/debianbuild/patches/17-protect-mpc-path.dpatch b/ACE/debianbuild/patches/17-protect-mpc-path.dpatch
deleted file mode 100644
index fb4ad963bfe..00000000000
--- a/ACE/debianbuild/patches/17-protect-mpc-path.dpatch
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 17-protect-mpc-path.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## DP: disable pattern metacharacters in path
-
-@DPATCH@
---- ACE_wrappers.orig/MPC/modules/AutomakeWorkspaceCreator.pm
-+++ ACE_wrappers/MPC/modules/AutomakeWorkspaceCreator.pm
-@@ -618,7 +618,7 @@
- my($start) = $self->getstartdir();
-
- ## Take off the starting directory
-- $value =~ s/$start//;
-+ $value =~ s/\Q$start\E//;
- return $value;
- }
-
diff --git a/ACE/debianbuild/patches/18-fix-bswap-detection.dpatch b/ACE/debianbuild/patches/18-fix-bswap-detection.dpatch
deleted file mode 100644
index 95521e2328d..00000000000
--- a/ACE/debianbuild/patches/18-fix-bswap-detection.dpatch
+++ /dev/null
@@ -1,35 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 18-fix-bswap-detection.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## DP: taken from upstream: fix bswap autoconf detection
-@DPATCH@
---- ACE_wrappers.orig/configure.ac
-+++ ACE_wrappers/configure.ac
-@@ -3445,15 +3445,24 @@
-
- ACE_CHECK_HAS_DEFINES([bswap16])
- if test "$ace_cv_defined_bswap16" = no; then
-- ACE_CHECK_HAS_DEFINES([bswap_16])
-+ ACE_CHECK_HAS_DEFINES([bswap_16],[],[],[
-+#if ACE_HAS_BYTESWAP_H
-+#include <byteswap.h>
-+#endif])
- fi
- ACE_CHECK_HAS_DEFINES([bswap32])
- if test "$ace_cv_defined_bswap32" = no; then
-- ACE_CHECK_HAS_DEFINES([bswap_32])
-+ ACE_CHECK_HAS_DEFINES([bswap_32],[],[],[
-+#if ACE_HAS_BYTESWAP_H
-+#include <byteswap.h>
-+#endif])
- fi
- ACE_CHECK_HAS_DEFINES([bswap64])
- if test "$ace_cv_defined_bswap64" = no; then
-- ACE_CHECK_HAS_DEFINES([bswap_64])
-+ ACE_CHECK_HAS_DEFINES([bswap_64],[],[],[
-+#if ACE_HAS_BYTESWAP_H
-+#include <byteswap.h>
-+#endif])
- fi
-
- ACE_CHECK_LACKS_FUNCS(chdir)
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/debianbuild/patches/20-fix-iostream-detection.dpatch b/ACE/debianbuild/patches/20-fix-iostream-detection.dpatch
deleted file mode 100644
index 4cd9e8cf059..00000000000
--- a/ACE/debianbuild/patches/20-fix-iostream-detection.dpatch
+++ /dev/null
@@ -1,128 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 20-autoconf-fix-iostream.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## DP: fix autotools iostream detection
-@DPATCH@
---- ACE_wrappers.orig/configure.ac
-+++ ACE_wrappers/configure.ac
-@@ -1013,11 +1013,9 @@
- dnl Check for availablity of "new style" C++ stream headers
- AC_CHECK_HEADERS([iomanip ios iostream istream ostream fstream streambuf],
- ,
-- [AC_DEFINE([ACE_USES_OLD_IOSTREAMS])])
--
--AC_CHECK_HEADER([iostream.h],
-- [AC_CHECK_HEADER([fstream.h],,[AC_DEFINE([ACE_LACKS_IOSTREAM_TOTALLY])])],
-- [AC_DEFINE([ACE_LACKS_IOSTREAM_TOTALLY])])
-+ [AC_CHECK_HEADERS([iostream.h fstream.h],
-+ [AC_DEFINE([ACE_USES_OLD_IOSTREAMS])],
-+ [AC_DEFINE([ACE_LACKS_IOSTREAM_TOTALLY])])])
-
- dnl Check if platform needs to #include <regexpr.h> for
- dnl regular expression support
-@@ -2014,14 +2012,18 @@
- [ace_cv_feature_char_right_shifts],
- [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-+#ifdef ACE_USES_OLD_IOSTREAM
- #include <iostream.h>
-+#else
-+#include <iostream>
-+#endif
- ]],[[
- unsigned char a = 0;
--cin >> a;
-+std::cin >> a;
-
- #ifndef ACE_LACKS_SIGNED_CHAR
- signed char b = 0;
--cin >> b;
-+std::cin >> b;
- #endif
- ]])],[
- ace_cv_feature_char_right_shifts=yes
-@@ -2036,14 +2038,18 @@
- [ace_cv_feature_char_ptr_right_shifts],
- [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-+#ifdef ACE_USES_OLD_IOSTREAMS
- #include <iostream.h>
-+#else
-+#include <iostream>
-+#endif
- ]],[[
- unsigned char * a = 0;
--cin >> a;
-+std::cin >> a;
-
- #ifndef ACE_LACKS_SIGNED_CHAR
- signed char * b = 0;
--cin >> b;
-+std::cin >> b;
- #endif
- ]])],[
- ace_cv_feature_char_ptr_right_shifts=yes
-@@ -5823,9 +5829,17 @@
- ACE_CACHE_CHECK([for iostream method ipfx()],
- [ace_cv_feature_has_iostream_ipfx],[
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-+#ifdef ACE_USES_OLD_IOSTREAMS
- #include <iostream.h>
-+#else
-+#include <iostream>
-+#endif
- ]], [[
-+#ifdef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
-+ std::cin.ipfx();
-+#else
- cin.ipfx();
-+#endif
- ]])],[
- ace_cv_feature_has_iostream_ipfx=yes
- ],[
-@@ -5837,9 +5851,17 @@
- ACE_CACHE_CHECK([for line-buffered streambufs],
- [ace_cv_feature_has_linebuffered_streambuf],[
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-+#ifdef ACE_USES_OLD_IOSTREAMS
- #include <iostream.h>
-+#else
-+#include <iostream>
-+#endif
- ]], [[
-+#ifdef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
-+ std::cin.rdbuf()->linebuffered(1);
-+#else
- cin.rdbuf()->linebuffered(1);
-+#endif
- ]])],[
- ace_cv_feature_has_linebuffered_streambuf=yes
- ],[
-@@ -5851,9 +5873,17 @@
- ACE_CACHE_CHECK([for unbuffered streambufs],
- [ace_cv_feature_has_unbuffered_streambuf],[
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-+#ifdef ACE_USES_OLD_IOSTREAMS
- #include <iostream.h>
-+#else
-+#include <iostream>
-+#endif
- ]], [[
-+#ifdef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
-+ std::cin.rdbuf()->unbuffered(1);
-+#else
- cin.rdbuf()->unbuffered(1);
-+#endif
- ]])],[
- ace_cv_feature_has_unbuffered_streambuf=yes
- ],[
---- ACE_wrappers.orig/m4/aio.m4
-+++ ACE_wrappers/m4/aio.m4
-@@ -64,7 +64,6 @@
- #include <string.h>
- #include <errno.h>
- #include <stdio.h>
--#include <iostream.h>
-
- #include <aio.h>
-
diff --git a/ACE/debianbuild/patches/21-generate-platform_macros.GNU.diff b/ACE/debianbuild/patches/21-generate-platform_macros.GNU.diff
deleted file mode 100644
index 653c15fd04a..00000000000
--- a/ACE/debianbuild/patches/21-generate-platform_macros.GNU.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- ACE_wrappers.orig/configure.ac
-+++ ACE_wrappers/configure.ac
-@@ -8020,6 +8020,7 @@
- dnl tests/Makefile
-
- AC_CONFIG_FILES([
-+ include/makeinclude/platform_macros.GNU
- Makefile
- ace/Makefile
- ace/SSL/Makefile
diff --git a/ACE/debianbuild/patches/22-tao_idl-64bit-fix.dpatch b/ACE/debianbuild/patches/22-tao_idl-64bit-fix.dpatch
deleted file mode 100644
index b93cf6d87e2..00000000000
--- a/ACE/debianbuild/patches/22-tao_idl-64bit-fix.dpatch
+++ /dev/null
@@ -1,65 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 22-tao_idl-64bit-fix.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## DP: backport 64bit fix for tao_idl from upstream
-@DPATCH@
---- ACE_wrappers/TAO/TAO_IDL/be/be_helper.cpp- 2008-11-04 22:18:23.000000000 +0100
-+++ ACE_wrappers/TAO/TAO_IDL/be/be_helper.cpp 2008-11-04 22:19:14.000000000 +0100
-@@ -360,7 +360,7 @@
-
- return *this;
- }
--#if defined (ACE_WIN64) || ! (! defined (ACE_HAS_UINT64_T) && ACE_SIZEOF_LONG == 8)
-+
- TAO_OutStream &
- TAO_OutStream::operator<< (const ACE_CDR::ULongLong num)
- {
-@@ -380,26 +380,6 @@
-
- return *this;
- }
--#endif
--TAO_OutStream &
--TAO_OutStream::operator<< (const unsigned long num)
--{
-- ACE_OS::fprintf (this->fp_,
-- "%lu",
-- num);
--
-- return *this;
--}
--
--TAO_OutStream &
--TAO_OutStream::operator<< (const long num)
--{
-- ACE_OS::fprintf (this->fp_,
-- "%ld",
-- num);
--
-- return *this;
--}
-
- TAO_OutStream &
- TAO_OutStream::operator<< (const TAO_NL&)
---- ACE_wrappers/TAO/TAO_IDL/be_include/be_helper.h- 2008-11-04 22:14:08.000000000 +0100
-+++ ACE_wrappers/TAO/TAO_IDL/be_include/be_helper.h 2008-11-04 22:16:53.000000000 +0100
-@@ -174,18 +174,12 @@
-
- TAO_OutStream &operator<< (const ACE_CDR::Long num);
- // output the integer and return a reference to ourselves
--#if defined (ACE_WIN64) || ! (! defined (ACE_HAS_UINT64_T) && ACE_SIZEOF_LONG == 8)
-+
- TAO_OutStream &operator<< (const ACE_CDR::ULongLong num);
- // output the integer and return a reference to ourselves
-
- TAO_OutStream &operator<< (const ACE_CDR::LongLong num);
- // output the integer and return a reference to ourselves
--#endif
-- TAO_OutStream &operator<< (const unsigned long num);
-- // output the integer and return a reference to ourselves
--
-- TAO_OutStream &operator<< (const long num);
-- // output the integer and return a reference to ourselves
-
- // = MANIPULATORS
-
diff --git a/ACE/debianbuild/patches/34-bts386713.dpatch b/ACE/debianbuild/patches/34-bts386713.dpatch
deleted file mode 100644
index cdf73439591..00000000000
--- a/ACE/debianbuild/patches/34-bts386713.dpatch
+++ /dev/null
@@ -1,165 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 34-bts386713.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: load libraries with their complete name.
-
-@DPATCH@
---- ACE_wrappers.orig/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp 2007-01-25 18:04:11.000000000 +0000
-+++ ACE_wrappers/TAO/orbsvcs/orbsvcs/PortableGroup/PortableGroup_ORBInitializer.cpp 2007-02-13 11:45:38.000000000 +0000
-@@ -14,7 +14,7 @@
-
- static const char pg_poa_factory_name[] = "TAO_GOA";
- static const char pg_poa_factory_directive[] = ACE_DYNAMIC_SERVICE_DIRECTIVE(
-- "TAO_GOA", "TAO_PortableGroup", "_make_TAO_PG_Object_Adapter_Factory", "");
-+ "TAO_GOA", "libTAO_PortableGroup-1.6.6.so", "_make_TAO_PG_Object_Adapter_Factory", "");
-
- TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
---- ACE_wrappers.orig/TAO/tao/ORB_Core.cpp 2007-01-25 19:59:59.000000000 +0000
-+++ ACE_wrappers/TAO/tao/ORB_Core.cpp 2007-02-13 12:33:58.000000000 +0000
-@@ -1596,7 +1596,7 @@
- {
- this->configuration ()->process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("PolicyFactory_Loader",
-- "TAO_PI",
-+ "libTAO_PI-1.6.6.so",
- "_make_TAO_PolicyFactory_Loader",
- ""));
- loader =
-@@ -1635,7 +1635,7 @@
- {
- config->process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE ("ORBInitializer_Registry",
-- "TAO_PI",
-+ "libTAO_PI-1.6.6.so",
- "_make_ORBInitializer_Registry",
- ""));
- this->orbinitializer_registry_ =
-@@ -2432,7 +2432,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TypeCodeFactory",
-- "TAO_TypeCodeFactory",
-+ "libTAO_TypeCodeFactory-1.6.6.so",
- "_make_TAO_TypeCodeFactory_Loader",
- ""));
- loader =
-@@ -2465,7 +2465,7 @@
- {
- this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
-- "TAO_CodecFactory",
-+ "libTAO_CodecFactory-1.6.6.so",
- "_make_TAO_CodecFactory_Loader",
- ""));
- loader =
-@@ -2492,7 +2492,7 @@
- {
- this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("Compression",
-- "TAO_Compression",
-+ "libTAO_Compression-1.6.6.so",
- "_make_TAO_Compression_Loader",
- ""));
- loader =
-@@ -2519,7 +2519,7 @@
- {
- this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_POA_Current_Factory",
-- "TAO_PortableServer",
-+ "libTAO_PortableServer-1.6.6.so",
- "_make_TAO_POA_Current_Factory",
- ""));
- loader =
-@@ -2549,7 +2549,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("PICurrent_Loader",
-- "TAO_PI",
-+ "libTAO_PI-1.6.6.so",
- "_make_TAO_PICurrent_Loader",
- ""));
- loader =
-@@ -2581,7 +2581,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("DynamicAny_Loader",
-- "TAO_DynamicAny",
-+ "libTAO_DynamicAny-1.6.6.so",
- "_make_TAO_DynamicAny_Loader",
- ""));
- loader =
-@@ -2609,7 +2609,7 @@
- {
- this->configuration()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("IORManip_Loader",
-- "TAO_IORManip",
-+ "libTAO_IORManip-1.6.6.so",
- "_make_TAO_IORManip_Loader",
- ""));
- loader =
-@@ -2636,7 +2636,7 @@
- {
- this->configuration ()->process_directive
- (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_IORTable",
-- "TAO_IORTable",
-+ "libTAO_IORTable-1.6.6.so",
- "_make_TAO_Table_Adapter_Factory",
- ""));
- factory =
---- ACE_wrappers.orig/TAO/tao/ORBInitializer_Registry.cpp 2007-01-24 16:37:36.000000000 +0000
-+++ ACE_wrappers/TAO/tao/ORBInitializer_Registry.cpp 2007-02-13 12:30:53.000000000 +0000
-@@ -57,7 +57,7 @@
- {
- ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
-- "TAO_PI",
-+ "libTAO_PI-1.6.6.so",
- "_make_ORBInitializer_Registry",
- ""));
- orbinitializer_registry_ =
---- ACE_wrappers.orig/TAO/tao/PI/ORBInitInfo.cpp 2007-01-24 18:43:15.000000000 +0000
-+++ ACE_wrappers/TAO/tao/PI/ORBInitInfo.cpp 2007-02-13 12:30:07.000000000 +0000
-@@ -128,7 +128,7 @@
- {
- ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
-- "TAO_CodecFactory",
-+ "libTAO_CodecFactory-1.6.6.so",
- "_make_TAO_CodecFactory_Loader",
- ""));
- loader =
---- ACE_wrappers.orig/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp 2007-01-24 16:37:36.000000000 +0000
-+++ ACE_wrappers/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp 2007-02-13 11:46:59.000000000 +0000
-@@ -85,7 +85,7 @@
- {
- ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
-- "ImR_Client_Adapter", "TAO_ImR_Client",
-+ "ImR_Client_Adapter", "libTAO_ImR_Client-1.6.6.so",
- "_make_ImR_Client_Adapter_Impl", ""));
-
- adapter =
---- ACE_wrappers.orig/TAO/tao/TAO_Internal.cpp 2006-12-28 11:46:39.000000000 +0000
-+++ ACE_wrappers/TAO/tao/TAO_Internal.cpp 2007-02-13 11:47:57.000000000 +0000
-@@ -484,7 +484,7 @@
- ACE_Service_Config::process_directive (
- ACE_DYNAMIC_SERVICE_DIRECTIVE (
- "TAO_Codeset",
-- "TAO_Codeset",
-+ "libTAO_Codeset-1.6.6.so",
- "_make_TAO_Codeset_Manager_Factory",
- ""));
-
---- ACE_wrappers.orig/TAO/tao/RTCORBA/RT_ORBInitializer.cpp 2007-06-28 18:53:33.000000000 +0000
-+++ ACE_wrappers/TAO/tao/RTCORBA/RT_ORBInitializer.cpp 2007-06-28 18:55:43.000000000 +0000
-@@ -40,7 +40,7 @@
- static const ACE_TCHAR rt_poa_factory_directive[] =
- ACE_DYNAMIC_SERVICE_DIRECTIVE(
- "TAO_RT_Object_Adapter_Factory",
-- "TAO_RTPortableServer",
-+ "libTAO_RTPortableServer-1.6.6.so",
- "_make_TAO_RT_Object_Adapter_Factory",
- "");
-
diff --git a/ACE/debianbuild/patches/92-default-ACE_ROOT.dpatch b/ACE/debianbuild/patches/92-default-ACE_ROOT.dpatch
deleted file mode 100644
index c9be527c910..00000000000
--- a/ACE/debianbuild/patches/92-default-ACE_ROOT.dpatch
+++ /dev/null
@@ -1,20 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 92-default-ACE_ROOT.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Automatically set ACE_ROOT to /usr/share/ace in MPC generated
-## DP: GNUmakefile if no ACE_ROOT is set.
-
-@DPATCH@
---- ACE_wrappers.orig/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
-+++ ACE_wrappers/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
-@@ -89,6 +89,9 @@
- "ifeq (\$(findstring k,\$(MAKEFLAGS)),k)$crlf",
- " KEEP_GOING = -$crlf",
- "endif$crlf$crlf",
-+ "ifndef ACE_ROOT$crlf",
-+ " export ACE_ROOT = /usr/share/ace$crlf",
-+ "endif$crlf",
- "include \$(ACE_ROOT)/include/makeinclude/macros.GNU$crlf";
-
- if ($named) {
diff --git a/ACE/debianbuild/rules b/ACE/debianbuild/rules
deleted file mode 100644
index 4eb6078903b..00000000000
--- a/ACE/debianbuild/rules
+++ /dev/null
@@ -1,272 +0,0 @@
-#!/usr/bin/make -f
-
-# debian/rules file for the ACE Debian GNU/Linux package
-# written February 2002 by Ossama Othman <ossama@debian.org>
-# Modified August 2003 by Brian Nelson <pyro@debian.org>
-# Copyright (C) 2004 Raphael Bossek <bossekr@debian.org>
-# Copyright © 2005-2008 Thomas Girard <thomas.g.girard@free.fr>
-
-# This is the debhelper compatibility version to use.
-export DH_COMPAT=4
-
-INSTALL := install -o root -g root
-INSTALL_755 := $(INSTALL) -m 755
-
-export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
-
-ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
-confflags += --build $(DEB_HOST_GNU_TYPE)
-else
-confflags += --build $(DEB_BUILD_GNU_TYPE) \
- --host $(DEB_HOST_GNU_TYPE)
-endif
-
-TCL_HOME := /usr/lib
-TK_HOME := /usr/lib
-
-ACE_SUBDIR := ACE_wrappers
-ACE_ARCHIVE := $(shell ls -1 ACE+TAO+CIAO-src-*.tar.bz2 2>/dev/null || echo ace-archive-missing)
-MPC_SUBDIR := MPC
-MPC_ARCHIVE := $(shell ls -1 MPC*.tar.gz 2>/dev/null || echo mpc-archive-missing)
-
-MWCFLAGS := -type automake -features "ssl=1,zlib=1,zzip=1,xt=1,tk=1,fl=1,qt=1,fox=1" -noreldefs
-
-MAN1 := debian/Basic_Logging_Service.1 \
- debian/Event_Logging_Service.1 \
- debian/Notify_Logging_Service.1 \
- debian/RTEvent_Logging_Service.1 \
- debian/TAO_ORB_Options.1 \
- debian/mpc-ace.1
-MAN5 :=
-
-DOXYGEN_FILES_TO_REMOVE := -name '*.tag' -o \
- -name '*.md5' -o \
- -name '*.dot' -o \
- -name '*.idx' -o \
- -name '*.map' -o \
- -name 'index.hh?'
-
-ifneq (mpc-archive-missing,$(MPC_ARCHIVE))
-export MPC_ROOT := $(shell pwd)/$(MPC_SUBDIR)
-endif
-export ACE_ROOT := $(shell pwd)/$(ACE_SUBDIR)
-export TAO_ROOT := $(ACE_ROOT)/TAO
-export CIAO_ROOT := $(TAO_ROOT)/CIAO
-export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(ACE_ROOT)/lib
-export QTDIR := /usr/share/qt4
-
-# This dpatch is only a place holder. The `prepatch' targets stops
-# here by default.
-PREPATCH_MARK := 50-prepatch-dummy-mark.dpatch
-UNTIL := $(PREPATCH_MARK)
-
-# Where we install every file before calling dh_install
-DT := debian/tmp
-
-CONFIG := objdir/ace/config.h
-
-extract-stamp: $(ACE_ARCHIVE)
- tar -xjf $<
- cp debian/platform_macros.GNU.in $(ACE_ROOT)/include/makeinclude
- touch $@
-
-.PHONY: extract
-extract: extract-stamp
-
-$(MPC_ROOT): $(MPC_ARCHIVE)
- tar -xzf $<
- touch $@
-
-debian/mpc-ace.sgml: ACE_wrappers/MPC/docs/MPC.sgml
- sed -e 's/mpc\.pl/mpc-ace/g' -e 's/mwc\.pl/mwc-ace/g' $< > $@
-
-debian/%.1 debian/%.5: debian/%.sgml
- docbook-to-man $< > $@
-
-# Prepare a ACE_wrappers directory where most of the patches are applied.
-ifneq (mpc-archive-missing,$(MPC_ARCHIVE))
-prepatch-stamp: extract-stamp $(MPC_ROOT)
-else
-prepatch-stamp: extract-stamp
-endif
- dpatch apply-until $(UNTIL)
- cd $(ACE_ROOT) && bin/mwc.pl -noreldefs $(MWCFLAGS) ACE.mwc
- cd $(TAO_ROOT) && ../bin/mwc.pl -noreldefs $(MWCFLAGS) TAO.mwc
- patch -p0 < debian/patches/09-autoconf-fix-no-base-include-headers.diff
- patch -p0 < debian/patches/21-generate-platform_macros.GNU.diff
- touch $@
-
-.PHONY: prepatch
-prepatch: prepatch-stamp
-
-pl-stamp: extract-stamp
- for fn in `find "$(ACE_ROOT)" -name "*.pl"`; do (echo '#!/usr/bin/perl'; cat "$$fn") > "$${fn}T"; mv "$${fn}T" "$$fn"; chmod a+x "$$fn"; done
- touch $@
-
-patch-stamp: pl-stamp autotools-stamp
- dpatch apply-all
- chmod +x $(ACE_ROOT)/configure $(ACE_ROOT)/TAO/configure
- touch $@
-
-.PHONY: patch
-patch: patch-stamp
-
-unpatch: patch-stamp
- dpatch unpatch
- rm -f $<
-
-ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CXXFLAGS+=-O2
-endif
-
-autotools-stamp: prepatch-stamp
- cd $(ACE_ROOT) && bin/bootstrap
- touch $@
-
-.PHONY: autotools
-autotools: autotools-stamp
-
-build: build-stamp manpages-stamp
-
-manpages-stamp: $(MAN1) $(MAN5)
- touch $@
-
-doxygen-stamp: extract-stamp
- cd $(ACE_ROOT) && bin/generate_doxygen.pl -is_release
- find $(ACE_ROOT)/html/ace $(DOXYGEN_FILES_TO_REMOVE) | xargs -r rm -f
- find $(ACE_ROOT)/html/tao $(DOXYGEN_FILES_TO_REMOVE) | xargs -r rm -f
- touch $@
-
-.PHONY: doxygen
-doxygen: doxygen-stamp
-
-build-stamp: configure-stamp
- dh_testdir
- mkdir -p objdir/ace/QtReactor
- $(MAKE) -C objdir
- $(MAKE) -C objdir/TAO
-
- touch $@
-
-clean:
- dh_testdir
- rm -rf $(ACE_SUBDIR) $(MPC_SUBDIR) objdir debian/patched $(MAN1) $(MAN5) *-stamp debian/mpc-ace.sgml
- dh_clean
-
-install: build
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
-
- $(MAKE) -C objdir install DESTDIR=$(CURDIR)/$(DT)
- $(MAKE) -C objdir/TAO install DESTDIR=$(CURDIR)/$(DT)
-
-# Rename the catior utility, it already exists in another package
- mv $(DT)/usr/bin/catior $(DT)/usr/bin/tao-catior
-
-# Multiple README
- cp $(TAO_ROOT)/utils/catior/README $(TAO_ROOT)/utils/catior/README.catior
- cp $(TAO_ROOT)/utils/nslist/README $(TAO_ROOT)/utils/nslist/README.nslist
-
-# We provide scripts replacement for tao_idl and tao_ifr ; they
-# automatically define ACE_ROOT and TAO_ROOT
- mv $(DT)/usr/bin/tao_idl $(DT)/usr/bin/tao_idl.real
- $(INSTALL_755) -D debian/tao_idl $(DT)/usr/bin/tao_idl
- mv $(DT)/usr/bin/tao_ifr $(DT)/usr/bin/tao_ifr.real
- $(INSTALL_755) -D debian/tao_ifr $(DT)/usr/bin/tao_ifr
-
-# Copy MPC files.
- $(INSTALL_755) -D $(ACE_ROOT)/bin/mpc.pl $(DT)/usr/bin/mpc-ace
- $(INSTALL_755) -D $(ACE_ROOT)/bin/mwc.pl $(DT)/usr/bin/mwc-ace
-
-# Be lintian clean, fix permissions on examples
- -chmod -x `find $(TAO_ROOT)/examples/ -perm 755 ! -type d -a ! \( -name "*.pl" -o -name "*.sh" \)`
-
-# We don't install .la files
- find $(DT) -name '*.la' -print0 | xargs -0 rm
- rm -f $(DT)/usr/bin/TAO_Service
- dh_install --sourcedir=$(DT) --fail-missing
-
-binary-indep: build install doxygen-stamp
- dh_testdir -i
- dh_testroot -i
- dh_installdocs -i
- dh_installexamples -i
- dh_installman -i
- dh_installchangelogs -i $(ACE_ROOT)/ChangeLog
- dh_perl -i
- dh_link -i
- dh_compress -i -Xexamples -Xtutorials
- dh_fixperms -i
- dh_installdeb -i
- dh_gencontrol -i
- dh_md5sums -i
- dh_builddeb -i
-
-binary-arch: build install
- dh_testdir -a
- dh_testroot -a
- dh_installdocs -a -A
- dh_installman -a
- dh_installinfo -pgperf-ace $(ACE_ROOT)/apps/gperf/ace_gperf.info
- dh_installchangelogs -a $(ACE_ROOT)/ChangeLog
- dh_installchangelogs -pgperf-ace $(ACE_ROOT)/apps/gperf/ChangeLog
- dh_strip -a
- dh_link -a
- dh_compress -a
- dh_fixperms -a
- dh_makeshlibs -a -V
- dh_installdeb -a
- dh_shlibdeps -a -l `ls -1 debian/lib*.install | sed -e 's#\(.*\)\.install#\1/usr/lib#' | tr '\n' ':' | sed -e 's#:$$##'`
- dh_gencontrol -a
- dh_md5sums -a
- dh_builddeb -a
-
-source diff:
- @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
-
-binary: binary-indep binary-arch
-
-configure-stamp: patch-stamp
- mkdir -p objdir
- cd objdir && ../ACE_wrappers/configure $(confflags) --prefix=/usr \
- --disable-tao-examples --disable-tao-tests \
- --disable-ace-examples --disable-ace-tests \
- --enable-fl-reactor --enable-qt-reactor --enable-xt-reactor \
- --enable-tk-reactor \
- --with-fox-config=/usr/bin --enable-fox-reactor \
- --with-tclconfig=$(TCL_HOME) --with-tkconfig=$(TK_HOME) \
- --with-zlib --with-zzip \
- --enable-ipv6 --enable-ipv4-ipv6 \
- --enable-inline \
- --enable-pthreads \
- --enable-symbol-visibility \
- --enable-ace-reactor-notification-queue
- echo '#define TAO_IDL_INCLUDE_DIR "/usr/include/tao"' >> $(CONFIG)
-
- # bz#3138
- echo "#define ACE_HAS_RECURSIVE_MUTEXES" >> $(CONFIG)
-
- echo "#define ACE_HAS_SCANDIR" >> $(CONFIG)
- echo "#define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR" >> $(CONFIG)
-
- # bz#3144
- echo "#define ACE_HAS_SENDFILE" >> $(CONFIG)
-
- echo "#define ACE_LACKS_WCSICMP" >> $(CONFIG)
-
- echo "#define ACE_POSIX_SIG_PROACTOR" >> $(CONFIG)
-
- # TODO: ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO?
-
- # Remove PACKAGE_* from the generated config.h
- sed -i -e '/package/I D' objdir/ace/config.h
- touch $@
-
-.PHONY: configure
-configure: configure-stamp
-
-.PHONY: build clean binary-indep binary-arch binary install unpatch source diff
diff --git a/ACE/debianbuild/tao-concurrency.install b/ACE/debianbuild/tao-concurrency.install
deleted file mode 100644
index d5056db405c..00000000000
--- a/ACE/debianbuild/tao-concurrency.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/Concurrency_Service
diff --git a/ACE/debianbuild/tao-event.install b/ACE/debianbuild/tao-event.install
deleted file mode 100644
index 6bebccee3e8..00000000000
--- a/ACE/debianbuild/tao-event.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/CosEvent_Service
diff --git a/ACE/debianbuild/tao-ft.install b/ACE/debianbuild/tao-ft.install
deleted file mode 100644
index 54f6167bc6d..00000000000
--- a/ACE/debianbuild/tao-ft.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/Fault_Detector
-usr/bin/Fault_Notifier
-usr/bin/FT_ReplicationManager
diff --git a/ACE/debianbuild/tao-idl.install b/ACE/debianbuild/tao-idl.install
deleted file mode 100644
index 84f7a05b480..00000000000
--- a/ACE/debianbuild/tao-idl.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/tao_idl.real
-usr/bin/tao_idl
diff --git a/ACE/debianbuild/tao-ifr.install b/ACE/debianbuild/tao-ifr.install
deleted file mode 100644
index 745c4474b5b..00000000000
--- a/ACE/debianbuild/tao-ifr.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/IFR_Service
-usr/bin/tao_ifr.real
-usr/bin/tao_ifr
diff --git a/ACE/debianbuild/tao-imr.install b/ACE/debianbuild/tao-imr.install
deleted file mode 100644
index 1054516f613..00000000000
--- a/ACE/debianbuild/tao-imr.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/ImplRepo_Service
-usr/bin/ImR_Activator
-usr/bin/tao_imr
diff --git a/ACE/debianbuild/tao-lifecycle.install b/ACE/debianbuild/tao-lifecycle.install
deleted file mode 100644
index a34fa7b8ee6..00000000000
--- a/ACE/debianbuild/tao-lifecycle.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/LifeCycle_Service
diff --git a/ACE/debianbuild/tao-load.install b/ACE/debianbuild/tao-load.install
deleted file mode 100644
index 203a48c0296..00000000000
--- a/ACE/debianbuild/tao-load.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/LoadManager
-usr/bin/LoadMonitor
diff --git a/ACE/debianbuild/tao-log.install b/ACE/debianbuild/tao-log.install
deleted file mode 100644
index f2197fef495..00000000000
--- a/ACE/debianbuild/tao-log.install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/bin/Basic_Logging_Service
-usr/bin/Event_Logging_Service
-usr/bin/Notify_Logging_Service
-usr/bin/RTEvent_Logging_Service
diff --git a/ACE/debianbuild/tao-naming.install b/ACE/debianbuild/tao-naming.install
deleted file mode 100644
index d76b87af15c..00000000000
--- a/ACE/debianbuild/tao-naming.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/Naming_Service
diff --git a/ACE/debianbuild/tao-notify.install b/ACE/debianbuild/tao-notify.install
deleted file mode 100644
index 40deedfaf5a..00000000000
--- a/ACE/debianbuild/tao-notify.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/Notify_Service
diff --git a/ACE/debianbuild/tao-rtevent.install b/ACE/debianbuild/tao-rtevent.install
deleted file mode 100644
index 48ff34c9df0..00000000000
--- a/ACE/debianbuild/tao-rtevent.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/Event_Service
diff --git a/ACE/debianbuild/tao-scheduling.install b/ACE/debianbuild/tao-scheduling.install
deleted file mode 100644
index 5dfc36c35d8..00000000000
--- a/ACE/debianbuild/tao-scheduling.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/Scheduling_Service
-usr/bin/Dump_Schedule
diff --git a/ACE/debianbuild/tao-time.install b/ACE/debianbuild/tao-time.install
deleted file mode 100644
index f179e39461c..00000000000
--- a/ACE/debianbuild/tao-time.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/Time_Service_Server
-usr/bin/Time_Service_Clerk
diff --git a/ACE/debianbuild/tao-trading.install b/ACE/debianbuild/tao-trading.install
deleted file mode 100644
index 61109722f34..00000000000
--- a/ACE/debianbuild/tao-trading.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/Trading_Service
diff --git a/ACE/debianbuild/tao-utils.docs b/ACE/debianbuild/tao-utils.docs
deleted file mode 100644
index 3d8830cfa42..00000000000
--- a/ACE/debianbuild/tao-utils.docs
+++ /dev/null
@@ -1,2 +0,0 @@
-ACE_wrappers/TAO/utils/nslist/README.nslist
-ACE_wrappers/TAO/utils/catior/README.catior
diff --git a/ACE/debianbuild/tao-utils.install b/ACE/debianbuild/tao-utils.install
deleted file mode 100644
index 087577155ab..00000000000
--- a/ACE/debianbuild/tao-utils.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/tao-ns{add,del,list}
-usr/bin/tao-catior
diff --git a/ACE/debianbuild/tao_idl b/ACE/debianbuild/tao_idl
deleted file mode 100644
index 2d48cb8614e..00000000000
--- a/ACE/debianbuild/tao_idl
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-ACE_ROOT=/usr/share/ace; export ACE_ROOT;
-TAO_ROOT=$ACE_ROOT/TAO; export TAO_ROOT;
-
-exec tao_idl.real "$@"
diff --git a/ACE/debianbuild/tao_ifr b/ACE/debianbuild/tao_ifr
deleted file mode 100644
index baf5a4c7698..00000000000
--- a/ACE/debianbuild/tao_ifr
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-ACE_ROOT=/usr/share/ace; export ACE_ROOT;
-TAO_ROOT=$ACE_ROOT/TAO; export TAO_ROOT;
-
-exec tao_ifr.real "$@"
diff --git a/ACE/docs/ACE-bug-process.html b/ACE/docs/ACE-bug-process.html
index 817fa34485e..a703c0072f6 100644
--- a/ACE/docs/ACE-bug-process.html
+++ b/ACE/docs/ACE-bug-process.html
@@ -82,12 +82,12 @@ sponsors. <P>
We encourage bug reports for those without support to be posted
initially to the <A
HREF="http://www.cs.wustl.edu/~schmidt/ACE-mail.html">ACE users</A>
-(<A HREF="mailto:ace-users@cs.wustl.edu">ace-users@cs.wustl.edu</A>),
+(<A HREF="mailto:ace-users@list.isis.vanderbilt.edu">ace-users@list.isis.vanderbilt.edu</A>),
<A HREF="http://www.cs.wustl.edu/~schmidt/TAO-mail.html">TAO users</A>
-(<A HREF="mailto:tao-users@cs.wustl.edu">tao-users@cs.wustl.edu</A>),
+(<A HREF="mailto:tao-users@list.isis.vanderbilt.edu">tao-users@list.isis.vanderbilt.edu</A>),
and <A HREF="http://www.cs.wustl.edu/~schmidt/CIAO-mail.html">CIAO
users</A> (<A
-HREF="mailto:ciao-users@cs.wustl.edu">ciao-users@cs.wustl.edu</A>)
+HREF="mailto:ciao-users@list.isis.vanderbilt.edu">ciao-users@list.isis.vanderbilt.edu</A>)
mailing lists, where the open-source user community may already have
developed, or have an interest in developing, a solution. <P>
@@ -167,7 +167,7 @@ format. <P>
<LI> Please create (or augment) a test program that
validates your patch and integrate it into the <A
-HREF="../tests">ACE_ROOT/tests</A> directory. <P>
+HREF="../tests">ACE_ROOT/tests</A> directory. <P>
<LI> If your patch is for a platform/compiler that aren't part of our
<A HREF="http://www.dre.vanderbilt.edu/scoreboard">autobuild
diff --git a/ACE/docs/ACE-guidelines.html b/ACE/docs/ACE-guidelines.html
index 86937035ff0..2d85c775506 100644
--- a/ACE/docs/ACE-guidelines.html
+++ b/ACE/docs/ACE-guidelines.html
@@ -37,6 +37,10 @@ bgcolor="#ffffff">
<pre>(setq-default nuke-trailing-whitespace-p t)</pre>
+ Newer versions of emacs will require the following instead:
+
+ <pre>(add-hook 'before-save-hook 'delete-trailing-whitespace)</pre>
+
<strong>Note for Microsoft Visual Studio .NET Users:</strong>
<p>There is a macro project <code>(ace_guidelines.vsmacros)</code>
located in <code>$ACE_ROOT/docs</code> that replaces tabs with spaces
@@ -494,21 +498,14 @@ If using g++, problems like this can be flagged as a warning by using the "<code
for (unsigned int i = 0; i &lt; count; ++i)
++total;
</pre>
- Though, I prefer to always wrap the body of the loop in braces,
- to avoid surprises when other code or debugging statements are
- added, and to maintain sanity when the body consists of a macro,
- such as an <code>ACE_ASSERT</code> without a trailing semicolon:
- <pre>
- for (unsigned int i = 0; i &lt; count; ++i)
- {
- ACE_ASSERT (++total &lt; UINT_MAX;)
- }
- </pre><p>
Similarly, <strong><code>if</code></strong> statements should have
a space after the "<strong>if</strong>", and no spaces just after
the opening parenthesis and just before the closing parenthesis.<p>
+ If there's just one statement in the loop or if statement
+ there's no need to use additional braces.
+
<li>If a loop index is used after the body of the loop, it
<strong>must</strong> be declared before the loop. For example,
@@ -1260,7 +1257,7 @@ public:
<li>Test your change on at least Windows and Linux before commiting.
After commiting watch the scoreboard to catch errors your change
may be related to on other platforms.
- <li>An an entry to the appropriate ChangeLog. TAO and some
+ <li>Add an entry to the appropriate ChangeLog. TAO and some
ACE subdirectories, such as <a href="../ASNMP">ASNMP</a>,
<a href="../apps/JAWS">JAWS</a>, and
<a href="../apps/gperf">gperf,</a> have their
diff --git a/ACE/docs/ACE-porting.html b/ACE/docs/ACE-porting.html
index 79f773f4a2c..a1cc4ff34ce 100644
--- a/ACE/docs/ACE-porting.html
+++ b/ACE/docs/ACE-porting.html
@@ -82,10 +82,9 @@ thread APIs: <P>
<UL>
<LI> <B>UNIX International (UI) Threads</B>
- (<CODE>ACE_HAS_STHREADS</CODE>) - Solaris 2, UnixWare. <P>
+ (<CODE>ACE_HAS_STHREADS</CODE>) - Solaris.<P>
-<LI> <B>POSIX Pthreads</B> (<CODE>ACE_HAS_PTHREADS</CODE>) - drafts 4
- [DCE], 6 [FSU], 7 [AIX], as well as the final standard (also
+<LI> <B>POSIX Pthreads</B> (<CODE>ACE_HAS_PTHREADS</CODE>) -Final standard (also
called draft 10) [MIT, Linux, and Solaris]. <P>
<LI> <B>Win32 Threads</B> (<CODE>ACE_HAS_WTHREADS</CODE>) - Windows
@@ -154,7 +153,7 @@ order to compile ACE and TAO:
<LI> <B>ANSI casts and RTTI</B> -- ACE+TAO+CIAO uses the ANSI C++
casts, so the C++ compiler must support them, which implies
- support for RTTI.<P>
+ support for RTTI.<P>
</UL>
@@ -182,7 +181,7 @@ take advantage of if a compiler supports them:
If you are considering STL, you might consider
<A HREF="http://www.stlport.org/">STLport</a>,
which is a port of the SGI STL to numerous platforms that ACE,
- TAO, and CIAO also support. <P>
+ TAO, and CIAO also support. <P>
</UL>
diff --git a/ACE/docs/Download.html b/ACE/docs/Download.html
index 167dfcd0300..4c651cc616c 100644
--- a/ACE/docs/Download.html
+++ b/ACE/docs/Download.html
@@ -3,7 +3,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
- <TITLE>Obtaining ACE, TAO and CIAO</TITLE>
+ <TITLE>Obtaining ACE, TAO, CIAO and DAnCE</TITLE>
</HEAD>
<BODY
@@ -11,9 +11,9 @@
bgColor="#ffffff">
<HR>
- <H3>Obtaining ACE, TAO, and CIAO</H3>
+ <H3>Obtaining ACE, TAO, CIAO, and DAnCE</H3>
-Welcome to the download page for ACE, TAO, and CIAO, which are
+Welcome to the download page for ACE, TAO, CIAO, and DAnCE which are
open-source middleware developed by the <A
HREF="http://www.dre.vanderbilt.edu/">DOC group</a> that provide that
following capabilities:
@@ -45,19 +45,25 @@ framework.
CORBA Component Model (CCM) built on top of TAO. </P>
</LI>
+
+<LI> <A HREF="http://www.cs.wustl.edu/~schmidt/CIAO.html">DAnCE</a>
+is an open-source implementation of the
+Deployment and Configuration standard (D&C) built on top of TAO. </P>
+</LI>
+
<A
HREF="http://www.cs.wustl.edu/~schmidt/commercial-support.html">Commercial
-support and pre-built versions</A> of ACE, TAO, and CIAO are available
+support and pre-built versions</A> of ACE, TAO, CIAO, and DAnCE are available
from a number of companies. <P>
<HR>
- <H3>Downloading Freely Available Versions of ACE, TAO, and CIAO</H3>
+ <H3>Downloading Freely Available Versions of ACE, TAO, CIAO, and DAnCE</H3>
<P>
Our process for developing and releasing ACE, TAO, and CIAO, as well
-as the role of major, minor, andmicro release kits is described in
+as the role of major, minor, and micro release kits is described in
detail in the DOC group's <A
HREF="https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/docs/ACE-development-process.html?revision=HEAD">
development and release process</A> document. Please check that
@@ -66,8 +72,8 @@ case. You may want to understand the DOC group's <A
HREF="https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/docs/ACE-bug-process.html?revision=HEAD">
bug fixing policies</A> when you make this decision. </P>The full
packages do contain all sources with pre generated makefiles for GNU
-make, Visual C++ 7.1/8.0/9.0, CodeGear C++ make, and GNU autoconf. The
-sources only packes just contain the sources, you have to generate
+make, Visual C++ 8.0/9.0/10.0, and GNU autoconf. The
+sources-only packages just contain the source code, you have to generate
your own makefiles with MPC. </P>
<P>
If you are using Windows download a package with a .zip extension, these packages have
@@ -84,212 +90,261 @@ 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-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.3.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-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.3.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-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.3.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-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.3.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-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.3.zip">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.3.zip">FTP</A>]
+ </TD>
+ </TR>
+ <TR><TD>ACE+TAO+DAnCE.tar.gz</TD>
+ <TD>ACE+TAO+DAnCE (tar+gzip format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.3.tar.gz">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.3.tar.gz">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>]
+ </TR>
+ <TR><TD>ACE+TAO+DAnCE.tar.bz2</TD>
+ <TD>ACE+TAO+DAnCE (tar+bzip2 format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.3.tar.bz2">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.3.tar.bz2">FTP</A>]
+ </TD>
+ </TR>
+ <TR><TD>ACE+TAO+DAnCE.zip</TD>
+ <TD>ACE+TAO+DAnCE (zip format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.3.zip">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.3.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-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.3.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-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.3.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-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.3.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-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.3.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-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.3.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-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.3.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-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.3.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-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.3.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-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.3.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-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.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-6.0.3.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.3.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-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.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-6.0.3.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.3.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-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.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-6.0.3.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.3.zip">FTP</A>]
</TD>
</TR>
</TABLE>
-<P>
- Patches between older micro release kit versions are available via FTP at
- <A HREF="ftp://download.dre.vanderbilt.edu/diffs">this location</A>.
-</P>
-
-<LI> <B>Latest Release.</B> The latest release is ACE 5.6, TAO 1.6, and CIAO 0.6
-(ACE+TAO+CIAO x.6), please use the links below to download it.<P>
+<LI> <B>Latest Release.</B> The latest release is ACE 6.0.0, TAO 2.0.0, CIAO 1.0.0, and DAnCE 1.0.0
+(ACE+TAO+CIAO+DAnCE x.0.0), please use the links below to download it.<P>
<TABLE BORDER="4">
<TR><TH>Filename</TH><TH>Description</TH><TH>Full</TH><TH>Sources only</TH></TR>
- <TR><TD>ACE+TAO+CIAO-5.6.tar.gz</TD>
+ <TR><TD>ACE+TAO+CIAO-6.0.0.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.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.0.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.0.tar.gz">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO+CIAO-5.6.tar.bz2</TD>
+ <TR><TD>ACE+TAO+CIAO-6.0.0.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.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.0.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.0.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO+CIAO-5.6.zip</TD>
+ <TR><TD>ACE+TAO+CIAO-6.0.0.zip</TD>
<TD>ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.0.zip">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.0.zip">FTP</A>]
+ </TD>
+ </TR>
+ <TR><TD>ACE+TAO+DAnCE.tar.gz</TD>
+ <TD>ACE+TAO+DAnCE (tar+gzip format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.0.tar.gz">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.0.tar.gz">FTP</A>]
+ </TD>
+ </TR>
+ <TR><TD>ACE+TAO+DAnCE.tar.bz2</TD>
+ <TD>ACE+TAO+DAnCE (tar+bzip2 format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.0.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.0.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO-5.6.tar.gz</TD>
+ <TR><TD>ACE+TAO+DAnCE.zip</TD>
+ <TD>ACE+TAO+DAnCE (zip format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.0.zip">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.0.zip">FTP</A>]
+ </TD>
+ </TR>
+ <TR><TD>ACE+TAO-6.0.0.tar.gz</TD>
<TD>ACE+TAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.0.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.0.tar.gz">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO-5.6.tar.bz2</TD>
+ <TR><TD>ACE+TAO-6.0.0.tar.bz2</TD>
<TD>ACE+TAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.0.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.0.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO-5.6.zip</TD>
+ <TR><TD>ACE+TAO-6.0.0.zip</TD>
<TD>ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.0.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.0.zip">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6-html.tar.gz</TD>
+ <TR><TD>ACE-html-6.0.0.tar.gz</TD>
<TD>Doxygen documentation for ACE+TAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.0.tar.gz">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6-html.tar.bz2</TD>
+ <TR><TD>ACE-html-6.0.0.tar.bz2</TD>
<TD>Doxygen documentation for ACE+TAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.0.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6-html.zip</TD>
+ <TR><TD>ACE-html-6.0.0.zip</TD>
<TD>Doxygen documentation for ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.0.zip">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.tar.gz</TD>
+ <TR><TD>ACE-6.0.0.tar.gz</TD>
<TD>ACE only (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.0.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.0.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.0.tar.gz">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.tar.bz2</TD>
+ <TR><TD>ACE-6.0.0.tar.bz2</TD>
<TD>ACE only (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.0.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.0.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.0.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.zip</TD>
+ <TR><TD>ACE-6.0.0.zip</TD>
<TD>ACE only (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.0.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.0.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.0.zip">FTP</A>]
</TD>
</TR>
</TABLE>
@@ -297,148 +352,171 @@ of the ACE, TAO, and CIAO micro release kit is available for
<LI> <A NAME="stable-beta"></A><B>Latest BFO Micro Release.</B> The
-BFO micro release for the latest release of ACE 5.6, TAO 1.6, CIAO 0.6
-is, ACE 5.6.1, TAO 1.6.1, and CIAO 0.6.1 (ACE+TAO+CIAO x.6.1). Please
-use the links below to download it.
+Bug Fix Only micro release for the latest release of ACE 6.0, TAO 2.0, CIAO 1.0, and DAnCE 1.0
+is ACE 6.0.1, TAO 2.0.1, CIAO 1.0.1, and DAnCE 1.0.1 (ACE+TAO+CIAO+DAnCE x.0.1). Please use
+the links below to download it.
<TABLE BORDER="4">
<TR><TH>Filename</TH><TH>Description</TH><TH>Full</TH><TH>Sources only</TH></TR>
- <TR><TD>ACE+TAO+CIAO-5.6.1.tar.gz</TD>
+ <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.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.1.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.1.tar.gz">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO+CIAO-5.6.1.tar.bz2</TD>
+ <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.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.1.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.1.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO+CIAO-5.6.1.zip</TD>
- <TD>ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.zip">FTP</A>]
+ <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-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.0.1.zip">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.0.1.zip">FTP</A>]
+ </TD>
+ </TR>
+ <TR><TD>ACE+TAO+DAnCE.tar.gz</TD>
+ <TD>ACE+TAO+DAnCE (tar+gzip format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.1.tar.gz">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.1.tar.gz">FTP</A>]
+ </TD>
+ </TR>
+ <TR><TD>ACE+TAO+DAnCE.tar.bz2</TD>
+ <TD>ACE+TAO+DAnCE (tar+bzip2 format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.1.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.1.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO-5.6.1.tar.gz</TD>
+ <TR><TD>ACE+TAO+DAnCE.zip</TD>
+ <TD>ACE+TAO+DAnCE (zip format)</TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.0.1.zip">FTP</A>]
+ </TD>
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.0.1.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.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.1.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.1.tar.gz">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO-5.6.1.tar.bz2</TD>
+ <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.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.1.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.1.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE+TAO-5.6.1.zip</TD>
+ <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.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.0.1.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.0.1.zip">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.1-html.tar.gz</TD>
- <TD>Doxygen documentation for ACE+TAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.tar.gz">FTP</A>]
+ <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-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.1.tar.gz">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.1-html.tar.bz2</TD>
- <TD>Doxygen documentation for ACE+TAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.tar.bz2">FTP</A>]
+ <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-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.1.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.1-html.zip</TD>
- <TD>Doxygen documentation for ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.zip">FTP</A>]
+ <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-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.0.1.zip">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.1.tar.gz</TD>
+ <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.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.1.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.1.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.1.tar.gz">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.1.tar.bz2</TD>
+ <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.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.1.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.1.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.1.tar.bz2">FTP</A>]
</TD>
</TR>
- <TR><TD>ACE-5.6.1.zip</TD>
+ <TR><TD>ACE.zip</TD>
<TD>ACE only (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.1.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.1.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.0.1.zip">FTP</A>]
</TD>
</TR>
</TABLE>
<P>
+
</UL>
<P>
Older versions of ACE+TAO are also available via HTTP at <A
HREF="http://download.dre.vanderbilt.edu/previous_versions">this location</A>
. This location has a few of the previous major and minor
- releases. This location will house all major, minor, and micro releases
+ releases. This location will house all major, minor, and micro releases
distributed after ACE+TAO-5.2+1.2.
</P>
- <H3>Other Sources for ACE+TAO+CIAO</H3>
+ <H3>Other Sources for ACE+TAO+CIAO+DAnCE</H3>
<UL>
- <LI>The ACE+TAO Subversion repository can be browsed
+ <LI>The ACE+TAO+CIAO+DAnCE Subversion repository can be browsed
<A HREF="https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/">
via the web</A>.
</LI>
- <li>ACE+TAO+CIAO source code may be obtained from the
+ <li>ACE+TAO+CIAO+DAnCE source code may be obtained from the
<a href="https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/ACE-INSTALL.html?revision=HEAD#power">Subversion repository</a>.</li>
- <LI>Commercially supported versions of ACE+TAO are available from
+ <LI>Commercially supported versions of ACE+TAO+CIAO+DAnCE are available from
<A HREF="http://www.dre.vanderbilt.edu/support.html">several companies</A>.
- <LI>RPMs for CentOS, Fedora, Mandriva, RHEL, SLE, and OpenSuSe are available from the
- <A HREF="http://software.opensuse.org/search">OpenSuSE build service</A>.
+ <LI>RPMs for CentOS, Fedora, Mandriva, RHEL, SLE, and OpenSuSE are available from the
+ <A HREF="http://software.opensuse.org/search">Open Build Service</A>.
<LI> Ken Sedgwick's <A HREF="http://dist.bonsai.com/ken/ace_tao_rpm/">Fedora
RPMs</A> for ACE and TAO.
</UL><P>
-The GNU autoconf support for ACE and TAO should work fine
-"out-of-the-box." The autoconf support for CIAO is not yet complete,
-so we recommend avoiding it and using the alternative build mechanism.
-We are interested in getting help to finish CIAO autoconf support so
-it you want to help us improve CIAO's autoconf support please contact
-<A
-HREF="mailto:d.schmidt@vanderbilt.edu">d.schmidt@vanderbilt.edu</A>.
+The GNU autoconf support for ACE should work fine
+"out-of-the-box.".
Naturally, if you run into problems with the use of autoconf in ACE
-and TAO please submit submit a <A
+please submit a <A
HREF="http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/docs/ACE-bug-process.html">bug
report</A>.
diff --git a/ACE/FAQ b/ACE/docs/FAQ
index c184fbde84c..c184fbde84c 100644
--- a/ACE/FAQ
+++ b/ACE/docs/FAQ
diff --git a/ACE/docs/Symbol_Versioning.html b/ACE/docs/Symbol_Versioning.html
index d0d50bca914..bdf72d29504 100644
--- a/ACE/docs/Symbol_Versioning.html
+++ b/ACE/docs/Symbol_Versioning.html
@@ -178,7 +178,7 @@
straight <code>##</code> preprocessor concatenation since in the
latter case preprocessor symbols like
<code>ACE_VERSIONED_NAMESPACE_NAME</code> will not be expanded
- if they are concatenated. <code>ACE_PREPROCE_CONCATENATE</code>
+ if they are concatenated. <code>ACE_PREPROC_CONCATENATE</code>
forces the preprocessor to expand them during the argument
prescan by calling a macro that itself calls another that
performs the actual concatenation.
@@ -227,7 +227,7 @@ website</A>.
<address><a href="mailto:ossama@dre.vanderbilt.edu">Ossama Othman</a></address>
<!-- Created: Fri Mar 17 08:35:50 PST 2006 -->
<!-- hhmts start -->
-Last modified: Fri Mar 17 20:47:41 PST 2006
+Last modified: $Id$
<!-- hhmts end -->
</body>
</html>
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/docs/bczar/bczar.html b/ACE/docs/bczar/bczar.html
index 2645705b70e..377556c81d7 100644
--- a/ACE/docs/bczar/bczar.html
+++ b/ACE/docs/bczar/bczar.html
@@ -12,136 +12,155 @@
Scoreboard </a>
as one of the primary source of information.
<li>
- Notify developers who broke compilation to fix the errors as soon as possible,
- ideally by the next day. A red color in the "Compile" column is not at all
- acceptable - the Build Czar needs to ensure that these problems are identified
- and fixed in a timely manner. If possible, the Build Czar should let developers
- know what the source of problems might be. It is quite possible that developers
- who checked in the code or users who provided the patch may not have resources
- to investigate the issues, so the Builds Czar's help is essential to keep
+ Notify developers who broke compilation to fix the errors as soon as possible,
+ ideally by the next day. A red color in the "Compile" column is not at all
+ acceptable - the Build Czar needs to ensure that these problems are identified
+ and fixed in a timely manner. If possible, the Build Czar should let developers
+ know what the source of problems might be. It is quite possible that developers
+ who checked in the code or users who provided the patch may not have resources
+ to investigate the issues, so the Builds Czar's help is essential to keep
things moving ahead.
<li>
- Keep an eye on the tests that are run in every build. Anything abnormal needs
- to be notified to the right developer. The Build Czar should try helping the
- developer by providing stack traces (in case of crashes) or other details like
+ Keep an eye on the tests that are run in every build. Anything abnormal needs
+ to be notified to the right developer. The Build Czar should try helping the
+ developer by providing stack traces (in case of crashes) or other details like
printouts with debugging level turned on.
<li>
- Some tests fail in the daily builds for many reasons like known bugs, transient
+ Some tests fail in the daily builds for many reasons like known bugs, transient
timeouts etc. Make sure that no new test failures show up. This <a href="mailto:jwillemsen@remedy.nl">
guy</a>
knows most of the information. Ask him to help you out with known problems.
<li>
- Keep an eye on the <a href="http://www.dre.vanderbilt.edu/Stats">footprint and
- performance</a> stats. Any abnormal changes should be brought to the
+ Keep an eye on the <a href="http://www.dre.vanderbilt.edu/Stats">footprint and
+ performance</a> stats. Any abnormal changes should be brought to the
attention of the developer resposible for it or to the <a href="mailto:devo-group@list.isis.vanderbilt.edu">
devo group</a>.
<li>
- Keep the builds ticking. Any red on the "Last Finished" column in the
- Scoreboard should be fixed. The link to the "Build Name" indicates the machine
+ Keep the builds ticking. Any red on the "Last Finished" column in the
+ Scoreboard should be fixed. The link to the "Build Name" indicates the machine
where the build is being run.
<li>
- The builds don't cover all the possible configurations. If you get a bug report
- about a compile error in a particular configuration, try setting up a build to
+ The builds don't cover all the possible configurations. If you get a bug report
+ about a compile error in a particular configuration, try setting up a build to
make sure that it doesn't show up again if it has been fixed.
<li>
- Keep an eye on the <a href="http://deuce.doc.wustl.edu/bugzilla/index.cgi">bugzilla
+ Keep an eye on the <a href="http://bugzilla.dre.vanderbilt.edu/">bugzilla
</a>
- entries that are registered by users and developers. Decide on the bugs that
+ entries that are registered by users and developers. Decide on the bugs that
need to be fixed for the beta and pain developers for an ETA.
</p>
<P>
- The document <a href="./privileges.html">here </a>talks about the powers of a
+ The document <a href="./privileges.html">here </a>talks about the powers of a
build Czar.
</P>
<P>
- The Build Czar is empowered to set up more builds on his own for his
- convenience. This <a href="https://svn.dre.vanderbilt.edu/viewvc/ACE_autobuild/trunk/README?revision=HEAD">
+ The Build Czar is empowered to set up more builds on his own for his
+ convenience. This <a href="https://svn.dre.vanderbilt.edu/viewvc/autobuild/trunk/README?revision=HEAD">
page </a>has a step by step instructions on how to do that.
</P>
<P>
- The build czar can get the build configuration by looking at the config portion
+ The build czar can get the build configuration by looking at the config portion
of the scoreboard.
</P>
- <p>Pro-active involvement by the build czar is necessary. Being a pro-active
- build czar requires monitoring the subversion archive carefully and responding
+ <p>Pro-active involvement by the build czar is necessary. Being a pro-active
+ build czar requires monitoring the subversion archive carefully and responding
quickly to suspected changes to keep the repo stays stable.</p>
<hr>
<h2>Recipe for Cutting a Beta/Minor Kit</h2>
<P>
- The build czar is also in charge for the release of the beta. Cutting a beta is
- as simple as cutting butter if things go well. Here is the procedure followed
+ The build czar is also in charge for the release of the beta. Cutting a beta is
+ as simple as cutting butter if things go well. Here is the procedure followed
while cutting a beta:
<ol>
<li>
- The whole process takes somewhere between 8-9 hours, it now takes much longer
- than the original 2 hours for making the release itself where as generating the
- doxygen documentation now completes in around this 2-3 hours mark.</li>
+ The whole process takes somewhere between 3-4 hours.</li>
<li>
- I suggest you take advantage of GNU Screen so that even if your SSH session is
- interrupted, the cutting process can continue. This command is available on
- both of the two machines we use to cut the release.
+ We suggest you take advantage of GNU Screen so that even if your SSH session is
+ interrupted, the cutting process can continue. This command must be installed on
+ the machines we use to cut the release.
<ul>
<li>
type <code>screen</code> to start screen.</li>
<li>
- execute commands as normal. Note that Ctrl-A is special in screen, so you need
+ execute commands as normal. Note that Ctrl-A is special in screen, so you need
to type Ctrl-A-A to send a Ctrl-A to the shell</li>
<li>
should your session be interrupted, reconnect and type <code>screen -x</code></li>
<li>
when finished, just type exit twice</li>
</ul>
+ <li>
+ After login check that you can,
+ <br>
+ <code>ssh bczar@download.dre.vanderbilt.edu</code><br>
+ to ensure that this succeeds. If not fix the problem, if ok exit again back to
<li>
- Prior to starting this, gather aggregate release notes from all developers.
- This is usually in the form of an email plea asking for a writeup of
- significant changes since the last beta. Add these notes to the NEWS files
- before cutting the release so that all notes are part of the release.</li>
+ Prior to starting this, gather aggregate release notes from all developers.
+ This is usually in the form of an email plea asking to update all NEWS files in
+ the archive. These NEWS files are used as part of the release notes for the release.</li>
+ <li>
+ Make sure your release system has all the needed tools. This can be achieved on Fedora
+ using:
+ <ul>
+ <li><code>yum install perl svn screen pysvn automake doxygen bzip2 tar gzip openssh graphviz zip libtool</code></li>
+ <li><code>yum update</code></li>
+ </ul>
+ If you want to perform a full build with qt support, than run:
+ <ul>
+ <li><code>yum install perl svn screen pysvn automake doxygen bzip2 tar gzip openssh graphviz zip libtool gcc-c++ boost-devel valgrind openssl-devel gcc qt4 fltk-devel bzip2-devel rsync openssl lzo-devel zziplib-devel acpid acpi nfs-utils java xerces-c xerces-c-devel mc qt qt-devel icecream ruby ruby-devel lksctp-tools-devel git</code></li>
+ </ul>
+ </li>
<li>
- Checkout a new workspace on <tt>anduril.dre.vanderbilt.edu</tt></li>
+ Checkout a new workspace on a Fedora system with the last public release and with
+ all patches installed.
+
+ </li>
<ul>
<li>
- The best place to create the workspace is under /export/anduriltmp/bczar. Don't
+ The best place to create the workspace is under <code>/export/anduriltmp/bczar</code> (if you are on anduril). Don't
use the home directory itself, it is an NFS share and not really fast.
</li>
<li>
Checkout like this:
<ul>
<li>
- svn co --username &lt;your user id&gt;
- https://svn.dre.vanderbilt.edu/DOC/Middleware/trunk DOC_ROOT</li>
+ <code>svn co --username &lt;your user id&gt;
+ https://svn.dre.vanderbilt.edu/DOC/Middleware/trunk DOC_ROOT</code></li>
<li>
- svn co --username &lt;your user id&gt;
- https://svn.dre.vanderbilt.edu/DOC/MPC/trunk DOC_ROOT/ACE/MPC</li>
+ <code>svn co --username &lt;your user id&gt;
+ https://svn.dre.vanderbilt.edu/DOC/MPC/trunk DOC_ROOT/ACE/MPC</code></li>
</ul>
</ul>
<li>
Set $DOC_ROOT to point to the new workspace you checked out.</li>
<li>
- Set an environment variable SIGNATURE indicating your full name. This is used
+ Set an environment variable SIGNATURE indicating your full name. This is used
to fill the ChangeLog entry.</li>
<ul>
<li>
- For example,<tt>export SIGNATURE="Chris Cleeland"</tt></li></ul>
+ For example,<tt>export SIGNATURE="Johnny Willemsen"</tt></li></ul>
<li>
- Set an environment variable MAILID indicating your mail id. This is used to
+ Set an environment variable MAILID indicating your mail id. This is used to
fill the mail id portion of the ChangeLog entry.</li>
<ul>
<li>
- For example,<tt>export MAILID="cleeland@ociweb.com"</tt></li></ul>
+ For example,<tt>export MAILID="jwillemsen@remedy.nl"</tt></li></ul>
<li>
Change directories to <tt>$DOC_ROOT</tt>
</li>
<li>
Tag the release by executing<br>
<code>ACE/bin/make_release.py --beta --update --tag</code><br>
- This will only take a couple minutes to complete and once done successfully,
- you can carry on with BOTH creating the kits and generating the doxygen
- documentation in parallel. NOTE that <code>--beta</code> should be replaced
+ This will only take a couple minutes to complete and once done successfully,
+ you can carry on with BOTH creating the kits and generating the doxygen
+ documentation in parallel. NOTE that <code>--beta</code> should be replaced
with <code>--minor</code> or <code>--major</code> as appropriate.</li>
<br>
+ After the repository has been tagged check each file listed below to make
+ sure version numbers are updated as expected.<br>
<br>
In the <em>EXTREMELY</em> unlikely event that something goes wrong during the <em>
- tagging</em> of the repo, the following files must be returned to the state
+ tagging</em> of the repo, the following files must be returned to the state
they were in before the release process started and then checked back into SVN:<br>
<ul>
<code>
@@ -172,157 +191,181 @@
In most cases, a<br>
<code>svn revert -R *</code><br>
from DOC_ROOT will suffice.<br />
- The tag will also need to be removed (both in Middleware and MPC):
- ACE+TAO+CIAO-X_Y_Z (where X is the ACE Major version number, and Y & Z are the
+ The tag will also need to be removed (both in Middleware and MPC):
+ ACE+TAO+CIAO-X_Y_Z (where X is the ACE Major version number, and Y & Z are the
Minor and Beta release numbers of the release that is to be restarted).<p>
E.g.:<br>
- <code>svn rm
+ <code>svn rm
https://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z<br />
svn rm https://svn.dre.vanderbilt.edu/DOC/MPC/tags/ACE+TAO+CIAO-X_Y_Z<br />
</code>
<br>
- Note that this <em>only</em> needs to be done if the <em>tagging</em> fails. If
+ Note that this <em>only</em> needs to be done if the <em>tagging</em> fails. If
kit creation fails, simply restart that process.
<li>
Create the kits by executing<br>
<code>ACE/bin/make_release.py --kit</code><br>
- This will take somewhere arround 4-8 hours to complete.
+ This will take somewhere arround 2-4 hours to complete.
<ul>
<li>
- These commands only tags and creates the kits for the software itself, not
+ These commands only tags and creates the kits for the software itself, not
documentation, this can be started in parrellel with this activity.
</li>
<li>
- The kits end up in <tt>/export/anduriltmp/bczar/packages</tt></li>
+ The kits end up in <tt>$DOC_ROOT/packages</tt></li>
</ul>
<p>
- To summarize, the following is a transcript of the steps up to this point
+ To summarize, the following is a transcript of the steps up to this point
executing successfully:
- <p><code>$ ssh bczar@anduril.dre.vanderbilt.edu<br>
+ <p><code>$ ssh ..<br>
No default printer<br>
- -bash-3.00$ screen<br>
- -bash-3.00$ cd /export/anduriltmp/bczar<br>
- -bash-3.00$ export DOC_ROOT=$PWD/DOC_ROOT<br>
- -bash-3.00$ export SIGNATURE="Johnny Willemsen"<br>
- -bash-3.00$ export MAILID=jwillemsen@remedy.nl<br>
- -bash-3.00$ svn co https://svn.dre.vanderbilt.edu/DOC/Middleware/trunk DOC_ROOT<br>
- -bash-3.00$ svn co https://svn.dre.vanderbilt.edu/DOC/MPC/trunk
- DOC_ROOT/ACE/MPC<br>
- -bash-3.00$ cd DOC_ROOT/<br>
- -bash-3.00$ ACE/bin/make_release.py --beta --update --tag<br>
- -bash-3.00$ ACE/bin/make_release.py --kit<br>
+ screen<br>
+ cd /tmp<br>
+ rm -rf DOC_ROOT<br>
+ mkdir DOC_ROOT<br>
+ export DOC_ROOT=$PWD/DOC_ROOT<br>
+ export SIGNATURE="Johnny Willemsen"<br>
+ export MAILID=jwillemsen@remedy.nl<br>
+ svn co --username johnnyw https://svn.dre.vanderbilt.edu/DOC/Middleware/trunk DOC_ROOT<br>
+ svn co --username johnnyw https://svn.dre.vanderbilt.edu/DOC/MPC/trunk DOC_ROOT/ACE/MPC<br>
+ cd DOC_ROOT/<br>
+ ACE/bin/make_release.py --beta --update --tag<br>
+ ACE/bin/make_release.py --kit<br>
</code>
<p>
Feel free to cut and paste with suitable edits.
<li>
- The packages end up by default under $DOC_ROOT/package-&lt;PID&gt;, you can
- copy them to the webserver using the following commands. (Note that &lt;PID&gt;
+ The packages end up by default under $DOC_ROOT/package-&lt;PID&gt;, you can
+ copy them to the webserver using the following commands. (Note that &lt;PID&gt;
needs to be the numerical pid of the process that created the kit, use<br>
- <code>ls -ald</code><br>
- to determine the correct filename.) At the moment you execute these commands
- all users can download these packages.</li><br>
- <code>cp $DOC_ROOT/package-&lt;PID&gt;/ACE*
- /export/www/download.dre/ACE+TAO-distribution<br>
+ <code>ls -ald</code>
+ to determine the correct filename.) At the moment you execute these commands
+ all users can download these packages.</li>
+ <code>scp $DOC_ROOT/package-&lt;PID&gt;/ACE*
+ bczar@download.dre.vanderbilt.edu:/export/www/download.dre/ACE+TAO-distribution<br>
</code>
<li>
- After the repository is tagged you can also start generating the doxygen
+ After the repository is tagged you can also start generating the doxygen
documentation in parrellel with the kit generation above.<br>
<ul>
<li>
- Login to naboo.dre.vanderbilt.edu as bczar and start a screen session:<br>
- <code>ssh bczar@naboo.dre.vanderbilt.edu</code><br>
+ Login to a release system you prepared with the same packages as above:<br>
<code>screen</code></li>
<li>
After login check that you can,
<br>
<code>ssh bczar@download.dre.vanderbilt.edu</code><br>
- to ensure that this succeeds. If not fix the problem, if ok exit again back to
- naboo. The make script tries to copy the tar.gz files to the website using ssh.</li>
+ to ensure that this succeeds. If not fix the problem, if ok exit again back to
+ your release system. </li>
<li>
- <code>cd /web/users/isisbuilds/tmp/ACE_wrappers</code><br>
- and remove the contents of this directory with</li><br>
- <code>rm -rf *</code>
+ <code>cd /tmp</code><br>
+ and remove the contents of the doxygen directory and recreate it again with</li><br>
+ <code>rm -rf doxygen</code><br>
+ <code>mkdir doxygen</code><br>
+ <code>cd doxygen</code><br>
+ If you create the doxygen documentation on <code>naboo.dre.vanderbilt.edu</code>
+ than make sure you use <code>/web/users/isisbuilds/tmp/ACE_wrappers</code>
+ as working directory
<li>
- Update the workspace with the right version tag (replace the X_Y_Z with the ACE
+ Update the workspace with the right version tag (replace the X_Y_Z with the ACE
version number being released e.g. 5_6_7)
<br>
- <code>svn co
- svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/ACE
+ <code>svn co
+ svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/ACE
ACE_wrappers<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/TAO
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/TAO
ACE_wrappers/TAO<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/CIAO
- ACE_wrappers/TAO/CIAO </code>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/CIAO
+ ACE_wrappers/TAO/CIAO<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/DAnCE
+ ACE_wrappers/TAO/DAnCE</code>
</li>
+ <li>Change to the ACE_wrappers directory using <br>
+ cd ACE_wrappers</li>
<li>
Set the needed environment variables using<br>
- <code>export ACE_ROOT=/web/users/isisbuilds/tmp/ACE_wrappers/ACE_wrappers</code></li>
+ <code>export ACE_ROOT=$PWD</code></li>
<li>
Check the doxygen version at the shell by executing the command:<br>
<code>doxygen --version</code>
+ This should be at least 1.6.2
</li>
- <li>
- Open up <code>$ACE_ROOT/bin/generate_rel_manpages</code> in your favorite
- editor.<br>
- Search for the string '<code><b>doxy_version</b></code>'.<br>
- Check that the version specified in the file is the same as the one you got
- using the shell command. If it is different change the value of the
- doxy_version to the one installed on naboo.dre.vanderbilt.edu.</li> Then exit the editor.
- Check the file, generate_rel_manpages back into the repository if you have made some
- changes to it.
<br>
Now you are ready to create documentation
</li>
<li>
<code>cd $ACE_ROOT</code><br>
- <code>make -f Release manpages</code>
- </li></ul><br>
+ <code>nohup $ACE_ROOT/bin/generate_rel_manpages &</code><br>
+ When this is ready copy the resulting files using<br>
+ <code>scp ACE-html.tar.gz ACE-html.tar.bz2 ACE-html.zip ACE-html.tar.gz.md5 ACE-html.tar.bz2.md5 ACE-html.zip.md5 bczar@download.dre.vanderbilt.edu:/export/www/download.dre/ACE+TAO-distribution</code>
+ </li></ul>
+ <code>
+ screen<br>
+ cd /tmp<br>
+ rm -rf doxygen<br>
+ mkdir doxygen<br>
+ cd doxygen<br>
+ svn co
+ svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/ACE
+ ACE_wrappers<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/TAO
+ ACE_wrappers/TAO<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/CIAO
+ ACE_wrappers/TAO/CIAO<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-X_Y_Z/DAnCE
+ ACE_wrappers/TAO/DAnCE<br>
+ cd ACE_wrappers<br>
+ export ACE_ROOT=$PWD<br>
+ nohup $ACE_ROOT/bin/generate_rel_manpages &<br>
+ scp ACE-html.tar.gz ACE-html.tar.bz2 ACE-html.zip ACE-html.tar.gz.md5 ACE-html.tar.bz2.md5 ACE-html.zip.md5 bczar@download.dre.vanderbilt.edu:/export/www/download.dre/ACE+TAO-distribution
+ </code>
+<br>
<li>
- While doxygen churns, format a release announcement, including the release
+ While doxygen churns, format a release announcement, including the release
notes gathered from developers.
<ul>
- <li>Get from bugzilla the bugs fixed. Use the following
- <a href="http://bugzilla.dre.vanderbilt.edu/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=ACE&product=CIAO&product=CoSMIC&product=MPC&product=OpenDDS&product=TAO&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailassigned_to1=1&emailtype1=substring&email1=&emailreporter2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2008-11-28&chfieldto=Now&chfield=resolution&chfieldvalue=FIXED&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">query</a> as start query and update the start date.</li>
+ <li>Get from bugzilla the bugs fixed. Use the following
+ <a href="http://bugzilla.dre.vanderbilt.edu/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=ACE&product=CIAO&product=CoSMIC&product=MPC&product=OpenDDS&product=TAO&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailassigned_to1=1&emailtype1=substring&email1=&emailreporter2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2010-07-04&chfieldto=Now&chfield=resolution&chfieldvalue=FIXED&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">query</a> as start query and update the start date.</li>
<li>
- Let <a href="mailto:schmidt@cs.wustl.edu">Doug Schmidt</a> review these before
+ Let <a href="mailto:schmidt@cs.wustl.edu">Doug Schmidt</a> review these before
you do anything with them.</li></ul>
-
+
<li>
Make sure the new version is available in Bugzilla.</li>
<ul>
<li>
- We now have a bczar Bugzilla user (bczar@dre.vanderbilt.edu) with full
- privileges which points to the bczar user at ISIS. To gain access to this
- account as a new build czar, you could update the ~/.forward file on one of the
- ISIS hosts (for example bczar@naboo.dre.vanderbilt.edu) with your own email
- address (but be aware that if you leave this ~/.forward file in effect, you
- will get innundated with cron mail messages from all of the ISIS lab build
- machines, so it is probably best to remove it after obtaining the Bugzilla
- password). From the "Bugzilla - Main Page"
- (http://bugzilla.dre.vanderbilt.edu/index.cgi) click on one of the various
- "LogIn" links, and from this login page you should be able to "Submit Request"
- to change a forgotten password. If you enter bczar@dre.vanderbilt.edu and click
- "Submit Request" this will email you the password change link to
- bczar@dre.vanderbilt.edu, which will then in turn be forwarded to your own
- email account. Simply copy this link into your browser to set your own bczar
+ We now have a bczar Bugzilla user (bczar@dre.vanderbilt.edu) with full
+ privileges which points to the bczar user at ISIS. To gain access to this
+ account as a new build czar, you could update the ~/.forward file on one of the
+ ISIS hosts (for example bczar@naboo.dre.vanderbilt.edu) with your own email
+ address (but be aware that if you leave this ~/.forward file in effect, you
+ will get innundated with cron mail messages from all of the ISIS lab build
+ machines, so it is probably best to remove it after obtaining the Bugzilla
+ password). From the "Bugzilla - Main Page"
+ (http://bugzilla.dre.vanderbilt.edu/index.cgi) click on one of the various
+ "LogIn" links, and from this login page you should be able to "Submit Request"
+ to change a forgotten password. If you enter bczar@dre.vanderbilt.edu and click
+ "Submit Request" this will email you the password change link to
+ bczar@dre.vanderbilt.edu, which will then in turn be forwarded to your own
+ email account. Simply copy this link into your browser to set your own bczar
password for the next steps.</li>
<li>
here is the description of how to add a new version through Bugzilla.</li>
<li>
- go to any Bugzilla "Query" page, you should see a grey box at the bottom. click
+ go to any Bugzilla "Query" page, you should see a grey box at the bottom. click
"Log in" link to log in as bczar@dre.vanderbilt.edu.</li>
<li>
- look at the grey box at bottom again. You will see several links following
+ look at the grey box at bottom again. You will see several links following
"Edit". Click on the "Product" link.</li>
<li>
- you are then at "Select product" page. You should see a list components, i.e.,
+ you are then at "Select product" page. You should see a list components, i.e.,
ACE CIAO TAO. Click on the product you want to edit.</li>
<li>
- you are then at "Edit product" page. Scroll down a bit, you should see a list
- of all versions coming with this product. At the very beginning of the list,
+ you are then at "Edit product" page. Scroll down a bit, you should see a list
+ of all versions coming with this product. At the very beginning of the list,
you should see "Edit versions" link. Click this link.</li>
<li>
- you should see a "Add a new version" text box and a "Add" link just above the
+ you should see a "Add a new version" text box and a "Add" link just above the
grey box at the bottom. Click on this link</li>
<li>
you are then at "Add version of [Name of the product]" page.</li>
@@ -337,7 +380,7 @@
<li>
Create a temporary directory. eg. tmp and change Directory to this- <br><code>mkdir tmp</code><br><code>cd tmp</code></li>
<li>
- scp file from the download server -<br><code>scp
+ scp file from the download server -<br><code>scp
bczar@download.dre.vanderbilt.edu:/export/www/download.dre/ACE+TAO-distribution/ACE-html.tar.bz2 .</code>
</li>
<li>
@@ -345,19 +388,19 @@
<li>back out of the temporary directory<br>
<code>cd ..</code></li>
<li>
- Create directory 'Current Version No' for example 5.6.7 and change directory into this new one<br><code>mkdir 5.6.7<br>cd 5.6.7</code></li>
+ Create directory 'Current Version No' for example 5.8.1 and change directory into this new one<br><code>mkdir 5.8.1<br>cd 5.8.1</code></li>
<li>
Move contents of the temporary directory's html to this directory -<br><code>mv ../tmp/html .</code></li>
<li>
- Now back our of this directory and remove the already existing soflink to the "Micro" directory -<br><code>cd ..<br>rm Micro</code></li>
+ Now back our of this directory and remove the already existing softlink to the "Micro" directory -<br><code>cd ..<br>rm Micro</code></li>
<li>
- Create softlink "Micro" linking it to new Documentation using -<br><code>ln -s 5.6.7/html
- Micro</code></li>
+ Create softlink "Micro" linking it to new Documentation using -<br><code>ln -s 5.8.1/html
+ Micro</code>. If this is a minor release also update the <code>Stable</code> link.</li>
<li>
Remove the directory tmp -<br><code>rm -rf tmp</code></lib>
</ul><br>
<li>
- Back on <b>anduril.dre.vanderbilt.edu</b> where the kit was being generated and once <b>BOTH</b> the kit
+ On <b>anduril.dre.vanderbilt.edu</b> where the kit was being generated and once <b>BOTH</b> the kit
and doxygen generation have finished their work, you should also move the packages to the
previous versions directory with the appropriate decorators.
<ul>
@@ -368,28 +411,20 @@
<li>
Modify <b><code>/export/anduriltmp/bczar/copy_script.sh</code></b>
to use the correct ACE version X.Y.Z and run it.
+ <li>
+ Update the copy_script.sh file for the new micro release</li>
</ul><br>
<li>
- Mail the approved release announcement out to, at minimum the following: <tt>ciao-users@list.isis.vanderbilt.edu</tt>,
- <tt>tao-users@list.isis.vanderbilt.edu</tt>, <tt>tao-announce@list.isis.vanderbilt.edu</tt>,
- <tt>ace-users@list.isis.vanderbilt.edu</tt>, <tt>ace-announce@list.isis.vanderbilt.edu</tt>.
- Do this as yourself (not as bugzilla). <b>N.B.</b>
- You will not be able to post to the users' lists unless you are subscribed to
- them. Odds are you will not be able to post to the announce lists at all. Ask
- someone else (like Doug or Johnny) to do this step.<br>
- <li>
- When all cidlc builds are ready with the new version, login to
- naboo.dre.vanderbilt.edu as bczar and run <code>./cut_cidlc.sh version-number</code>
- where the version-number is the CIAO release just made. For example<br>
- <code>./cut_cidlc.sh 0.6.7</code><br>If this script is not in its place, then
- the original is in the bin directory of the distribution.</li>
+ Validate the packages on the webserver whether they are really containing the new release. Make at least
+ one build where you run the TAO Hello world test and check if the libraries are having the
+ correct version number.</li>
<li>
- Update in the autobuild archive the file configs/scoreboard/releases.xml with
- the made release (version number and release date). This is used by the integrated scoreboard on http://remedy.nl Remember to do a changelog entry.</li>
+ Update in the autobuild archive the file configs/scoreboard/releases.xml with
+ the made release (version number and release date). This is used by the integrated scoreboard on http://scoreboard.theaceorb.nl Remember to do a changelog entry.</li>
<li>
Update the ACE_wrappers repo (remember to create a changelog entry, and possiably archive the old changelog to the changelog directory if this has become too long):<ul>
- <li>docs/Download.html to show the new release. Make sure you refer to the
- previous_versions directory, that way we can exactly track how many people
+ <li>docs/Download.html to show the new release. Make sure you refer to the
+ previous_versions directory, that way we can exactly track how many people
download a specific version.</li>
<li>
etc/index.hml to show the new doxygen package you installed</li>
@@ -397,62 +432,75 @@
<li>
Update the NEWS, TAO/NEWS, and TAO/CIAO/NEWS files to have a new section for the next release.</li>
<li>
- Update the rpmbuild/*.spec files to have a new version for the next release.</li>
+ Update OpenSuSE Build service using
+ <code>
+ osc checkout devel:libraries:ACE
+ osc add <new release>
+ cp rpmbuild/ace-tao.spec .
+ cp debian/control debian.control
+ cp debian/dsc ace.dsc
+ cp debian/changelog debian.changelog
+ cp debian/rules debian.rules
+ osc commit
+ </code>
+ </li>
<li>
- Validate the packages on the webserver whether they are really containing the new release. Make at least
- one builid where you run the TAO Hello world test and check if the libraries are having the
- correct version number.</li>
+ Mail the approved release announcement out to, at minimum the following:
+ <tt>ciao-users@list.isis.vanderbilt.edu</tt>, <tt>ciao-announce@list.isis.vanderbilt.edu</tt>,
+ <tt>tao-users@list.isis.vanderbilt.edu</tt>, <tt>tao-announce@list.isis.vanderbilt.edu</tt>,
+ <tt>ace-users@list.isis.vanderbilt.edu</tt>, <tt>ace-announce@list.isis.vanderbilt.edu</tt>.
+ Do this as yourself (not as bugzilla). <b>N.B.</b>
+ You will not be able to post to the users' lists unless you are subscribed to
+ them. Odds are you will not be able to post to the announce lists at all. Ask
+ someone else (like Doug or Johnny) to do this step.<br>
</ol>
</p>
<hr>
<h2>
Tips to being a Build Czar</h2>
- <p>
- 1. Trust no one.<br>
- 2. Be careful with <a href="http://www.cs.wustl.edu/~schmidt">this guy</a>, he
- is notorious in breaking builds (and fixing them as well...Rumour has it that
- it's actually a super-scalar, super-pipelined processor capable of out-of-order
- execution, in human incarnation).<br>
- 3. Don't forgive people who break ACE :-)<br>
- 4. If a build hasn't run in a long time (symptoms are a "red" in the Last Run
- column of the build scoreboard), delete the .disable file in
- /path/to/build/directory/BUILD_NAME/ by hand.<br>
- 5. Think of the group who wrote the scoreboard update script, every time you
+ <p><ol>
+ <li>Trust no one.</li>
+ <li>Be careful with <a href="http://www.cs.wustl.edu/~schmidt">this guy</a>, he
+ is notorious in breaking builds (and fixing them as well...Rumour has it that
+ it's actually a super-scalar, super-pipelined processor capable of out-of-order
+ execution, in human incarnation).</li>
+ <li>Don't forgive people who break ACE :-)</li>
+ <li>If a build hasn't run in a long time (symptoms are a "red" in the Last Run
+ column of the build scoreboard), delete the .disable file in
+ /path/to/build/directory/BUILD_NAME/ by hand.</li>
+ <li>Think of the group who wrote the scoreboard update script, every time you
catch an otherwise not so obvious error with the help of the scoreboard. Tell <a href="mailto:devo-group@list.isis.vanderbilt.edu">
- DEVO group</a> about it.<br>
- 6. Send a note to <a href="mailto:sysadmin@isis.vanderbilt.edu">sysadmin@isis.vanderbilt.edu</a> asking for the repo to be frozen. Provide them a list of names, including yourself and bczar to be granted write permission.
- <br>
- 7. Compile once on Win32, Linux and Solaris before cutting a beta.<br>
- 8. Trust the release script when making a release. Don't make tar balls by
- hand. Make sure that the public ftp directories
- (/project/beguine/ftp/pub/ACE+TAO-distribution and
- /project/beguine/ftp/pub/ACE+TAO-distribution/diffs) have the right
- permissions, so that the release script can copy the tar balls.<br>
- 9. When making a release, make sure that all the auto_compiles on that machine
- (deuce.doc.wustl.edu) are stopped. Also make sure that there is enough space in
- /tmp on that machine.<br>
- 10. When all hell breaks loose, don't wait for the nightly builds to monitor
- improvement. Instead manually start the builds.<br>
- 11. Maintain private up-to-date workspaces for problem platforms (read as
- Solaris).<br>
- 12. Don't hesitate to ask for help.<br>
- 13. When you get an account to access the svn repo, make sure you are added to
- the correct groups, for example,
- gid=100(users),5000(doc),5002(acetaodev),5003(cvs). Otherwise you will have
- problem to checkout various modules.<br>
- 14. Install your public key to the different machines you have frequent access
- to avoid typing password.<br>
- 15. Update this page if you have any more tips for future build czars :-). This
- page is in svn under <code>ACE_wrappres/docs/bczar/bczar.html</code><br>
- </p>
+ DEVO group</a> about it.</li>
+ <li>Send a note to <a href="mailto:sysadmin@isis.vanderbilt.edu">sysadmin@isis.vanderbilt.edu</a> asking for the repo to be frozen. Provide them a list of names, including yourself and bczar to be granted write permission.
+ </li>
+ <li>Compile once on Win32, Linux and Solaris before cutting a beta.</li>
+ <li>Trust the release script when making a release. Don't make tar balls by
+ hand. Make sure that the public ftp directories
+ (/project/beguine/ftp/pub/ACE+TAO-distribution and
+ /project/beguine/ftp/pub/ACE+TAO-distribution/diffs) have the right
+ permissions, so that the release script can copy the tar balls.</li>
+ <li>When all hell breaks loose, don't wait for the nightly builds to monitor
+ improvement. Instead manually start the builds.</li>
+ <li>Maintain private up-to-date workspaces for problem platforms (read as
+ Solaris).</li>
+ <li>Don't hesitate to ask for help.</li>
+ <li>When you get an account to access the svn repo, make sure you are added to
+ the correct groups, for example,
+ gid=100(users),5000(doc),5002(acetaodev),5003(cvs). Otherwise you will have
+ problem to checkout various modules.</li>
+ <li>Install your public key to the different machines you have frequent access
+ to avoid typing password.</li>
+ <li>Update this page if you have any more tips for future build czars :-). This
+ page is in svn under <code>ACE_wrappres/docs/bczar/bczar.html</code></li>
+ </p></ol>
<hr>
<Center>
<h1>The Realm of the Build Czar</h1>
</Center>
<hr>
<h2>Build Czar Arthur</h2>
- <p>Many years have passes since the days of the legendary Build Czar Arthur. His
- duties were given to him by the mystical Lady of the Lake, who outlined the
+ <p>Many years have passes since the days of the legendary Build Czar Arthur. His
+ duties were given to him by the mystical Lady of the Lake, who outlined the
first responsibilities of the Build Czar.</p>
<tt>
<br>
diff --git a/ACE/docs/index.html b/ACE/docs/index.html
index 1f49c0ef420..93f147eaad9 100644
--- a/ACE/docs/index.html
+++ b/ACE/docs/index.html
@@ -35,8 +35,6 @@ ask. <P>
<ul>
<li><a href="ACE-categories.html">Class Categories</a> - Listing of some of the classes
in ACE.
- <li>ACE Inheritance Tree <a href="ACE-inheritance.pdf">[pdf]</a> <a href=
- "ACE-inheritance.ps.gz">[ps.gz]</a>
<li><a href="ACE-subsets.html">ACE Subsets</a> - Outline of some of our ideas
for subsetting the ACE library.
</ul>
diff --git a/ACE/docs/msvc_notes.txt b/ACE/docs/msvc_notes.txt
index a0965a3e8bc..aa3b6508773 100644
--- a/ACE/docs/msvc_notes.txt
+++ b/ACE/docs/msvc_notes.txt
@@ -2,7 +2,7 @@
@page msvc Miscellaneous Notes for ACE/TAO and Microsoft Visual C++
Here are just some random information about ACE/TAO with Microsoft Visual
-C++. This is more a collection of ideas right now, so it may not be as
+C++. This is more a collection of ideas right now, so it may not be as
polished as other ACE documentation.
@subsection msvc_configurations Configurations
@@ -17,10 +17,10 @@ project and solution files. Project files with _Static extension
denote workspaces for building static libraries.
Different configurations produce different libraries and executables. For
-example, Debug versions of dynamic libraries are always named *d.dll (like
+example, Debug versions of dynamic libraries are always named *d.dll (like
aced.dll) and the executables are placed in the current directory. Release
versions of dynamic libraries are named *.dll (such as ace.dll) and their
-executables are usually placed in the Release subdirectory. Other common
+executables are usually placed in the Release subdirectory. Other common
suffixes include *sd.lib for Static Debug and *s.lib for Static Release.
Projects only use the same configuration versions of the libraries. The Debug
@@ -30,8 +30,8 @@ version of an ACE example only uses debug version of ACE library.
Other compile time options are set or unset via the config.h file. For
example, to turn on a compile time definition, #define it at the beginning of
-config.h. Unsetting a definition just requires #define ACE_FOO 0 or a #undef
-at the end of the file (after including config-win32.h). Different macros
+config.h. Unsetting a definition just requires #define ACE_FOO 0 or a #undef
+at the end of the file (after including config-win32.h). Different macros
require different techniques.
@subsection msvc_libraries ACE/TAO Libraries
@@ -40,7 +40,7 @@ I don't think we have any documents really giving any info on what libraries
are produced by the MSVC project files.
So unlike the Unix platforms, Win32 libraries do not have a prefix of "lib",
-instead it is used as an extension. For example, the debug version of the
+instead it is used as an extension. For example, the debug version of the
dynamic ace library is aced.lib (which is a stub for aced.dll). The three
ACE libraries are:
@@ -55,11 +55,11 @@ in TAO_PortableServer).
And finally we have the orbsvcs libraries. Each ORB service is contained
in its own library. More libraries may be needed to be linked in, since
-some services require the use of others (such as TAO_AV requiring
-TAO_CosTrading and TAO_CosProperty).
+some services require the use of others (such as TAO_AV requiring
+TAO_CosTrading and TAO_CosProperty).
The *.lib and *.dll files are located in ACE_wrappers/lib. You need
-to point your PATH to $ACE_ROOT/lib for running the applications.
+to point your PATH to $ACE_ROOT/lib for running the applications.
I hesitate to put down explicit instructions on what libraries need to be
linked in, considering that the libraries are being split apart more and more
@@ -70,19 +70,19 @@ TAO_DynamicAny.lib is also needed. Then if any of the ORB Services are used,
more libraries are needed. For example, a client that uses the Name Service
would need to link TAO_CosNaming.lib.
-And note that the release versions of the libraries are listed above. For
+And note that the release versions of the libraries are listed above. For
debug configurations the libraries would be aced.lib, TAOd.lib, etc.
@subsection msvc_external_projects External ACE/TAO Projects
-It is a little difficult for us to list how exactly one should create
+It is a little difficult for us to list how exactly one should create
projects that use ACE/TAO but are external to the ACE_wrappers tree. Since
most projects we create are in that tree, we can make assumptions about
-directory structure that doesn't always apply for external projects. In
-other words, we have ideas how they should work, but they usually remain
+directory structure that doesn't always apply for external projects. In
+other words, we have ideas how they should work, but they usually remain
a bit, um, untested. :-)
-There are three main dependencies a project would have on ACE/TAO.
+There are three main dependencies a project would have on ACE/TAO.
- Include paths: Since all the headers use a subdirectory way of referring
to include files (such as "ace/OS.h" instead of just "OS.h"). In order
@@ -90,28 +90,28 @@ There are three main dependencies a project would have on ACE/TAO.
ACE_wrappers\TAO\orbsvcs, etc.) to the additional include paths of the
project or in MSVC. I believe it is a better idea to add them to the global
MSVC directories. That way the path to ACE on a machine doesn't get hard
- coded into the project itself (this should make it easier to move the
+ coded into the project itself (this should make it easier to move the
project between machines where ACE is installed in different places).
-- Libraries and library paths: Depending on what features are needed,
+- Libraries and library paths: Depending on what features are needed,
different libraries are needed to be linked in. (This is covered more in
an above section). These libraries are specified in the project, but can
be specified in different ways. The first is the hard coded way (a full
path, such as "C:\ACE_wrappers\ace\aced.lib"). The second is listing only
the library (such as "aced.lib") and then specify the path either in the
project or via MSVC global settings. Just like for the include paths, MSVC
- global settings is probably the more robust way of specifying this.
+ global settings is probably the more robust way of specifying this.
- TAO_IDL: TAO's IDL compiler resides in ACE_wrappers\bin. If the external
project contains IDL files, then a custom build configuration can be used
- to automatically call TAO_IDL. Note that the location of the release
+ to automatically call TAO_IDL. Note that the location of the release
version of the compiler is in ACE_wrappers\bin\Release (although it doesn't
- matter which version you use, they both produce the same output). If
+ matter which version you use, they both produce the same output). If
ACE_wrappers\bin is included in the path, then the build command can just
refer to tao_idl and it can be found via the path. The other options are
- to refer to tao_idl via an absolute hard coded path or to add
+ to refer to tao_idl via an absolute hard coded path or to add
ACE_wrappers\bin to the MSVC's global executable path settings. Either
- way the bin directory must be in the path or in the global settings so
+ way the bin directory must be in the path or in the global settings so
tao_idl can find aced.dll.
So I guess in summary we would recommend adding most of the settings to Visual
@@ -122,10 +122,10 @@ and just refer to the libraries without any paths.
ACE_ROOT is an interesting environment variable. Even though it is heavily
used on Unix (in fact, ACE/TAO will not compile without it) it really isn't
-needed for MSVC. The reason for this is that we were interested in making
-configuration and setup really easy for Visual C++ on Windows. In retrospect
-it might have made quite a few things easier to specify if ACE_ROOT was
-required. One thing you might notice is that TAO_IDL will display a message
+needed for MSVC. The reason for this is that we were interested in making
+configuration and setup really easy for Visual C++ on Windows. In retrospect
+it might have made quite a few things easier to specify if ACE_ROOT was
+required. One thing you might notice is that TAO_IDL will display a message
if ACE_ROOT isn't set, but it is only a problem if the IDL file includes
<orb.idl> and you don't use -I to specify where orb.idl is.
diff --git a/ACE/docs/run_test.txt b/ACE/docs/run_test.txt
index c02da95ab27..3c159ed0b00 100644
--- a/ACE/docs/run_test.txt
+++ b/ACE/docs/run_test.txt
@@ -11,7 +11,7 @@ sure the run_test.pl works on all platforms
- The run_test should return a non-zero value if the test failed
- When an executable can't be spawned the test should directly exit and
not wait for a fail to be created by that executable
-- The processes should suppor that files names are passed through
+- The processes should support that files names are passed through
the commandline
Following is an example
@@ -243,23 +243,16 @@ $client->DeleteFile($client_iorfile);
exit $status;
@endverbatim
-When you need the hostname the test is running on be aware of the
-fact that with VxWorks we do cross host testing, part of the test
-runs on the target, the other part on the host system. In your test
-program add functionality to handle a commandline argument to pass
-in the hostname of the target. In the run_test.pl script you can
-then use the following code as example.
+This example illustrates how to get the host name within the cross
+platform test. In your test program add functionality to handle a
+command line argument to pass the host name of the target. In the
+run_test.pl script you can use the following code as example.
@verbatim
-$TARGETHOSTNAME = "localhost";
-if (PerlACE::is_vxworks_test()) {
- $TARGETHOSTNAME = $ENV{'ACE_RUN_VX_TGTHOST'};
- $SV = new PerlACE::ProcessVX ("server", "-ORBEndpoint iiop://$TARGETHOSTNAME:43210");
- }
- else {
- $SV = new PerlACE::Process ("server", "-ORBEndpoint iiop://$TARGETHOSTNAME:43210");
- }
-$CL = new PerlACE::Process ("client", " -p 43210 -h $TARGETHOSTNAME");
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $hostname = $server->HostName();
+$SV = $server->CreateProcess ("server", "-ORBEndpoint iiop://$hostname:43210");
+$CL = $server->CreateProcess ("client", " -p 43210 -h $hostname");
@endverbatim
And finally, we unlink any files that were created and then just
diff --git a/ACE/docs/svn/config b/ACE/docs/svn/config
index 8cb4c69a472..8080f88da52 100644
--- a/ACE/docs/svn/config
+++ b/ACE/docs/svn/config
@@ -81,8 +81,14 @@ enable-auto-props = yes
### is typically done by setting the enable-auto-props option.
[auto-props]
*.aspx=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.install=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.docs=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.sgml=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.manpages=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.cpp=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.cxx=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.patch=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.dpatch=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.cc=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.C=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.c=svn:eol-style=native;svn:keywords=Author Date Id Revision
@@ -95,6 +101,8 @@ enable-auto-props = yes
*.cs=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.java=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.idl=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.idl3=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.idl3p=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.pidl=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.cidl=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.html=svn:eol-style=native;svn:keywords=Author Date Id Revision
@@ -143,6 +151,7 @@ enable-auto-props = yes
*.yy=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.conf=svn:eol-style=native;svn:keywords=Author Date Id Revision
*.pem=svn:eol-style=native;svn:keywords=Author Date Id Revision
+*.xme=svn:eol-style=native;svn:keywords=Author Date Id Revision
Change?og*=svn:eol-style=native;svn:keywords=Author Date Id Revision
README=svn:eol-style=native;svn:keywords=Author Date Id Revision
"Makefile"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
diff --git a/ACE/docs/svn/svn-prefs.reg b/ACE/docs/svn/svn-prefs.reg
index bea9fede09d..bf019f83256 100644
--- a/ACE/docs/svn/svn-prefs.reg
+++ b/ACE/docs/svn/svn-prefs.reg
@@ -37,6 +37,8 @@ REGEDIT4
"*.aspx"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.conf"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.cpp"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
+"*.patch"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
+"*.dpatch"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.cxx"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.cc"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.C"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
@@ -50,6 +52,9 @@ REGEDIT4
"*.cs"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.java"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.idl"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
+"*.idl3"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
+"*.idl3p"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
+"*.idl3+"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.pidl"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.cidl"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
"*.html"="svn:eol-style=native;svn:keywords=Author Date Id Revision"
diff --git a/ACE/docs/usage-bugzilla.html b/ACE/docs/usage-bugzilla.html
index 272e3419c63..9f5b362565e 100644
--- a/ACE/docs/usage-bugzilla.html
+++ b/ACE/docs/usage-bugzilla.html
@@ -20,7 +20,7 @@
To streamline our development process, you can now use it to
enter problem reports or make a request for a particular feature
that you'd like to see integrated into
- <a href="http://www.dre.vanderbilt.edu/ACE">ACE</a>,
+ <a href="http://www.dre.vanderbilt.edu/ACE">ACE</a>,
<a href="http://www.dre.vanderbilt.edu/TAO">TAO</a> or <a
href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a>.
@@ -94,7 +94,7 @@
<address><a href="mailto:ossama@dre.vanderbilt.edu">Ossama Othman</a></address>
<!-- Created: Wed Aug 18 14:45:31 EDT 1999 -->
<!-- hhmts start -->
-Last modified: Wed Nov 14 21:36:32 Pacific Standard Time 2001
+Last modified: $Id$
<!-- hhmts end -->
<br>
Back to <a href="index.html">ACE Documentation Home</a>.
diff --git a/ACE/etc/README b/ACE/etc/README
deleted file mode 100644
index e55a06ad89c..00000000000
--- a/ACE/etc/README
+++ /dev/null
@@ -1,32 +0,0 @@
-$Id$
-
-Svc_Conf_[ly].cpp.diff are used to patch their respective files in
-ACE_wrappers/ace. They are used by the Makefile in that directory,
-so users don't ordinarily need to be concerned with them.
-
-To update Svc_Conf_l.cpp.diff:
-
-1) % cd ACE_wrappers/ace.
-
-2) Create the unpatched version of the file, in Svc_Conf_l.cpp.orig:
- % /bin/rm Svc_Conf_l.cpp
- % make Svc_Conf_l.cpp RM=echo
- % cp -p Svc_Conf_l.cpp.orig Svc_Conf_l.cpp.save
-
-3) Create the new version of Svc_Conf_l.cpp. If the old patch succeeds,
- you can use it:
- % /bin/rm Svc_Conf_l.cpp
- % make
- % mv Svc_Conf_l.cpp.save Svc_Conf_l.cpp.orig
-
- Otherwise, the new version has to be created manually.
-
-4) % diff -u Svc_Conf_l.cpp.orig Svc_Conf_l.cpp > ../etc/Svc_Conf_l.cpp.diff
-
-5) % rm Svc_Conf_l.cpp.orig
-
-6) % cd ../etc
- % cvs commit -ko -m'updated diff file' Svc_Conf_l.cpp.diff
-
-To update Svc_Conf_y.cpp.diff, follow the same procedure, above, as
-for updating Svc_Conf_l.cpp.diff, but replace "_l" with "_y".
diff --git a/ACE/etc/ace.doxygen b/ACE/etc/ace.doxygen
index 4dd9e83c471..89af2cd3074 100644
--- a/ACE/etc/ace.doxygen
+++ b/ACE/etc/ace.doxygen
@@ -35,6 +35,8 @@ DISTRIBUTE_GROUP_DOC = YES
TAB_SIZE = 8
ENABLED_SECTIONS =
SHORT_NAMES = YES
+GENERATE_DEPRECATEDLIST = YES
+GENERATE_TODOLIST = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
@@ -82,12 +84,12 @@ IGNORE_PREFIX = ACE_
#---------------------------------------------------------------------------
GENERATE_HTML = YES
-HTML_OUTPUT = html/ace
+HTML_OUTPUT = html/libace-doc
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = YES
+GENERATE_HTMLHELP = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
@@ -129,24 +131,37 @@ MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH = .
-PREDEFINED = __ACE_INLINE__ \
- ACE_TEMPLATES_REQUIRE_SOURCE \
- ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
- ACE_END_VERSIONED_NAMESPACE_DECL \
- ACE_INLINE
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_CACHE_MAP_MANAGER \
- ACE_THROW_SPEC \
- ACE_T1 \
- ACE_T2
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
+PREDEFINED = __ACE_INLINE__= \
+ ACE_TEMPLATES_REQUIRE_SOURCE= \
+ ACE_BEGIN_VERSIONED_NAMESPACE_DECL= \
+ ACE_END_VERSIONED_NAMESPACE_DECL= \
+ ACE_INLINE=inline \
+ ACE_NAMESPACE_INLINE_FUNCTION=inline \
+ ACE_Export= \
+ ACE_HAS_THREADS= \
+ ACE_HAS_AIO_CALLS= \
+ ACE_WIN32= \
+ ACE_HAS_WIN32_OVERLAPPED_IO= \
+ ACE_HAS_ATM= \
+ ACE_HAS_IPV6= \
+ ACE_HAS_ATM= \
+ ACE_HAS_DEV_POLL= \
+ ACE_HAS_ICMP_SUPPORT=1 \
+ ACE_HAS_TOKENS_LIBRARY= \
+ ACE_HAS_WCHAR= \
+ ACE_HAS_LOG_MSG_NT_EVENT_LOG= \
+ ACE_HAS_TLI= \
+ ACE_HAS_POSITION_INDEPENDENT_POINTERS=1 \
+ ACE_HAS_MONITOR_FRAMEWORK=1
+EXPAND_AS_DEFINED = ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
-GENERATE_TAGFILE = html/ace/ACE.tag
+GENERATE_TAGFILE = html/libace-doc/ACE.tag
ALLEXTERNALS = NO
PERL_PATH = /usr/bin/perl
@@ -160,16 +175,18 @@ PERL_PATH = /usr/bin/perl
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
+INCLUDE_GRAPH = NO
+INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_MULTI_TARGETS = YES
+MAX_DOT_GRAPH_DEPTH = 3
+
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES
diff --git a/ACE/etc/ace_inet.doxygen b/ACE/etc/ace_inet.doxygen
new file mode 100644
index 00000000000..e6a3a16f050
--- /dev/null
+++ b/ACE/etc/ace_inet.doxygen
@@ -0,0 +1,166 @@
+# Doxyfile 1.1.5
+#
+# $Id$
+#
+
+PROJECT_NAME = ACE_INet
+PROJECT_NUMBER = Snapshot
+OUTPUT_DIRECTORY = .
+OUTPUT_LANGUAGE = English
+DISABLE_INDEX = NO
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+INTERNAL_DOCS = YES
+CLASS_DIAGRAMS = YES
+SOURCE_BROWSER = YES
+INLINE_SOURCES = YES
+STRIP_CODE_COMMENTS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+VERBATIM_HEADERS = YES
+SHOW_INCLUDE_FILES = YES
+JAVADOC_AUTOBRIEF = NO
+INHERIT_DOCS = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+DISTRIBUTE_GROUP_DOC = YES
+TAB_SIZE = 8
+ENABLED_SECTIONS =
+SHORT_NAMES = YES
+GENERATE_DEPRECATEDLIST = YES
+GENERATE_TODOLIST = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+QUIET = YES
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_FORMAT = "$file:$line: $text"
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+INPUT = protocols/ace/INet
+FILE_PATTERNS = *.cpp *.h *.i *.inl
+RECURSIVE = NO
+EXCLUDE =
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+IMAGE_PATH =
+INPUT_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 1
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+GENERATE_HTML = YES
+HTML_OUTPUT = html/libace-doc/inet
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+LATEX_BATCHMODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH = .
+PREDEFINED = __ACE_INLINE__ \
+ ACE_TEMPLATES_REQUIRE_SOURCE \
+ ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
+ ACE_END_VERSIONED_NAMESPACE_DECL \
+ ACE_INLINE=inline
+EXPAND_AS_DEFINED = ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+TAGFILES = html/libace-doc/ACE.tag=..
+GENERATE_TAGFILE = html/libace-doc/inet/ACE_INet.tag
+ALLEXTERNALS = NO
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz
+
+HAVE_DOT = YES
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+INCLUDE_GRAPH = NO
+INCLUDED_BY_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DOT_MULTI_TARGETS = YES
+MAX_DOT_GRAPH_DEPTH = 3
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found on the path.
+DOT_PATH =
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+SEARCHENGINE = YES
+
diff --git a/ACE/etc/ace_man.doxygen b/ACE/etc/ace_man.doxygen
index 77b486e6c3f..6fad36d0dfe 100644
--- a/ACE/etc/ace_man.doxygen
+++ b/ACE/etc/ace_man.doxygen
@@ -35,6 +35,8 @@ DISTRIBUTE_GROUP_DOC = YES
TAB_SIZE = 8
ENABLED_SECTIONS =
SHORT_NAMES = YES
+GENERATE_DEPRECATEDLIST = YES
+GENERATE_TODOLIST = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
@@ -77,7 +79,7 @@ HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = YES
+GENERATE_HTMLHELP = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
@@ -123,14 +125,12 @@ PREDEFINED = __ACE_INLINE__ \
ACE_TEMPLATES_REQUIRE_SOURCE \
ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
ACE_END_VERSIONED_NAMESPACE_DECL \
- ACE_INLINE
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_CACHE_MAP_MANAGER \
- ACE_THROW_SPEC
+ ACE_INLINE=inline
+EXPAND_AS_DEFINED = ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER
#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
@@ -152,12 +152,14 @@ INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
DOT_MULTI_TARGETS = YES
+MAX_DOT_GRAPH_DEPTH = 3
+
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
diff --git a/ACE/etc/ace_qos.doxygen b/ACE/etc/ace_qos.doxygen
index 8fd8b0f3996..e8d2891de43 100644
--- a/ACE/etc/ace_qos.doxygen
+++ b/ACE/etc/ace_qos.doxygen
@@ -35,6 +35,8 @@ DISTRIBUTE_GROUP_DOC = YES
TAB_SIZE = 8
ENABLED_SECTIONS =
SHORT_NAMES = YES
+GENERATE_DEPRECATEDLIST = YES
+GENERATE_TODOLIST = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
@@ -72,12 +74,12 @@ IGNORE_PREFIX = ACE_ ACE_QoS_
#---------------------------------------------------------------------------
GENERATE_HTML = YES
-HTML_OUTPUT = html/ace/QoS
+HTML_OUTPUT = html/libace-doc/QoS
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = YES
+GENERATE_HTMLHELP = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
@@ -123,18 +125,16 @@ PREDEFINED = __ACE_INLINE__ \
ACE_TEMPLATES_REQUIRE_SOURCE \
ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
ACE_END_VERSIONED_NAMESPACE_DECL \
- ACE_INLINE
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_CACHE_MAP_MANAGER \
- ACE_THROW_SPEC
+ ACE_INLINE=inline
+EXPAND_AS_DEFINED = ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER
#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
-TAGFILES = html/ace/ACE.tag=..
-GENERATE_TAGFILE = html/ace/QoS/ACE_QoS.tag
+TAGFILES = html/libace-doc/ACE.tag=.. html/libace-doc/ssl/ACE_SSL.tag=..
+GENERATE_TAGFILE = html/libace-doc/QoS/ACE_QoS.tag
ALLEXTERNALS = NO
PERL_PATH = /usr/bin/perl
@@ -148,16 +148,18 @@ PERL_PATH = /usr/bin/perl
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
+INCLUDE_GRAPH = NO
+INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_MULTI_TARGETS = YES
+MAX_DOT_GRAPH_DEPTH = 3
+
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES
diff --git a/ACE/etc/ace_rmcast.doxygen b/ACE/etc/ace_rmcast.doxygen
index 0448d635653..476f41f96b1 100644
--- a/ACE/etc/ace_rmcast.doxygen
+++ b/ACE/etc/ace_rmcast.doxygen
@@ -35,6 +35,8 @@ DISTRIBUTE_GROUP_DOC = YES
TAB_SIZE = 8
ENABLED_SECTIONS =
SHORT_NAMES = YES
+GENERATE_DEPRECATEDLIST = YES
+GENERATE_TODOLIST = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
@@ -72,12 +74,12 @@ IGNORE_PREFIX =
#---------------------------------------------------------------------------
GENERATE_HTML = YES
-HTML_OUTPUT = html/ace/rmcast
+HTML_OUTPUT = html/libace-doc/rmcast
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = YES
+GENERATE_HTMLHELP = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
@@ -123,18 +125,16 @@ PREDEFINED = __ACE_INLINE__ \
ACE_TEMPLATES_REQUIRE_SOURCE \
ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
ACE_END_VERSIONED_NAMESPACE_DECL \
- ACE_INLINE
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_CACHE_MAP_MANAGER \
- ACE_THROW_SPEC
+ ACE_INLINE=inline
+EXPAND_AS_DEFINED = ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER
#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
-TAGFILES = html/ace/ACE.tag=..
-GENERATE_TAGFILE = html/ace/rmcast/ACE_RMCast.tag
+TAGFILES = html/libace-doc/ACE.tag=..
+GENERATE_TAGFILE = html/libace-doc/rmcast/ACE_RMCast.tag
ALLEXTERNALS = NO
PERL_PATH = /usr/bin/perl
@@ -148,16 +148,18 @@ PERL_PATH = /usr/bin/perl
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
+INCLUDE_GRAPH = NO
+INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_MULTI_TARGETS = YES
+MAX_DOT_GRAPH_DEPTH = 3
+
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES
diff --git a/ACE/etc/ace_ssl.doxygen b/ACE/etc/ace_ssl.doxygen
index 6ab0cbf39eb..daaae423834 100644
--- a/ACE/etc/ace_ssl.doxygen
+++ b/ACE/etc/ace_ssl.doxygen
@@ -35,6 +35,8 @@ DISTRIBUTE_GROUP_DOC = YES
TAB_SIZE = 8
ENABLED_SECTIONS =
SHORT_NAMES = YES
+GENERATE_DEPRECATEDLIST = YES
+GENERATE_TODOLIST = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
@@ -72,12 +74,12 @@ IGNORE_PREFIX = ACE_SSL_
#---------------------------------------------------------------------------
GENERATE_HTML = YES
-HTML_OUTPUT = html/ace/ssl
+HTML_OUTPUT = html/libace-doc/ssl
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = YES
+GENERATE_HTMLHELP = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
@@ -123,18 +125,16 @@ PREDEFINED = __ACE_INLINE__ \
ACE_TEMPLATES_REQUIRE_SOURCE \
ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
ACE_END_VERSIONED_NAMESPACE_DECL \
- ACE_INLINE
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_CACHE_MAP_MANAGER \
- ACE_THROW_SPEC
+ ACE_INLINE=inline
+EXPAND_AS_DEFINED = ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER
#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
-TAGFILES = html/ace/ACE.tag=..
-GENERATE_TAGFILE = html/ace/ssl/ACE_SSL.tag
+TAGFILES = html/libace-doc/ACE.tag=..
+GENERATE_TAGFILE = html/libace-doc/ssl/ACE_SSL.tag
ALLEXTERNALS = NO
PERL_PATH = /usr/bin/perl
@@ -148,16 +148,18 @@ PERL_PATH = /usr/bin/perl
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
+INCLUDE_GRAPH = NO
+INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_MULTI_TARGETS = YES
+MAX_DOT_GRAPH_DEPTH = 3
+
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES
diff --git a/ACE/etc/acexml.doxygen b/ACE/etc/acexml.doxygen
index 880863c44cb..0b2e91de352 100644
--- a/ACE/etc/acexml.doxygen
+++ b/ACE/etc/acexml.doxygen
@@ -35,6 +35,8 @@ DISTRIBUTE_GROUP_DOC = YES
TAB_SIZE = 8
ENABLED_SECTIONS =
SHORT_NAMES = YES
+GENERATE_DEPRECATEDLIST = YES
+GENERATE_TODOLIST = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
@@ -72,12 +74,12 @@ IGNORE_PREFIX = ACEXML_
#---------------------------------------------------------------------------
GENERATE_HTML = YES
-HTML_OUTPUT = html/acexml
+HTML_OUTPUT = html/libacexml-doc
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = YES
+GENERATE_HTMLHELP = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
@@ -123,18 +125,16 @@ PREDEFINED = __ACE_INLINE__ \
ACE_TEMPLATES_REQUIRE_SOURCE \
ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
ACE_END_VERSIONED_NAMESPACE_DECL \
- ACE_INLINE
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_CACHE_MAP_MANAGER \
- ACE_THROW_SPEC
+ ACE_INLINE=inline
+EXPAND_AS_DEFINED = ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER
#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
-TAGFILES = html/ace/ACE.tag=../ace
-GENERATE_TAGFILE = html/acexml/ACEXML.tag
+TAGFILES = html/libace-doc/ACE.tag=../ace
+GENERATE_TAGFILE = html/libacexml-doc/ACEXML.tag
ALLEXTERNALS = NO
PERL_PATH = /usr/bin/perl
@@ -148,16 +148,18 @@ PERL_PATH = /usr/bin/perl
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
+INCLUDE_GRAPH = NO
+INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_MULTI_TARGETS = YES
+MAX_DOT_GRAPH_DEPTH = 3
+
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES
diff --git a/ACE/etc/enforce_ace_try.diff b/ACE/etc/enforce_ace_try.diff
deleted file mode 100644
index c17a1f855fa..00000000000
--- a/ACE/etc/enforce_ace_try.diff
+++ /dev/null
@@ -1,271 +0,0 @@
-Index: ace/CORBA_macros.h
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/ace/CORBA_macros.h,v
-retrieving revision 1.19
-diff -u -r1.19 CORBA_macros.h
---- CORBA_macros.h 1999/06/28 00:53:07 1.19
-+++ CORBA_macros.h 1999/07/31 22:52:52
-@@ -174,15 +174,15 @@
- // or ACE_CHECK_ENV. These two macros should _NOT_ be used within
- // try blocks. Use ACE_TRY_CHECK or ACE_TRY_CHECK_EX instead.
- # define ACE_CHECK \
-- if (ACE_TRY_ENV . exception () != 0) \
-+ if (ACE_TRY_ENV . _exception () != 0) \
- return
- // When function requires a return value
- # define ACE_CHECK_RETURN(RETV) \
-- if (ACE_TRY_ENV . exception () != 0) \
-+ if (ACE_TRY_ENV . _exception () != 0) \
- return RETV
-
- // ACE_THROW_INT should not be used by the user.
--# define ACE_THROW_INT(EXCEPTION) ACE_TRY_ENV.exception (new EXCEPTION)
-+# define ACE_THROW_INT(EXCEPTION) ACE_TRY_ENV._exception (new EXCEPTION)
-
- // Throwing exceptions will inevitably cause an return from the current
- // function. These two macros should _NOT_ be used within try blocks.
-@@ -190,14 +190,14 @@
- # define ACE_THROW(EXCEPTION) \
- do \
- { \
-- ACE_TRY_ENV.exception (new EXCEPTION); \
-+ ACE_TRY_ENV._exception (new EXCEPTION); \
- return; \
- } while (0)
-
- # define ACE_THROW_RETURN(EXCEPTION,RETV) \
- do \
- { \
-- ACE_TRY_ENV.exception (new EXCEPTION); \
-+ ACE_TRY_ENV._exception (new EXCEPTION); \
- return RETV; \
- } while (0)
-
-@@ -245,7 +245,7 @@
- // Check for exceptions within try blocks.
- # define ACE_TRY_CHECK \
- { \
-- if (ACE_TRY_ENV.exception () != 0) \
-+ if (ACE_TRY_ENV._exception () != 0) \
- { \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL; \
-@@ -255,7 +255,7 @@
- // Checking exception within EX try blocks.
- # define ACE_TRY_CHECK_EX(LABEL) \
- { \
-- if (ACE_TRY_ENV.exception () != 0) \
-+ if (ACE_TRY_ENV._exception () != 0) \
- { \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL ## LABEL; \
-@@ -265,14 +265,14 @@
- // Throwing exception within TRY blocks.
- # define ACE_TRY_THROW(EXCEPTION) \
- { \
-- ACE_TRY_ENV.exception (new EXCEPTION); \
-+ ACE_TRY_ENV._exception (new EXCEPTION); \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL; \
- }
-
- # define ACE_TRY_THROW_EX(EXCEPTION,LABEL) \
- { \
-- ACE_TRY_ENV.exception (new EXCEPTION); \
-+ ACE_TRY_ENV._exception (new EXCEPTION); \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL ## LABEL; \
- }
-@@ -291,14 +291,14 @@
- # define ACE_CATCH(TYPE,VAR) \
- } while (0); \
- do \
-- if (ACE_TRY_ENV.exception () != 0 && ACE_EXCEPTION_NOT_CAUGHT && \
-- TYPE::_narrow(ACE_TRY_ENV.exception ()) != 0) \
-+ if (ACE_TRY_ENV._exception () != 0 && ACE_EXCEPTION_NOT_CAUGHT && \
-+ TYPE::_narrow(ACE_TRY_ENV._exception ()) != 0) \
- { \
- CORBA::Environment ACE_CAUGHT_ENV = ACE_TRY_ENV;\
- ACE_EXCEPTION_NOT_CAUGHT = 0; \
-- TYPE &VAR = *TYPE::_narrow (ACE_CAUGHT_ENV.exception ()); \
-+ TYPE &VAR = *TYPE::_narrow (ACE_CAUGHT_ENV._exception ()); \
- ACE_UNUSED_ARG (VAR); \
-- ACE_TRY_ENV.clear ();
-+ ACE_TRY_ENV._clear ();
-
- // ACE_CATCHANY uses ACE_CATCH to catch all CORBA exceptions.
- # define ACE_CATCHANY ACE_CATCH (CORBA::Exception, ACE_ANY_EXCEPTION)
-Index: TAO/tao/Environment.cpp
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.cpp,v
-retrieving revision 1.29
-diff -u -r1.29 Environment.cpp
---- Environment.cpp 1999/06/24 01:49:38 1.29
-+++ Environment.cpp 1999/07/31 22:52:52
-@@ -88,15 +88,15 @@
- {
- if (this != &rhs)
- {
-- this->clear ();
-- this->exception (rhs.exception_);
-+ this->_clear ();
-+ this->_exception (rhs.exception_);
- }
- return *this;
- }
-
- CORBA_Environment::~CORBA_Environment (void)
- {
-- this->clear ();
-+ this->_clear ();
-
- // If previous is 0 then this is the first Environment, allocated
- // with the ORB, it shouldn't try to pop because the ORB is beign
-@@ -106,11 +106,11 @@
- }
-
- void
--CORBA_Environment::exception (CORBA_Exception *ex)
-+CORBA_Environment::_exception (CORBA_Exception *ex)
- {
- if (ex != this->exception_)
- {
-- this->clear ();
-+ this->_clear ();
- this->exception_ = ex;
- }
- if (this->exception_ != 0)
-@@ -123,7 +123,7 @@
- }
-
- void
--CORBA_Environment::clear (void)
-+CORBA_Environment::_clear (void)
- {
- if (this->exception_)
- this->exception_->_decr_refcnt ();
-@@ -149,7 +149,7 @@
- // the Environment argument) because then the user is supposed to
- // clear the environment before calling into the ORB.
- //
-- TAO_ORB_Core_instance ()->default_environment ()->clear ();
-+ TAO_ORB_Core_instance ()->default_environment ()->_clear ();
- #endif /* TAO_HAS_EXCEPTIONS */
-
- return CORBA::default_environment ();
-@@ -210,8 +210,8 @@
- // standard I/O stream passed as a parameter.
-
- void
--CORBA::Environment::print_exception (const char *info,
-- FILE *) const
-+CORBA::Environment::_print_exception (const char *info,
-+ FILE *) const
- {
- if (this->exception_)
- {
-Index: TAO/tao/Environment.h
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.h,v
-retrieving revision 1.17
-diff -u -r1.17 Environment.h
---- Environment.h 1999/06/25 19:51:05 1.17
-+++ Environment.h 1999/07/31 22:52:52
-@@ -76,11 +76,11 @@
- static CORBA_Environment * _nil (void);
- // Some static methods that need to be defined in every pseudo object
-
-- CORBA_Exception* exception (void) const;
-+ CORBA_Exception* _exception (void) const;
- // Return the exception. Caller must call <_incr_refcnf> in order
- // to keep the ptr.
-
-- void exception (CORBA_Exception *ex);
-+ void _exception (CORBA_Exception *ex);
- // Set the exception to <ex>, taking a reference on it.
-
- int exception_type (void) const;
-@@ -90,10 +90,10 @@
- const char *exception_id (void) const;
- // return the repository ID for the exception.
-
-- void clear (void);
-+ void _clear (void);
- // Clear the exception.
-
-- void print_exception (const char *info,
-+ void _print_exception (const char *info,
- FILE *f=stdout) const;
- // Print the exception to output determined by f. This function is
- // not CORBA compliant.
-Index: TAO/tao/Environment.i
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.i,v
-retrieving revision 1.7
-diff -u -r1.7 Environment.i
---- Environment.i 1999/06/25 19:50:57 1.7
-+++ Environment.i 1999/07/31 22:52:52
-@@ -15,7 +15,7 @@
- }
-
- ACE_INLINE CORBA_Exception*
--CORBA_Environment::exception (void) const
-+CORBA_Environment::_exception (void) const
- {
- return this->exception_;
- }
-Index: TAO/tao/Invocation.cpp
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Invocation.cpp,v
-retrieving revision 1.102
-diff -u -r1.102 Invocation.cpp
---- Invocation.cpp 1999/07/22 20:06:46 1.102
-+++ Invocation.cpp 1999/07/31 22:52:52
-@@ -47,6 +47,12 @@
-
- #endif /* ACE_ENABLE_TIMEPROBES */
-
-+#if defined (ACE_CORBA_HAS_EXCEPTIONS)
-+#define ACE_THROW_EX(EXCEPTION) EXCEPTION->_raise ();
-+#else
-+#define ACE_THROW_EX(EXCEPTION) ACE_TRY_ENV._exception (EXCEPTION)
-+#endif /* ACE_CORBA_HAS_EXCEPTIONS */
-+
- // Normal invocations don't involve any heap al; messages are
- // constructed into stack-based buffers and are read into those
- // buffers too. Larger buffers are heap-allocated as needed.
-@@ -472,9 +478,7 @@
- CORBA::COMPLETED_YES));
- ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION);
-
-- // @@ Think about a better way to raise the exception here,
-- // maybe we need some more macros?
-- ACE_TRY_ENV.exception (exception); // We can not use ACE_THROW here.
-+ ACE_THROW_EX (exception);
- return TAO_INVOKE_EXCEPTION;
- }
-
-@@ -560,9 +564,7 @@
- "TAO: (%P|%t) Raising exception %s\n",
- buf.in ()));
-
-- // @@ Think about a better way to raise the exception here,
-- // maybe we need some more macros?
-- ACE_TRY_ENV.exception (exception); // We can not use ACE_THROW here.
-+ ACE_THROW_EX (exception);
- return TAO_INVOKE_EXCEPTION;
- }
-
-@@ -746,11 +748,7 @@
- ex->minor (minor);
- ex->completed (CORBA::CompletionStatus (completion));
-
--
-- // @@ There should be a better way to raise this exception!
-- // This code works for both native and emulated exceptions,
-- // but it is ugly.
-- ACE_TRY_ENV.exception (ex); // We can not use ACE_THROW here.
-+ ACE_THROW_EX (ex);
- return TAO_INVOKE_OK;
- }
- // NOTREACHED.
diff --git a/ACE/etc/index.html b/ACE/etc/index.html
index 97f4162a304..2d956942e00 100644
--- a/ACE/etc/index.html
+++ b/ACE/etc/index.html
@@ -2,7 +2,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
- <title>ACE+TAO+CIAO Doxygen Documentation</title>
+ <title>ACE+TAO+CIAO+DAnCE Doxygen Documentation</title>
<LINK href="doxygen.css" rel="stylesheet" type="text/css">
</head>
@@ -17,12 +17,12 @@
<ul>
<li><P>
- Follow this <A HREF="Current/html">link</A>
+ Follow this <A HREF="http://doxygen.theaceorb.nl">link</A>
for documentation of last night's snapshot.
</P>
</LI>
<LI><P>
- Documentation for the latest micro release kit is available at
+ Documentation for the latest micro release kit is available at
<A HREF="Micro">this site</A>.
</P>
</LI>
@@ -35,6 +35,25 @@
<hr>
We do have the documentation for previous releases
<ul>
+ <LI><P><A HREF="6.0.3/html">6.0.3</A></P></LI>
+ <LI><P><A HREF="6.0.2/html">6.0.2</A></P></LI>
+ <LI><P><A HREF="6.0.1/html">6.0.1</A></P></LI>
+ <LI><P><A HREF="6.0.0/html">6.0.0</A></P></LI>
+ <LI><P><A HREF="5.8.3/html">5.8.3</A></P></LI>
+ <LI><P><A HREF="5.8.2/html">5.8.2</A></P></LI>
+ <LI><P><A HREF="5.8.1/html">5.8.1</A></P></LI>
+ <LI><P><A HREF="5.8.0/html">5.8.0</A></P></LI>
+ <LI><P><A HREF="5.7.9/html">5.7.9</A></P></LI>
+ <LI><P><A HREF="5.7.8/html">5.7.8</A></P></LI>
+ <LI><P><A HREF="5.7.7/html">5.7.7</A></P></LI>
+ <LI><P><A HREF="5.7.6/html">5.7.6</A></P></LI>
+ <LI><P><A HREF="5.7.5/html">5.7.5</A></P></LI>
+ <LI><P><A HREF="5.7.4/html">5.7.4</A></P></LI>
+ <LI><P><A HREF="5.7.3/html">5.7.3</A></P></LI>
+ <LI><P><A HREF="5.7.2/html">5.7.2</A></P></LI>
+ <LI><P><A HREF="5.7.1/html">5.7.1</A></P></LI>
+ <LI><P><A HREF="5.7.0/html">5.7</A></P></LI>
+ <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/AO.cpp b/ACE/examples/APG/Active_Objects/AO.cpp
index fbf9b22fc61..a8b1683fbb1 100644
--- a/ACE/examples/APG/Active_Objects/AO.cpp
+++ b/ACE/examples/APG/Active_Objects/AO.cpp
@@ -16,14 +16,13 @@ class HA_ControllerAgent
public:
HA_ControllerAgent ()
{
- ACE_TRACE
- (ACE_TEXT ("HA_ControllerAgent::HA_ControllerAgent"));
+ ACE_TRACE("HA_ControllerAgent::HA_ControllerAgent");
status_result_ = 1;
}
int status_update (void)
{
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgent::status_update"));
+ ACE_TRACE ("HA_ControllerAgent::status_update");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Obtaining a status_update in %t ")
ACE_TEXT ("thread of control\n")));
@@ -35,7 +34,7 @@ public:
private:
int next_result_id (void)
{
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgent::next_cmd_id"));
+ ACE_TRACE ("HA_ControllerAgent::next_cmd_id");
return status_result_++;
}
@@ -50,12 +49,12 @@ public:
ACE_Future<int>& returnVal)
: controller_(controller), returnVal_(returnVal)
{
- ACE_TRACE (ACE_TEXT ("StatusUpdate::StatusUpdate"));
+ ACE_TRACE ("StatusUpdate::StatusUpdate");
}
virtual int call (void)
{
- ACE_TRACE (ACE_TEXT ("StatusUpdate::call"));
+ ACE_TRACE ("StatusUpdate::call");
// status_update with the controller.
this->returnVal_.set (this->controller_.status_update ());
@@ -84,13 +83,13 @@ class Scheduler : public ACE_Task_Base
public:
Scheduler ()
{
- ACE_TRACE (ACE_TEXT ("Scheduler::Scheduler"));
+ ACE_TRACE ("Scheduler::Scheduler");
this->activate ();
}
virtual int svc (void)
{
- ACE_TRACE (ACE_TEXT ("Scheduler::svc"));
+ ACE_TRACE ("Scheduler::svc");
while (1)
{
@@ -108,7 +107,7 @@ public:
int enqueue (ACE_Method_Request *request)
{
- ACE_TRACE (ACE_TEXT ("Scheduler::enqueue"));
+ ACE_TRACE ("Scheduler::enqueue");
return this->activation_queue_.enqueue (request);
}
@@ -123,8 +122,7 @@ class HA_ControllerAgentProxy
public:
ACE_Future<int> status_update (void)
{
- ACE_TRACE
- (ACE_TEXT ("HA_ControllerAgentProxy::status_update"));
+ ACE_TRACE("HA_ControllerAgentProxy::status_update");
ACE_Future<int> result;
// Create and enqueue a method request on the scheduler.
@@ -139,7 +137,7 @@ public:
void exit (void)
{
//FUZZ: enable check_for_lack_ACE_OS
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgentProxy::exit"));
+ ACE_TRACE ("HA_ControllerAgentProxy::exit");
this->scheduler_.enqueue (new ExitMethod);
}
diff --git a/ACE/examples/APG/Active_Objects/AO2.cpp b/ACE/examples/APG/Active_Objects/AO2.cpp
index a7608d3ea8c..e81b6bd18ba 100644
--- a/ACE/examples/APG/Active_Objects/AO2.cpp
+++ b/ACE/examples/APG/Active_Objects/AO2.cpp
@@ -16,14 +16,13 @@ class HA_ControllerAgent
public:
HA_ControllerAgent ()
{
- ACE_TRACE
- (ACE_TEXT ("HA_ControllerAgent::HA_ControllerAgent"));
+ ACE_TRACE("HA_ControllerAgent::HA_ControllerAgent");
status_result_ = 1;
}
int status_update (void)
{
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgent::status_update"));
+ ACE_TRACE ("HA_ControllerAgent::status_update");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Obtaining a status_update in %t ")
ACE_TEXT ("thread of control\n")));
@@ -36,7 +35,7 @@ public:
private:
int next_result_id (void)
{
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgent::next_cmd_id"));
+ ACE_TRACE ("HA_ControllerAgent::next_cmd_id");
return status_result_++;
}
@@ -50,12 +49,12 @@ public:
ACE_Future<int>& returnVal)
: controller_(controller), returnVal_(returnVal)
{
- ACE_TRACE (ACE_TEXT ("StatusUpdate::StatusUpdate"));
+ ACE_TRACE ("StatusUpdate::StatusUpdate");
}
virtual int call (void)
{
- ACE_TRACE (ACE_TEXT ("StatusUpdate::call"));
+ ACE_TRACE ("StatusUpdate::call");
// status_update with the controller.
this->returnVal_.set (this->controller_.status_update ());
@@ -82,13 +81,13 @@ class Scheduler : public ACE_Task_Base
public:
Scheduler ()
{
- ACE_TRACE (ACE_TEXT ("Scheduler::Scheduler"));
+ ACE_TRACE ("Scheduler::Scheduler");
this->activate ();
}
virtual int svc (void)
{
- ACE_TRACE (ACE_TEXT ("Scheduler::svc"));
+ ACE_TRACE ("Scheduler::svc");
while (1)
{
@@ -106,7 +105,7 @@ public:
int enqueue (ACE_Method_Request *request)
{
- ACE_TRACE (ACE_TEXT ("Scheduler::enqueue"));
+ ACE_TRACE ("Scheduler::enqueue");
return this->activation_queue_.enqueue (request);
}
@@ -120,8 +119,7 @@ class HA_ControllerAgentProxy
public:
ACE_Future<int> status_update (void)
{
- ACE_TRACE
- (ACE_TEXT ("HA_ControllerAgentProxy::status_update"));
+ ACE_TRACE("HA_ControllerAgentProxy::status_update");
ACE_Future<int> result;
// Create and enqueue a method request on the scheduler.
@@ -137,7 +135,7 @@ public:
{
//FUZZ: enable check_for_lack_ACE_OS
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgentProxy::exit"));
+ ACE_TRACE ("HA_ControllerAgentProxy::exit");
this->scheduler_.enqueue (new ExitMethod);
}
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/Allocator.cpp b/ACE/examples/APG/Containers/Allocator.cpp
index 847235a3061..8f934f5bd13 100644
--- a/ACE/examples/APG/Containers/Allocator.cpp
+++ b/ACE/examples/APG/Containers/Allocator.cpp
@@ -20,7 +20,7 @@ private:
// Listing 1 code/ch05
int StackExample::run (void)
{
- ACE_TRACE (ACE_TEXT ("StackUser::run"));
+ ACE_TRACE ("StackExample::run");
ACE_Allocator *allocator = 0;
size_t block_size = sizeof(ACE_Node<DataElement>);
@@ -45,7 +45,7 @@ int StackExample::run (void)
// Listing 2 code/ch05
int StackExample::runUnboundedStack (ACE_Allocator* allocator)
{
- ACE_TRACE (ACE_TEXT ("StackExample::runUnboundedStack"));
+ ACE_TRACE ("StackExample::runUnboundedStack");
// Pass in an allocator during construction.
ACE_Unbounded_Stack<DataElement> ustack (allocator);
diff --git a/ACE/examples/APG/Containers/DLList.cpp b/ACE/examples/APG/Containers/DLList.cpp
index d45d5c5fb38..4a2032b9527 100644
--- a/ACE/examples/APG/Containers/DLList.cpp
+++ b/ACE/examples/APG/Containers/DLList.cpp
@@ -24,7 +24,7 @@ public:
int
ListTest::run (void)
{
- ACE_TRACE (ACE_TEXT ("ListTest::run"));
+ ACE_TRACE ("ListTest::run");
// Create a list and insert 100 elements.
MyList list1;
@@ -67,7 +67,7 @@ ListTest::run (void)
void
ListTest::destroyList (MyList& list)
{
- ACE_TRACE (ACE_TEXT ("ListTest::destroyList"));
+ ACE_TRACE ("ListTest::destroyList");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Destroying data elements\n")));
@@ -85,7 +85,7 @@ ListTest::destroyList (MyList& list)
void
ListTest::displayList (MyList& list)
{
- ACE_TRACE (ACE_TEXT ("ListTest::displayList"));
+ ACE_TRACE ("ListTest::displayList");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Forward iteration\n")));
ACE_DLList_Iterator<DataElement> iter (list);
diff --git a/ACE/examples/APG/Containers/Hash_Map.cpp b/ACE/examples/APG/Containers/Hash_Map.cpp
index d93d9d54be5..3fba69ed29e 100644
--- a/ACE/examples/APG/Containers/Hash_Map.cpp
+++ b/ACE/examples/APG/Containers/Hash_Map.cpp
@@ -39,7 +39,7 @@ private:
// Listing 2 code/ch05
Hash_Map_Example::Hash_Map_Example()
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::Hash_Map_Example"));
+ ACE_TRACE ("Hash_Map_Example::Hash_Map_Example");
map_.open (100);
}
@@ -47,7 +47,7 @@ Hash_Map_Example::Hash_Map_Example()
int Hash_Map_Example::run (void)
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::run"));
+ ACE_TRACE ("Hash_Map_Example::run");
for (int i = 0; i < 100; i++)
{
@@ -80,7 +80,7 @@ int Hash_Map_Example::run (void)
void Hash_Map_Example::iterate_forward (void)
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::iterate_forward"));
+ ACE_TRACE ("Hash_Map_Example::iterate_forward");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Forward Iteration\n")));
for (Hash_Map<int, DataElement>::iterator iter = map_.begin ();
@@ -93,7 +93,7 @@ void Hash_Map_Example::iterate_forward (void)
void Hash_Map_Example::iterate_reverse (void)
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::iterate_reverse"));
+ ACE_TRACE ("Hash_Map_Example::iterate_reverse");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Reverse Iteration\n")));
for (Hash_Map<int, DataElement>::reverse_iterator iter = map_.rbegin ();
@@ -106,7 +106,7 @@ void Hash_Map_Example::iterate_reverse (void)
void Hash_Map_Example::remove_all (void)
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::remove_all"));
+ ACE_TRACE ("Hash_Map_Example::remove_all");
map_.unbind_all ();
}
diff --git a/ACE/examples/APG/Containers/Hash_Map_Hash.cpp b/ACE/examples/APG/Containers/Hash_Map_Hash.cpp
index f81136ac085..c5a6a28f538 100644
--- a/ACE/examples/APG/Containers/Hash_Map_Hash.cpp
+++ b/ACE/examples/APG/Containers/Hash_Map_Hash.cpp
@@ -40,7 +40,7 @@ private:
int Hash_Map_Example::run (void)
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::run"));
+ ACE_TRACE ("Hash_Map_Example::run");
for (int i = 0; i < 100; i++)
{
@@ -73,7 +73,7 @@ int Hash_Map_Example::run (void)
void Hash_Map_Example::iterate_forward (void)
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::iterate_forward"));
+ ACE_TRACE ("Hash_Map_Example::iterate_forward");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Forward Iteration\n")));
for (Hash_Map<KeyType, DataElement>::iterator iter = map_.begin ();
@@ -86,7 +86,7 @@ void Hash_Map_Example::iterate_forward (void)
void Hash_Map_Example::iterate_reverse (void)
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::iterate_reverse"));
+ ACE_TRACE ("Hash_Map_Example::iterate_reverse");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Reverse Iteration\n")));
for (Hash_Map<KeyType, DataElement>::reverse_iterator iter = map_.rbegin ();
@@ -99,7 +99,7 @@ void Hash_Map_Example::iterate_reverse (void)
void Hash_Map_Example::remove_all (void)
{
- ACE_TRACE (ACE_TEXT ("Hash_Map_Example::remove_all"));
+ ACE_TRACE ("Hash_Map_Example::remove_all");
map_.unbind_all ();
}
diff --git a/ACE/examples/APG/Containers/Map_Manager.cpp b/ACE/examples/APG/Containers/Map_Manager.cpp
index 8588a52daf2..b3917a58fb4 100644
--- a/ACE/examples/APG/Containers/Map_Manager.cpp
+++ b/ACE/examples/APG/Containers/Map_Manager.cpp
@@ -29,7 +29,7 @@ private:
// Listing 2 code/ch05
int Map_Example::run (void)
{
- ACE_TRACE (ACE_TEXT ("Map_Example::run"));
+ ACE_TRACE ("Map_Example::run");
// Corresponding KeyType objects are created on the fly.
for (int i = 0; i < 100; i++)
@@ -64,7 +64,7 @@ int Map_Example::run (void)
// Listing 3 code/ch05
void Map_Example::iterate_forward (void)
{
- ACE_TRACE (ACE_TEXT ("Map_Example::iterate_forward"));
+ ACE_TRACE ("Map_Example::iterate_forward");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Forward iteration\n")));
for (ACE_Map_Manager<KeyType,
@@ -83,7 +83,7 @@ void Map_Example::iterate_forward (void)
void Map_Example::iterate_reverse (void)
{
- ACE_TRACE (ACE_TEXT ("Map_Example::iterate_reverse"));
+ ACE_TRACE ("Map_Example::iterate_reverse");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Reverse iteration\n")));
for (ACE_Map_Manager<KeyType,
DataElement,
@@ -101,7 +101,7 @@ void Map_Example::iterate_reverse (void)
// Listing 4 code/ch05
void Map_Example::remove_all (void)
{
- ACE_TRACE (ACE_TEXT ("Map_Example::remove_all"));
+ ACE_TRACE ("Map_Example::remove_all");
// Note that we can't use the iterators here as they
// are invalidated after deletions or insertions.
diff --git a/ACE/examples/APG/Containers/Map_Manager_Specialization.cpp b/ACE/examples/APG/Containers/Map_Manager_Specialization.cpp
index afffce23b5d..35b6615200e 100644
--- a/ACE/examples/APG/Containers/Map_Manager_Specialization.cpp
+++ b/ACE/examples/APG/Containers/Map_Manager_Specialization.cpp
@@ -69,7 +69,7 @@ private:
int Map_Example::run (void)
{
- ACE_TRACE (ACE_TEXT ("Map_Example::run"));
+ ACE_TRACE ("Map_Example::run");
// Corresponding KeyType objects are created on the fly.
for (int i = 0; i < 100; i++)
@@ -106,7 +106,7 @@ int Map_Example::run (void)
void Map_Example::iterate_forward (void)
{
- ACE_TRACE (ACE_TEXT ("Map_Example::iterate_forward"));
+ ACE_TRACE ("Map_Example::iterate_forward");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Forward iteration\n")));
for (ACE_Map_Manager<KeyType, DataElement, ACE_Null_Mutex>::iterator
@@ -121,7 +121,7 @@ void Map_Example::iterate_forward (void)
void Map_Example::iterate_reverse (void)
{
- ACE_TRACE (ACE_TEXT ("Map_Example::iterate_reverse"));
+ ACE_TRACE ("Map_Example::iterate_reverse");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Reverse iteration\n")));
for (ACE_Map_Manager<KeyType, DataElement, ACE_Null_Mutex>::reverse_iterator
@@ -136,7 +136,7 @@ void Map_Example::iterate_reverse (void)
void Map_Example::remove_all (void)
{
- ACE_TRACE (ACE_TEXT ("Map_Example::remove_all"));
+ ACE_TRACE ("Map_Example::remove_all");
// Note that we can't use the iterators here
// as they are invalidated after deletions
diff --git a/ACE/examples/APG/Containers/Queues.cpp b/ACE/examples/APG/Containers/Queues.cpp
index ca945169ed4..8d6e016a293 100644
--- a/ACE/examples/APG/Containers/Queues.cpp
+++ b/ACE/examples/APG/Containers/Queues.cpp
@@ -23,7 +23,7 @@ private:
int QueueExample::run (void)
{
- ACE_TRACE (ACE_TEXT ("QueueExample::run"));
+ ACE_TRACE ("QueueExample::run");
// Illustrate the queue with elements on the stack.
if (this->runStackUnboundedQueue () != 0)
@@ -49,7 +49,7 @@ int QueueExample::run (void)
// Listing 1 code/ch05
int QueueExample::runStackUnboundedQueue (void)
{
- ACE_TRACE (ACE_TEXT ("QueueExample::runStackUnboundedQueue"));
+ ACE_TRACE ("QueueExample::runStackUnboundedQueue");
ACE_Unbounded_Queue<DataElement> queue;
DataElement elem1[10];
@@ -82,7 +82,7 @@ int QueueExample::runStackUnboundedQueue (void)
// Listing 2 code/ch05
int QueueExample::runHeapUnboundedQueue (void)
{
- ACE_TRACE (ACE_TEXT ("QueueExample::runHeapUnboundedQueue"));
+ ACE_TRACE ("QueueExample::runHeapUnboundedQueue");
ACE_Unbounded_Queue<DataElement*> queue;
for (int i = 0; i < 20; i++)
diff --git a/ACE/examples/APG/Containers/RB_Tree.cpp b/ACE/examples/APG/Containers/RB_Tree.cpp
index cf6c2326df4..261386f76f6 100644
--- a/ACE/examples/APG/Containers/RB_Tree.cpp
+++ b/ACE/examples/APG/Containers/RB_Tree.cpp
@@ -35,7 +35,7 @@ private:
// Listing 1 code/ch05
int Tree_Example::run (void)
{
- ACE_TRACE (ACE_TEXT ("Tree_Example::run"));
+ ACE_TRACE ("Tree_Example::run");
DataElement *d = 0;
for (int i = 0; i < 100; i++)
@@ -75,7 +75,7 @@ int Tree_Example::run (void)
void Tree_Example::iterate_forward (void)
{
- ACE_TRACE (ACE_TEXT ("Tree_Example::iterate_forward"));
+ ACE_TRACE ("Tree_Example::iterate_forward");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Forward Iteration:\n")));
for (Tree<int, DataElement*>::iterator iter = tree_.begin ();
@@ -89,7 +89,7 @@ void Tree_Example::iterate_forward (void)
void Tree_Example::iterate_reverse (void)
{
- ACE_TRACE (ACE_TEXT ("Tree_Example::iterate_reverse"));
+ ACE_TRACE ("Tree_Example::iterate_reverse");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Reverse Iteration:\n")));
for (Tree<int, DataElement*>::reverse_iterator iter
@@ -104,7 +104,7 @@ void Tree_Example::iterate_reverse (void)
int Tree_Example::remove_all (void)
{
- ACE_TRACE (ACE_TEXT ("Tree_Example::remove_all"));
+ ACE_TRACE ("Tree_Example::remove_all");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Removing elements\n")));
// Note that we can't use the iterators here as they are
diff --git a/ACE/examples/APG/Containers/RB_Tree_Functors.cpp b/ACE/examples/APG/Containers/RB_Tree_Functors.cpp
index 3010075761d..63ff0dd7263 100644
--- a/ACE/examples/APG/Containers/RB_Tree_Functors.cpp
+++ b/ACE/examples/APG/Containers/RB_Tree_Functors.cpp
@@ -39,7 +39,7 @@ private:
int Tree_Example::run ()
{
- ACE_TRACE (ACE_TEXT ("Tree_Example::run"));
+ ACE_TRACE ("Tree_Example::run");
DataElement *d = 0;
for (int i = 0; i < 100; i++)
@@ -82,7 +82,7 @@ int Tree_Example::run ()
void Tree_Example::iterate_forward (void)
{
- ACE_TRACE (ACE_TEXT ("Tree_Example::iterate_forward"));
+ ACE_TRACE ("Tree_Example::iterate_forward");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Forward Iteration\n")));
for (Tree<KeyType, DataElement*>::iterator iter = tree_.begin ();
@@ -95,7 +95,7 @@ void Tree_Example::iterate_forward (void)
void Tree_Example::iterate_reverse (void)
{
- ACE_TRACE (ACE_TEXT ("Tree_Example::iterate_reverse"));
+ ACE_TRACE ("Tree_Example::iterate_reverse");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Reverse Iteration\n")));
for (Tree<KeyType, DataElement*>::reverse_iterator iter = tree_.rbegin ();
@@ -108,7 +108,7 @@ void Tree_Example::iterate_reverse (void)
int Tree_Example::remove_all (void)
{
- ACE_TRACE (ACE_TEXT ("Tree_Example::remove_all"));
+ ACE_TRACE ("Tree_Example::remove_all");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Removing elements\n")));
for (int i = 0; i < 100; i++)
diff --git a/ACE/examples/APG/Containers/Sets.cpp b/ACE/examples/APG/Containers/Sets.cpp
index 3eaec6f7bec..ac097da5519 100644
--- a/ACE/examples/APG/Containers/Sets.cpp
+++ b/ACE/examples/APG/Containers/Sets.cpp
@@ -21,7 +21,7 @@ private:
int SetExample::run (void)
{
- ACE_TRACE (ACE_TEXT ("SetExample::run"));
+ ACE_TRACE ("SetExample::run");
ACE_ASSERT (!this->runBoundedSet ());
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n# of live objects %d\n"),
@@ -36,7 +36,7 @@ int SetExample::run (void)
// Listing 1 code/ch05
int SetExample::runBoundedSet ()
{
- ACE_TRACE (ACE_TEXT ("SetExample::runBoundedSet"));
+ ACE_TRACE ("SetExample::runBoundedSet");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using a bounded set\n")));
ACE_Bounded_Set<DataElement> bset (100);
@@ -86,7 +86,7 @@ int SetExample::runBoundedSet ()
// Listing 2 code/ch05
int SetExample::runUnboundedSet ()
{
- ACE_TRACE (ACE_TEXT ("SetExample::runUnboundedSet"));
+ ACE_TRACE ("SetExample::runUnboundedSet");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using an unbounded set.\n")));
ACE_Unbounded_Set<DataElement*> uset;
for (int m = 0; m < 100; m++)
diff --git a/ACE/examples/APG/Containers/Stacks.cpp b/ACE/examples/APG/Containers/Stacks.cpp
index b02a243ab92..9147d3239ae 100644
--- a/ACE/examples/APG/Containers/Stacks.cpp
+++ b/ACE/examples/APG/Containers/Stacks.cpp
@@ -30,7 +30,7 @@ private:
int StackExample::run (void)
{
- ACE_TRACE (ACE_TEXT ("StackUser::run"));
+ ACE_TRACE ("StackExample::run");
ACE_ASSERT(!this->runBoundedStack());
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n# of live objects %d\n"),
@@ -49,7 +49,7 @@ int StackExample::run (void)
// Listing 1 code/ch05
int StackExample::runBoundedStack (void)
{
- ACE_TRACE (ACE_TEXT ("StackExample::runBoundedStack"));
+ ACE_TRACE ("StackExample::runBoundedStack");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using a bounded stack\n")));
ACE_Bounded_Stack<DataElement> bstack1 (100);
@@ -82,7 +82,7 @@ int StackExample::runBoundedStack (void)
// Listing 2 code/ch05
int StackExample::runFixedStack (void)
{
- ACE_TRACE (ACE_TEXT ("StackExample::runFixedStack"));
+ ACE_TRACE ("StackExample::runFixedStack");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using a fixed stack\n")));
ACE_Fixed_Stack<DataElement*, 100> fstack;
@@ -106,7 +106,7 @@ int StackExample::runFixedStack (void)
int StackExample::runUnboundedStack (void)
{
- ACE_TRACE (ACE_TEXT ("StackExample::runUnboundedStack"));
+ ACE_TRACE ("StackExample::runUnboundedStack");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using an unbounded stack\n")));
ACE_Unbounded_Stack<DataElement*> ustack;
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/Logging/Callback-3.h b/ACE/examples/APG/Logging/Callback-3.h
index 27f136a3a00..0d468547d2e 100644
--- a/ACE/examples/APG/Logging/Callback-3.h
+++ b/ACE/examples/APG/Logging/Callback-3.h
@@ -4,6 +4,7 @@
#define APG_CALLBACK3_H
#include "ace/streams.h"
+#include "ace/CDR_Stream.h"
#include "ace/Log_Msg.h"
#include "ace/Log_Msg_Callback.h"
#include "ace/Log_Record.h"
@@ -50,10 +51,9 @@ public:
return;
}
- size_t len = log_record.length();
- log_record.encode ();
-
- if (this->logger_->send_n ((char *) &log_record, len) == -1)
+ ACE_OutputCDR cdr;
+ cdr << log_record;
+ if (this->logger_->send_n (cdr.begin ()) == -1)
{
delete this->logger_;
this->logger_ = 0;
diff --git a/ACE/examples/APG/Logging/Change_Instance_Default.cpp b/ACE/examples/APG/Logging/Change_Instance_Default.cpp
index e22af840259..03b273073df 100644
--- a/ACE/examples/APG/Logging/Change_Instance_Default.cpp
+++ b/ACE/examples/APG/Logging/Change_Instance_Default.cpp
@@ -11,7 +11,7 @@
#include "ace/Log_Msg.h"
#include "ace/Thread_Manager.h"
-ACE_THR_FUNC_RETURN worker (void *)
+ACE_THR_FUNC_RETURN worker (void *)
{
// do some work
return 0;
diff --git a/ACE/examples/APG/Logging/Simple1.cpp b/ACE/examples/APG/Logging/Simple1.cpp
index cf7a12e410b..91198db2992 100644
--- a/ACE/examples/APG/Logging/Simple1.cpp
+++ b/ACE/examples/APG/Logging/Simple1.cpp
@@ -7,7 +7,7 @@ void foo (void);
int ACE_TMAIN (int, ACE_TCHAR *[])
{
ACE_TRACE("main");
-
+
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IHi Mom\n")));
foo();
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IGoodnight\n")));
diff --git a/ACE/examples/APG/Logging/Trace.h b/ACE/examples/APG/Logging/Trace.h
index a8ccd2b865d..26e9f9977b4 100644
--- a/ACE/examples/APG/Logging/Trace.h
+++ b/ACE/examples/APG/Logging/Trace.h
@@ -102,11 +102,6 @@ private:
//////////////////////////////////////////////////
-#if defined (__GNUC__) && (__GNUC__ >= 3 || __GNUC_MINOR__ > 95) && \
- (!defined (VXWORKS) || !(__GNUC__ == 2 && __GNUC_MINOR__ == 96))
-// This stuff only works with g++ 2.96 and later...
-// But not with VxWorks g++ 2.96.
-
// Listing 3 code/ch03
#define DEBUG_PREFIX ACE_TEXT ("DEBUG%I")
@@ -152,6 +147,4 @@ private:
X))
// Listing 3
-#endif /* __GNUC__ */
-
#endif /* TRACE_H */
diff --git a/ACE/examples/APG/Logging/Trace_Return.cpp b/ACE/examples/APG/Logging/Trace_Return.cpp
index 7ca44bf27ff..15bbef28155 100644
--- a/ACE/examples/APG/Logging/Trace_Return.cpp
+++ b/ACE/examples/APG/Logging/Trace_Return.cpp
@@ -2,11 +2,6 @@
#include "Trace.h"
-#if defined (__GNUC__) && (__GNUC__ >= 3 || __GNUC_MINOR__ > 95) && \
- (!defined (VXWORKS) || !(__GNUC__ == 2 && __GNUC_MINOR__ == 96))
-// The DEBUG stuff only works with g++ 2.96 and later.
-// But not with VxWorks g++ 2.96.
-
// Listing 1 code/ch03
void foo (void);
@@ -29,13 +24,3 @@ void foo (void)
}
// Listing 1
-#else
-#include "ace/OS_NS_stdio.h"
-
-int ACE_TMAIN (int, ACE_TCHAR *[])
-{
- ACE_OS::puts ("This example only works on g++ 2.96 and later.\n");
- return 0;
-}
-
-#endif /* __GNUC__ */
diff --git a/ACE/examples/APG/Logging/Wrap_Macros.cpp b/ACE/examples/APG/Logging/Wrap_Macros.cpp
index 3ad8352e22e..540cdc43e25 100644
--- a/ACE/examples/APG/Logging/Wrap_Macros.cpp
+++ b/ACE/examples/APG/Logging/Wrap_Macros.cpp
@@ -2,11 +2,6 @@
#include "Trace.h"
-#if defined (__GNUC__) && (__GNUC__ >= 3 || __GNUC_MINOR__ > 95) && \
- (!defined (VXWORKS) || !(__GNUC__ == 2 && __GNUC_MINOR__ == 96))
-// The macros in Trace.h only work on g++ 2.96 and later.
-// But not with VxWorks g++ 2.96.
-
// Listing 1 code/ch03
void foo (void);
@@ -26,13 +21,3 @@ void foo (void)
}
// Listing 1
-#else
-#include "ace/OS_NS_stdio.h"
-
-int ACE_TMAIN (int, ACE_TCHAR *[])
-{
- ACE_OS::puts ("This example only works on g++ 2.96 and later.\n");
- return 0;
-}
-
-#endif /* __GNUC__ */
diff --git a/ACE/examples/APG/Logging/Wrap_Macros_Alt.cpp b/ACE/examples/APG/Logging/Wrap_Macros_Alt.cpp
index 306eefcd83a..b45f6ae662f 100644
--- a/ACE/examples/APG/Logging/Wrap_Macros_Alt.cpp
+++ b/ACE/examples/APG/Logging/Wrap_Macros_Alt.cpp
@@ -7,7 +7,7 @@ void foo (void);
int ACE_TMAIN (int, ACE_TCHAR *[])
{
ACE_TRACE ("main");
-
+
// Listing 1 code/ch03
ACE_DEBUG ((MY_DEBUG ACE_TEXT ("Hi Mom\n")));
diff --git a/ACE/examples/APG/Logging/client.conf b/ACE/examples/APG/Logging/client.conf
index 1007e3aa7f6..d41176a3e1e 100644
--- a/ACE/examples/APG/Logging/client.conf
+++ b/ACE/examples/APG/Logging/client.conf
@@ -1 +1,3 @@
+# $Id$
+
dynamic Client_Logging_Service Service_Object * netsvcs:_make_ACE_Client_Logging_Acceptor() active "-p 20009 -h localhost"
diff --git a/ACE/examples/APG/Logging/logging_strategy.conf b/ACE/examples/APG/Logging/logging_strategy.conf
index b63501ee185..aaf0be1331b 100644
--- a/ACE/examples/APG/Logging/logging_strategy.conf
+++ b/ACE/examples/APG/Logging/logging_strategy.conf
@@ -1 +1,3 @@
+# $Id$
+
dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy() "-s log.out -f STDERR|OSTREAM -p INFO"
diff --git a/ACE/examples/APG/Logging/server.conf b/ACE/examples/APG/Logging/server.conf
index 31f8fd95d9d..733c6f6f7e9 100644
--- a/ACE/examples/APG/Logging/server.conf
+++ b/ACE/examples/APG/Logging/server.conf
@@ -1,3 +1,5 @@
+# $Id$
+
dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy() "-s foobar -f STDERR|OSTREAM|VERBOSE"
dynamic Server_Logging_Service Service_Object * netsvcs:_make_ACE_Server_Logging_Acceptor() active "-p 20009"
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/Name_Binding.h b/ACE/examples/APG/Naming/Name_Binding.h
index 6c093a941f2..1feecae91e4 100644
--- a/ACE/examples/APG/Naming/Name_Binding.h
+++ b/ACE/examples/APG/Naming/Name_Binding.h
@@ -31,8 +31,8 @@ public:
~Name_Binding ()
{
- delete this->name_;
- delete this->value_;
+ delete[] this->name_;
+ delete[] this->value_;
ACE_OS::free (const_cast<char*> (this->type_));
this->type_ = 0;
}
diff --git a/ACE/examples/APG/Naming/Temperature_Monitor2.cpp b/ACE/examples/APG/Naming/Temperature_Monitor2.cpp
index 124eb64ec87..436f274381b 100644
--- a/ACE/examples/APG/Naming/Temperature_Monitor2.cpp
+++ b/ACE/examples/APG/Naming/Temperature_Monitor2.cpp
@@ -116,7 +116,7 @@ void Temperature_Monitor2::record_failure (void)
this->reset_device (resetCount);
}
- this->naming_context_.rebind ("lastFailure", now);
+ this->naming_context_.rebind ("lastFailure", lastFailureTime);
}
void Temperature_Monitor2::monitor (void)
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/Naming/svc.conf b/ACE/examples/APG/Naming/svc.conf
index 550ef992177..1544280c9f0 100644
--- a/ACE/examples/APG/Naming/svc.conf
+++ b/ACE/examples/APG/Naming/svc.conf
@@ -1 +1,3 @@
+# $Id$
+
dynamic Name_Server Service_Object * netsvcs:_make_ACE_Name_Acceptor() "-p 20012"
diff --git a/ACE/examples/APG/Proactor/HA_Proactive_Status.cpp b/ACE/examples/APG/Proactor/HA_Proactive_Status.cpp
index a1fc1bc2774..b6656c6b20f 100644
--- a/ACE/examples/APG/Proactor/HA_Proactive_Status.cpp
+++ b/ACE/examples/APG/Proactor/HA_Proactive_Status.cpp
@@ -27,7 +27,7 @@ HA_Proactive_Service::open (ACE_HANDLE h, ACE_Message_Block&)
return;
}
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_NORETURN (mb, ACE_Message_Block (1024));
if (this->reader_.read (*mb, mb->space ()) != 0)
{
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/Process_Manager_Death.cpp b/ACE/examples/APG/Processes/Process_Manager_Death.cpp
index 51a8d911458..2a128e8bc17 100644
--- a/ACE/examples/APG/Processes/Process_Manager_Death.cpp
+++ b/ACE/examples/APG/Processes/Process_Manager_Death.cpp
@@ -12,12 +12,12 @@ class DeathHandler: public ACE_Event_Handler
public:
DeathHandler () : count_(0)
{
- ACE_TRACE (ACE_TEXT ("DeathHandler::DeathHandler"));
+ ACE_TRACE ("DeathHandler::DeathHandler");
}
virtual int handle_exit (ACE_Process * process)
{
- ACE_TRACE (ACE_TEXT ("DeathHandler::handle_exit"));
+ ACE_TRACE ("DeathHandler::handle_exit");
ACE_DEBUG
((LM_DEBUG,
diff --git a/ACE/examples/APG/Processes/Process_Mutex.cpp b/ACE/examples/APG/Processes/Process_Mutex.cpp
index 2afb89803b9..79125b3cd26 100644
--- a/ACE/examples/APG/Processes/Process_Mutex.cpp
+++ b/ACE/examples/APG/Processes/Process_Mutex.cpp
@@ -11,12 +11,12 @@ class GResourceUser
public:
GResourceUser (ACE_Process_Mutex &mutex) : gmutex_(mutex)
{
- ACE_TRACE (ACE_TEXT ("GResourceUser::GResourceUser"));
+ ACE_TRACE ("GResourceUser::GResourceUser");
}
void run (void)
{
- ACE_TRACE (ACE_TEXT ("GResourceUser::run"));
+ ACE_TRACE ("GResourceUser::run");
int count = 0;
while (count++ < 10)
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/Reactor/Client.cpp b/ACE/examples/APG/Reactor/Client.cpp
index b2773bbf7f3..2010fdc8721 100644
--- a/ACE/examples/APG/Reactor/Client.cpp
+++ b/ACE/examples/APG/Reactor/Client.cpp
@@ -55,7 +55,7 @@ int Client::handle_timeout(const ACE_Time_Value &, const void *)
return 0;
}
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block (128), -1);
int nbytes = ACE_OS::sprintf
(mb->wr_ptr (), "Iteration %d\n", this->iterations_);
@@ -69,7 +69,7 @@ int Client::handle_timeout(const ACE_Time_Value &, const void *)
// Listing 5 code/ch07
int Client::handle_output (ACE_HANDLE)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_Time_Value nowait (ACE_OS::gettimeofday ());
while (-1 != this->getq (mb, &nowait))
{
diff --git a/ACE/examples/APG/Reactor/HAStatus.cpp b/ACE/examples/APG/Reactor/HAStatus.cpp
index e2808fb8369..71ff3f756d2 100644
--- a/ACE/examples/APG/Reactor/HAStatus.cpp
+++ b/ACE/examples/APG/Reactor/HAStatus.cpp
@@ -170,7 +170,7 @@ ClientService::handle_input (ACE_HANDLE)
0);
if (send_cnt == -1)
send_cnt = 0;
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
size_t remaining =
static_cast<size_t> ((recv_cnt - send_cnt));
ACE_NEW_RETURN (mb, ACE_Message_Block (remaining), -1);
@@ -196,7 +196,7 @@ ClientService::handle_input (ACE_HANDLE)
int
ClientService::handle_output (ACE_HANDLE)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_Time_Value nowait (ACE_OS::gettimeofday ());
while (0 <= this->output_queue_.dequeue_head
(mb, &nowait))
diff --git a/ACE/examples/APG/Reactor/Timer_State_Data.cpp b/ACE/examples/APG/Reactor/Timer_State_Data.cpp
index 215381df394..22d5390c0e5 100644
--- a/ACE/examples/APG/Reactor/Timer_State_Data.cpp
+++ b/ACE/examples/APG/Reactor/Timer_State_Data.cpp
@@ -124,7 +124,7 @@ int ACE_TMAIN (int, ACE_TCHAR *[])
// Listing 3 code/ch07
TemperatureSensor *sensorOne =
new TemperatureSensor ("Kitchen");
-
+
ACE_Reactor::instance ()->schedule_timer (temperatureMonitor,
sensorOne,
initialDelay,
@@ -135,7 +135,7 @@ int ACE_TMAIN (int, ACE_TCHAR *[])
// Listing 4 code/ch07
TemperatureSensor *sensorTwo =
new TemperatureSensor ("Foyer");
-
+
ACE_Reactor::instance ()->schedule_timer (temperatureMonitor,
sensorTwo,
initialDelay,
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/Signals/SigAction.cpp b/ACE/examples/APG/Signals/SigAction.cpp
index 6d818ae9400..010d3ca287c 100644
--- a/ACE/examples/APG/Signals/SigAction.cpp
+++ b/ACE/examples/APG/Signals/SigAction.cpp
@@ -11,7 +11,7 @@ static void register_actions ();
int ACE_TMAIN (int, ACE_TCHAR *[])
{
- ACE_TRACE (ACE_TEXT ("::main"));
+ ACE_TRACE ("::main");
::register_actions (); // Register actions to happen.
@@ -39,7 +39,7 @@ extern "C" {
// Listing 3 code/ch11
static void my_sighandler (int signo)
{
- ACE_TRACE (ACE_TEXT ("::my_sighandler"));
+ ACE_TRACE ("::my_sighandler");
ACE_OS::kill (ACE_OS::getpid (), SIGUSR1);
@@ -57,7 +57,7 @@ static void my_sighandler (int signo)
// Listing 2 code/ch11
static void register_actions ()
{
- ACE_TRACE (ACE_TEXT ("::register_actions"));
+ ACE_TRACE ("::register_actions");
ACE_Sig_Action sa (reinterpret_cast <ACE_SignalHandler> (my_sighandler));
diff --git a/ACE/examples/APG/Signals/SigHandler.cpp b/ACE/examples/APG/Signals/SigHandler.cpp
index b7068c9dea6..16ebf78b377 100644
--- a/ACE/examples/APG/Signals/SigHandler.cpp
+++ b/ACE/examples/APG/Signals/SigHandler.cpp
@@ -19,7 +19,7 @@ public:
siginfo_t * = 0,
ucontext_t * = 0)
{
- ACE_TRACE (ACE_TEXT ("MySignalHandler::handle_signal"));
+ ACE_TRACE ("MySignalHandler::handle_signal");
// Make sure the right handler was called back.
ACE_ASSERT (signum == this->signum_);
diff --git a/ACE/examples/APG/Signals/SigHandlers.cpp b/ACE/examples/APG/Signals/SigHandlers.cpp
index 19634b50d72..90d816f5743 100644
--- a/ACE/examples/APG/Signals/SigHandlers.cpp
+++ b/ACE/examples/APG/Signals/SigHandlers.cpp
@@ -16,7 +16,7 @@ public:
virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0)
{
- ACE_TRACE (ACE_TEXT ("MySignalHandler::handle_signal"));
+ ACE_TRACE ("MySignalHandler::handle_signal");
// Make sure the right handler was called back..
ACE_ASSERT(signum == this->signum_);
diff --git a/ACE/examples/APG/Streams/Answerer.cpp b/ACE/examples/APG/Streams/Answerer.cpp
index f760490efad..0cbd2d5c3de 100644
--- a/ACE/examples/APG/Streams/Answerer.cpp
+++ b/ACE/examples/APG/Streams/Answerer.cpp
@@ -24,7 +24,7 @@ class AnswerIncomingCall : public BasicTask
protected:
virtual int process (Message *message)
{
- ACE_TRACE (ACE_TEXT ("AnswerIncomingCall::process()"));
+ ACE_TRACE ("AnswerIncomingCall::process()");
if (message->recorder ()->answer_call () < 0)
ACE_ERROR_RETURN ((LM_ERROR,
@@ -42,7 +42,7 @@ class GetCallerId : public BasicTask
protected:
virtual int process (Message *message)
{
- ACE_TRACE (ACE_TEXT ("GetCallerId::process()"));
+ ACE_TRACE ("GetCallerId::process()");
CallerId *id;
id = message->recorder ()->retrieve_callerId ();
@@ -64,7 +64,7 @@ class PlayOutgoingMessage : public BasicTask
protected:
virtual int process (Message *message)
{
- ACE_TRACE (ACE_TEXT ("PlayOutgoingMessage::process()"));
+ ACE_TRACE ("PlayOutgoingMessage::process()");
ACE_FILE_Addr outgoing_message =
this->get_outgoing_message (message);
@@ -94,7 +94,7 @@ class RecordIncomingMessage : public BasicTask
protected:
virtual int process (Message *message)
{
- ACE_TRACE (ACE_TEXT ("RecordIncomingMessage::process()"));
+ ACE_TRACE ("RecordIncomingMessage::process()");
ACE_FILE_Addr incoming_message =
this->get_incoming_message_queue ();
@@ -125,7 +125,7 @@ class ReleaseDevice : public BasicTask
protected:
virtual int process (Message *message)
{
- ACE_TRACE (ACE_TEXT ("ReleaseDevice::process()"));
+ ACE_TRACE ("ReleaseDevice::process()");
message->recorder ()->release ();
return 0;
}
@@ -138,7 +138,7 @@ class EncodeMessage : public BasicTask
protected:
virtual int process (Message *message)
{
- ACE_TRACE (ACE_TEXT ("ReleaseDevice::process()"));
+ ACE_TRACE ("ReleaseDevice::process()");
ACE_FILE_Addr &incoming = message->addr ();
ACE_FILE_Addr addr = this->get_message_destination (message);
@@ -169,7 +169,7 @@ class SaveMetaData : public BasicTask
protected:
virtual int process (Message *message)
{
- ACE_TRACE (ACE_TEXT ("SaveMetaData::process()"));
+ ACE_TRACE ("SaveMetaData::process()");
ACE_TString path (message->addr ().get_path_name ());
path += ACE_TEXT (".xml");
@@ -207,7 +207,7 @@ class NotifySomeone : public BasicTask
protected:
virtual int process (Message *message)
{
- ACE_TRACE (ACE_TEXT ("NotifySomeone::process()"));
+ ACE_TRACE ("NotifySomeone::process()");
// Format an email to tell someone about the
// newly received message.
@@ -348,7 +348,7 @@ public:
// Listing 13 code/ch18
int record (RecordingDevice *recorder)
{
- ACE_Message_Block * mb;
+ ACE_Message_Block * mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block (sizeof(Message)), -1);
Message *message = (Message *)mb->wr_ptr ();
diff --git a/ACE/examples/APG/Streams/CommandStream.cpp b/ACE/examples/APG/Streams/CommandStream.cpp
index def3f123d77..e5438226cd3 100644
--- a/ACE/examples/APG/Streams/CommandStream.cpp
+++ b/ACE/examples/APG/Streams/CommandStream.cpp
@@ -15,7 +15,7 @@ int CommandStream::open (void *arg,
ACE_Module<ACE_MT_SYNCH> *head,
ACE_Module<ACE_MT_SYNCH> *tail)
{
- ACE_TRACE (ACE_TEXT ("CommandStream::open(peer)"));
+ ACE_TRACE ("CommandStream::open(peer)");
if (this->inherited::open (arg, head, tail) == -1)
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"),
@@ -76,7 +76,7 @@ int CommandStream::open (void *arg,
// Listing 04 code/ch18
Command *CommandStream::execute (Command *command)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block (command), 0);
if (this->put (mb) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
diff --git a/ACE/examples/APG/Streams/CommandTask.cpp b/ACE/examples/APG/Streams/CommandTask.cpp
index 7ad63166ffd..c5a8b9d7129 100644
--- a/ACE/examples/APG/Streams/CommandTask.cpp
+++ b/ACE/examples/APG/Streams/CommandTask.cpp
@@ -26,7 +26,7 @@ int CommandTask::put (ACE_Message_Block *message,
// Listing 04 code/ch18
int CommandTask::process (Command *)
{
- ACE_TRACE (ACE_TEXT ("CommandTask::process()"));
+ ACE_TRACE ("CommandTask::process()");
return Command::RESULT_FAILURE;
}
// Listing 04
diff --git a/ACE/examples/APG/Streams/EndTask.h b/ACE/examples/APG/Streams/EndTask.h
index 6d63818fd86..2df1223a5c1 100644
--- a/ACE/examples/APG/Streams/EndTask.h
+++ b/ACE/examples/APG/Streams/EndTask.h
@@ -9,7 +9,7 @@ class TheEndTask : public BasicTask {
protected:
virtual int process (Message *)
{
- ACE_TRACE (ACE_TEXT ("EndTask::process()"));
+ ACE_TRACE ("EndTask::process()");
return 0;
}
diff --git a/ACE/examples/APG/Streams/MessageInfo.h b/ACE/examples/APG/Streams/MessageInfo.h
index 0f0f1bc60dc..76d1502f0f9 100644
--- a/ACE/examples/APG/Streams/MessageInfo.h
+++ b/ACE/examples/APG/Streams/MessageInfo.h
@@ -57,7 +57,7 @@ public:
LAST_CODEC
};
- MessageType (int codec, ACE_FILE_Addr addr)
+ MessageType (int codec, const ACE_FILE_Addr& addr)
: codec_(codec), addr_(addr)
{ }
diff --git a/ACE/examples/APG/Streams/RecordingDeviceFactory.cpp b/ACE/examples/APG/Streams/RecordingDeviceFactory.cpp
index f5585e1ec0a..beded2e5e3c 100644
--- a/ACE/examples/APG/Streams/RecordingDeviceFactory.cpp
+++ b/ACE/examples/APG/Streams/RecordingDeviceFactory.cpp
@@ -13,7 +13,7 @@ RecordingDevice *RecordingDeviceFactory::instantiate (int argc,
// Exclude 2
device = new TextListenerAcceptor ();
// Exclude 2
-
+
// Initialize the device with the remaining parameters.
if (device->init (argc, argv) < 0)
ACE_ERROR_RETURN ((LM_ERROR,
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/HA_Status_Dynamic.h b/ACE/examples/APG/Svc_Config/HA_Status_Dynamic.h
index c11f9a56d35..afa0e130654 100644
--- a/ACE/examples/APG/Svc_Config/HA_Status_Dynamic.h
+++ b/ACE/examples/APG/Svc_Config/HA_Status_Dynamic.h
@@ -9,7 +9,6 @@
#define __HASTATUS_H_
// Listing 1 code/ch19
-#include "ace/OS.h"
#include "ace/Acceptor.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
diff --git a/ACE/examples/APG/Svc_Config/HA_Status_Static.h b/ACE/examples/APG/Svc_Config/HA_Status_Static.h
index d4926ff0460..ccf961b8d92 100644
--- a/ACE/examples/APG/Svc_Config/HA_Status_Static.h
+++ b/ACE/examples/APG/Svc_Config/HA_Status_Static.h
@@ -9,7 +9,6 @@
#define __HASTATUS_H_
// Listing 1 code/ch19
-#include "ace/OS.h"
#include "ace/Acceptor.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
diff --git a/ACE/examples/APG/Svc_Config/svc.conf.dynamic b/ACE/examples/APG/Svc_Config/svc.conf.dynamic
index e8ffb12c8ad..3243d1a2f84 100644
--- a/ACE/examples/APG/Svc_Config/svc.conf.dynamic
+++ b/ACE/examples/APG/Svc_Config/svc.conf.dynamic
@@ -1,2 +1,4 @@
+# $Id$
+
dynamic HA_Status_Dynamic_Service Service_Object *
HA_Status:_make_HA_Status() "-f status.ini"
diff --git a/ACE/examples/APG/Svc_Config/svc.conf.static b/ACE/examples/APG/Svc_Config/svc.conf.static
index 0103380c776..26ed66e2522 100644
--- a/ACE/examples/APG/Svc_Config/svc.conf.static
+++ b/ACE/examples/APG/Svc_Config/svc.conf.static
@@ -1 +1,3 @@
+# $Id$
+
static HA_Status_Static_Service "-f status.ini"
diff --git a/ACE/examples/APG/Svc_Config/svc_config.mpc b/ACE/examples/APG/Svc_Config/svc_config.mpc
index ddc33b97c53..c1dea20f8d0 100644
--- a/ACE/examples/APG/Svc_Config/svc_config.mpc
+++ b/ACE/examples/APG/Svc_Config/svc_config.mpc
@@ -1,25 +1,22 @@
// -*- 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
+ dynamicflags += HASTATUS_BUILD_DLL
Source_Files {
HA_Status_Dynamic.cpp
}
}
-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/ThreadManagement/Async_Cancel.cpp b/ACE/examples/APG/ThreadManagement/Async_Cancel.cpp
index 3aac199d793..842c7fa2bca 100644
--- a/ACE/examples/APG/ThreadManagement/Async_Cancel.cpp
+++ b/ACE/examples/APG/ThreadManagement/Async_Cancel.cpp
@@ -23,10 +23,6 @@ public:
// Put this thread in a compute loop.. no
// cancellation points are available.
}
-#if defined (__HP_aCC)
- // This is only to workaround a warning on HP-UX compiler.
- return 0;
-#endif /* __HP_aCC */
}
int set_cancel_mode (void)
diff --git a/ACE/examples/APG/ThreadManagement/Pool.cpp b/ACE/examples/APG/ThreadManagement/Pool.cpp
index bc3644480a6..bb6db1e8fdc 100644
--- a/ACE/examples/APG/ThreadManagement/Pool.cpp
+++ b/ACE/examples/APG/ThreadManagement/Pool.cpp
@@ -13,7 +13,7 @@ public:
virtual int svc (void)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) starting up\n")));
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
if (this->getq (mb) == -1)
return -1;
// ... do something with the message.
diff --git a/ACE/examples/APG/ThreadManagement/State.cpp b/ACE/examples/APG/ThreadManagement/State.cpp
index d95433440c7..f4934a2085b 100644
--- a/ACE/examples/APG/ThreadManagement/State.cpp
+++ b/ACE/examples/APG/ThreadManagement/State.cpp
@@ -19,8 +19,8 @@ int ACE_TMAIN (int, ACE_TCHAR *[])
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Main Thread running\n")));
// Listing 1 code/ch13
HA_CommandHandler handler;
- int result = handler.activate (THR_NEW_LWP |
- THR_JOINABLE |
+ int result = handler.activate (THR_NEW_LWP |
+ THR_JOINABLE |
THR_SUSPENDED);
ACE_ASSERT (result == 0);
@@ -34,6 +34,6 @@ int ACE_TMAIN (int, ACE_TCHAR *[])
handler.grp_id ()));
handler.resume ();
handler.wait ();
-// Listing 1
+// Listing 1
return 0;
}
diff --git a/ACE/examples/APG/ThreadPools/Futures.cpp b/ACE/examples/APG/ThreadPools/Futures.cpp
index 361a8bb43a2..9180418d817 100644
--- a/ACE/examples/APG/ThreadPools/Futures.cpp
+++ b/ACE/examples/APG/ThreadPools/Futures.cpp
@@ -12,6 +12,7 @@
#include "ace/Method_Request.h"
#include "ace/Future.h"
#include "ace/Activation_Queue.h"
+#include "ace/Condition_T.h"
#define OUTSTANDING_REQUESTS 20
@@ -36,7 +37,7 @@ class LongWork : public ACE_Method_Request
public:
virtual int call (void)
{
- ACE_TRACE (ACE_TEXT ("LongWork::call"));
+ ACE_TRACE ("LongWork::call");
ACE_DEBUG
((LM_INFO, ACE_TEXT ("(%t) Attempting long work task\n")));
ACE_OS::sleep (1);
@@ -52,7 +53,7 @@ public:
ACE_Future<ACE_CString*> &future (void)
{
- ACE_TRACE (ACE_TEXT ("LongWork::future"));
+ ACE_TRACE ("LongWork::future");
return result_;
}
@@ -71,7 +72,7 @@ class Exit : public ACE_Method_Request
public:
virtual int call (void)
{
- ACE_TRACE (ACE_TEXT ("Exit::call"));
+ ACE_TRACE ("Exit::call");
return -1;
}
};
@@ -96,7 +97,7 @@ public:
int perform (ACE_Method_Request *req)
{
- ACE_TRACE (ACE_TEXT ("Worker::perform"));
+ ACE_TRACE ("Worker::perform");
return this->queue_.enqueue (req);
}
@@ -144,18 +145,18 @@ public:
Manager ()
: shutdown_(0), workers_lock_(), workers_cond_(workers_lock_)
{
- ACE_TRACE (ACE_TEXT ("Manager::TP"));
+ ACE_TRACE ("Manager");
}
int perform (ACE_Method_Request *req)
{
- ACE_TRACE (ACE_TEXT ("Manager::perform"));
+ ACE_TRACE ("perform");
return this->queue_.enqueue (req);
}
int svc (void)
{
- ACE_TRACE (ACE_TEXT ("Manager::svc"));
+ ACE_TRACE ("svc");
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%t) Manager started\n")));
@@ -250,7 +251,7 @@ private:
int
Manager::shut_down (void)
{
- ACE_TRACE (ACE_TEXT ("Manager::shut_down"));
+ ACE_TRACE ("Manager::shut_down");
ACE_Unbounded_Queue<Worker* >::ITERATOR iter = this->workers_.begin ();
Worker **worker_ptr = 0;
do
diff --git a/ACE/examples/APG/ThreadPools/LF_ThreadPool.cpp b/ACE/examples/APG/ThreadPools/LF_ThreadPool.cpp
index 39548a249d3..016c03b7145 100644
--- a/ACE/examples/APG/ThreadPools/LF_ThreadPool.cpp
+++ b/ACE/examples/APG/ThreadPools/LF_ThreadPool.cpp
@@ -8,6 +8,7 @@
#include "ace/Task.h"
#include "ace/Containers.h"
#include "ace/Synch.h"
+#include "ace/Condition_T.h"
// Listing 4 code/ch16
class Follower
@@ -47,7 +48,7 @@ class LF_ThreadPool : public ACE_Task<ACE_MT_SYNCH>
public:
LF_ThreadPool () : shutdown_(0), current_leader_(0)
{
- ACE_TRACE (ACE_TEXT ("LF_ThreadPool::TP"));
+ ACE_TRACE ("LF_ThreadPool::TP");
}
virtual int svc (void);
@@ -66,13 +67,13 @@ private:
int leader_active (void)
{
- ACE_TRACE (ACE_TEXT ("LF_ThreadPool::leader_active"));
+ ACE_TRACE ("LF_ThreadPool::leader_active");
return this->current_leader_ != 0;
}
void leader_active (ACE_thread_t leader)
{
- ACE_TRACE (ACE_TEXT ("LF_ThreadPool::leader_active"));
+ ACE_TRACE ("LF_ThreadPool::leader_active");
this->current_leader_ = leader;
}
@@ -96,7 +97,7 @@ private:
int
LF_ThreadPool::svc (void)
{
- ACE_TRACE (ACE_TEXT ("LF_ThreadPool::svc"));
+ ACE_TRACE ("LF_ThreadPool::svc");
while (!done ())
{
become_leader (); // Block until this thread is the leader.
@@ -124,7 +125,7 @@ LF_ThreadPool::svc (void)
int
LF_ThreadPool::become_leader (void)
{
- ACE_TRACE (ACE_TEXT ("LF_ThreadPool::become_leader"));
+ ACE_TRACE ("LF_ThreadPool::become_leader");
ACE_GUARD_RETURN
(ACE_Thread_Mutex, leader_mon, this->leader_lock_, -1);
@@ -150,7 +151,7 @@ LF_ThreadPool::become_leader (void)
Follower*
LF_ThreadPool::make_follower (void)
{
- ACE_TRACE (ACE_TEXT ("LF_ThreadPool::make_follower"));
+ ACE_TRACE ("LF_ThreadPool::make_follower");
ACE_GUARD_RETURN
(ACE_Thread_Mutex, follower_mon, this->followers_lock_, 0);
@@ -164,7 +165,7 @@ LF_ThreadPool::make_follower (void)
int
LF_ThreadPool::elect_new_leader (void)
{
- ACE_TRACE (ACE_TEXT ("LF_ThreadPool::elect_new_leader"));
+ ACE_TRACE ("LF_ThreadPool::elect_new_leader");
ACE_GUARD_RETURN
(ACE_Thread_Mutex, leader_mon, this->leader_lock_, -1);
@@ -198,7 +199,7 @@ LF_ThreadPool::elect_new_leader (void)
void
LF_ThreadPool::process_message (ACE_Message_Block *mb)
{
- ACE_TRACE (ACE_TEXT ("LF_ThreadPool::process_message"));
+ ACE_TRACE ("LF_ThreadPool::process_message");
int msgId;
ACE_OS::memcpy (&msgId, mb->rd_ptr (), sizeof(int));
mb->release ();
@@ -223,7 +224,7 @@ int ACE_TMAIN (int, ACE_TCHAR *[])
ACE_OS::sleep (2);
ACE_Time_Value tv (1L);
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
for (int i = 0; i < 30; i++)
{
ACE_NEW_RETURN (mb, ACE_Message_Block (sizeof(int)), -1);
diff --git a/ACE/examples/APG/ThreadPools/Task_ThreadPool.cpp b/ACE/examples/APG/ThreadPools/Task_ThreadPool.cpp
index 53ebe76b0bc..218a5c92293 100644
--- a/ACE/examples/APG/ThreadPools/Task_ThreadPool.cpp
+++ b/ACE/examples/APG/ThreadPools/Task_ThreadPool.cpp
@@ -39,7 +39,7 @@ public:
private:
void process_message (ACE_Message_Block *mb)
{
- ACE_TRACE (ACE_TEXT ("Workers::process_message"));
+ ACE_TRACE ("Workers::process_message");
int msgId;
ACE_OS::memcpy (&msgId, mb->rd_ptr (), sizeof(int));
mb->release ();
@@ -62,12 +62,12 @@ public:
Manager () : shutdown_(0)
{
- ACE_TRACE (ACE_TEXT ("Manager::Manager"));
+ ACE_TRACE ("Manager::Manager");
}
int svc (void)
{
- ACE_TRACE (ACE_TEXT ("Manager::svc"));
+ ACE_TRACE ("Manager::svc");
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%t) Manager started\n")));
@@ -80,7 +80,7 @@ public:
ACE_Message_Block *mb = 0;
ACE_Time_Value tv ((long)MAX_TIMEOUT);
tv += ACE_OS::time (0);
-
+
// Get a message request.
if (this->getq (mb, &tv) < 0)
{
@@ -118,7 +118,7 @@ int ACE_TMAIN (int, ACE_TCHAR *[])
ACE_Time_Value tv;
tv.msec (100);
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
for (int i = 0; i < 30; i++)
{
ACE_NEW_RETURN
diff --git a/ACE/examples/APG/ThreadPools/ThreadPool.cpp b/ACE/examples/APG/ThreadPools/ThreadPool.cpp
index 684762efcbf..6311bb04427 100644
--- a/ACE/examples/APG/ThreadPools/ThreadPool.cpp
+++ b/ACE/examples/APG/ThreadPools/ThreadPool.cpp
@@ -12,6 +12,7 @@
#include "ace/Method_Request.h"
#include "ace/Future.h"
#include "ace/Activation_Queue.h"
+#include "ace/Condition_T.h"
class Worker;
@@ -31,7 +32,8 @@ public:
virtual int svc (void)
{
- thread_id_ = ACE_Thread::self ();
+ ACE_Thread_ID id;
+ thread_id_ = id;
while (1)
{
ACE_Message_Block *mb = 0;
@@ -55,15 +57,15 @@ public:
}
// Listing 2
- ACE_thread_t thread_id (void)
+ const ACE_Thread_ID& thread_id (void)
{
- return thread_id_;
+ return this->thread_id_;
}
private:
void process_message (ACE_Message_Block *mb)
{
- ACE_TRACE (ACE_TEXT ("Worker::process_message"));
+ ACE_TRACE ("Worker::process_message");
int msgId;
ACE_OS::memcpy (&msgId, mb->rd_ptr (), sizeof(int));
mb->release ();
@@ -78,7 +80,7 @@ private:
}
IManager *manager_;
- ACE_thread_t thread_id_;
+ ACE_Thread_ID thread_id_;
};
// Listing 1 code/ch16
@@ -90,12 +92,12 @@ public:
Manager ()
: shutdown_(0), workers_lock_(), workers_cond_(workers_lock_)
{
- ACE_TRACE (ACE_TEXT ("Manager::Manager"));
+ ACE_TRACE ("Manager::Manager");
}
int svc (void)
{
- ACE_TRACE (ACE_TEXT ("Manager::svc"));
+ ACE_TRACE ("Manager::svc");
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%t) Manager started\n")));
@@ -136,15 +138,14 @@ public:
int shut_down (void);
- ACE_thread_t thread_id (Worker *worker);
+ const ACE_Thread_ID& thread_id (Worker *worker);
virtual int return_to_work (Worker *worker)
{
ACE_GUARD_RETURN (ACE_Thread_Mutex,
worker_mon, this->workers_lock_, -1);
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Worker %d returning to work.\n"),
- worker->thr_mgr ()->thr_self ()));
+ ACE_TEXT ("(%t) Worker %t returning to work.\n")));
this->workers_.enqueue_tail (worker);
this->workers_cond_.signal ();
@@ -160,7 +161,7 @@ private:
-1);
for (int i = 0; i < POOL_SIZE; i++)
{
- Worker *worker;
+ Worker *worker = 0;
ACE_NEW_RETURN (worker, Worker (this), -1);
this->workers_.enqueue_tail (worker);
worker->activate ();
@@ -187,7 +188,7 @@ int Manager::done (void)
int
Manager::shut_down (void)
{
- ACE_TRACE (ACE_TEXT ("Manager::shut_down"));
+ ACE_TRACE ("Manager::shut_down");
ACE_Unbounded_Queue<Worker* >::ITERATOR iter =
this->workers_.begin ();
Worker **worker_ptr = 0;
@@ -195,12 +196,15 @@ Manager::shut_down (void)
{
iter.next (worker_ptr);
Worker *worker = (*worker_ptr);
+ ACE_Thread_ID id = thread_id (worker);
+ char buf [65];
+ id.to_string (buf);
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Attempting shutdown of %d\n"),
- thread_id (worker)));
+ ACE_TEXT ("(%t) Attempting shutdown of %C\n"),
+ buf));
// Send the hangup message.
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN
(mb,
ACE_Message_Block(0,
@@ -213,8 +217,8 @@ Manager::shut_down (void)
ACE_ASSERT (worker->msg_queue ()->is_empty ());
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) Worker %d shut down.\n)"),
- thread_id (worker)));
+ ACE_TEXT ("(%t) Worker %C shut down.\n"),
+ buf));
delete worker;
}
while (iter.advance ());
@@ -224,13 +228,12 @@ Manager::shut_down (void)
return 0;
}
-ACE_thread_t
+const ACE_Thread_ID&
Manager::thread_id (Worker *worker)
{
return worker->thread_id ();
}
-
int ACE_TMAIN (int, ACE_TCHAR *[])
{
Manager tp;
@@ -240,7 +243,7 @@ int ACE_TMAIN (int, ACE_TCHAR *[])
ACE_Time_Value tv;
tv.msec (100);
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
for (int i = 0; i < 30; i++)
{
ACE_NEW_RETURN
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/Mutex.cpp b/ACE/examples/APG/ThreadSafety/Mutex.cpp
index aa21665222c..6f679b7fb0c 100644
--- a/ACE/examples/APG/ThreadSafety/Mutex.cpp
+++ b/ACE/examples/APG/ThreadSafety/Mutex.cpp
@@ -4,6 +4,7 @@
#if defined (ACE_HAS_THREADS)
#include "ace/Synch.h"
+#include "ace/Guard_T.h"
class LogMessage
{
diff --git a/ACE/examples/APG/ThreadSafety/Semaphore.cpp b/ACE/examples/APG/ThreadSafety/Semaphore.cpp
index 6b3440b38c9..d06029d9bd4 100644
--- a/ACE/examples/APG/ThreadSafety/Semaphore.cpp
+++ b/ACE/examples/APG/ThreadSafety/Semaphore.cpp
@@ -29,7 +29,7 @@ public:
csema_.acquire ();
if (!is_closed ())
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
this->getq (mb);
if (mb->msg_type () == ACE_Message_Block::MB_HANGUP)
{
diff --git a/ACE/examples/APG/ThreadSafety/Tokens.cpp b/ACE/examples/APG/ThreadSafety/Tokens.cpp
index 13adff1febb..edadc7b88d6 100644
--- a/ACE/examples/APG/ThreadSafety/Tokens.cpp
+++ b/ACE/examples/APG/ThreadSafety/Tokens.cpp
@@ -53,7 +53,7 @@ void
HA_Device_Repository::internal_do (Device *device)
{
ACE_UNUSED_ARG (device); // Real code would use this.
- ACE_Time_Value tv (0, ACE_OS::rand_r (this->seed_) % 10000);
+ ACE_Time_Value tv (0, ACE_OS::rand_r (&this->seed_) % 10000);
timespec_t t = (timespec_t)tv;
ACE_OS::nanosleep (&t);
}
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/APG/Threads/Activate.cpp b/ACE/examples/APG/Threads/Activate.cpp
index 2afa6316f91..658988a3bfa 100644
--- a/ACE/examples/APG/Threads/Activate.cpp
+++ b/ACE/examples/APG/Threads/Activate.cpp
@@ -24,7 +24,7 @@ int ACE_TMAIN (int, ACE_TCHAR *[])
HA_CommandHandler handler;
int result = handler.activate ();
ACE_ASSERT (result == 0);
-
+
ACE_UNUSED_ARG (result);
handler.wait ();
diff --git a/ACE/examples/APG/Threads/Condition_Variables.cpp b/ACE/examples/APG/Threads/Condition_Variables.cpp
index ab969b064b4..d8c77043367 100644
--- a/ACE/examples/APG/Threads/Condition_Variables.cpp
+++ b/ACE/examples/APG/Threads/Condition_Variables.cpp
@@ -5,6 +5,7 @@
#include "ace/Task.h"
#include "ace/Synch.h"
+#include "ace/Condition_T.h"
// Listing 1 code/ch12
class HA_Device_Repository
diff --git a/ACE/examples/APG/Threads/Guards.cpp b/ACE/examples/APG/Threads/Guards.cpp
index 7ef23e1e4da..1813dd68843 100644
--- a/ACE/examples/APG/Threads/Guards.cpp
+++ b/ACE/examples/APG/Threads/Guards.cpp
@@ -50,7 +50,9 @@ HA_Device_Repository::update_device (int device_id)
// Construct a guard specifying the type of the mutex as
// a template parameter and passing in the mutex to hold
// as a parameter.
+ // FUZZ: disable check_for_ACE_Guard
ACE_Guard<ACE_Thread_Mutex> guard (this->mutex_);
+ // FUZZ: enable check_for_ACE_Guard
// This can throw an exception that is not caught here.
ACE_NEW_RETURN (object, Object, -1);
diff --git a/ACE/examples/APG/Threads/Message_Blocks.cpp b/ACE/examples/APG/Threads/Message_Blocks.cpp
index 96cbf3e8cfe..f19c018445b 100644
--- a/ACE/examples/APG/Threads/Message_Blocks.cpp
+++ b/ACE/examples/APG/Threads/Message_Blocks.cpp
@@ -13,7 +13,7 @@ int ACE_TMAIN (int, ACE_TCHAR **)
// Just for the book...
// Listing 1 code/ch12
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block (128), -1);
const char *deviceAddr= "Dev#12";
@@ -21,11 +21,11 @@ int ACE_TMAIN (int, ACE_TCHAR **)
// Listing 1
#endif /* 0 */
// Listing 2 code/ch12
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block (128), -1);
const char *commandSeq= "CommandSeq#14";
- ACE_OS::sprintf (mb->wr_ptr (), commandSeq);
+ ACE_OS::sprintf (mb->wr_ptr (), "%s", commandSeq);
// Move the wr_ptr() forward in the buffer by the
// amount of data we just put in.
mb->wr_ptr (ACE_OS::strlen (commandSeq) +1);
diff --git a/ACE/examples/APG/Threads/Message_Queue.cpp b/ACE/examples/APG/Threads/Message_Queue.cpp
index 8c3ffcb60f4..eafdb0c155c 100644
--- a/ACE/examples/APG/Threads/Message_Queue.cpp
+++ b/ACE/examples/APG/Threads/Message_Queue.cpp
@@ -13,7 +13,7 @@ HA_CommandHandler::svc (void)
{
while(1)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
if (this->getq (mb) == -1)
break;
if (mb->msg_type () == ACE_Message_Block::MB_HANGUP)
@@ -47,7 +47,7 @@ HA_CommandHandler::svc (void)
ACE_Message_Block *
Message_Receiver::shut_down_message (void)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN
(mb, ACE_Message_Block (0, ACE_Message_Block::MB_HANGUP), 0);
return mb;
@@ -98,7 +98,7 @@ Message_Receiver::handle_input (ACE_HANDLE)
return -1;
}
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN
(mb, ACE_Message_Block (dch.length_ + sizeof dch), -1);
// Copy the header.
diff --git a/ACE/examples/APG/Threads/Message_Receiver.h b/ACE/examples/APG/Threads/Message_Receiver.h
index dee0731f007..e92afe4b474 100644
--- a/ACE/examples/APG/Threads/Message_Receiver.h
+++ b/ACE/examples/APG/Threads/Message_Receiver.h
@@ -29,7 +29,7 @@ public:
HA_Device_Repository ();
int update_device (int device_id, char *commands);
-
+
private:
ACE_Task_Base *owner_;
};
@@ -63,12 +63,12 @@ public:
{
ACE_ASSERT(0);
}
-
+
Message_Receiver (HA_CommandHandler *ch) : handler_(ch)
{ }
ACE_Message_Block *shut_down_message (void);
-
+
virtual int handle_input (ACE_HANDLE fd);
virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
@@ -78,7 +78,7 @@ public:
delete this;
return 0;
}
-
+
private:
int read_header (DeviceCommandHeader *dch);
int copy_payload (ACE_Message_Block *mb, int payload_length);
diff --git a/ACE/examples/APG/Timers/Alarm.cpp b/ACE/examples/APG/Timers/Alarm.cpp
index c12d39b367d..5ed17fc9c1a 100644
--- a/ACE/examples/APG/Timers/Alarm.cpp
+++ b/ACE/examples/APG/Timers/Alarm.cpp
@@ -18,7 +18,7 @@ public:
virtual int handle_timeout (const ACE_Time_Value &,
const void *arg)
{
- ACE_TRACE (ACE_TEXT ("CB::handle_timeout"));
+ ACE_TRACE ("CB::handle_timeout");
const int *val = static_cast<const int*> (arg);
ACE_ASSERT ((*val) == id_);
diff --git a/ACE/examples/APG/Timers/CB.cpp b/ACE/examples/APG/Timers/CB.cpp
index 0a86ae7edeb..0e4c352e12e 100644
--- a/ACE/examples/APG/Timers/CB.cpp
+++ b/ACE/examples/APG/Timers/CB.cpp
@@ -6,14 +6,14 @@
CB::CB () : count_(0)
{
- ACE_TRACE (ACE_TEXT ("CB::CB"));
+ ACE_TRACE ("CB::CB");
}
// Listing 1 code/ch20
int CB::handle_timeout (const ACE_Time_Value &,
const void *arg)
{
- ACE_TRACE (ACE_TEXT ("CB::handle_timeout"));
+ ACE_TRACE ("CB::handle_timeout");
const int *val = static_cast<const int*> (arg);
ACE_ASSERT ((*val) == timerID_);
@@ -22,12 +22,12 @@ int CB::handle_timeout (const ACE_Time_Value &,
if (count_ == 5)
{
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Reseting interval for timer %d\n"),
timerID_));
// New interval is 10 ms.
- ACE_Time_Value interval (0L, 1000L);
+ ACE_Time_Value interval (0L, 1000L);
int status = Timer::instance ()->reset_interval
(timerID_, interval);
#if defined (ACE_NDEBUG)
@@ -51,20 +51,20 @@ int CB::handle_timeout (const ACE_Time_Value &,
void
CB::setID (long timerID)
{
- ACE_TRACE (ACE_TEXT ("CB::setID"));
+ ACE_TRACE ("CB::setID");
timerID_ = timerID;
}
long
CB::getID (void)
{
- ACE_TRACE (ACE_TEXT ("CB::getID"));
+ ACE_TRACE ("CB::getID");
return timerID_;
}
int
CB::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
{
- ACE_TRACE (ACE_TEXT ("CB::handle_close"));
+ ACE_TRACE ("CB::handle_close");
return 0;
}
diff --git a/ACE/examples/APG/Timers/PCB.cpp b/ACE/examples/APG/Timers/PCB.cpp
index 62d678d50ba..0d4dcad3dff 100644
--- a/ACE/examples/APG/Timers/PCB.cpp
+++ b/ACE/examples/APG/Timers/PCB.cpp
@@ -6,7 +6,7 @@
PCB::PCB() : count_(0)
{
- ACE_TRACE (ACE_TEXT ("PCB::PCB"));
+ ACE_TRACE ("PCB::PCB");
}
PCB::~PCB()
@@ -15,7 +15,7 @@ PCB::~PCB()
int PCB::handleEvent (const void *arg)
{
- ACE_TRACE (ACE_TEXT ("PCB::handle_timeout"));
+ ACE_TRACE ("PCB::handle_timeout");
const int *val = static_cast<const int*> (arg);
ACE_ASSERT ((*val) == timerID_);
@@ -53,27 +53,27 @@ int PCB::handleEvent (const void *arg)
void
PCB::setID (long timerID)
{
- ACE_TRACE (ACE_TEXT ("PCB::setID"));
+ ACE_TRACE ("PCB::setID");
timerID_ = timerID;
}
long
PCB::getID (void) const
{
- ACE_TRACE (ACE_TEXT ("PCB::getID"));
+ ACE_TRACE ("PCB::getID");
return timerID_;
}
int
PCB::handleClose (void)
{
- ACE_TRACE (ACE_TEXT ("PCB::handle_close"));
+ ACE_TRACE ("PCB::handleClose");
return 0;
}
int
PCB::handleCancel (void)
{
- ACE_TRACE (ACE_TEXT ("PCB::handleCancel"));
+ ACE_TRACE ("PCB::handleCancel");
return 0;
}
diff --git a/ACE/examples/APG/Timers/PCB.h b/ACE/examples/APG/Timers/PCB.h
index 7fdb9d2d1cf..4bd223b3c68 100644
--- a/ACE/examples/APG/Timers/PCB.h
+++ b/ACE/examples/APG/Timers/PCB.h
@@ -19,7 +19,7 @@ public:
virtual int handleEvent (const void *arg);
virtual int handleCancel (void);
virtual int handleClose (void);
-
+
private:
long timerID_;
int count_;
diff --git a/ACE/examples/APG/Timers/PTimerDispatcher.cpp b/ACE/examples/APG/Timers/PTimerDispatcher.cpp
index 405c5771789..9ac949814ac 100644
--- a/ACE/examples/APG/Timers/PTimerDispatcher.cpp
+++ b/ACE/examples/APG/Timers/PTimerDispatcher.cpp
@@ -4,7 +4,7 @@
void PTimer_Dispatcher::wait_for_event (void)
{
- ACE_TRACE (ACE_TEXT ("PTimer_Dispatcher::wait_for_event"));
+ ACE_TRACE ("PTimer_Dispatcher::wait_for_event");
while (1)
{
@@ -33,7 +33,7 @@ PTimer_Dispatcher::schedule (PCB *cb,
const ACE_Time_Value &abs_time,
const ACE_Time_Value &interval)
{
- ACE_TRACE (ACE_TEXT ("PTimer_Dispatcher::schedule_timer"));
+ ACE_TRACE ("PTimer_Dispatcher::schedule_timer");
return this->timer_queue_->schedule
(cb, arg, abs_time, interval);
@@ -43,13 +43,13 @@ int
PTimer_Dispatcher::cancel (PCB *cb,
int dont_call_handle_close)
{
- ACE_TRACE (ACE_TEXT ("PTimer_Dispatcher::cancel"));
+ ACE_TRACE ("PTimer_Dispatcher::cancel");
return timer_queue_->cancel (cb, dont_call_handle_close);
}
void PTimer_Dispatcher::set (PTimerQueue *timer_queue)
{
- ACE_TRACE (ACE_TEXT ("PTimer_Dispatcher::set"));
+ ACE_TRACE ("PTimer_Dispatcher::set");
timer_queue_ = timer_queue;
}
@@ -58,7 +58,7 @@ int
PTimer_Dispatcher::reset_interval (long timer_id,
const ACE_Time_Value &interval)
{
- ACE_TRACE (ACE_TEXT ("PTimer_Dispatcher::reset_interval"));
+ ACE_TRACE ("PTimer_Dispatcher::reset_interval");
return timer_queue_->reset_interval (timer_id, interval);
}
diff --git a/ACE/examples/APG/Timers/Task.cpp b/ACE/examples/APG/Timers/Task.cpp
index c5ab6b4591c..f4c846c644f 100644
--- a/ACE/examples/APG/Timers/Task.cpp
+++ b/ACE/examples/APG/Timers/Task.cpp
@@ -19,7 +19,7 @@ public:
virtual int handle_timeout (const ACE_Time_Value &,
const void *arg)
{
- ACE_TRACE (ACE_TEXT ("CB::handle_timeout"));
+ ACE_TRACE ("CB::handle_timeout");
const int *val = static_cast<const int*> (arg);
ACE_ASSERT((*val) == id_);
diff --git a/ACE/examples/APG/Timers/TimerDispatcher.cpp b/ACE/examples/APG/Timers/TimerDispatcher.cpp
index 818d762b738..6455c0712e8 100644
--- a/ACE/examples/APG/Timers/TimerDispatcher.cpp
+++ b/ACE/examples/APG/Timers/TimerDispatcher.cpp
@@ -4,7 +4,7 @@
// Listing 1 code/ch20
void Timer_Dispatcher::wait_for_event (void)
{
- ACE_TRACE (ACE_TEXT ("Timer_Dispatcher::wait_for_event"));
+ ACE_TRACE ("Timer_Dispatcher::wait_for_event");
while (1)
{
@@ -34,7 +34,7 @@ Timer_Dispatcher::schedule (ACE_Event_Handler *cb,
const ACE_Time_Value &abs_time,
const ACE_Time_Value &interval)
{
- ACE_TRACE (ACE_TEXT ("Timer_Dispatcher::schedule_timer"));
+ ACE_TRACE ("Timer_Dispatcher::schedule_timer");
return this->timer_queue_->schedule
(cb, arg, abs_time, interval);
@@ -45,14 +45,14 @@ int
Timer_Dispatcher::cancel (ACE_Event_Handler *cb,
int dont_call_handle_close)
{
- ACE_TRACE (ACE_TEXT ("Timer_Dispatcher::cancel"));
+ ACE_TRACE ("Timer_Dispatcher::cancel");
return timer_queue_->cancel (cb, dont_call_handle_close);
}
// Listing 3
// Listing 4 code/ch20
void Timer_Dispatcher::set (ACE_Timer_Queue *timer_queue)
{
- ACE_TRACE (ACE_TEXT ("Timer_Dispatcher::set"));
+ ACE_TRACE ("Timer_Dispatcher::set");
timer_queue_ = timer_queue;
}
@@ -62,7 +62,7 @@ int
Timer_Dispatcher::reset_interval (long timer_id,
const ACE_Time_Value &interval)
{
- ACE_TRACE (ACE_TEXT ("Timer_Dispatcher::reset_interval"));
+ ACE_TRACE ("Timer_Dispatcher::reset_interval");
return timer_queue_->reset_interval(timer_id, interval);
}
diff --git a/ACE/examples/APG/Timers/Upcall.cpp b/ACE/examples/APG/Timers/Upcall.cpp
index cb00ae6113a..c5f29f9fd66 100644
--- a/ACE/examples/APG/Timers/Upcall.cpp
+++ b/ACE/examples/APG/Timers/Upcall.cpp
@@ -15,7 +15,7 @@ UpcallHandler::timeout (PTimerQueue &,
int /* recurring_timer */,
const ACE_Time_Value &)
{
- ACE_TRACE (ACE_TEXT ("UpcallHandler::timeout"));
+ ACE_TRACE ("UpcallHandler::timeout");
return (*handler).handleEvent (arg);
}
@@ -27,7 +27,7 @@ int
UpcallHandler::cancellation (PTimerQueue &,
PCB *handler)
{
- ACE_TRACE (ACE_TEXT ("UpcallHandler::cancellation"));
+ ACE_TRACE ("UpcallHandler::cancellation");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Handler %d has been cancelled\n"),
@@ -43,7 +43,7 @@ UpcallHandler::deletion (PTimerQueue &,
PCB *handler,
const void *)
{
- ACE_TRACE (ACE_TEXT ("UpcallHandler::deletion"));
+ ACE_TRACE ("UpcallHandler::deletion");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Handler %d has been deleted\n"),
@@ -61,7 +61,7 @@ UpcallHandler::registration (PTimerQueue &,
PCB *handler,
const void *)
{
- ACE_TRACE (ACE_TEXT ("UpcallHandler::registration"));
+ ACE_TRACE ("UpcallHandler::registration");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Handler %d has been registered.\n"),
@@ -80,7 +80,7 @@ UpcallHandler::preinvoke (PTimerQueue &,
const ACE_Time_Value &,
const void *&)
{
- ACE_TRACE (ACE_TEXT ("UpcallHandler::preinvoke"));
+ ACE_TRACE ("UpcallHandler::preinvoke");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Handler %d is about to upcalled.\n"),
@@ -99,7 +99,7 @@ UpcallHandler::postinvoke (PTimerQueue &,
const ACE_Time_Value &,
const void *)
{
- ACE_TRACE (ACE_TEXT ("UpcallHandler::postinvoke"));
+ ACE_TRACE ("UpcallHandler::postinvoke");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Handler %d returned from upcall.\n"),
@@ -114,7 +114,7 @@ UpcallHandler::cancel_type (PTimerQueue &,
int dont_call,
int &)
{
- ACE_TRACE (ACE_TEXT ("UpcallHandler::cancel_type"));
+ ACE_TRACE ("UpcallHandler::cancel_type");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Handler %d has been cancelled\n"),
@@ -131,7 +131,7 @@ UpcallHandler::cancel_timer (PTimerQueue &,
int dont_call,
int)
{
- ACE_TRACE (ACE_TEXT ("UpcallHandler::cancel_timer"));
+ ACE_TRACE ("UpcallHandler::cancel_timer");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Handler %d has been cancelled\n"),
diff --git a/ACE/examples/ASX/CCM_App/CCM_App.cpp b/ACE/examples/ASX/CCM_App/CCM_App.cpp
index 53cca03e460..85f73c75b60 100644
--- a/ACE/examples/ASX/CCM_App/CCM_App.cpp
+++ b/ACE/examples/ASX/CCM_App/CCM_App.cpp
@@ -7,7 +7,7 @@
#include "ace/Module.h"
#include "ace/svc_export.h"
-ACE_RCSID(CCM_App, CCM_App, "$Id$")
+
typedef ACE_Task<ACE_SYNCH> MT_Task;
typedef ACE_Stream<ACE_SYNCH> MT_Stream;
diff --git a/ACE/examples/ASX/CCM_App/SC_Client.cpp b/ACE/examples/ASX/CCM_App/SC_Client.cpp
index fbd4439784a..6e28de8dfac 100644
--- a/ACE/examples/ASX/CCM_App/SC_Client.cpp
+++ b/ACE/examples/ASX/CCM_App/SC_Client.cpp
@@ -2,7 +2,7 @@
#include "ace/ACE.h"
-ACE_RCSID(CCM_App, SC_Client, "$Id$")
+
// Pretty simple, eh? ;-)
diff --git a/ACE/examples/ASX/CCM_App/SC_Server.cpp b/ACE/examples/ASX/CCM_App/SC_Server.cpp
index 4a1256cf7f4..305e3ebd015 100644
--- a/ACE/examples/ASX/CCM_App/SC_Server.cpp
+++ b/ACE/examples/ASX/CCM_App/SC_Server.cpp
@@ -10,7 +10,7 @@
#include "ace/Reactor.h"
#include "ace/Sig_Adapter.h"
-ACE_RCSID(CCM_App, SC_Server, "$Id$")
+
class Event_Handler : public ACE_Event_Handler
{
@@ -82,5 +82,6 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Perform logging service until we receive SIGINT.
ACE_Reactor::instance ()->run_reactor_event_loop ();
+ handler.remove_stdin_handler (ACE_Reactor::instance (),ACE_Thread_Manager::instance ());
return 0;
}
diff --git a/ACE/examples/ASX/CCM_App/svc.conf b/ACE/examples/ASX/CCM_App/svc.conf
index 6ec1bafa39e..ed1071a5945 100644
--- a/ACE/examples/ASX/CCM_App/svc.conf
+++ b/ACE/examples/ASX/CCM_App/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
static ACE_Service_Manager "-d -p 4911"
dynamic Test_Task Service_Object *CCM_App:_make_Test_Task() "-p 3000"
diff --git a/ACE/examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp b/ACE/examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp
index cb448367e61..4e29339d716 100644
--- a/ACE/examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp
+++ b/ACE/examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp
@@ -7,7 +7,7 @@
#include "Consumer_Router.h"
#include "Options.h"
-ACE_RCSID(Event_Server, Consumer_Router, "$Id$")
+
Consumer_Router::Consumer_Router (Peer_Router_Context *prc)
: Peer_Router (prc)
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/Event_Server/Event_Server/Event_Analyzer.cpp b/ACE/examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp
index a70961a9eaa..0300f6d7133 100644
--- a/ACE/examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp
+++ b/ACE/examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp
@@ -5,7 +5,7 @@
#include "Options.h"
#include "Event_Analyzer.h"
-ACE_RCSID(Event_Server, Event_Analyzer, "$Id$")
+
int
Event_Analyzer::open (void *)
@@ -71,12 +71,12 @@ Event_Analyzer::fini (void)
int
Event_Analyzer::info (ACE_TCHAR **strp, size_t length) const
{
- const ACE_TCHAR *mod_name = this->name ();
+ const ACE_TCHAR *module_name = this->name ();
- if (*strp == 0 && (*strp = ACE_OS::strdup (mod_name)) == 0)
+ if (*strp == 0 && (*strp = ACE_OS::strdup (module_name)) == 0)
return -1;
else
- ACE_OS::strncpy (*strp, mod_name, length);
-
- return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (mod_name));
+ ACE_OS::strncpy (*strp, module_name, length);
+
+ return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (module_name));
}
diff --git a/ACE/examples/ASX/Event_Server/Event_Server/Options.cpp b/ACE/examples/ASX/Event_Server/Event_Server/Options.cpp
index 16ce65aa5fd..10844f8ae07 100644
--- a/ACE/examples/ASX/Event_Server/Event_Server/Options.cpp
+++ b/ACE/examples/ASX/Event_Server/Event_Server/Options.cpp
@@ -10,7 +10,7 @@
#include "Options.h"
-ACE_RCSID(Event_Server, Options, "$Id$")
+
/* static */
Options *Options::instance_ = 0;
diff --git a/ACE/examples/ASX/Event_Server/Event_Server/Options.inl b/ACE/examples/ASX/Event_Server/Event_Server/Options.inl
index 87ff395c503..f6a109c05dc 100644
--- a/ACE/examples/ASX/Event_Server/Event_Server/Options.inl
+++ b/ACE/examples/ASX/Event_Server/Event_Server/Options.inl
@@ -7,7 +7,7 @@
// inline, not ACE_INLINE.
// FUZZ: disable check_for_inline
-inline void
+inline void
Options::supplier_port (u_short port)
{
this->supplier_port_ = port;
@@ -19,7 +19,7 @@ Options::supplier_port (void)
return this->supplier_port_;
}
-inline void
+inline void
Options::consumer_port (u_short port)
{
this->consumer_port_ = port;
@@ -55,55 +55,55 @@ Options::thr_count (void)
return this->thr_count_;
}
-inline void
+inline void
Options::initial_queue_length (size_t length)
{
this->initial_queue_length_ = length;
}
-inline size_t
+inline size_t
Options::initial_queue_length (void)
{
return this->initial_queue_length_;
}
-inline void
+inline void
Options::high_water_mark (size_t size)
{
this->high_water_mark_ = size;
}
-inline size_t
+inline size_t
Options::high_water_mark (void)
{
return this->high_water_mark_;
}
-inline void
+inline void
Options::low_water_mark (size_t size)
{
this->low_water_mark_ = size;
}
-inline size_t
+inline size_t
Options::low_water_mark (void)
{
return this->low_water_mark_;
}
-inline void
+inline void
Options::message_size (size_t size)
{
this->message_size_ = size;
}
-inline size_t
+inline size_t
Options::message_size (void)
{
return this->message_size_;
}
-inline void
+inline void
Options::iterations (size_t n)
{
this->iterations_ = n;
@@ -115,7 +115,7 @@ Options::iterations (void)
return this->iterations_;
}
-inline void
+inline void
Options::t_flags (long flag)
{
this->t_flags_ |= flag;
@@ -127,13 +127,13 @@ Options::t_flags (void)
return this->t_flags_;
}
-inline int
+inline int
Options::debug (void)
{
return this->debugging_;
}
-inline int
+inline int
Options::verbose (void)
{
return this->verbosity_;
diff --git a/ACE/examples/ASX/Event_Server/Event_Server/Peer_Router.cpp b/ACE/examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
index 9fced9b8059..8798d82b8ed 100644
--- a/ACE/examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
+++ b/ACE/examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
@@ -8,7 +8,7 @@
#include "Options.h"
#include "Peer_Router.h"
-ACE_RCSID(Event_Server, Peer_Router, "$Id$")
+
// Send the <ACE_Message_Block> to all the peers. Note that in a
// "real" application this logic would most likely be more selective,
diff --git a/ACE/examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp b/ACE/examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp
index 0e0f45e386f..8504239a615 100644
--- a/ACE/examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp
+++ b/ACE/examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp
@@ -7,7 +7,7 @@
#include "Supplier_Router.h"
#include "Options.h"
-ACE_RCSID(Event_Server, Supplier_Router, "$Id$")
+
// Handle outgoing messages in a separate thread.
diff --git a/ACE/examples/ASX/Event_Server/Event_Server/event_server.cpp b/ACE/examples/ASX/Event_Server/Event_Server/event_server.cpp
index 3858bad1fc2..a3d6150d966 100644
--- a/ACE/examples/ASX/Event_Server/Event_Server/event_server.cpp
+++ b/ACE/examples/ASX/Event_Server/Event_Server/event_server.cpp
@@ -12,10 +12,6 @@
#include "ace/Sig_Adapter.h"
#include "ace/Stream.h"
-ACE_RCSID (Event_Server,
- event_server,
- "$Id$")
-
// Typedef these components to handle multi-threading correctly.
typedef ACE_Stream<ACE_SYNCH> MT_Stream;
typedef ACE_Module<ACE_SYNCH> MT_Module;
diff --git a/ACE/examples/ASX/Event_Server/README b/ACE/examples/ASX/Event_Server/README
index 262b7ee9633..6038355a53e 100644
--- a/ACE/examples/ASX/Event_Server/README
+++ b/ACE/examples/ASX/Event_Server/README
@@ -1,10 +1,11 @@
This subdirectory illustrates a number of the ACE ASX framework
features using an ACE_Stream application called the Event Server. For
more information on the design and use of the ACE ASX framework please
-see http://www.cs.wustl.edu/~schmidt/C++-USENIX-94.ps.gz and
-http://www.cs.wustl.edu/~schmidt/ACE-concurrency.ps.gz. For more
+see http://www.cs.wustl.edu/~schmidt/PDF/C++-USENIX-94.pdf and
+http://www.cs.wustl.edu/~schmidt/PDF/ACE-concurrency.pdf. For more
information on the Event Server, please see
-http://www.cs.wustl.edu/~schmidt/DSEJ-94.ps.gz.
+
+http://www.cs.wustl.edu/~schmidt/PDF/DSEJ-94.pdf
The Event Server example works as follows:
diff --git a/ACE/examples/ASX/Event_Server/Transceiver/transceiver.cpp b/ACE/examples/ASX/Event_Server/Transceiver/transceiver.cpp
index 56327d405bd..2510a478dfc 100644
--- a/ACE/examples/ASX/Event_Server/Transceiver/transceiver.cpp
+++ b/ACE/examples/ASX/Event_Server/Transceiver/transceiver.cpp
@@ -15,10 +15,6 @@
#include "transceiver.h"
-ACE_RCSID (Transceiver,
- transceiver,
- "$Id$")
-
// Handle the command-line arguments.
int
diff --git a/ACE/examples/ASX/Message_Queue/bounded_buffer.cpp b/ACE/examples/ASX/Message_Queue/bounded_buffer.cpp
index a3b7abbf13a..c9c4ac359ca 100644
--- a/ACE/examples/ASX/Message_Queue/bounded_buffer.cpp
+++ b/ACE/examples/ASX/Message_Queue/bounded_buffer.cpp
@@ -10,7 +10,7 @@
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Message_Queue, bounded_buffer, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -28,7 +28,7 @@ producer (ACE_Message_Queue<ACE_MT_SYNCH> *msg_queue)
for (int n; ; )
{
// Allocate a new message.
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block (BUFSIZ), 0);
@@ -73,7 +73,7 @@ static void *consumer (ACE_Message_Queue<ACE_MT_SYNCH> *msg_queue)
for (;;)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_Time_Value timeout (ACE_OS::time (0) + 4, 0); // Wait for upto 4 seconds
diff --git a/ACE/examples/ASX/Message_Queue/buffer_stream.cpp b/ACE/examples/ASX/Message_Queue/buffer_stream.cpp
index a9c528bf409..40c804637c9 100644
--- a/ACE/examples/ASX/Message_Queue/buffer_stream.cpp
+++ b/ACE/examples/ASX/Message_Queue/buffer_stream.cpp
@@ -19,7 +19,7 @@
#include "ace/Task.h"
#include "ace/Truncate.h"
-ACE_RCSID(Message_Queue, buffer_stream, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/ASX/Message_Queue/priority_buffer.cpp b/ACE/examples/ASX/Message_Queue/priority_buffer.cpp
index a71e8653ab9..6d3cefa4b82 100644
--- a/ACE/examples/ASX/Message_Queue/priority_buffer.cpp
+++ b/ACE/examples/ASX/Message_Queue/priority_buffer.cpp
@@ -12,7 +12,7 @@
#include "ace/Service_Config.h"
#include "ace/Truncate.h"
-ACE_RCSID(Message_Queue, priority_buffer, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -36,7 +36,7 @@ consumer (ACE_Message_Queue<ACE_MT_SYNCH> *msg_queue)
for (;;)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
if (msg_queue->dequeue_head (mb) == -1)
break;
@@ -75,7 +75,7 @@ producer (ACE_Message_Queue<ACE_MT_SYNCH> *msg_queue)
// Allocate a new buffer.
char *buffer = rb.read ('\n');
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
if (buffer == 0)
{
diff --git a/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp b/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp
index 4b0b25ed8fb..daa1e4b04ea 100644
--- a/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp
+++ b/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp
@@ -6,7 +6,7 @@
#include "Consumer_Router.h"
#include "Options.h"
-ACE_RCSID(UPIPE_Event_Server, Consumer_Router, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -133,7 +133,7 @@ Consumer_Router::info (ACE_TCHAR **strp, size_t length) const
return -1;
else
ACE_OS::strncpy (*strp, module_name, length);
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (module_name));
}
diff --git a/ACE/examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp b/ACE/examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp
index 915f9e79cce..3de85175592 100644
--- a/ACE/examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp
+++ b/ACE/examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp
@@ -4,7 +4,7 @@
#include "ace/Truncate.h"
#include "Event_Analyzer.h"
-ACE_RCSID(UPIPE_Event_Server, Event_Analyzer, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -28,7 +28,7 @@ Event_Analyzer::control (ACE_Message_Block *mb)
switch (cmd = ioc->cmd ())
{
- case ACE_IO_Cntl_Msg::SET_LWM:
+ case ACE_IO_Cntl_Msg::SET_LWM:
case ACE_IO_Cntl_Msg::SET_HWM:
this->water_marks (cmd, *(size_t *) mb->cont ()->rd_ptr ());
break;
@@ -38,7 +38,7 @@ Event_Analyzer::control (ACE_Message_Block *mb)
return 0;
}
-int
+int
Event_Analyzer::put (ACE_Message_Block *mb, ACE_Time_Value *)
{
if (mb->msg_type () == ACE_Message_Block::MB_IOCTL)
@@ -47,29 +47,29 @@ Event_Analyzer::put (ACE_Message_Block *mb, ACE_Time_Value *)
return this->put_next (mb);
}
-int
+int
Event_Analyzer::init (int, ACE_TCHAR *[])
{
return 0;
}
-int
+int
Event_Analyzer::fini (void)
{
return 0;
}
-int
+int
Event_Analyzer::info (ACE_TCHAR **strp, size_t length) const
{
- const ACE_TCHAR *mod_name = this->name ();
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (mod_name)) == 0)
+ const ACE_TCHAR *module_name = this->name ();
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (module_name)) == 0)
return -1;
else
- ACE_OS::strncpy (*strp, mod_name, length);
-
- return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (mod_name));
+ ACE_OS::strncpy (*strp, module_name, length);
+
+ return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (module_name));
}
#endif /* ACE_HAS_THREADS */
diff --git a/ACE/examples/ASX/UPIPE_Event_Server/Options.cpp b/ACE/examples/ASX/UPIPE_Event_Server/Options.cpp
index 0f7cccb2365..aa143b24b30 100644
--- a/ACE/examples/ASX/UPIPE_Event_Server/Options.cpp
+++ b/ACE/examples/ASX/UPIPE_Event_Server/Options.cpp
@@ -10,7 +10,7 @@
#include "Options.h"
-ACE_RCSID(UPIPE_Event_Server, Options, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/ASX/UPIPE_Event_Server/Options.inl b/ACE/examples/ASX/UPIPE_Event_Server/Options.inl
index af04f73eb26..024e8d7f4d2 100644
--- a/ACE/examples/ASX/UPIPE_Event_Server/Options.inl
+++ b/ACE/examples/ASX/UPIPE_Event_Server/Options.inl
@@ -8,7 +8,7 @@
// FUZZ: disable check_for_inline
-inline void
+inline void
Options::supplier_port (const ACE_TCHAR *port)
{
this->supplier_port_ = port;
@@ -20,7 +20,7 @@ Options::supplier_port (void)
return this->supplier_port_;
}
-inline void
+inline void
Options::supplier_file (const ACE_TCHAR *file)
{
this->supplier_file_ = file;
@@ -32,7 +32,7 @@ Options::supplier_file (void)
return this->supplier_file_;
}
-inline void
+inline void
Options::consumer_file (const ACE_TCHAR *file)
{
this->consumer_file_ = file;
@@ -44,7 +44,7 @@ Options::consumer_file (void)
return this->consumer_file_;
}
-inline void
+inline void
Options::consumer_port (const ACE_TCHAR *port)
{
this->consumer_port_ = port;
@@ -80,55 +80,55 @@ Options::thr_count (void)
return this->thr_count_;
}
-inline void
+inline void
Options::initial_queue_length (size_t length)
{
this->initial_queue_length_ = length;
}
-inline size_t
+inline size_t
Options::initial_queue_length (void)
{
return this->initial_queue_length_;
}
-inline void
+inline void
Options::high_water_mark (size_t size)
{
this->high_water_mark_ = size;
}
-inline size_t
+inline size_t
Options::high_water_mark (void)
{
return this->high_water_mark_;
}
-inline void
+inline void
Options::low_water_mark (size_t size)
{
this->low_water_mark_ = size;
}
-inline size_t
+inline size_t
Options::low_water_mark (void)
{
return this->low_water_mark_;
}
-inline void
+inline void
Options::message_size (size_t size)
{
this->message_size_ = size;
}
-inline size_t
+inline size_t
Options::message_size (void)
{
return this->message_size_;
}
-inline void
+inline void
Options::iterations (size_t n)
{
this->iterations_ = n;
@@ -140,7 +140,7 @@ Options::iterations (void)
return this->iterations_;
}
-inline void
+inline void
Options::t_flags (long flag)
{
this->t_flags_ |= flag;
@@ -152,13 +152,13 @@ Options::t_flags (void)
return this->t_flags_;
}
-inline int
+inline int
Options::debug (void)
{
return this->debugging_;
}
-inline int
+inline int
Options::verbose (void)
{
return this->verbosity_;
diff --git a/ACE/examples/ASX/UPIPE_Event_Server/Peer_Router.cpp b/ACE/examples/ASX/UPIPE_Event_Server/Peer_Router.cpp
index 65eb65a5609..174dbe83f2e 100644
--- a/ACE/examples/ASX/UPIPE_Event_Server/Peer_Router.cpp
+++ b/ACE/examples/ASX/UPIPE_Event_Server/Peer_Router.cpp
@@ -10,7 +10,7 @@
#include "Peer_Router.h"
#include "Options.h"
-ACE_RCSID(UPIPE_Event_Server, Peer_Router, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp b/ACE/examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp
index 50ddc87998a..6030c97a4c3 100644
--- a/ACE/examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp
+++ b/ACE/examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp
@@ -6,7 +6,7 @@
#include "Options.h"
#include "Supplier_Router.h"
-ACE_RCSID(UPIPE_Event_Server, Supplier_Router, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -132,7 +132,7 @@ Supplier_Router::info (ACE_TCHAR **strp, size_t length) const
return -1;
else
ACE_OS::strncpy (*strp, module_name, length);
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (module_name));
}
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/ASX/UPIPE_Event_Server/event_server.cpp b/ACE/examples/ASX/UPIPE_Event_Server/event_server.cpp
index 99c8e80fd81..c4b6b6f3ae0 100644
--- a/ACE/examples/ASX/UPIPE_Event_Server/event_server.cpp
+++ b/ACE/examples/ASX/UPIPE_Event_Server/event_server.cpp
@@ -19,10 +19,6 @@
#include "ace/Sig_Adapter.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID (UPIPE_Event_Server,
- event_server,
- "$Id$")
-
#if defined (ACE_HAS_THREADS)
typedef ACE_Stream<ACE_MT_SYNCH> MT_Stream;
@@ -238,7 +234,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_TEXT ("push (setting low watermark)")), -1);
wm = ACE_Utils::truncate_cast<int> (options.high_water_mark ());
-
+
if (event_server.control (ACE_IO_Cntl_Msg::SET_HWM, &wm) == -1)
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"),
ACE_TEXT ("push (setting high watermark)")), -1);
diff --git a/ACE/examples/Bounded_Packet_Relay/BPR_Drivers.cpp b/ACE/examples/Bounded_Packet_Relay/BPR_Drivers.cpp
index dde26ed3ef9..38d50a014bd 100644
--- a/ACE/examples/Bounded_Packet_Relay/BPR_Drivers.cpp
+++ b/ACE/examples/Bounded_Packet_Relay/BPR_Drivers.cpp
@@ -1,32 +1,23 @@
-// $Id$
-
-// ============================================================================
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// BPR_Driver.cpp
-//
-// = DESCRIPTION
-// This code builds an abstraction to factor out common code for
-// the different implementations of the Timer_Queue.
-//
-// = AUTHORS
-// Chris Gill <cdgill@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// Based on the Timer Queue Test example written by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file BPR_Drivers.cpp
+ *
+ * $Id$
+ *
+ * This code builds an abstraction to factor out common code for
+ * the different implementations of the Timer_Queue.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> Based on the Timer Queue Test example written by Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_sys_time.h"
#include "BPR_Drivers.h"
-ACE_RCSID(Bounded_Packet_Relay, BPR_Drivers, "$Id$")
+
// Constructor.
diff --git a/ACE/examples/Bounded_Packet_Relay/BPR_Drivers.h b/ACE/examples/Bounded_Packet_Relay/BPR_Drivers.h
index f39a544c512..8c1ffdbb3b2 100644
--- a/ACE/examples/Bounded_Packet_Relay/BPR_Drivers.h
+++ b/ACE/examples/Bounded_Packet_Relay/BPR_Drivers.h
@@ -1,30 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// BPR_Drivers.h
-//
-// = DESCRIPTION
-// This code builds abstractions to factor out common code from
-// the different possible implementations of the Timer_Queue based
-// bounded packet relay example.
-//
-// = AUTHORS
-// Chris Gill <cdgill@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// Based on the Timer Queue Test example written by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file BPR_Drivers.h
+ *
+ * $Id$
+ *
+ * This code builds abstractions to factor out common code from
+ * the different possible implementations of the Timer_Queue based
+ * bounded packet relay example.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> Based on the Timer Queue Test example written by Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _BPR_DRIVERS_H_
#define _BPR_DRIVERS_H_
@@ -42,20 +32,22 @@
class Input_Device_Wrapper_Base;
class Output_Device_Wrapper_Base;
+/**
+ * @class Bounded_Packet_Relay
+ *
+ * @brief This class defines a packet relay abstraction for a
+ * transmission bounded external commands to start and end the
+ * transmission. The transmission may be bounded by the number
+ * of packets to send, the dration of the transmission, or any
+ * other factors.
+ *
+ * The relay abstraction implemented by this class registers a
+ * callback command with an input device wrapper, and relays
+ * input to an output device at a pace specified in the start
+ * transmission call.
+ */
class Bounded_Packet_Relay
{
- // = TITLE
- // This class defines a packet relay abstraction for a
- // transmission bounded external commands to start and end the
- // transmission. The transmission may be bounded by the number
- // of packets to send, the dration of the transmission, or any
- // other factors.
- //
- // = DESCRIPTION
- // The relay abstraction implemented by this class registers a
- // callback command with an input device wrapper, and relays
- // input to an output device at a pace specified in the start
- // transmission call.
public:
// = Enumerates possible status values for a transmission.
enum Transmission_Status
@@ -74,214 +66,220 @@ public:
DEFAULT_LWM = 0x7FFFFFFF
};
+ /// Command entry point type definition.
typedef int (Bounded_Packet_Relay::*ACTION) (void *);
- // Command entry point type definition.
// = Initialization method
+ /// Constructor.
Bounded_Packet_Relay (ACE_Thread_Manager *input_task_mgr,
Input_Device_Wrapper_Base *input_wrapper,
Output_Device_Wrapper_Base *output_wrapper);
- // Constructor.
+ /// Destructor.
virtual ~Bounded_Packet_Relay (void);
- // Destructor.
+ /// Requests output be sent to output device.
int send_input (void);
- // Requests output be sent to output device.
+ /// Requests a transmission be started.
int start_transmission (u_long packet_count,
u_long arrival_period,
int logging_level);
- // Requests a transmission be started.
+ /// Requests a transmission be ended.
int end_transmission (Transmission_Status status);
- // Requests a transmission be ended.
+ /// Requests a report of statistics from the last transmission.
int report_statistics (void);
- // Requests a report of statistics from the last transmission.
// = Command accessible entry points.
+ /// Public entry point to which to push input.
int receive_input (void *);
- // Public entry point to which to push input.
// = Accessors and mutators for relay settings
+ /// Get high water mark for relay queue.
ACE_UINT32 queue_hwm (void);
- // Get high water mark for relay queue.
+ /// Set high water mark for relay queue.
void queue_hwm (ACE_UINT32 hwm);
- // Set high water mark for relay queue.
+ /// Get low water mark for relay queue.
ACE_UINT32 queue_lwm (void);
- // Get low water mark for relay queue.
+ /// Set low water mark for relay queue.
void queue_lwm (ACE_UINT32 lwm);
- // Set low water mark for relay queue.
private:
// = Concurrency Management.
+ /// flag for whether or not a transmission is active
int is_active_;
- // flag for whether or not a transmission is active
+ /// Thread manager for the input device task.
ACE_Thread_Manager * input_task_mgr_;
- // Thread manager for the input device task.
+ /// Pointer to the input device wrapper.
Input_Device_Wrapper_Base * input_wrapper_;
- // Pointer to the input device wrapper.
+ /// Pointer to the output device wrapper.
Output_Device_Wrapper_Base * output_wrapper_;
- // Pointer to the output device wrapper.
+ /// Queue used to buffer input messages.
ACE_Message_Queue<ACE_SYNCH> queue_;
- // Queue used to buffer input messages.
+ /// High water mark for relay queue.
ACE_UINT32 queue_hwm_;
- // High water mark for relay queue.
+ /// Low water mark for relay queue.
ACE_UINT32 queue_lwm_;
- // Low water mark for relay queue.
+ /// Lock for thread-safe synchronization of transmission startup and
+ /// termination.
ACE_SYNCH_MUTEX transmission_lock_;
- // Lock for thread-safe synchronization of transmission startup and
- // termination.
// = Transmission Statistics
+ /// Returns string corresponding to current status.
const char *status_msg (void);
- // Returns string corresponding to current status.
+ /// Number of transmissions sent.
u_long transmission_number_;
- // Number of transmissions sent.
+ /// Count of packets sent in the most recent transmission.
u_long packets_sent_;
- // Count of packets sent in the most recent transmission.
+ /// Status of the current or most recent transmission.
Transmission_Status status_;
- // Status of the current or most recent transmission.
+ /// Start time of the most recent transmission.
ACE_Time_Value transmission_start_;
- // Start time of the most recent transmission.
+ /// Ending time of the most recent transmission.
ACE_Time_Value transmission_end_;
- // Ending time of the most recent transmission.
};
+/**
+ * @class Input_Device_Wrapper_Base
+ *
+ * @brief This class defines an abstract base class for an input device
+ * wrapper that hides the details of the specific device and
+ * provides a consistent message passing interface without
+ * knowing anything about the implementation of the input device
+ * or the message receiver.
+ * The abstract base class ctor takes a command template object
+ * that is instantiated with the correct receiver and action
+ * types. This command object is used to send newly created input
+ * messages to the receiver.
+ * The abstract base class is designed to operate in an active
+ * "push" mode, sending input data to the receiver whenever the
+ * data is ready. The underlying device may be active, notifying
+ * the wrapper when data is ready, or may be passive in which
+ * case the wrapper must rely on a reactive and/or polling
+ * mechanism.
+ *
+ * Derived classes are responsible for filling in concrete
+ * definitions for the abstract message creation method and the
+ * svc method.
+ */
class Input_Device_Wrapper_Base : public ACE_Task_Base
{
- // = TITLE
- // This class defines an abstract base class for an input device
- // wrapper that hides the details of the specific device and
- // provides a consistent message passing interface without
- // knowing anything about the implementation of the input device
- // or the message receiver.
- //
- // The abstract base class ctor takes a command template object
- // that is instantiated with the correct receiver and action
- // types. This command object is used to send newly created input
- // messages to the receiver.
- //
- // The abstract base class is designed to operate in an active
- // "push" mode, sending input data to the receiver whenever the
- // data is ready. The underlying device may be active, notifying
- // the wrapper when data is ready, or may be passive in which
- // case the wrapper must rely on a reactive and/or polling
- // mechanism.
- //
- // = DESCRIPTION
- // Derived classes are responsible for filling in concrete
- // definitions for the abstract message creation method and the
- // svc method.
public:
// = Initialization and termination methods.
+ /// Constructor.
Input_Device_Wrapper_Base (ACE_Thread_Manager *input_task_mgr);
- // Constructor.
+ /// Destructor.
virtual ~Input_Device_Wrapper_Base ();
- // Destructor.
+ /// Sets send input message command in the input device driver
+ /// object.
int set_send_input_msg_cmd (ACE_Command_Base *send_input_msg_cmd);
- // Sets send input message command in the input device driver
- // object.
+ /// Sets period (in usecs) between when inputs are created.
int set_input_period (u_long input_period);
- // Sets period (in usecs) between when inputs are created.
+ /// Sets count of messages to send.
int set_send_count (long count);
- // Sets count of messages to send.
+ /**
+ * Requests that the input device stop sending messages and
+ * terminate its thread. Should return 1 if it will do so, 0 if it
+ * has already done so, or -1 if there is a problem doing so.
+ */
int request_stop (void);
- // Requests that the input device stop sending messages and
- // terminate its thread. Should return 1 if it will do so, 0 if it
- // has already done so, or -1 if there is a problem doing so.
+ /// This method runs the input device loop in the new thread.
virtual int svc (void);
- // This method runs the input device loop in the new thread.
+ /// Provides an abstract interface to allow modifying device
+ /// settings.
virtual int modify_device_settings (void *) = 0;
- // Provides an abstract interface to allow modifying device
- // settings.
protected:
+ /// Creates a new message block, carrying data read from the
+ /// underlying input device.
virtual ACE_Message_Block *create_input_message (void) = 0;
- // Creates a new message block, carrying data read from the
- // underlying input device.
+ /**
+ * Sends a newly created message block, carrying data read from the
+ * underlying input device, by passing a pointer to the message
+ * block to its command execution.
+ */
virtual int send_input_message (ACE_Message_Block *);
- // Sends a newly created message block, carrying data read from the
- // underlying input device, by passing a pointer to the message
- // block to its command execution.
+ /// Send newly created input message.
ACE_Command_Base *send_input_msg_cmd_;
- // Send newly created input message.
+ /// Period between when input values are produced (usecs).
u_long input_period_;
- // Period between when input values are produced (usecs).
+ /// Reactor used to multiplex input streams, timeouts.
ACE_Reactor reactor_;
- // Reactor used to multiplex input streams, timeouts.
+ /// Flag to indicate whether or not input object is
+ /// (and should remain) active.
int is_active_;
- // Flag to indicate whether or not input object is
- // (and should remain) active.
+ /// Count of messages to send before stopping (-1 indicates the
+ /// device should not stop).
long send_count_;
- // Count of messages to send before stopping (-1 indicates the
- // device should not stop).
+ /// Currently remaining count of messages to send before stopping
+ /// (-1 indicates the device should not stop).
long current_count_;
- // Currently remaining count of messages to send before stopping
- // (-1 indicates the device should not stop).
};
+/**
+ * @class Output_Device_Wrapper_Base
+ *
+ * @brief This class defines an abstract base class for an output device
+ * wrapper that hides the details of the specific device and
+ * provides a consistent write method interface without knowing
+ * anything about the implementation.
+ *
+ * The abstract methods write_output_message () and
+ * modify_device_settings () are defined in derived classes to
+ * write the contents of the passed message out the underlying
+ * output device, and update device settings, respectively.
+ */
class Output_Device_Wrapper_Base
{
- // = TITLE
- // This class defines an abstract base class for an output device
- // wrapper that hides the details of the specific device and
- // provides a consistent write method interface without knowing
- // anything about the implementation.
- //
- // = DESCRIPTION
- // The abstract methods write_output_message () and
- // modify_device_settings () are defined in derived classes to
- // write the contents of the passed message out the underlying
- // output device, and update device settings, respectively.
public:
virtual ~Output_Device_Wrapper_Base (void);
+ /// Writes contents of the passed message block out to the underlying
+ /// output device.
virtual int write_output_message (void *) = 0;
- // Writes contents of the passed message block out to the underlying
- // output device.
+ /// Provides an abstract interface to allow modifying device
+ /// settings.
virtual int modify_device_settings (void *) = 0;
- // Provides an abstract interface to allow modifying device
- // settings.
};
// include the templates
diff --git a/ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp b/ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp
index 6e597dfb9e5..2f6a78abcaa 100644
--- a/ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp
+++ b/ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp
@@ -1,27 +1,18 @@
-// $Id$
-
-// ============================================================================
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// BPR_Driver.cpp
-//
-// = DESCRIPTION
-// This code builds an abstraction to factor out common code for
-// the different implementations of the Timer_Queue.
-//
-// = AUTHORS
-// Chris Gill <cdgill@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// Based on the Timer Queue Test example written by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file BPR_Drivers_T.cpp
+ *
+ * $Id$
+ *
+ * This code builds an abstraction to factor out common code for
+ * the different implementations of the Timer_Queue.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> Based on the Timer Queue Test example written by Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _BPR_DRIVER_T_CPP_
#define _BPR_DRIVER_T_CPP_
@@ -32,7 +23,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Bounded_Packet_Relay, BPR_Drivers_T, "$Id$")
+
// Constructor.
diff --git a/ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.h b/ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.h
index 4d0ca6bdfb4..4de42942283 100644
--- a/ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.h
+++ b/ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.h
@@ -1,30 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// BPR_Drivers_T.h
-//
-// = DESCRIPTION
-// This code factors out common class templates for use in
-// the different possible implementations of the Timer_Queue
-// based bounded packet relay example.
-//
-// = AUTHORS
-// Chris Gill <cdgill@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// Based on the Timer Queue Test example written by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file BPR_Drivers_T.h
+ *
+ * $Id$
+ *
+ * This code factors out common class templates for use in
+ * the different possible implementations of the Timer_Queue
+ * based bounded packet relay example.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> Based on the Timer Queue Test example written by Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _BPR_DRIVERS_T_H_
#define _BPR_DRIVERS_T_H_
@@ -39,132 +29,138 @@
class Input_Device_Wrapper_Base;
class Output_Device_Wrapper_Base;
+/**
+ * @class Bounded_Packet_Relay_Driver
+ *
+ * @brief This abstract base class provides a simple abstraction for a
+ * test driver for the bounded packet relay example.
+ *
+ * This is the place where the common code to test the different
+ * implementations of the timer queue resides. This class has
+ * the logic for the parse_commands () method, the run (),
+ * read_input () and get_next_request () methods. Subclasses can
+ * override these methods if there is some logic that is specific
+ * to that implementation.
+ */
template <class TQ>
class Bounded_Packet_Relay_Driver
{
- // = TITLE
- // This abstract base class provides a simple abstraction for a
- // test driver for the bounded packet relay example.
- //
- // = DESCRIPTION
- // This is the place where the common code to test the different
- // implementations of the timer queue resides. This class has
- // the logic for the parse_commands () method, the run (),
- // read_input () and get_next_request () methods. Subclasses can
- // override these methods if there is some logic that is specific
- // to that implementation.
public:
+ /// Constructor.
Bounded_Packet_Relay_Driver (void);
- // Constructor.
+ /// Destructor.
virtual ~Bounded_Packet_Relay_Driver (void);
- // Destructor.
+ /// Breaks up the input string buffer into pieces and executes the
+ /// appropriate method to handle that operation.
virtual int parse_commands (const char *buf);
- // Breaks up the input string buffer into pieces and executes the
- // appropriate method to handle that operation.
+ /**
+ * This is the main entry point for the driver. The user of the
+ * class should normally invoke this method. Returns 0 when
+ * successful, or 0 otherwise.
+ */
virtual int run (void);
- // This is the main entry point for the driver. The user of the
- // class should normally invoke this method. Returns 0 when
- // successful, or 0 otherwise.
+ /// This internal method gets the next request from the user.
+ /// Returns -1 when user wants to exit. Returns 0 otherwise.
virtual int get_next_request (void);
- // This internal method gets the next request from the user.
- // Returns -1 when user wants to exit. Returns 0 otherwise.
+ /**
+ * Reads input from the user into the buffer <buf> with a maximum of
+ * <bufsiz> bytes. Returns the amount of bytes actually read
+ * Otherwise, a -1 is returned and errno is set to indicate the
+ * error.
+ */
virtual ssize_t read_input (char *buf, size_t bufsiz);
- // Reads input from the user into the buffer <buf> with a maximum of
- // <bufsiz> bytes. Returns the amount of bytes actually read
- // Otherwise, a -1 is returned and errno is set to indicate the
- // error.
+ /// Prints the user interface for the driver to STDERR.
virtual int display_menu (void)=0;
- // Prints the user interface for the driver to STDERR.
+ /// Initializes values and operations for the driver.
virtual int init (void)=0;
- // Initializes values and operations for the driver.
+ /// Get count of packets to send in a transmission.
u_long packet_count (void);
- // Get count of packets to send in a transmission.
+ /// Set count of packets to send in a transmission.
void packet_count (u_long pc);
- // Set count of packets to send in a transmission.
+ /// Get rate at which input packets are to arrive.
u_long arrival_period (void);
- // Get rate at which input packets are to arrive.
+ /// Set rate at which input packets are to arrive.
void arrival_period (u_long ap);
- // Set rate at which input packets are to arrive.
+ /// Get rate at which packets are to be relayed (usec).
u_long send_period (void);
- // Get rate at which packets are to be relayed (usec).
+ /// Set rate at which packets are to be relayed (usec).
void send_period (u_long sp);
- // Set rate at which packets are to be relayed (usec).
+ /// Get limit on the duration of the transmission (usec).
u_long duration_limit (void);
- // Get limit on the duration of the transmission (usec).
+ /// Set limit on the duration of the transmission (usec).
void duration_limit (u_long dl);
- // Set limit on the duration of the transmission (usec).
+ /// Get logging level.
int logging_level (void);
- // Get logging level.
+ /// Set logging level.
void logging_level (int ll);
- // Set logging level.
protected:
// = Major Driver Mechanisms
+ /// Timer queue for transmission timeouts.
TQ timer_queue_;
- // Timer queue for transmission timeouts.
// = Set of commands to be executed.
+ /// Set packet count command.
ACE_Command_Base *packet_count_cmd_;
- // Set packet count command.
+ /// Set arrival period command.
ACE_Command_Base *arrival_period_cmd_;
- // Set arrival period command.
+ /// Set transmit period command.
ACE_Command_Base *transmit_period_cmd_;
- // Set transmit period command.
+ /// Set duration limit command.
ACE_Command_Base *duration_limit_cmd_;
- // Set duration limit command.
+ /// Set logging level command.
ACE_Command_Base *logging_level_cmd_;
- // Set logging level command.
+ /// Run transmission command.
ACE_Command_Base *run_transmission_cmd_;
- // Run transmission command.
+ /// Cancel transmission command.
ACE_Command_Base *cancel_transmission_cmd_;
- // Cancel transmission command.
+ /// Report statistics command.
ACE_Command_Base *report_stats_cmd_;
- // Report statistics command.
+ /// Shut down the driver.
ACE_Command_Base *shutdown_cmd_;
- // Shut down the driver.
private:
+ /// Count of packets to send in a transmission.
u_long packet_count_;
- // Count of packets to send in a transmission.
+ /// Rate at which input packets are to arrive.
u_long arrival_period_;
- // Rate at which input packets are to arrive.
+ /// Rate at which packets are to be relayed (usec).
u_long send_period_;
- // Rate at which packets are to be relayed (usec).
+ /// Limit on the duration of the transmission (usec).
u_long duration_limit_;
- // Limit on the duration of the transmission (usec).
+ /// Logging level.
int logging_level_;
- // Logging level.
};
#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
diff --git a/ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp b/ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp
index f8ca093528b..27a0a715842 100644
--- a/ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp
+++ b/ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp
@@ -1,27 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Thread_Bounded_Packet_Relay.cpp
-//
-// = DESCRIPTION
-// Method definitions for the threaded-bounded packet relay class.
-//
-// = AUTHORS
-// Chris Gill <cdgill@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// Based on the Timer Queue Test example written by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Bounded_Packet_Relay.cpp
+ *
+ * $Id$
+ *
+ * Method definitions for the threaded-bounded packet relay class.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> Based on the Timer Queue Test example written by Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_sys_time.h"
@@ -34,7 +24,7 @@ typedef Thread_Bounded_Packet_Relay_Driver::MYCOMMAND DRIVER_CMD;
typedef ACE_Command_Callback<BPR_Handler_Base, BPR_Handler_Base::ACTION> HANDLER_CMD;
typedef ACE_Command_Callback<Send_Handler, Send_Handler::ACTION> SEND_HANDLER_CMD;
-ACE_RCSID(Bounded_Packet_Relay, Thread_Bounded_Packet_Relay, "$Id$")
+
// Constructor.
@@ -84,7 +74,7 @@ Text_Input_Device_Wrapper::create_input_message (void)
{
// Construct a new message block to send.
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (read_length_),
0);
diff --git a/ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h b/ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h
index ccd5782b487..5d28cf5d88b 100644
--- a/ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h
+++ b/ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h
@@ -1,29 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Thread_Bounded_Packet_Relay.h
-//
-// = DESCRIPTION
-// This code provides a thread based implementation
-// of the bounded packet relay example.
-//
-// = AUTHORS
-// Chris Gill <cdgill@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// Based on the Timer Queue Test example written by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Bounded_Packet_Relay.h
+ *
+ * $Id$
+ *
+ * This code provides a thread based implementation
+ * of the bounded packet relay example.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> Based on the Timer Queue Test example written by Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _THREAD_BOUNDED_PACKET_RELAY_H_
#define _THREAD_BOUNDED_PACKET_RELAY_H_
@@ -57,24 +47,25 @@ typedef ACE_Thread_Timer_Queue_Adapter<Timer_Heap>
// Forward declaration.
class Thread_Bounded_Packet_Relay_Driver;
+/**
+ * @class Text_Input_Device_Wrapper
+ *
+ * @brief Defines a wrapper for a simple active looping text input
+ * pseudo-device.
+ *
+ * The wrapper is an active object, running in its own thread,
+ * and uses a reactor to generate timeouts. When a timeout
+ * occurs, the wrapper calls its concrete message creation
+ * method. The wrapper then calls its base class message send
+ * method to forward the message to the receiver.
+ * A more sophisticated version of this class would use the
+ * reactive capabilities as well as the timeout generating
+ * capabilities of the reactor, multiplexing several input
+ * streams. Comments to this effect appear in the definition of
+ * the event loop method.
+ */
class Text_Input_Device_Wrapper : public Input_Device_Wrapper_Base
{
- // = TITLE
- // Defines a wrapper for a simple active looping text input
- // pseudo-device.
- //
- // = DESCRIPTION
- // The wrapper is an active object, running in its own thread,
- // and uses a reactor to generate timeouts. When a timeout
- // occurs, the wrapper calls its concrete message creation
- // method. The wrapper then calls its base class message send
- // method to forward the message to the receiver.
- //
- // A more sophisticated version of this class would use the
- // reactive capabilities as well as the timeout generating
- // capabilities of the reactor, multiplexing several input
- // streams. Comments to this effect appear in the definition of
- // the event loop method.
public:
// = Enumerated logging level flags
@@ -82,51 +73,55 @@ public:
LOG_MSGS_CREATED = 1};
// = Initialization and termination methods.
+ /// Constructor.
Text_Input_Device_Wrapper (ACE_Thread_Manager *input_task_mgr,
size_t read_length,
const char* text,
int logging = 0);
- // Constructor.
+ /// Destructor.
virtual ~Text_Input_Device_Wrapper (void);
- // Destructor.
+ /**
+ * Modifies device settings based on passed pointer to a u_long.
+ * Turns logging on if u_long is non-zero, off if u_long is zero,
+ * and does nothing if the pointer is null.
+ */
virtual int modify_device_settings (void *logging);
- // Modifies device settings based on passed pointer to a u_long.
- // Turns logging on if u_long is non-zero, off if u_long is zero,
- // and does nothing if the pointer is null.
protected:
+ /// Creates a new message block, carrying data read from the
+ /// underlying input device.
virtual ACE_Message_Block *create_input_message (void);
- // Creates a new message block, carrying data read from the
- // underlying input device.
private:
+ /// Length of the buffer into which to "read".
size_t read_length_;
- // Length of the buffer into which to "read".
+ /// Text to "read" into the buffer.
const char *text_;
- // Text to "read" into the buffer.
+ /// Index into the string.
size_t index_;
- // Index into the string.
+ /// This value is 0 if logging is turned off, non-zero otherwise
int logging_;
- // This value is 0 if logging is turned off, non-zero otherwise
+ /// This value holds a count of packets created.
u_long packet_count_;
- // This value holds a count of packets created.
};
+/**
+ * @class Text_Output_Device_Wrapper
+ *
+ * @brief Implements a simple wrapper for a output pseudo-device.
+ *
+ * Data from the passed output message is printed to the standard
+ * output stream, if logging is turned on.
+ */
class Text_Output_Device_Wrapper : public Output_Device_Wrapper_Base
{
- // = TITLE
- // Implements a simple wrapper for a output pseudo-device.
- //
- // = DESCRIPTION
- // Data from the passed output message is printed to the standard
- // output stream, if logging is turned on.
public:
// = Enumerated logging level flags
@@ -134,115 +129,120 @@ public:
LOG_MSGS_RCVD = 2,
PRINT_MSGS_RCVD = 4};
+ /// Default constructor.
Text_Output_Device_Wrapper (int logging = 0);
- // Default constructor.
// = Command Accessible Entry Points
+ /// Consumes and possibly prints out the passed message.
virtual int write_output_message (void *message);
- // Consumes and possibly prints out the passed message.
+ /**
+ * Modifies device settings based on passed pointer to a u_long.
+ * Turns logging on if u_long is non-zero, off if u_long is zero,
+ * and does nothing if the pointer is null.
+ */
virtual int modify_device_settings (void *logging);
- // Modifies device settings based on passed pointer to a u_long.
- // Turns logging on if u_long is non-zero, off if u_long is zero,
- // and does nothing if the pointer is null.
private:
+ /// This value holds the logging level.
int logging_;
- // This value holds the logging level.
+ /// This value holds a count of packets received.
u_long packet_count_;
- // This value holds a count of packets received.
};
+/**
+ * @class User_Input_Task
+ *
+ * @brief Read user actions on the Timer_Queue from stdin.
+ *
+ * This class reads user input from stdin. The commands allow
+ * the control of a Timer_Queue, which is dispatched by another
+ * thread.
+ */
class User_Input_Task : public ACE_Task_Base
{
- // = TITLE
- // Read user actions on the Timer_Queue from stdin.
- //
- // = DESCRIPTION
- // This class reads user input from stdin. The commands allow
- // the control of a Timer_Queue, which is dispatched by another
- // thread.
public:
// = Trait for command accessible entry points.
typedef int (User_Input_Task::*ACTION) (void *);
+ /// Constructor.
User_Input_Task (Bounded_Packet_Relay *relay,
Thread_Timer_Queue *queue,
Thread_Bounded_Packet_Relay_Driver &timer_queue_driver);
- // Constructor.
+ /// Destructor.
virtual ~User_Input_Task (void);
- // Destructor.
+ /// This method runs the event loop in the new thread.
virtual int svc (void);
- // This method runs the event loop in the new thread.
// = Some helper methods.
+ /// Sets the number of packets for the next transmission.
int set_packet_count (void *);
- // Sets the number of packets for the next transmission.
+ /// Sets the input device packet arrival period (usecs) for the next
+ /// transmission.
int set_arrival_period (void *);
- // Sets the input device packet arrival period (usecs) for the next
- // transmission.
+ /// Sets the period between output device sends (usecs) for the next
+ /// transmission.
int set_send_period (void *);
- // Sets the period between output device sends (usecs) for the next
- // transmission.
+ /// Sets a limit on the transmission duration (usecs).
int set_duration_limit (void *);
- // Sets a limit on the transmission duration (usecs).
+ /// Sets logging level (0 or 1) for output device for the next
+ /// transmission.
int set_logging_level (void *);
- // Sets logging level (0 or 1) for output device for the next
- // transmission.
+ /// Runs the next transmission (if one is not in progress).
int run_transmission (void *);
- // Runs the next transmission (if one is not in progress).
+ /// Ends the current transmission (if one is in progress).
int end_transmission (void *);
- // Ends the current transmission (if one is in progress).
+ /// Reports statistics for the previous transmission (if one is not
+ /// in progress).
int report_stats (void *);
- // Reports statistics for the previous transmission (if one is not
- // in progress).
+ /// Shuts down the task.
int shutdown (void *);
- // Shuts down the task.
+ /// Helper method: clears all timers.
int clear_all_timers (void);
- // Helper method: clears all timers.
private:
+ /// How many microseconds are in a second.
const int usecs_;
- // How many microseconds are in a second.
+ /// The bounded packet relay.
Bounded_Packet_Relay *relay_;
- // The bounded packet relay.
+ /// The timer queue implementation.
Thread_Timer_Queue *queue_;
- // The timer queue implementation.
+ /// The thread timer queue test driver.
Thread_Bounded_Packet_Relay_Driver &driver_;
- // The thread timer queue test driver.
};
+/**
+ * @class BPR_Handler_Base
+ *
+ * @brief Base event handler class for bounded packet relay example.
+ *
+ * The base class provides a helper method that derived classes
+ * can register as a deferred execution callback that will cancel
+ * all timers in the underlying timer queue, and then delete "this".
+ */
class BPR_Handler_Base : public ACE_Event_Handler
{
- // = TITLE
- // Base event handler class for bounded packet relay example.
- //
- // = DESCRIPTION
- // The base class provides a helper method that derived classes
- // can register as a deferred execution callback that will cancel
- // all timers in the underlying timer queue, and then delete "this".
- //
public:
// = Trait for command accessible entry points.
@@ -250,125 +250,131 @@ public:
typedef int (BPR_Handler_Base::*ACTION) (void *);
+ /// Constructor.
BPR_Handler_Base (Bounded_Packet_Relay &relay,
Thread_Timer_Queue &queue);
- // Constructor.
+ /// Destructor.
virtual ~BPR_Handler_Base (void);
- // Destructor.
// = Command accessible entry points.
+ /// Helper method: clears all timers.
virtual int clear_all_timers (void *);
- // Helper method: clears all timers.
protected:
+ /// Stores a reference to the relay object on which to invoke
+ /// the appropritate calls when the timer expires.
Bounded_Packet_Relay &relay_;
- // Stores a reference to the relay object on which to invoke
- // the appropritate calls when the timer expires.
+ /// Store a reference to the timer queue, in which to re-register
+ /// the send timer and handler if there are still sends to perform.
Thread_Timer_Queue &queue_;
- // Store a reference to the timer queue, in which to re-register
- // the send timer and handler if there are still sends to perform.
};
class Send_Handler;
+/**
+ * @class Send_Handler
+ *
+ * @brief Event handler for message send timeout events.
+ *
+ * The <handle_timeout> hook method calls the relay's send
+ * method and decrements its count of messages to send.
+ * If there are still messages to send, it re-registers itself
+ * with the timer queue. Otherwise it calls the relay's end
+ * transmission method, and registers a deferred execution
+ * callback to clear the timer queue, and then delete "this".
+ */
class Send_Handler : public BPR_Handler_Base
{
- // = TITLE
- // Event handler for message send timeout events.
- //
- // = DESCRIPTION
- // The <handle_timeout> hook method calls the relay's send
- // method and decrements its count of messages to send.
- // If there are still messages to send, it re-registers itself
- // with the timer queue. Otherwise it calls the relay's end
- // transmission method, and registers a deferred execution
- // callback to clear the timer queue, and then delete "this".
public:
// = Trait for command accessible entry points.
typedef int (Send_Handler::*ACTION) (void *);
+ /// Constructor.
Send_Handler (u_long send_count,
const ACE_Time_Value &duration,
Bounded_Packet_Relay &relay,
Thread_Timer_Queue &queue,
Thread_Bounded_Packet_Relay_Driver &driver);
- // Constructor.
+ /// Destructor.
virtual ~Send_Handler (void);
- // Destructor.
+ /// Call back hook.
virtual int handle_timeout (const ACE_Time_Value &current_time,
const void *arg);
- // Call back hook.
+ /// Cancellation hook.
virtual int cancelled (void);
- // Cancellation hook.
// = Command accessible entry points.
+ /// Helper method: re-registers this handler.
virtual int reregister (void *timeout);
- // Helper method: re-registers this handler.
private:
+ /// Count of the number of messages to send from the
+ /// relay object to the output device object.
u_long send_count_;
- // Count of the number of messages to send from the
- // relay object to the output device object.
+ /// Stores the expected duration until expiration, and is used to
+ /// re-register the handler if there are still sends to perform.
ACE_Time_Value duration_;
- // Stores the expected duration until expiration, and is used to
- // re-register the handler if there are still sends to perform.
+ /// Reference to the driver that will redisplay the user input menu.
Thread_Bounded_Packet_Relay_Driver &driver_;
- // Reference to the driver that will redisplay the user input menu.
};
+/**
+ * @class Termination_Handler
+ *
+ * @brief Event handler for end transmission timeout events.
+ *
+ * The <handle_timeout> hook method calls the relay's end
+ * transmission method, then registers a deferred execution
+ * callback to clear all timers and then delete "this".
+ */
class Termination_Handler : public BPR_Handler_Base
{
- // = TITLE
- // Event handler for end transmission timeout events.
- //
- // = DESCRIPTION
- // The <handle_timeout> hook method calls the relay's end
- // transmission method, then registers a deferred execution
- // callback to clear all timers and then delete "this".
public:
+ /// Constructor.
Termination_Handler (Bounded_Packet_Relay &relay,
Thread_Timer_Queue &queue,
Thread_Bounded_Packet_Relay_Driver &driver);
- // Constructor.
+ /// Destructor.
virtual ~Termination_Handler (void);
- // Destructor.
+ /// Call back hook.
virtual int handle_timeout (const ACE_Time_Value &current_time,
const void *arg);
- // Call back hook.
+ /// Cancellation hook.
virtual int cancelled (void);
- // Cancellation hook.
private:
+ /// Reference to the driver that will redisplay the user input menu.
Thread_Bounded_Packet_Relay_Driver &driver_;
- // Reference to the driver that will redisplay the user input menu.
};
+/**
+ * @class Thread_Bounded_Packet_Relay_Driver
+ *
+ * @brief Implements an example application that exercises
+ * <Thread_Timer_Queue> timer queue.
+ *
+ * This class implements a simple test driver for the
+ * <Thread_Timer_Queue>. The <display_menu> hook method is
+ * called from the base class to print a menu specific to the
+ * thread implementation of the timer queue.
+ */
class Thread_Bounded_Packet_Relay_Driver : public Bounded_Packet_Relay_Driver <Thread_Timer_Queue>
{
- // = TITLE
- // Implements an example application that exercises
- // <Thread_Timer_Queue> timer queue.
- //
- // = DESCRIPTION
- // This class implements a simple test driver for the
- // <Thread_Timer_Queue>. The <display_menu> hook method is
- // called from the base class to print a menu specific to the
- // thread implementation of the timer queue.
public:
// = Trait for commands issued from this driver
@@ -377,24 +383,24 @@ public:
// = Initialization and termination methods.
+ /// Constructor.
Thread_Bounded_Packet_Relay_Driver (Bounded_Packet_Relay *relay);
- // Constructor.
+ /// Destructor.
virtual ~Thread_Bounded_Packet_Relay_Driver (void);
- // Destructor.
+ /// Displays the user menu.
virtual int display_menu (void);
- // Displays the user menu.
+ /// Initializes the driver.
virtual int init (void);
- // Initializes the driver.
+ /// Run the driver.
virtual int run (void);
- // Run the driver.
private:
+ /// User input task, subclassed from ACE_Task.
User_Input_Task input_task_;
- // User input task, subclassed from ACE_Task.
};
#endif /* _THREAD_BOUNDED_PACKET_RELAY_H_ */
diff --git a/ACE/examples/Bounded_Packet_Relay/bpr_thread.cpp b/ACE/examples/Bounded_Packet_Relay/bpr_thread.cpp
index e24f6be0bda..2f29e7ec1ce 100644
--- a/ACE/examples/Bounded_Packet_Relay/bpr_thread.cpp
+++ b/ACE/examples/Bounded_Packet_Relay/bpr_thread.cpp
@@ -1,35 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// bpr_thread.cpp
-//
-// = DESCRIPTION
-// Exercises drivers for a bounded packet relay, based on threaded timer queues.
-//
-// = AUTHORS
-// Chris Gill <cdgill@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// Based on the Timer Queue Test example written by
-//
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file bpr_thread.cpp
+ *
+ * $Id$
+ *
+ * Exercises drivers for a bounded packet relay, based on threaded timer queues.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> Based on the Timer Queue Test example written by Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/Auto_Ptr.h"
#include "Thread_Bounded_Packet_Relay.h"
-ACE_RCSID (Bounded_Packet_Relay,
- bpr_thread,
- "$Id$")
-
typedef Bounded_Packet_Relay_Driver<Thread_Timer_Queue>
THREAD_BOUNDED_PACKET_RELAY_DRIVER;
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++NPv1/Logging_Handler.cpp b/ACE/examples/C++NPv1/Logging_Handler.cpp
index f84e499349e..59d41280139 100644
--- a/ACE/examples/C++NPv1/Logging_Handler.cpp
+++ b/ACE/examples/C++NPv1/Logging_Handler.cpp
@@ -73,7 +73,7 @@ int Logging_Handler::recv_log_record (ACE_Message_Block *&mblk)
return -1;
}
-int
+int
Logging_Handler::write_log_record (ACE_Message_Block *mblk)
{
// Peer hostname is in the <mblk> and the log record data
diff --git a/ACE/examples/C++NPv2/AC_Client_Logging_Daemon.cpp b/ACE/examples/C++NPv2/AC_Client_Logging_Daemon.cpp
index c11b1a30f1d..907771d354b 100644
--- a/ACE/examples/C++NPv2/AC_Client_Logging_Daemon.cpp
+++ b/ACE/examples/C++NPv2/AC_Client_Logging_Daemon.cpp
@@ -285,7 +285,7 @@ int AC_Input_Handler::handle_input (ACE_HANDLE handle) {
mblk->release ();
}
}
-
+
return -1; // Error return.
}
diff --git a/ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.cpp b/ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.cpp
index 3d7e36cb239..40efc8159b9 100644
--- a/ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.cpp
+++ b/ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.cpp
@@ -94,7 +94,7 @@ void AIO_Output_Handler::open
reader_.open (*this, new_handle, 0, proactor ());
writer_.open (*this, new_handle, 0, proactor ());
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW (mb, ACE_Message_Block (1));
reader_.read (*mb, 1);
ACE_Sig_Action no_sigpipe ((ACE_SignalHandler) SIG_IGN);
diff --git a/ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.h b/ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.h
index e72d9bb867d..b85feebf9de 100644
--- a/ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.h
+++ b/ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.h
@@ -55,13 +55,15 @@ public:
virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
// Hook method called when server connection is established.
- using ACE_Service_Handler::open;
virtual void open (ACE_HANDLE new_handle,
ACE_Message_Block &message_block);
- // This is to make happy a compiler on HP-UX which complains
- // that the 'open' above hides "int ACE_Task_Base::open(void *)"
- using ACE_Task<ACE_NULL_SYNCH>::open;
+ // A trivial implementation that is needed to suppress compile
+ // warnings/errors.
+ virtual int open (void *args)
+ {
+ return ACE_Task<ACE_NULL_SYNCH>::open (args);
+ }
protected:
ACE_Asynch_Read_Stream reader_; // Detects connection loss
diff --git a/ACE/examples/C++NPv2/C++NPv2.mpc b/ACE/examples/C++NPv2/C++NPv2.mpc
index c392cb358e2..936cbf92c2f 100644
--- a/ACE/examples/C++NPv2/C++NPv2.mpc
+++ b/ACE/examples/C++NPv2/C++NPv2.mpc
@@ -10,7 +10,7 @@
project(*AC_CLD) : acelib, ssl, threads {
avoids += uses_wchar
sharedname = AC_CLD
- dynamicflags = AC_CLD_BUILD_DLL
+ dynamicflags += AC_CLD_BUILD_DLL
specific(gnuace) {
after += *CLD
}
@@ -22,7 +22,7 @@ project(*AC_CLD) : acelib, ssl, threads {
project(*AIO_CLD) : acelib, ssl {
sharedname = AIO_CLD
- dynamicflags = AIO_CLD_BUILD_DLL
+ dynamicflags += AIO_CLD_BUILD_DLL
Source_Files {
AIO_Client_Logging_Daemon.cpp
}
@@ -31,7 +31,7 @@ project(*AIO_CLD) : acelib, ssl {
project(*CLD) : acelib, avoids_ace_for_tao {
avoids += uses_wchar
sharedname = CLD
- dynamicflags = CLD_BUILD_DLL
+ dynamicflags += CLD_BUILD_DLL
Source_Files {
Client_Logging_Daemon.cpp
Logging_Acceptor.cpp
@@ -86,7 +86,7 @@ project(*Select_Reactor_Log_Server) : aceexe, avoids_ace_for_tao {
project(*SLD) : acelib, avoids_ace_for_tao {
avoids += uses_wchar
sharedname = SLD
- dynamicflags = SLD_BUILD_DLL
+ dynamicflags += SLD_BUILD_DLL
specific(gnuace) {
after += *CLD
}
@@ -98,10 +98,10 @@ 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
+ dynamicflags += SLDEX_BUILD_DLL
specific(gnuace) {
after += *CLD
}
@@ -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
@@ -141,7 +141,7 @@ project(*TP_Reactor_Log_Server) : aceexe {
project(*TPCLS) : acelib, ssl {
avoids += uses_wchar
sharedname = TPCLS
- dynamicflags = TPCLS_BUILD_DLL
+ dynamicflags += TPCLS_BUILD_DLL
specific(gnuace) {
after += *CLD
}
@@ -151,10 +151,10 @@ 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
+ dynamicflags += TPLS_BUILD_DLL
specific(gnuace) {
after += *CLD
}
@@ -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/C++NPv2/Client_Logging_Daemon.cpp b/ACE/examples/C++NPv2/Client_Logging_Daemon.cpp
index 7bcc53ec84e..4ee83710607 100644
--- a/ACE/examples/C++NPv2/Client_Logging_Daemon.cpp
+++ b/ACE/examples/C++NPv2/Client_Logging_Daemon.cpp
@@ -141,7 +141,7 @@ int CLD_Handler::handle_input (ACE_HANDLE handle)
mblk->release ();
}
}
-
+
return -1; // Error return.
}
@@ -237,7 +237,7 @@ int CLD_Handler::send (ACE_Message_Block *chunk[], size_t &count) {
int CLD_Handler::close () {
ACE_Message_Block *shutdown_message = 0;
ACE_NEW_RETURN
- (shutdown_message,
+ (shutdown_message,
ACE_Message_Block (0, ACE_Message_Block::MB_STOP), -1);
msg_queue_.enqueue_tail (shutdown_message);
return thr_mgr_.wait ();
@@ -292,7 +292,7 @@ int CLD_Connector::connect
if (connector.connect (handler->peer (), remote_addr) == -1)
return -1;
- else if (handler->open (this) == -1)
+ else if (handler->open (this) == -1)
{ handler->handle_close (); return -1; }
handler_ = handler;
remote_addr_ = remote_addr;
diff --git a/ACE/examples/C++NPv2/Logging_Acceptor.cpp b/ACE/examples/C++NPv2/Logging_Acceptor.cpp
index 2e7b7479603..e76321d5002 100644
--- a/ACE/examples/C++NPv2/Logging_Acceptor.cpp
+++ b/ACE/examples/C++NPv2/Logging_Acceptor.cpp
@@ -30,9 +30,9 @@ int Logging_Acceptor::handle_input (ACE_HANDLE) {
return 0;
}
-int Logging_Acceptor::handle_close (ACE_HANDLE,
- ACE_Reactor_Mask) {
+int Logging_Acceptor::handle_close (ACE_HANDLE,
+ ACE_Reactor_Mask) {
acceptor_.close ();
delete this;
- return 0;
+ return 0;
}
diff --git a/ACE/examples/C++NPv2/Logging_Event_Handler.cpp b/ACE/examples/C++NPv2/Logging_Event_Handler.cpp
index d805e776390..c0c47ac36ac 100644
--- a/ACE/examples/C++NPv2/Logging_Event_Handler.cpp
+++ b/ACE/examples/C++NPv2/Logging_Event_Handler.cpp
@@ -29,14 +29,14 @@ int Logging_Event_Handler::open () {
O_RDWR|O_CREAT|O_APPEND,
ACE_DEFAULT_FILE_PERMS);
- return reactor ()->register_handler
+ return reactor ()->register_handler
(this, ACE_Event_Handler::READ_MASK);
}
-int Logging_Event_Handler::handle_input (ACE_HANDLE)
+int Logging_Event_Handler::handle_input (ACE_HANDLE)
{ return logging_handler_.log_record (); }
-int Logging_Event_Handler::handle_close (ACE_HANDLE,
+int Logging_Event_Handler::handle_close (ACE_HANDLE,
ACE_Reactor_Mask) {
logging_handler_.close ();
log_file_.close ();
diff --git a/ACE/examples/C++NPv2/Logging_Event_Handler_Ex.cpp b/ACE/examples/C++NPv2/Logging_Event_Handler_Ex.cpp
index 858e615e9d9..4f5dc198d56 100644
--- a/ACE/examples/C++NPv2/Logging_Event_Handler_Ex.cpp
+++ b/ACE/examples/C++NPv2/Logging_Event_Handler_Ex.cpp
@@ -17,7 +17,7 @@ int Logging_Event_Handler_Ex::open () {
int result = PARENT::open ();
if (result != -1) {
ACE_Time_Value reschedule (max_client_timeout_.sec () / 4);
- result =
+ result =
reactor ()->schedule_timer
(this,
0,
@@ -34,7 +34,7 @@ int Logging_Event_Handler_Ex::handle_timeout
return 0;
}
-int Logging_Event_Handler_Ex::handle_close (ACE_HANDLE,
+int Logging_Event_Handler_Ex::handle_close (ACE_HANDLE,
ACE_Reactor_Mask) {
reactor ()->cancel_timer (this);
return PARENT::handle_close ();
diff --git a/ACE/examples/C++NPv2/Logging_Event_Handler_Ex.h b/ACE/examples/C++NPv2/Logging_Event_Handler_Ex.h
index d6639cf78d2..647f0e4ebc7 100644
--- a/ACE/examples/C++NPv2/Logging_Event_Handler_Ex.h
+++ b/ACE/examples/C++NPv2/Logging_Event_Handler_Ex.h
@@ -28,7 +28,7 @@ public:
// 3600 seconds == one hour.
enum { MAX_CLIENT_TIMEOUT = 3600 };
- Logging_Event_Handler_Ex
+ Logging_Event_Handler_Ex
(ACE_Reactor *reactor,
const ACE_Time_Value &max_client_timeout
= ACE_Time_Value (MAX_CLIENT_TIMEOUT))
@@ -48,7 +48,7 @@ public:
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *act);
- // Called when this object is destroyed, e.g., when it's
+ // Called when this object is destroyed, e.g., when it's
// removed from a reactor.
virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
ACE_Reactor_Mask = 0);
diff --git a/ACE/examples/C++NPv2/Logging_Handler.cpp b/ACE/examples/C++NPv2/Logging_Handler.cpp
index 6fcce5c27de..2d8195d6398 100644
--- a/ACE/examples/C++NPv2/Logging_Handler.cpp
+++ b/ACE/examples/C++NPv2/Logging_Handler.cpp
@@ -81,7 +81,7 @@ int Logging_Handler::write_log_record (ACE_Message_Block *mblk)
{
return -1;
}
-
+
if (ACE::debug ())
{
// Build a CDR stream from the log record data.
@@ -98,7 +98,7 @@ int Logging_Handler::write_log_record (ACE_Message_Block *mblk)
cdr >> log_record; // Finally extract the <ACE_log_record>.
log_record.print (mblk->rd_ptr (), 1, cerr);
}
-
+
return ACE_Utils::truncate_cast<int> (mblk->total_length ());
}
diff --git a/ACE/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp b/ACE/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp
index 1bbfc522da7..0edaf876def 100644
--- a/ACE/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp
+++ b/ACE/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp
@@ -32,10 +32,12 @@ Reactor_Logging_Server_Adapter<ACCEPTOR>::init (int argc,
return server_ == 0 ? -1 : 0;
}
-
+// NOTE! The (ACCEPTOR*) cast below is NOT technically necessary, but it
+// works around a bug in IBM XL C++ 9 that resolves to the wrong version of
+// handle_close().
template <class ACCEPTOR> int
-Reactor_Logging_Server_Adapter<ACCEPTOR>::fini ()
-{ server_->handle_close (); server_ = 0; return 0; }
+Reactor_Logging_Server_Adapter<ACCEPTOR>::fini ()
+{ ((ACCEPTOR*)server_)->handle_close (); server_ = 0; return 0; }
template <class ACCEPTOR> int
@@ -48,24 +50,24 @@ Reactor_Logging_Server_Adapter<ACCEPTOR>::info
ACE_OS::sprintf (buf,
ACE_TEXT ("%hu"),
local_addr.get_port_number ());
- ACE_OS::strcat
+ ACE_OS::strcat
(buf, ACE_TEXT ("/tcp # Reactor-based logging server\n"));
if (*bufferp == 0)
*bufferp = ACE::strnew (buf);
else
ACE_OS::strncpy (*bufferp, buf, length);
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (*bufferp));
}
template <class ACCEPTOR> int
-Reactor_Logging_Server_Adapter<ACCEPTOR>::suspend ()
+Reactor_Logging_Server_Adapter<ACCEPTOR>::suspend ()
{ return server_->reactor ()->suspend_handler (server_); }
template <class ACCEPTOR> int
-Reactor_Logging_Server_Adapter<ACCEPTOR>::resume ()
+Reactor_Logging_Server_Adapter<ACCEPTOR>::resume ()
{ return server_->reactor ()->resume_handler (server_); }
#endif /* _REACTOR_LOGGING_SERVER_ADAPTER_C */
diff --git a/ACE/examples/C++NPv2/Service_Reporter.cpp b/ACE/examples/C++NPv2/Service_Reporter.cpp
index 0244d2ca573..797ef8989fd 100644
--- a/ACE/examples/C++NPv2/Service_Reporter.cpp
+++ b/ACE/examples/C++NPv2/Service_Reporter.cpp
@@ -51,23 +51,23 @@ int Service_Reporter::handle_input (ACE_HANDLE) {
iterator.advance ()) {
iovec iov[3];
iov[0].iov_base = const_cast<ACE_TCHAR *> (st->name ());
-
+
iov[0].iov_len =
ACE_Utils::truncate_cast<u_long> (
ACE_OS::strlen (st->name ()) * sizeof (ACE_TCHAR));
-
+
const ACE_TCHAR *state = st->active () ?
ACE_TEXT (" (active) ") : ACE_TEXT (" (paused) ");
iov[1].iov_base = const_cast<ACE_TCHAR *> (state);
-
+
iov[1].iov_len =
ACE_Utils::truncate_cast<u_long> (
ACE_OS::strlen (state) * sizeof (ACE_TCHAR));
-
+
ACE_TCHAR *report = 0; // Ask info() to allocate buffer
int len = st->type ()->info (&report, 0);
iov[2].iov_base = static_cast<ACE_TCHAR *> (report);
-
+
iov[2].iov_len = static_cast<u_long> (len);
iov[2].iov_len *= sizeof (ACE_TCHAR);
peer_stream.sendv_n (iov, 3);
@@ -93,7 +93,7 @@ int Service_Reporter::info (ACE_TCHAR **bufferp,
*bufferp = ACE::strnew (buf);
else
ACE_OS::strncpy (*bufferp, buf, length);
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (*bufferp));
}
diff --git a/ACE/examples/C++NPv2/Service_Reporter.h b/ACE/examples/C++NPv2/Service_Reporter.h
index c6de7484767..2ebdabf0864 100644
--- a/ACE/examples/C++NPv2/Service_Reporter.h
+++ b/ACE/examples/C++NPv2/Service_Reporter.h
@@ -27,7 +27,7 @@ protected:
// Reactor hook methods.
virtual int handle_input (ACE_HANDLE);
- virtual ACE_HANDLE get_handle () const
+ virtual ACE_HANDLE get_handle () const
{ return acceptor_.get_handle (); }
private:
diff --git a/ACE/examples/C++NPv2/display_logfile.cpp b/ACE/examples/C++NPv2/display_logfile.cpp
index 9382a2cf894..4cf5d031109 100644
--- a/ACE/examples/C++NPv2/display_logfile.cpp
+++ b/ACE/examples/C++NPv2/display_logfile.cpp
@@ -223,7 +223,7 @@ public:
virtual int svc () {
int stop = 0;
- for (ACE_Message_Block *mb; !stop && getq (mb) != -1; ) {
+ for (ACE_Message_Block *mb = 0; !stop && getq (mb) != -1; ) {
if (mb->msg_type () == ACE_Message_Block::MB_STOP)
stop = 1;
else
@@ -281,8 +281,8 @@ public:
ACE_TCHAR timestamp_t[26];
char timestamp[26]; // Max size of ctime_r() string.
time_t time_secs (secs);
- ACE_OS::ctime_r (&time_secs,
- timestamp_t,
+ ACE_OS::ctime_r (&time_secs,
+ timestamp_t,
sizeof timestamp_t / sizeof (ACE_TCHAR));
ACE_OS::strcpy (timestamp, ACE_TEXT_ALWAYS_CHAR (timestamp_t));
mblk->size (26); // Max size of ctime_r() string.
diff --git a/ACE/examples/C++NPv2/svc.conf b/ACE/examples/C++NPv2/svc.conf
index e97f3748cf6..b1ef0c6498e 100644
--- a/ACE/examples/C++NPv2/svc.conf
+++ b/ACE/examples/C++NPv2/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
static Service_Reporter "-p $SERVICE_REPORTER_PORT"
dynamic AIO_Client_Logging_Daemon Service_Object *
diff --git a/ACE/examples/ConfigViewer/ConfigTreeCtrl.cpp b/ACE/examples/ConfigViewer/ConfigTreeCtrl.cpp
index 7700272b9ba..60234c92537 100644
--- a/ACE/examples/ConfigViewer/ConfigTreeCtrl.cpp
+++ b/ACE/examples/ConfigViewer/ConfigTreeCtrl.cpp
@@ -65,7 +65,7 @@ void ConfigTreeCtrl::OnRightDown(wxMouseEvent& event)
void ConfigTreeCtrl::OnRightUp(wxMouseEvent& event)
{
wxTreeItemId ItemID = GetSelection();
-
+
wxMenu* pMenu = new wxMenu;
wxMenu* pNewMenu = new wxMenu;
pNewMenu->Append(CFGNEWKEY, "Key");
@@ -127,7 +127,7 @@ void ConfigTreeCtrl::OnNewKey(wxCommandEvent& event)
ACE_Configuration_Section_Key Key, NewKey;
ResolveKey(ItemID, Key);
m_pConfig->open_section(Key, Value, 1, NewKey);
- wxTreeItemId NewItemID = AppendItem(ItemID, Value);
+ wxTreeItemId NewItemID = AppendItem(ItemID, Value);
EnsureVisible(NewItemID);
}
diff --git a/ACE/examples/ConfigViewer/ConfigTreeCtrl.h b/ACE/examples/ConfigViewer/ConfigTreeCtrl.h
index e44eb837384..9a5674ab499 100644
--- a/ACE/examples/ConfigViewer/ConfigTreeCtrl.h
+++ b/ACE/examples/ConfigViewer/ConfigTreeCtrl.h
@@ -43,7 +43,7 @@ protected:
void ResolveKey(wxTreeItemId Item, ACE_Configuration_Section_Key& Key);
private:
DECLARE_EVENT_TABLE()
-
+
ACE_Configuration* m_pConfig;
ValueListCtrl* m_pListCtrl;
};
diff --git a/ACE/examples/ConfigViewer/MainFrame.cpp b/ACE/examples/ConfigViewer/MainFrame.cpp
index 6db44856160..eba0738a131 100644
--- a/ACE/examples/ConfigViewer/MainFrame.cpp
+++ b/ACE/examples/ConfigViewer/MainFrame.cpp
@@ -28,7 +28,7 @@ MainFrame::MainFrame(const wxString& title, const wxPoint& pos, const wxSize& si
m_pInstance = this;
// Create a persistent heap based configuration
-
+
ACE_Configuration_Heap* pHeapConfig = new ACE_Configuration_Heap;
pHeapConfig->open();
m_pConfig = pHeapConfig;
@@ -40,12 +40,12 @@ MainFrame::MainFrame(const wxString& title, const wxPoint& pos, const wxSize& si
m_pSplitter = new wxSplitterWindow(this, -1);
wxSize sz( m_pSplitter->GetSize() );
sz.SetWidth(sz.GetWidth() / 2);
-
+
// List Control
m_pListCtrl = new ValueListCtrl(m_pSplitter, -1, wxDefaultPosition, sz);
// Tree Control
- m_pTreeCtrl = new ConfigTreeCtrl(m_pSplitter, FRAME_TREE, wxDefaultPosition, sz,
+ m_pTreeCtrl = new ConfigTreeCtrl(m_pSplitter, FRAME_TREE, wxDefaultPosition, sz,
wxTR_EDIT_LABELS | wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT);
m_pTreeCtrl->SetpListCtrl(m_pListCtrl);
@@ -54,7 +54,7 @@ MainFrame::MainFrame(const wxString& title, const wxPoint& pos, const wxSize& si
m_pSplitter->SplitVertically(m_pTreeCtrl, m_pListCtrl);
m_pSplitter->SetMinimumPaneSize(100);
m_pSplitter->SetSashPosition(size.GetWidth() / 3);
-
+
// create a menu bar
wxMenu *menuFile = new wxMenu("", wxMENU_TEAROFF);
menuFile->Append(FILE_NEW_PERSISTENT_HEAP, "New Persistent Heap", "Create a new persistent heap");
diff --git a/ACE/examples/ConfigViewer/ValueListCtrl.cpp b/ACE/examples/ConfigViewer/ValueListCtrl.cpp
index 93c9af14fcb..1951aa93928 100644
--- a/ACE/examples/ConfigViewer/ValueListCtrl.cpp
+++ b/ACE/examples/ConfigViewer/ValueListCtrl.cpp
@@ -22,7 +22,7 @@ ValueListCtrl::ValueListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos
InsertColumn(1, "Type");
InsertColumn(2, "Data");
}
-
+
ValueListCtrl::~ValueListCtrl()
{
}
@@ -137,7 +137,7 @@ void ValueListCtrl::OnModify(wxCommandEvent& event)
Value = Dlg.GetUINTValue();
m_pConfig->set_integer_value(m_Key, Name, Value);
-
+
}
break;
case ACE_Configuration::BINARY:
@@ -163,7 +163,7 @@ void ValueListCtrl::OnDelete(wxCommandEvent& event)
return ;
}
wxString Text = GetItemText(Item);
- m_pConfig->remove_value(m_Key, Text);
+ m_pConfig->remove_value(m_Key, Text);
DeleteItem(Item);
}
diff --git a/ACE/examples/ConfigViewer/ValueListCtrl.h b/ACE/examples/ConfigViewer/ValueListCtrl.h
index ce802e67e96..a4c95551d20 100644
--- a/ACE/examples/ConfigViewer/ValueListCtrl.h
+++ b/ACE/examples/ConfigViewer/ValueListCtrl.h
@@ -10,9 +10,9 @@ public:
///////////////////////////////////////////
// Initializers
///////////////////////////////////////////
- ValueListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = wxLC_ICON,
- const wxValidator& validator = wxDefaultValidator,
+ ValueListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = wxLC_ICON,
+ const wxValidator& validator = wxDefaultValidator,
const wxString& name = "listCtrl");
virtual ~ValueListCtrl();
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/blocking/SPIPE-acceptor.cpp b/ACE/examples/Connection/blocking/SPIPE-acceptor.cpp
index 10b1e8310f2..88e04f5750d 100644
--- a/ACE/examples/Connection/blocking/SPIPE-acceptor.cpp
+++ b/ACE/examples/Connection/blocking/SPIPE-acceptor.cpp
@@ -11,7 +11,7 @@
#include "ace/Signal.h"
#include "SPIPE-acceptor.h"
-ACE_RCSID(blocking, SPIPE_acceptor, "$Id$")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
diff --git a/ACE/examples/Connection/blocking/SPIPE-connector.cpp b/ACE/examples/Connection/blocking/SPIPE-connector.cpp
index 071afec6a79..b75f51d47e4 100644
--- a/ACE/examples/Connection/blocking/SPIPE-connector.cpp
+++ b/ACE/examples/Connection/blocking/SPIPE-connector.cpp
@@ -7,13 +7,12 @@
#include "ace/OS_NS_string.h"
#include "ace/SPIPE_Addr.h"
#include "ace/SPIPE_Connector.h"
-#include "ace/Proactor.h"
#include "ace/Get_Opt.h"
#include "ace/Truncate.h"
#include "ace/OS_NS_unistd.h"
#include "SPIPE-connector.h"
-ACE_RCSID(blocking, SPIPE_connector, "$Id$")
+
Peer_Handler::Peer_Handler (int iterations)
: iterations_ (iterations)
@@ -33,7 +32,7 @@ Peer_Handler::open (void *)
if (iterations_ == 0)
{
this->display_menu ();
-
+
if (ACE_Event_Handler::register_stdin_handler (
this,
ACE_Reactor::instance (),
@@ -99,7 +98,7 @@ Peer_Handler::handle_input (ACE_HANDLE)
ACE_TEXT ("close")),
1);
}
-
+
return -1;
}
else
@@ -107,7 +106,7 @@ Peer_Handler::handle_input (ACE_HANDLE)
this->display_menu ();
}
}
-
+
return 0;
}
@@ -133,7 +132,7 @@ Peer_Handler::display_menu (void)
IPC_Client::IPC_Client (void)
: iterations_ (0),
- done_handler_ (ACE_Sig_Handler_Ex (ACE_Proactor::end_event_loop))
+ done_handler_ (ACE_Sig_Handler_Ex (ACE_Reactor::end_event_loop))
{
ACE_OS::strcpy (rendezvous_, ACE_TEXT ("acepipe"));
}
diff --git a/ACE/examples/Connection/blocking/test_spipe_acceptor.cpp b/ACE/examples/Connection/blocking/test_spipe_acceptor.cpp
index 023680411c1..98a30edcded 100644
--- a/ACE/examples/Connection/blocking/test_spipe_acceptor.cpp
+++ b/ACE/examples/Connection/blocking/test_spipe_acceptor.cpp
@@ -4,7 +4,7 @@
#include "SPIPE-acceptor.h"
-ACE_RCSID(blocking, test_spipe_acceptor, "$Id$")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
diff --git a/ACE/examples/Connection/blocking/test_spipe_connector.cpp b/ACE/examples/Connection/blocking/test_spipe_connector.cpp
index e10cc023a6f..eb3e0824330 100644
--- a/ACE/examples/Connection/blocking/test_spipe_connector.cpp
+++ b/ACE/examples/Connection/blocking/test_spipe_connector.cpp
@@ -4,11 +4,11 @@
#include "SPIPE-connector.h"
-ACE_RCSID(blocking, test_spipe_connector, "$Id$")
-int
-ACE_TMAIN (int argc, ACE_TCHAR *argv[])
-{
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
// Perform Service_Config initializations
ACE_Service_Config daemon (argv[0]);
@@ -16,6 +16,6 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
if (peer_connector.init (argc, argv) == -1)
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("init")), -1);
-
+
return peer_connector.svc ();
-}
+}
diff --git a/ACE/examples/Connection/misc/Connection_Handler.cpp b/ACE/examples/Connection/misc/Connection_Handler.cpp
index 23b8457b0ac..efe96f514c0 100644
--- a/ACE/examples/Connection/misc/Connection_Handler.cpp
+++ b/ACE/examples/Connection/misc/Connection_Handler.cpp
@@ -1,20 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = FILENAME
-// Connection_Handler.cpp
-//
-// = DESCRIPTION
-// This test illustrates how to use the Acceptor pattern to
-// create multiple threads, each running its own Reactor. You
-// can connect to this via telnet and keep typing until you enter
-// '^D'.
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Connection_Handler.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates how to use the Acceptor pattern to
+ * create multiple threads, each running its own Reactor. You
+ * can connect to this via telnet and keep typing until you enter
+ * '^D'.
+ *
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#include "ace/Acceptor.h"
#include "ace/SOCK_Acceptor.h"
@@ -24,7 +24,7 @@
#include "Connection_Handler.h"
-ACE_RCSID(misc, Connection_Handler, "$Id$")
+
int
Connection_Handler::open (void *)
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/misc/test_upipe.cpp b/ACE/examples/Connection/misc/test_upipe.cpp
index bc786f428fe..5a1b893ae4f 100644
--- a/ACE/examples/Connection/misc/test_upipe.cpp
+++ b/ACE/examples/Connection/misc/test_upipe.cpp
@@ -11,7 +11,7 @@
#include "ace/Connector.h"
#include "ace/UPIPE_Addr.h"
-ACE_RCSID(misc, test_upipe, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Connection/non_blocking/CPP-acceptor.cpp b/ACE/examples/Connection/non_blocking/CPP-acceptor.cpp
index 12c80c1d939..608745d721f 100644
--- a/ACE/examples/Connection/non_blocking/CPP-acceptor.cpp
+++ b/ACE/examples/Connection/non_blocking/CPP-acceptor.cpp
@@ -9,7 +9,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Signal.h"
-ACE_RCSID(non_blocking, CPP_acceptor, "$Id$")
+
#define PR_ST_1 ACE_PEER_STREAM_1
#define PR_ST_2 ACE_PEER_STREAM_2
diff --git a/ACE/examples/Connection/non_blocking/CPP-connector.cpp b/ACE/examples/Connection/non_blocking/CPP-connector.cpp
index 94ac62fc28f..a856a88f8af 100644
--- a/ACE/examples/Connection/non_blocking/CPP-connector.cpp
+++ b/ACE/examples/Connection/non_blocking/CPP-connector.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Signal.h"
-ACE_RCSID(non_blocking, CPP_connector, "$Id$")
+
#define PR_ST_1 ACE_PEER_STREAM_1
#define PR_ST_2 ACE_PEER_STREAM_2
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/Connection/non_blocking/test_lsock_acceptor.cpp b/ACE/examples/Connection/non_blocking/test_lsock_acceptor.cpp
index cdfcfe5e65c..b220191ca37 100644
--- a/ACE/examples/Connection/non_blocking/test_lsock_acceptor.cpp
+++ b/ACE/examples/Connection/non_blocking/test_lsock_acceptor.cpp
@@ -23,10 +23,6 @@ ACE_TMAIN (int, ACE_TCHAR *argv[])
#include "ace/UNIX_Addr.h"
#include "CPP-acceptor.h"
-ACE_RCSID (non_blocking,
- test_lsock_acceptor,
- "$Id$")
-
typedef Svc_Handler<ACE_LSOCK_STREAM> SVC_HANDLER;
typedef IPC_Server<SVC_HANDLER, ACE_LSOCK_ACCEPTOR> IPC_SERVER;
diff --git a/ACE/examples/Connection/non_blocking/test_lsock_connector.cpp b/ACE/examples/Connection/non_blocking/test_lsock_connector.cpp
index 486fda797e8..dd40b518e25 100644
--- a/ACE/examples/Connection/non_blocking/test_lsock_connector.cpp
+++ b/ACE/examples/Connection/non_blocking/test_lsock_connector.cpp
@@ -19,7 +19,7 @@ ACE_TMAIN (int, ACE_TCHAR *argv[])
#include "ace/UNIX_Addr.h"
#include "CPP-connector.h"
-ACE_RCSID(non_blocking, test_lsock_connector, "$Id$")
+
typedef Peer_Handler<ACE_LSOCK_STREAM> PEER_HANDLER;
typedef IPC_Client<PEER_HANDLER, ACE_LSOCK_CONNECTOR> IPC_CLIENT;
diff --git a/ACE/examples/Connection/non_blocking/test_sock_acceptor.cpp b/ACE/examples/Connection/non_blocking/test_sock_acceptor.cpp
index 6a9b9fcdcbb..00621e8d148 100644
--- a/ACE/examples/Connection/non_blocking/test_sock_acceptor.cpp
+++ b/ACE/examples/Connection/non_blocking/test_sock_acceptor.cpp
@@ -6,12 +6,6 @@
#include "CPP-acceptor.h"
-
-ACE_RCSID (non_blocking,
- test_sock_acceptor,
- "$Id$")
-
-
typedef Svc_Handler<ACE_SOCK_STREAM> SVC_HANDLER;
typedef IPC_Server<SVC_HANDLER, ACE_SOCK_ACCEPTOR> IPC_SERVER;
diff --git a/ACE/examples/Connection/non_blocking/test_sock_connector.cpp b/ACE/examples/Connection/non_blocking/test_sock_connector.cpp
index 66d53e1f0b2..707bd3474c1 100644
--- a/ACE/examples/Connection/non_blocking/test_sock_connector.cpp
+++ b/ACE/examples/Connection/non_blocking/test_sock_connector.cpp
@@ -6,7 +6,7 @@
#include "ace/WFMO_Reactor.h"
#include "CPP-connector.h"
-ACE_RCSID(non_blocking, test_sock_connector, "$Id$")
+
typedef Peer_Handler<ACE_SOCK_STREAM> PEER_HANDLER;
typedef IPC_Client<PEER_HANDLER, ACE_SOCK_CONNECTOR> IPC_CLIENT;
diff --git a/ACE/examples/Connection/non_blocking/test_spipe_acceptor.cpp b/ACE/examples/Connection/non_blocking/test_spipe_acceptor.cpp
index ed33bb31683..fdcc41e7992 100644
--- a/ACE/examples/Connection/non_blocking/test_spipe_acceptor.cpp
+++ b/ACE/examples/Connection/non_blocking/test_spipe_acceptor.cpp
@@ -6,12 +6,6 @@
#include "CPP-acceptor.h"
-
-ACE_RCSID (non_blocking,
- test_spipe_acceptor,
- "$Id$")
-
-
#if !defined (ACE_WIN32)
typedef Svc_Handler<ACE_SPIPE_STREAM> SVC_HANDLER;
typedef IPC_Server<SVC_HANDLER, ACE_SPIPE_ACCEPTOR> IPC_SERVER;
diff --git a/ACE/examples/Connection/non_blocking/test_spipe_connector.cpp b/ACE/examples/Connection/non_blocking/test_spipe_connector.cpp
index fd5641f482d..0709a7cfc04 100644
--- a/ACE/examples/Connection/non_blocking/test_spipe_connector.cpp
+++ b/ACE/examples/Connection/non_blocking/test_spipe_connector.cpp
@@ -6,7 +6,7 @@
#include "ace/SPIPE_Addr.h"
#include "CPP-connector.h"
-ACE_RCSID(non_blocking, test_spipe_connector, "$Id$")
+
#if !defined (ACE_WIN32)
typedef Peer_Handler<ACE_SPIPE_STREAM> PEER_HANDLER;
diff --git a/ACE/examples/Connection/non_blocking/test_tli_acceptor.cpp b/ACE/examples/Connection/non_blocking/test_tli_acceptor.cpp
index 04cfb488cbb..f7fac8948e5 100644
--- a/ACE/examples/Connection/non_blocking/test_tli_acceptor.cpp
+++ b/ACE/examples/Connection/non_blocking/test_tli_acceptor.cpp
@@ -7,10 +7,6 @@
#include "ace/Service_Config.h"
#include "CPP-acceptor.h"
-ACE_RCSID (non_blocking,
- test_tli_acceptor,
- "$Id$")
-
#if defined (ACE_HAS_TLI)
typedef Svc_Handler<ACE_TLI_STREAM> SVC_HANDLER;
typedef IPC_Server<SVC_HANDLER, ACE_TLI_ACCEPTOR> IPC_SERVER;
diff --git a/ACE/examples/Connection/non_blocking/test_tli_connector.cpp b/ACE/examples/Connection/non_blocking/test_tli_connector.cpp
index 0f1a2bd6064..b6b32996cd9 100644
--- a/ACE/examples/Connection/non_blocking/test_tli_connector.cpp
+++ b/ACE/examples/Connection/non_blocking/test_tli_connector.cpp
@@ -6,7 +6,7 @@
#include "ace/INET_Addr.h"
#include "CPP-connector.h"
-ACE_RCSID(non_blocking, test_tli_connector, "$Id$")
+
#if defined (ACE_HAS_TLI)
diff --git a/ACE/examples/DLL/Magazine.h b/ACE/examples/DLL/Magazine.h
index 6555974494f..de68758e11f 100644
--- a/ACE/examples/DLL/Magazine.h
+++ b/ACE/examples/DLL/Magazine.h
@@ -1,42 +1,40 @@
/* -*- C++ -*- */
-// $Id$
-// ===========================================================
-//
-//
-// = LIBRARY
-// ACE_wrappers/examples/DLL
-//
-// = FILENAME
-// Magazine.h
-//
-// = DESCRIPTION
-// Abstract class whose methods are implemented by the derived
-// classes.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ===========================================================
+//=============================================================================
+/**
+ * @file Magazine.h
+ *
+ * $Id$
+ *
+ * Abstract class whose methods are implemented by the derived
+ * classes.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef MAGAZINE_H
#define MAGAZINE_H
-class Magazine
+/**
+ * @class Magazine
+ *
+ * @brief This is an abstract class used in the DLL example.
+ *
+ * This class simply is an inetrface which the derived classes
+ * will exploit.
+ */
+class Magazine
{
- // = TITLE
- // This is an abstract class used in the DLL example.
- //
- // = DESCRIPTION
- // This class simply is an inetrface which the derived classes
- // will exploit.
public:
+ /// No-op virtual destructor.
virtual ~Magazine (void) {};
- // No-op virtual destructor.
-
+
+ /// This method gives the title of the magazine.
virtual void title (void) = 0;
- // This method gives the title of the magazine.
};
#endif /* MAGAZINE_H */
diff --git a/ACE/examples/DLL/Newsweek.h b/ACE/examples/DLL/Newsweek.h
index 79355e74cbd..a4c09786c5d 100644
--- a/ACE/examples/DLL/Newsweek.h
+++ b/ACE/examples/DLL/Newsweek.h
@@ -1,22 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-
-// ===========================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/DLL
-//
-// = FILENAME
-// Newsweek.h
-//
-// = DESCRIPTION
-// This is a derived class from Magazine which is a magazine
-// pertaining to news and information.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ===========================================================
+
+//=============================================================================
+/**
+ * @file Newsweek.h
+ *
+ * $Id$
+ *
+ * This is a derived class from Magazine which is a magazine
+ * pertaining to news and information.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef NEWSWEEK_H
#define NEWSWEEK_H
@@ -29,14 +26,16 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class Newsweek
+ *
+ * @brief This is an derived class of Magazine.
+ *
+ * Polymoriphism is exploited and an object pointer
+ * of Magazine is bound to the Newsweek object at runtime.
+ */
class Newsweek : public Magazine
{
- //= TITLE
- // This is an derived class of Magazine.
- //
- //= DESCRIPTION
- // Polymoriphism is exploited and an object pointer
- // of Magazine is bound to the Newsweek object at runtime.
public:
// This is the abstract class method which describes the magazine.
diff --git a/ACE/examples/DLL/Today.h b/ACE/examples/DLL/Today.h
index 00c2d4b9c04..91d4d5eb04e 100644
--- a/ACE/examples/DLL/Today.h
+++ b/ACE/examples/DLL/Today.h
@@ -1,22 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-
-// ===========================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/DLL
-//
-// = FILENAME
-// Today.h
-//
-// = DESCRIPTION
-// This class denotes the Today magazine which is derived from
-// Magazine.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ===========================================================
+
+//=============================================================================
+/**
+ * @file Today.h
+ *
+ * $Id$
+ *
+ * This class denotes the Today magazine which is derived from
+ * Magazine.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef TODAY_H
#define TODAY_H
@@ -29,14 +26,16 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class Today
+ *
+ * @brief This is an derived class of Magazine.
+ *
+ * Polymoriphism is exploited and an object pointer of Magazine
+ * is bound to the Today object at runtime.
+ */
class Today : public Magazine
{
- // = TITLE
- // This is an derived class of Magazine.
- //
- // = DESCRIPTION
- // Polymoriphism is exploited and an object pointer of Magazine
- // is bound to the Today object at runtime.
public:
// The virtual abstract class method which returns the title of the
diff --git a/ACE/examples/DLL/test_dll.cpp b/ACE/examples/DLL/test_dll.cpp
index 2831592a0ce..fab812ecdac 100644
--- a/ACE/examples/DLL/test_dll.cpp
+++ b/ACE/examples/DLL/test_dll.cpp
@@ -8,7 +8,7 @@
#include "ace/Auto_Ptr.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(DLL, test_dll, "$Id$")
+
typedef Magazine* (*Magazine_Creator) (void);
diff --git a/ACE/examples/Export/run_test.pl b/ACE/examples/Export/run_test.pl
index 11e98b17b94..e77d07e2c81 100755
--- a/ACE/examples/Export/run_test.pl
+++ b/ACE/examples/Export/run_test.pl
@@ -6,12 +6,18 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# -*- perl -*-
use lib "$ENV{ACE_ROOT}/bin";
-use PerlACE::Run_Test;
+use PerlACE::TestTarget;
-$TEST = new PerlACE::Process ("test");
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
-$status = $TEST->SpawnWaitKill (20);
+$SV = $server->CreateProcess ("test");
-$status = 1 if ($status < 0);
+$test = $SV->SpawnWaitKill ($server->ProcessStartWaitInterval());
+
+if ($test != 0) {
+ print STDERR "ERROR: test returned $test\n";
+ exit 1;
+}
+
+exit 0;
-exit $status;
diff --git a/ACE/examples/IOStream/client/iostream_client.cpp b/ACE/examples/IOStream/client/iostream_client.cpp
index e8ddedf9b44..a960d74b782 100644
--- a/ACE/examples/IOStream/client/iostream_client.cpp
+++ b/ACE/examples/IOStream/client/iostream_client.cpp
@@ -6,10 +6,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID (client,
- iostream_client,
- "$Id$")
-
// This client is a simple example of using the ACE_IOStream and
// ACE_Streambuf_T templates to create an object based on ACE_*_Stream
// classes, which mimic a C++ iostream.
diff --git a/ACE/examples/IOStream/server/iostream_server.cpp b/ACE/examples/IOStream/server/iostream_server.cpp
index 1cd6ca006de..b7d2df39a6e 100644
--- a/ACE/examples/IOStream/server/iostream_server.cpp
+++ b/ACE/examples/IOStream/server/iostream_server.cpp
@@ -13,8 +13,6 @@
#include "iostream_server.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(server, iostream_server, "$Id$")
-
#if !defined (ACE_LACKS_ACE_IOSTREAM)
int
diff --git a/ACE/examples/IOStream/server/iostream_server.h b/ACE/examples/IOStream/server/iostream_server.h
index e5f4cbd63b9..2f0dab58085 100644
--- a/ACE/examples/IOStream/server/iostream_server.h
+++ b/ACE/examples/IOStream/server/iostream_server.h
@@ -19,14 +19,7 @@
typedef ACE_IOStream<ACE_SOCK_Stream> ACE_SOCK_IOStream;
-// Need to handle brain-dead C++ compilers.
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-#define ACE_SOCK_IOSTREAM ACE_SOCK_IOStream
-#else
-#define ACE_SOCK_IOSTREAM ACE_SOCK_IOStream, ACE_INET_Addr
-#endif /* ACE_HAS_TYPENAME_KEYWORD */
-
-class Handler : public ACE_Svc_Handler<ACE_SOCK_IOSTREAM, ACE_NULL_SYNCH>
+class Handler : public ACE_Svc_Handler<ACE_SOCK_IOStream, ACE_NULL_SYNCH>
// = TITLE
// Extend the <ACE_Svc_Handler> template to do our bidding.
//
diff --git a/ACE/examples/IPC_SAP/ATM_SAP/CPP-client.cpp b/ACE/examples/IPC_SAP/ATM_SAP/CPP-client.cpp
index 9d847d843e4..9faed9fbd4f 100644
--- a/ACE/examples/IPC_SAP/ATM_SAP/CPP-client.cpp
+++ b/ACE/examples/IPC_SAP/ATM_SAP/CPP-client.cpp
@@ -6,7 +6,7 @@
#include "ace/High_Res_Timer.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ATM_SAP, CPP_client, "$Id$")
+
#if defined (ACE_HAS_ATM)
diff --git a/ACE/examples/IPC_SAP/ATM_SAP/CPP-server.cpp b/ACE/examples/IPC_SAP/ATM_SAP/CPP-server.cpp
index 81082fea0ef..81c02bb3bd5 100644
--- a/ACE/examples/IPC_SAP/ATM_SAP/CPP-server.cpp
+++ b/ACE/examples/IPC_SAP/ATM_SAP/CPP-server.cpp
@@ -6,7 +6,7 @@
#include "ace/High_Res_Timer.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(ATM_SAP, CPP_ATM_server, "$Id$")
+
#if defined (ACE_HAS_ATM)
// ACE_ATM Server
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/reader/reader.cpp b/ACE/examples/IPC_SAP/DEV_SAP/reader/reader.cpp
index 60bfa446c2f..d3658c424e4 100644
--- a/ACE/examples/IPC_SAP/DEV_SAP/reader/reader.cpp
+++ b/ACE/examples/IPC_SAP/DEV_SAP/reader/reader.cpp
@@ -4,7 +4,7 @@
#include "ace/DEV_Connector.h"
#include "ace/TTY_IO.h"
-ACE_RCSID(reader, reader, "$Id$")
+
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
@@ -50,7 +50,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
1);
// Read till character 'q'.
- for (char readback = 'x'; readback != 'q'; )
+ for (char readback = 'x'; readback != 'q'; )
{
ssize_t bytes_read =
read_dev.recv ((void *) &readback, 1);
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/DEV_SAP/writer/writer.cpp b/ACE/examples/IPC_SAP/DEV_SAP/writer/writer.cpp
index 965bd40f500..f011530843f 100644
--- a/ACE/examples/IPC_SAP/DEV_SAP/writer/writer.cpp
+++ b/ACE/examples/IPC_SAP/DEV_SAP/writer/writer.cpp
@@ -4,7 +4,7 @@
#include "ace/TTY_IO.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(writer, writer, "$Id$")
+
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
diff --git a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp
index 408ac3af4e1..00e982cfa19 100644
--- a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp
+++ b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp
@@ -7,7 +7,7 @@
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(FIFO_SAP, FIFO_Msg_client, "$Id$")
+
#if defined (ACE_HAS_STREAM_PIPES)
diff --git a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp
index de1ace338ff..e268f67eed7 100644
--- a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp
+++ b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_stropts.h"
#include "ace/OS_main.h"
-ACE_RCSID(FIFO_SAP, FIFO_Msg_server, "$Id$")
+
#if defined (ACE_HAS_STREAM_PIPES)
diff --git a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp
index 3ca4859e638..f2d5e3bcb82 100644
--- a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp
+++ b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp
@@ -7,7 +7,7 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_main.h"
-ACE_RCSID(FIFO_SAP, FIFO_client, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp
index 4cd32c03449..a30763bd7d6 100644
--- a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp
+++ b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp
@@ -6,7 +6,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_main.h"
-ACE_RCSID(FIFO_SAP, FIFO_server, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp
index b23def7de34..771997b0cf5 100644
--- a/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp
+++ b/ACE/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp
@@ -14,7 +14,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_fcntl.h"
-ACE_RCSID(FIFO_SAP, FIFO_test, "$Id$")
+
#define PERMS 0666
#define EXEC_NAME "more"
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/client.cpp b/ACE/examples/IPC_SAP/FILE_SAP/client.cpp
index 1bab666057e..514ca9a27ef 100644
--- a/ACE/examples/IPC_SAP/FILE_SAP/client.cpp
+++ b/ACE/examples/IPC_SAP/FILE_SAP/client.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(FILE_SAP, client, "$Id$")
+
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
@@ -81,7 +81,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
1);
ACE_OS::printf ("read back :%s\n",
- readback);
+ ACE_TEXT_ALWAYS_CHAR (readback));
if (cli_file.close () == -1)
ACE_ERROR_RETURN ((LM_ERROR,
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/C-inclient.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/C-inclient.cpp
index 9db1e0f2d8f..bd6926cd182 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/C-inclient.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/C-inclient.cpp
@@ -9,7 +9,7 @@
#include "ace/OS_NS_netdb.h"
#include "ace/Default_Constants.h"
-ACE_RCSID(SOCK_SAP, C_inclient, "$Id$")
+
/* BSD socket client */
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp
index f42dcc82dd1..450e6e5ee8a 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp
@@ -10,7 +10,7 @@
#include "ace/OS_NS_errno.h"
#include "ace/Default_Constants.h"
-ACE_RCSID(SOCK_SAP, C_inserver, "$Id$")
+
/* BSD socket server. */
@@ -82,12 +82,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
continue;
}
-#if !defined(_UNICOS)
int addr_len = sizeof cli_addr.sin_addr.s_addr;
-#else /* ! _UNICOS */
- // sizeof on bitfield fails
- int addr_len = sizeof cli_addr.sin_addr; // 32 bit biffield in UNICOS
-#endif /* ! _UNICOS */
hp = ACE_OS::gethostbyaddr ((char *) &cli_addr.sin_addr,
addr_len, AF_INET);
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp
index 675c86de5e7..dc77a267b17 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp
@@ -20,7 +20,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_main.h"
-ACE_RCSID(SOCK_SAP, CPP_inclient, "$Id$")
+
Options::Options (void)
: host_ (ACE_DEFAULT_SERVER_HOST),
@@ -69,7 +69,7 @@ Options::init (void)
// Copy the length into the beginning of the message.
ACE_UINT32 length =
ACE_NTOHL (ACE_Utils::truncate_cast<ACE_UINT32> (this->message_len_));
-
+
ACE_OS::memcpy ((void *) this->message_buf_,
(void *) &length,
sizeof length);
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp
index fe0d49d4ce4..6108e378e70 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp
@@ -15,7 +15,7 @@
#include "CPP-inserver-fancy.h"
-ACE_RCSID(SOCK_SAP, CPP_inserver_fancy, "$Id$")
+
// Forward declaration.
class Handler;
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp
index a281d2e380d..049d9fd4978 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp
@@ -13,7 +13,7 @@
#include "ace/OS_NS_poll.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(SOCK_SAP, CPP_inserver_poll, "$Id$")
+
#if defined (ACE_HAS_POLL)
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
index b39d33940fa..2fb30695bbc 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
@@ -13,7 +13,7 @@
#include "ace/OS_NS_sys_select.h"
#include "ace/OS_main.h"
-ACE_RCSID(SOCK_SAP, CPP_inserver, "$Id$")
+
// Are we running verbosely?
static int verbose = 0;
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp
index 3d297f116c0..39c38b1bb03 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp
@@ -15,7 +15,7 @@
#include "ace/High_Res_Timer.h"
-ACE_RCSID(SOCK_SAP, CPP_inclient, "$Id$")
+
static int
run_client (void)
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp
index 4ef76e51b38..d3cce8aac52 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp
@@ -10,7 +10,7 @@
#include "ace/Handle_Set.h"
#include "ace/Profile_Timer.h"
-ACE_RCSID(SOCK_SAP, CPP_inserver, "$Id$")
+
static int
run_event_loop (u_short port)
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp
index b9075c683bf..371fbf2d618 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_main.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(SOCK_SAP, CPP_unclient, "$Id$")
+
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
int
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp
index cddfe787d92..8eb411674f5 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp
@@ -9,7 +9,7 @@
#include "ace/OS_main.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(SOCK_SAP, CPP_unserver, "$Id$")
+
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp
index 80c614ca987..5bfe29e205f 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp
@@ -6,7 +6,7 @@
#include "ace/Log_Msg.h"
#include "ace/OS_main.h"
-ACE_RCSID(SOCK_SAP, FD_unclient, "$Id$")
+
#if defined (ACE_HAS_MSG) && !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
// ACE_LSOCK Client.
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp
index b629b9f0dd8..b6476292a09 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp
@@ -10,7 +10,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(SOCK_SAP, FD_unserver, "$Id$")
+
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/run_test.sh b/ACE/examples/IPC_SAP/SOCK_SAP/run_test.sh
index 7f0a4dbdaa7..bb7885fda57 100755
--- a/ACE/examples/IPC_SAP/SOCK_SAP/run_test.sh
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/run_test.sh
@@ -9,7 +9,7 @@ user=`whoami`
iterations=1000
if [ $# -ne 1 ]; then
- echo $usage;
+ echo $usage;
exit 1
fi
threads=$1;
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/SPIPE_SAP/NPClient.cpp b/ACE/examples/IPC_SAP/SPIPE_SAP/NPClient.cpp
index 5b7cb381939..c03c1a7e896 100644
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/NPClient.cpp
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/NPClient.cpp
@@ -9,7 +9,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_Memory.h"
-ACE_RCSID(SPIPE_SAP, NPClient, "$Id$")
+
#if defined (ACE_WIN32)
#define MAKE_PIPE_NAME(X) ACE_TEXT ("\\\\.\\pipe\\") ACE_TEXT (X)
diff --git a/ACE/examples/IPC_SAP/SPIPE_SAP/NPServer.cpp b/ACE/examples/IPC_SAP/SPIPE_SAP/NPServer.cpp
index 2c5a4dfd7c5..b13e9d76462 100644
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/NPServer.cpp
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/NPServer.cpp
@@ -6,7 +6,7 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(SPIPE_SAP, NPServer, "$Id$")
+
#if defined (ACE_WIN32)
#define MAKE_PIPE_NAME(X) ACE_TEXT ("\\\\.\\pipe\\") ACE_TEXT (X)
diff --git a/ACE/examples/IPC_SAP/SPIPE_SAP/client.cpp b/ACE/examples/IPC_SAP/SPIPE_SAP/client.cpp
index ad0ee029dbd..5f66a37d91e 100644
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/client.cpp
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/client.cpp
@@ -7,7 +7,7 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(SPIPE_SAP, client, "$Id$")
+
#if defined (ACE_HAS_STREAM_PIPES)
diff --git a/ACE/examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp b/ACE/examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp
index e73533bef44..7eb68d9f57f 100644
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Time_Value.h"
-ACE_RCSID(SPIPE_SAP, consumer_msg, "$Id$")
+
#if defined (ACE_HAS_STREAM_PIPES)
diff --git a/ACE/examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp b/ACE/examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp
index d477c52c389..3c0c88dd624 100644
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Time_Value.h"
-ACE_RCSID(SPIPE_SAP, consumer_read, "$Id$")
+
#if defined (ACE_HAS_STREAM_PIPES)
diff --git a/ACE/examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp b/ACE/examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp
index 051190c1f0d..ff717c23f80 100644
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp
@@ -10,7 +10,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Time_Value.h"
-ACE_RCSID(SPIPE_SAP, producer_msg, "$Id$")
+
#if defined (ACE_HAS_STREAM_PIPES)
diff --git a/ACE/examples/IPC_SAP/SPIPE_SAP/producer_read.cpp b/ACE/examples/IPC_SAP/SPIPE_SAP/producer_read.cpp
index f04f7961818..f950f8cbbc7 100644
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/producer_read.cpp
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/producer_read.cpp
@@ -7,7 +7,7 @@
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(SPIPE_SAP, producer_read, "$Id$")
+
#if defined (ACE_HAS_STREAM_PIPES)
diff --git a/ACE/examples/IPC_SAP/SPIPE_SAP/server.cpp b/ACE/examples/IPC_SAP/SPIPE_SAP/server.cpp
index bc582f177eb..a568b14e94f 100644
--- a/ACE/examples/IPC_SAP/SPIPE_SAP/server.cpp
+++ b/ACE/examples/IPC_SAP/SPIPE_SAP/server.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_poll.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(SPIPE_SAP, server, "$Id$")
+
#if defined (ACE_HAS_STREAM_PIPES)
diff --git a/ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp b/ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp
index 38a175dd824..ae7c690962b 100644
--- a/ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp
+++ b/ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp
@@ -20,11 +20,6 @@
#include "SSL-client-simple.h"
-ACE_RCSID (SSL_SAP,
- SSL_client_simple,
- "$Id$")
-
-
Options::Options (void)
: host_ (ACE_DEFAULT_SERVER_HOST),
port_ (ACE_DEFAULT_SERVER_PORT),
@@ -222,8 +217,6 @@ Options::oneway_client_test (void)
// locking.
size_t iteration = 0;
- // Keep track of return value.
- int result = 0;
ACE_INT32 len =
ACE_Utils::truncate_cast<ACE_INT32> (this->message_len ());
@@ -246,7 +239,6 @@ Options::oneway_client_test (void)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("send_n")));
- result = -1;
break;
}
@@ -272,9 +264,6 @@ Options::twoway_client_test (void)
// locking.
size_t iteration = 0;
- // Keep track of return value.
- int result = 0;
-
// Timer business.
ACE_High_Res_Timer timer;
@@ -310,7 +299,6 @@ Options::twoway_client_test (void)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("send_n")));
- result = -1;
break;
}
// Receive the reply from the server. Normally, it just sends
@@ -320,7 +308,6 @@ Options::twoway_client_test (void)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("recv")));
- result = -1;
break;
}
diff --git a/ACE/examples/IPC_SAP/SSL_SAP/SSL-client.cpp b/ACE/examples/IPC_SAP/SSL_SAP/SSL-client.cpp
index 2f7f5ef1461..f05804781b0 100644
--- a/ACE/examples/IPC_SAP/SSL_SAP/SSL-client.cpp
+++ b/ACE/examples/IPC_SAP/SSL_SAP/SSL-client.cpp
@@ -19,7 +19,7 @@
#include "SSL-client.h"
-ACE_RCSID(SSL_SAP, SSL_client, "$Id$")
+
Options::Options (void)
: host_ (ACE_DEFAULT_SERVER_HOST),
@@ -63,7 +63,7 @@ Options::init (void)
// Copy the length into the beginning of the message.
ACE_UINT32 length =
ntohl (ACE_Utils::truncate_cast<u_long> (this->message_len_));
-
+
ACE_OS::memcpy ((void *) this->message_buf_,
(void *) &length,
sizeof length);
diff --git a/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp b/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp
index 704d0b35ab6..0ed0aee86fa 100644
--- a/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp
+++ b/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp
@@ -16,10 +16,6 @@
#include "SSL-server-fancy.h"
-ACE_RCSID (SSL_SAP,
- SSL_server_fancy,
- "$Id$")
-
// Forward declaration.
class Handler;
@@ -61,7 +57,7 @@ private:
// Oneway acceptor factory.
};
-class Handler : public ACE_Svc_Handler<ACE_SSL_SOCK_STREAM, ACE_NULL_SYNCH>
+class Handler : public ACE_Svc_Handler<ACE_SSL_SOCK_Stream, ACE_NULL_SYNCH>
{
// = TITLE
// Base class for the oneway and twoway handlers.
diff --git a/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp b/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp
index 23a53a7e7c7..f3388d2e0f1 100644
--- a/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp
+++ b/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp
@@ -10,10 +10,6 @@
#include "ace/Time_Value.h"
#include "ace/SSL/SSL_SOCK_Acceptor.h"
-ACE_RCSID (SSL_SAP,
- SSL_server_poll,
- "$Id$")
-
#if defined (ACE_HAS_POLL)
#include "ace/SSL/SSL_SOCK_Stream.h"
diff --git a/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp b/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp
index 6be3ce47b9e..bfaed70ea9b 100644
--- a/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp
+++ b/ACE/examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp
@@ -10,7 +10,7 @@
#include "ace/SSL/SSL_SOCK_Acceptor.h"
-ACE_RCSID(SSL_SAP, SSL_server_simple, "$Id$")
+
// Are we running verbosely?
static int verbose = 1;
diff --git a/ACE/examples/IPC_SAP/SSL_SAP/SSL-server.cpp b/ACE/examples/IPC_SAP/SSL_SAP/SSL-server.cpp
index d0c512ea554..f5962e266c8 100644
--- a/ACE/examples/IPC_SAP/SSL_SAP/SSL-server.cpp
+++ b/ACE/examples/IPC_SAP/SSL_SAP/SSL-server.cpp
@@ -12,7 +12,7 @@
#include "ace/SSL/SSL_SOCK_Acceptor.h"
-ACE_RCSID(SSL_SAP, SSL_server, "$Id$")
+
// Are we running verbosely?
static int verbose = 0;
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/TLI_SAP/CPP-ATM-client.cpp b/ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp
index bfd464b2c1f..6445d12e6e7 100644
--- a/ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp
+++ b/ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp
@@ -5,7 +5,7 @@
#include "ace/ATM_Addr.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(TLI_SAP, CPP_ATM_client, "$Id$")
+
#if defined (ACE_HAS_FORE_ATM_XTI)
diff --git a/ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp b/ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp
index b3ac025d945..8d9ee5f7816 100644
--- a/ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp
+++ b/ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp
@@ -4,7 +4,7 @@
#include "ace/ATM_Addr.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(TLI_SAP, CPP_ATM_server, "$Id$")
+
#if defined (ACE_HAS_FORE_ATM_XTI)
// ACE_TLI Server
diff --git a/ACE/examples/IPC_SAP/TLI_SAP/CPP-client.cpp b/ACE/examples/IPC_SAP/TLI_SAP/CPP-client.cpp
index 9cd5ba35453..dd45a2d2e84 100644
--- a/ACE/examples/IPC_SAP/TLI_SAP/CPP-client.cpp
+++ b/ACE/examples/IPC_SAP/TLI_SAP/CPP-client.cpp
@@ -7,7 +7,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Time_Value.h"
-ACE_RCSID(TLI_SAP, CPP_client, "$Id$")
+
#if defined (ACE_HAS_TLI)
diff --git a/ACE/examples/IPC_SAP/TLI_SAP/CPP-server.cpp b/ACE/examples/IPC_SAP/TLI_SAP/CPP-server.cpp
index d1b1e4d4a88..6d96933a6eb 100644
--- a/ACE/examples/IPC_SAP/TLI_SAP/CPP-server.cpp
+++ b/ACE/examples/IPC_SAP/TLI_SAP/CPP-server.cpp
@@ -5,7 +5,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(TLI_SAP, CPP_server, "$Id$")
+
#if defined (ACE_HAS_TLI)
// ACE_TLI Server
diff --git a/ACE/examples/IPC_SAP/TLI_SAP/db-client.cpp b/ACE/examples/IPC_SAP/TLI_SAP/db-client.cpp
index e57b502916f..a82ebc91b74 100644
--- a/ACE/examples/IPC_SAP/TLI_SAP/db-client.cpp
+++ b/ACE/examples/IPC_SAP/TLI_SAP/db-client.cpp
@@ -6,8 +6,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(TLI_SAP, db_client, "$Id$")
-
#if defined (ACE_HAS_TLI)
const int MAXLINE = 255;
diff --git a/ACE/examples/IPC_SAP/TLI_SAP/db-server.cpp b/ACE/examples/IPC_SAP/TLI_SAP/db-server.cpp
index 3b547e154a3..28d30aa2399 100644
--- a/ACE/examples/IPC_SAP/TLI_SAP/db-server.cpp
+++ b/ACE/examples/IPC_SAP/TLI_SAP/db-server.cpp
@@ -6,7 +6,7 @@
#include "ace/TLI_Acceptor.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(TLI_SAP, db_server, "$Id$")
+
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_TLI)
diff --git a/ACE/examples/IPC_SAP/TLI_SAP/ftp-client.cpp b/ACE/examples/IPC_SAP/TLI_SAP/ftp-client.cpp
index 28cbf612005..447421a1916 100644
--- a/ACE/examples/IPC_SAP/TLI_SAP/ftp-client.cpp
+++ b/ACE/examples/IPC_SAP/TLI_SAP/ftp-client.cpp
@@ -7,7 +7,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(TLI_SAP, ftp_client, "$Id$")
+
#if defined (ACE_HAS_TLI)
diff --git a/ACE/examples/IPC_SAP/TLI_SAP/ftp-server.cpp b/ACE/examples/IPC_SAP/TLI_SAP/ftp-server.cpp
index 601a90987ff..c96474ddd45 100644
--- a/ACE/examples/IPC_SAP/TLI_SAP/ftp-server.cpp
+++ b/ACE/examples/IPC_SAP/TLI_SAP/ftp-server.cpp
@@ -6,7 +6,7 @@
#include "ace/Thread_Manager.h"
#include "ace/TLI_Acceptor.h"
-ACE_RCSID(TLI_SAP, ftp_server, "$Id$")
+
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_TLI)
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/IPC_SAP/UPIPE_SAP/ex1.cpp b/ACE/examples/IPC_SAP/UPIPE_SAP/ex1.cpp
index 39ad86d5819..41fd8935d42 100644
--- a/ACE/examples/IPC_SAP/UPIPE_SAP/ex1.cpp
+++ b/ACE/examples/IPC_SAP/UPIPE_SAP/ex1.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// ex1.cpp
-//
-// = DESCRIPTION
-// Example for using <ACE_UPIPE_SAP> and <ACE_Thread> for
-// intra-process communication.
-//
-// = AUTHOR
-// Gerhard Lenzer and Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ex1.cpp
+ *
+ * $Id$
+ *
+ * Example for using <ACE_UPIPE_SAP> and <ACE_Thread> for
+ * intra-process communication.
+ *
+ *
+ * @author Gerhard Lenzer and Douglas C. Schmidt
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/OS_NS_string.h"
@@ -23,7 +20,7 @@
#include "ace/UPIPE_Acceptor.h"
#include "ace/UPIPE_Connector.h"
-ACE_RCSID(UPIPE_SAP, ex1, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -45,7 +42,7 @@ peer1 (void *)
ACE_ERROR ((LM_ERROR,
"(%t) peer1 ACE_UPIPE_Connector failed\n"));
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (20),
0);
diff --git a/ACE/examples/IPC_SAP/UPIPE_SAP/ex2.cpp b/ACE/examples/IPC_SAP/UPIPE_SAP/ex2.cpp
index e19a83460ce..d1708caaf93 100644
--- a/ACE/examples/IPC_SAP/UPIPE_SAP/ex2.cpp
+++ b/ACE/examples/IPC_SAP/UPIPE_SAP/ex2.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// ex2.cpp
-//
-// = DESCRIPTION
-// Example for using <ACE_UPIPE_SAP> and <ACE_Thread> for
-// intra-process communication.
-//
-// = AUTHOR
-// Gerhard Lenzer and Douglas C. Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ex2.cpp
+ *
+ * $Id$
+ *
+ * Example for using <ACE_UPIPE_SAP> and <ACE_Thread> for
+ * intra-process communication.
+ *
+ *
+ * @author Gerhard Lenzer and Douglas C. Schmidt
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/UPIPE_Connector.h"
@@ -23,7 +20,7 @@
#include "ace/Auto_Ptr.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(UPIPE_SAP, ex2, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/IPC_SAP/UPIPE_SAP/ex3.cpp b/ACE/examples/IPC_SAP/UPIPE_SAP/ex3.cpp
index 57ff4f34d9e..c5d609d2c73 100644
--- a/ACE/examples/IPC_SAP/UPIPE_SAP/ex3.cpp
+++ b/ACE/examples/IPC_SAP/UPIPE_SAP/ex3.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// ex3.cpp
-//
-// = DESCRIPTION
-// Example for using <ACE_UPIPE_SAP> and <ACE_Thread> for intra-process
-// communication. This example uses char buffers as input/output
-// interface to the <ACE_UPIPE_Stream>.
-//
-// = AUTHOR
-// Gerhard Lenzer and Prashant Jain.
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ex3.cpp
+ *
+ * $Id$
+ *
+ * Example for using <ACE_UPIPE_SAP> and <ACE_Thread> for intra-process
+ * communication. This example uses char buffers as input/output
+ * interface to the <ACE_UPIPE_Stream>.
+ *
+ *
+ * @author Gerhard Lenzer and Prashant Jain.
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/UPIPE_Connector.h"
@@ -24,7 +21,7 @@
#include "ace/Auto_Ptr.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(UPIPE_SAP, ex3, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Log_Msg/Log_Msg_MFC/Resource.h b/ACE/examples/Log_Msg/Log_Msg_MFC/Resource.h
index d1aa3df6ce1..2a0122f05f7 100644
--- a/ACE/examples/Log_Msg/Log_Msg_MFC/Resource.h
+++ b/ACE/examples/Log_Msg/Log_Msg_MFC/Resource.h
@@ -10,7 +10,7 @@
#define IDC_BUTTON1 1000
// Next default values for new objects
-//
+//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 129
diff --git a/ACE/examples/Log_Msg/test_callback.cpp b/ACE/examples/Log_Msg/test_callback.cpp
index e263c9777eb..a72ff2a2fa0 100644
--- a/ACE/examples/Log_Msg/test_callback.cpp
+++ b/ACE/examples/Log_Msg/test_callback.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Log_Msg
-//
-// = FILENAME
-// test_callback.cpp
-//
-// = DESCRIPTION
-// This program tests the <ACE_Log_Msg> class wrt writing to user
-// defined callback objects. In particular, it tests to make sure
-// that nested callbacks don't deadlock.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_callback.cpp
+ *
+ * $Id$
+ *
+ * This program tests the <ACE_Log_Msg> class wrt writing to user
+ * defined callback objects. In particular, it tests to make sure
+ * that nested callbacks don't deadlock.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/Log_Msg.h"
@@ -24,28 +21,31 @@
#include "ace/Log_Record.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(Log_Msg, test_callback, "$Id$")
+
+/**
+ * @class Logger
+ Subclassing from ACE_Log_Msg_Callback means that an instance of
+ * Logger can be a target of a callback.
+ */
class Logger : public ACE_Log_Msg_Callback
-// Subclassing from ACE_Log_Msg_Callback means that an instance of
-// Logger can be a target of a callback.
{
public:
// Constructor sets whether we're testing "recursive" callback
// logging!
Logger (int be_recursive = 1);
+ /// Logging callback hook.
virtual void log (ACE_Log_Record &log_record);
- // Logging callback hook.
void verbose (int be_verbose);
private:
+ /// Flag for testing verbose logging.
int verbose_logging_;
- // Flag for testing verbose logging.
+ /// Flag for testing recursive callback logging.
int recursive_;
- // Flag for testing recursive callback logging.
};
void
@@ -78,7 +78,7 @@ Logger::log (ACE_Log_Record &log_record)
log_record.msg_data ()));
else
ACE_OS::printf ("Recursive Logger callback = %s",
- log_record.msg_data ());
+ ACE_TEXT_ALWAYS_CHAR (log_record.msg_data ()));
}
else
{
@@ -94,7 +94,7 @@ Logger::log (ACE_Log_Record &log_record)
verbose_msg));
else
ACE_OS::printf ("Recursive Logger callback = %s",
- verbose_msg);
+ ACE_TEXT_ALWAYS_CHAR (verbose_msg));
}
}
diff --git a/ACE/examples/Log_Msg/test_log_msg.cpp b/ACE/examples/Log_Msg/test_log_msg.cpp
index a2d40770f56..f6c48cd3bbe 100644
--- a/ACE/examples/Log_Msg/test_log_msg.cpp
+++ b/ACE/examples/Log_Msg/test_log_msg.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Log_Msg
-//
-// = FILENAME
-// test_log_msg.cpp
-//
-// = DESCRIPTION
-// This program tests the ACE_Log_Msg abstraction and demontrates
-// several common use cases.
-//
-// = AUTHOR
-// Douglas Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_log_msg.cpp
+ *
+ * $Id$
+ *
+ * This program tests the ACE_Log_Msg abstraction and demontrates
+ * several common use cases.
+ *
+ *
+ * @author Douglas Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -26,7 +23,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(Log_Msg, test_log_msg, "$Id$")
+
static void
cleanup (void)
diff --git a/ACE/examples/Log_Msg/test_ostream.cpp b/ACE/examples/Log_Msg/test_ostream.cpp
index 3492195fe9d..bb860e68c15 100644
--- a/ACE/examples/Log_Msg/test_ostream.cpp
+++ b/ACE/examples/Log_Msg/test_ostream.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Log_Msg
-//
-// = FILENAME
-// test_ostream.cpp
-//
-// = DESCRIPTION
-// This program tests the Log_Msg abstraction wrt writing to
-// stderr and to a file.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cse.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_ostream.cpp
+ *
+ * $Id$
+ *
+ * This program tests the Log_Msg abstraction wrt writing to
+ * stderr and to a file.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cse.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -24,7 +21,7 @@
#include "ace/Log_Msg.h"
-ACE_RCSID(Log_Msg, test_ostream, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
@@ -76,7 +73,7 @@ ACE_TMAIN (int, ACE_TCHAR *[])
if (infile.bad ())
return 1;
- // This loop should print out the contents of file "output", which should
+ // This loop should print out the contents of file "output", which should
// have the strings "fourth\n" and "fifth\n" in them.
char line[BUFSIZ];
diff --git a/ACE/examples/Logger/Acceptor-server/server_loggerd.cpp b/ACE/examples/Logger/Acceptor-server/server_loggerd.cpp
index f1fbc51da4d..b639dd016aa 100644
--- a/ACE/examples/Logger/Acceptor-server/server_loggerd.cpp
+++ b/ACE/examples/Logger/Acceptor-server/server_loggerd.cpp
@@ -25,8 +25,6 @@
#include "server_loggerd.h"
-ACE_RCSID(Acceptor_server, server_loggerd, "$Id$")
-
// ----------------------------------------
// Return the port number.
diff --git a/ACE/examples/Logger/client/logging_app.cpp b/ACE/examples/Logger/client/logging_app.cpp
index 78b086c9991..3f05d328714 100644
--- a/ACE/examples/Logger/client/logging_app.cpp
+++ b/ACE/examples/Logger/client/logging_app.cpp
@@ -13,8 +13,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(client, logging_app, "$Id$")
-
static u_short LOGGER_PORT = ACE_DEFAULT_SERVER_PORT;
static const ACE_TCHAR *const LOGGER_HOST = ACE_DEFAULT_SERVER_HOST;
static const int MAX_ITERATIONS = 10;
@@ -35,8 +33,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
for (int i = 0; i < max_iterations; i++)
{
- ACE_Log_Record log_record (LM_DEBUG,
- ACE_OS::time ((time_t *) 0),
+ ACE_Log_Record log_record (LM_DEBUG,
+ ACE_OS::time ((time_t *) 0),
ACE_OS::getpid ());
ACE_TCHAR buf[BUFSIZ];
@@ -68,7 +66,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
header << ACE_CDR::ULong (length);
// Use an iovec to send both buffer and payload simultaneously.
- iovec iov[2];
+ iovec iov[2];
iov[0].iov_base = header.begin ()->rd_ptr ();
iov[0].iov_len = 8;
iov[1].iov_base = payload.begin ()->rd_ptr ();
diff --git a/ACE/examples/Logger/simple-server/Logging_Acceptor.cpp b/ACE/examples/Logger/simple-server/Logging_Acceptor.cpp
index 7e5e0d0075c..aebb1622920 100644
--- a/ACE/examples/Logger/simple-server/Logging_Acceptor.cpp
+++ b/ACE/examples/Logger/simple-server/Logging_Acceptor.cpp
@@ -7,7 +7,7 @@
#include "Logging_Handler.h"
#include "Reactor_Singleton.h"
-ACE_RCSID(simple_server, Logging_Acceptor, "$Id$")
+
// Initialize peer_acceptor object.
diff --git a/ACE/examples/Logger/simple-server/Logging_Acceptor.h b/ACE/examples/Logger/simple-server/Logging_Acceptor.h
index 0424a7c3889..33fc2d3d00b 100644
--- a/ACE/examples/Logger/simple-server/Logging_Acceptor.h
+++ b/ACE/examples/Logger/simple-server/Logging_Acceptor.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Logging_Acceptor.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Logging_Acceptor.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef _CLIENT_ACCEPTOR_H
#define _CLIENT_ACCEPTOR_H
@@ -25,22 +22,24 @@
#include "ace/Event_Handler.h"
+/**
+ * @class Logging_Acceptor
+ *
+ * @brief Handle connection requests from remote client clients.
+ *
+ * Accepts client connection requests, creates Logging_Handler's
+ * to process them, and registers these Handlers with the
+ * ACE_Reactor Singleton.
+ */
class Logging_Acceptor : public ACE_Event_Handler
- // = TITLE
- // Handle connection requests from remote client clients.
- //
- // = DESCRIPTION
- // Accepts client connection requests, creates Logging_Handler's
- // to process them, and registers these Handlers with the
- // ACE_Reactor Singleton.
{
friend class Logging_Handler;
public:
+ /// Constructor.
Logging_Acceptor (void);
- // Constructor.
+ /// Initialization.
int open (const ACE_INET_Addr &a);
- // Initialization.
private:
// = Demuxing hooks.
@@ -48,12 +47,12 @@ private:
virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
virtual ACE_HANDLE get_handle (void) const;
+ /// By making this private we ensure that the <Logging_Acceptor> is
+ /// allocated dynamically.
~Logging_Acceptor (void);
- // By making this private we ensure that the <Logging_Acceptor> is
- // allocated dynamically.
+ /// Passive connection acceptor factory.
ACE_SOCK_Acceptor peer_acceptor_;
- // Passive connection acceptor factory.
};
#endif /* _CLIENT_ACCEPTOR_H */
diff --git a/ACE/examples/Logger/simple-server/Logging_Handler.cpp b/ACE/examples/Logger/simple-server/Logging_Handler.cpp
index 55286fff69f..e2b23fccbc1 100644
--- a/ACE/examples/Logger/simple-server/Logging_Handler.cpp
+++ b/ACE/examples/Logger/simple-server/Logging_Handler.cpp
@@ -10,8 +10,6 @@
#include "Logging_Handler.h"
#include "Reactor_Singleton.h"
-ACE_RCSID(simple_server, Logging_Handler, "$Id$")
-
// Default constructor.
Logging_Handler::Logging_Handler (void)
diff --git a/ACE/examples/Logger/simple-server/Logging_Handler.h b/ACE/examples/Logger/simple-server/Logging_Handler.h
index 633e04a167c..4c211a3a04b 100644
--- a/ACE/examples/Logger/simple-server/Logging_Handler.h
+++ b/ACE/examples/Logger/simple-server/Logging_Handler.h
@@ -1,19 +1,16 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Logging_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Logging_Handler.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef _CLIENT_HANDLER_H
#define _CLIENT_HANDLER_H
@@ -28,15 +25,17 @@
#include "ace/SOCK_Stream.h"
#include "ace/os_include/os_netdb.h"
+/**
+ * @class Logging_Handler
+ *
+ * @brief Receive client message from the remote clients.
+ *
+ * This class demonstrates how to receive messages from remote
+ * clients using the notification mechanisms in the
+ * <ACE_Reactor>. In addition, it also illustrates how to
+ * utilize the <ACE_Reactor> timer mechanisms, as well.
+ */
class Logging_Handler : public ACE_Event_Handler
- // = TITLE
- // Receive client message from the remote clients.
- //
- // = DESCRIPTION
- // This class demonstrates how to receive messages from remote
- // clients using the notification mechanisms in the
- // <ACE_Reactor>. In addition, it also illustrates how to
- // utilize the <ACE_Reactor> timer mechanisms, as well.
{
public:
Logging_Handler (void);
@@ -45,8 +44,8 @@ public:
virtual int open (void);
virtual int close (void);
+ /// Conversion operators.
ACE_SOCK_Stream &peer (void);
- // Conversion operators.
protected:
// = Demultiplexing hooks.
@@ -57,15 +56,15 @@ protected:
virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg);
// = Really should be private...
+ /// Ensure dynamic allocation.
virtual ~Logging_Handler (void);
- // Ensure dynamic allocation.
private:
+ /// Host we are connected to.
char host_name_[MAXHOSTNAMELEN + 1];
- // Host we are connected to.
+ /// Connection with client
ACE_SOCK_Stream cli_stream_;
- // Connection with client
};
#endif /* _CLIENT_HANDLER_H */
diff --git a/ACE/examples/Logger/simple-server/Reactor_Singleton.h b/ACE/examples/Logger/simple-server/Reactor_Singleton.h
index ec0653125a9..2a70ae3f657 100644
--- a/ACE/examples/Logger/simple-server/Reactor_Singleton.h
+++ b/ACE/examples/Logger/simple-server/Reactor_Singleton.h
@@ -1,19 +1,16 @@
/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Reactor_Singleton.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
+
+
+//=============================================================================
+/**
+ * @file Reactor_Singleton.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
#ifndef _REACTOR_SINGLETON_H
#define _REACTOR_SINGLETON_H
diff --git a/ACE/examples/Logger/simple-server/server_loggerd.cpp b/ACE/examples/Logger/simple-server/server_loggerd.cpp
index d5296addaad..76eec6c71a2 100644
--- a/ACE/examples/Logger/simple-server/server_loggerd.cpp
+++ b/ACE/examples/Logger/simple-server/server_loggerd.cpp
@@ -14,7 +14,7 @@
#include "Logging_Acceptor.h"
#include "Reactor_Singleton.h"
-ACE_RCSID(simple_server, server_loggerd, "$Id$")
+
static sig_atomic_t finished = 0;
diff --git a/ACE/examples/Map_Manager/test_hash_map_manager.cpp b/ACE/examples/Map_Manager/test_hash_map_manager.cpp
index d4fab2aef94..b3324a46238 100644
--- a/ACE/examples/Map_Manager/test_hash_map_manager.cpp
+++ b/ACE/examples/Map_Manager/test_hash_map_manager.cpp
@@ -9,7 +9,7 @@
#include "ace/OS_NS_stdio.h"
#include "ace/os_include/os_assert.h"
-ACE_RCSID(Map_Manager, test_hash_map_manager, "$Id$")
+
const int MAX_KEY_LEN = 1000;
diff --git a/ACE/examples/Mem_Map/IO-tests/IO_Test.cpp b/ACE/examples/Mem_Map/IO-tests/IO_Test.cpp
index 58b96e2f660..4e94b4658af 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"
@@ -9,7 +9,7 @@
#include "ace/Log_Msg.h"
#include "IO_Test.h"
-ACE_RCSID(IO_tests, IO_Test, "$Id$")
+
@@ -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/IO-tests/test_io.cpp b/ACE/examples/Mem_Map/IO-tests/test_io.cpp
index 20dd3da70d1..67e054fc423 100644
--- a/ACE/examples/Mem_Map/IO-tests/test_io.cpp
+++ b/ACE/examples/Mem_Map/IO-tests/test_io.cpp
@@ -11,7 +11,7 @@
#include "ace/Log_Msg.h"
#include "IO_Test.h"
-ACE_RCSID(IO_tests, test_io, "$Id$")
+
#if !defined(_WIN32)
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/Mem_Map/file-reverse/file-reverse.cpp b/ACE/examples/Mem_Map/file-reverse/file-reverse.cpp
index 37418d7d7fc..e439d6f18ff 100644
--- a/ACE/examples/Mem_Map/file-reverse/file-reverse.cpp
+++ b/ACE/examples/Mem_Map/file-reverse/file-reverse.cpp
@@ -8,7 +8,7 @@
#include "ace/Log_Msg.h"
#include "ace/Truncate.h"
-ACE_RCSID(file_reverse, file_reverse, "$Id$")
+
static void
putline (const char *s)
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/Misc/test_XtReactor1.cpp b/ACE/examples/Misc/test_XtReactor1.cpp
index d7883a6f874..6ac89d4308a 100644
--- a/ACE/examples/Misc/test_XtReactor1.cpp
+++ b/ACE/examples/Misc/test_XtReactor1.cpp
@@ -11,11 +11,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_fcntl.h"
-ACE_RCSID (Misc,
- test_XtReactor1,
- "$Id$")
-
-//#define String XtString
#include <Xm/PushB.h>
class Stdout : public ACE_Event_Handler
diff --git a/ACE/examples/Misc/test_XtReactor2.cpp b/ACE/examples/Misc/test_XtReactor2.cpp
index 7f7faa1826e..907ea92c138 100644
--- a/ACE/examples/Misc/test_XtReactor2.cpp
+++ b/ACE/examples/Misc/test_XtReactor2.cpp
@@ -10,11 +10,6 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID (Misc,
- test_XtReactor2,
- "$Id$")
-
-
#include <Xm/PushB.h>
class Stdin : public ACE_Event_Handler
diff --git a/ACE/examples/Misc/test_dump.cpp b/ACE/examples/Misc/test_dump.cpp
index bbffe66a2bf..1c91c35209b 100644
--- a/ACE/examples/Misc/test_dump.cpp
+++ b/ACE/examples/Misc/test_dump.cpp
@@ -10,7 +10,7 @@
#include "ace/Reactor.h"
-ACE_RCSID(Misc, test_dump, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/examples/Misc/test_dump.h b/ACE/examples/Misc/test_dump.h
index 869c68ce1f2..9945894eb5b 100644
--- a/ACE/examples/Misc/test_dump.h
+++ b/ACE/examples/Misc/test_dump.h
@@ -16,7 +16,7 @@ public:
~SOCK (void) { ACE_REMOVE_OBJECT; }
void dump (void) const {
- ACE_OS::fprintf (stderr, "hello from SOCK = %@\n", this);
+ ACE_DEBUG ((LM_DEBUG, "hello from SOCK = %@\n", this));
}
// ...
@@ -29,7 +29,7 @@ public:
~SOCK_Acceptor (void) { ACE_REMOVE_OBJECT; }
void dump (void) const {
- ACE_OS::fprintf (stderr, "hello from SOCK_Acceptor = %@\n", this);
+ ACE_DEBUG ((LM_DEBUG, "hello from SOCK_Acceptor = %@\n", this));
}
// ...
@@ -42,7 +42,7 @@ public:
~SOCK_Stream (void) { ACE_REMOVE_OBJECT; }
void dump (void) const {
- ACE_OS::fprintf (stderr, "hello from SOCK_Stream = %@\n", this);
+ ACE_DEBUG ((LM_DEBUG, "hello from SOCK_Stream = %@\n", this));
}
// ...
diff --git a/ACE/examples/Misc/test_get_opt.cpp b/ACE/examples/Misc/test_get_opt.cpp
index 720a0a26bd5..e5d98bf9f04 100644
--- a/ACE/examples/Misc/test_get_opt.cpp
+++ b/ACE/examples/Misc/test_get_opt.cpp
@@ -6,7 +6,7 @@
#include "ace/Get_Opt.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Misc, test_get_opt, "$Id$")
+
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
diff --git a/ACE/examples/Misc/test_profile_timer.cpp b/ACE/examples/Misc/test_profile_timer.cpp
index a028956ede3..89c9652bc6a 100644
--- a/ACE/examples/Misc/test_profile_timer.cpp
+++ b/ACE/examples/Misc/test_profile_timer.cpp
@@ -6,7 +6,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Misc, test_profile_timer, "$Id$")
+
static const int DEFAULT_ITERATIONS = 100000000;
diff --git a/ACE/examples/Misc/test_read_buffer.cpp b/ACE/examples/Misc/test_read_buffer.cpp
index 5c53b37b637..98f60cf3a75 100644
--- a/ACE/examples/Misc/test_read_buffer.cpp
+++ b/ACE/examples/Misc/test_read_buffer.cpp
@@ -8,11 +8,6 @@
#include "ace/Read_Buffer.h"
#include "ace/OS_NS_stdlib.h"
-
-ACE_RCSID (Misc,
- test_read_buffer,
- "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
diff --git a/ACE/examples/Misc/test_sstring.cpp b/ACE/examples/Misc/test_sstring.cpp
index 75cfe8e1158..487ed8c2b22 100644
--- a/ACE/examples/Misc/test_sstring.cpp
+++ b/ACE/examples/Misc/test_sstring.cpp
@@ -4,7 +4,7 @@
#include "ace/SString.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Misc, test_sstring, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/examples/Misc/test_timestamp.cpp b/ACE/examples/Misc/test_timestamp.cpp
index e61ddace9b3..cf9c73f7fbc 100644
--- a/ACE/examples/Misc/test_timestamp.cpp
+++ b/ACE/examples/Misc/test_timestamp.cpp
@@ -6,12 +6,12 @@
#include "ace/ACE.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Misc, test_timestamp, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
{
- ACE_TCHAR day_and_time[35];
+ ACE_TCHAR day_and_time[27];
ACE::timestamp (day_and_time,
sizeof day_and_time);
diff --git a/ACE/examples/Misc/test_trace.cpp b/ACE/examples/Misc/test_trace.cpp
index b2d3167d290..862f638291a 100644
--- a/ACE/examples/Misc/test_trace.cpp
+++ b/ACE/examples/Misc/test_trace.cpp
@@ -1,40 +1,36 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Misc
-//
-// = FILENAME
-// test_trace.cpp
-//
-// = DESCRIPTION
-// This example illustrates how to use the ACE tracing feature and
-// the ACE_TRACE macro. It also shows the use of the ACE_Task_Base
-// class running as an "active object".
-//
-// When adding ACE tracing to an application one option is to add
-//
-// #define ACE_NTRACE 0
-//
-// in the line above #include "ace/Log_Msg.h". That's the approach shown below.
-//
-// Another option is to add this line in $ACE_ROOT/ace/config.h.
-// Note, however, that if you add the line in config.h, you need to
-// add it *after* you've built ACE, i.e., don't build ACE with it
-// set to 0 as then you will get all the internal ACE_TRACE calls
-// showing up as well! In a nutshell, in this second option you
-// do this:
-//
-// 1. Build ACE without tracing (i.e., don't #define ACE_NTRACE 0 in config.h)
-// 2. Add #define ACE_NTRACE 0 in config.h
-// 3. Build your app with tracing.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_trace.cpp
+ *
+ * $Id$
+ *
+ * This example illustrates how to use the ACE tracing feature and
+ * the ACE_TRACE macro. It also shows the use of the ACE_Task_Base
+ * class running as an "active object".
+ *
+ * When adding ACE tracing to an application one option is to add
+ *
+ * #define ACE_NTRACE 0
+ *
+ * in the line above #include "ace/Log_Msg.h". That's the approach shown below.
+ *
+ * Another option is to add this line in $ACE_ROOT/ace/config.h.
+ * Note, however, that if you add the line in config.h, you need to
+ * add it *after* you've built ACE, i.e., don't build ACE with it
+ * set to 0 as then you will get all the internal ACE_TRACE calls
+ * showing up as well! In a nutshell, in this second option you
+ * do this:
+ *
+ * 1. Build ACE without tracing (i.e., don't #define ACE_NTRACE 0 in config.h)
+ * 2. Add #define ACE_NTRACE 0 in config.h
+ * 3. Build your app with tracing.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> and Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
// Enable tracing
#define ACE_NTRACE 0
@@ -43,7 +39,7 @@
#include "ace/Signal.h"
#include "ace/Task.h"
-ACE_RCSID(Misc, test_trace, "$Id$")
+
class My_Task : public ACE_Task_Base
{
@@ -61,8 +57,8 @@ public:
}
private:
+ /// Depth of the recursion.
size_t depth_;
- // Depth of the recursion.
};
int
diff --git a/ACE/examples/Monitor/Bytes_Sent/Bytes_Sent.mpc b/ACE/examples/Monitor/Bytes_Sent/Bytes_Sent.mpc
index fa6c6650f9d..b4285e49035 100644
--- a/ACE/examples/Monitor/Bytes_Sent/Bytes_Sent.mpc
+++ b/ACE/examples/Monitor/Bytes_Sent/Bytes_Sent.mpc
@@ -1,9 +1,7 @@
// $Id$
-project (*) : aceexe, ace_mc, avoids_ace_for_tao {
+project (*) : aceexe, ace_mc, avoids_ace_for_tao, mc_test_utils {
exename = bytes_sent
- after += MC_Test_Utilities
- libs += MC_Test_Utilities
source_files {
bytes_sent.cpp
diff --git a/ACE/examples/Monitor/CPU_Load/CPU_Load.mpc b/ACE/examples/Monitor/CPU_Load/CPU_Load.mpc
index c8a72a5e382..097071285cb 100644
--- a/ACE/examples/Monitor/CPU_Load/CPU_Load.mpc
+++ b/ACE/examples/Monitor/CPU_Load/CPU_Load.mpc
@@ -1,9 +1,7 @@
// $Id$
-project (*) : aceexe, ace_mc, avoids_ace_for_tao {
+project (*) : aceexe, ace_mc, avoids_ace_for_tao, mc_test_utils {
exename = cpu_load
- after += MC_Test_Utilities
- libs += MC_Test_Utilities
source_files {
cpu_load.cpp
diff --git a/ACE/examples/Monitor/Constraint/Constraint.mpc b/ACE/examples/Monitor/Constraint/Constraint.mpc
index 014bf35b768..b02006dac3e 100644
--- a/ACE/examples/Monitor/Constraint/Constraint.mpc
+++ b/ACE/examples/Monitor/Constraint/Constraint.mpc
@@ -1,9 +1,7 @@
// $Id$
-project (*) : aceexe, ace_mc, avoids_ace_for_tao {
+project (*) : aceexe, ace_mc, avoids_ace_for_tao, mc_test_utils {
exename = constraint
- after += MC_Test_Utilities
- libs += MC_Test_Utilities
source_files {
constraint.cpp
diff --git a/ACE/examples/Monitor/Group/Group.mpc b/ACE/examples/Monitor/Group/Group.mpc
index 1dbb76763ea..bd17d8ddd41 100644
--- a/ACE/examples/Monitor/Group/Group.mpc
+++ b/ACE/examples/Monitor/Group/Group.mpc
@@ -1,9 +1,7 @@
// $Id$
-project (*) : aceexe, ace_mc, avoids_ace_for_tao {
+project (*) : aceexe, ace_mc, avoids_ace_for_tao, mc_test_utils {
exename = group
- after += MC_Test_Utilities
- libs += MC_Test_Utilities
source_files {
group.cpp
diff --git a/ACE/examples/Monitor/MC_Test_Utilities.cpp b/ACE/examples/Monitor/MC_Test_Utilities.cpp
index b13f1ad754f..fb4fa29128a 100644
--- a/ACE/examples/Monitor/MC_Test_Utilities.cpp
+++ b/ACE/examples/Monitor/MC_Test_Utilities.cpp
@@ -3,7 +3,7 @@
#include "ace/Date_Time.h"
#include "ace/streams.h"
-#include "examples/Monitor/MC_Test_Utilities.h"
+#include "MC_Test_Utilities.h"
#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
diff --git a/ACE/examples/Monitor/MC_Test_Utilities.h b/ACE/examples/Monitor/MC_Test_Utilities.h
index 76b29215419..9db0e106a4d 100644
--- a/ACE/examples/Monitor/MC_Test_Utilities.h
+++ b/ACE/examples/Monitor/MC_Test_Utilities.h
@@ -21,7 +21,7 @@
#include "ace/Monitor_Control_Types.h"
-#include "examples/Monitor/MC_Test_Utilities_export.h"
+#include "MC_Test_Utilities_export.h"
#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
diff --git a/ACE/examples/Monitor/MC_Test_Utilities.mpc b/ACE/examples/Monitor/MC_Test_Utilities.mpc
index 5a23c48486f..ddd34ed3e94 100644
--- a/ACE/examples/Monitor/MC_Test_Utilities.mpc
+++ b/ACE/examples/Monitor/MC_Test_Utilities.mpc
@@ -1,14 +1,6 @@
// -*- MPC -*-
// $Id$
-project(MC_Test_Utilities) : acelib, ace_output, avoids_ace_for_tao {
+project(MC_Test_Utilities) : acelib, avoids_ace_for_tao {
dynamicflags += MC_TEST_UTILITIES_BUILD_DLL
-
- Source_Files {
- MC_Test_Utilities.cpp
- }
-
- Header_Files {
- MC_Test_Utilities_export.h
- }
}
diff --git a/ACE/examples/Monitor/Memory_Usage/Memory_Usage.mpc b/ACE/examples/Monitor/Memory_Usage/Memory_Usage.mpc
index 07580a19e7e..7fa99275b9c 100644
--- a/ACE/examples/Monitor/Memory_Usage/Memory_Usage.mpc
+++ b/ACE/examples/Monitor/Memory_Usage/Memory_Usage.mpc
@@ -1,9 +1,7 @@
// $Id$
-project (*) : aceexe, ace_mc, avoids_ace_for_tao {
+project (*) : aceexe, ace_mc, avoids_ace_for_tao, mc_test_utils {
exename = memory_usage
- after += MC_Test_Utilities
- libs += MC_Test_Utilities
source_files {
memory_usage.cpp
diff --git a/ACE/examples/Monitor/Message_Queue_Size/Message_Queue_Size.mpc b/ACE/examples/Monitor/Message_Queue_Size/Message_Queue_Size.mpc
index 78d484be9de..c0729356a30 100644
--- a/ACE/examples/Monitor/Message_Queue_Size/Message_Queue_Size.mpc
+++ b/ACE/examples/Monitor/Message_Queue_Size/Message_Queue_Size.mpc
@@ -1,9 +1,7 @@
// $Id$
-project (*) : aceexe, ace_mc, avoids_ace_for_tao {
+project (*) : aceexe, ace_mc, avoids_ace_for_tao, mc_test_utils {
exename = message_queue_size
- after += MC_Test_Utilities
- libs += MC_Test_Utilities
source_files {
message_queue_size.cpp
diff --git a/ACE/examples/Monitor/Num_Threads/Num_Threads.mpc b/ACE/examples/Monitor/Num_Threads/Num_Threads.mpc
index 2a5305a1e0d..60ee8288d06 100644
--- a/ACE/examples/Monitor/Num_Threads/Num_Threads.mpc
+++ b/ACE/examples/Monitor/Num_Threads/Num_Threads.mpc
@@ -1,9 +1,7 @@
// $Id$
-project (*) : aceexe, ace_mc, avoids_ace_for_tao {
+project (*) : aceexe, ace_mc, avoids_ace_for_tao, mc_test_utils {
exename = num_threads
- after += MC_Test_Utilities
- libs += MC_Test_Utilities
source_files {
num_threads.cpp
diff --git a/ACE/examples/Monitor/Num_Threads/num_threads.cpp b/ACE/examples/Monitor/Num_Threads/num_threads.cpp
index 35512965832..084a6275c2a 100644
--- a/ACE/examples/Monitor/Num_Threads/num_threads.cpp
+++ b/ACE/examples/Monitor/Num_Threads/num_threads.cpp
@@ -83,7 +83,7 @@ ACE_TMAIN (int /* argc */, ACE_TCHAR * /* argv */ [])
STOP_PERIODIC_MONITORS;
num_threads_monitor->remove_ref ();
-
+
#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
return 0;
diff --git a/ACE/examples/NT_Service/main.cpp b/ACE/examples/NT_Service/main.cpp
index 43f09fba0dd..785913e3613 100644
--- a/ACE/examples/NT_Service/main.cpp
+++ b/ACE/examples/NT_Service/main.cpp
@@ -1,23 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/NT_Service
-//
-// = FILENAME
-// main.cpp
-//
-// = DESCRIPTION
-// This is the main program - it just hands control off to the
-// process instance to figure out what to do. This program only
-// runs on Win32.
-//
-// = AUTHOR
-// Gonzalo Diethelm <gonzo@cs.wustl.edu>
-// and Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file main.cpp
+ *
+ * $Id$
+ *
+ * This is the main program - it just hands control off to the
+ * process instance to figure out what to do. This program only
+ * runs on Win32.
+ *
+ *
+ * @author Gonzalo Diethelm <gonzo@cs.wustl.edu> and Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "ace/Get_Opt.h"
#include "ntsvc.h"
diff --git a/ACE/examples/NT_Service/ntsvc.cpp b/ACE/examples/NT_Service/ntsvc.cpp
index 9b6742b46f3..9fd677630ac 100644
--- a/ACE/examples/NT_Service/ntsvc.cpp
+++ b/ACE/examples/NT_Service/ntsvc.cpp
@@ -1,22 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/NT_Service
-//
-// = FILENAME
-// ntsvc.cpp
-//
-// = DESCRIPTION
-// This is the implementation of the NT service. It beeps every 2
-// seconds until the service is stopped.
-//
-// = AUTHOR
-// Gonzalo Diethelm <gonzo@cs.wustl.edu>
-// and Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ntsvc.cpp
+ *
+ * $Id$
+ *
+ * This is the implementation of the NT service. It beeps every 2
+ * seconds until the service is stopped.
+ *
+ *
+ * @author Gonzalo Diethelm <gonzo@cs.wustl.edu> and Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "ace/Reactor.h"
#include "ntsvc.h"
diff --git a/ACE/examples/NT_Service/ntsvc.h b/ACE/examples/NT_Service/ntsvc.h
index 1444b5977d9..f824573cded 100644
--- a/ACE/examples/NT_Service/ntsvc.h
+++ b/ACE/examples/NT_Service/ntsvc.h
@@ -1,22 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/NT_Service
-//
-// = FILENAME
-// ntsvc.h
-//
-// = DESCRIPTION
-// This is the definition of the sample NT Service class. This example
-// only runs on Win32 platforms.
-//
-// = AUTHOR
-// Gonzalo Diethelm and Steve Huston
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ntsvc.h
+ *
+ * $Id$
+ *
+ * This is the definition of the sample NT Service class. This example
+ * only runs on Win32 platforms.
+ *
+ *
+ * @author Gonzalo Diethelm and Steve Huston
+ */
+//=============================================================================
+
#ifndef NTSVC_H_
#define NTSVC_H_
@@ -37,20 +34,20 @@ public:
~Service (void);
+ /// We override <handle_control> because it handles stop requests
+ /// privately.
virtual void handle_control (DWORD control_code);
- // We override <handle_control> because it handles stop requests
- // privately.
+ /// We override <handle_exception> so a 'stop' control code can pop
+ /// the reactor off of its wait.
virtual int handle_exception (ACE_HANDLE h);
- // We override <handle_exception> so a 'stop' control code can pop
- // the reactor off of its wait.
+ /// This is a virtual method inherited from ACE_NT_Service.
virtual int svc (void);
- // This is a virtual method inherited from ACE_NT_Service.
+ /// Where the real work is done:
virtual int handle_timeout (const ACE_Time_Value& tv,
const void *arg = 0);
- // Where the real work is done:
private:
typedef ACE_NT_Service inherited;
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/Naming/test_multiple_contexts.cpp b/ACE/examples/Naming/test_multiple_contexts.cpp
index 0c5b6985097..133dc308531 100644
--- a/ACE/examples/Naming/test_multiple_contexts.cpp
+++ b/ACE/examples/Naming/test_multiple_contexts.cpp
@@ -5,8 +5,6 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(Naming, test_multiple_contexts, "$Id$")
-
int ACE_TMAIN (int, ACE_TCHAR *[])
{
static u_long ACE_DEFAULT_BASE_ADDR_1 = (1 * 64 * 1024 * 1024);
diff --git a/ACE/examples/Naming/test_non_existent.cpp b/ACE/examples/Naming/test_non_existent.cpp
index 448594bd969..4af32ac9a90 100644
--- a/ACE/examples/Naming/test_non_existent.cpp
+++ b/ACE/examples/Naming/test_non_existent.cpp
@@ -4,7 +4,7 @@
#include "ace/Naming_Context.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Naming, test_non_existent, "$Id$")
+
int ACE_TMAIN (int, ACE_TCHAR *[])
{
diff --git a/ACE/examples/Naming/test_open.cpp b/ACE/examples/Naming/test_open.cpp
index 247f3987112..9bada78fc1c 100644
--- a/ACE/examples/Naming/test_open.cpp
+++ b/ACE/examples/Naming/test_open.cpp
@@ -6,8 +6,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Naming, test_open, "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR **argv)
{
diff --git a/ACE/examples/Naming/test_writers.cpp b/ACE/examples/Naming/test_writers.cpp
index 1c0195a04f0..d0ff1624e6b 100644
--- a/ACE/examples/Naming/test_writers.cpp
+++ b/ACE/examples/Naming/test_writers.cpp
@@ -6,8 +6,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Naming, test_writers, "$Id$")
-
int ACE_TMAIN (int, ACE_TCHAR *[])
{
int i;
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..98bac0ba53a 100644
--- a/ACE/examples/OS/Process/imore.cpp
+++ b/ACE/examples/OS/Process/imore.cpp
@@ -1,26 +1,23 @@
-// ============================================================================
-// $Id$
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// imore.cpp (imore stands for indirect more.)
-//
-// = DESCRIPTION
-// This program demonstrates how to redirect stdout of a parent
-// process to the stdin of its child process using either unnamed pipe
-// or named pipes to relay data to subprocess which runs "more" to
-// display data on the screen. Run imore to see how to use this
-// program.
-//
-// Unfortunately, on Win32, this program doesn't use any pipe at all because
-// using pipes confuses MORE.COM on Win32 and it just acts like "cat" on Unix.
-//
-// = AUTHOR
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file imore.cpp (imore stands for indirect more.)
+ *
+ * $Id$
+ *
+ * This program demonstrates how to redirect stdout of a parent
+ * process to the stdin of its child process using either unnamed pipe
+ * or named pipes to relay data to subprocess which runs "more" to
+ * display data on the screen. Run imore to see how to use this
+ * program.
+ *
+ * Unfortunately, on Win32, this program doesn't use any pipe at all because
+ * using pipes confuses MORE.COM on Win32 and it just acts like "cat" on Unix.
+ *
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_errno.h"
@@ -34,12 +31,10 @@
#include "ace/Process.h"
#include "ace/Signal.h"
-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 +89,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 +138,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 +167,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 +193,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..c65a7451c4c 100644
--- a/ACE/examples/OS/Process/process.cpp
+++ b/ACE/examples/OS/Process/process.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// process.cpp
-//
-// = DESCRIPTION
-// This example tests the <ACE_Process>. For more info, check the
-// README file in this directory.
-//
-// = AUTHOR
-// Tim Harrison <harrison@cs.wustl.edu>.
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file process.cpp
+ *
+ * $Id$
+ *
+ * This example tests the <ACE_Process>. For more info, check the
+ * README file in this directory.
+ *
+ *
+ * @author Tim Harrison <harrison@cs.wustl.edu>.
+ */
+//=============================================================================
+
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_fcntl.h"
@@ -29,8 +26,9 @@
#include "ace/Time_Value.h"
#include "ace/SString.h"
#include "ace/Truncate.h"
+#include "ace/Tokenizer_T.h"
+
-ACE_RCSID(Process, process, "$Id$")
#if defined (ACE_WIN32)
#define EXEC_NAME ACE_TEXT ("MORE.COM")
@@ -318,9 +316,11 @@ win32_test_ls (void)
return;
}
+ ACE_TCHAR cmd_line[8];
+ ACE_OS::strncpy (cmd_line, ACE_TEXT ("-a"), sizeof (cmd_line));
BOOL fork_result =
ACE_TEXT_CreateProcess (ACE_TEXT ("c:\\Utils\\bin\\ls.exe"),
- ACE_TEXT ("-a"),
+ cmd_line,
0, // No process attributes.
0, // No thread attributes.
TRUE, // Allow handle inheritance.
@@ -429,9 +429,11 @@ win32_spawn_environment_process (void)
ACE_TEXT_FreeEnvironmentStrings (existing_environment);
+ ACE_TCHAR cmd_line[16];
+ ACE_OS::strncpy (cmd_line, ACE_TEXT ("process -g"), sizeof (cmd_line));
BOOL fork_result =
ACE_TEXT_CreateProcess (ACE_TEXT ("d:\\harrison\\ACE_wrappers\\examples\\OS\\Process\\process.exe"),
- ACE_TEXT ("process -g"),
+ cmd_line,
0, // No process attributes.
0, // No thread attributes.
TRUE, // Allow handle inheritance.
@@ -568,6 +570,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
::test_wait ();
#if defined (ACE_WIN32)
+ ACE_UNUSED_ARG (&win32_test_ls);
+
if (environment_string != 0)
win32_spawn_environment_process ();
#endif /* ACE_WIN32 */
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp b/ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp
index 20c03f40fa6..c04e0952dfa 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp
@@ -3,7 +3,7 @@
#include "Fill_ACE_QoS.h"
-ACE_RCSID(QOS, Fill_ACE_QoS,"$Id$")
+
const iovec Fill_ACE_QoS::iov_ = {0,0};
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h b/ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h
index cdc06cea422..204baf53b27 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Fill_ACE_QoS.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Fill_ACE_QoS.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef FILL_ACE_QOS_H
#define FILL_ACE_QOS_H
@@ -24,41 +21,44 @@
#include "ace/ACE.h"
#include "ace/OS_QoS.h"
+/**
+ * @class Fill_ACE_QoS
+ TITLE
+ * This class helps users to add new flow specs and provides
+ * utility functions for filling up the flow specs for simplex/duplex
+ * sessions.
+ */
class Fill_ACE_QoS
{
- // TITLE
- // This class helps users to add new flow specs and provides
- // utility functions for filling up the flow specs for simplex/duplex
- // sessions.
public:
typedef ACE_Hash_Map_Manager <ACE_CString, ACE_Flow_Spec *, ACE_Null_Mutex> FLOW_SPEC_HASH_MAP;
//Initialization and termination methods.
+ /// constructor.
Fill_ACE_QoS (void);
- // constructor.
+ /// destructor.
~Fill_ACE_QoS (void);
- // destructor.
+ /// To be used by receivers. Fills the receiver qos and sets the
+ /// sender qos to NO_TRAFFIC.
int fill_simplex_receiver_qos (ACE_QoS &ace_qos,
const ACE_CString &recv_flow_name);
- // To be used by receivers. Fills the receiver qos and sets the
- // sender qos to NO_TRAFFIC.
+ /// To be used by senders. Fills the sender qos and sets the receiver
+ /// qos to NO_TRAFFIC.
int fill_simplex_sender_qos (ACE_QoS &ace_qos,
const ACE_CString &send_flow_name);
- // To be used by senders. Fills the sender qos and sets the receiver
- // qos to NO_TRAFFIC.
+ /// To be used by applications that wish to be both receivers and
+ /// senders.
int fill_duplex_qos (ACE_QoS &ace_qos,
const ACE_CString &recv_flow_name,
const ACE_CString &send_flow_name);
- // To be used by applications that wish to be both receivers and
- // senders.
+ /// Returns the hash map of flowspecs indexed by flowspec name.
FLOW_SPEC_HASH_MAP& map (void);
- // Returns the hash map of flowspecs indexed by flowspec name.
private:
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h b/ACE/examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h
index fc382048c13..5e3637c8455 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-//$Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// FlowSpec_Dbase.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file FlowSpec_Dbase.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef FLOWSPEC_DBASE_H
#define FLOWSPEC_DBASE_H
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.cpp b/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.cpp
index 9f07ad5b378..5a5422eac08 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.cpp
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.cpp
@@ -4,7 +4,7 @@
#include "ace/Log_Msg.h"
#include "QoS_Signal_Handler.h"
-ACE_RCSID(QOS, QoS_Signal_Handler,"$Id$")
+
// constructor.
QoS_Signal_Handler::QoS_Signal_Handler (ACE_QoS_Session *qos_session)
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h b/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h
index 35b9f3a19e7..3ded5c10ad3 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// =====================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// QoS_Signal_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// =====================================================================
+
+//=============================================================================
+/**
+ * @file QoS_Signal_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef QOS_SIGNAL_HANDLER_H
#define QOS_SIGNAL_HANDLER_H
@@ -20,25 +17,28 @@
#include "ace/Event_Handler.h"
#include "ace/QoS/QoS_Session.h"
+/**
+ * @class QoS_Signal_Handler
+ TITLE
+ * This class Handles the SIGINT signal through the Reactor.
+ * Useful to gracefully release QoS sessions.
+ */
class QoS_Signal_Handler : public ACE_Event_Handler
{
- // TITLE
- // This class Handles the SIGINT signal through the Reactor.
- // Useful to gracefully release QoS sessions.
public:
-
+
+ /// constructor.
QoS_Signal_Handler (ACE_QoS_Session *qos_session);
- // constructor.
-
+
+ /// Override this method to implement graceful shutdown.
int handle_signal(int signum, siginfo_t*,ucontext_t*);
- // Override this method to implement graceful shutdown.
-
+
private:
-
+
+ /// Session to be gracefully shutdown.
ACE_QoS_Session *qos_session_;
- // Session to be gracefully shutdown.
-
+
};
#endif /* QOS_SIGNAL_HANDLER_H */
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp b/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp
index 0ef3b353248..80655925ac8 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp
@@ -8,7 +8,7 @@
#include "QoS_Util.h"
#include "ace/OS_NS_strings.h"
-ACE_RCSID(QOS, QoS_Util,"$Id$")
+
// constructor.
QoS_Util::QoS_Util (int argc,
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h b/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h
index ae347de68f6..fbde23e3802 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// =====================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// QoS_Util.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// =====================================================================
+
+//=============================================================================
+/**
+ * @file QoS_Util.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef QOS_UTIL_H
#define QOS_UTIL_H
@@ -20,11 +17,14 @@
#include "ace/INET_Addr.h"
#include "ace/QoS/QoS_Session.h"
+/**
+ * @class QoS_Util
+ *
+ * @brief This class provides the utility functions like parse_args ()
+ * required by a QoS enabled application.
+ */
class QoS_Util
{
- // = TITLE
- // This class provides the utility functions like parse_args ()
- // required by a QoS enabled application.
public:
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp b/ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp
index 220cfb3e53c..747b723034d 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Receiver_QoS_Event_Handler.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Receiver_QoS_Event_Handler.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "Receiver_QoS_Event_Handler.h"
#include "ace/Log_Msg.h"
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h b/ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h
index bb8e26decf8..35b6cd281ba 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Receiver_QoS_Event_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Receiver_QoS_Event_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef RECEIVER_QOS_EVENT_HANDLER_H
#define RECEIVER_QOS_EVENT_HANDLER_H
@@ -23,37 +20,35 @@
#include "ace/QoS/QoS_Session.h"
#include "ace/QoS/SOCK_Dgram_Mcast_QoS.h"
-ACE_RCSID(Receiver_QoS_Event_Handler, Receiver_QoS_Event_Handler, "$Id$")
-
- class Receiver_QoS_Event_Handler : public ACE_Event_Handler
- {
- public:
- // = Initialization and Termination methods.
- Receiver_QoS_Event_Handler (void);
- // Constructor.
+class Receiver_QoS_Event_Handler : public ACE_Event_Handler
+{
+public:
+ // = Initialization and Termination methods.
+ /// Constructor.
+ Receiver_QoS_Event_Handler (void);
- Receiver_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
- ACE_QoS_Session *qos_session);
- // Constructor.
+ /// Constructor.
+ Receiver_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
+ ACE_QoS_Session *qos_session);
- ~Receiver_QoS_Event_Handler (void);
- // Destructor.
+ /// Destructor.
+ ~Receiver_QoS_Event_Handler (void);
- virtual ACE_HANDLE get_handle (void) const;
- // Override this to return the handle of the Dgram_Mcast
- // that we are using.
+ /// Override this to return the handle of the Dgram_Mcast
+ /// that we are using.
+ virtual ACE_HANDLE get_handle (void) const;
- virtual int handle_input (ACE_HANDLE fd);
- // Handles a READ event.
+ /// Handles a READ event.
+ virtual int handle_input (ACE_HANDLE fd);
- virtual int handle_qos (ACE_HANDLE fd);
- // Handles a QoS event.
+ /// Handles a QoS event.
+ virtual int handle_qos (ACE_HANDLE fd);
- private:
- ACE_SOCK_Dgram_Mcast_QoS dgram_mcast_qos_;
- ACE_QoS_Session *qos_session_;
- ACE_INET_Addr remote_addr_;
- };
+private:
+ ACE_SOCK_Dgram_Mcast_QoS dgram_mcast_qos_;
+ ACE_QoS_Session *qos_session_;
+ ACE_INET_Addr remote_addr_;
+};
#endif /* RECEIVER_QOS_EVENT_HANDLER_H */
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp b/ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp
index 561746a3641..69439455bb6 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Sender_QoS_Event_Handler.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Sender_QoS_Event_Handler.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "Sender_QoS_Event_Handler.h"
#include "ace/Log_Msg.h"
@@ -118,9 +115,9 @@ Sender_QoS_Event_Handler::handle_qos (ACE_HANDLE)
// ACE_DEBUG ((LM_DEBUG,
// "Getting QOS using ACE_OS::ioctl () succeeds.\n"));
- char* msg = "Hello sent on a QoS enabled session !!\n";
+ const char* msg = "Hello sent on a QoS enabled session !!\n";
iovec iov[1];
- iov[0].iov_base = msg;
+ iov[0].iov_base = const_cast<char *>(msg);
iov[0].iov_len = ACE_OS::strlen(msg);
size_t bytes_sent = 0;
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h b/ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h
index e90884320eb..55ff2415bf6 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Sender_QoS_Event_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Sender_QoS_Event_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef SENDER_QOS_EVENT_HANDLER_H
#define SENDER_QOS_EVENT_HANDLER_H
@@ -26,29 +23,27 @@
//#define MY_DEFPORT 5001
//#define DEFAULT_MULTICASTGROUP "234.5.6.7"
-ACE_RCSID(Sender_QoS_Event_Handler, Sender_QoS_Event_Handler, "$Id$")
-
class Sender_QoS_Event_Handler : public ACE_Event_Handler
{
public:
// = Initialization and Termination methods.
+ /// Constructor.
Sender_QoS_Event_Handler (void);
- // Constructor.
+ /// Constructor.
Sender_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
ACE_QoS_Session *qos_session);
- // Constructor.
+ /// Destructor.
~Sender_QoS_Event_Handler (void);
- // Destructor.
+ /// Override this to return the handle of the Dgram_Mcast
+ /// that we are using.
virtual ACE_HANDLE get_handle (void) const;
- // Override this to return the handle of the Dgram_Mcast
- // that we are using.
+ /// Handles a QoS event. Right now, just
+ /// prints a message.
virtual int handle_qos (ACE_HANDLE fd);
- // Handles a QoS event. Right now, just
- // prints a message.
private:
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/receiver.cpp b/ACE/examples/QOS/Change_Receiver_FlowSpec/receiver.cpp
index 9ef416308b0..1fb8fd69f23 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/receiver.cpp
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/receiver.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// server.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file receiver.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#define QOSEVENT_MAIN
diff --git a/ACE/examples/QOS/Change_Receiver_FlowSpec/sender.cpp b/ACE/examples/QOS/Change_Receiver_FlowSpec/sender.cpp
index 5aedacb3303..23121f4fe77 100644
--- a/ACE/examples/QOS/Change_Receiver_FlowSpec/sender.cpp
+++ b/ACE/examples/QOS/Change_Receiver_FlowSpec/sender.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// client.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file sender.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/QoS/QoS_Session.h"
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp b/ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp
index 20c03f40fa6..c04e0952dfa 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp
+++ b/ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp
@@ -3,7 +3,7 @@
#include "Fill_ACE_QoS.h"
-ACE_RCSID(QOS, Fill_ACE_QoS,"$Id$")
+
const iovec Fill_ACE_QoS::iov_ = {0,0};
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h b/ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h
index 776d713e5e5..79568dafb78 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h
+++ b/ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Fill_ACE_QoS.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Fill_ACE_QoS.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef FILL_ACE_QOS_H
#define FILL_ACE_QOS_H
@@ -23,41 +20,44 @@
#include "ace/ACE.h"
#include "ace/OS_QoS.h"
+/**
+ * @class Fill_ACE_QoS
+ TITLE
+ * This class helps users to add new flow specs and provides
+ * utility functions for filling up the flow specs for simplex/duplex
+ * sessions.
+ */
class Fill_ACE_QoS
{
- // TITLE
- // This class helps users to add new flow specs and provides
- // utility functions for filling up the flow specs for simplex/duplex
- // sessions.
public:
typedef ACE_Hash_Map_Manager <ACE_CString, ACE_Flow_Spec *, ACE_Null_Mutex> FLOW_SPEC_HASH_MAP;
//Initialization and termination methods.
+ /// constructor.
Fill_ACE_QoS (void);
- // constructor.
+ /// destructor.
~Fill_ACE_QoS (void);
- // destructor.
+ /// To be used by receivers. Fills the receiver qos and sets the
+ /// sender qos to NO_TRAFFIC.
int fill_simplex_receiver_qos (ACE_QoS &ace_qos,
const ACE_CString &recv_flow_name);
- // To be used by receivers. Fills the receiver qos and sets the
- // sender qos to NO_TRAFFIC.
+ /// To be used by senders. Fills the sender qos and sets the receiver
+ /// qos to NO_TRAFFIC.
int fill_simplex_sender_qos (ACE_QoS &ace_qos,
const ACE_CString &send_flow_name);
- // To be used by senders. Fills the sender qos and sets the receiver
- // qos to NO_TRAFFIC.
+ /// To be used by applications that wish to be both receivers and
+ /// senders.
int fill_duplex_qos (ACE_QoS &ace_qos,
const ACE_CString &recv_flow_name,
const ACE_CString &send_flow_name);
- // To be used by applications that wish to be both receivers and
- // senders.
+ /// Returns the hash map of flowspecs indexed by flowspec name.
FLOW_SPEC_HASH_MAP& map (void);
- // Returns the hash map of flowspecs indexed by flowspec name.
private:
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h b/ACE/examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h
index fc382048c13..5e3637c8455 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h
+++ b/ACE/examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-//$Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// FlowSpec_Dbase.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file FlowSpec_Dbase.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef FLOWSPEC_DBASE_H
#define FLOWSPEC_DBASE_H
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp b/ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp
index 9f07ad5b378..5a5422eac08 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp
+++ b/ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp
@@ -4,7 +4,7 @@
#include "ace/Log_Msg.h"
#include "QoS_Signal_Handler.h"
-ACE_RCSID(QOS, QoS_Signal_Handler,"$Id$")
+
// constructor.
QoS_Signal_Handler::QoS_Signal_Handler (ACE_QoS_Session *qos_session)
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h b/ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h
index 35b9f3a19e7..3ded5c10ad3 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h
+++ b/ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// =====================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// QoS_Signal_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// =====================================================================
+
+//=============================================================================
+/**
+ * @file QoS_Signal_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef QOS_SIGNAL_HANDLER_H
#define QOS_SIGNAL_HANDLER_H
@@ -20,25 +17,28 @@
#include "ace/Event_Handler.h"
#include "ace/QoS/QoS_Session.h"
+/**
+ * @class QoS_Signal_Handler
+ TITLE
+ * This class Handles the SIGINT signal through the Reactor.
+ * Useful to gracefully release QoS sessions.
+ */
class QoS_Signal_Handler : public ACE_Event_Handler
{
- // TITLE
- // This class Handles the SIGINT signal through the Reactor.
- // Useful to gracefully release QoS sessions.
public:
-
+
+ /// constructor.
QoS_Signal_Handler (ACE_QoS_Session *qos_session);
- // constructor.
-
+
+ /// Override this method to implement graceful shutdown.
int handle_signal(int signum, siginfo_t*,ucontext_t*);
- // Override this method to implement graceful shutdown.
-
+
private:
-
+
+ /// Session to be gracefully shutdown.
ACE_QoS_Session *qos_session_;
- // Session to be gracefully shutdown.
-
+
};
#endif /* QOS_SIGNAL_HANDLER_H */
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.cpp b/ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.cpp
index 0ef3b353248..80655925ac8 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.cpp
+++ b/ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.cpp
@@ -8,7 +8,7 @@
#include "QoS_Util.h"
#include "ace/OS_NS_strings.h"
-ACE_RCSID(QOS, QoS_Util,"$Id$")
+
// constructor.
QoS_Util::QoS_Util (int argc,
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.h b/ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.h
index ae347de68f6..fbde23e3802 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.h
+++ b/ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// =====================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// QoS_Util.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// =====================================================================
+
+//=============================================================================
+/**
+ * @file QoS_Util.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef QOS_UTIL_H
#define QOS_UTIL_H
@@ -20,11 +17,14 @@
#include "ace/INET_Addr.h"
#include "ace/QoS/QoS_Session.h"
+/**
+ * @class QoS_Util
+ *
+ * @brief This class provides the utility functions like parse_args ()
+ * required by a QoS enabled application.
+ */
class QoS_Util
{
- // = TITLE
- // This class provides the utility functions like parse_args ()
- // required by a QoS enabled application.
public:
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp b/ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp
index d6ece4d563c..9b6011a6763 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp
+++ b/ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Receiver_QoS_Event_Handler.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Receiver_QoS_Event_Handler.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "Receiver_QoS_Event_Handler.h"
#include "ace/Log_Msg.h"
@@ -133,7 +130,7 @@ Receiver_QoS_Event_Handler::handle_qos (ACE_HANDLE fd)
ace_get_qos.receiving_flowspec ()->minimum_policed_size (),
ace_get_qos.sending_flowspec ()->minimum_policed_size ()));
-
+
return 0;
}
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h b/ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h
index bb8e26decf8..35b6cd281ba 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h
+++ b/ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Receiver_QoS_Event_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Receiver_QoS_Event_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef RECEIVER_QOS_EVENT_HANDLER_H
#define RECEIVER_QOS_EVENT_HANDLER_H
@@ -23,37 +20,35 @@
#include "ace/QoS/QoS_Session.h"
#include "ace/QoS/SOCK_Dgram_Mcast_QoS.h"
-ACE_RCSID(Receiver_QoS_Event_Handler, Receiver_QoS_Event_Handler, "$Id$")
-
- class Receiver_QoS_Event_Handler : public ACE_Event_Handler
- {
- public:
- // = Initialization and Termination methods.
- Receiver_QoS_Event_Handler (void);
- // Constructor.
+class Receiver_QoS_Event_Handler : public ACE_Event_Handler
+{
+public:
+ // = Initialization and Termination methods.
+ /// Constructor.
+ Receiver_QoS_Event_Handler (void);
- Receiver_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
- ACE_QoS_Session *qos_session);
- // Constructor.
+ /// Constructor.
+ Receiver_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
+ ACE_QoS_Session *qos_session);
- ~Receiver_QoS_Event_Handler (void);
- // Destructor.
+ /// Destructor.
+ ~Receiver_QoS_Event_Handler (void);
- virtual ACE_HANDLE get_handle (void) const;
- // Override this to return the handle of the Dgram_Mcast
- // that we are using.
+ /// Override this to return the handle of the Dgram_Mcast
+ /// that we are using.
+ virtual ACE_HANDLE get_handle (void) const;
- virtual int handle_input (ACE_HANDLE fd);
- // Handles a READ event.
+ /// Handles a READ event.
+ virtual int handle_input (ACE_HANDLE fd);
- virtual int handle_qos (ACE_HANDLE fd);
- // Handles a QoS event.
+ /// Handles a QoS event.
+ virtual int handle_qos (ACE_HANDLE fd);
- private:
- ACE_SOCK_Dgram_Mcast_QoS dgram_mcast_qos_;
- ACE_QoS_Session *qos_session_;
- ACE_INET_Addr remote_addr_;
- };
+private:
+ ACE_SOCK_Dgram_Mcast_QoS dgram_mcast_qos_;
+ ACE_QoS_Session *qos_session_;
+ ACE_INET_Addr remote_addr_;
+};
#endif /* RECEIVER_QOS_EVENT_HANDLER_H */
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..7612a105051 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
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Sender_QoS_Event_Handler.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Sender_QoS_Event_Handler.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "Sender_QoS_Event_Handler.h"
#include "ace/Log_Msg.h"
@@ -118,9 +115,9 @@ Sender_QoS_Event_Handler::handle_qos (ACE_HANDLE)
// ACE_DEBUG ((LM_DEBUG,
// "Getting QOS using ACE_OS::ioctl () succeeds.\n"));
- char* msg = "Hello sent on a QoS enabled session !!\n";
+ const char* msg = "Hello sent on a QoS enabled session !!\n";
iovec iov[1];
- iov[0].iov_base = msg;
+ iov[0].iov_base = const_cast<char *>(msg);
iov[0].iov_len = ACE_OS::strlen(msg);
size_t bytes_sent = 0;
@@ -167,7 +164,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"),
@@ -212,7 +209,7 @@ Sender_QoS_Event_Handler::handle_qos (ACE_HANDLE)
else
ACE_DEBUG ((LM_DEBUG,
"Setting QOS succeeds.\n"));
-
+
// ACE_SOCK_Dgram_Mcast_QoS dgram_mcast_qos_;
// ACE_QoS_Session *qos_session_;
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h b/ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h
index e90884320eb..55ff2415bf6 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h
+++ b/ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Sender_QoS_Event_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Sender_QoS_Event_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef SENDER_QOS_EVENT_HANDLER_H
#define SENDER_QOS_EVENT_HANDLER_H
@@ -26,29 +23,27 @@
//#define MY_DEFPORT 5001
//#define DEFAULT_MULTICASTGROUP "234.5.6.7"
-ACE_RCSID(Sender_QoS_Event_Handler, Sender_QoS_Event_Handler, "$Id$")
-
class Sender_QoS_Event_Handler : public ACE_Event_Handler
{
public:
// = Initialization and Termination methods.
+ /// Constructor.
Sender_QoS_Event_Handler (void);
- // Constructor.
+ /// Constructor.
Sender_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
ACE_QoS_Session *qos_session);
- // Constructor.
+ /// Destructor.
~Sender_QoS_Event_Handler (void);
- // Destructor.
+ /// Override this to return the handle of the Dgram_Mcast
+ /// that we are using.
virtual ACE_HANDLE get_handle (void) const;
- // Override this to return the handle of the Dgram_Mcast
- // that we are using.
+ /// Handles a QoS event. Right now, just
+ /// prints a message.
virtual int handle_qos (ACE_HANDLE fd);
- // Handles a QoS event. Right now, just
- // prints a message.
private:
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/receiver.cpp b/ACE/examples/QOS/Change_Sender_TSpec/receiver.cpp
index f329560dece..1d62b1134dd 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/receiver.cpp
+++ b/ACE/examples/QOS/Change_Sender_TSpec/receiver.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// server.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file receiver.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#define QOSEVENT_MAIN
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/sender.cpp b/ACE/examples/QOS/Change_Sender_TSpec/sender.cpp
index 1af380f90b3..6da7690a3b4 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/sender.cpp
+++ b/ACE/examples/QOS/Change_Sender_TSpec/sender.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// client.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file sender.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/QoS/QoS_Session.h"
diff --git a/ACE/examples/QOS/Diffserv/NOTES.txt b/ACE/examples/QOS/Diffserv/NOTES.txt
index 4e73c66af0f..6f9432a7e6e 100644
--- a/ACE/examples/QOS/Diffserv/NOTES.txt
+++ b/ACE/examples/QOS/Diffserv/NOTES.txt
@@ -10,7 +10,7 @@ unless you run as root:
EF, CS5, CS6, CS7
Also, under Linux 2.4.2 kernel, if I could successfully
-set the 2 bits reserved for ECN in the Diffserv Field to
+set the 2 bits reserved for ECN in the Diffserv Field to
0x00 or 0x02. However, the setsockopt call would
fail if it was set to 0x01 or 0x03.
@@ -41,7 +41,7 @@ On Fri, Oct 05, 2001 at 08:18:06AM +0300, Pekka Savola wrote:
>
===========================================================================
-FreeBSD notes
+FreeBSD notes
=============
Under FreeBSD 4.3, I encountered no problems
setting DSCP or ECN values, and I could set all
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/QOS/Diffserv/run_test.pl b/ACE/examples/QOS/Diffserv/run_test.pl
index aef0765bac8..da5c3260e9f 100755
--- a/ACE/examples/QOS/Diffserv/run_test.pl
+++ b/ACE/examples/QOS/Diffserv/run_test.pl
@@ -6,7 +6,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# -*- perl -*-
use lib "$ENV{ACE_ROOT}/bin";
-use PerlACE::Run_Test;
+use PerlACE::TestTarget;
$iorfile = PerlACE::LocalFile ("ior");
diff --git a/ACE/examples/QOS/Simple/Fill_ACE_QoS.cpp b/ACE/examples/QOS/Simple/Fill_ACE_QoS.cpp
index 20c03f40fa6..c04e0952dfa 100644
--- a/ACE/examples/QOS/Simple/Fill_ACE_QoS.cpp
+++ b/ACE/examples/QOS/Simple/Fill_ACE_QoS.cpp
@@ -3,7 +3,7 @@
#include "Fill_ACE_QoS.h"
-ACE_RCSID(QOS, Fill_ACE_QoS,"$Id$")
+
const iovec Fill_ACE_QoS::iov_ = {0,0};
diff --git a/ACE/examples/QOS/Simple/Fill_ACE_QoS.h b/ACE/examples/QOS/Simple/Fill_ACE_QoS.h
index 281b9beb876..86b7aed36f7 100644
--- a/ACE/examples/QOS/Simple/Fill_ACE_QoS.h
+++ b/ACE/examples/QOS/Simple/Fill_ACE_QoS.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Fill_ACE_QoS.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Fill_ACE_QoS.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef FILL_ACE_QOS_H
#define FILL_ACE_QOS_H
@@ -23,41 +20,44 @@
#include "ace/Null_Mutex.h"
#include "ace/OS_QoS.h"
+/**
+ * @class Fill_ACE_QoS
+ TITLE
+ * This class helps users to add new flow specs and provides
+ * utility functions for filling up the flow specs for simplex/duplex
+ * sessions.
+ */
class Fill_ACE_QoS
{
- // TITLE
- // This class helps users to add new flow specs and provides
- // utility functions for filling up the flow specs for simplex/duplex
- // sessions.
public:
typedef ACE_Hash_Map_Manager <ACE_CString, ACE_Flow_Spec *, ACE_Null_Mutex> FLOW_SPEC_HASH_MAP;
//Initialization and termination methods.
+ /// constructor.
Fill_ACE_QoS (void);
- // constructor.
+ /// destructor.
~Fill_ACE_QoS (void);
- // destructor.
+ /// To be used by receivers. Fills the receiver qos and sets the
+ /// sender qos to NO_TRAFFIC.
int fill_simplex_receiver_qos (ACE_QoS &ace_qos,
const ACE_CString &recv_flow_name);
- // To be used by receivers. Fills the receiver qos and sets the
- // sender qos to NO_TRAFFIC.
+ /// To be used by senders. Fills the sender qos and sets the receiver
+ /// qos to NO_TRAFFIC.
int fill_simplex_sender_qos (ACE_QoS &ace_qos,
const ACE_CString &send_flow_name);
- // To be used by senders. Fills the sender qos and sets the receiver
- // qos to NO_TRAFFIC.
+ /// To be used by applications that wish to be both receivers and
+ /// senders.
int fill_duplex_qos (ACE_QoS &ace_qos,
const ACE_CString &recv_flow_name,
const ACE_CString &send_flow_name);
- // To be used by applications that wish to be both receivers and
- // senders.
+ /// Returns the hash map of flowspecs indexed by flowspec name.
FLOW_SPEC_HASH_MAP& map (void);
- // Returns the hash map of flowspecs indexed by flowspec name.
private:
diff --git a/ACE/examples/QOS/Simple/FlowSpec_Dbase.h b/ACE/examples/QOS/Simple/FlowSpec_Dbase.h
index fc382048c13..5e3637c8455 100644
--- a/ACE/examples/QOS/Simple/FlowSpec_Dbase.h
+++ b/ACE/examples/QOS/Simple/FlowSpec_Dbase.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-//$Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// FlowSpec_Dbase.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file FlowSpec_Dbase.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef FLOWSPEC_DBASE_H
#define FLOWSPEC_DBASE_H
diff --git a/ACE/examples/QOS/Simple/QoS_Signal_Handler.cpp b/ACE/examples/QOS/Simple/QoS_Signal_Handler.cpp
index a0533bacdbc..f01577f730e 100644
--- a/ACE/examples/QOS/Simple/QoS_Signal_Handler.cpp
+++ b/ACE/examples/QOS/Simple/QoS_Signal_Handler.cpp
@@ -4,7 +4,7 @@
#include "ace/Log_Msg.h"
#include "QoS_Signal_Handler.h"
-ACE_RCSID(QOS, QoS_Signal_Handler,"$Id$")
+
// constructor.
QoS_Signal_Handler::QoS_Signal_Handler (ACE_QoS_Session *qos_session)
diff --git a/ACE/examples/QOS/Simple/QoS_Signal_Handler.h b/ACE/examples/QOS/Simple/QoS_Signal_Handler.h
index 35b9f3a19e7..3ded5c10ad3 100644
--- a/ACE/examples/QOS/Simple/QoS_Signal_Handler.h
+++ b/ACE/examples/QOS/Simple/QoS_Signal_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// =====================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// QoS_Signal_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// =====================================================================
+
+//=============================================================================
+/**
+ * @file QoS_Signal_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef QOS_SIGNAL_HANDLER_H
#define QOS_SIGNAL_HANDLER_H
@@ -20,25 +17,28 @@
#include "ace/Event_Handler.h"
#include "ace/QoS/QoS_Session.h"
+/**
+ * @class QoS_Signal_Handler
+ TITLE
+ * This class Handles the SIGINT signal through the Reactor.
+ * Useful to gracefully release QoS sessions.
+ */
class QoS_Signal_Handler : public ACE_Event_Handler
{
- // TITLE
- // This class Handles the SIGINT signal through the Reactor.
- // Useful to gracefully release QoS sessions.
public:
-
+
+ /// constructor.
QoS_Signal_Handler (ACE_QoS_Session *qos_session);
- // constructor.
-
+
+ /// Override this method to implement graceful shutdown.
int handle_signal(int signum, siginfo_t*,ucontext_t*);
- // Override this method to implement graceful shutdown.
-
+
private:
-
+
+ /// Session to be gracefully shutdown.
ACE_QoS_Session *qos_session_;
- // Session to be gracefully shutdown.
-
+
};
#endif /* QOS_SIGNAL_HANDLER_H */
diff --git a/ACE/examples/QOS/Simple/QoS_Util.cpp b/ACE/examples/QOS/Simple/QoS_Util.cpp
index 0ef3b353248..80655925ac8 100644
--- a/ACE/examples/QOS/Simple/QoS_Util.cpp
+++ b/ACE/examples/QOS/Simple/QoS_Util.cpp
@@ -8,7 +8,7 @@
#include "QoS_Util.h"
#include "ace/OS_NS_strings.h"
-ACE_RCSID(QOS, QoS_Util,"$Id$")
+
// constructor.
QoS_Util::QoS_Util (int argc,
diff --git a/ACE/examples/QOS/Simple/QoS_Util.h b/ACE/examples/QOS/Simple/QoS_Util.h
index ae347de68f6..fbde23e3802 100644
--- a/ACE/examples/QOS/Simple/QoS_Util.h
+++ b/ACE/examples/QOS/Simple/QoS_Util.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// =====================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// QoS_Util.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// =====================================================================
+
+//=============================================================================
+/**
+ * @file QoS_Util.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef QOS_UTIL_H
#define QOS_UTIL_H
@@ -20,11 +17,14 @@
#include "ace/INET_Addr.h"
#include "ace/QoS/QoS_Session.h"
+/**
+ * @class QoS_Util
+ *
+ * @brief This class provides the utility functions like parse_args ()
+ * required by a QoS enabled application.
+ */
class QoS_Util
{
- // = TITLE
- // This class provides the utility functions like parse_args ()
- // required by a QoS enabled application.
public:
diff --git a/ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp b/ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp
index 69258313420..04262b2fcb2 100644
--- a/ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp
+++ b/ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Receiver_QoS_Event_Handler.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Receiver_QoS_Event_Handler.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "Receiver_QoS_Event_Handler.h"
#include "ace/Log_Msg.h"
diff --git a/ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.h b/ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.h
index bb8e26decf8..35b6cd281ba 100644
--- a/ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.h
+++ b/ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Receiver_QoS_Event_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Receiver_QoS_Event_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef RECEIVER_QOS_EVENT_HANDLER_H
#define RECEIVER_QOS_EVENT_HANDLER_H
@@ -23,37 +20,35 @@
#include "ace/QoS/QoS_Session.h"
#include "ace/QoS/SOCK_Dgram_Mcast_QoS.h"
-ACE_RCSID(Receiver_QoS_Event_Handler, Receiver_QoS_Event_Handler, "$Id$")
-
- class Receiver_QoS_Event_Handler : public ACE_Event_Handler
- {
- public:
- // = Initialization and Termination methods.
- Receiver_QoS_Event_Handler (void);
- // Constructor.
+class Receiver_QoS_Event_Handler : public ACE_Event_Handler
+{
+public:
+ // = Initialization and Termination methods.
+ /// Constructor.
+ Receiver_QoS_Event_Handler (void);
- Receiver_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
- ACE_QoS_Session *qos_session);
- // Constructor.
+ /// Constructor.
+ Receiver_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
+ ACE_QoS_Session *qos_session);
- ~Receiver_QoS_Event_Handler (void);
- // Destructor.
+ /// Destructor.
+ ~Receiver_QoS_Event_Handler (void);
- virtual ACE_HANDLE get_handle (void) const;
- // Override this to return the handle of the Dgram_Mcast
- // that we are using.
+ /// Override this to return the handle of the Dgram_Mcast
+ /// that we are using.
+ virtual ACE_HANDLE get_handle (void) const;
- virtual int handle_input (ACE_HANDLE fd);
- // Handles a READ event.
+ /// Handles a READ event.
+ virtual int handle_input (ACE_HANDLE fd);
- virtual int handle_qos (ACE_HANDLE fd);
- // Handles a QoS event.
+ /// Handles a QoS event.
+ virtual int handle_qos (ACE_HANDLE fd);
- private:
- ACE_SOCK_Dgram_Mcast_QoS dgram_mcast_qos_;
- ACE_QoS_Session *qos_session_;
- ACE_INET_Addr remote_addr_;
- };
+private:
+ ACE_SOCK_Dgram_Mcast_QoS dgram_mcast_qos_;
+ ACE_QoS_Session *qos_session_;
+ ACE_INET_Addr remote_addr_;
+};
#endif /* RECEIVER_QOS_EVENT_HANDLER_H */
diff --git a/ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.cpp b/ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.cpp
index ee263263220..fa4e49f7e34 100644
--- a/ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.cpp
+++ b/ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Sender_QoS_Event_Handler.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Sender_QoS_Event_Handler.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "Sender_QoS_Event_Handler.h"
#include "ace/Log_Msg.h"
@@ -118,9 +115,9 @@ Sender_QoS_Event_Handler::handle_qos (ACE_HANDLE)
// ACE_DEBUG ((LM_DEBUG,
// "Getting QOS using ACE_OS::ioctl () succeeds.\n"));
- char* msg = "Hello sent on a QoS enabled session !!\n";
+ const char* msg = "Hello sent on a QoS enabled session !!\n";
iovec iov[1];
- iov[0].iov_base = msg;
+ iov[0].iov_base = const_cast<char *>(msg);
iov[0].iov_len =
ACE_Utils::truncate_cast<u_long> (ACE_OS::strlen (msg));
diff --git a/ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.h b/ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.h
index e90884320eb..55ff2415bf6 100644
--- a/ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.h
+++ b/ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// Sender_QoS_Event_Handler.h
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Sender_QoS_Event_Handler.h
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef SENDER_QOS_EVENT_HANDLER_H
#define SENDER_QOS_EVENT_HANDLER_H
@@ -26,29 +23,27 @@
//#define MY_DEFPORT 5001
//#define DEFAULT_MULTICASTGROUP "234.5.6.7"
-ACE_RCSID(Sender_QoS_Event_Handler, Sender_QoS_Event_Handler, "$Id$")
-
class Sender_QoS_Event_Handler : public ACE_Event_Handler
{
public:
// = Initialization and Termination methods.
+ /// Constructor.
Sender_QoS_Event_Handler (void);
- // Constructor.
+ /// Constructor.
Sender_QoS_Event_Handler (const ACE_SOCK_Dgram_Mcast_QoS &dgram_mcast_qos,
ACE_QoS_Session *qos_session);
- // Constructor.
+ /// Destructor.
~Sender_QoS_Event_Handler (void);
- // Destructor.
+ /// Override this to return the handle of the Dgram_Mcast
+ /// that we are using.
virtual ACE_HANDLE get_handle (void) const;
- // Override this to return the handle of the Dgram_Mcast
- // that we are using.
+ /// Handles a QoS event. Right now, just
+ /// prints a message.
virtual int handle_qos (ACE_HANDLE fd);
- // Handles a QoS event. Right now, just
- // prints a message.
private:
diff --git a/ACE/examples/QOS/Simple/receiver.cpp b/ACE/examples/QOS/Simple/receiver.cpp
index cba39f779e1..d9f89397866 100644
--- a/ACE/examples/QOS/Simple/receiver.cpp
+++ b/ACE/examples/QOS/Simple/receiver.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// server.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file receiver.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#define QOSEVENT_MAIN
diff --git a/ACE/examples/QOS/Simple/sender.cpp b/ACE/examples/QOS/Simple/sender.cpp
index 43684703be5..c04508a5664 100644
--- a/ACE/examples/QOS/Simple/sender.cpp
+++ b/ACE/examples/QOS/Simple/sender.cpp
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE_wrappers/examples/QOS
-//
-// = FILENAME
-// client.cpp
-//
-// = AUTHOR
-// Vishal Kachroo <vishal@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file sender.cpp
+ *
+ * $Id$
+ *
+ * @author Vishal Kachroo <vishal@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/QoS/QoS_Session.h"
diff --git a/ACE/examples/Reactor/Dgram/CODgram.cpp b/ACE/examples/Reactor/Dgram/CODgram.cpp
index 7baafdcdba0..0b58d56b12f 100644
--- a/ACE/examples/Reactor/Dgram/CODgram.cpp
+++ b/ACE/examples/Reactor/Dgram/CODgram.cpp
@@ -34,7 +34,7 @@
#include "ace/Process.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Dgram, CODgram, "$Id$")
+
// Port used to receive for dgrams.
static u_short port1;
diff --git a/ACE/examples/Reactor/Dgram/Dgram.cpp b/ACE/examples/Reactor/Dgram/Dgram.cpp
index 156132028df..b287a9f7f56 100644
--- a/ACE/examples/Reactor/Dgram/Dgram.cpp
+++ b/ACE/examples/Reactor/Dgram/Dgram.cpp
@@ -33,7 +33,7 @@
#include "ace/INET_Addr.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Dgram, Dgram, "$Id$")
+
// Port used to receive for dgrams.
static u_short port1;
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/FIFO/client.cpp b/ACE/examples/Reactor/FIFO/client.cpp
index 27e7ab45f37..99809e0e58f 100644
--- a/ACE/examples/Reactor/FIFO/client.cpp
+++ b/ACE/examples/Reactor/FIFO/client.cpp
@@ -4,7 +4,7 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_stropts.h"
-ACE_RCSID(FIFO, client, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/examples/Reactor/FIFO/server.cpp b/ACE/examples/Reactor/FIFO/server.cpp
index 3897aa3566e..bbcb8b9dc12 100644
--- a/ACE/examples/Reactor/FIFO/server.cpp
+++ b/ACE/examples/Reactor/FIFO/server.cpp
@@ -8,7 +8,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_stropts.h"
-ACE_RCSID(FIFO, server, "$Id$")
+
class FIFO_Recv_Handler : public ACE_Event_Handler
{
diff --git a/ACE/examples/Reactor/Misc/Reactor_Misc.mpc b/ACE/examples/Reactor/Misc/Reactor_Misc.mpc
index c056a909bd8..639c504f16f 100644
--- a/ACE/examples/Reactor/Misc/Reactor_Misc.mpc
+++ b/ACE/examples/Reactor/Misc/Reactor_Misc.mpc
@@ -6,6 +6,8 @@ project(*event_handler_t) : aceexe {
Source_Files {
test_event_handler_t.cpp
}
+ Template_Files {
+ }
}
project(*demuxing) : aceexe {
exename = demuxing
diff --git a/ACE/examples/Reactor/Misc/notification.cpp b/ACE/examples/Reactor/Misc/notification.cpp
index 0b02e2e553c..af1f5aac845 100644
--- a/ACE/examples/Reactor/Misc/notification.cpp
+++ b/ACE/examples/Reactor/Misc/notification.cpp
@@ -8,15 +8,10 @@
#include "ace/Signal.h"
#include "ace/Truncate.h"
-ACE_RCSID(Misc, notification, "$Id$")
+
#if defined (ACE_HAS_THREADS)
-#if defined (CHORUS)
-// Chorus does not have signal, so we'll stop after a number of rounds.
-#define MAX_ITERATIONS 3
-#else
#define MAX_ITERATIONS 10000
-#endif /* CHORUS */
class Thread_Handler : public ACE_Event_Handler
{
diff --git a/ACE/examples/Reactor/Misc/pingpong.cpp b/ACE/examples/Reactor/Misc/pingpong.cpp
index 9a7a8566eae..e207fb385cf 100644
--- a/ACE/examples/Reactor/Misc/pingpong.cpp
+++ b/ACE/examples/Reactor/Misc/pingpong.cpp
@@ -43,13 +43,11 @@
#include "ace/OS_NS_string.h"
#include "ace/Null_Mutex.h"
#include "ace/OS_NS_unistd.h"
-#if defined (ACE_WIN32) || defined (CHORUS)
+#if defined (ACE_WIN32)
# include "ace/Barrier.h"
# include "ace/Thread.h"
#endif
-ACE_RCSID(Misc, pingpong, "$Id$")
-
class Ping_Pong : public ACE_Test_and_Set<ACE_Null_Mutex, sig_atomic_t>
{
public:
@@ -80,8 +78,10 @@ Ping_Pong::Ping_Pong (char b[], ACE_HANDLE f)
pid_ (ACE_OS::getpid ()),
handle_ (f)
{
- *((int *) this->buf_) = (int) this->pid_;
- *((int *) (this->buf_ + sizeof (int))) = 0;
+ int *pi_buf = (int *) this->buf_;
+ *(pi_buf) = (int) this->pid_;
+ pi_buf = (int *) (this->buf_ + sizeof (int));
+ *(pi_buf) = 0;
ACE_OS::strcpy (this->buf_ + (2 * sizeof (int)), b);
this->buf_[this->buflen_ - 1] = '\n';
this->buf_[this->buflen_] = '\0';
@@ -209,10 +209,8 @@ run_svc (ACE_HANDLE handle)
if (reactor.register_handler (callback,
ACE_Event_Handler::READ_MASK
| ACE_Event_Handler::WRITE_MASK) == -1
-#if !defined (CHORUS)
|| reactor.register_handler (SIGINT,
callback) == -1
-#endif /* CHORUS */
|| reactor.schedule_timer (callback,
0,
SHUTDOWN_TIME) == -1)
@@ -232,7 +230,7 @@ run_svc (ACE_HANDLE handle)
ACE_TEXT ("handle_events")));
}
-#if defined (ACE_WIN32) || defined (CHORUS)
+#if defined (ACE_WIN32)
static ACE_Barrier barrier (3);
static void *
@@ -270,7 +268,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_Pipe pipe (handles);
//FUZZ: enable check_for_lack_ACE_OS
-#if defined (ACE_WIN32) || defined (CHORUS)
+#if defined (ACE_WIN32)
if (ACE_Thread::spawn (ACE_THR_FUNC (worker),
(void *) handles[0],
THR_DETACHED) == -1
diff --git a/ACE/examples/Reactor/Misc/test_demuxing.cpp b/ACE/examples/Reactor/Misc/test_demuxing.cpp
index 99e3715f345..fceb54f22ee 100644
--- a/ACE/examples/Reactor/Misc/test_demuxing.cpp
+++ b/ACE/examples/Reactor/Misc/test_demuxing.cpp
@@ -17,7 +17,7 @@
#include "ace/OS_NS_fcntl.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Misc, test_demuxing, "$Id$")
+
// Default is to have a 2 second timeout.
static int timeout = 2;
@@ -299,7 +299,7 @@ Message_Handler::svc (void)
{
for (int i = 0;; i++)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (1),
@@ -334,7 +334,7 @@ Message_Handler::handle_input (ACE_HANDLE)
ACE_DEBUG ((LM_DEBUG,
"(%t) Message_Handler::handle_input\n"));
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
if (this->getq (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
ACE_ERROR ((LM_ERROR,
diff --git a/ACE/examples/Reactor/Misc/test_early_timeouts.cpp b/ACE/examples/Reactor/Misc/test_early_timeouts.cpp
index b539bdf7655..f22ffbb70f4 100644
--- a/ACE/examples/Reactor/Misc/test_early_timeouts.cpp
+++ b/ACE/examples/Reactor/Misc/test_early_timeouts.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ================================================================
-//
-// = LIBRARY
-// examples/Reactor/Misc/
-//
-// = FILENAME
-// test_early_timeouts.cpp
-//
-// = DESCRIPTION
-// On some platforms, select() returns before the time value
-// specified. This tests counts the number of times this happens
-// and the max early timeout.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ================================================================
+
+//=============================================================================
+/**
+ * @file test_early_timeouts.cpp
+ *
+ * $Id$
+ *
+ * On some platforms, select() returns before the time value
+ * specified. This tests counts the number of times this happens
+ * and the max early timeout.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/Handle_Set.h"
#include "ace/Pipe.h"
@@ -25,7 +22,7 @@
#include "ace/OS_NS_sys_time.h"
#include "ace/OS_NS_sys_select.h"
-ACE_RCSID(Misc, test_early_timeouts, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/examples/Reactor/Misc/test_event_handler_t.cpp b/ACE/examples/Reactor/Misc/test_event_handler_t.cpp
index 021110739b6..9eb4019e455 100644
--- a/ACE/examples/Reactor/Misc/test_event_handler_t.cpp
+++ b/ACE/examples/Reactor/Misc/test_event_handler_t.cpp
@@ -3,10 +3,6 @@
#include "ace/Event_Handler_T.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Misc, test_event_handler_t, "$Id$")
-
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-
class ACE_Test_Sig_Handler
{
public:
@@ -41,11 +37,3 @@ ACE_TMAIN (int, ACE_TCHAR *[])
&ACE_Test_Sig_Handler::signal_handler);
return 0;
}
-
-#else
-int
-ACE_TMAIN (int, ACE_TCHAR *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR, "your platform does not support template typedefs\n"), 1);
-}
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
diff --git a/ACE/examples/Reactor/Misc/test_reactors.cpp b/ACE/examples/Reactor/Misc/test_reactors.cpp
index 1c77f5e8c2f..2d94fa80d00 100644
--- a/ACE/examples/Reactor/Misc/test_reactors.cpp
+++ b/ACE/examples/Reactor/Misc/test_reactors.cpp
@@ -8,7 +8,7 @@
#include "ace/Task.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(Misc, test_reactors, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Reactor/Misc/test_signals_1.cpp b/ACE/examples/Reactor/Misc/test_signals_1.cpp
index aef83ae9428..2c66af34ccb 100644
--- a/ACE/examples/Reactor/Misc/test_signals_1.cpp
+++ b/ACE/examples/Reactor/Misc/test_signals_1.cpp
@@ -10,7 +10,7 @@
#include "ace/Log_Msg.h"
#include "ace/Signal.h"
-ACE_RCSID(Misc, test_signals_1, "$Id$")
+
// Number of times to allow signal to execute until we quit.
static size_t signal_count = 10;
diff --git a/ACE/examples/Reactor/Misc/test_signals_2.cpp b/ACE/examples/Reactor/Misc/test_signals_2.cpp
index ebfc89fc7ee..5664952290b 100644
--- a/ACE/examples/Reactor/Misc/test_signals_2.cpp
+++ b/ACE/examples/Reactor/Misc/test_signals_2.cpp
@@ -103,7 +103,7 @@
#include "ace/Log_Msg.h"
#include "ace/Signal.h"
-ACE_RCSID(Misc, test_signals_2, "$Id$")
+
class Sig_Handler_1 : public ACE_Event_Handler
{
diff --git a/ACE/examples/Reactor/Misc/test_time_value.cpp b/ACE/examples/Reactor/Misc/test_time_value.cpp
index 6557a0716de..275bd9aebfa 100644
--- a/ACE/examples/Reactor/Misc/test_time_value.cpp
+++ b/ACE/examples/Reactor/Misc/test_time_value.cpp
@@ -6,7 +6,7 @@
#include "ace/Log_Msg.h"
#include "ace/Time_Value.h"
-ACE_RCSID(Misc, test_time_value, "$Id$")
+
inline int my_abs (int d) { return d > 0 ? d : -d; }
diff --git a/ACE/examples/Reactor/Misc/test_timer_queue.cpp b/ACE/examples/Reactor/Misc/test_timer_queue.cpp
index 64138e13daf..87190f43c7d 100644
--- a/ACE/examples/Reactor/Misc/test_timer_queue.cpp
+++ b/ACE/examples/Reactor/Misc/test_timer_queue.cpp
@@ -8,7 +8,7 @@
#include "ace/Recursive_Thread_Mutex.h"
#include "ace/Null_Mutex.h"
-ACE_RCSID(Misc, test_timer_queue, "$Id$")
+
class Example_Handler : public ACE_Event_Handler
{
diff --git a/ACE/examples/Reactor/Multicast/Log_Wrapper.cpp b/ACE/examples/Reactor/Multicast/Log_Wrapper.cpp
index 64d137c7b83..1b8bc436926 100644
--- a/ACE/examples/Reactor/Multicast/Log_Wrapper.cpp
+++ b/ACE/examples/Reactor/Multicast/Log_Wrapper.cpp
@@ -12,7 +12,7 @@
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(Multicast, Log_Wrapper, "$Id$")
+
Log_Wrapper::Log_Wrapper (void)
{
diff --git a/ACE/examples/Reactor/Multicast/client.cpp b/ACE/examples/Reactor/Multicast/client.cpp
index 88f1ef04262..519bcace00b 100644
--- a/ACE/examples/Reactor/Multicast/client.cpp
+++ b/ACE/examples/Reactor/Multicast/client.cpp
@@ -12,7 +12,7 @@
#include "ace/Log_Msg.h"
#include "Log_Wrapper.h"
-ACE_RCSID(Multicast, client, "$Id$")
+
// Multi-cast address.
static const char *MCAST_ADDR = ACE_DEFAULT_MULTICAST_ADDR;
@@ -105,7 +105,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
if (nbytes <= 0)
break; // End of file or error.
-
+
buf[nbytes - 1] = '\0';
// Quitting?
@@ -120,10 +120,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Send the message to the logger.
if (log.log_message (Log_Wrapper::LM_DEBUG, buf) == -1)
ACE_ERROR_RETURN ((LM_ERROR, "%p\n" "log_message"), -1);
-
+
ACE_DEBUG ((LM_DEBUG, "finished sending message %d\n", count++));
}
- }
+ }
ACE_DEBUG ((LM_DEBUG, "Client done.\n"));
return 0;
diff --git a/ACE/examples/Reactor/Multicast/server.cpp b/ACE/examples/Reactor/Multicast/server.cpp
index 64e54fc06a5..8df4859b517 100644
--- a/ACE/examples/Reactor/Multicast/server.cpp
+++ b/ACE/examples/Reactor/Multicast/server.cpp
@@ -16,7 +16,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/os_include/os_netdb.h"
-ACE_RCSID(Multicast, server, "$Id$")
+
#if defined (ACE_HAS_IP_MULTICAST)
class Server_Events : public ACE_Event_Handler
diff --git a/ACE/examples/Reactor/Ntalker/ntalker.cpp b/ACE/examples/Reactor/Ntalker/ntalker.cpp
index 5bf538b06eb..be7fd659c54 100644
--- a/ACE/examples/Reactor/Ntalker/ntalker.cpp
+++ b/ACE/examples/Reactor/Ntalker/ntalker.cpp
@@ -12,7 +12,7 @@
#include "ace/Thread_Manager.h"
#include "ace/Service_Config.h"
-ACE_RCSID(Ntalker, ntalker, "$Id$")
+
#if defined (ACE_HAS_IP_MULTICAST)
// Network interface to subscribe to. This is hardware specific. use
diff --git a/ACE/examples/Reactor/Proactor/Aio_Platform_Test_C.cpp b/ACE/examples/Reactor/Proactor/Aio_Platform_Test_C.cpp
index 32776323b85..f8487046e8a 100644
--- a/ACE/examples/Reactor/Proactor/Aio_Platform_Test_C.cpp
+++ b/ACE/examples/Reactor/Proactor/Aio_Platform_Test_C.cpp
@@ -1,19 +1,17 @@
-// $Id$
-// ============================================================================
-//
-// = FILENAME
-// aio_platform_test_c.cpp
-//
-// = DESCRITPTION
-// Testing the platform for POSIX Asynchronous I/O. This is the C
-// version of the $ACE_ROOT/tests/Aio_Platform_Test.cpp. Useful
-// to send bug reports.
-//
-// = AUTHOR
-// Programming for the Real World. Bill O. GallMeister.
-// Modified by Alexander Babu Arulanthu <alex@cs.wustl.edu>
-//
-// =====================================================================
+//=============================================================================
+/**
+ * @file Aio_Platform_Test_C.cpp
+ *
+ * $Id$
+ *
+ * Testing the platform for POSIX Asynchronous I/O. This is the C
+ * version of the $ACE_ROOT/tests/Aio_Platform_Test.cpp. Useful
+ * to send bug reports.
+ *
+ * @author Programming for the Real World. Bill O. GallMeister. Modified by Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ */
+//=============================================================================
+
#include <unistd.h>
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/Proactor/post_completions.cpp b/ACE/examples/Reactor/Proactor/post_completions.cpp
index ce24d5f5ef1..a554e044929 100644
--- a/ACE/examples/Reactor/Proactor/post_completions.cpp
+++ b/ACE/examples/Reactor/Proactor/post_completions.cpp
@@ -1,35 +1,30 @@
-// $Id$
-// ============================================================================
-//
-// = FILENAME
-// post_completions.cpp
-//
-// = DESCRITPTION
-// This program demonstrates how to post fake completions to The
-// Proactor. It also shows the how to specify the particular
-// real-time signals to post completions. The Real-time signal
-// based completion strategy is implemented with
-// ACE_POSIX_SIG_PROACTOR.
-// (So, it can be used only if both ACE_HAS_AIO_CALLS and
-// ACE_HAS_POSIX_REALTIME_SIGNALS are defined.)
-// Since it is faking results, you have to pay by knowing and
-// using platform-specific implementation objects for Asynchronous
-// Result classes.
-// This example shows using an arbitrary result class for faking
-// completions. You can also use the predefined Result classes for
-// faking. The factory methods in the Proactor class create the
-// Result objects.
-//
-// = COMPILATION
-// make
-//
-// = RUN
-// ./post_completions
-//
-// = AUTHOR
-// Alexander Babu Arulanthu <alex@cs.wustl.edu>
-//
-// =====================================================================
+//=============================================================================
+/**
+ * @file post_completions.cpp
+ *
+ * $Id$
+ *
+ * This program demonstrates how to post fake completions to The
+ * Proactor. It also shows the how to specify the particular
+ * real-time signals to post completions. The Real-time signal
+ * based completion strategy is implemented with
+ * ACE_POSIX_SIG_PROACTOR.
+ * (So, it can be used only if both ACE_HAS_AIO_CALLS and
+ * ACE_HAS_POSIX_REALTIME_SIGNALS are defined.)
+ * Since it is faking results, you have to pay by knowing and
+ * using platform-specific implementation objects for Asynchronous
+ * Result classes.
+ * This example shows using an arbitrary result class for faking
+ * completions. You can also use the predefined Result classes for
+ * faking. The factory methods in the Proactor class create the
+ * Result objects.
+ * make
+ * ./post_completions
+ *
+ * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_unistd.h"
#include "ace/OS_main.h"
@@ -54,14 +49,14 @@ static ACE_Atomic_Op <ACE_SYNCH_MUTEX, size_t> Completions_To_Go;
#define RESULT_CLASS ACE_WIN32_Asynch_Result
#endif /* ACE_HAS_AIO_CALLS */
+/**
+ * @class My_Result
+ *
+ * @brief Result Object that we will post to the Proactor.
+ *
+ */
class My_Result : public RESULT_CLASS
{
- // = TITLE
- //
- // Result Object that we will post to the Proactor.
- //
- // = DESCRIPTION
- //
public:
My_Result (ACE_Handler &handler,
@@ -83,14 +78,16 @@ public:
{}
// Destructor.
+ /**
+ * This is the method that will be called by the Proactor for
+ * dispatching the completion. This method generally calls one of
+ * the call back hood methods defined in the ACE_Handler
+ * class. But, we will just handle the completions here.
+ */
void complete (size_t,
int success,
const void *completion_key,
u_long error)
- // This is the method that will be called by the Proactor for
- // dispatching the completion. This method generally calls one of
- // the call back hood methods defined in the ACE_Handler
- // class. But, we will just handle the completions here.
{
this->success_ = success;
this->completion_key_ = completion_key;
@@ -112,40 +109,41 @@ public:
}
private:
+ /// Sequence number for the result object.
size_t sequence_number_;
- // Sequence number for the result object.
};
+/**
+ * @class My_Handler
+ *
+ * @brief Handler class for faked completions.
+ *
+ */
class My_Handler : public ACE_Handler
{
- // = TITLE
- //
- // Handler class for faked completions.
- //
- // = DESCRIPTION
- //
public:
+ /// Constructor.
My_Handler (void) {}
- // Constructor.
+ /// Destructor.
virtual ~My_Handler (void) {}
- // Destructor.
};
+/**
+ * @class My_Task:
+ *
+ * @brief Contains thread functions which execute event loops. Each
+ * thread waits for a different signal.
+ */
class My_Task: public ACE_Task <ACE_NULL_SYNCH>
{
- // = TITLE
- //
- // Contains thread functions which execute event loops. Each
- // thread waits for a different signal.
- //
public:
+ /// Constructor.
My_Task (void) {}
- // Constructor.
+ /// Destructor.
virtual ~My_Task (void) {}
- // Destructor.
//FUZZ: disable check_for_lack_ACE_OS
int open (void *proactor)
@@ -175,8 +173,8 @@ public:
}
private:
+ /// Proactor for this task.
ACE_Proactor *proactor_;
- // Proactor for this task.
};
int
diff --git a/ACE/examples/Reactor/Proactor/simple_test_proactor.cpp b/ACE/examples/Reactor/Proactor/simple_test_proactor.cpp
index 147bc2773b5..fcd5efc5e24 100644
--- a/ACE/examples/Reactor/Proactor/simple_test_proactor.cpp
+++ b/ACE/examples/Reactor/Proactor/simple_test_proactor.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// simple_test_proactor.cpp
-//
-// = DESCRIPTION
-// Very simple version of test_proactor.cpp.
-//
-// = AUTHOR
-// Alexander Babu Arulanthu (alex@cs.wustl.edu)
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file simple_test_proactor.cpp
+ *
+ * $Id$
+ *
+ * Very simple version of test_proactor.cpp.
+ *
+ *
+ * @author Alexander Babu Arulanthu (alex@cs.wustl.edu)
+ */
+//=============================================================================
+
#include "ace/Service_Config.h"
#include "ace/Proactor.h"
@@ -24,7 +21,7 @@
#include "ace/Get_Opt.h"
#include "ace/OS_main.h"
-ACE_RCSID(Proactor, test_proactor, "simple_test_proactor.cpp,v 1.1 1999/05/18 22:15:30 alex Exp")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on Win32 platforms and on Unix platforms supporting
@@ -33,51 +30,51 @@ ACE_RCSID(Proactor, test_proactor, "simple_test_proactor.cpp,v 1.1 1999/05/18 22
static ACE_TCHAR *file = ACE_TEXT("simple_test_proactor.cpp");
static ACE_TCHAR *dump_file = ACE_TEXT("simple_output");
+/**
+ * @class Simple_Tester
+ *
+ * @brief Simple_Tester
+ *
+ * The class will be created by main(). This class reads a block
+ * from the file and write that to the dump file.
+ */
class Simple_Tester : public ACE_Handler
{
- // = TITLE
- //
- // Simple_Tester
- //
- // = DESCRIPTION
- //
- // The class will be created by main(). This class reads a block
- // from the file and write that to the dump file.
public:
+ /// Constructor.
Simple_Tester (void);
- // Constructor.
~Simple_Tester (void);
//FUZZ: disable check_for_lack_ACE_OS
+ /// Open the operations and initiate read from the file.
+ ///FUZZ: enble check_for_lack_ACE_OS
int open (void);
- // Open the operations and initiate read from the file.
- //FUZZ: enble check_for_lack_ACE_OS
protected:
// = These methods are called by the freamwork.
+ /// This is called when asynchronous reads from the socket complete.
virtual void handle_read_file (const ACE_Asynch_Read_File::Result &result);
- // This is called when asynchronous reads from the socket complete.
+ /// This is called when asynchronous writes from the socket complete.
virtual void handle_write_file (const ACE_Asynch_Write_File::Result &result);
- // This is called when asynchronous writes from the socket complete.
private:
int initiate_read_file (void);
+ /// rf (read file): for writing from the file.
ACE_Asynch_Read_File rf_;
- // rf (read file): for writing from the file.
+ /// ws (write File): for writing to the file.
ACE_Asynch_Write_File wf_;
- // ws (write File): for writing to the file.
+ /// File to read from.
ACE_HANDLE input_file_;
- // File to read from.
+ /// File for dumping data.
ACE_HANDLE dump_file_;
- // File for dumping data.
// u_long file_offset_;
// Current file offset
@@ -127,7 +124,7 @@ Simple_Tester::open (void)
ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Asynch_Write_File::open"), -1);
ACE_DEBUG ((LM_DEBUG,
- "Simple_Tester::open: Files and Asynch Operations opened sucessfully\n"));
+ "Simple_Tester::open: Files and Asynch Operations opened successfully\n"));
// Start an asynchronous read file
@@ -150,7 +147,7 @@ Simple_Tester::initiate_read_file (void)
ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Asynch_Read_File::read"), -1);
ACE_DEBUG ((LM_DEBUG,
- "Simple_Tester:initiate_read_file: Asynch Read File issued sucessfully\n"));
+ "Simple_Tester:initiate_read_file: Asynch Read File issued successfully\n"));
return 0;
}
diff --git a/ACE/examples/Reactor/Proactor/test_aiocb.cpp b/ACE/examples/Reactor/Proactor/test_aiocb.cpp
index 36a1d51062b..b4b783b7db8 100644
--- a/ACE/examples/Reactor/Proactor/test_aiocb.cpp
+++ b/ACE/examples/Reactor/Proactor/test_aiocb.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// proactor
-//
-// = FILENAME
-// test_aiocb.cpp
-//
-// = DESCRIPTION
-// Checkout $ACE_ROOT/examples/Reactor/Proactor/test_aiocb_ace.cpp,
-// which is the ACE'ified version of this program.
-//
-// = COMPILE and RUN
-// % CC -g -o test_aiocb -lrt test_aiocb.cpp
-// % ./test_aiocb
-//
-// = AUTHOR
-// Alexander Babu Arulanthu <alex@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_aiocb.cpp
+ *
+ * $Id$
+ *
+ * Checkout $ACE_ROOT/examples/Reactor/Proactor/test_aiocb_ace.cpp,
+ * which is the ACE'ified version of this program.
+ *
+ * = COMPILE and RUN
+ * % CC -g -o test_aiocb -lrt test_aiocb.cpp
+ * % ./test_aiocb
+ *
+ *
+ * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ */
+//=============================================================================
+
//FUZZ: disable check_for_lack_ACE_OS
//FUZZ: disable check_for_improper_main_declaration
@@ -39,32 +36,32 @@
class Test_Aio
{
public:
+ /// Default constructor.
Test_Aio (void);
- // Default constructor.
+ /// Initting the output file and the buffer.
int init (void);
- // Initting the output file and the buffer.
+ /// Doing the testing stuff.
int do_aio (void);
- // Doing the testing stuff.
+ /// Destructor.
~Test_Aio (void);
- // Destructor.
private:
+ /// Output file descriptor.
int out_fd_;
- // Output file descriptor.
+ /// For writing to the file.
struct aiocb *aiocb_write_;
- // For writing to the file.
+ /// Reading stuff from the file.
struct aiocb *aiocb_read_;
- // Reading stuff from the file.
+ /// The buffer to be written to the out_fd.
char *buffer_write_;
- // The buffer to be written to the out_fd.
+ /// The buffer to be read back from the file.
char *buffer_read_;
- // The buffer to be read back from the file.
};
Test_Aio::Test_Aio (void)
@@ -146,7 +143,7 @@ Test_Aio::do_aio (void)
// the completion for the first one.
if (aio_read (this->aiocb_read_) < 0)
perror ("aio_read");
-
+
// Wait for the completion on aio_suspend.
struct aiocb *list_aiocb[2];
list_aiocb [0] = this->aiocb_write_;
@@ -214,7 +211,7 @@ Test_Aio::do_aio (void)
cout << "Both the AIO operations done." << endl;
cout << "The buffer is :" << this->buffer_read_ << endl;
-
+
return 0;
}
@@ -229,11 +226,11 @@ main (int argc, char **argv)
"ACE_POSIX_AIOCB_PROACTOR may not work in this platform\n");
return -1;
}
-
+
if (test_aio.do_aio () != 0)
{
printf ("AIOCB test failed:\n"
- "ACE_POSIX_AIOCB_PROACTOR may not work in this platform\n");
+ "ACE_POSIX_AIOCB_PROACTOR may not work in this platform\n");
return -1;
}
printf ("AIOCB test successful:\n"
diff --git a/ACE/examples/Reactor/Proactor/test_aiocb_ace.cpp b/ACE/examples/Reactor/Proactor/test_aiocb_ace.cpp
index fe3234c22d9..b24b7bdace4 100644
--- a/ACE/examples/Reactor/Proactor/test_aiocb_ace.cpp
+++ b/ACE/examples/Reactor/Proactor/test_aiocb_ace.cpp
@@ -1,36 +1,33 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// proactor
-//
-// = FILENAME
-// test_aiocb_ace.cpp
-//
-// = DESCRIPTION
-// This program helps you to test the <aio_*> calls on a
-// platform.
-//
-// Before running this test, make sure the platform can
-// support POSIX <aio_> calls, using
-// ACE_ROOT/tests/Aio_Platform_Test.
-//
-// This program tests the AIOCB (AIO Control Blocks) based
-// completion approach which uses <aio_suspend> for completion
-// querying.
-//
-// If this test is successful, ACE_POSIX_AIOCB_PROACTOR
-// can be used on this platform.
-//
-// = COMPILE and RUN
-// % make
-// % ./test_aiocb_ace
-//
-// = AUTHOR
-// Alexander Babu Arulanthu <alex@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_aiocb_ace.cpp
+ *
+ * $Id$
+ *
+ * This program helps you to test the <aio_*> calls on a
+ * platform.
+ *
+ * Before running this test, make sure the platform can
+ * support POSIX <aio_> calls, using
+ * ACE_ROOT/tests/Aio_Platform_Test.
+ *
+ * This program tests the AIOCB (AIO Control Blocks) based
+ * completion approach which uses <aio_suspend> for completion
+ * querying.
+ *
+ * If this test is successful, ACE_POSIX_AIOCB_PROACTOR
+ * can be used on this platform.
+ *
+ * = COMPILE and RUN
+ * % make
+ * % ./test_aiocb_ace
+ *
+ *
+ * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/ACE.h"
#include "ace/Log_Msg.h"
@@ -40,32 +37,32 @@
class Test_Aio
{
public:
+ /// Default constructor.
Test_Aio (void);
- // Default constructor.
+ /// Initting the output file and the buffer.
int init (void);
- // Initting the output file and the buffer.
+ /// Doing the testing stuff.
int do_aio (void);
- // Doing the testing stuff.
+ /// Destructor.
~Test_Aio (void);
- // Destructor.
private:
+ /// Output file descriptor.
int out_fd_;
- // Output file descriptor.
+ /// For writing to the file.
struct aiocb *aiocb_write_;
- // For writing to the file.
+ /// Reading stuff from the file.
struct aiocb *aiocb_read_;
- // Reading stuff from the file.
+ /// The buffer to be written to the out_fd.
char *buffer_write_;
- // The buffer to be written to the out_fd.
+ /// The buffer to be read back from the file.
char *buffer_read_;
- // The buffer to be read back from the file.
};
Test_Aio::Test_Aio (void)
diff --git a/ACE/examples/Reactor/Proactor/test_aiosig.cpp b/ACE/examples/Reactor/Proactor/test_aiosig.cpp
index 944719968f1..b51e92bac32 100644
--- a/ACE/examples/Reactor/Proactor/test_aiosig.cpp
+++ b/ACE/examples/Reactor/Proactor/test_aiosig.cpp
@@ -1,24 +1,18 @@
-// $Id$
-// ============================================================================
-//
-// = FILENAME
-// test_aiosig.cpp
-//
-// = DESCRITPTION
-// Check out test_aiosig_ace.cpp, the ACE'ified version of this
-// program. This program may not be uptodate.
-//
-// = COMPILATION
-// CC -g -o test_aiosig -lrt test_aiosig.cpp
-//
-// = RUN
-// ./test_aiosig
-//
-// = AUTHOR
-// Programming for the Real World. Bill O. GallMeister.
-// Modified by Alexander Babu Arulanthu <alex@cs.wustl.edu>
-//
-// =====================================================================
+//=============================================================================
+/**
+ * @file test_aiosig.cpp
+ *
+ * $Id$
+ *
+ * Check out test_aiosig_ace.cpp, the ACE'ified version of this
+ * program. This program may not be uptodate.
+ * CC -g -o test_aiosig -lrt test_aiosig.cpp
+ * ./test_aiosig
+ *
+ * @author Programming for the Real World. Bill O. GallMeister. Modified by Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ */
+//=============================================================================
+
//FUZZ: disable check_for_lack_ACE_OS
//FUZZ: disable check_for_improper_main_declaration
diff --git a/ACE/examples/Reactor/Proactor/test_aiosig_ace.cpp b/ACE/examples/Reactor/Proactor/test_aiosig_ace.cpp
index fab137a4c02..21386c89383 100644
--- a/ACE/examples/Reactor/Proactor/test_aiosig_ace.cpp
+++ b/ACE/examples/Reactor/Proactor/test_aiosig_ace.cpp
@@ -1,43 +1,33 @@
-// $Id$
-
-// ============================================================================
-//
-// = FILENAME
-// test_aiosig_sig.cpp
-//
-// = DESCRITPTION
-// This program helps you to test the <aio_*> calls on a
-// platform.
-// Before running this test, make sure the platform can
-// support POSIX <aio_> calls, using ACE_ROOT/tests/Aio_Plaform_Test.cpp
-//
-// This program tests the Signal based completion approach which
-// uses <sigtimedwait> for completion querying.
-// If this test is successful, ACE_POSIX_SIG_PROACTOR
-// can be used on this platform.
-//
-// This program is a ACE version of the
-// $ACE_ROOT/examples/Reactor/Proactor/test_aiosig.cpp, with
-// ACE_DEBUGs and Message_Blocks.
-//
-// This test does the following:
-// Issue two <aio_read>s.
-// Assign SIGRTMIN as the notification signal.
-// Mask these signals from delivery.
-// Receive this signal by doing <sigtimedwait>.
-// Wait for two completions (two signals)
-//
-// = COMPILATION
-// make
-//
-// = RUN
-// ./test_aiosig_ace
-//
-// = AUTHOR
-// Programming for the Real World. Bill O. GallMeister.
-// Modified by Alexander Babu Arulanthu <alex@cs.wustl.edu>
-//
-// =====================================================================
+
+//=============================================================================
+/**
+ * @file test_aiosig_ace.cpp
+ *
+ * $Id$
+ *
+ * This program helps you to test the <aio_*> calls on a
+ * platform.
+ * Before running this test, make sure the platform can
+ * support POSIX <aio_> calls, using ACE_ROOT/tests/Aio_Plaform_Test.cpp
+ * This program tests the Signal based completion approach which
+ * uses <sigtimedwait> for completion querying.
+ * If this test is successful, ACE_POSIX_SIG_PROACTOR
+ * can be used on this platform.
+ * This program is a ACE version of the
+ * $ACE_ROOT/examples/Reactor/Proactor/test_aiosig.cpp, with
+ * ACE_DEBUGs and Message_Blocks.
+ * This test does the following:
+ * Issue two <aio_read>s.
+ * Assign SIGRTMIN as the notification signal.
+ * Mask these signals from delivery.
+ * Receive this signal by doing <sigtimedwait>.
+ * Wait for two completions (two signals)
+ * make
+ * ./test_aiosig_ace
+ * @author Programming for the Real World. Bill O. GallMeister. Modified by Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/Message_Block.h"
#include "ace/Log_Msg.h"
diff --git a/ACE/examples/Reactor/Proactor/test_cancel.cpp b/ACE/examples/Reactor/Proactor/test_cancel.cpp
index 803fb61fd48..b4e551ae2b4 100644
--- a/ACE/examples/Reactor/Proactor/test_cancel.cpp
+++ b/ACE/examples/Reactor/Proactor/test_cancel.cpp
@@ -1,39 +1,36 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_cancel.cpp
-//
-// = DESCRIPTION
-// This program tests cancelling an Asynchronous Operation in the
-// Proactor framework.
-//
-// This tests accepts a connection and issues an Asynchronous Read
-// Stream. It reads <read_size> (option -s) number of bytes and
-// when this operation completes, it issues another Asynchronous
-// Read Stream to <read_size> and immediately calls <cancel> to
-// cancel the operation and so the program exits closing the
-// connection.
-//
-// Works fine on NT. On Solaris platforms, the asynch read is
-// pending, but the cancel returns with the value <AIO_ALLDONE>
-// indicating all the operations in that handle are done.
-// But, LynxOS has a good <aio_cancel> implementation. It works
-// fine.
-//
-// = RUN
-// ./test_cancel -p <port_number>
-// Then telnet to this port and send <read_size> bytes and your
-// connection should get closed down.
-//
-// = AUTHOR
-// Irfan Pyarali (irfan@cs.wustl.edu)
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_cancel.cpp
+ *
+ * $Id$
+ *
+ * This program tests cancelling an Asynchronous Operation in the
+ * Proactor framework.
+ *
+ * This tests accepts a connection and issues an Asynchronous Read
+ * Stream. It reads <read_size> (option -s) number of bytes and
+ * when this operation completes, it issues another Asynchronous
+ * Read Stream to <read_size> and immediately calls <cancel> to
+ * cancel the operation and so the program exits closing the
+ * connection.
+ *
+ * Works fine on NT. On Solaris platforms, the asynch read is
+ * pending, but the cancel returns with the value <AIO_ALLDONE>
+ * indicating all the operations in that handle are done.
+ * But, LynxOS has a good <aio_cancel> implementation. It works
+ * fine.
+ *
+ * = RUN
+ * ./test_cancel -p <port_number>
+ * Then telnet to this port and send <read_size> bytes and your
+ * connection should get closed down.
+ *
+ *
+ * @author Irfan Pyarali (irfan@cs.wustl.edu)
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/Service_Config.h"
@@ -50,7 +47,7 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_sys_socket.h"
-ACE_RCSID (Proactor, test_proactor, "$Id$")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on Win32 platforms and on Unix platforms supporting
diff --git a/ACE/examples/Reactor/Proactor/test_end_event_loop.cpp b/ACE/examples/Reactor/Proactor/test_end_event_loop.cpp
index 2a87b875afe..4b1dff2d027 100644
--- a/ACE/examples/Reactor/Proactor/test_end_event_loop.cpp
+++ b/ACE/examples/Reactor/Proactor/test_end_event_loop.cpp
@@ -1,28 +1,22 @@
-// $Id$
-// ============================================================================
-//
-// = FILENAME
-// test_end_event_loop.cpp
-//
-// = DESCRITPTION
-// This program tests the event loop mechanism of the
-// Proactor. To end the event loop, threads that are blocked in
-// waiting for completions are woken up and the event loop comes
-// to the end. This is tested in this program.
-//
-// Threads are doing <run_event_loop> with/without time_out
-// values and the main thread calls <end_event_loop>.
-//
-// = COMPILATION
-// make
-//
-// = RUN
-// ./test_end_event_loop
-//
-// = AUTHOR
-// Alexander Babu Arulanthu <alex@cs.wustl.edu>
-//
-// =====================================================================
+//=============================================================================
+/**
+ * @file test_end_event_loop.cpp
+ *
+ * $Id$
+ *
+ * This program tests the event loop mechanism of the
+ * Proactor. To end the event loop, threads that are blocked in
+ * waiting for completions are woken up and the event loop comes
+ * to the end. This is tested in this program.
+ * Threads are doing <run_event_loop> with/without time_out
+ * values and the main thread calls <end_event_loop>.
+ * make
+ * ./test_end_event_loop
+ *
+ * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_unistd.h"
#include "ace/Proactor.h"
@@ -35,21 +29,22 @@
// This only works on Win32 platforms and on Unix platforms supporting
// POSIX aio calls.
+/**
+ * @class My_Task:
+ *
+ * @brief Contains thread functions which execute event loops. Each
+ * thread waits for a different signal.
+ */
class My_Task: public ACE_Task <ACE_NULL_SYNCH>
{
- // = TITLE
- //
- // Contains thread functions which execute event loops. Each
- // thread waits for a different signal.
- //
public:
// Constructor.
My_Task (void)
: time_flag_ (0)
{}
+ /// Destructor.
virtual ~My_Task (void) {}
- // Destructor.
//FUZZ: disable check_for_lack_ACE_OS
// If time_flag is zero do the eventloop indefinitely, otherwise do
@@ -106,8 +101,8 @@ public:
};
private:
+ /// If zero, indefinite event loop, otherwise timed event loop.
int time_flag_;
- // If zero, indefinite event loop, otherwise timed event loop.
};
int
diff --git a/ACE/examples/Reactor/Proactor/test_multiple_loops.cpp b/ACE/examples/Reactor/Proactor/test_multiple_loops.cpp
index 61301aaf50b..77d8cc13225 100644
--- a/ACE/examples/Reactor/Proactor/test_multiple_loops.cpp
+++ b/ACE/examples/Reactor/Proactor/test_multiple_loops.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_multiple_loops.cpp
-//
-// = DESCRIPTION
-//
-// This example application shows how to write programs that
-// combine the Proactor and Reactor event loops. This is possible
-// only on WIN32 platform.
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_multiple_loops.cpp
+ *
+ * $Id$
+ *
+ *
+ * This example application shows how to write programs that
+ * combine the Proactor and Reactor event loops. This is possible
+ * only on WIN32 platform.
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/Task.h"
#include "ace/Proactor.h"
@@ -25,14 +22,17 @@
#include "ace/Atomic_Op.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Proactor, test_multiple_loops, "$Id$")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+/**
+ * @class Timeout_Handler
+ *
+ * @brief Generic timeout handler.
+ */
class Timeout_Handler : public ACE_Handler, public ACE_Event_Handler
{
- // = TITLE
- // Generic timeout handler.
public:
Timeout_Handler (void)
diff --git a/ACE/examples/Reactor/Proactor/test_proactor.cpp b/ACE/examples/Reactor/Proactor/test_proactor.cpp
index fca820893dc..ea659f5720e 100644
--- a/ACE/examples/Reactor/Proactor/test_proactor.cpp
+++ b/ACE/examples/Reactor/Proactor/test_proactor.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_proactor.cpp
-//
-// = DESCRIPTION
-// This program illustrates how the <ACE_Proactor> can be used to
-// implement an application that does various asynchronous
-// operations.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_proactor.cpp
+ *
+ * $Id$
+ *
+ * This program illustrates how the <ACE_Proactor> can be used to
+ * implement an application that does various asynchronous
+ * operations.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_string.h"
#include "ace/OS_main.h"
@@ -38,7 +35,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_fcntl.h"
-ACE_RCSID(Proactor, test_proactor, "$Id$")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on Win32 platforms and on Unix platforms supporting
@@ -272,20 +269,23 @@ Receiver::handle_write_file (const ACE_Asynch_Write_File::Result &result)
ACE_ASSERT (result.bytes_to_write () == result.bytes_transferred ());
}
+/**
+ * @class Sender
+ *
+ * @brief The class will be created by <main>. After connecting to the
+ * host, this class will then read data from a file and send it
+ * to the network connection.
+ */
class Sender : public ACE_Handler
{
- // = TITLE
- // The class will be created by <main>. After connecting to the
- // host, this class will then read data from a file and send it
- // to the network connection.
public:
Sender (void);
~Sender (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
int open (const ACE_TCHAR *host,
u_short port);
- //FUZZ: enable check_for_lack_ACE_OS
ACE_HANDLE handle (void) const;
void handle (ACE_HANDLE);
@@ -293,50 +293,52 @@ public:
protected:
// These methods are called by the freamwork
+ /**
+ * This is called when asynchronous transmit files complete
+ * This is called when asynchronous writes from the socket complete
+ * This is called when asynchronous reads from the socket complete
+ */
virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result);
- // This is called when asynchronous transmit files complete
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This is called when asynchronous writes from the socket complete
virtual void handle_read_file (const ACE_Asynch_Read_File::Result &result);
- // This is called when asynchronous reads from the socket complete
private:
+ /// Transmit the entire file in one fell swoop.
int transmit_file (void);
- // Transmit the entire file in one fell swoop.
+ /// Initiate an asynchronous file read.
int initiate_read_file (void);
- // Initiate an asynchronous file read.
+ /// Network I/O handle
ACE_SOCK_Stream stream_;
- // Network I/O handle
+ /// ws (write stream): for writing to the socket
ACE_Asynch_Write_Stream ws_;
- // ws (write stream): for writing to the socket
+ /// rf (read file): for writing from the file
ACE_Asynch_Read_File rf_;
- // rf (read file): for writing from the file
+ /// Transmit file.
ACE_Asynch_Transmit_File tf_;
- // Transmit file.
+ /// File to read from
ACE_HANDLE input_file_;
- // File to read from
+ /// Current file offset
u_long file_offset_;
- // Current file offset
+ /// File size
u_long file_size_;
- // File size
+ /// Welcome message
ACE_Message_Block welcome_message_;
- // Welcome message
+ /// Header and trailer which goes with transmit_file
ACE_Asynch_Transmit_File::Header_And_Trailer header_and_trailer_;
- // Header and trailer which goes with transmit_file
+ /// These flags help to determine when to close down the event loop
int stream_write_done_;
int transmit_file_done_;
- // These flags help to determine when to close down the event loop
};
Sender::Sender (void)
@@ -537,7 +539,7 @@ Sender::handle_read_file (const ACE_Asynch_Read_File::Result &result)
this->file_offset_ +=
ACE_Utils::truncate_cast<u_long> (result.bytes_transferred ());
-
+
if (this->ws_.write (result.message_block (),
result.bytes_transferred ()) == -1)
{
@@ -584,7 +586,7 @@ Sender::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
int unsent_data =
ACE_Utils::truncate_cast<int> (
result.bytes_to_write () - result.bytes_transferred ());
-
+
if (unsent_data != 0)
{
// Reset pointers
diff --git a/ACE/examples/Reactor/Proactor/test_proactor2.cpp b/ACE/examples/Reactor/Proactor/test_proactor2.cpp
index ad483e962a8..7ba9657b951 100644
--- a/ACE/examples/Reactor/Proactor/test_proactor2.cpp
+++ b/ACE/examples/Reactor/Proactor/test_proactor2.cpp
@@ -1,24 +1,21 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_proactor2.cpp
-//
-// = DESCRIPTION
-// Alexander Libman <Alibman@baltimore.com> modified
-// <test_proactor> and made this test. Instead of writing received
-// data to the file, the receiver sends them back to the
-// sender,i.e. ACE_Asynch_Write_File wf_ has been changed to
-// ACE_Asynch_Write_Stream wf_.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu> and Alexander Libman
-// <Alibman@baltimore.com>.
-// ============================================================================
+//=============================================================================
+/**
+ * @file test_proactor2.cpp
+ *
+ * $Id$
+ *
+ * Alexander Libman <Alibman@baltimore.com> modified
+ * <test_proactor> and made this test. Instead of writing received
+ * data to the file, the receiver sends them back to the
+ * sender,i.e. ACE_Asynch_Write_File wf_ has been changed to
+ * ACE_Asynch_Write_Stream wf_.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> and Alexander Libman <Alibman@baltimore.com>.
+ */
+//=============================================================================
+
#include "ace/Signal.h"
@@ -40,7 +37,7 @@
#include "ace/Task.h"
#include "ace/OS_main.h"
-ACE_RCSID(Proactor, test_proactor2, "test_proactor2.cpp,v 1.27 2000/03/07 17:15:56 schmidt Exp")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on Win32 platforms and on Unix platforms supporting
@@ -119,23 +116,23 @@ public:
~Receiver (void);
//FUZZ: disable check_for_lack_ACE_OS
+ /// This is called after the new connection has been accepted.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual void open (ACE_HANDLE handle,
ACE_Message_Block &message_block);
- // This is called after the new connection has been accepted.
- //FUZZ: enable check_for_lack_ACE_OS
protected:
// These methods are called by the framework
+ /// This is called when asynchronous <read> operation from the socket
+ /// complete.
virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result
&result);
- // This is called when asynchronous <read> operation from the socket
- // complete.
+ /// This is called when an asynchronous <write> to the file
+ /// completes.
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result
&result);
- // This is called when an asynchronous <write> to the file
- // completes.
private:
int initiate_read_stream (void);
@@ -157,14 +154,14 @@ Receiver::Receiver (void)
: handle_ (ACE_INVALID_HANDLE),
nIOCount ( 0 )
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
+ ACE_GUARD (MyMutex, locker, m_Mtx);
nSessions ++ ;
ACE_DEBUG ((LM_DEBUG, "Receiver Ctor nSessions=%d\n", nSessions ));
}
Receiver::~Receiver (void)
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
+ ACE_GUARD (MyMutex, locker, m_Mtx);
nSessions -- ;
ACE_OS::closesocket (this->handle_);
ACE_DEBUG ((LM_DEBUG, "~Receiver Dtor nSessions=%d\n", nSessions ));
@@ -177,7 +174,7 @@ Receiver::~Receiver (void)
bool Receiver::check_destroy ()
{
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
+ ACE_GUARD_RETURN (MyMutex, locker, m_Mtx, false);
if ( nIOCount > 0 )
{
@@ -191,10 +188,8 @@ bool Receiver::check_destroy ()
void Receiver::open (ACE_HANDLE handle,
- ACE_Message_Block &message_block)
+ ACE_Message_Block &)
{
- ACE_UNUSED_ARG (message_block);
-
ACE_DEBUG ((LM_DEBUG,
"%N:%l:Receiver::open called\n"));
@@ -225,7 +220,7 @@ void Receiver::open (ACE_HANDLE handle,
int Receiver::initiate_read_stream (void)
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
+ ACE_GUARD_RETURN (MyMutex, locker, m_Mtx, -1);
// Create a new <Message_Block>. Note that this message block will
// be used both to <read> data asynchronously from the socket and to
@@ -255,7 +250,7 @@ int Receiver::initiate_read_stream (void)
int Receiver::initiate_write_stream (ACE_Message_Block & mb, int nBytes )
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
+ ACE_GUARD_RETURN (MyMutex, locker, m_Mtx, -1);
if (this->ws_.write (mb , nBytes ) == -1)
{
mb.release ();
@@ -319,8 +314,8 @@ Receiver::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
}
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
- nIOCount-- ;
+ ACE_GUARD (MyMutex, locker, m_Mtx);
+ --nIOCount;
}
check_destroy () ;
}
@@ -359,8 +354,8 @@ Receiver::handle_write_stream (const ACE_Asynch_Write_Stream::Result
}
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
- nIOCount-- ;
+ ACE_GUARD (MyMutex, locker, m_Mtx);
+ --nIOCount;
}
check_destroy () ;
}
@@ -376,9 +371,9 @@ public:
~Sender (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
int open (const ACE_TCHAR *host, u_short port);
void close ();
- //FUZZ: enable check_for_lack_ACE_OS
ACE_HANDLE handle (void) const;
void handle (ACE_HANDLE);
@@ -386,30 +381,30 @@ public:
protected:
// These methods are called by the freamwork
+/// This is called when asynchronous reads from the socket complete
virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result
&result);
-// This is called when asynchronous reads from the socket complete
+/// This is called when asynchronous writes from the socket complete
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result
&result);
-// This is called when asynchronous writes from the socket complete
private:
int initiate_read_stream (void);
int initiate_write_stream (void);
+/// Network I/O handle
ACE_SOCK_Stream stream_;
-// Network I/O handle
+/// ws (write stream): for writing to the socket
ACE_Asynch_Write_Stream ws_;
-// ws (write stream): for writing to the socket
+/// rs (read file): for reading from the socket
ACE_Asynch_Read_Stream rs_;
-// rs (read file): for reading from the socket
+/// Welcome message
ACE_Message_Block welcome_message_;
-// Welcome message
MyMutex m_Mtx ;
long nIOCount ;
@@ -490,8 +485,7 @@ int Sender::open (const ACE_TCHAR *host, u_short port)
int Sender::initiate_write_stream (void)
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
-
+ ACE_GUARD_RETURN (MyMutex, locker, m_Mtx, -1);
welcome_message_.rd_ptr( welcome_message_.base ());
welcome_message_.wr_ptr( welcome_message_.base ());
@@ -513,7 +507,7 @@ int Sender::initiate_write_stream (void)
int Sender::initiate_read_stream (void)
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
+ ACE_GUARD_RETURN (MyMutex, locker, m_Mtx, -1);
// Create a new <Message_Block>. Note that this message block will
// be used both to <read> data asynchronously from the socket and to
@@ -583,8 +577,8 @@ void Sender::handle_write_stream (const ACE_Asynch_Write_Stream::Result
}
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
- nIOCount-- ;
+ ACE_GUARD_RETURN (MyMutex, locker, m_Mtx);
+ --nIOCount;
}
}
@@ -633,8 +627,8 @@ Sender::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
}
{
- ACE_Guard<MyMutex> locker (m_Mtx) ;
- nIOCount-- ;
+ ACE_GUARD (MyMutex, locker, m_Mtx);
+ --nIOCount;
}
}
diff --git a/ACE/examples/Reactor/Proactor/test_proactor3.cpp b/ACE/examples/Reactor/Proactor/test_proactor3.cpp
index f17f0d2ed32..1d041e3ea6a 100644
--- a/ACE/examples/Reactor/Proactor/test_proactor3.cpp
+++ b/ACE/examples/Reactor/Proactor/test_proactor3.cpp
@@ -1,23 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_proactor3.cpp
-//
-// = DESCRIPTION
-// This program illustrates how the <ACE_Proactor> can be used to
-// implement an application that does various asynchronous
-// operations.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-// modified by Alexander Libman <alibman@baltimore.com>
-// from original test_proactor.cpp
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_proactor3.cpp
+ *
+ * $Id$
+ *
+ * This program illustrates how the <ACE_Proactor> can be used to
+ * implement an application that does various asynchronous
+ * operations.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> modified by Alexander Libman <alibman@baltimore.com> from original test_proactor.cpp
+ */
+//=============================================================================
+
#include "ace/Signal.h"
@@ -39,7 +35,7 @@
#include "ace/Task.h"
-ACE_RCSID(Proactor, test_proactor, "test_proactor.cpp,v 1.27 2000/03/07 17:15:56 schmidt Exp")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on Win32 platforms and on Unix platforms
@@ -88,10 +84,13 @@ static int threads = 1;
// Port that we're receiving connections on.
static u_short port = ACE_DEFAULT_SERVER_PORT;
+/**
+ * @class MyTask:
+ *
+ * @brief MyTask plays role for Proactor threads pool
+ */
class MyTask: public ACE_Task<ACE_MT_SYNCH>
{
- // = TITLE
- // MyTask plays role for Proactor threads pool
public:
MyTask (void) : threads_ (0), proactor_ (0) {}
@@ -111,7 +110,7 @@ private:
void
MyTask::create_proactor (void)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, mutex_);
if (threads_ == 0)
{
@@ -158,7 +157,7 @@ MyTask::create_proactor (void)
void
MyTask::delete_proactor (void)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, mutex_);
if (--threads_ == 0)
{
ACE_DEBUG ((LM_DEBUG, "(%t) Delete Proactor\n"));
@@ -193,23 +192,23 @@ public:
~Receiver (void);
//FUZZ: disable check_for_lack_ACE_OS
+ /// This is called after the new connection has been accepted.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual void open (ACE_HANDLE handle,
ACE_Message_Block &message_block);
- // This is called after the new connection has been accepted.
- //FUZZ: enable check_for_lack_ACE_OS
static long get_number_sessions (void) { return sessions_; }
protected:
// These methods are called by the framework
+ /// This is called when asynchronous <read> operation from the socket
+ /// complete.
virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
- // This is called when asynchronous <read> operation from the socket
- // complete.
+ /// This is called when an asynchronous <write> to the file
+ /// completes.
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This is called when an asynchronous <write> to the file
- // completes.
private:
int initiate_read_stream (void);
@@ -230,14 +229,14 @@ Receiver::Receiver (void)
: handle_ (ACE_INVALID_HANDLE),
io_count_ (0)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, mutex_);
sessions_++;
ACE_DEBUG ((LM_DEBUG, "Receiver Ctor sessions_=%d\n", sessions_));
}
Receiver::~Receiver (void)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, mutex_);
sessions_--;
ACE_OS::closesocket (this->handle_);
ACE_DEBUG ((LM_DEBUG, "~Receiver Dtor sessions_=%d\n", sessions_));
@@ -248,7 +247,7 @@ int
Receiver::check_destroy (void)
{
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, mutex_, -1);
if (io_count_ > 0)
return 1;
@@ -284,7 +283,7 @@ Receiver::open (ACE_HANDLE handle,
int
Receiver::initiate_read_stream (void)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, mutex_, -1);
ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
@@ -308,7 +307,7 @@ Receiver::initiate_read_stream (void)
int
Receiver::initiate_write_stream (ACE_Message_Block &mb, int nbytes)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, mutex_, -1);
if (nbytes <= 0)
{
mb.release ();
@@ -375,8 +374,8 @@ Receiver::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
}
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
- io_count_--;
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, mutex_);
+ --io_count_;
}
check_destroy ();
}
@@ -412,24 +411,27 @@ Receiver::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
}
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
- io_count_--;
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, mutex_);
+ --io_count_;
}
check_destroy ();
}
+/**
+ * @class Sender
+ *
+ * @brief Sends welcome messages receives them back.
+ */
class Sender : public ACE_Handler
{
- // = TITLE
- // Sends welcome messages receives them back.
public:
Sender (void);
~Sender (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
int open (const ACE_TCHAR *host, u_short port);
void close (void);
- //FUZZ: enable check_for_lack_ACE_OS
ACE_HANDLE handle (void) const;
virtual void handle (ACE_HANDLE);
@@ -437,28 +439,28 @@ public:
protected:
// These methods are called by the freamwork
+ /// This is called when asynchronous reads from the socket complete
virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
- // This is called when asynchronous reads from the socket complete
+ /// This is called when asynchronous writes from the socket complete
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This is called when asynchronous writes from the socket complete
private:
int initiate_read_stream (void);
int initiate_write_stream (void);
+ /// Network I/O handle
ACE_SOCK_Stream stream_;
- // Network I/O handle
+ /// ws (write stream): for writing to the socket
ACE_Asynch_Write_Stream ws_;
- // ws (write stream): for writing to the socket
+ /// rs (read file): for reading from the socket
ACE_Asynch_Read_Stream rs_;
- // rs (read file): for reading from the socket
+ /// Welcome message
ACE_Message_Block welcome_message_;
- // Welcome message
ACE_Recursive_Thread_Mutex mutex_;
long io_count_;
@@ -537,7 +539,7 @@ int Sender::open (const ACE_TCHAR *host, u_short port)
int
Sender::initiate_write_stream (void)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, mutex_, -1);
welcome_message_.rd_ptr(welcome_message_.base ());
welcome_message_.wr_ptr(welcome_message_.base ());
@@ -556,7 +558,7 @@ Sender::initiate_write_stream (void)
int
Sender::initiate_read_stream (void)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, mutex_, -1);
// Create a new <Message_Block>. Note that this message block will
// be used both to <read> data asynchronously from the socket and to
@@ -615,8 +617,8 @@ Sender::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
}
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
- io_count_--;
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, mutex_);
+ --io_count_;
}
}
@@ -659,8 +661,8 @@ Sender::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
}
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
- io_count_--;
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, mutex_);
+ --io_count_;
}
}
diff --git a/ACE/examples/Reactor/Proactor/test_timeout.cpp b/ACE/examples/Reactor/Proactor/test_timeout.cpp
index 258756ef772..9f37ee4670f 100644
--- a/ACE/examples/Reactor/Proactor/test_timeout.cpp
+++ b/ACE/examples/Reactor/Proactor/test_timeout.cpp
@@ -1,25 +1,22 @@
-// $Id: test_timeout.cpp
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_timeout.cpp
-//
-// = DESCRIPTION
-//
-// This example application shows how to write event loops that
-// handle events for some fixed amount of time. Note that any
-// thread in the Proactor thread pool can call back the handler. On
-// POSIX4 systems, this test works only with POSIX_SIG_Proactor,
-// which can work with multiple threads.
-//
-// = AUTHOR
-// Irfan Pyarali and Alexander Babu Arulanthu
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_timeout.cpp
+ *
+ * $Id: test_timeout.cpp
+ *
+ *
+ * This example application shows how to write event loops that
+ * handle events for some fixed amount of time. Note that any
+ * thread in the Proactor thread pool can call back the handler. On
+ * POSIX4 systems, this test works only with POSIX_SIG_Proactor,
+ * which can work with multiple threads.
+ *
+ *
+ * @author Irfan Pyarali and Alexander Babu Arulanthu
+ */
+//=============================================================================
+
#include "ace/Proactor.h"
#include "ace/Task.h"
@@ -28,16 +25,19 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_main.h"
-ACE_RCSID(Proactor, test_timeout, "$Id$")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on Win32 platforms and on Unix platforms supporting
// POSIX aio calls.
+/**
+ * @class Timeout_Handler
+ *
+ * @brief Generic timeout handler.
+ */
class Timeout_Handler : public ACE_Handler
{
- // = TITLE
- // Generic timeout handler.
public:
Timeout_Handler (void)
: start_time_ (ACE_OS::gettimeofday ())
@@ -58,11 +58,11 @@ public:
}
private:
+ /// Number of the timer event.
ACE_Atomic_Op <ACE_SYNCH_MUTEX, int> count_;
- // Number of the timer event.
+ /// Starting time of the test.
ACE_Time_Value start_time_;
- // Starting time of the test.
};
class Worker : public ACE_Task <ACE_NULL_SYNCH>
diff --git a/ACE/examples/Reactor/Proactor/test_timeout_st.cpp b/ACE/examples/Reactor/Proactor/test_timeout_st.cpp
index 045f3607375..aafabeb36f3 100644
--- a/ACE/examples/Reactor/Proactor/test_timeout_st.cpp
+++ b/ACE/examples/Reactor/Proactor/test_timeout_st.cpp
@@ -1,37 +1,37 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_timeout_st.cpp
-//
-// = DESCRIPTION
-//
-// This example application shows how to write event loops that
-// handle events for some fixed amount of time. This is the single
-// threaded version of the test_timeout.cpp application.
-//
-// = AUTHOR
-// Irfan Pyarali and Alexander Babu Arulanthu
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_timeout_st.cpp
+ *
+ * $Id$
+ *
+ *
+ * This example application shows how to write event loops that
+ * handle events for some fixed amount of time. This is the single
+ * threaded version of the test_timeout.cpp application.
+ *
+ *
+ * @author Irfan Pyarali and Alexander Babu Arulanthu
+ */
+//=============================================================================
+
#include "ace/Proactor.h"
#include "ace/OS_main.h"
-ACE_RCSID(Proactor, test_timeout, "$Id$")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on Win32 platforms and on Unix platforms supporting
// POSIX aio calls.
+/**
+ * @class Timeout_Handler
+ *
+ * @brief Generic timeout handler.
+ */
class Timeout_Handler : public ACE_Handler
{
- // = TITLE
- // Generic timeout handler.
public:
Timeout_Handler (void)
@@ -51,11 +51,11 @@ public:
}
private:
+ /// Sequence number for the timeouts.
int count_;
- // Sequence number for the timeouts.
+ /// Starting time of the test.
ACE_Time_Value start_time_;
- // Starting time of the test.
};
diff --git a/ACE/examples/Reactor/Proactor/test_udp_proactor.cpp b/ACE/examples/Reactor/Proactor/test_udp_proactor.cpp
index 1ff800afb04..d802ef412ce 100644
--- a/ACE/examples/Reactor/Proactor/test_udp_proactor.cpp
+++ b/ACE/examples/Reactor/Proactor/test_udp_proactor.cpp
@@ -1,23 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_udp_proactor.cpp
-//
-// = DESCRIPTION
-// This program illustrates how the <ACE_Proactor> can be used to
-// implement an application that does asynchronous operations using
-// datagrams.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu> and
-// Roger Tragin <r.tragin@computer.org>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_udp_proactor.cpp
+ *
+ * $Id$
+ *
+ * This program illustrates how the <ACE_Proactor> can be used to
+ * implement an application that does asynchronous operations using
+ * datagrams.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> and Roger Tragin <r.tragin@computer.org>
+ */
+//=============================================================================
+
#include "ace/OS_NS_string.h"
#include "ace/OS_main.h"
@@ -29,7 +25,7 @@
#include "ace/Get_Opt.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Proactor, test_udp_proactor, "test_proactor.cpp,v 1.29 2001/02/02 23:41:16 shuston Exp")
+
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on asynch I/O-capable platforms.
@@ -43,11 +39,14 @@ static u_short port = ACE_DEFAULT_SERVER_PORT;
// Keep track of when we're done.
static int done = 0;
+/**
+ * @class Receiver
+ *
+ * @brief This class will receive data from
+ * the network connection and dump it to a file.
+ */
class Receiver : public ACE_Service_Handler
{
- // = TITLE
- // This class will receive data from
- // the network connection and dump it to a file.
public:
// = Initialization and termination.
Receiver (void);
@@ -65,8 +64,8 @@ protected:
private:
ACE_SOCK_Dgram sock_dgram_;
+ /// rd (read dgram): for reading from a UDP socket.
ACE_Asynch_Read_Dgram rd_;
- // rd (read dgram): for reading from a UDP socket.
const char* completion_key_;
const char* act_;
};
@@ -216,32 +215,35 @@ Receiver::handle_read_dgram (const ACE_Asynch_Read_Dgram::Result &result)
done++;
}
+/**
+ * @class Sender
+ *
+ * @brief The class will be created by <main>.
+ */
class Sender : public ACE_Handler
{
- // = TITLE
- // The class will be created by <main>.
public:
Sender (void);
~Sender (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
int open (const ACE_TCHAR *host, u_short port);
- //FUZZ: enable check_for_lack_ACE_OS
protected:
// These methods are called by the freamwork
+ /// This is called when asynchronous writes from the dgram socket
+ /// complete
virtual void handle_write_dgram (const ACE_Asynch_Write_Dgram::Result &result);
- // This is called when asynchronous writes from the dgram socket
- // complete
private:
+ /// Network I/O handle
ACE_SOCK_Dgram sock_dgram_;
- // Network I/O handle
+ /// wd (write dgram): for writing to the socket
ACE_Asynch_Write_Dgram wd_;
- // wd (write dgram): for writing to the socket
const char* completion_key_;
const char* act_;
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..d2adf529654 100644
--- a/ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp
+++ b/ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp
@@ -32,31 +32,31 @@
ReadHandler::ReadHandler() : ACE_Event_Handler(), mStream(), mDataSize(0),
mData(0), mCallCounter(0), mInvocationCounter(0) {
- ACE_TRACE(ACE_TEXT("ReadHandler::ReadHandler()"));
+ ACE_TRACE("ReadHandler::ReadHandler()");
}
ReadHandler::~ReadHandler() {
- ACE_TRACE(ACE_TEXT("ReadHandler::~ReadHandler()"));
+ ACE_TRACE("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;
}
ACE_SOCK_Stream &ReadHandler::getStream(void) {
- ACE_TRACE(ACE_TEXT("ReadHandler::getStream(void)"));
+ ACE_TRACE("ReadHandler::getStream(void)");
return mStream;
}
ACE_HANDLE ReadHandler::get_handle(void) const {
- ACE_TRACE(ACE_TEXT("ReadHandler::get_handle(void)"));
+ ACE_TRACE("ReadHandler::get_handle(void)");
return mStream.get_handle();
}
int ReadHandler::handle_input(ACE_HANDLE) {
- ACE_TRACE(ACE_TEXT("ReadHandler::handle_input(ACE_HANDLE)"));
+ ACE_TRACE("ReadHandler::handle_input(ACE_HANDLE)");
INVOCATION_ENTER();
@@ -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..5c770f2f3bc 100644
--- a/ACE/examples/Reactor/TP_Reactor/client.cpp
+++ b/ACE/examples/Reactor/TP_Reactor/client.cpp
@@ -8,11 +8,11 @@
#include <ace/Auto_Ptr.h>
#include <ace/INET_Addr.h>
#include <ace/Log_Msg.h>
-#include <ace/OS.h>
#include <ace/SOCK_Acceptor.h>
#include <ace/SOCK_Connector.h>
#include <ace/SOCK_Stream.h>
#include <ace/streams.h>
+#include <ace/OS_NS_stdlib.h>
#include "common.h"
@@ -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..6302b6f457d 100644..100755
--- a/ACE/examples/Reactor/TP_Reactor/run_test.pl
+++ b/ACE/examples/Reactor/TP_Reactor/run_test.pl
@@ -5,8 +5,8 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# $Id$
# -*- perl -*-
-use lib '../../../bin';
-use PerlACE::Run_Test;
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
$status = 0;
diff --git a/ACE/examples/Reactor/TP_Reactor/server.cpp b/ACE/examples/Reactor/TP_Reactor/server.cpp
index 0c147818424..6335a53da77 100644
--- a/ACE/examples/Reactor/TP_Reactor/server.cpp
+++ b/ACE/examples/Reactor/TP_Reactor/server.cpp
@@ -7,7 +7,6 @@
#include <ace/Event_Handler.h>
#include <ace/Log_Msg.h>
-#include <ace/OS.h>
#include <ace/Reactor.h>
#include <ace/Signal.h>
#include <ace/streams.h>
@@ -45,7 +44,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/APC.cpp b/ACE/examples/Reactor/WFMO_Reactor/APC.cpp
index c9e36381fac..b45c4036267 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/APC.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/APC.cpp
@@ -1,23 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// APC.cpp
-//
-// = DESCRIPTION
-//
-// Tests the WFMO_Reactor's ability to handle regular APC
-// notifications.
-//
-// = AUTHOR
-//
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file APC.cpp
+ *
+ * $Id$
+ *
+ *
+ * Tests the WFMO_Reactor's ability to handle regular APC
+ * notifications.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -27,7 +23,7 @@
#include "ace/Auto_Event.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(WFMO_Reactor, APC, "$Id$")
+
class Event_Handler : public ACE_Event_Handler
{
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Abandoned.cpp b/ACE/examples/Reactor/WFMO_Reactor/Abandoned.cpp
index c860fc2810c..4edef8dfc78 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Abandoned.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Abandoned.cpp
@@ -1,22 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Abandoned.cpp
-//
-// = DESCRIPTION
-//
-// Tests the WFMO_Reactor's ability to handle abandoned mutexes.
-//
-// = AUTHOR
-//
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Abandoned.cpp
+ *
+ * $Id$
+ *
+ *
+ * Tests the WFMO_Reactor's ability to handle abandoned mutexes.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -27,7 +23,7 @@
#include "ace/Process_Mutex.h"
#include "ace/Auto_Event.h"
-ACE_RCSID(WFMO_Reactor, Abandoned, "$Id$")
+
class Event_Handler : public ACE_Event_Handler
{
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Console_Input.cpp b/ACE/examples/Reactor/WFMO_Reactor/Console_Input.cpp
index 4d9b3efc479..4d1c9d96c40 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Console_Input.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Console_Input.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Console_Input.cpp
-//
-// = DESCRIPTION
-//
-// This application tests the working of WFMO_Reactor when users
-// are interested in console input.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Console_Input.cpp
+ *
+ * $Id$
+ *
+ *
+ * This application tests the working of WFMO_Reactor when users
+ * are interested in console input.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/Reactor.h"
#include "ace/OS_NS_unistd.h"
@@ -24,7 +21,7 @@
#include "ace/OS_main.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(WFMO_Reactor, Console_Input, "$Id$")
+
class Event_Handler : public ACE_Event_Handler
{
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Directory_Changes.cpp b/ACE/examples/Reactor/WFMO_Reactor/Directory_Changes.cpp
index 6a52694492b..467029cabe7 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Directory_Changes.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Directory_Changes.cpp
@@ -1,22 +1,18 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Directory_Changes.cpp
-//
-// = DESCRIPTION
-//
-// This application tests the working of WFMO_Reactor when users
-// are interested in monitoring changes in the filesystem.
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Directory_Changes.cpp
+ *
+ * $Id$
+ *
+ *
+ * This application tests the working of WFMO_Reactor when users
+ * are interested in monitoring changes in the filesystem.
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -27,7 +23,7 @@
#include "ace/OS_NS_fcntl.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(WFMO_Reactor, Directory_Changes, "$Id$")
+
static int stop_test = 0;
static const ACE_TCHAR *directory = ACE_TEXT (".");
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Exceptions.cpp b/ACE/examples/Reactor/WFMO_Reactor/Exceptions.cpp
index 5bbf0b4e4f3..b52807a931d 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Exceptions.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Exceptions.cpp
@@ -1,27 +1,23 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Exceptions.cpp
-//
-// = DESCRIPTION
-//
-// This test application tests the state of WFMO_Reactor when
-// exceptions occurs when executing user callbacks.
-//
-// The thread count in WFMO_Reactor is used to ensure that state of
-// WFMO_Reactor is not fouled up when exceptions occur in user code.
-// This example also shows how to write event loops that survive
-// user exceptions
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Exceptions.cpp
+ *
+ * $Id$
+ *
+ *
+ * This test application tests the state of WFMO_Reactor when
+ * exceptions occurs when executing user callbacks.
+ *
+ * The thread count in WFMO_Reactor is used to ensure that state of
+ * WFMO_Reactor is not fouled up when exceptions occur in user code.
+ * This example also shows how to write event loops that survive
+ * user exceptions
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -29,7 +25,7 @@
#include "ace/WFMO_Reactor.h"
-ACE_RCSID(WFMO_Reactor, Exceptions, "$Id$")
+
class Event_Handler : public ACE_Event_Handler
{
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Handle_Close.cpp b/ACE/examples/Reactor/WFMO_Reactor/Handle_Close.cpp
index c90e1f5bcb8..2d0fd1077fb 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Handle_Close.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Handle_Close.cpp
@@ -1,24 +1,20 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Handle_Close.cpp
-//
-// = DESCRIPTION
-//
-// This application tests whether handle_close gets called and if
-// the correct masks are passed along. The handler should get
-// handle_close called for all three masks (READ, WRITE, and
-// EXCEPT).
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Handle_Close.cpp
+ *
+ * $Id$
+ *
+ *
+ * This application tests whether handle_close gets called and if
+ * the correct masks are passed along. The handler should get
+ * handle_close called for all three masks (READ, WRITE, and
+ * EXCEPT).
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/Get_Opt.h"
#include "ace/Reactor.h"
@@ -28,7 +24,7 @@
#include "ace/Pipe.h"
#include "ace/OS_main.h"
-ACE_RCSID(WFMO_Reactor, Handle_Close, "$Id: ")
+
// Use the WFMO_Reactor
static int opt_wfmo_reactor = 0;
@@ -47,7 +43,7 @@ static int cancel_reads = 0;
void
write_to_pipe (ACE_Pipe &pipe)
{
- char *data = "hello";
+ const char *data = "hello";
size_t len = ACE_OS::strlen (data);
ssize_t result = ACE::send (pipe.write_handle (),
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Multithreading.cpp b/ACE/examples/Reactor/WFMO_Reactor/Multithreading.cpp
index 911c3ee9c2e..0212776b0ff 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Multithreading.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Multithreading.cpp
@@ -1,26 +1,22 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Multithreading.cpp
-//
-// = DESCRIPTION
-//
-// This application tests multiple threads simultaneously calling
-// Reactor::handle_events(). It also shows how different threads
-// can update the state of Reactor by registering and removing
-// Event_Handlers.
-//
-// Note that this test will only work with WFMO_Reactor
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Multithreading.cpp
+ *
+ * $Id$
+ *
+ *
+ * This application tests multiple threads simultaneously calling
+ * Reactor::handle_events(). It also shows how different threads
+ * can update the state of Reactor by registering and removing
+ * Event_Handlers.
+ *
+ * Note that this test will only work with WFMO_Reactor
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -32,7 +28,7 @@
#include "ace/Get_Opt.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(WFMO_Reactor, Multithreading, "$Id$")
+
static int concurrent_threads = 1;
static int number_of_handles = static_cast<int> (ACE_Reactor::instance ()->size ());
@@ -88,31 +84,31 @@ parse_args (int argc, ACE_TCHAR **argv)
class Task_Handler : public ACE_Task<ACE_NULL_SYNCH>
{
public:
+ /// Constructor.
Task_Handler (size_t number_of_handles,
size_t concurrent_threads);
- // Constructor.
+ /// Destructor.
~Task_Handler (void);
- // Destructor.
+ /// Called when object is removed from the ACE_Reactor
virtual int handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask close_mask);
- // Called when object is removed from the ACE_Reactor
+ /// Handle events being signaled by the main thread.
int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
- // Handle events being signaled by the main thread.
+ /// Called when timer expires.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg = 0);
- // Called when timer expires.
+ /// Task event loop.
int svc (void);
- // Task event loop.
//FUZZ: disable check_for_lack_ACE_OS
+ /// Signal an event.
+ ///FUZZ: enable check_for_lack_ACE_OS
int signal (size_t index);
- // Signal an event.
- //FUZZ: enable check_for_lack_ACE_OS
private:
ACE_Auto_Event *events_;
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Network_Events.cpp b/ACE/examples/Reactor/WFMO_Reactor/Network_Events.cpp
index 9935679a60f..db7e279178d 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Network_Events.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Network_Events.cpp
@@ -1,35 +1,31 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Network_Events.cpp
-//
-// = DESCRIPTION
-//
-// This application tests Reactor to make sure that it responds
-// correctly to different kinds of network events.
-//
-// The test starts off by creating a Network_Listener, that listens
-// for connections at ACE_DEFAULT_SERVER_PORT. When a client
-// connects, a Network_Handler is created. Network_Handler reads
-// messages off the socket and prints them out. This is done until
-// the remote side shuts down. Multiple clients can connect at the
-// same time.
-//
-// Events tested in this example includes ACCEPT, READ, and CLOSE masks.
-//
-// To run this example, start an instance of this example and
-// connect to it using telnet (to port
-// ACE_DEFAULT_SERVER_PORT(20002)).
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Network_Events.cpp
+ *
+ * $Id$
+ *
+ *
+ * This application tests Reactor to make sure that it responds
+ * correctly to different kinds of network events.
+ *
+ * The test starts off by creating a Network_Listener, that listens
+ * for connections at ACE_DEFAULT_SERVER_PORT. When a client
+ * connects, a Network_Handler is created. Network_Handler reads
+ * messages off the socket and prints them out. This is done until
+ * the remote side shuts down. Multiple clients can connect at the
+ * same time.
+ *
+ * Events tested in this example includes ACCEPT, READ, and CLOSE masks.
+ *
+ * To run this example, start an instance of this example and
+ * connect to it using telnet (to port
+ * ACE_DEFAULT_SERVER_PORT(20002)).
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/Reactor.h"
#include "ace/WFMO_Reactor.h"
@@ -38,13 +34,13 @@
#include "ace/SOCK_Acceptor.h"
#include "ace/OS_main.h"
-ACE_RCSID(WFMO_Reactor, Network_Events, "$Id$")
+
class Network_Handler : public ACE_Event_Handler
{
public:
+ /// Default constructor
Network_Handler (ACE_SOCK_Stream &s);
- // Default constructor
virtual int handle_input (ACE_HANDLE handle);
virtual int handle_close (ACE_HANDLE handle,
@@ -119,10 +115,10 @@ Network_Handler::handle_close (ACE_HANDLE handle,
class Network_Listener : public ACE_Event_Handler
{
public:
+ /// Default constructor
+ /// Default constructor
Network_Listener (void);
- // Default constructor
~Network_Listener (void);
- // Default constructor
virtual int handle_input (ACE_HANDLE handle);
virtual int handle_close (ACE_HANDLE handle,
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp b/ACE/examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp
index 48c25cb03b9..828620d89f8 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp
@@ -1,35 +1,32 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Prerun_State_Changes.cpp
-//
-// = DESCRIPTION
-//
-// Tests the Reactor's ability to handle state changes before
-// getting a chance to run.
-//
-// = AUTHOR
-//
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Prerun_State_Changes.cpp
+ *
+ * $Id$
+ *
+ *
+ * Tests the Reactor's ability to handle state changes before
+ * getting a chance to run.
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/Reactor.h"
#include "ace/OS_main.h"
#include "ace/OS_NS_sys_socket.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(WFMO_Reactor, Prerun_State_Changes, "$Id$")
+
+/**
+ * @class Event_Handler
+ *
+ * @brief Generic Event Handler.
+ */
class Event_Handler : public ACE_Event_Handler
-// = TITLE
-// Generic Event Handler.
-//
{
public:
virtual int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask mask)
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Registration.cpp b/ACE/examples/Reactor/WFMO_Reactor/Registration.cpp
index 5d9bcc2b27b..6bdcb740d1f 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Registration.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Registration.cpp
@@ -1,37 +1,33 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Registration.cpp
-//
-// = DESCRIPTION
-//
-// This test application tests a wide range of registration,
-// suspension, resumption, and removal of events from Reactor.
-//
-// The application initially registers two events with Reactor. A
-// auxiliary thread is created to do the signaling on the
-// events. When the first event is signaled, the event is suspended
-// from Reactor. The event is then signaled again, but is "lost"
-// since the handler has been suspended. When the second event is
-// signal, the first event is resumed and the second is
-// suspended. When the first event is signaled again, both events
-// are removed from Reactor.
-//
-// This test shows off the following features of Reactor:
-// - Registration
-// - Suspension
-// - Resumption
-// - Removal (while active and while suspended)
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Registration.cpp
+ *
+ * $Id$
+ *
+ *
+ * This test application tests a wide range of registration,
+ * suspension, resumption, and removal of events from Reactor.
+ *
+ * The application initially registers two events with Reactor. A
+ * auxiliary thread is created to do the signaling on the
+ * events. When the first event is signaled, the event is suspended
+ * from Reactor. The event is then signaled again, but is "lost"
+ * since the handler has been suspended. When the second event is
+ * signal, the first event is resumed and the second is
+ * suspended. When the first event is signaled again, both events
+ * are removed from Reactor.
+ *
+ * This test shows off the following features of Reactor:
+ * - Registration
+ * - Suspension
+ * - Resumption
+ * - Removal (while active and while suspended)
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -42,7 +38,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(WFMO_Reactor, Registration, "$Id$")
+
// Globals for this test
int stop_test = 0;
@@ -52,8 +48,8 @@ ACE_Reactor reactor;
class Simple_Handler : public ACE_Event_Handler
{
public:
+ /// Default constructor
Simple_Handler (void);
- // Default constructor
virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
virtual int handle_close (ACE_HANDLE handle,
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Registry_Changes.cpp b/ACE/examples/Reactor/WFMO_Reactor/Registry_Changes.cpp
index a215c45acfb..ad762a46a3e 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Registry_Changes.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Registry_Changes.cpp
@@ -1,22 +1,18 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Registry_Changes.cpp
-//
-// = DESCRIPTION
-//
-// This application tests the working of Reactor when users are
-// interested in monitoring changes in the registry.
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Registry_Changes.cpp
+ *
+ * $Id$
+ *
+ *
+ * This application tests the working of Reactor when users are
+ * interested in monitoring changes in the registry.
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -27,7 +23,7 @@
#include "ace/Auto_Event.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(WFMO_Reactor, Registry_Changes, "$Id$")
+
static int stop_test = 0;
static HKEY context_to_monitor = HKEY_CURRENT_USER;
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Removals.cpp b/ACE/examples/Reactor/WFMO_Reactor/Removals.cpp
index 238115e05eb..59b857f3615 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Removals.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Removals.cpp
@@ -1,24 +1,19 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Removals.cpp
-//
-// = DESCRIPTION
-//
-// Tests the Reactor's ability to handle simultaneous events. If
-// you pass anything on the command-line, then each handler
-// requests to be removed from the Reactor after each event.
-//
-// = AUTHOR
-// Tim Harrison
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Removals.cpp
+ *
+ * $Id$
+ *
+ *
+ * Tests the Reactor's ability to handle simultaneous events. If
+ * you pass anything on the command-line, then each handler
+ * requests to be removed from the Reactor after each event.
+ *
+ *
+ * @author Tim Harrison Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -28,16 +23,17 @@
#include "ace/Service_Config.h"
#include "ace/Event.h"
-ACE_RCSID(WFMO_Reactor, Removals, "$Id$")
+
+/**
+ * @class Event_Handler
+ *
+ * @brief Generic Event Handler.
+ *
+ * Creates event. Registers with Reactor. Signals event. If
+ * created with -close_down- it returns -1 from handle signal.
+ */
class Event_Handler : public ACE_Event_Handler
-// = TITLE
-// Generic Event Handler.
-//
-// = DESCRIPTION
-//
-// Creates event. Registers with Reactor. Signals event. If
-// created with -close_down- it returns -1 from handle signal.
{
public:
Event_Handler (int event_number,
@@ -72,14 +68,14 @@ public:
}
private:
+ /// Our event number.
int event_number_;
- // Our event number.
+ /// Shall we close down or not.
int close_down_;
- // Shall we close down or not.
+ /// Signaled to shut down the handler.
ACE_Event event_;
- // Signaled to shut down the handler.
};
int
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp b/ACE/examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp
index a2a781a0c55..25dd7187dd8 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp
@@ -1,22 +1,18 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Suspended_Removals.cpp
-//
-// = DESCRIPTION
-//
-// Tests the Reactor's ability to handle removal of suspended
-// handles.
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Suspended_Removals.cpp
+ *
+ * $Id$
+ *
+ *
+ * Tests the Reactor's ability to handle removal of suspended
+ * handles.
+ *
+ *
+ * @author Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -25,7 +21,7 @@
#include "ace/Reactor.h"
#include "ace/WFMO_Reactor.h"
-ACE_RCSID(WFMO_Reactor, Suspended_Removals, "$Id$")
+
class Event_Handler : public ACE_Event_Handler
{
@@ -48,6 +44,11 @@ public:
size_t handles_to_be_resumed,
size_t handles_to_be_deleted)
{
+ ACE_UNUSED_ARG (wfmo_reactor); // for release builds where ACE_ASSERT is noop
+ ACE_UNUSED_ARG (handles_to_be_added);
+ ACE_UNUSED_ARG (handles_to_be_suspended);
+ ACE_UNUSED_ARG (handles_to_be_resumed);
+ ACE_UNUSED_ARG (handles_to_be_deleted);
ACE_ASSERT (wfmo_reactor.handler_rep_.handles_to_be_added_ == handles_to_be_added);
ACE_ASSERT (wfmo_reactor.handler_rep_.handles_to_be_suspended_ == handles_to_be_suspended);
ACE_ASSERT (wfmo_reactor.handler_rep_.handles_to_be_resumed_ == handles_to_be_resumed);
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Talker.cpp b/ACE/examples/Reactor/WFMO_Reactor/Talker.cpp
index 12bf5e32eaa..09d863b7fc8 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Talker.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Talker.cpp
@@ -1,136 +1,132 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Talker.cpp
-//
-// = DESCRIPTION
-//
-// This test application tests a wide range of events that can be
-// demultiplexed using various ACE utilities. Events used include
-// ^C events, reading from STDIN, vanilla Win32 events, thread
-// exits, Reactor notifications, proactive reads, and proactive
-// writes.
-//
-// The proactive I/O events are demultiplexed by the ACE_Proactor.
-// The thread exits, notications, and vanilla Win32 events are
-// demultiplexed by the ACE_Reactor. To enable a single thread
-// to run all these events, the Proactor is integrated with the
-// Reactor.
-//
-// The test application prototypes a simple talk program. Two
-// instances of the application connect. Input from either console
-// is displayed on the others console also. Because of the evils
-// of Win32 STDIN, a separate thread is used to read from STDIN.
-// To test the Proactor and Reactor, I/O between the remote
-// processes is performed proactively and interactions between the
-// STDIN thread and the main thread are performed reactively.
-//
-// The following description of the test application is in two
-// parts. The participants section explains the main components
-// involved in the application. The collaboration section
-// describes how the partipants interact in response to the
-// multiple event types which occur.
-//
-// The Reactor test application has the following participants:
-//
-// . Reactor -- The Reactor demultiplexes Win32 "waitable"
-// events using WaitForMultipleObjects.
-//
-// . Proactor -- The proactor initiates and demultiplexes
-// overlapped I/O operations. The Proactor registers with the
-// Reactor so that a single-thread can demultiplex all
-// application events.
-//
-// . STDIN_Handler -- STDIN_Handler is an Active Object which reads
-// from STDIN and forwards the input to the Peer_Handler. This
-// runs in a separate thread to make the test more interesting.
-// However, STDIN is "waitable", so in general it can be waited on
-// by the ACE Reactor, thanks MicroSlush!
-//
-// . Peer_Handler -- The Peer_Handler connects to another instance
-// of test_reactor. It Proactively reads and writes data to the
-// peer. When the STDIN_Handler gives it messages, it fowards them
-// to the remote peer. When it receives messages from the remote
-// peer, it prints the output to the console.
-//
-// The collaborations of the participants are as follows:
-//
-// . Initialization
-//
-// Peer_Handler -- connects to the remote peer. It then begins
-// proactively reading from the remote connection. Note that it
-// will be notified by the Proactor when a read completes. It
-// also registers a notification strategy with message queue so
-// that it is notified when the STDIN_Handler posts a message
-// onto the queue.
-//
-// STDIN_Handler -- STDIN_Handler registers a signal handler for
-// SIGINT. This just captures the exception so that the kernel
-// doesn't kill our process; We want to exit gracefully. It also
-// creates an Exit_Hook object which registers the
-// STDIN_Handler's thread handle with the Reactor. The
-// Exit_Hook will get called back when the STDIN_Handler thread
-// exits. After registering these, it blocks reading from STDIN.
-//
-// Proactor -- is registered with the Reactor.
-//
-// The main thread of control waits in the Reactor.
-//
-// . STDIN events -- When the STDIN_Handler thread reads from
-// STDIN, it puts the message on Peer_Handler's message queue. It
-// then returns to reading from STDIN.
-//
-// . Message enqueue -- The Reactor thread wakes up and calls
-// Peer_Handler::handle_output. The Peer_Handler then tries to
-// dequeue a message from its message queue. If it can, the
-// message is Proactively sent to the remote peer. Note that the
-// Peer_Handler will be notified with this operation is complete.
-// The Peer_Handler then falls back into the Reactor event loop.
-//
-// . Send complete event -- When a proactive send is complete, the
-// Proactor is notified by the Reactor. The Proactor, in turn,
-// notifies the Peer_Handler. The Peer_Handler then checks for
-// more messages from the message queue. If there are any, it
-// tries to send them. If there are not, it returns to the
-// Reactor event loop.
-//
-// . Read complete event -- When a proactive read is complete (the
-// Peer_Handler initiated a proactive read when it connected to the
-// remote peer), the Proactor is notified by the Reactor. The
-// Proactor, in turn notifies the Peer_Handler. If the read was
-// successful the Peer_Handler just displays the received msg to
-// the console and reinvokes a proactive read from the network
-// connection. If the read failed (i.e. the remote peer exited),
-// the Peer_Handler sets a flag to end the event loop and returns.
-// This will cause the application to exit.
-//
-// . ^C events -- When the user types ^C at the console, the
-// STDIN_Handler's signal handler will be called. It does nothing,
-// but as a result of the signal, the STDIN_Handler thread will
-// exit.
-//
-// . STDIN_Handler thread exits -- The Exit_Hook will get called
-// back from the Reactor. Exit_Hook::handle_signal sets a flag
-// to end the event loop and returns. This will cause the
-// application to exit.
-//
-//
-// To run example, start an instance of the test with an optional
-// local port argument (as the acceptor). Start the other instance
-// with -h <hostname> and -p <server port>. Type in either the
-// client or server windows and your message should show up in the
-// other window. Control C to exit.
-//
-// = AUTHOR
-// Tim Harrison
-// Irfan Pyarali
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Talker.cpp
+ *
+ * $Id$
+ *
+ *
+ * This test application tests a wide range of events that can be
+ * demultiplexed using various ACE utilities. Events used include
+ * ^C events, reading from STDIN, vanilla Win32 events, thread
+ * exits, Reactor notifications, proactive reads, and proactive
+ * writes.
+ *
+ * The proactive I/O events are demultiplexed by the ACE_Proactor.
+ * The thread exits, notications, and vanilla Win32 events are
+ * demultiplexed by the ACE_Reactor. To enable a single thread
+ * to run all these events, the Proactor is integrated with the
+ * Reactor.
+ *
+ * The test application prototypes a simple talk program. Two
+ * instances of the application connect. Input from either console
+ * is displayed on the others console also. Because of the evils
+ * of Win32 STDIN, a separate thread is used to read from STDIN.
+ * To test the Proactor and Reactor, I/O between the remote
+ * processes is performed proactively and interactions between the
+ * STDIN thread and the main thread are performed reactively.
+ *
+ * The following description of the test application is in two
+ * parts. The participants section explains the main components
+ * involved in the application. The collaboration section
+ * describes how the partipants interact in response to the
+ * multiple event types which occur.
+ *
+ * The Reactor test application has the following participants:
+ *
+ * . Reactor -- The Reactor demultiplexes Win32 "waitable"
+ * events using WaitForMultipleObjects.
+ *
+ * . Proactor -- The proactor initiates and demultiplexes
+ * overlapped I/O operations. The Proactor registers with the
+ * Reactor so that a single-thread can demultiplex all
+ * application events.
+ *
+ * . STDIN_Handler -- STDIN_Handler is an Active Object which reads
+ * from STDIN and forwards the input to the Peer_Handler. This
+ * runs in a separate thread to make the test more interesting.
+ * However, STDIN is "waitable", so in general it can be waited on
+ * by the ACE Reactor, thanks MicroSlush!
+ *
+ * . Peer_Handler -- The Peer_Handler connects to another instance
+ * of test_reactor. It Proactively reads and writes data to the
+ * peer. When the STDIN_Handler gives it messages, it fowards them
+ * to the remote peer. When it receives messages from the remote
+ * peer, it prints the output to the console.
+ *
+ * The collaborations of the participants are as follows:
+ *
+ * . Initialization
+ *
+ * Peer_Handler -- connects to the remote peer. It then begins
+ * proactively reading from the remote connection. Note that it
+ * will be notified by the Proactor when a read completes. It
+ * also registers a notification strategy with message queue so
+ * that it is notified when the STDIN_Handler posts a message
+ * onto the queue.
+ *
+ * STDIN_Handler -- STDIN_Handler registers a signal handler for
+ * SIGINT. This just captures the exception so that the kernel
+ * doesn't kill our process; We want to exit gracefully. It also
+ * creates an Exit_Hook object which registers the
+ * STDIN_Handler's thread handle with the Reactor. The
+ * Exit_Hook will get called back when the STDIN_Handler thread
+ * exits. After registering these, it blocks reading from STDIN.
+ *
+ * Proactor -- is registered with the Reactor.
+ *
+ * The main thread of control waits in the Reactor.
+ *
+ * . STDIN events -- When the STDIN_Handler thread reads from
+ * STDIN, it puts the message on Peer_Handler's message queue. It
+ * then returns to reading from STDIN.
+ *
+ * . Message enqueue -- The Reactor thread wakes up and calls
+ * Peer_Handler::handle_output. The Peer_Handler then tries to
+ * dequeue a message from its message queue. If it can, the
+ * message is Proactively sent to the remote peer. Note that the
+ * Peer_Handler will be notified with this operation is complete.
+ * The Peer_Handler then falls back into the Reactor event loop.
+ *
+ * . Send complete event -- When a proactive send is complete, the
+ * Proactor is notified by the Reactor. The Proactor, in turn,
+ * notifies the Peer_Handler. The Peer_Handler then checks for
+ * more messages from the message queue. If there are any, it
+ * tries to send them. If there are not, it returns to the
+ * Reactor event loop.
+ *
+ * . Read complete event -- When a proactive read is complete (the
+ * Peer_Handler initiated a proactive read when it connected to the
+ * remote peer), the Proactor is notified by the Reactor. The
+ * Proactor, in turn notifies the Peer_Handler. If the read was
+ * successful the Peer_Handler just displays the received msg to
+ * the console and reinvokes a proactive read from the network
+ * connection. If the read failed (i.e. the remote peer exited),
+ * the Peer_Handler sets a flag to end the event loop and returns.
+ * This will cause the application to exit.
+ *
+ * . ^C events -- When the user types ^C at the console, the
+ * STDIN_Handler's signal handler will be called. It does nothing,
+ * but as a result of the signal, the STDIN_Handler thread will
+ * exit.
+ *
+ * . STDIN_Handler thread exits -- The Exit_Hook will get called
+ * back from the Reactor. Exit_Hook::handle_signal sets a flag
+ * to end the event loop and returns. This will cause the
+ * application to exit.
+ *
+ *
+ * To run example, start an instance of the test with an optional
+ * local port argument (as the acceptor). Start the other instance
+ * with -h <hostname> and -p <server port>. Type in either the
+ * client or server windows and your message should show up in the
+ * other window. Control C to exit.
+ *
+ *
+ * @author Tim Harrison Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -147,14 +143,17 @@
#include "ace/Task.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(WFMO_Reactor, Talker, "$Id$")
+
typedef ACE_Task<ACE_MT_SYNCH> MT_TASK;
+/**
+ * @class Peer_Handler
+ *
+ * @brief Connect to a server. Receive messages from STDIN_Handler
+ * and forward them to the server using proactive I/O.
+ */
class Peer_Handler : public MT_TASK, public ACE_Handler
-// = TITLE
-// Connect to a server. Receive messages from STDIN_Handler
-// and forward them to the server using proactive I/O.
{
public:
// = Initialization methods.
@@ -162,104 +161,117 @@ public:
~Peer_Handler (void);
//FUZZ: disable check_for_lack_ACE_OS
+ /**
+ * This method creates the network connection to the remote peer.
+ * It does blocking connects and accepts depending on whether a
+ * hostname was specified from the command line.
+ *FUZZ: enable check_for_lack_ACE_OS
+ */
int open (void * =0);
- // This method creates the network connection to the remote peer.
- // It does blocking connects and accepts depending on whether a
- // hostname was specified from the command line.
- //FUZZ: enable check_for_lack_ACE_OS
+ /**
+ * This method will be called when an asynchronous read completes on a stream.
+ * The remote peer has sent us something. If it succeeded, print
+ * out the message and reinitiate a read. Otherwise, fail. In both
+ * cases, delete the message sent.
+ */
virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
- // This method will be called when an asynchronous read completes on a stream.
- // The remote peer has sent us something. If it succeeded, print
- // out the message and reinitiate a read. Otherwise, fail. In both
- // cases, delete the message sent.
+ /**
+ * This method will be called when an asynchronous write completes on a strea_m.
+ * One of our asynchronous writes to the remote peer has completed.
+ * Make sure it succeeded and then delete the message.
+ */
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This method will be called when an asynchronous write completes on a strea_m.
- // One of our asynchronous writes to the remote peer has completed.
- // Make sure it succeeded and then delete the message.
+ /**
+ * Get the I/O handle used by this <handler>. This method will be
+ * called by the ACE_Asynch_* classes when an ACE_INVALID_HANDLE is
+ * passed to <open>.
+ */
virtual ACE_HANDLE handle (void) const;
- // Get the I/O handle used by this <handler>. This method will be
- // called by the ACE_Asynch_* classes when an ACE_INVALID_HANDLE is
- // passed to <open>.
+ /// Set the ACE_HANDLE value for this Handler.
void handle (ACE_HANDLE);
- // Set the ACE_HANDLE value for this Handler.
+ /// We've been removed from the Reactor.
virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
- // We've been removed from the Reactor.
+ /**
+ * Called when output events should start. Note that this is
+ * automatically invoked by the
+ * <ACE_Reactor_Notificiation_Strategy>.
+ */
virtual int handle_output (ACE_HANDLE fd);
- // Called when output events should start. Note that this is
- // automatically invoked by the
- // <ACE_Reactor_Notificiation_Strategy>.
private:
+ /// Socket that we have connected to the server.
ACE_SOCK_Stream stream_;
- // Socket that we have connected to the server.
+ /// The strategy object that the reactor uses to notify us when
+ /// something is added to the queue.
ACE_Reactor_Notification_Strategy strategy_;
- // The strategy object that the reactor uses to notify us when
- // something is added to the queue.
// = Remote peer info.
+ /// Name of remote host.
ACE_TCHAR *host_;
- // Name of remote host.
+ /// Port number for remote host.
u_short port_;
- // Port number for remote host.
+ /// Read stream
ACE_Asynch_Read_Stream rd_stream_;
- // Read stream
+ /// Write stream
ACE_Asynch_Write_Stream wr_stream_;
- // Write stream
+ /// Message Block for reading from the network
ACE_Message_Block mb_;
- // Message Block for reading from the network
};
+/**
+ * @class STDIN_Handler
+ *
+ * @brief Active Object. Reads from STDIN and passes message blocks to
+ * the peer handler.
+ */
class STDIN_Handler : public ACE_Task<ACE_NULL_SYNCH>
-// = TITLE
-// Active Object. Reads from STDIN and passes message blocks to
-// the peer handler.
{
public:
+ /// Initialization.
STDIN_Handler (MT_TASK &ph);
- // Initialization.
//FUZZ: disable check_for_lack_ACE_OS
+ /// Activate object.
virtual int open (void * = 0);
- // Activate object.
+ /// Shut down.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int close (u_long = 0);
- // Shut down.
- //FUZZ: enable check_for_lack_ACE_OS
+ /// Thread runs here as an active object.
int svc (void);
- // Thread runs here as an active object.
int handle_close (ACE_HANDLE,
ACE_Reactor_Mask);
private:
+ /// Handle a ^C. (Do nothing, this just illustrates how we can catch
+ /// signals along with the other things).
static void handler (int signum);
- // Handle a ^C. (Do nothing, this just illustrates how we can catch
- // signals along with the other things).
+ /// Helper function to register with the Reactor for thread exit.
void register_thread_exit_hook (void);
- // Helper function to register with the Reactor for thread exit.
+ /// The STDIN thread has exited. This means the user hit ^C. We can
+ /// end the event loop.
virtual int handle_signal (int index, siginfo_t *, ucontext_t *);
- // The STDIN thread has exited. This means the user hit ^C. We can
- // end the event loop.
+ /// Send all input to ph_.
MT_TASK &ph_;
- // Send all input to ph_.
+ /// Handle of our thread.
ACE_HANDLE thr_handle_;
- // Handle of our thread.
};
Peer_Handler::Peer_Handler (int argc, ACE_TCHAR *argv[])
@@ -412,7 +424,7 @@ Peer_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
int
Peer_Handler::handle_output (ACE_HANDLE)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_Time_Value tv (ACE_Time_Value::zero);
diff --git a/ACE/examples/Reactor/WFMO_Reactor/Timeouts.cpp b/ACE/examples/Reactor/WFMO_Reactor/Timeouts.cpp
index 8cc37a940bc..7855e43b692 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Timeouts.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Timeouts.cpp
@@ -1,46 +1,44 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Timeouts.cpp
-//
-// = DESCRIPTION
-//
-// This example application shows how to write Reactor event
-// loops that handle events for some fixed amount of time.
-//
-// Run this example (without arguments) to see the timers
-// expire. The order should be:
-//
-// foo, bar, foo, bar, foo, foo, bar, foo, bar, foo
-//
-// = AUTHOR
-// Tim Harrison
-// Irfan Pyarali
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Timeouts.cpp
+ *
+ * $Id$
+ *
+ *
+ * This example application shows how to write Reactor event
+ * loops that handle events for some fixed amount of time.
+ *
+ * Run this example (without arguments) to see the timers
+ * expire. The order should be:
+ *
+ * foo, bar, foo, bar, foo, foo, bar, foo, bar, foo
+ *
+ *
+ * @author Tim Harrison Irfan Pyarali
+ */
+//=============================================================================
+
#include "ace/Reactor.h"
#include "ace/Service_Config.h"
#include "ace/OS_main.h"
-ACE_RCSID(WFMO_Reactor, Timeouts, "$Id$")
+
+/**
+ * @class Timeout_Handler
+ *
+ * @brief Generic timeout handler.
+ */
class Timeout_Handler : public ACE_Event_Handler
-// = TITLE
-// Generic timeout handler.
{
public:
Timeout_Handler (void)
: count_ (0) {}
+ /// Print out when timeouts occur.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg)
- // Print out when timeouts occur.
{
ACE_UNUSED_ARG(tv);
ACE_DEBUG ((LM_DEBUG,
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/Reactor/WFMO_Reactor/Window_Messages.cpp b/ACE/examples/Reactor/WFMO_Reactor/Window_Messages.cpp
index f455e3ad7b3..d1e46c04307 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/Window_Messages.cpp
+++ b/ACE/examples/Reactor/WFMO_Reactor/Window_Messages.cpp
@@ -1,23 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Window_Messages.cpp
-//
-// = DESCRIPTION
-//
-// Tests the Msg_WFMO_Reactor's ability to handle regular events
-// and window messages.
-//
-// = AUTHOR
-//
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Window_Messages.cpp
+ *
+ * $Id$
+ *
+ *
+ * Tests the Msg_WFMO_Reactor's ability to handle regular events
+ * and window messages.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -28,7 +24,7 @@
#include "ace/Auto_Ptr.h"
#include "ace/Auto_Event.h"
-ACE_RCSID(WFMO_Reactor, Window_Messages, "$Id$")
+
class Event_Handler : public ACE_Event_Handler
{
@@ -81,13 +77,13 @@ ACE_TMAIN (int, ACE_TCHAR*[])
ACE_ASSERT (result == 0);
ACE_Time_Value timeout (1);
- result =
+ result =
ACE_Utils::truncate_cast<int> (
::SetTimer (0, // handle of window for timer messages
0, // timer identifier
timeout.msec (), // time-out value
(TIMERPROC) &timer_callback)); // address of timer procedure
-
+
ACE_ASSERT (result != 0);
ACE_Reactor::run_event_loop ();
diff --git a/ACE/examples/Reactor/WFMO_Reactor/run_test.pl b/ACE/examples/Reactor/WFMO_Reactor/run_test.pl
index e47d878f7c4..3ecbebd4f89 100755
--- a/ACE/examples/Reactor/WFMO_Reactor/run_test.pl
+++ b/ACE/examples/Reactor/WFMO_Reactor/run_test.pl
@@ -11,8 +11,7 @@ use PerlACE::TestTarget;
#
# These tests only run on Win32
#
-if ($^O ne "MSWin32")
-{
+if ($^O ne "MSWin32") {
exit;
}
@@ -40,8 +39,7 @@ if ($^O ne "MSWin32")
my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";;
$test_timeout = 60 + $target->ProcessStartWaitInterval();
-for $test (@tests)
-{
+for $test (@tests) {
print STDOUT "\n________________________________________\n";
print STDOUT "\nStarting test \"$test\"";
print STDOUT "\n________________________________________\n\n";
@@ -51,14 +49,11 @@ for $test (@tests)
if (! -e $test_process->Executable ()) {
print STDERR "Error: " . $test_process->Executable () .
" does not exist or is not runnable\n";
- }
- else
- {
+ } else {
$test_process->Spawn ();
$test_result = $test_process->WaitKill ($test_timeout);
- if ($test_result != 0)
- {
+ if ($test_result != 0) {
print STDERR "\n________________________________________\n";
print STDERR "\nERROR: \"$test\" returned $test_result";
print STDERR "\n________________________________________\n";
diff --git a/ACE/examples/Registry/test_registry_iterator.cpp b/ACE/examples/Registry/test_registry_iterator.cpp
index df776ca2fad..5a05f5b90b8 100644
--- a/ACE/examples/Registry/test_registry_iterator.cpp
+++ b/ACE/examples/Registry/test_registry_iterator.cpp
@@ -16,7 +16,7 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(Registry, test_registry_iterator, "$Id$")
+
// Indentation while printing names
static const u_long INDENTATION_LEVEL = 3;
diff --git a/ACE/examples/Registry/test_registry_update.cpp b/ACE/examples/Registry/test_registry_update.cpp
index 8aec0bd412d..488a739991f 100644
--- a/ACE/examples/Registry/test_registry_update.cpp
+++ b/ACE/examples/Registry/test_registry_update.cpp
@@ -22,7 +22,7 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(Registry, test_registry_update, "$Id$")
+
// Name for application's naming context
static ACE_Registry::Name application_context_name;
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/client/broadcast_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp
index 4895d326b8d..93e710b7f88 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp
@@ -12,8 +12,6 @@
#include "ace/Get_Opt.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(client, broadcast_client_test, "$Id$")
-
/* Name of the program. */
static ACE_TCHAR *program_name;
@@ -24,7 +22,7 @@ static void
print_usage_and_die (void)
{
ACE_OS::fprintf (stderr, "usage: %s [-p broadcast portnum]\n",
- program_name);
+ ACE_TEXT_ALWAYS_CHAR (program_name));
ACE_OS::exit (1);
}
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp
index 2a125a4a5f4..c4b3944b26f 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp
@@ -13,8 +13,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_fcntl.h"
-ACE_RCSID(client, local_dgram_client_test, "$Id$")
-
#if defined (ACE_HAS_MSG) && !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
// Name of the program.
static ACE_TCHAR *program_name;
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp
index 7aadafcc10a..9fb65d9d126 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp
@@ -11,8 +11,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_stropts.h"
-ACE_RCSID(client, local_fifo_client_test, "$Id$")
-
// Name of the program.
static ACE_TCHAR *program_name;
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp
index 694406647fd..0f5efdf8dac 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp
@@ -12,8 +12,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_fcntl.h"
-ACE_RCSID(client, local_pipe_client_test, "$Id$")
-
#if defined (ACE_HAS_MSG) && !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
// Name of the program.
static ACE_TCHAR *program_name;
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp
index 48ce4d0c28b..414d1b0664a 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp
@@ -9,8 +9,6 @@
#include "ace/Get_Opt.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(client, local_spipe_client_test, "$Id$")
-
#if defined (ACE_HAS_STREAM_PIPES)
static ACE_TCHAR *program_name;
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp
index 3b27f3db67a..65fc79bfd5a 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp
@@ -10,8 +10,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_fcntl.h"
-ACE_RCSID(client, local_stream_client_test, "$Id$")
-
#if defined (ACE_HAS_MSG) && !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
// Name of the program.
static ACE_TCHAR *program_name;
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp
index 946b3385b41..8290669126d 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp
@@ -10,8 +10,6 @@
#include "ace/Get_Opt.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(client, remote_dgram_client_test, "$Id$")
-
// Name of the program.
static const ACE_TCHAR *program_name;
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp
index cee8ca1469f..082a1724b2e 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp
@@ -11,8 +11,6 @@
#include "ace/Get_Opt.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(client, remote_service_directory_test, "$Id$")
-
// Port number to use.
static unsigned short port_number = ACE_DEFAULT_SERVICE_PORT;
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp
index b746dbbed97..2934d792dca 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp
@@ -14,8 +14,6 @@
#include "ace/Log_Msg.h"
#include "ace/Truncate.h"
-ACE_RCSID(client, remote_stream_client_test, "$Id$")
-
// Name of the program.
static const ACE_TCHAR *program_name;
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp
index 4b183e3fca4..90a1290d6b5 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp
@@ -11,8 +11,6 @@
#include "ace/Get_Opt.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(client, remote_thr_stream_client_test, "$Id$")
-
#if defined (ACE_HAS_TLI)
// Name of the program.
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp
index d81213805cd..39887f3f990 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp
@@ -2,8 +2,6 @@
#include "Handle_Broadcast.h"
-ACE_RCSID(server, Handle_Broadcast, "$Id$")
-
#if defined (SunOS4)
extern "C"
{
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.inl b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.inl
index 9b6e8772106..9060f535e28 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.inl
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.inl
@@ -50,7 +50,7 @@ Handle_Broadcast::info (ACE_TCHAR **strp, size_t length) const
{
ACE_OS::strncpy (*strp, buf, length);
}
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (buf));
}
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp
index 1654eff8573..6b604a6a5e4 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp
@@ -4,8 +4,6 @@
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
-ACE_RCSID(server, Handle_L_CODgram, "$Id$")
-
const ACE_TCHAR *Handle_L_CODgram::DEFAULT_RENDEZVOUS =
ACE_TEXT ("/tmp/foo_codgram");
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp
index 606f6f014fc..c6817d688ad 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp
@@ -2,8 +2,6 @@
#include "Handle_L_Dgram.h"
-ACE_RCSID(server, Handle_L_Dgram, "$Id$")
-
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
const ACE_TCHAR *Handle_L_Dgram::DEFAULT_RENDEZVOUS =
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp
index 3be991cc36e..0a38827a07a 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp
@@ -2,7 +2,7 @@
#include "Handle_L_FIFO.h"
-ACE_RCSID(server, Handle_L_FIFO, "$Id$")
+
#if defined (SunOS4)
extern "C"
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.inl b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.inl
index 7b83f9a8f1f..5e45842714e 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.inl
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.inl
@@ -41,7 +41,7 @@ Handle_L_FIFO::info (ACE_TCHAR **strp, size_t length) const
{
ACE_OS::strncpy (*strp, buf, length);
}
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (buf));
}
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp
index ebd5d618f41..fe4de260bff 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp
@@ -4,8 +4,6 @@
#include "ace/OS_NS_ctype.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(server, Handle_L_Pipe, "$Id$")
-
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
// Uppercase N bytes of S.
@@ -18,7 +16,7 @@ Handle_L_Pipe::upper_case (char s[], int n)
s[n] = ACE_OS::ace_toupper (s[n]);
return s;
-}
+}
int
Handle_L_Pipe::handle_input (ACE_HANDLE)
@@ -32,7 +30,7 @@ Handle_L_Pipe::handle_input (ACE_HANDLE)
if (this->accept (new_local_stream) == -1)
return -1;
- if (new_local_stream.recv_handle (fd1) == -1
+ if (new_local_stream.recv_handle (fd1) == -1
|| new_local_stream.recv_handle (fd2) == -1)
return -1;
else
@@ -45,7 +43,7 @@ Handle_L_Pipe::handle_input (ACE_HANDLE)
return -1;
else if (ACE_OS::write (fd2, this->upper_case (buf, n), n) == -1)
return -1;
- if (ACE_OS::close (fd1) == -1
+ if (ACE_OS::close (fd1) == -1
|| ACE_OS::close (fd2) == -1)
return -1;
if (new_local_stream.close () == -1)
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp
index fcdc2b7f0bf..d09676e2874 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp
@@ -2,8 +2,6 @@
#include "Handle_L_SPIPE.h"
-ACE_RCSID(server, Handle_L_SPIPE, "$Id$")
-
#if !defined (__ACE_INLINE__)
#include "Handle_L_SPIPE.inl"
#endif /* __ACE_INLINE__ */
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp
index 8a0a6a46033..250583526d1 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp
@@ -2,8 +2,6 @@
#include "Handle_L_Stream.h"
-ACE_RCSID(server, Handle_L_Stream, "$Id$")
-
#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
// Static variables.
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp
index 6b684f40e6b..60dc8eb2cc3 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp
@@ -2,10 +2,8 @@
#include "Handle_R_Dgram.h"
-ACE_RCSID(server, Handle_R_Dgram, "Handle_R_Dgram.cpp,v 4.2 1998/07/31 22:55:19 gonzo Exp")
-
#if defined (SunOS4)
-extern "C"
+extern "C"
{
int init (void);
int fini (void);
@@ -13,14 +11,14 @@ extern "C"
void __std__Handle_R_Dgram_C_init_();
}
-int
+int
init (void)
{
__sti__Handle_R_Dgram_C_init_();
return 0;
}
-int
+int
fini (void)
{
__std__Handle_R_Dgram_C_init_();
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp
index 93a862723f6..e1dfcdaec2c 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp
@@ -2,8 +2,6 @@
#include "Handle_R_Stream.h"
-ACE_RCSID(server, Handle_R_Stream, "$Id$")
-
#if defined (SunOS4)
extern "C"
{
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.inl b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.inl
index f51deb326c8..2a9d9f84fdd 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.inl
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.inl
@@ -52,7 +52,7 @@ Handle_R_Stream::info (ACE_TCHAR **strp, size_t length) const
{
ACE_OS::strncpy (*strp, buf, length);
}
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (buf));
}
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp
index ca799503d8a..f5b952ca7a1 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp
@@ -11,8 +11,6 @@
#include "ace/TLI_Acceptor.h"
#include "Handle_Thr_Stream.h"
-ACE_RCSID(server, Handle_Thr_Stream, "$Id$")
-
#if defined (ACE_HAS_THREADS)
#include "ace/OS_NS_time.h"
@@ -58,7 +56,7 @@ Handle_Thr_Acceptor<SVH, PR_AC_2>::info (ACE_TCHAR **strp,
{
ACE_OS::strncpy (*strp, buf, length);
}
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (buf));
}
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp
index 18e9c154e91..c4ca95a61ea 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp
@@ -2,8 +2,6 @@
#include "Handle_Timeout.h"
-ACE_RCSID(server, Handle_Timeout, "$Id$")
-
#if defined (SunOS4)
extern "C"
{
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.inl b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.inl
index 5a9bed73c07..cd4d7336231 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.inl
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.inl
@@ -27,7 +27,7 @@ Handle_Timeout::info (ACE_TCHAR **strp, size_t length) const
{
ACE_OS::strncpy (*strp, buf, length);
}
-
+
return ACE_Utils::truncate_cast<int> (ACE_OS::strlen (buf));
}
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/Service_Configurator/IPC-tests/server/server_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp
index fe88a3eab8e..57d89802deb 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp
@@ -9,8 +9,6 @@
#include "ace/Signal.h"
#include "ace/Sig_Adapter.h"
-ACE_RCSID(server, server_test, "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/svc.conf b/ACE/examples/Service_Configurator/IPC-tests/server/svc.conf
index 6f4e70a3ca5..0fddd359258 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/svc.conf
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# To configure different services, simply uncomment the appropriate lines in this file!
static ACE_Service_Manager "-d -p 3911"
dynamic Remote_Brdcast Service_Object * ./IPC_Tests_Server:remote_broadcast "-p 10001"
diff --git a/ACE/examples/Service_Configurator/Misc/Timer_Service.cpp b/ACE/examples/Service_Configurator/Misc/Timer_Service.cpp
index 583552c6de4..aecf63fdd7a 100644
--- a/ACE/examples/Service_Configurator/Misc/Timer_Service.cpp
+++ b/ACE/examples/Service_Configurator/Misc/Timer_Service.cpp
@@ -4,7 +4,7 @@
#include "Timer_Service.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Misc, Timer_Service, "$Id$")
+
Timer_Service_1::Timer_Service_1 (void)
{
diff --git a/ACE/examples/Service_Configurator/Misc/main.cpp b/ACE/examples/Service_Configurator/Misc/main.cpp
index 0130a135c1e..08a19b2b8db 100644
--- a/ACE/examples/Service_Configurator/Misc/main.cpp
+++ b/ACE/examples/Service_Configurator/Misc/main.cpp
@@ -1,22 +1,19 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// examples/Service_Configurator/Misc
-//
-// = FILENAME
-// main.cpp
-//
-// = DESCRIPTION
-// This directory contains an example that illustrates how the ACE
-// Service Configurator can configure static and dynamic services,
-// both from the command-line and from a svc.config file.
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file main.cpp
+ *
+ * $Id$
+ *
+ * This directory contains an example that illustrates how the ACE
+ * Service Configurator can configure static and dynamic services,
+ * both from the command-line and from a svc.config file.
+ *
+ *
+ * @author Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/Service_Config.h"
@@ -24,7 +21,7 @@
#include "ace/Log_Msg.h"
#include "Timer_Service.h"
-ACE_RCSID(Misc, main, "$Id$")
+
// Create an object that will insert the <Timer_Service> into the list
// of statically linked services that the <ACE_Service_Config> will
@@ -40,10 +37,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Manufacture a "fake" svc.conf entry to demonstrate the -S option
// that allows us to pass these entries via the "command-line"
// rather than the svc.conf file.
-
+
for (int i = 0; i < argc; i++)
args.add (argv[i]);
-
+
args.add (ACE_TEXT ("-y"));
args.add (ACE_TEXT ("-d"));
args.add (ACE_TEXT ("-S"));
diff --git a/ACE/examples/Service_Configurator/Misc/svc.conf1 b/ACE/examples/Service_Configurator/Misc/svc.conf1
index 2995c61ebe9..f992697baa9 100644
--- a/ACE/examples/Service_Configurator/Misc/svc.conf1
+++ b/ACE/examples/Service_Configurator/Misc/svc.conf1
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure the Timer_Service into the application process
# and pass in up to 4 arguments. The final 3 arguments are retrieved
# from environment variables, so they can be set by changing your
diff --git a/ACE/examples/Service_Configurator/Misc/svc.conf2 b/ACE/examples/Service_Configurator/Misc/svc.conf2
index 1bef63e8d48..a01ab71a78b 100644
--- a/ACE/examples/Service_Configurator/Misc/svc.conf2
+++ b/ACE/examples/Service_Configurator/Misc/svc.conf2
@@ -1,3 +1,5 @@
+# $Id$
+
# Statically configure the Timer_Service, which must have been linked
# statically into the application process. Up to 4 arguments are
# passed in. The final 3 arguments are retrieved from environment
diff --git a/ACE/examples/Shared_Malloc/Malloc.cpp b/ACE/examples/Shared_Malloc/Malloc.cpp
index 4499d9fa11b..2236e2ec6c0 100644
--- a/ACE/examples/Shared_Malloc/Malloc.cpp
+++ b/ACE/examples/Shared_Malloc/Malloc.cpp
@@ -16,7 +16,7 @@
#include "ace/Process_Mutex.h"
#include "ace/Malloc_T.h"
-ACE_RCSID(Shared_Malloc, Malloc, "$Id$")
+
// Strategic typedefs for memory allocation.
diff --git a/ACE/examples/Shared_Malloc/Options.cpp b/ACE/examples/Shared_Malloc/Options.cpp
index aca14d71da8..44bf59b0aa6 100644
--- a/ACE/examples/Shared_Malloc/Options.cpp
+++ b/ACE/examples/Shared_Malloc/Options.cpp
@@ -6,10 +6,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (Shared_Malloc,
- Options,
- "$Id$")
-
// Static Singleton instance.
Options *Options::instance_ = 0;
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_Malloc/test_malloc.cpp b/ACE/examples/Shared_Malloc/test_malloc.cpp
index 242aa1736a8..14df0c19c23 100644
--- a/ACE/examples/Shared_Malloc/test_malloc.cpp
+++ b/ACE/examples/Shared_Malloc/test_malloc.cpp
@@ -15,18 +15,18 @@
#include "Malloc.h"
#include "Options.h"
-ACE_RCSID(Shared_Malloc, test_malloc, "$Id$")
+
static int
gen_size (void)
{
#if defined (ACE_HAS_THREADS)
- ACE_RANDR_TYPE seed =
- static_cast<ACE_RANDR_TYPE> (reinterpret_cast<uintptr_t> (&seed));
-
+ unsigned int seed =
+ static_cast<unsigned int> (reinterpret_cast<uintptr_t> (&seed));
+
return (
ACE_Utils::truncate_cast<int> (
- ACE_OS::rand_r (seed) % Options::instance ()->max_msg_size ()) + 1);
+ ACE_OS::rand_r (&seed) % Options::instance ()->max_msg_size ()) + 1);
#else
return (
ACE_Utils::truncate_cast<int> (
diff --git a/ACE/examples/Shared_Malloc/test_multiple_mallocs.cpp b/ACE/examples/Shared_Malloc/test_multiple_mallocs.cpp
index 1638a762060..9a5b98bbb24 100644
--- a/ACE/examples/Shared_Malloc/test_multiple_mallocs.cpp
+++ b/ACE/examples/Shared_Malloc/test_multiple_mallocs.cpp
@@ -9,7 +9,7 @@
#include "ace/Auto_Ptr.h"
#include "ace/Process_Mutex.h"
-ACE_RCSID(Shared_Malloc, test_multiple_mallocs, "$Id$")
+
typedef ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_Process_Mutex> TEST_MALLOC;
diff --git a/ACE/examples/Shared_Malloc/test_persistence.cpp b/ACE/examples/Shared_Malloc/test_persistence.cpp
index 8c3df750853..b05fea5d8a8 100644
--- a/ACE/examples/Shared_Malloc/test_persistence.cpp
+++ b/ACE/examples/Shared_Malloc/test_persistence.cpp
@@ -15,10 +15,6 @@
#include "ace/Null_Mutex.h"
-ACE_RCSID (Shared_Malloc,
- test_persistence,
- "$Id$")
-
typedef ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> TEST_MALLOC;
typedef ACE_Malloc_LIFO_Iterator <ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> MALLOC_LIFO_ITERATOR;
typedef ACE_Malloc_FIFO_Iterator <ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> MALLOC_FIFO_ITERATOR;
diff --git a/ACE/examples/Shared_Malloc/test_position_independent_malloc.cpp b/ACE/examples/Shared_Malloc/test_position_independent_malloc.cpp
index 3da3436377e..511c198b2b5 100644
--- a/ACE/examples/Shared_Malloc/test_position_independent_malloc.cpp
+++ b/ACE/examples/Shared_Malloc/test_position_independent_malloc.cpp
@@ -14,7 +14,7 @@
#include "ace/Malloc_T.h"
#include "ace/MMAP_Memory_Pool.h"
-ACE_RCSID(Shared_Malloc, test_multiple_mallocs, "$Id$")
+
#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
typedef ACE_PI_Control_Block CONTROL_BLOCK;
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/Shared_Memory/test_MM.cpp b/ACE/examples/Shared_Memory/test_MM.cpp
index 90697296dbc..27184bb8e2d 100644
--- a/ACE/examples/Shared_Memory/test_MM.cpp
+++ b/ACE/examples/Shared_Memory/test_MM.cpp
@@ -6,7 +6,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(Shared_Memory, test_MM, "$Id$")
+
#define SHMSZ 27
ACE_TCHAR shm_key[] = ACE_TEXT ("/tmp/fooXXXXXX");
diff --git a/ACE/examples/Shared_Memory/test_SV.cpp b/ACE/examples/Shared_Memory/test_SV.cpp
index f606eea5b70..ce7e2218115 100644
--- a/ACE/examples/Shared_Memory/test_SV.cpp
+++ b/ACE/examples/Shared_Memory/test_SV.cpp
@@ -4,7 +4,7 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Shared_Memory, test_SV, "$Id$")
+
#define SHMSZ 27
#define SHM_KEY (key_t) 5678
diff --git a/ACE/examples/Smart_Pointers/Gadget_Part_Impl.cpp b/ACE/examples/Smart_Pointers/Gadget_Part_Impl.cpp
index aeda00711bb..472e6d3e859 100644
--- a/ACE/examples/Smart_Pointers/Gadget_Part_Impl.cpp
+++ b/ACE/examples/Smart_Pointers/Gadget_Part_Impl.cpp
@@ -23,7 +23,7 @@ Gadget_Part_Impl::Gadget_Part_Impl (Gadget_ptr owner,
{
ACE_DEBUG ((LM_DEBUG, "Gadget_Part_Impl constructor\n"));
}
-
+
Gadget_Part_Impl::~Gadget_Part_Impl (void)
{
ACE_DEBUG ((LM_DEBUG, "Gadget_Part_Impl destructor\n"));
diff --git a/ACE/examples/Smart_Pointers/Gadget_Part_Impl.h b/ACE/examples/Smart_Pointers/Gadget_Part_Impl.h
index bcacb84f0c9..964c0705d49 100644
--- a/ACE/examples/Smart_Pointers/Gadget_Part_Impl.h
+++ b/ACE/examples/Smart_Pointers/Gadget_Part_Impl.h
@@ -25,7 +25,7 @@ class Gadget_Part_Impl : public Gadget_Part
public:
/// Constructor.
Gadget_Part_Impl (Gadget_ptr owner, const char* name, int size);
-
+
/// Destructor.
virtual ~Gadget_Part_Impl (void);
@@ -37,7 +37,7 @@ public:
private:
/// The gadget that contains this part.
- ///
+ ///
/// Some things to note about the choice of ACE_Weak_Bound_Ptr (from the
/// typedef for Gadget_ptr):
/// - We cannot use an ACE_Strong_Bound_Ptr (Gadget_var) since that would
diff --git a/ACE/examples/Smart_Pointers/Widget_Part_Impl.cpp b/ACE/examples/Smart_Pointers/Widget_Part_Impl.cpp
index 0e4e496f180..6e803c98cd5 100644
--- a/ACE/examples/Smart_Pointers/Widget_Part_Impl.cpp
+++ b/ACE/examples/Smart_Pointers/Widget_Part_Impl.cpp
@@ -23,7 +23,7 @@ Widget_Part_Impl::Widget_Part_Impl (Widget *owner, const char* name, int size)
{
ACE_DEBUG ((LM_DEBUG, "Widget_Part_Impl constructor\n"));
}
-
+
Widget_Part_Impl::~Widget_Part_Impl (void)
{
ACE_DEBUG ((LM_DEBUG, "Widget_Part_Impl destructor\n"));
diff --git a/ACE/examples/Smart_Pointers/Widget_Part_Impl.h b/ACE/examples/Smart_Pointers/Widget_Part_Impl.h
index dbb1d4c714c..f63cbabf402 100644
--- a/ACE/examples/Smart_Pointers/Widget_Part_Impl.h
+++ b/ACE/examples/Smart_Pointers/Widget_Part_Impl.h
@@ -25,7 +25,7 @@ class Widget_Part_Impl : public Widget_Part
public:
/// Constructor.
Widget_Part_Impl (Widget *owner, const char* name, int size);
-
+
/// Destructor.
virtual ~Widget_Part_Impl (void);
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/MQ_Client.cpp b/ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp
index 5f26eb583b4..41d11a3039e 100644
--- a/ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp
+++ b/ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp
@@ -11,7 +11,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(SV_Message_Queues, MQ_Client, "$Id$")
+
#if defined (ACE_HAS_SYSV_IPC) && !defined(ACE_LACKS_SYSV_SHMEM)
diff --git a/ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp b/ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp
index fb45e296084..63411fcf313 100644
--- a/ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp
+++ b/ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp
@@ -11,7 +11,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(SV_Message_Queues, MQ_Server, "$Id$")
+
#if defined (ACE_HAS_SYSV_IPC) && !defined(ACE_LACKS_SYSV_SHMEM)
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_Message_Queues/TMQ_Client.cpp b/ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp
index 23fc877663c..d2bcf36cc9e 100644
--- a/ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp
+++ b/ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp
@@ -10,7 +10,7 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(SV_Message_Queues, TMQ_Client, "$Id$")
+
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp b/ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp
index f91b1abf917..1f29cb6b9ff 100644
--- a/ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp
+++ b/ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp
@@ -13,7 +13,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(SV_Message_Queues, TMQ_Server, "$Id$")
+
#if defined (ACE_HAS_SYSV_IPC) && !defined(ACE_LACKS_SYSV_SHMEM)
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/System_V_IPC/SV_Semaphores/Semaphores_1.cpp b/ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp
index 581dff8f7f6..26d59dd4885 100644
--- a/ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp
+++ b/ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp
@@ -7,12 +7,6 @@
#include "ace/Malloc_T.h"
#include "ace/OS_NS_unistd.h"
-
-ACE_RCSID (SV_Semaphores,
- Semaphores_1,
- "$Id$")
-
-
#if defined (ACE_HAS_SYSV_IPC) && !defined(ACE_LACKS_SYSV_SHMEM)
// Shared memory allocator (note that this chews up the
diff --git a/ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp b/ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp
index 933bd09a3bf..ce3685a7f36 100644
--- a/ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp
+++ b/ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp
@@ -12,7 +12,7 @@
#include "ace/SV_Semaphore_Complex.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(SV_Semaphores, Semaphores_2, "$Id$")
+
#if defined (ACE_HAS_SYSV_IPC) && !defined(ACE_LACKS_SYSV_SHMEM)
diff --git a/ACE/examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp b/ACE/examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp
index 606db9993a8..774de9bafb8 100644
--- a/ACE/examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp
+++ b/ACE/examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp
@@ -7,7 +7,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(SV_Shared_Memory, SV_Shared_Memory_Test, "$Id$")
+
#if defined (ACE_HAS_SYSV_IPC) && !defined(ACE_LACKS_SYSV_SHMEM)
diff --git a/ACE/examples/Threads/TSS_Data.h b/ACE/examples/Threads/TSS_Data.h
index 3c9dfcfe28c..9a837793d65 100644
--- a/ACE/examples/Threads/TSS_Data.h
+++ b/ACE/examples/Threads/TSS_Data.h
@@ -1,17 +1,14 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// TSS_Data.cpp
-//
-// = AUTHOR
-// Prashant Jain and Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file TSS_Data.h
+ *
+ * $Id$
+ *
+ * @author Prashant Jain and Doug Schmidt
+ */
+//=============================================================================
+
#include "ace/Singleton.h"
@@ -21,9 +18,12 @@
#include "ace/Synch_Traits.h"
+/**
+ * @class TSS_Data
+ *
+ * @brief Data that is stored in thread-specific storage.
+ */
class TSS_Data
- // = TITLE
- // Data that is stored in thread-specific storage.
{
public:
void *data (void) { return this->data_; }
diff --git a/ACE/examples/Threads/TSS_Obj.h b/ACE/examples/Threads/TSS_Obj.h
index 7dc4e469851..7e430ca09af 100644
--- a/ACE/examples/Threads/TSS_Obj.h
+++ b/ACE/examples/Threads/TSS_Obj.h
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TSS_Test.cpp
-//
-// = DESCRIPTION
-// This program tests various features of ACE_Thread and the
-// thread-specific storage variant of <ACE_SingletonEx>.
-//
-// = AUTHOR
-// Prashant Jain and Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file TSS_Obj.h
+ *
+ * $Id$
+ *
+ * This program tests various features of ACE_Thread and the
+ * thread-specific storage variant of <ACE_SingletonEx>.
+ *
+ *
+ * @author Prashant Jain and Doug Schmidt
+ */
+//=============================================================================
+
#include "ace/Atomic_Op.h"
#include "ace/Synch_Traits.h"
@@ -24,9 +21,12 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class TSS_Obj
+ *
+ * @brief This object is stored in thread-specific storage.
+ */
class TSS_Obj
- // = TITLE
- // This object is stored in thread-specific storage.
{
public:
TSS_Obj (void);
diff --git a/ACE/examples/Threads/TSS_Task.h b/ACE/examples/Threads/TSS_Task.h
index 0612f0c46a9..289ef6db82f 100644
--- a/ACE/examples/Threads/TSS_Task.h
+++ b/ACE/examples/Threads/TSS_Task.h
@@ -1,19 +1,16 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TSS_Task.h
-//
-// = AUTHOR
-// Prashant Jain and Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file TSS_Task.h
+ *
+ * $Id$
+ *
+ * @author Prashant Jain and Doug Schmidt
+ */
+//=============================================================================
+
#include "ace/config-all.h"
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/Threads/auto_event.cpp b/ACE/examples/Threads/auto_event.cpp
index 21ecbee830c..55f469614f9 100644
--- a/ACE/examples/Threads/auto_event.cpp
+++ b/ACE/examples/Threads/auto_event.cpp
@@ -14,8 +14,6 @@
#include "ace/Singleton.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(Threads, auto_event, "$Id$")
-
#if defined (ACE_HAS_THREADS)
// Shared event between reader and writer. The ACE_Thread_Mutex is
// necessary to make sure that only one ACE_Auto_Event is created.
diff --git a/ACE/examples/Threads/barrier1.cpp b/ACE/examples/Threads/barrier1.cpp
index 4d3762b1eb6..81c9bc8d40e 100644
--- a/ACE/examples/Threads/barrier1.cpp
+++ b/ACE/examples/Threads/barrier1.cpp
@@ -8,7 +8,7 @@
#include "ace/Thread_Manager.h"
#include "ace/Service_Config.h"
-ACE_RCSID(Threads, barrier1, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Threads/barrier2.cpp b/ACE/examples/Threads/barrier2.cpp
index 3264df56c11..862290894ac 100644
--- a/ACE/examples/Threads/barrier2.cpp
+++ b/ACE/examples/Threads/barrier2.cpp
@@ -16,7 +16,7 @@
#include "ace/Task.h"
#include "ace/Service_Config.h"
-ACE_RCSID(Threads, barrier2, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -197,7 +197,7 @@ Worker_Task<BARRIER>::producer (void)
for (;;)
{
// Allocate a new message.
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (BUFSIZ),
diff --git a/ACE/examples/Threads/cancel.cpp b/ACE/examples/Threads/cancel.cpp
index f525ea7ea8e..c72005e588f 100644
--- a/ACE/examples/Threads/cancel.cpp
+++ b/ACE/examples/Threads/cancel.cpp
@@ -8,8 +8,6 @@
#include "ace/Service_Config.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(Threads, cancel, "$Id$")
-
#if defined (ACE_HAS_THREADS)
static void *
diff --git a/ACE/examples/Threads/future1.cpp b/ACE/examples/Threads/future1.cpp
index a73549fd36c..008c57a5b8c 100644
--- a/ACE/examples/Threads/future1.cpp
+++ b/ACE/examples/Threads/future1.cpp
@@ -1,21 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Test_Future.cpp
-//
-// = DESCRIPTION
-// This example tests the ACE Future.
-//
-// = AUTHOR
-// Andres Kruse <Andres.Kruse@cern.ch> and Douglas C. Schmidt
-// <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file future1.cpp
+ *
+ * $Id$
+ *
+ * This example tests the ACE Future.
+ *
+ *
+ * @author Andres Kruse <Andres.Kruse@cern.ch> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
@@ -30,7 +26,7 @@
#include "ace/Auto_Ptr.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(Threads, future1, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -51,9 +47,12 @@ static ATOMIC_INT capsule_no (0);
static ATOMIC_INT methodobject_count (0);
static ATOMIC_INT methodobject_no (0);
+/**
+ * @class Scheduler
+ *
+ * @brief Active Object Scheduler.
+ */
class Scheduler : public ACE_Task_Base
- // = TITLE
- // Active Object Scheduler.
{
friend class Method_RequestWork;
public:
@@ -61,9 +60,9 @@ public:
virtual ~Scheduler (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int open (void *args = 0);
virtual int close (u_long flags = 0);
- //FUZZ: enable check_for_lack_ACE_OS
virtual int svc (void);
@@ -80,9 +79,12 @@ private:
Scheduler *scheduler_;
};
+/**
+ * @class Method_Request_work
+ *
+ * @brief Reification of the <work> method.
+ */
class Method_Request_work : public ACE_Method_Request
- // = TITLE
- // Reification of the <work> method.
{
public:
Method_Request_work (Scheduler *, u_long, int, ACE_Future<u_long> &);
@@ -121,9 +123,12 @@ Method_Request_work::call (void)
return this->future_result_.set (this->scheduler_->work_i (this->param_, this->count_));
}
+/**
+ * @class Method_Request_name
+ *
+ * @brief Reification of the <name> method.
+ */
class Method_Request_name : public ACE_Method_Request
- // = TITLE
- // Reification of the <name> method.
{
public:
Method_Request_name (Scheduler *, ACE_Future<const char*> &);
@@ -156,9 +161,12 @@ Method_Request_name::call (void)
return future_result_.set (scheduler_->name_i ());
}
+/**
+ * @class Method_Request_end
+ *
+ * @brief Reification of the <end> method.
+ */
class Method_Request_end : public ACE_Method_Request
- // = TITLE
- // Reification of the <end> method.
{
public:
Method_Request_end (Scheduler *new_scheduler): scheduler_ (new_scheduler) {}
@@ -166,8 +174,8 @@ public:
virtual int call (void) { return -1; }
private:
+ /// Keep track of our scheduler.
Scheduler *scheduler_;
- // Keep track of our scheduler.
};
// Constructor.
diff --git a/ACE/examples/Threads/future2.cpp b/ACE/examples/Threads/future2.cpp
index b907e58ddc7..df1eb8cc297 100644
--- a/ACE/examples/Threads/future2.cpp
+++ b/ACE/examples/Threads/future2.cpp
@@ -1,29 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Test_Future.cpp
-//
-// = DESCRIPTION
-// This example tests the ACE Future.
-//
-// = AUTHOR
-// Andres Kruse <Andres.Kruse@cern.ch> and Douglas C. Schmidt
-// <schmidt@cs.wustl.edu>
-//
-// Modification History
-// Aug. 96; A.Kruse; dev.
-// Aug. 96; D.Schmidt; complete workover
-// 08/27/96; A.Kruse; - the friends of Scheduler are "Method_Request_name"
-// and "Method_Request_work".
-// - make the methods "work_i" and "name_i" private
-// 09/2/96; D.Schmidt; Integrate with new ACE_Future API and rearrange
-// the tests so they are more modular.
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file future2.cpp
+ *
+ * $Id$
+ *
+ * This example tests the ACE Future.
+ *
+ *
+ * @author Andres Kruse <Andres.Kruse@cern.ch> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and "Method_Request_work". - make the methods "work_i" and "name_i" private the tests so they are more modular.
+ */
+//=============================================================================
+
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_sys_time.h"
@@ -38,7 +26,6 @@
#include "ace/Auto_Ptr.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(Threads, future2, "$Id$")
#if defined (ACE_HAS_THREADS)
typedef ACE_Atomic_Op<ACE_Thread_Mutex, int> ATOMIC_INT;
@@ -50,9 +37,12 @@ static ATOMIC_INT scheduler_open_count (0);
class Method_Request_work;
class Method_Request_name;
+/**
+ * @class Scheduler
+ *
+ * @brief Active Object Scheduler.
+ */
class Scheduler : public ACE_Task_Base
- // = TITLE
- // Active Object Scheduler.
{
// Every method object has to be able to access the private methods.
@@ -65,9 +55,9 @@ public:
virtual ~Scheduler (void);
//FUZZ: disable check_for_lack_ACE_OS
+ /// The method that is used to start the active object.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int open (void *args = 0);
- // The method that is used to start the active object.
- //FUZZ: enable check_for_lack_ACE_OS
// = Here are the methods exported by the class. They return an
// <ACE_Future>.
@@ -77,12 +67,12 @@ public:
private:
//FUZZ: disable check_for_lack_ACE_OS
+ /// Should not be accessible from outside... (use end () instead).
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int close (u_long flags = 0);
- // Should not be accessible from outside... (use end () instead).
- //FUZZ: enable check_for_lack_ACE_OS
+ /// Here the actual servicing of all requests is happening..
virtual int svc (void);
- // Here the actual servicing of all requests is happening..
// = Implementation methods.
u_long work_i (u_long, int);
@@ -93,9 +83,12 @@ private:
Scheduler *scheduler_;
};
+/**
+ * @class Method_Request_work
+ *
+ * @brief Reification of the <work> method.
+ */
class Method_Request_work : public ACE_Method_Request
- // = TITLE
- // Reification of the <work> method.
{
public:
Method_Request_work (Scheduler *, u_long, int, ACE_Future<u_long> &);
@@ -130,9 +123,12 @@ Method_Request_work::call (void)
return this->future_result_.set (this->scheduler_->work_i (this->param_, this->count_));
}
+/**
+ * @class Method_Request_name
+ *
+ * @brief Reification of the <name> method.
+ */
class Method_Request_name : public ACE_Method_Request
- // = TITLE
- // Reification of the <name> method.
{
public:
Method_Request_name (Scheduler *, ACE_Future<char*> &);
@@ -166,9 +162,12 @@ Method_Request_name::call (void)
return future_result_.set (scheduler_->name_i ());
}
+/**
+ * @class Method_Request_end
+ *
+ * @brief Reification of the <end> method.
+ */
class Method_Request_end : public ACE_Method_Request
- // = TITLE
- // Reification of the <end> method.
{
public:
Method_Request_end (Scheduler *new_Scheduler): scheduler_ (new_Scheduler) {}
@@ -176,8 +175,8 @@ public:
virtual int call (void) { return -1; }
private:
+ /// Keep track of our scheduler.
Scheduler *scheduler_;
- // Keep track of our scheduler.
};
// constructor
diff --git a/ACE/examples/Threads/manual_event.cpp b/ACE/examples/Threads/manual_event.cpp
index 0e1e76bfd8e..bad5de56b72 100644
--- a/ACE/examples/Threads/manual_event.cpp
+++ b/ACE/examples/Threads/manual_event.cpp
@@ -19,7 +19,7 @@
#include "ace/Thread_Manager.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(Threads, manual_event, "$Id$")
+
#if defined (ACE_HAS_THREADS)
static ACE_Atomic_Op <ACE_Thread_Mutex, int> amount_of_work = 0;
diff --git a/ACE/examples/Threads/process_manager.cpp b/ACE/examples/Threads/process_manager.cpp
index b8c2455b469..6a690650533 100644
--- a/ACE/examples/Threads/process_manager.cpp
+++ b/ACE/examples/Threads/process_manager.cpp
@@ -1,30 +1,26 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Threads/
-//
-// = FILENAME
-// process_manager.cpp
-//
-// = DESCRIPTION
-// Test out the mechanisms provided by the ACE_Process_Manager.
-// Using the global ACE_Process_Manager::instance(), we first spawn
-// some processes (re-invoke this program, and plain-old-fork on
-// systems that support it), and try the wait() functions.
-//
-// Then, we register the Process_Manager with
-// ACE_Reactor::instance() and spawn more processes, counting on the
-// autoreap to clean up.
-//
-// Specific-pid and generic exit-handler functions are also tested.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Dave Madden <dhm@mersenne.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file process_manager.cpp
+ *
+ * $Id$
+ *
+ * Test out the mechanisms provided by the ACE_Process_Manager.
+ * Using the global ACE_Process_Manager::instance(), we first spawn
+ * some processes (re-invoke this program, and plain-old-fork on
+ * systems that support it), and try the wait() functions.
+ *
+ * Then, we register the Process_Manager with
+ * ACE_Reactor::instance() and spawn more processes, counting on the
+ * autoreap to clean up.
+ *
+ * Specific-pid and generic exit-handler functions are also tested.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> and Dave Madden <dhm@mersenne.com>
+ */
+//=============================================================================
+
#include "ace/OS_NS_unistd.h"
#include "ace/OS_main.h"
@@ -33,20 +29,18 @@
#include "ace/Process_Manager.h"
#include "ace/Get_Opt.h"
-ACE_RCSID(Threads, process_manager, "$Id$")
-
class ExitHandler : public ACE_Event_Handler
{
public:
ExitHandler (const char *name);
+ /// Called when object is removed from the <ACE_Reactor>.
virtual ~ExitHandler (void);
virtual int handle_exit (ACE_Process *proc);
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg = 0);
virtual int handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask close_mask);
- // Called when object is removed from the <ACE_Reactor>.
private:
const char *name_;
};
diff --git a/ACE/examples/Threads/process_mutex.cpp b/ACE/examples/Threads/process_mutex.cpp
index bbb03c08d0b..6e874bff2c5 100644
--- a/ACE/examples/Threads/process_mutex.cpp
+++ b/ACE/examples/Threads/process_mutex.cpp
@@ -10,7 +10,7 @@
#include "ace/Log_Msg.h"
#include "ace/Process_Mutex.h"
-ACE_RCSID(Threads, process_mutex, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Threads/process_semaphore.cpp b/ACE/examples/Threads/process_semaphore.cpp
index e7adbb6a3ac..0f551128a75 100644
--- a/ACE/examples/Threads/process_semaphore.cpp
+++ b/ACE/examples/Threads/process_semaphore.cpp
@@ -10,7 +10,7 @@
#include "ace/Process_Semaphore.h"
#include "ace/OS_NS_stdlib.h"
-ACE_RCSID(Threads, process_semaphore, "$Id$")
+
static sig_atomic_t done;
diff --git a/ACE/examples/Threads/reader_writer.cpp b/ACE/examples/Threads/reader_writer.cpp
index 5344ba4d5b4..560e7cc1340 100644
--- a/ACE/examples/Threads/reader_writer.cpp
+++ b/ACE/examples/Threads/reader_writer.cpp
@@ -9,7 +9,7 @@
#include "ace/Get_Opt.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(Threads, reader_writer, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -89,7 +89,7 @@ reader (void *)
for (int iterations = 1;
iterations <= n_iterations; iterations++)
{
- ACE_Read_Guard<ACE_RW_Mutex> g(rw_mutex);
+ ACE_READ_GUARD_RETURN (ACE_RW_Mutex, g, rw_mutex, 0);
++current_readers;
@@ -127,7 +127,7 @@ writer (void *)
iterations <= n_iterations;
iterations++)
{
- ACE_Write_Guard<ACE_RW_Mutex> g(rw_mutex);
+ ACE_WRITE_GUARD_RETURN (ACE_RW_Mutex, g, rw_mutex, 0);
++current_writers;
diff --git a/ACE/examples/Threads/recursive_mutex.cpp b/ACE/examples/Threads/recursive_mutex.cpp
index 6ffc7670776..08e20d30aac 100644
--- a/ACE/examples/Threads/recursive_mutex.cpp
+++ b/ACE/examples/Threads/recursive_mutex.cpp
@@ -8,7 +8,7 @@
#include "ace/Thread_Manager.h"
#include "ace/Get_Opt.h"
-ACE_RCSID(Threads, recursive_mutex, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -62,7 +62,7 @@ recursive_worker (size_t nesting_level,
"(%P|%t) = trying to acquire, nesting = %d, thread id = %u\n",
rm->get_nesting_level (), rm->get_thread_id ()));
{
- // This illustrates the use of the ACE_Guard<LOCK> with an
+ // This illustrates the use of the ACE_GUARD with an
// ACE_Recursive_Thread_Mutex.
ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, *rm);
ACE_DEBUG ((LM_DEBUG,
diff --git a/ACE/examples/Threads/task_five.cpp b/ACE/examples/Threads/task_five.cpp
index 66fcee550c4..d31547c3fc0 100644
--- a/ACE/examples/Threads/task_five.cpp
+++ b/ACE/examples/Threads/task_five.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Threads/
-//
-// = FILENAME
-// task_five.cpp
-//
-// = DESCRIPTION
-// Stress testing thread creation and thread cancellation using
-// ACE_Task.
-//
-// = AUTHOR
-// Author: Detlef Becker <Detlef.Becker@med.siemens.de>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file task_five.cpp
+ *
+ * $Id$
+ *
+ * Stress testing thread creation and thread cancellation using
+ * ACE_Task.
+ *
+ *
+ * @author Author: Detlef Becker <Detlef.Becker@med.siemens.de>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
@@ -23,8 +20,6 @@
#include "ace/Task.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Threads, task_five, "$Id$")
-
static const int DEFAULT_TASKS = 100;
static const int DEFAULT_ITERATIONS = 10;
@@ -49,8 +44,8 @@ public:
int svc (void);
int close (u_long);
+ ///FUZZ: enable check_for_lack_ACE_OS
int shutdown (void);
- //FUZZ: enable check_for_lack_ACE_OS
int synch (void);
};
diff --git a/ACE/examples/Threads/task_four.cpp b/ACE/examples/Threads/task_four.cpp
index 4188c57549b..c3ee8a1748b 100644
--- a/ACE/examples/Threads/task_four.cpp
+++ b/ACE/examples/Threads/task_four.cpp
@@ -36,8 +36,6 @@
#include "ace/Task.h"
#include "ace/Service_Config.h"
-ACE_RCSID(Threads, task_four, "$Id$")
-
#if defined (ACE_HAS_THREADS)
#include "ace/Task.h"
diff --git a/ACE/examples/Threads/task_one.cpp b/ACE/examples/Threads/task_one.cpp
index c106d9c6ba9..b1e657f72ad 100644
--- a/ACE/examples/Threads/task_one.cpp
+++ b/ACE/examples/Threads/task_one.cpp
@@ -9,7 +9,7 @@
#include "ace/Task.h"
#include "ace/Service_Config.h"
-ACE_RCSID(Threads, task_one, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Threads/task_three.cpp b/ACE/examples/Threads/task_three.cpp
index 51bc95d3346..13625f64dc6 100644
--- a/ACE/examples/Threads/task_three.cpp
+++ b/ACE/examples/Threads/task_three.cpp
@@ -23,7 +23,7 @@
#include "ace/Signal.h"
-ACE_RCSID(Threads, task_three, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Threads/task_two.cpp b/ACE/examples/Threads/task_two.cpp
index 91b6de2bd1a..aa153ed1042 100644
--- a/ACE/examples/Threads/task_two.cpp
+++ b/ACE/examples/Threads/task_two.cpp
@@ -10,7 +10,7 @@
#include "ace/Service_Config.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(Threads, task_two, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Threads/thread_manager.cpp b/ACE/examples/Threads/thread_manager.cpp
index 7b3fb230fd3..573b61bc5cb 100644
--- a/ACE/examples/Threads/thread_manager.cpp
+++ b/ACE/examples/Threads/thread_manager.cpp
@@ -11,7 +11,7 @@
#include "ace/Thread_Manager.h"
#include "ace/Signal.h"
-ACE_RCSID(Threads, thread_manager, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Threads/thread_pool.cpp b/ACE/examples/Threads/thread_pool.cpp
index 6fe30ae25fd..5aaa1d2de0b 100644
--- a/ACE/examples/Threads/thread_pool.cpp
+++ b/ACE/examples/Threads/thread_pool.cpp
@@ -18,7 +18,7 @@
#include "ace/Task.h"
#include "ace/Service_Config.h"
-ACE_RCSID(Threads, thread_pool, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -104,7 +104,7 @@ Thread_Pool::svc (void)
for (;; count++)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_DEBUG ((LM_DEBUG,
"(%t) in iteration %d before getq ()\n",
diff --git a/ACE/examples/Threads/thread_specific.cpp b/ACE/examples/Threads/thread_specific.cpp
index e32b6aba329..77e6472521a 100644
--- a/ACE/examples/Threads/thread_specific.cpp
+++ b/ACE/examples/Threads/thread_specific.cpp
@@ -9,8 +9,6 @@
#include "ace/Truncate.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(Threads, thread_specific, "$Id$")
-
#if defined (ACE_HAS_THREADS)
#include "thread_specific.h"
@@ -25,12 +23,6 @@ static ACE_TSS<Errno> tss_error;
// Serializes output via cout.
static ACE_SYNCH_MUTEX printf_lock;
-#if defined (ACE_HAS_THREADS)
-typedef ACE_TSS_Guard<ACE_Thread_Mutex> GUARD;
-#else
-typedef ACE_Guard<ACE_Null_Mutex> GUARD;
-#endif /* ACE_HAS_THREADS */
-
extern "C" void
cleanup (void *ptr)
{
@@ -83,27 +75,27 @@ worker (void *c)
"(%t) in worker 1, key = %d, ip = %x\n",
key,
ip));
-
+
{
// tmp is workaround for gcc strict aliasing warning.
void *tmp = reinterpret_cast <void *> (ip);
-
+
if (ACE_Thread::setspecific (key, tmp) == -1)
ACE_ERROR ((LM_ERROR,
"(%t) %p\n",
"ACE_Thread::setspecific"));
-
+
if (ACE_Thread::getspecific (key, &tmp) == -1)
ACE_ERROR ((LM_ERROR,
"(%t) %p\n",
"ACE_Thread::setspecific"));
-
+
if (ACE_Thread::setspecific (key, (void *) 0) == -1)
ACE_ERROR ((LM_ERROR,
"(%t) %p\n",
"ACE_Thread::setspecific"));
}
-
+
delete ip;
if (ACE_Thread::keyfree (key) == -1)
@@ -123,19 +115,15 @@ worker (void *c)
tss_error->flags (ACE_Utils::truncate_cast<int> (count));
{
- ACE_hthread_t handle;
- ACE_Thread::self (handle);
-
// Use the guard to serialize access to printf...
ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, printf_lock, 0);
// Print the thread id portably.
- ACE_OS::printf ("(%t)", handle);
-
- ACE_OS::printf (" errno = %d, lineno = %d, flags = %d\n",
- tss_error->error (),
- tss_error->line (),
- tss_error->flags ());
+ ACE_DEBUG ((LM_DEBUG,
+ "(%t) errno = %d, lineno = %d, flags = %d\n",
+ tss_error->error (),
+ tss_error->line (),
+ tss_error->flags ()));
}
key = ACE_OS::NULL_key;
@@ -152,7 +140,7 @@ worker (void *c)
"(%t) in worker 2, key = %d, ip = %x\n",
key,
ip));
-
+
{
// Tmp is workaround for GCC strict aliasing warning.
void *tmp (reinterpret_cast <void *> (ip));
@@ -161,20 +149,20 @@ worker (void *c)
ACE_ERROR ((LM_ERROR,
"(%t) %p\n",
"ACE_Thread::setspecific"));
-
+
if (ACE_Thread::getspecific (key, &tmp) == -1)
ACE_ERROR ((LM_ERROR,
"(%t) %p\n",
"ACE_Thread::setspecific"));
-
+
if (ACE_Thread::setspecific (key, (void *) 0) == -1)
ACE_ERROR ((LM_ERROR,
"(%t) %p\n",
"ACE_Thread::setspecific"));
}
-
+
delete ip;
-
+
if (ACE_Thread::keyfree (key) == -1)
ACE_ERROR ((LM_ERROR,
"(%t) %p\n",
diff --git a/ACE/examples/Threads/token.cpp b/ACE/examples/Threads/token.cpp
index c3513724cdc..4b9776ff8c6 100644
--- a/ACE/examples/Threads/token.cpp
+++ b/ACE/examples/Threads/token.cpp
@@ -7,7 +7,7 @@
#include "ace/Task.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(Threads, token, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Threads/tss1.cpp b/ACE/examples/Threads/tss1.cpp
index edf1ee37164..5a29db15411 100644
--- a/ACE/examples/Threads/tss1.cpp
+++ b/ACE/examples/Threads/tss1.cpp
@@ -1,31 +1,28 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TSS_Test.cpp
-//
-// = DESCRIPTION
-// This program tests thread specific storage of data. The ACE_TSS
-// wrapper transparently ensures that the objects of this class
-// will be placed in thread-specific storage. All calls on
-// ACE_TSS::operator->() are delegated to the appropriate method
-// in the Errno class. Note that each thread of control has its
-// own unique TSS object.
-//
-// = AUTHOR
-// Detlef Becker <Detlef.Becker@med.siemens.de>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file tss1.cpp
+ *
+ * $Id$
+ *
+ * This program tests thread specific storage of data. The ACE_TSS
+ * wrapper transparently ensures that the objects of this class
+ * will be placed in thread-specific storage. All calls on
+ * ACE_TSS::operator->() are delegated to the appropriate method
+ * in the Errno class. Note that each thread of control has its
+ * own unique TSS object.
+ *
+ *
+ * @author Detlef Becker <Detlef.Becker@med.siemens.de>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/Service_Config.h"
#include "ace/Task.h"
-ACE_RCSID(Threads, tss1, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -42,12 +39,6 @@ int Errno::flags_;
// (Sun C++ 4.2 with -O3 won't link if the following is static.)
ACE_TSS<Errno> TSS_Error;
-#if defined (ACE_HAS_THREADS)
- typedef ACE_TSS_Guard<ACE_Thread_Mutex> GUARD;
-#else
- typedef ACE_Guard<ACE_Null_Mutex> GUARD;
-#endif /* ACE_HAS_THREADS */
-
// Keeps track of whether Tester::close () has started.
// (Sun C++ 4.2 with -O3 won't link if the following is static.)
int close_started = 0;
@@ -62,11 +53,11 @@ public:
virtual int svc (void);
//FUZZ: disable check_for_lack_ACE_OS
+ /// Activate the thread.
virtual int open (void *args = 0);
- // Activate the thread.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int close (u_long args = 0);
- //FUZZ: enable check_for_lack_ACE_OS
};
template <ACE_SYNCH_DECL> int
diff --git a/ACE/examples/Threads/tss2.cpp b/ACE/examples/Threads/tss2.cpp
index 0c7fb9ac3ee..eec0a2a32d5 100644
--- a/ACE/examples/Threads/tss2.cpp
+++ b/ACE/examples/Threads/tss2.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TSS_Test.cpp
-//
-// = DESCRIPTION
-// This program tests various features of ACE_Thread and the
-// thread-specific storage variant of <ACE_Singleton>.
-//
-// = AUTHOR
-// Prashant Jain and Doug Schmidt
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file tss2.cpp
+ *
+ * $Id$
+ *
+ * This program tests various features of ACE_Thread and the
+ * thread-specific storage variant of <ACE_Singleton>.
+ *
+ *
+ * @author Prashant Jain and Doug Schmidt
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/Thread.h"
@@ -25,7 +22,7 @@
#include "TSS_Obj.h"
#include "TSS_Task.h"
-ACE_RCSID(Threads, tss2, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/examples/Threads/wfmo.cpp b/ACE/examples/Threads/wfmo.cpp
index d7336d4e831..50bf7606365 100644
--- a/ACE/examples/Threads/wfmo.cpp
+++ b/ACE/examples/Threads/wfmo.cpp
@@ -12,7 +12,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_main.h"
-ACE_RCSID(Threads, wfmo, "$Id$")
+
#if defined (ACE_WIN32)
diff --git a/ACE/examples/Timer_Queue/Async_Timer_Queue_Test.cpp b/ACE/examples/Timer_Queue/Async_Timer_Queue_Test.cpp
index d139bca0c87..2fc564e95cf 100644
--- a/ACE/examples/Timer_Queue/Async_Timer_Queue_Test.cpp
+++ b/ACE/examples/Timer_Queue/Async_Timer_Queue_Test.cpp
@@ -1,22 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Async_Timer_Queue_Test.cpp
-//
-// = DESCRIPTION
-// This test exercises the <ACE_Asynch_Timer_Queue_Adapter>
-// using an <ACE_Timer_Heap>.
-//
-// = AUTHORS
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Async_Timer_Queue_Test.cpp
+ *
+ * $Id$
+ *
+ * This test exercises the <ACE_Asynch_Timer_Queue_Adapter>
+ * using an <ACE_Timer_Heap>.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_sys_time.h"
#include "ace/Signal.h"
@@ -25,7 +21,7 @@
#include "Async_Timer_Queue_Test.h"
-ACE_RCSID(Timer_Queue, Async_Timer_Queue_Test, "$Id$")
+
// Hook method that is called to handle the expiration of a timer.
int
diff --git a/ACE/examples/Timer_Queue/Async_Timer_Queue_Test.h b/ACE/examples/Timer_Queue/Async_Timer_Queue_Test.h
index 6b166f894c3..e9d7aef22b1 100644
--- a/ACE/examples/Timer_Queue/Async_Timer_Queue_Test.h
+++ b/ACE/examples/Timer_Queue/Async_Timer_Queue_Test.h
@@ -1,23 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Async_Timer_Queue_Test.h
-//
-// = DESCRIPTION
-// This test exercises the <ACE_Asynch_Timer_Queue_Adapter>
-// using an <ACE_Timer_Heap>.
-//
-// = AUTHORS
-// Douglas C. Schmidt and
-// Sergio Flores-Gaitan
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Async_Timer_Queue_Test.h
+ *
+ * $Id$
+ *
+ * This test exercises the <ACE_Asynch_Timer_Queue_Adapter>
+ * using an <ACE_Timer_Heap>.
+ *
+ *
+ * @author Douglas C. Schmidt and Sergio Flores-Gaitan
+ */
+//=============================================================================
+
#ifndef _ASYNC_TIMER_QUEUE_TEST_H_
#define _ASYNC_TIMER_QUEUE_TEST_H_
@@ -34,86 +31,93 @@
#include "Driver.h"
+/**
+ * @class Async_Timer_Handler
+ *
+ * @brief Target of the asynchronous timeout operation.
+ */
class Async_Timer_Handler : public ACE_Event_Handler
{
- // = TITLE
- // Target of the asynchronous timeout operation.
public:
+ /// Callback hook invoked by the <Timer_Queue>.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg);
- // Callback hook invoked by the <Timer_Queue>.
};
+/**
+ * @class Async_Timer_Queue
+ *
+ * @brief Asynchronous Timer Queue Singleton.
+ *
+ * We use this class to avoid global variables and to
+ * consolidate all the Timer Queue processing in one central
+ * place.
+ */
class Async_Timer_Queue
{
- // = TITLE
- // Asynchronous Timer Queue Singleton.
- //
- // = DESCRIPTION
- // We use this class to avoid global variables and to
- // consolidate all the Timer Queue processing in one central
- // place.
public:
typedef int (Async_Timer_Queue::*ACTION) (void *);
+ /// Singleton access point.
static Async_Timer_Queue *instance (void);
- // Singleton access point.
+ /// Schedule a timer to expire <microsecs> in the future.
void schedule (u_int microsecs);
- // Schedule a timer to expire <microsecs> in the future.
+ /// Cancel a timer with <timer_id>.
void cancel (long timer_id);
- // Cancel a timer with <timer_id>.
+ /// Dump the contents of the queue.
void dump (void);
- // Dump the contents of the queue.
+ /// hook method to schedule a timer. Called from
+ /// <Timer_Queue_Test_Driver>
int schedule_timer (void *argument);
- // hook method to schedule a timer. Called from
- // <Timer_Queue_Test_Driver>
+ /// hook method to cancel a timer. Called from
+ /// <Timer_Queue_Test_Driver>
int cancel_timer (void *argument);
- // hook method to cancel a timer. Called from
- // <Timer_Queue_Test_Driver>
+ /// hook method to list timers. Called from
+ /// <Timer_Queue_Test_Driver>
int list_timer (void *argument);
- // hook method to list timers. Called from
- // <Timer_Queue_Test_Driver>
+ /// hook method to exit the timer queue. Called from
+ /// <Timer_Queue_Test_Driver>
int shutdown_timer (void *argument);
- // hook method to exit the timer queue. Called from
- // <Timer_Queue_Test_Driver>
private:
+ /// Private constructor enforces the Singleton.
Async_Timer_Queue (ACE_Sig_Set *);
- // Private constructor enforces the Singleton.
+ /// Pointer to the timer queue.
static Async_Timer_Queue *instance_;
- // Pointer to the timer queue.
+ /// The adapter is instantiated by an <ACE_Timer_Heap>.
ACE_Async_Timer_Queue_Adapter<ACE_Timer_Heap> tq_;
- // The adapter is instantiated by an <ACE_Timer_Heap>.
};
+/**
+ * @class Async_Timer_Queue_Test_Driver
+ *
+ * @brief Async_Timer_Queue_Test_Driver
+ *
+ * This class implements a test driver for the
+ * <Async_Timer_Queue>. Implements a display_menu() method that
+ * prints the options for a user. and init() which initializes
+ * the driver. The rest of the common functionality is in the
+ * parent class <Timer_Queue_Test_Driver>.
+ */
class ACE_Svc_Export Async_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <Async_Timer_Queue *, Async_Timer_Queue, Async_Timer_Queue::ACTION>
{
- // = TITLE
- // Async_Timer_Queue_Test_Driver
- //
- // = DESCRIPTION
- // This class implements a test driver for the
- // <Async_Timer_Queue>. Implements a display_menu() method that
- // prints the options for a user. and init() which initializes
- // the driver. The rest of the common functionality is in the
- // parent class <Timer_Queue_Test_Driver>.
public:
Async_Timer_Queue_Test_Driver (void);
+ /// Print menu of options.
virtual int display_menu (void);
- // Print menu of options.
+ /// Initializes the driver's internal variables inherited from the parent
virtual int init (void);
- // Initializes the driver's internal variables inherited from the parent
};
#endif /* _ASYNC_TIMER_QUEUE_TEST_H_ */
diff --git a/ACE/examples/Timer_Queue/Custom_Handler.cpp b/ACE/examples/Timer_Queue/Custom_Handler.cpp
new file mode 100644
index 00000000000..73d51a449ee
--- /dev/null
+++ b/ACE/examples/Timer_Queue/Custom_Handler.cpp
@@ -0,0 +1,109 @@
+//=============================================================================
+/**
+ * @file Custom_Handler.cpp
+ *
+ * $Id$
+ *
+ * This is a custom event handler to be used with the thread timer queue
+ * adapter, and its appropriate upcall.
+ *
+ *
+ * @author Alon Diamant <diamant.alon@gmail.com
+ */
+//=============================================================================
+
+
+#include "Custom_Handler.h"
+#include "ace/OS_NS_stdio.h"
+
+Custom_Handler::Custom_Handler(const ACE_Time_Value &expiration_time)
+ : expires_ (expiration_time),
+ id_ (0)
+{
+}
+
+Custom_Handler::~Custom_Handler (void)
+{
+}
+
+void
+Custom_Handler::set_id (int id)
+{
+ this->id_ = id;
+}
+
+// This is the method invoked when the Timer expires.
+int
+Custom_Handler::on_timeout (const ACE_Time_Value &current_time,
+ const void *)
+{
+ ACE_Time_Value delay = current_time - this->expires_;
+
+ // No need to protect this printf is always called from a Async safe
+ // point.
+ ACE_OS::printf ("\nexpiring timer %d at %lu.%7.7lu secs\n"
+ "\tthere was a %lu.%7.7lu secs delay\n",
+ this->id_,
+ static_cast<unsigned long> (current_time.sec ()),
+ static_cast<unsigned long> (current_time.usec ()),
+ static_cast<unsigned long> (delay.sec ()),
+ static_cast<unsigned long> (delay.usec ()));
+
+ // Notice this delete is protected.
+ delete this;
+
+ return 0;
+}
+
+int Custom_Handler_Upcall::registration(TTimerQueue& , Custom_Handler* , const void* )
+{
+ ACE_TRACE("registration");
+
+ return 0;
+}
+
+int Custom_Handler_Upcall::preinvoke(TTimerQueue& , Custom_Handler* , const void* , int , const ACE_Time_Value& , const void*& )
+{
+ ACE_TRACE("preinvoke");
+
+ return 0;
+}
+
+int Custom_Handler_Upcall::timeout(TTimerQueue& , Custom_Handler* handler, const void* arg, int , const ACE_Time_Value& cur_time)
+{
+ ACE_TRACE("timeout");
+
+ // Do the actual timer call
+ handler->on_timeout(cur_time, arg);
+
+ return 0;
+}
+
+int Custom_Handler_Upcall::postinvoke(TTimerQueue& , Custom_Handler* , const void* , int , const ACE_Time_Value& , const void* )
+{
+ ACE_TRACE("postinvoke");
+
+ return 0;
+}
+
+int Custom_Handler_Upcall::cancel_type(TTimerQueue& , Custom_Handler* , int , int& )
+{
+ ACE_TRACE("cancel_type");
+
+ return 0;
+}
+
+int Custom_Handler_Upcall::cancel_timer(TTimerQueue& , Custom_Handler* handler, int , int )
+{
+ ACE_TRACE("cancel_timer");
+ delete handler;
+ return 0;
+}
+
+int Custom_Handler_Upcall::deletion(TTimerQueue& , Custom_Handler* handler, const void* )
+{
+ ACE_TRACE("deletion");
+ delete handler;
+ return 0;
+}
+
diff --git a/ACE/examples/Timer_Queue/Custom_Handler.h b/ACE/examples/Timer_Queue/Custom_Handler.h
new file mode 100644
index 00000000000..d8d9a951fb8
--- /dev/null
+++ b/ACE/examples/Timer_Queue/Custom_Handler.h
@@ -0,0 +1,128 @@
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ * @file Custom_Handler.h
+ *
+ * $Id$
+ *
+ * This is a custom event handler to be used with the thread timer queue
+ * adapter, and its appropriate upcall.
+ *
+ *
+ * @author Alon Diamant <diamant.alon@gmail.com>
+ */
+//=============================================================================
+
+
+#ifndef _CUSTOM_HANDLER_H_
+#define _CUSTOM_HANDLER_H_
+
+#include "ace/Timer_Queue.h"
+
+/**
+ * @class Custom_Handler
+ *
+ * @brief Custom event handler for the timer queue timeout events.
+ *
+ * The <on_timeout> hook method prints out the current time,
+ * prints the time when this timer expired and deletes "this".
+ */
+class Custom_Handler
+{
+
+ public:
+
+ Custom_Handler (const ACE_Time_Value &expiration_time);
+
+ virtual ~Custom_Handler (void);
+
+ // Set the custom handler's id
+ void set_id (int id);
+
+ // Call back hook.
+ virtual int on_timeout(const ACE_Time_Value &current_time,
+ const void *arg);
+
+ private:
+
+ // Store the expected time of expiration, it is used to print a nice
+ // message saying how much delay was at the actual expiration time.
+ ACE_Time_Value expires_;
+
+ // Store an "id" for the Handler, which is only use to print better
+ // messages.
+ int id_;
+};
+
+
+/// CWorkItemAndParamTupleUpcall
+///
+/// Implements the Upcall interface used by the ACE_Timer_Queue, specifically for the
+/// IWorkItem interface.
+class Custom_Handler_Upcall
+{
+ public:
+
+ typedef ACE_Timer_Queue_T<Custom_Handler*,
+ Custom_Handler_Upcall,
+ ACE_Null_Mutex> TTimerQueue;
+
+ // Default constructor
+ Custom_Handler_Upcall()
+ {
+ }
+
+ // Destructor.
+ ~Custom_Handler_Upcall()
+ {
+ }
+
+ // This method is called when a timer is registered.
+ int registration(TTimerQueue& timer_queue,
+ Custom_Handler* handler,
+ const void* arg);
+
+ // This method is called before the timer expires.
+ int preinvoke(TTimerQueue& timer_queue,
+ Custom_Handler* handler,
+ const void* arg,
+ int recurring_timer,
+ const ACE_Time_Value& cur_time,
+ const void*& upcall_act);
+
+ // This method is called when the timer expires.
+ int timeout (TTimerQueue& timer_queue,
+ Custom_Handler* handler,
+ const void* arg,
+ int recurring_timer,
+ const ACE_Time_Value& cur_time);
+
+ // This method is called after the timer expires.
+ int postinvoke(TTimerQueue& timer_queue,
+ Custom_Handler* handler,
+ const void* arg,
+ int recurring_timer,
+ const ACE_Time_Value& cur_time,
+ const void* upcall_act);
+
+ // This method is called when a handler is canceled
+ int cancel_type(TTimerQueue& timer_queue,
+ Custom_Handler* handler,
+ int dont_call,
+ int& requires_reference_counting);
+
+ // This method is called when a timer is canceled
+ int cancel_timer(TTimerQueue& timer_queue,
+ Custom_Handler* handler,
+ int dont_call,
+ int requires_reference_counting);
+
+ // This method is called when the timer queue is destroyed and
+ // the timer is still contained in it
+ int deletion(TTimerQueue& timer_queue,
+ Custom_Handler* handler,
+ const void* arg);
+};
+
+#endif
diff --git a/ACE/examples/Timer_Queue/Driver.cpp b/ACE/examples/Timer_Queue/Driver.cpp
index 20327d76dc1..e14ab85e533 100644
--- a/ACE/examples/Timer_Queue/Driver.cpp
+++ b/ACE/examples/Timer_Queue/Driver.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Driver.cpp
-//
-// = DESCRIPTION
-// This code builds an abstraction to factor out common code for
-// the different implementations of the Timer_Queue.
-//
-// = AUTHOR
-// Douglas Schmidt <schmidt@cs.wustl.edu> &&
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Driver.cpp
+ *
+ * $Id$
+ *
+ * This code builds an abstraction to factor out common code for
+ * the different implementations of the Timer_Queue.
+ *
+ *
+ * @author Douglas Schmidt <schmidt@cs.wustl.edu> && Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#if !defined (_DRIVER_CPP_)
#define _DRIVER_CPP_
@@ -26,7 +23,7 @@
#include "ace/Auto_Ptr.h"
#include "Driver.h"
-ACE_RCSID(Timer_Queue, Driver, "$Id$")
+
// constructor
diff --git a/ACE/examples/Timer_Queue/Driver.h b/ACE/examples/Timer_Queue/Driver.h
index 4677b904982..d927e2f60a0 100644
--- a/ACE/examples/Timer_Queue/Driver.h
+++ b/ACE/examples/Timer_Queue/Driver.h
@@ -1,23 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Driver.h
-//
-// = DESCRIPTION
-// This code builds an abstraction to factor out common code for
-// the different implementations of the Timer_Queue.
-//
-// = AUTHORS
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Driver.h
+ *
+ * $Id$
+ *
+ * This code builds an abstraction to factor out common code for
+ * the different implementations of the Timer_Queue.
+ *
+ *
+ * @author Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _DRIVER_H_
#define _DRIVER_H_
@@ -31,99 +28,107 @@
#include "ace/Timer_Heap_T.h"
#include "ace/Timer_Queue_Adapters.h"
+/**
+ * @class Command
+ *
+ * @brief Defines an abstract class that allows us to invoke commands
+ * without knowing anything about the implementation. This class
+ * is used in the <Timer_Queue_Test_Driver> to invoke operations
+ * of the driver.
+ *
+ * This class declares an interface to execute operations,
+ * binding a RECEIVER object with an ACTION. The RECEIVER knows
+ * how to implement the operation. A class can invoke operations
+ * without knowing anything about it, or how it was implemented.
+ */
template <class RECEIVER, class ACTION>
class Command
{
- // = TITLE
- // Defines an abstract class that allows us to invoke commands
- // without knowing anything about the implementation. This class
- // is used in the <Timer_Queue_Test_Driver> to invoke operations
- // of the driver.
- //
- // = DESCRIPTION
- // This class declares an interface to execute operations,
- // binding a RECEIVER object with an ACTION. The RECEIVER knows
- // how to implement the operation. A class can invoke operations
- // without knowing anything about it, or how it was implemented.
public:
+ /// Sets the <receiver_> of the Command to recvr, and the
+ /// <action_> of the Command to <action>.
Command (RECEIVER &recvr, ACTION action);
- // Sets the <receiver_> of the Command to recvr, and the
- // <action_> of the Command to <action>.
virtual ~Command (void);
+ /// Invokes the method <action_> from the object <receiver_>.
virtual int execute (void *arg);
- // Invokes the method <action_> from the object <receiver_>.
private:
+ /// object where the method resides.
RECEIVER &receiver_;
- // object where the method resides.
+ /// method that is going to be invoked.
ACTION action_;
- // method that is going to be invoked.
};
+/**
+ * @class Timer_Queue_Test_Driver
+ *
+ * @brief Defines a class that provides a simmple implementation for
+ * a test driver for timer queues.
+ *
+ * This is the place where the common code to test the different
+ * implementations of the timer queue resides. This class has
+ * the logic for the parse_commands() method, the run_test(),
+ * read_input() and the get_next_request(). Subclasses can
+ * override these methods if there is some logic that is specific
+ * to that implementation.
+ */
template <class TQ, class RECEIVER, class ACTION>
class Timer_Queue_Test_Driver
{
- // = TITLE
- // Defines a class that provides a simmple implementation for
- // a test driver for timer queues.
- //
- // = DESCRIPTION
- // This is the place where the common code to test the different
- // implementations of the timer queue resides. This class has
- // the logic for the parse_commands() method, the run_test(),
- // read_input() and the get_next_request(). Subclasses can
- // override these methods if there is some logic that is specific
- // to that implementation.
public:
+ /// Default destructor
virtual ~Timer_Queue_Test_Driver (void);
- // Default destructor
+ /// Breaks up the input string buffer into pieces and executes
+ /// the appropriate method to handle that operation.
virtual int parse_commands (const char *buf);
- // Breaks up the input string buffer into pieces and executes
- // the appropriate method to handle that operation.
+ /**
+ * This is the main entry point to the test driver. The user
+ * of the class should normally invoke this method.
+ * Returns 0 when successful, or 0 otherwise.
+ */
virtual int run_test (void);
- // This is the main entry point to the test driver. The user
- // of the class should normally invoke this method.
- // Returns 0 when successful, or 0 otherwise.
+ /// This internal method gets the next request from the user.
+ /// Returns -1 when user wants to exit. Returns 0 otherwise.
virtual int get_next_request (void);
- // This internal method gets the next request from the user.
- // Returns -1 when user wants to exit. Returns 0 otherwise.
+ /**
+ * Reads input from the user into the buffer <buf> with a maximum
+ * of <bufsiz> bytes. Returns the amount of bytes actually read
+ * Otherwise, a -1 is returned and errno is set to indicate the error.
+ */
virtual ssize_t read_input (char *buf, size_t bufsiz);
- // Reads input from the user into the buffer <buf> with a maximum
- // of <bufsiz> bytes. Returns the amount of bytes actually read
- // Otherwise, a -1 is returned and errno is set to indicate the error.
// = Template Methods.
+ /// Prints the user interface for the driver to STDOUT.
virtual int display_menu (void)=0;
- // Prints the user interface for the driver to STDOUT.
+ /// Initializes values and operations for the driver.
virtual int init (void)=0;
- // Initializes values and operations for the driver.
protected:
+ /// timer queue
TQ timer_queue_;
- // timer queue
// = Set of <Command>s to be executed.
+ /// schedule timer command
Command<RECEIVER, ACTION> *schedule_cmd_;
- // schedule timer command
+ /// cancel timer command.
Command<RECEIVER, ACTION> *cancel_cmd_;
- // cancel timer command.
+ /// list timers command.
Command<RECEIVER, ACTION> *list_cmd_;
- // list timers command.
+ /// shutdown the driver.
Command<RECEIVER, ACTION> *shutdown_cmd_;
- // shutdown the driver.
};
#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
diff --git a/ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp b/ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp
index 714abed08e7..ba8b86d649d 100644
--- a/ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp
+++ b/ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Reactor_Timer_Queue_Test
-//
-// = DESCRIPTION
-// This example tests the timer queue mechanism of ACE_Reactor.
-//
-// = AUTHOR
-// Nanbor Wang <nw1@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+* @file Reactor_Timer_Queue_Test.cpp
+ *
+ * $Id$
+ *
+ * This example tests the timer queue mechanism of ACE_Reactor.
+ *
+ *
+ * @author Nanbor Wang <nw1@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_sys_time.h"
#include "ace/Thread_Manager.h"
@@ -25,7 +22,7 @@
#include "Driver.h"
#include "Reactor_Timer_Queue_Test.h"
-ACE_RCSID(Timer_Queue, Reactor_Timer_Queue_Test, "$Id$")
+
void
Reactor_Timer_Handler::set_timer_id (long tid)
@@ -34,12 +31,9 @@ Reactor_Timer_Handler::set_timer_id (long tid)
}
int
-Reactor_Timer_Handler::handle_timeout (const ACE_Time_Value &tv,
+Reactor_Timer_Handler::handle_timeout (const ACE_Time_Value &,
const void *)
{
- // Macro to avoid "warning: unused parameter" type warning.
- ACE_UNUSED_ARG (tv);
-
ACE_Time_Value txv = ACE_OS::gettimeofday ();
ACE_DEBUG ((LM_DEBUG,
"\nTimer #%d fired at %d.%06d (%T)!\n",
@@ -105,11 +99,8 @@ Input_Handler::cancel_timer (void *argument)
}
int
-Input_Handler::shutdown_timer (void *argument)
+Input_Handler::shutdown_timer (void *)
{
- // Macro to avoid "warning: unused parameter" type warning.
- ACE_UNUSED_ARG (argument);
-
this->done_ = 1;
ACE_DEBUG ((LM_DEBUG,
"Shutting down event loop\n"));
@@ -117,11 +108,8 @@ Input_Handler::shutdown_timer (void *argument)
}
int
-Input_Handler::list_timer (void *argument)
+Input_Handler::list_timer (void *)
{
- // Macro to avoid "warning: unused parameter" type warning.
- ACE_UNUSED_ARG (argument);
-
ACE_Timer_Queue_Iterator &iter = this->tq_->iter ();
ACE_DEBUG ((LM_DEBUG,
"\n\nTimers in queue:\n"));
diff --git a/ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.h b/ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.h
index 3db20728814..536732b52b8 100644
--- a/ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.h
+++ b/ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.h
@@ -1,24 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Reactor_Timer_Queue_Test.h
-//
-// = DESCRIPTION
-// This code is an implementation of a test driver for a reactor based
-// timer queue.
-//
-// = AUTHORS
-// Nanbor Wang <nw1@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactor_Timer_Queue_Test.h
+ *
+ * $Id$
+ *
+ * This code is an implementation of a test driver for a reactor based
+ * timer queue.
+ *
+ *
+ * @author Nanbor Wang <nw1@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _REACTOR_TIMER_QUEUE_TEST_H_
#define _REACTOR_TIMER_QUEUE_TEST_H_
@@ -38,116 +34,129 @@
class Reactor_Timer_Queue_Test_Driver;
+/**
+ * @class Input_Handler
+ *
+ * @brief Implements the handler to be called for input events. Also has
+ * the logic to handle the different timer queue operations (i.e.,
+ * schedule, cancel, list, shutdown).
+ *
+ * This class handles the reading of user input from stdin. Also
+ * has the logic to handle the commands that are to be invoked in
+ * response to the user input.
+ */
class Input_Handler : public ACE_Event_Handler
{
- // = TITLE
- // Implements the handler to be called for input events. Also has
- // the logic to handle the different timer queue operations (i.e.,
- // schedule, cancel, list, shutdown).
- //
- // = DESCRIPTION
- // This class handles the reading of user input from stdin. Also
- // has the logic to handle the commands that are to be invoked in
- // response to the user input.
public:
typedef int (Input_Handler::*ACTION) (void *);
+ /// Sets <done_> flag to 0, <driver_> to <timer_queue_driver> and
+ /// timer queue <tq_> to <tq>
Input_Handler (ACE_Timer_Queue *tq,
Reactor_Timer_Queue_Test_Driver &timer_queue_driver);
- // Sets <done_> flag to 0, <driver_> to <timer_queue_driver> and
- // timer queue <tq_> to <tq>
+ /// Hook method for the <ACE_Reactor> to call whenever there is input
+ /// ready to be read.
int handle_input (ACE_HANDLE);
- // Hook method for the <ACE_Reactor> to call whenever there is input
- // ready to be read.
+ /**
+ * returns the value for <done_> that indicates whether we are
+ * exiting the program.A value of 0 indicates that we are NOT done,
+ * 1 otherwise.
+ */
int done (void);
- // returns the value for <done_> that indicates whether we are
- // exiting the program.A value of 0 indicates that we are NOT done,
- // 1 otherwise.
// = Hook methods to be called from <Reactor_Timer_Queue_Test_Driver>
+ /// Schedule a timer. The (void *) will be mapped to the delay
+ /// parameter for the timer queue schedule method.
int schedule_timer (void *argument);
- // Schedule a timer. The (void *) will be mapped to the delay
- // parameter for the timer queue schedule method.
+ /// Cancel a timer. The (void *) will be mapped to the ID of the
+ /// timer being cancelled.
int cancel_timer (void *argument);
- // Cancel a timer. The (void *) will be mapped to the ID of the
- // timer being cancelled.
+ /// Dump the timers in the queue. The argument is ignored.
int list_timer (void *argument);
- // Dump the timers in the queue. The argument is ignored.
+ /// Processes the request to exit the timer queue application.
+ /// argument is ignored.
int shutdown_timer (void *argument);
- // Processes the request to exit the timer queue application.
- // argument is ignored.
private:
+ /// Keep a pointer to the timer queue we are using so we can traverse
+ /// the queue.
ACE_Timer_Queue *tq_;
- // Keep a pointer to the timer queue we are using so we can traverse
- // the queue.
+ /// Flag used to close down program.
int done_;
- // Flag used to close down program.
+ /// Test driver. Used to call hook methods that are common code for
+ /// all drivers.
Reactor_Timer_Queue_Test_Driver &driver_;
- // Test driver. Used to call hook methods that are common code for
- // all drivers.
};
+/**
+ * @class Reactor_Timer_Queue_Test_Driver
+ *
+ * @brief Implements a test driver for a reactive timer queue using
+ * <ACE_Reactor>.
+ *
+ * This class implements the logic to test the reactor
+ * implementation of timer queue, using an <ACE_Timer_Heap>.
+ */
class ACE_Svc_Export Reactor_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <ACE_Timer_Heap, Input_Handler, Input_Handler::ACTION>
{
- // = TITLE
- // Implements a test driver for a reactive timer queue using
- // <ACE_Reactor>.
- //
- // = DESCRIPTION
- // This class implements the logic to test the reactor
- // implementation of timer queue, using an <ACE_Timer_Heap>.
public:
+ /**
+ * Sets the input handler <thandler_> with <timer_queue_> from the
+ * <Timer_Queue_Test_Driver> class and a reference to "this", so the
+ * input handler can call hook methods from the driver. Such
+ * methods are the common factored out code from other
+ * implementations of timer queues.
+ */
Reactor_Timer_Queue_Test_Driver (void);
- // Sets the input handler <thandler_> with <timer_queue_> from the
- // <Timer_Queue_Test_Driver> class and a reference to "this", so the
- // input handler can call hook methods from the driver. Such
- // methods are the common factored out code from other
- // implementations of timer queues.
+ /// Default destructor
virtual ~Reactor_Timer_Queue_Test_Driver (void);
- // Default destructor
+ /// Prints the menu of options.
virtual int display_menu (void);
- // Prints the menu of options.
+ /**
+ * Sets the timer queue that the REACTOR will use; registers the
+ * stdin input handler with the REACTOR and sets the <Command>s that
+ * the <Timer_Queue_Test_Driver> will execute().
+ */
virtual int init (void);
- // Sets the timer queue that the REACTOR will use; registers the
- // stdin input handler with the REACTOR and sets the <Command>s that
- // the <Timer_Queue_Test_Driver> will execute().
+ /// Main entry point to the test driver implementation.
virtual int run_test (void);
- // Main entry point to the test driver implementation.
private:
+ /// This is the stdin handler.
Input_Handler thandler_;
- // This is the stdin handler.
};
+/**
+ * @class Reactor_Timer_Handler
+ *
+ * @brief Target of the reactive timeout operation.
+ */
class Reactor_Timer_Handler : public ACE_Event_Handler
{
- // = TITLE
- // Target of the reactive timeout operation.
public:
+ /// Hook method that is called by the reactor when a timer expires.
+ /// It prints the timer ID and the time it expired.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *);
- // Hook method that is called by the reactor when a timer expires.
- // It prints the timer ID and the time it expired.
+ /// Sets the timer id for this handler <tid_> to <tid>
void set_timer_id (long tid);
- // Sets the timer id for this handler <tid_> to <tid>
private:
+ /// timer ID.
long tid_;
- // timer ID.
};
#endif /* _REACTOR_TIMER_QUEUE_TEST_H_ */
diff --git a/ACE/examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.cpp b/ACE/examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.cpp
new file mode 100644
index 00000000000..866164f74fe
--- /dev/null
+++ b/ACE/examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.cpp
@@ -0,0 +1,219 @@
+//=============================================================================
+/**
+ * @file Thread_Timer_Queue_Custom_Handler_Test.cpp
+ *
+ * $Id$
+ *
+ * This test exercises the <ACE_Thread_Timer_Queue_Adapter>
+ * using an <ACE_Timer_Heap>. It also demonstrates using a custom handler for
+ * timer events.
+ *
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu> and Alon Diamant <diamant.alon@gmail.com>
+ */
+//=============================================================================
+
+
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_sys_time.h"
+#include "ace/Task.h"
+#include "ace/Timer_Heap_T.h"
+#include "ace/Timer_Queue_Adapters.h"
+
+#include "Thread_Timer_Queue_Custom_Handler_Test.h"
+
+#include "ace/Condition_T.h"
+#include "ace/Thread_Mutex.h"
+
+Custom_Handler_Input_Task::Custom_Handler_Input_Task (Thread_Timer_Queue *queue,
+ Thread_Timer_Queue_Custom_Handler_Test &timer_queue_driver)
+ : ACE_Task_Base (ACE_Thread_Manager::instance ()),
+ queue_ (queue),
+ usecs_ (ACE_ONE_SECOND_IN_USECS),
+ driver_ (timer_queue_driver)
+{
+}
+
+// Svc method is called from the thread library to read input from the
+// user.
+
+int
+Custom_Handler_Input_Task::svc (void)
+{
+ for (;;)
+ // call back to the driver's implementation on how to read and
+ // parse input.
+ if (this->driver_.get_next_request () == -1)
+ break;
+
+ // we are done.
+ this->queue_->deactivate ();
+ ACE_DEBUG ((LM_DEBUG,
+ "terminating input thread\n"));
+ return 0;
+}
+
+// schedule a new timer. This method will be called from inside the
+// <Timer_Queue_Test_Driver> class. (see Command pattern)
+
+int
+Custom_Handler_Input_Task::add_timer (void *argument)
+{
+ u_long useconds = *reinterpret_cast<int *> (argument);
+ ACE_Time_Value interval (useconds / usecs_,
+ useconds % usecs_);
+ ACE_Time_Value expire_at = ACE_OS::gettimeofday () + interval;
+
+ Custom_Handler *h;
+
+ ACE_NEW_RETURN (h,
+ Custom_Handler (expire_at),
+ -1);
+
+ int id = queue_->schedule (h, 0, expire_at);
+
+ if (id == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "schedule failed"),
+ -1);
+
+ // We store the id into the handler, this is only used to produce
+ // nicer messages.
+ h->set_id (id);
+
+ ACE_OS::printf ("scheduling timer %d\n",
+ id);
+ return 0;
+}
+
+// Cancel a timer. This method will be called from inside the
+// <Timer_Queue_Test_Driver> class. (see Command pattern)
+
+int
+Custom_Handler_Input_Task::cancel_timer (void *argument)
+{
+ return this->queue_->cancel (*reinterpret_cast<int *> (argument));
+}
+
+// Lists the timers in the queue. Ignores the argument. This method
+// will be called from inside the <Timer_Queue_Test_Driver> class.
+// (see Command pattern)
+
+int
+Custom_Handler_Input_Task::list_timer (void *)
+{
+ // Dump the timer queue contents.
+ this->dump ();
+
+ return 0;
+}
+
+// Shutdown the timer queue. Return -1 indicates to the
+// <Timer_Queue_Test_Driver> class that we are done.
+
+int
+Custom_Handler_Input_Task::shutdown_timer (void *)
+{
+#if defined (ACE_LACKS_PTHREAD_CANCEL)
+ // Cancel the thread timer queue task "voluntarily."
+ this->queue_->deactivate ();
+#else
+ // Cancel the thread timer queue task "preemptively."
+ if (ACE_Thread::cancel (this->queue_->thr_id ()) == -1)
+ ACE_ERROR ((LM_ERROR,
+ "%p\n",
+ "cancel"));
+#endif /* ACE_LACKS_PTHREAD_CANCEL */
+
+ // -1 indicates we are shutting down the application.
+ return -1;
+}
+
+void
+Custom_Handler_Input_Task::dump (void)
+{
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, ace_mon, this->queue_->mutex ());
+
+ ACE_DEBUG ((LM_DEBUG,
+ "begin dumping timer queue\n"));
+
+ for (Timer_Heap_Iterator i (*this->queue_->timer_queue ());
+ i.item () != 0;
+ i.next ())
+ i.item ()->dump ();
+
+ ACE_DEBUG ((LM_DEBUG,
+ "end dumping timer queue\n"));
+}
+
+// constructor
+
+Thread_Timer_Queue_Custom_Handler_Test::Thread_Timer_Queue_Custom_Handler_Test (void)
+ : input_task_ (&timer_queue_, *this)
+{
+}
+
+Thread_Timer_Queue_Custom_Handler_Test::~Thread_Timer_Queue_Custom_Handler_Test (void)
+{
+}
+
+int
+Thread_Timer_Queue_Custom_Handler_Test::run_test (void)
+{
+ this->init ();
+ return 0;
+}
+
+int
+Thread_Timer_Queue_Custom_Handler_Test::display_menu (void)
+{
+ static char menu[] =
+ "Usage:\n"
+ "1 <microseconds>: setups a new timer\n"
+ "2 <timerid>: removes a timer\n"
+ "3 : prints timer queue\n"
+ "4 : exit\n";
+
+ ACE_DEBUG ((LM_DEBUG,
+ "%s",
+ menu));
+ return 0;
+}
+
+int
+Thread_Timer_Queue_Custom_Handler_Test::init (void)
+{
+ typedef Command<Custom_Handler_Input_Task, Custom_Handler_Input_Task::ACTION> CMD;
+
+ // initialize the <Command> objects with their corresponding
+ // methods from <Custom_Handler_Input_Task>
+ ACE_NEW_RETURN (schedule_cmd_,
+ CMD (input_task_, &Custom_Handler_Input_Task::add_timer),
+ -1);
+
+ ACE_NEW_RETURN (cancel_cmd_,
+ CMD (input_task_, &Custom_Handler_Input_Task::cancel_timer),
+ -1);
+
+ ACE_NEW_RETURN (list_cmd_,
+ CMD (input_task_, &Custom_Handler_Input_Task::list_timer),
+ -1);
+
+ ACE_NEW_RETURN (shutdown_cmd_,
+ CMD (input_task_, &Custom_Handler_Input_Task::shutdown_timer),
+ -1);
+
+ if (this->input_task_.activate () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "cannot activate input task"),
+ -1);
+ else if (this->timer_queue_.activate () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "cannot activate timer queue"),
+ -1);
+ else if (ACE_Thread_Manager::instance ()->wait () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "wait on Thread_Manager failed"),
+ -1);
+ return 0;
+}
diff --git a/ACE/examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.h b/ACE/examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.h
new file mode 100644
index 00000000000..ad333763100
--- /dev/null
+++ b/ACE/examples/Timer_Queue/Thread_Timer_Queue_Custom_Handler_Test.h
@@ -0,0 +1,126 @@
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ * @file Thread_Timer_Queue_Custom_Handler_Test.h
+ *
+ * $Id$
+ *
+ * This code exercises the <ACE_Thread_Timer_Queue_Adapter> using
+ * an <ACE_Timer_Heap_T>. It also demonstrates using a custom handler for
+ * timer events.
+ *
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu> and Alon Diamant <diamant.alon@gmail.com>
+ */
+//=============================================================================
+
+
+#ifndef _THREAD_TIMER_QUEUE_TEST_H_
+#define _THREAD_TIMER_QUEUE_TEST_H_
+
+#include "ace/Task.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Null_Mutex.h"
+#include "ace/Timer_Heap_T.h"
+#include "ace/Timer_Queue_Adapters.h"
+#include "ace/svc_export.h"
+#include "ace/Condition_Recursive_Thread_Mutex.h"
+#include "Driver.h"
+#include "Custom_Handler.h"
+
+// These typedefs ensure that we use the minimal amount of locking
+// necessary.
+typedef ACE_Timer_Heap_T<Custom_Handler*,
+ Custom_Handler_Upcall,
+ ACE_Null_Mutex>
+ Timer_Heap;
+typedef ACE_Timer_Heap_Iterator_T<Custom_Handler*,
+ Custom_Handler_Upcall,
+ ACE_Null_Mutex>
+ Timer_Heap_Iterator;
+typedef ACE_Thread_Timer_Queue_Adapter<Timer_Heap, Custom_Handler*>
+ Thread_Timer_Queue;
+
+// Forward declaration.
+class Thread_Timer_Queue_Custom_Handler_Test;
+
+/**
+ * @class Custom_Handler_Input_Task
+ *
+ * @brief Read user actions on the Timer_Queue from stdin.
+ *
+ * This class reads user input from stdin; those commands permit
+ * the control of a Timer_Queue, which is dispatched by another
+ * thread.
+ */
+class Custom_Handler_Input_Task : public ACE_Task_Base
+{
+public:
+ typedef int (Custom_Handler_Input_Task::*ACTION) (void *);
+
+ Custom_Handler_Input_Task (Thread_Timer_Queue *queue,
+ Thread_Timer_Queue_Custom_Handler_Test &timer_queue_driver);
+
+ /// This method runs the event loop in the new thread.
+ virtual int svc (void);
+
+ // = Some helper methods.
+
+ /// Add a new timer to expire in <seconds> more.
+ int add_timer (void *);
+
+ /// Cancel timer <id>.
+ int cancel_timer (void *);
+
+ /// List the current scheduled timers.
+ int list_timer (void *);
+
+ /// Shutdown task.
+ int shutdown_timer (void *);
+
+ /// Dump the state of the timer queue.
+ void dump (void);
+
+private:
+ /// The timer queue implementation.
+ Thread_Timer_Queue *queue_;
+
+ /// How many micro seconds are in a second.
+ const int usecs_;
+
+ /// The thread timer queue test driver.
+ Thread_Timer_Queue_Custom_Handler_Test &driver_;
+};
+
+/**
+ * @class Thread_Timer_Queue_Custom_Handler_Test
+ *
+ * @brief Implements an example application that exercises
+ * <Thread_Timer_Queue> timer queue.
+ *
+ * This class implements a simple test driver for the
+ * <Thread_Timer_Queue>. The <display_menu> hook method is
+ * called from the base class to print a menu specific to the
+ * thread implementation of the timer queue.
+ */
+class ACE_Svc_Export Thread_Timer_Queue_Custom_Handler_Test : public Timer_Queue_Test_Driver <Thread_Timer_Queue, Custom_Handler_Input_Task, Custom_Handler_Input_Task::ACTION>
+{
+public:
+ Thread_Timer_Queue_Custom_Handler_Test (void);
+ ~Thread_Timer_Queue_Custom_Handler_Test (void);
+
+ virtual int display_menu (void);
+ virtual int init (void);
+ virtual int run_test (void);
+
+private:
+ /// Subclassed from ACE_Task.
+ Custom_Handler_Input_Task input_task_;
+};
+
+#endif /* _THREAD_TIMER_QUEUE_TEST_H_ */
diff --git a/ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp b/ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp
index d9cf88ff5ee..862b9f94263 100644
--- a/ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp
+++ b/ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp
@@ -1,22 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Thread_Timer_Queue_Test.cpp
-//
-// = DESCRIPTION
-// This test exercises the <ACE_Thread_Timer_Queue_Adapter>
-// using an <ACE_Timer_Heap>.
-//
-// = AUTHORS
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Timer_Queue_Test.cpp
+ *
+ * $Id$
+ *
+ * This test exercises the <ACE_Thread_Timer_Queue_Adapter>
+ * using an <ACE_Timer_Heap>.
+ *
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_sys_time.h"
@@ -29,7 +25,7 @@
#include "ace/Condition_T.h"
#include "ace/Thread_Mutex.h"
-ACE_RCSID(Timer_Queue, Thread_Timer_Queue_Test, "$Id$")
+
// Administrivia methods...
Handler::Handler(const ACE_Time_Value &expiration_time)
@@ -61,10 +57,10 @@ Handler::handle_timeout (const ACE_Time_Value &current_time,
ACE_OS::printf ("\nexpiring timer %d at %lu.%7.7lu secs\n"
"\tthere was a %lu.%7.7lu secs delay\n",
this->id_,
- current_time.sec (),
- current_time.usec (),
- delay.sec (),
- delay.usec ());
+ static_cast<unsigned long> (current_time.sec ()),
+ static_cast<unsigned long> (current_time.usec ()),
+ static_cast<unsigned long> (delay.sec ()),
+ static_cast<unsigned long> (delay.usec ()));
// Notice this delete is protected.
delete this;
return 0;
@@ -145,11 +141,8 @@ Input_Task::cancel_timer (void *argument)
// (see Command pattern)
int
-Input_Task::list_timer (void *argument)
+Input_Task::list_timer (void *)
{
- // Macro to avoid "warning: unused parameter" type warning.
- ACE_UNUSED_ARG (argument);
-
// Dump the timer queue contents.
this->dump ();
@@ -160,11 +153,8 @@ Input_Task::list_timer (void *argument)
// <Timer_Queue_Test_Driver> class that we are done.
int
-Input_Task::shutdown_timer (void *argument)
+Input_Task::shutdown_timer (void *)
{
- // Macro to avoid "warning: unused parameter" type warning.
- ACE_UNUSED_ARG (argument);
-
#if defined (ACE_LACKS_PTHREAD_CANCEL)
// Cancel the thread timer queue task "voluntarily."
this->queue_->deactivate ();
diff --git a/ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.h b/ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.h
index 573df6121f8..f5e9f07d4f6 100644
--- a/ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.h
+++ b/ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.h
@@ -1,24 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// Thread_Timer_Queue_Test.h
-//
-// = DESCRIPTION
-// This code exercises the <ACE_Thread_Timer_Queue_Adapter> using
-// an <ACE_Timer_Heap_T>.
-//
-// = AUTHORS
-// Carlos O'Ryan <coryan@cs.wustl.edu> and
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Timer_Queue_Test.h
+ *
+ * $Id$
+ *
+ * This code exercises the <ACE_Thread_Timer_Queue_Adapter> using
+ * an <ACE_Timer_Heap_T>.
+ *
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu> and Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _THREAD_TIMER_QUEUE_TEST_H_
#define _THREAD_TIMER_QUEUE_TEST_H_
@@ -54,63 +50,67 @@ typedef ACE_Thread_Timer_Queue_Adapter<Timer_Heap>
// Forward declaration.
class Thread_Timer_Queue_Test_Driver;
+/**
+ * @class Input_Task
+ *
+ * @brief Read user actions on the Timer_Queue from stdin.
+ *
+ * This class reads user input from stdin; those commands permit
+ * the control of a Timer_Queue, which is dispatched by another
+ * thread.
+ */
class Input_Task : public ACE_Task_Base
{
- // = TITLE
- // Read user actions on the Timer_Queue from stdin.
- //
- // = DESCRIPTION
- // This class reads user input from stdin; those commands permit
- // the control of a Timer_Queue, which is dispatched by another
- // thread.
public:
typedef int (Input_Task::*ACTION) (void *);
Input_Task (Thread_Timer_Queue *queue,
Thread_Timer_Queue_Test_Driver &timer_queue_driver);
+ /// This method runs the event loop in the new thread.
virtual int svc (void);
- // This method runs the event loop in the new thread.
// = Some helper methods.
+ /// Add a new timer to expire in <seconds> more.
int add_timer (void *);
- // Add a new timer to expire in <seconds> more.
+ /// Cancel timer <id>.
int cancel_timer (void *);
- // Cancel timer <id>.
+ /// List the current scheduled timers.
int list_timer (void *);
- // List the current scheduled timers.
+ /// Shutdown task.
int shutdown_timer (void *);
- // Shutdown task.
+ /// Dump the state of the timer queue.
void dump (void);
- // Dump the state of the timer queue.
private:
+ /// The timer queue implementation.
Thread_Timer_Queue *queue_;
- // The timer queue implementation.
+ /// How many micro seconds are in a second.
const int usecs_;
- // How many micro seconds are in a second.
+ /// The thread timer queue test driver.
Thread_Timer_Queue_Test_Driver &driver_;
- // The thread timer queue test driver.
};
+/**
+ * @class Thread_Timer_Queue_Test_Driver
+ *
+ * @brief Implements an example application that exercises
+ * <Thread_Timer_Queue> timer queue.
+ *
+ * This class implements a simple test driver for the
+ * <Thread_Timer_Queue>. The <display_menu> hook method is
+ * called from the base class to print a menu specific to the
+ * thread implementation of the timer queue.
+ */
class ACE_Svc_Export Thread_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <Thread_Timer_Queue, Input_Task, Input_Task::ACTION>
{
- // = TITLE
- // Implements an example application that exercises
- // <Thread_Timer_Queue> timer queue.
- //
- // = DESCRIPTION
- // This class implements a simple test driver for the
- // <Thread_Timer_Queue>. The <display_menu> hook method is
- // called from the base class to print a menu specific to the
- // thread implementation of the timer queue.
public:
Thread_Timer_Queue_Test_Driver (void);
~Thread_Timer_Queue_Test_Driver (void);
@@ -120,38 +120,40 @@ public:
virtual int run_test (void);
private:
+ /// Subclassed from ACE_Task.
Input_Task input_task_;
- // Subclassed from ACE_Task.
};
+/**
+ * @class Handler
+ *
+ * @brief Event handler for the timer queue timeout events.
+ *
+ * The <handle_timeout> hook method prints out the current time,
+ * prints the time when this timer expired and deletes "this".
+ */
class Handler : public ACE_Event_Handler
{
- // = TITLE
- // Event handler for the timer queue timeout events.
- //
- // = DESCRIPTION
- // The <handle_timeout> hook method prints out the current time,
- // prints the time when this timer expired and deletes "this".
public:
Handler (const ACE_Time_Value &expiration_time);
~Handler (void);
+ /// Store an "id" for the Handler, which is only use to print better
+ /// messages.
void set_id (int id);
- // Store an "id" for the Handler, which is only use to print better
- // messages.
+ /// Call back hook.
virtual int handle_timeout (const ACE_Time_Value &current_time,
const void *arg);
- // Call back hook.
private:
+ /// Store the expected time of expiration, it is used to print a nice
+ /// message saying how much delay was at the actual expiration time.
ACE_Time_Value expires_;
- // Store the expected time of expiration, it is used to print a nice
- // message saying how much delay was at the actual expiration time.
+ /// Store an "id" for the Handler, which is only use to print better
+ /// messages.
int id_;
- // Store an "id" for the Handler, which is only use to print better
- // messages.
};
#endif /* _THREAD_TIMER_QUEUE_TEST_H_ */
diff --git a/ACE/examples/Timer_Queue/Timer_Queue.mpc b/ACE/examples/Timer_Queue/Timer_Queue.mpc
index 04026c0babd..6dac09199a4 100644
--- a/ACE/examples/Timer_Queue/Timer_Queue.mpc
+++ b/ACE/examples/Timer_Queue/Timer_Queue.mpc
@@ -9,6 +9,8 @@ project(*Library) : acelib {
Driver.cpp
Reactor_Timer_Queue_Test.cpp
Thread_Timer_Queue_Test.cpp
+ Thread_Timer_Queue_Custom_Handler_Test.cpp
+ Custom_Handler.cpp
}
}
@@ -38,3 +40,12 @@ project(*Thread) : aceexe {
main_thread.cpp
}
}
+
+project(*Thread_Custom_Handlers) : aceexe {
+ exename = Thread_Custom_Handlers_Timer_Queue_Test
+ after += Timer_Queue_Library
+ libs += tqtd
+ Source_Files {
+ main_thread_custom_handler.cpp
+ }
+}
diff --git a/ACE/examples/Timer_Queue/main_async.cpp b/ACE/examples/Timer_Queue/main_async.cpp
index 8c21c4fcdd2..193028b58e0 100644
--- a/ACE/examples/Timer_Queue/main_async.cpp
+++ b/ACE/examples/Timer_Queue/main_async.cpp
@@ -1,43 +1,25 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// main_async.cpp
-//
-// = DESCRIPTION
-// Implements an asynchronous timer queue.
-// This code exercises the Timer_Queue_Test_Driver class using
-// signals as an asynchronous mechanism to dispatch events.
-//
-// = AUTHORS
-// Douglas Schmidt <schmidt@cs.wustl.edu> &&
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file main_async.cpp
+ *
+ * $Id$
+ *
+ * Implements an asynchronous timer queue.
+ * This code exercises the Timer_Queue_Test_Driver class using
+ * signals as an asynchronous mechanism to dispatch events.
+ *
+ *
+ * @author Douglas Schmidt <schmidt@cs.wustl.edu> && Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
-// The following #pragma is needed to disable a warning that occurs
-// in MSVC 6 due to the overly long debugging symbols generated for
-// the std::auto_ptr<Timer_Queue_Test_Driver<...> > template
-// instance used by some of the methods in this file.
-#ifdef _MSC_VER
-# pragma warning(disable: 4786) /* identifier was truncated to '255'
- characters in the browser
- information */
-#endif /* _MSC_VER */
#include "ace/OS_main.h"
#include "ace/Auto_Ptr.h"
#include "Driver.h"
#include "Async_Timer_Queue_Test.h"
-ACE_RCSID (Timer_Queue,
- main_async,
- "$Id$")
-
typedef Timer_Queue_Test_Driver<Async_Timer_Queue *,
Async_Timer_Queue,
Async_Timer_Queue::ACTION>
diff --git a/ACE/examples/Timer_Queue/main_reactor.cpp b/ACE/examples/Timer_Queue/main_reactor.cpp
index 9ce80093bd9..c1bf74b3245 100644
--- a/ACE/examples/Timer_Queue/main_reactor.cpp
+++ b/ACE/examples/Timer_Queue/main_reactor.cpp
@@ -1,43 +1,25 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// main_reactor.cpp
-//
-// = DESCRIPTION
-// Implements an reactive timer queue.
-// This code exercises the Timer_Queue_Test_Driver class using
-// a reactor.
-//
-// = AUTHORS
-// Douglas Schmidt <schmidt@cs.wustl.edu> &&
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file main_reactor.cpp
+ *
+ * $Id$
+ *
+ * Implements an reactive timer queue.
+ * This code exercises the Timer_Queue_Test_Driver class using
+ * a reactor.
+ *
+ *
+ * @author Douglas Schmidt <schmidt@cs.wustl.edu> && Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
-// The following #pragma is needed to disable a warning that occurs
-// in MSVC 6 due to the overly long debugging symbols generated for
-// the std::auto_ptr<Timer_Queue_Test_Driver<...> > template
-// instance used by some of the methods in this file.
-#ifdef _MSC_VER
-# pragma warning(disable: 4786) /* identifier was truncated to '255'
- characters in the browser
- information */
-#endif /* _MSC_VER */
#include "ace/OS_main.h"
#include "ace/Auto_Ptr.h"
#include "Reactor_Timer_Queue_Test.h"
#include "Driver.h"
-ACE_RCSID (Timer_Queue,
- main_reactor,
- "$Id$")
-
typedef Timer_Queue_Test_Driver <ACE_Timer_Heap,
Input_Handler,
Input_Handler::ACTION>
diff --git a/ACE/examples/Timer_Queue/main_thread.cpp b/ACE/examples/Timer_Queue/main_thread.cpp
index fe3c53a9fd9..8af0d27a511 100644
--- a/ACE/examples/Timer_Queue/main_thread.cpp
+++ b/ACE/examples/Timer_Queue/main_thread.cpp
@@ -1,43 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// main_thread.cpp
-//
-// = DESCRIPTION
-// Implements an threaded timer queue.
-// This code exercises the Timer_Queue_Test_Driver class using
-// threads.
-//
-// = AUTHORS
-// Douglas Schmidt <schmidt@cs.wustl.edu> &&
-// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-//
-// ============================================================================
-
-// The following #pragma is needed to disable a warning that occurs
-// in MSVC 6 due to the overly long debugging symbols generated for
-// the std::auto_ptr<Timer_Queue_Test_Driver<...> > template
-// instance used by some of the methods in this file.
-#ifdef _MSC_VER
-# pragma warning(disable: 4786) /* identifier was truncated to '255'
- characters in the browser
- information */
-#endif /* _MSC_VER */
+
+//=============================================================================
+/**
+ * @file main_thread.cpp
+ *
+ * $Id$
+ *
+ * Implements an threaded timer queue.
+ * This code exercises the Timer_Queue_Test_Driver class using
+ * threads.
+ *
+ *
+ * @author Douglas Schmidt <schmidt@cs.wustl.edu> && Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/Auto_Ptr.h"
#include "Driver.h"
#include "Thread_Timer_Queue_Test.h"
-ACE_RCSID (Timer_Queue,
- main_thread,
- "$Id$")
-
typedef Timer_Queue_Test_Driver<Thread_Timer_Queue,
Input_Task,
Input_Task::ACTION>
diff --git a/ACE/examples/Timer_Queue/main_thread_custom_handler.cpp b/ACE/examples/Timer_Queue/main_thread_custom_handler.cpp
new file mode 100644
index 00000000000..cb4221ac394
--- /dev/null
+++ b/ACE/examples/Timer_Queue/main_thread_custom_handler.cpp
@@ -0,0 +1,40 @@
+//=============================================================================
+/**
+ * @file main_thread_custom_handler.cpp
+ *
+ * $Id$
+ *
+ * Implements a threaded timer queue.
+ * This code exercises the Timer_Queue_Test_Driver class using
+ * threads.
+ * It also uses custom event handlers for timer events.
+ *
+ *
+ * @author Douglas Schmidt <schmidt@cs.wustl.edu> && Sergio Flores-Gaitan <sergio@cs.wustl.edu> && Alon Diamant <diamant.alon@gmail.com>
+ */
+//=============================================================================
+
+
+#include "ace/OS_main.h"
+#include "ace/Auto_Ptr.h"
+#include "Driver.h"
+#include "Thread_Timer_Queue_Custom_Handler_Test.h"
+
+typedef Timer_Queue_Test_Driver<Thread_Timer_Queue,
+ Custom_Handler_Input_Task,
+ Custom_Handler_Input_Task::ACTION>
+ THREAD_TIMER_QUEUE_TEST_DRIVER;
+
+int
+ACE_TMAIN (int, ACE_TCHAR *[])
+{
+ // Auto ptr ensures that the driver memory is released
+ // automatically.
+ THREAD_TIMER_QUEUE_TEST_DRIVER *tqtd;
+ ACE_NEW_RETURN (tqtd, Thread_Timer_Queue_Custom_Handler_Test, -1);
+
+ auto_ptr <THREAD_TIMER_QUEUE_TEST_DRIVER> driver (tqtd);
+
+ return driver->run_test ();
+}
+
diff --git a/ACE/examples/Web_Crawler/Command_Processor.cpp b/ACE/examples/Web_Crawler/Command_Processor.cpp
index dafdd5e7ff0..ae03d574184 100644
--- a/ACE/examples/Web_Crawler/Command_Processor.cpp
+++ b/ACE/examples/Web_Crawler/Command_Processor.cpp
@@ -7,7 +7,7 @@
#include "Command_Processor.h"
#include "URL_Visitor.h"
-ACE_RCSID(Web_Crawler, Command_Processor, "$Id$")
+
Command::~Command (void)
{
diff --git a/ACE/examples/Web_Crawler/Command_Processor.h b/ACE/examples/Web_Crawler/Command_Processor.h
index 93c36ae4524..43b2118329f 100644
--- a/ACE/examples/Web_Crawler/Command_Processor.h
+++ b/ACE/examples/Web_Crawler/Command_Processor.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// Command_Processor.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Command_Processor.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _COMMAND_PROCESSOR_H
#define _COMMAND_PROCESSOR_H
@@ -27,65 +24,71 @@
// Forward decl.
class URL;
+/**
+ * @class Command
+ *
+ * @brief Abstract base class for a command.
+ *
+ * Each command is executed by a <Command_Processor>.
+ */
class Command
{
- // = TITLE
- // Abstract base class for a command.
- //
- // = DESCRIPTION
- // Each command is executed by a <Command_Processor>.
public:
+ /// Virtual destructor.
virtual ~Command (void);
- // Virtual destructor.
+ /// This is the entry point to execute the command.
virtual int execute (void) = 0;
- // This is the entry point to execute the command.
virtual int destroy (void) = 0;
};
+/**
+ * @class URL_Command
+ *
+ * @brief Defines an API for executing a command on a URL.
+ *
+ * Each command is executed by a <Command_Processor>.
+ */
class URL_Command : public Command
{
- // = TITLE
- // Defines an API for executing a command on a URL.
- //
- // = DESCRIPTION
- // Each command is executed by a <Command_Processor>.
public:
+ /// Constructor.
URL_Command (URL *);
- // Constructor.
-
+
+ /// Execute the URL command.
virtual int execute (void);
- // Execute the URL command.
+ /// Commit suicide.
int destroy (void);
- // Commit suicide.
private:
+ /// Pointer to the URL.
URL *url_;
- // Pointer to the URL.
};
+/**
+ * @class Command_Processor
+ *
+ * @brief Execute commands that are passed to it.
+ *
+ * This class implements the Command Processor pattern.
+ */
class Command_Processor
{
- // = TITLE
- // Execute commands that are passed to it.
- //
- // = DESCRIPTION
- // This class implements the Command Processor pattern.
public:
Command_Processor (void);
+ /// Insert a new <Command> into the <Command_Processor>'s queue.
int insert (Command *);
- // Insert a new <Command> into the <Command_Processor>'s queue.
+ /// Execute all the <Commands> in the queue.
int execute (void);
- // Execute all the <Commands> in the queue.
+ /// Destroy the <Command_Processor>.
int destroy (void);
- // Destroy the <Command_Processor>.
protected:
+ /// Ensure dynamic allocation.
~Command_Processor (void);
- // Ensure dynamic allocation.
private:
// @@ You fill in here...
diff --git a/ACE/examples/Web_Crawler/HTTP_URL.cpp b/ACE/examples/Web_Crawler/HTTP_URL.cpp
index 44ceea324d4..c5b458005d7 100644
--- a/ACE/examples/Web_Crawler/HTTP_URL.cpp
+++ b/ACE/examples/Web_Crawler/HTTP_URL.cpp
@@ -7,7 +7,7 @@
#include "Options.h"
#include "HTTP_URL.h"
-ACE_RCSID(Web_Crawler, HTTP_URL, "$Id$")
+
const ACE_URL_Addr &
HTTP_URL::url_addr (void) const
diff --git a/ACE/examples/Web_Crawler/HTTP_URL.h b/ACE/examples/Web_Crawler/HTTP_URL.h
index a926bb47938..667dd1bb725 100644
--- a/ACE/examples/Web_Crawler/HTTP_URL.h
+++ b/ACE/examples/Web_Crawler/HTTP_URL.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// HTTP_URL.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file HTTP_URL.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _HTTP_URL_H
#define _HTTP_URL_H
@@ -25,40 +22,46 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class HTTP_URL
+ *
+ * @brief An ADT for an HTTP URL.
+ *
+ * This class plays the "element" role in the Visitor pattern.
+ */
class HTTP_URL : public URL
{
- // = TITLE
- // An ADT for an HTTP URL.
- //
- // = DESCRIPTION
- // This class plays the "element" role in the Visitor pattern.
public:
+ /**
+ * The <url_addr> is the URL that we're going to be visiting. We
+ * also keep track of the containing page, if any, which is used to
+ * print out more meaningful messages.
+ */
HTTP_URL (const ACE_URL_Addr &url_addr,
HTTP_URL *containing_page = 0);
- // The <url_addr> is the URL that we're going to be visiting. We
- // also keep track of the containing page, if any, which is used to
- // print out more meaningful messages.
+ /**
+ * Accept the visitor, which will then perform a particular
+ * visitation strategy on the URL. This method is part of the
+ * Visitor pattern.
+ */
virtual int accept (URL_Visitor *visitor);
- // Accept the visitor, which will then perform a particular
- // visitation strategy on the URL. This method is part of the
- // Visitor pattern.
+ /// Send a <GET> command to fetch the contents in the URI from the
+ /// server.
virtual ssize_t send_request (void);
- // Send a <GET> command to fetch the contents in the URI from the
- // server.
-
+
+ /// Returns the URL that we represent.
virtual const ACE_URL_Addr &url_addr (void) const;
- // Returns the URL that we represent.
+ /// Commit suicide
int destroy (void);
- // Commit suicide
private:
+ /// Address of the URL we're connected to.
ACE_URL_Addr url_addr_;
- // Address of the URL we're connected to.
+ /// Page that contained us.
HTTP_URL *containing_page_;
- // Page that contained us.
};
#endif /* _HTTP_URL_H */
diff --git a/ACE/examples/Web_Crawler/Iterators.cpp b/ACE/examples/Web_Crawler/Iterators.cpp
index a79a30c1eb1..2f0da8f1c73 100644
--- a/ACE/examples/Web_Crawler/Iterators.cpp
+++ b/ACE/examples/Web_Crawler/Iterators.cpp
@@ -4,7 +4,7 @@
#include "Options.h"
#include "Iterators.h"
-ACE_RCSID(Web_Crawler, Iterators, "$Id$")
+
URL_Iterator::~URL_Iterator (void)
{
@@ -53,7 +53,7 @@ HTML_Body_Iterator::next (ACE_CString &url)
int start_index =
ACE_Utils::truncate_cast<int> (
buffer.find ('\"', href_index));
-
+
if (start_index <= 0)
break;
@@ -62,7 +62,7 @@ HTML_Body_Iterator::next (ACE_CString &url)
int end_index =
ACE_Utils::truncate_cast<int> (
buffer.find ('\"', start_index + 1));
-
+
if (end_index <= 0)
break;
diff --git a/ACE/examples/Web_Crawler/Iterators.h b/ACE/examples/Web_Crawler/Iterators.h
index b5d267f7afb..27b7ae46052 100644
--- a/ACE/examples/Web_Crawler/Iterators.h
+++ b/ACE/examples/Web_Crawler/Iterators.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// Iterators.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Iterators.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _ITERATORS_H
#define _ITERATORS_H
@@ -23,95 +20,112 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class URL_Iterator
+ *
+ * @brief An abstract base class that defines an iterator.
+ *
+ * Subclasses of this base class can define what strings
+ * to return from <next>. This class decouples higher-level
+ * software from the details of whatever type of URL header or
+ * body we're iterating over.
+ */
class URL_Iterator
{
- // = TITLE
- // An abstract base class that defines an iterator.
- //
- // = DESCRIPTION
- // Subclasses of this base class can define what strings
- // to return from <next>. This class decouples higher-level
- // software from the details of whatever type of URL header or
- // body we're iterating over.
public:
// = Initialization and termination methods.
+ /// "virtual" destructor.
virtual int destroy (void);
- // "virtual" destructor.
// = Iterator methods.
+ /// Pass back the next <string> that hasn't been seen yet. Returns 0
+ /// when all items have been seen, else 1.
virtual int next (ACE_CString &string) = 0;
- // Pass back the next <string> that hasn't been seen yet. Returns 0
- // when all items have been seen, else 1.
protected:
+ /// C++ destructor.
virtual ~URL_Iterator (void);
- // C++ destructor.
};
+/**
+ * @class HTML_Body_Iterator
+ *
+ * @brief An iterator that returns URLs embedded in HTML files.
+ */
class HTML_Body_Iterator : public URL_Iterator
{
- // = TITLE
- // An iterator that returns URLs embedded in HTML files.
public:
// = Initialization and termination methods.
+ /// Constructor.
HTML_Body_Iterator (URL &url);
- // Constructor.
// = Iterator methods.
+ /**
+ * Pass back the next <url> that hasn't been seen in the
+ * memory-mapped file. Returns 0 when all items have been seen,
+ * else 1.
+ */
virtual int next (ACE_CString &url);
- // Pass back the next <url> that hasn't been seen in the
- // memory-mapped file. Returns 0 when all items have been seen,
- // else 1.
private:
+ /// HTTP URL that we're iterating over.
URL &url_;
- // HTTP URL that we're iterating over.
};
+/**
+ * @class HTTP_Header_Iterator
+ *
+ * @brief An iterator that iterates over the HTTP header.
+ */
class HTTP_Header_Iterator : public URL_Iterator
{
- // = TITLE
- // An iterator that iterates over the HTTP header.
public:
// = Initialization and termination methods.
+ /// Constructor.
HTTP_Header_Iterator (URL &url);
- // Constructor.
// = Iterator methods.
+ /**
+ * Pass back the next <line> that hasn't been seen in the
+ * memory-mapped file header. Returns 0 when we've reached the end
+ * of the header. seen, else 1.
+ */
virtual int next (ACE_CString &line);
- // Pass back the next <line> that hasn't been seen in the
- // memory-mapped file header. Returns 0 when we've reached the end
- // of the header. seen, else 1.
private:
+ /// HTTP URL that we're iterating over.
URL &url_;
- // HTTP URL that we're iterating over.
+ /// We've found the end of the header, which means this iterator is
+ /// finished.
int end_of_header_;
- // We've found the end of the header, which means this iterator is
- // finished.
};
+/**
+ * @class URL_Download_Iterator
+ *
+ * @brief An iterator that iterates over the contents of an entire URL,
+ * i.e., both header and body, and returns it in <BUFSIZ>
+ * <buffer>s.
+ */
class URL_Download_Iterator : public URL_Iterator
{
- // = TITLE
- // An iterator that iterates over the contents of an entire URL,
- // i.e., both header and body, and returns it in <BUFSIZ>
- // <buffer>s.
public:
// = Initialization and termination methods.
+ /// Constructor.
URL_Download_Iterator (URL &url);
- // Constructor.
// = Iterator methods.
+ /**
+ * Pass back the next <buffer> data from the stream, where
+ * <buffer.size> <= <BUFSIZ> . Returns 0 when we've reached the end
+ * of the header, else 1.
+ */
virtual int next (ACE_CString &buffer);
- // Pass back the next <buffer> data from the stream, where
- // <buffer.size> <= <BUFSIZ> . Returns 0 when we've reached the end
- // of the header, else 1.
private:
+ /// HTTP URL that we're iterating over.
URL &url_;
- // HTTP URL that we're iterating over.
};
#endif /* _ITERATORS_H */
diff --git a/ACE/examples/Web_Crawler/Mem_Map_Stream.cpp b/ACE/examples/Web_Crawler/Mem_Map_Stream.cpp
index 82e48b4d7e7..b2c345dcbc4 100644
--- a/ACE/examples/Web_Crawler/Mem_Map_Stream.cpp
+++ b/ACE/examples/Web_Crawler/Mem_Map_Stream.cpp
@@ -6,7 +6,7 @@
#include "Options.h"
#include "Mem_Map_Stream.h"
-ACE_RCSID(Web_Crawler, Mem_Map_Stream, "$Id$")
+
ACE_SOCK_Stream &
Mem_Map_Stream::stream (void)
@@ -69,7 +69,7 @@ Mem_Map_Stream::recv (size_t &len)
if (this->eof () && this->grow_file_and_remap () == -1)
return 0;
-
+
const char *s = this->recv_pos_;
ACE_OFF_T olen = static_cast <ACE_OFF_T> (len);
this->seek (olen, SEEK_CUR);
@@ -84,7 +84,7 @@ Mem_Map_Stream::recv_len (void) const
}
const char *
-Mem_Map_Stream::peek_str (size_t offset,
+Mem_Map_Stream::peek_str (size_t offset,
size_t size)
{
// We will iterate if the size of <offset> is large.
@@ -128,7 +128,7 @@ Mem_Map_Stream::seek (ACE_OFF_T offset, int whence)
this->recv_pos_ - reinterpret_cast<char *> (this->mem_map_.addr ()));
}
-Mem_Map_Stream::Svc_Handler *
+Mem_Map_Stream::Svc_Handler *
Mem_Map_Stream::svc_handler (void)
{
return this->svc_handler_;
@@ -139,9 +139,9 @@ int
Mem_Map_Stream::open (STRAT_CONNECTOR *connector,
const ACE_INET_Addr &addr)
{
- svc_handler_ = 0;
+ svc_handler_ = 0;
- // Connect to the server at <addr>. If the handler has to be
+ // Connect to the server at <addr>. If the handler has to be
// connected to the server again, the Caching strategy takes care
// and uses the same connection.
if (connector->connect (svc_handler_,
@@ -178,7 +178,7 @@ Mem_Map_Stream::open (STRAT_CONNECTOR *connector,
#endif
// Initialize all the position pointers to 0.
this->rewind ();
-
+
return 0;
}
@@ -190,7 +190,7 @@ Mem_Map_Stream::grow_file_and_remap (void)
// Copy the next chunk of bytes from the socket into the temporary
// file.
ACE_Time_Value tv (*OPTIONS::instance ()->timeout ());
-
+
ssize_t n = this->svc_handler_->peer ().recv_n (buf,
sizeof buf,
0,
diff --git a/ACE/examples/Web_Crawler/Mem_Map_Stream.h b/ACE/examples/Web_Crawler/Mem_Map_Stream.h
index b7aa58c85f0..da3e1c45b47 100644
--- a/ACE/examples/Web_Crawler/Mem_Map_Stream.h
+++ b/ACE/examples/Web_Crawler/Mem_Map_Stream.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// Mem_Map_Stream.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Mem_Map_Stream.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _MEM_MAP_STREAM_H
#define _MEM_MAP_STREAM_H
@@ -31,31 +28,30 @@
#include "ace/Svc_Handler.h"
#include "ace/Strategies_T.h"
+/**
+ * @class Mem_Map_Stream
+ *
+ * @brief Provides a memory-mapped stream abstraction to simplify parsing
+ * of tokens.
+ *
+ * This class makes it possible to treat an connection as a stream
+ * of bytes, similar to the C library stdio streams. The contents
+ * of the connection are buffered incrementally in a memory-mapped
+ * file. This class maintains pointers to two positions in the
+ * stream:
+ * 1. The <recv> position, which keeps track of the beginning of a
+ * token that is in the stream.
+ * 2. The <get> position, which moves along character-by-character
+ * until the end of the token is reached.
+ * Once a token has been located, it can be extracted from the
+ * stream by calling the <recv>. The length of the token, i.e.,
+ * the <recv_len>, is the length in bytes between the <get>
+ * position and the <recv> position. Once the token has been
+ * extracted, the <recv> and <get> positions can be updated by the
+ * <seek> method.
+ */
class Mem_Map_Stream
{
- // = TITLE
- // Provides a memory-mapped stream abstraction to simplify parsing
- // of tokens.
- //
- // = DESCRIPTION
- // This class makes it possible to treat an connection as a stream
- // of bytes, similar to the C library stdio streams. The contents
- // of the connection are buffered incrementally in a memory-mapped
- // file. This class maintains pointers to two positions in the
- // stream:
- //
- // 1. The <recv> position, which keeps track of the beginning of a
- // token that is in the stream.
- //
- // 2. The <get> position, which moves along character-by-character
- // until the end of the token is reached.
- //
- // Once a token has been located, it can be extracted from the
- // stream by calling the <recv>. The length of the token, i.e.,
- // the <recv_len>, is the length in bytes between the <get>
- // position and the <recv> position. Once the token has been
- // extracted, the <recv> and <get> positions can be updated by the
- // <seek> method.
public:
typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> Svc_Handler;
@@ -66,77 +62,89 @@ public:
// Mem_Map_Stream (void);
// constructor added:KIRTHIKA
+ /// Initialize this object.
virtual int open (STRAT_CONNECTOR *connector,
const ACE_INET_Addr &);
- // Initialize this object.
+ /// Destructor.
virtual ~Mem_Map_Stream (void);
- // Destructor.
// = Accessor.
+ /// Returns the underlying <ACE_SOCK_Stream>.
ACE_SOCK_Stream &stream (void);
- // Returns the underlying <ACE_SOCK_Stream>.
// = I/O methods.
+ /// Send <size> bytes in <buf> to the connected peer. This is a
+ /// completely unbuffered call.
virtual ssize_t send_n (const void *buf,
size_t size,
ACE_Time_Value *tv = 0);
- // Send <size> bytes in <buf> to the connected peer. This is a
- // completely unbuffered call.
+ /**
+ * Return the next character in the stream and advance the <get>
+ * position. Returns EOF when the <get> position reaches the end of
+ * the HTTP stream.
+ */
virtual int get_char (void);
- // Return the next character in the stream and advance the <get>
- // position. Returns EOF when the <get> position reaches the end of
- // the HTTP stream.
+ /**
+ * Returns a pointer to array of at most <len> characters starting
+ * at the <recv> position. If the <recv> position + <len> extends
+ * past the EOF then <len> is set to the number of characters
+ * between the <recv> position and the EOF and both the <get> and
+ * <recv> positions are advanced by <len>. Returns 0 if the <recv>
+ * position is at the EOF.
+ */
virtual const char *recv (size_t &len);
- // Returns a pointer to array of at most <len> characters starting
- // at the <recv> position. If the <recv> position + <len> extends
- // past the EOF then <len> is set to the number of characters
- // between the <recv> position and the EOF and both the <get> and
- // <recv> positions are advanced by <len>. Returns 0 if the <recv>
- // position is at the EOF.
+ /// Returns a pointer to array of characters starting at the <recv>
+ /// position.
virtual const char *recv (void) const;
- // Returns a pointer to array of characters starting at the <recv>
- // position.
+ /// Returns the length in bytes between the <get> position and the
+ /// <recv> position.
virtual size_t recv_len (void) const;
- // Returns the length in bytes between the <get> position and the
- // <recv> position.
+ /**
+ * Resets the <get> and <recv> positions to the beginning of the
+ * stream. This works since all the data has been cached in the
+ * memory-mapped backing store.
+ */
virtual int rewind (void);
- // Resets the <get> and <recv> positions to the beginning of the
- // stream. This works since all the data has been cached in the
- // memory-mapped backing store.
+ /**
+ * Returns the nth character <offset> from the <get> position in the
+ * stream without advancing the <get> position. Automatically
+ * extends the backing store if necessary. Returns EOF if <offset>
+ * is past the end of the stream.
+ */
virtual int peek_char (size_t offset);
- // Returns the nth character <offset> from the <get> position in the
- // stream without advancing the <get> position. Automatically
- // extends the backing store if necessary. Returns EOF if <offset>
- // is past the end of the stream.
+ /**
+ * Return a pointer to an array of <size> characters starting at
+ * <offset> characters from the <get> position in the stream without
+ * advancing the <get> position. Automatically extends the backing
+ * store if necessary. Returns 0 if <offset> or <offset + size> is
+ * past the end of the stream.
+ */
virtual const char *peek_str (size_t offset, size_t size);
- // Return a pointer to an array of <size> characters starting at
- // <offset> characters from the <get> position in the stream without
- // advancing the <get> position. Automatically extends the backing
- // store if necessary. Returns 0 if <offset> or <offset + size> is
- // past the end of the stream.
+ /**
+ * Sets the <get> and <recv> positions as follows:
+ * o If <whence> is <SEEK_SET>, the positions are set to <offset>
+ * bytes from the start of the stream.
+ *
+ * o If <whence> is <SEEK_CUR>, the positions are set to the
+ * current <get> position plus <offset>.
+ *
+ * o If <whence> is <SEEK_END>, the positions are set to the size
+ * of the stream plus <offset>.
+ */
virtual ACE_OFF_T seek (ACE_OFF_T offset, int whence = SEEK_CUR);
- // Sets the <get> and <recv> positions as follows:
- // o If <whence> is <SEEK_SET>, the positions are set to <offset>
- // bytes from the start of the stream.
- //
- // o If <whence> is <SEEK_CUR>, the positions are set to the
- // current <get> position plus <offset>.
- //
- // o If <whence> is <SEEK_END>, the positions are set to the size
- // of the stream plus <offset>.
+ /// Returns 1 if we're at the end of the HTTP stream, else 0.
virtual int eof (void) const;
- // Returns 1 if we're at the end of the HTTP stream, else 0.
/*
@@ -152,37 +160,41 @@ public:
Svc_Handler *svc_handler (void);
private:
+ /**
+ * Grow the file by reading another chunk from the HTTP socket and
+ * extend the mapping to cover this chunk. Returns -1 on failure or
+ * EOF, else 0.
+ */
int grow_file_and_remap (void);
- // Grow the file by reading another chunk from the HTTP socket and
- // extend the mapping to cover this chunk. Returns -1 on failure or
- // EOF, else 0.
//ACE_SOCK_Stream stream_;
+ /**
+ * Connection to peer. The granularity is at the Svc_Handler level.
+ * The Svc_Handler has an SOCK_Stream.
+ * Configure the Strategy Connector with a strategy that caches
+ * connection.
+ */
Svc_Handler *svc_handler_;
- // Connection to peer. The granularity is at the Svc_Handler level.
- // The Svc_Handler has an SOCK_Stream.
/*
NULL_CREATION_STRATEGY creation_strategy_;
NULL_ACTIVATION_STRATEGY activation_strategy_;
- // Configure the Strategy Connector with a strategy that caches
- // connection.
CACHED_CONNECT_STRATEGY caching_connect_strategy_;
STRAT_CONNECTOR *strat_connector_; */
+ /// Memory-mapped file that we're iterating over.
ACE_Mem_Map mem_map_;
- // Memory-mapped file that we're iterating over.
+ /// Pointer to the address where the next <recv> method will start.
char *recv_pos_;
- // Pointer to the address where the next <recv> method will start.
+ /// Pointer to the address where the next <get_char> method will
+ /// start.
char *get_pos_;
- // Pointer to the address where the next <get_char> method will
- // start.
+ /// Address at the end of the file mapping.
char *end_of_mapping_plus1_;
- // Address at the end of the file mapping.
};
diff --git a/ACE/examples/Web_Crawler/Options.cpp b/ACE/examples/Web_Crawler/Options.cpp
index d999e841d66..faedf9a660d 100644
--- a/ACE/examples/Web_Crawler/Options.cpp
+++ b/ACE/examples/Web_Crawler/Options.cpp
@@ -6,9 +6,9 @@
#include "Options.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(Web_Crawler, Options, "$Id$")
-int
+
+int
Options::parse_args (int argc, ACE_TCHAR *argv[])
{
//FUZZ: disable check_for_lack_ACE_OS
@@ -26,7 +26,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
this->verbose_ = 0;
this->order_ = ACE_TEXT ("FIFO");
this->port_no_ = ACE_DEFAULT_HTTP_PORT;
-
+
// The default is to make this limit as large as possible.
this->handle_limit_ = -1;
@@ -97,7 +97,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
return 0;
}
-int
+int
Options::port_no (void) const
{
return this->port_no_;
@@ -174,7 +174,7 @@ Options::visitor (URL_Visitor *v)
this->visitor_ = v;
}
-int
+int
Options::handle_limit (void)
{
return this->handle_limit_;
diff --git a/ACE/examples/Web_Crawler/Options.h b/ACE/examples/Web_Crawler/Options.h
index ef5f2efd40c..73f24f8d810 100644
--- a/ACE/examples/Web_Crawler/Options.h
+++ b/ACE/examples/Web_Crawler/Options.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Options.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _OPTIONS_H
#define _OPTIONS_H
@@ -29,46 +26,48 @@
class Command_Processor;
class URL_Visitor;
+/**
+ * @class Options
+ *
+ * @brief Maintains the global options.
+ *
+ * This class is converted into a Singleton by the
+ * <ACE_Singleton> template.
+ */
class Options
{
- // = TITLE
- // Maintains the global options.
- //
- // = DESCRIPTION
- // This class is converted into a Singleton by the
- // <ACE_Singleton> template.
public:
+ /// Parse the command-line arguments and initialize the options.
int parse_args (int argc, ACE_TCHAR *argv[]);
- // Parse the command-line arguments and initialize the options.
+ /// If non-0 and the link is an HTML file then recursively check all
+ /// links that are embedded in the body of file.
int recurse (void) const;
- // If non-0 and the link is an HTML file then recursively check all
- // links that are embedded in the body of file.
+ /// Return the hostname of the initial Web server.
const ACE_TCHAR *hostname (void) const;
- // Return the hostname of the initial Web server.
+ /// Return the initial URI.
const ACE_TCHAR *path_name (void) const;
- // Return the initial URI.
+ /// String used to filter out which URLs to validate.
const ACE_TCHAR *url_filter (void) const;
- // String used to filter out which URLs to validate.
+ /// Are we debugging?
int debug (void) const;
- // Are we debugging?
+ /// Are we being verbose?
int verbose (void) const;
- // Are we being verbose?
+ /// Which order? LIFO|FIFO??
const ACE_TCHAR *order (void) const;
- // Which order? LIFO|FIFO??
+ /// Port #
int port_no (void) const;
- // Port #
+ /// Return the timeout used to prevent hanging on <recv> and
+ /// <connect> calls to broken servers.
const ACE_Time_Value *timeout (void) const;
- // Return the timeout used to prevent hanging on <recv> and
- // <connect> calls to broken servers.
// = Get/set the <Command_Processor>.
Command_Processor *command_processor (void) const;
@@ -80,45 +79,45 @@ public:
// Get the handle_limit.
int handle_limit (void);
-private:
+private:
+ /// Are we recursving.
int recurse_;
- // Are we recursving.
+ /// Initial Web server name.
const ACE_TCHAR *hostname_;
- // Initial Web server name.
+ /// Initial URI name.
const ACE_TCHAR *uri_;
- // Initial URI name.
+ /// Are we debugging?
int debug_;
- // Are we debugging?
+ /// Are we being verbose?
int verbose_;
- // Are we being verbose?
+ /// Whether the URLs are traversed in FIFO or LIFO order.
const ACE_TCHAR *order_;
- // Whether the URLs are traversed in FIFO or LIFO order.
+ /// Timeout on <recv> and <connect> to broken Web servers.
ACE_Time_Value timeout_;
- // Timeout on <recv> and <connect> to broken Web servers.
+ /// String used to filter out which URLs to validate.
const ACE_TCHAR *url_filter_;
- // String used to filter out which URLs to validate.
+ /// Pointer to the Command_Processor.
Command_Processor *command_processor_;
- // Pointer to the Command_Processor.
+ /// Pointer to the <URL_Visitor>.
URL_Visitor *visitor_;
- // Pointer to the <URL_Visitor>.
+ /// Port no.
int port_no_;
- // Port no.
-
+
+ /// The limit of the number of descriptors to be given for this process.
int handle_limit_;
- // The limit of the number of descriptors to be given for this process.
};
-// Typedef an Options Singleton.
+// Typedef an Options Singleton.
typedef ACE_Singleton <Options, ACE_Null_Mutex> OPTIONS;
#endif /* _OPTIONS_H */
diff --git a/ACE/examples/Web_Crawler/URL.cpp b/ACE/examples/Web_Crawler/URL.cpp
index ce52ed892ad..3df8b54a248 100644
--- a/ACE/examples/Web_Crawler/URL.cpp
+++ b/ACE/examples/Web_Crawler/URL.cpp
@@ -2,7 +2,7 @@
#include "URL.h"
-ACE_RCSID(Web_Crawler, URL, "$Id$")
+
Mem_Map_Stream &
URL::stream (void)
@@ -20,7 +20,7 @@ URL::reply_status (void)
return this->reply_status_;
}
-void
+void
URL::reply_status (const URL_Status &rs)
{
this->reply_status_ = rs;
@@ -32,7 +32,7 @@ URL::content_type (void)
return this->content_type_;
}
-void
+void
URL::content_type (const ACE_CString &ct)
{
this->content_type_ = ct;
diff --git a/ACE/examples/Web_Crawler/URL.h b/ACE/examples/Web_Crawler/URL.h
index 68c41f018ad..9dd37dbcd96 100644
--- a/ACE/examples/Web_Crawler/URL.h
+++ b/ACE/examples/Web_Crawler/URL.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// URL.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _URL_H
#define _URL_H
@@ -32,31 +29,35 @@
// Forward declaration.
class URL_Visitor;
+/**
+ * @class URL
+ *
+ * @brief Base class for a URL.
+ *
+ * This class plays a role in the Visitor pattern.
+ */
class URL
{
- // = TITLE
- // Base class for a URL.
- //
- // = DESCRIPTION
- // This class plays a role in the Visitor pattern.
public:
+ /// Destructor.
virtual ~URL (void);
- // Destructor.
+ /**
+ * Accept the visitor, which will then perform a particular
+ * visitation strategy on the URL. This method is part of the
+ * Visitor pattern.
+ */
virtual int accept (URL_Visitor *visitor) = 0;
- // Accept the visitor, which will then perform a particular
- // visitation strategy on the URL. This method is part of the
- // Visitor pattern.
+ /// Send a <GET> command to fetch the contents in the URI from the
+ /// server.
virtual ssize_t send_request (void) = 0;
- // Send a <GET> command to fetch the contents in the URI from the
- // server.
+ /// Returns the URL that we represent.
virtual const ACE_URL_Addr &url_addr (void) const = 0;
- // Returns the URL that we represent.
+ /// Returns the <Mem_Map_Stream>.
virtual Mem_Map_Stream &stream (void);
- // Returns the <Mem_Map_Stream>.
// = Get/set the reply status.
virtual const URL_Status &reply_status (void);
@@ -69,14 +70,14 @@ public:
private:
+ /// Reply status of the URL.
URL_Status reply_status_;
- // Reply status of the URL.
+ /// Content-type of the URL.
ACE_CString content_type_;
- // Content-type of the URL.
+ /// Contents of the stream.
Mem_Map_Stream stream_;
- // Contents of the stream.
};
#endif /* _URL_H */
diff --git a/ACE/examples/Web_Crawler/URL_Addr.cpp b/ACE/examples/Web_Crawler/URL_Addr.cpp
index 2b2eaa84a0a..f141fe8184e 100644
--- a/ACE/examples/Web_Crawler/URL_Addr.cpp
+++ b/ACE/examples/Web_Crawler/URL_Addr.cpp
@@ -7,11 +7,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_Memory.h"
-ACE_RCSID (Web_Crawler,
- URL_Addr,
- "$Id$")
-
-
ACE_URL_Addr::ACE_URL_Addr (void)
: path_name_ (0),
addr_string_ (0),
diff --git a/ACE/examples/Web_Crawler/URL_Addr.h b/ACE/examples/Web_Crawler/URL_Addr.h
index 8c7c79a5542..b864ae26a81 100644
--- a/ACE/examples/Web_Crawler/URL_Addr.h
+++ b/ACE/examples/Web_Crawler/URL_Addr.h
@@ -1,19 +1,16 @@
// -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// URL_Addr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL_Addr.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_URL_ADDR_H
#define ACE_URL_ADDR_H
@@ -26,87 +23,98 @@
#include "ace/ACE.h"
+/**
+ * @class ACE_URL_Addr
+ *
+ * @brief Defines a URL address family address format.
+ */
class ACE_URL_Addr : public ACE_INET_Addr
{
- // = TITLE
- // Defines a URL address family address format.
public:
// = Initialization and termination methods.
+ /// Constructor.
ACE_URL_Addr (void);
- // Constructor.
ACE_URL_Addr (const ACE_TCHAR *host_name,
const ACE_TCHAR *path_name,
u_short port = ACE_DEFAULT_HTTP_PORT);
+ /// Copy constructor.
ACE_URL_Addr (const ACE_URL_Addr &addr);
- // Copy constructor.
+ /// Essentially the copy constructor.
int set (const ACE_URL_Addr &addr);
- // Essentially the copy constructor.
+ /**
+ * Initializes an <ACE_URL_Addr> from the <address>, which can be
+ * "ip-number:port-number/path-name" (e.g.,
+ * "www.cs.wustl.edu:1234/~schmidt/" "ip-number:port-number/path-name"
+ * (e.g., "128.252.166.57:1234/~schmidt"). If there is no ':' in
+ * the <address> it is assumed to be an ip-number or ip-address
+ * number, with the port number <ACE_DEFAULT_HTTP_PORT>.
+ */
virtual int string_to_addr (const ACE_TCHAR *address,
int address_family = AF_UNSPEC);
- // Initializes an <ACE_URL_Addr> from the <address>, which can be
- // "ip-number:port-number/path-name" (e.g.,
- // "www.cs.wustl.edu:1234/~schmidt/" "ip-number:port-number/path-name"
- // (e.g., "128.252.166.57:1234/~schmidt"). If there is no ':' in
- // the <address> it is assumed to be an ip-number or ip-address
- // number, with the port number <ACE_DEFAULT_HTTP_PORT>.
+ /**
+ * Transform the current <ACE_INET_Addr> address into string format.
+ * If <ipaddr_format> is non-0 this produces
+ * "ip-number:port-number/path-name" (e.g.,
+ * "128.252.166.57:80/~schmidt/"), whereas if <ipaddr_format> is 0
+ * this produces "ip-name:port-number" (e.g.,
+ * "www.cs.wustl.edu:80/~schmidt/"). Returns -1 if the <size> of
+ * the <buffer> is too small, else 0.
+ */
virtual int addr_to_string (ACE_TCHAR *s,
size_t size,
int ipaddr_format = 1) const;
- // Transform the current <ACE_INET_Addr> address into string format.
- // If <ipaddr_format> is non-0 this produces
- // "ip-number:port-number/path-name" (e.g.,
- // "128.252.166.57:80/~schmidt/"), whereas if <ipaddr_format> is 0
- // this produces "ip-name:port-number" (e.g.,
- // "www.cs.wustl.edu:80/~schmidt/"). Returns -1 if the <size> of
- // the <buffer> is too small, else 0.
+ /**
+ * Transform the current <ACE_INET_Addr> address into string format.
+ * If <ipaddr_format> is non-0 this produces
+ * "ip-number:port-number/path-name" (e.g.,
+ * "128.252.166.57:80/~schmidt/"), whereas if <ipaddr_format> is 0
+ * this produces "ip-name:port-number" (e.g.,
+ * "www.cs.wustl.edu:80/~schmidt/"). Uses dynamic memory, which
+ * is allocated on demand and deallocated when the object is
+ * destroyed. Returns -1 if dynamic memory fails, else 0.
+ */
virtual const ACE_TCHAR *addr_to_string (int ipaddr_format = 1) const;
- // Transform the current <ACE_INET_Addr> address into string format.
- // If <ipaddr_format> is non-0 this produces
- // "ip-number:port-number/path-name" (e.g.,
- // "128.252.166.57:80/~schmidt/"), whereas if <ipaddr_format> is 0
- // this produces "ip-name:port-number" (e.g.,
- // "www.cs.wustl.edu:80/~schmidt/"). Uses dynamic memory, which
- // is allocated on demand and deallocated when the object is
- // destroyed. Returns -1 if dynamic memory fails, else 0.
+ /// Assignment operator.
void operator= (const ACE_URL_Addr &addr);
- // Assignment operator.
+ /// Destructor.
~ACE_URL_Addr (void);
- // Destructor.
+ /**
+ * Compare two addresses for equality. The addresses are considered
+ * equal if they contain the same IP address, port number, and path
+ * name.
+ */
bool operator == (const ACE_URL_Addr &SAP) const;
- // Compare two addresses for equality. The addresses are considered
- // equal if they contain the same IP address, port number, and path
- // name.
+ /// Compare two addresses for inequality.
bool operator != (const ACE_URL_Addr &SAP) const;
- // Compare two addresses for inequality.
+ /// Computes and returns hash value.
virtual u_long hash (void) const;
- // Computes and returns hash value.
+ /// Return the path name.
const ACE_TCHAR *get_path_name (void) const;
- // Return the path name.
+ /// Commit suicide.
int destroy (void);
- // Commit suicide.
private:
+ /// Our path name.
ACE_TCHAR *path_name_;
- // Our path name.
+ /// The dynamically address string that's used for the
+ /// <addr_to_string> method.
ACE_TCHAR *addr_string_;
- // The dynamically address string that's used for the
- // <addr_to_string> method.
+ /// Current length of the <addr_string_>
size_t addr_string_len_;
- // Current length of the <addr_string_>
};
#endif /* ACE_URL_ADDR_H */
diff --git a/ACE/examples/Web_Crawler/URL_Status.cpp b/ACE/examples/Web_Crawler/URL_Status.cpp
index 35a57420593..79190a5f9f3 100644
--- a/ACE/examples/Web_Crawler/URL_Status.cpp
+++ b/ACE/examples/Web_Crawler/URL_Status.cpp
@@ -3,7 +3,7 @@
#include "URL_Status.h"
-ACE_RCSID(Web_Crawler, URL_Status, "$Id$")
+
URL_Status::URL_Status (STATUS_CODE code)
: status_ (code)
diff --git a/ACE/examples/Web_Crawler/URL_Status.h b/ACE/examples/Web_Crawler/URL_Status.h
index 672c5e4f240..085291ef939 100644
--- a/ACE/examples/Web_Crawler/URL_Status.h
+++ b/ACE/examples/Web_Crawler/URL_Status.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// URL_Status.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL_Status.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _URL_STATUS_H
#define _URL_STATUS_H
@@ -23,9 +20,12 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class URL_Status
+ *
+ */
class URL_Status
{
- // = TITLE
public:
enum STATUS_CODE
{
@@ -55,7 +55,7 @@ public:
void status (STATUS_CODE);
int destroy (void);
private:
- STATUS_CODE status_;
+ STATUS_CODE status_;
};
#endif /* _URL_STATUS_H */
diff --git a/ACE/examples/Web_Crawler/URL_Visitor.cpp b/ACE/examples/Web_Crawler/URL_Visitor.cpp
index 2fc15322d22..1f93267efc2 100644
--- a/ACE/examples/Web_Crawler/URL_Visitor.cpp
+++ b/ACE/examples/Web_Crawler/URL_Visitor.cpp
@@ -5,7 +5,7 @@
#include "URL_Visitor.h"
#include "Command_Processor.h"
-ACE_RCSID(Web_Crawler, URL_Visitor, "$Id$")
+
URL_Processing_Strategy::URL_Processing_Strategy (URL &url,
URL_Iterator &iterator)
diff --git a/ACE/examples/Web_Crawler/URL_Visitor.h b/ACE/examples/Web_Crawler/URL_Visitor.h
index 9f68612d629..485c7366c6a 100644
--- a/ACE/examples/Web_Crawler/URL_Visitor.h
+++ b/ACE/examples/Web_Crawler/URL_Visitor.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// URL_Visitor.h
-//
-// = AUTHOR
-// Douglas C.Schmidt <schmidt@cs.wustl.edu>
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL_Visitor.h
+ *
+ * $Id$
+ *
+ * @author Douglas C.Schmidt <schmidt@cs.wustl.edu> Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _URL_VISITOR_H
#define _URL_VISITOR_H
@@ -31,100 +28,111 @@
#include "ace/Caching_Strategies_T.h"
#include "ace/Cached_Connect_Strategy_T.h"
#include "Options.h"
-#include "ace/Pair_T.h"
// Forward declarations.
class URL_Validation_Visitor;
+/**
+ * @class URL_Processing_Strategy
+ *
+ * @brief Abstract base class for the URL processing strategy.
+ *
+ */
class URL_Processing_Strategy
{
- // = TITLE
- // Abstract base class for the URL processing strategy.
- //
- // = DESCRIPTION
public:
+ /// Constructor.
URL_Processing_Strategy (URL &,
URL_Iterator &);
- // Constructor.
virtual ~URL_Processing_Strategy (void);
+ /// Perform the strategy.
virtual int execute (void) = 0;
- // Perform the strategy.
virtual int destroy (void);
// Close down the resources.
protected:
+ /// A reference to the URL "context" that we're processing.
URL &url_;
- // A reference to the URL "context" that we're processing.
+ /// Iterator for the URL that we're processing.
URL_Iterator &iterator_;
- // Iterator for the URL that we're processing.
};
+/**
+ * @class HTTP_Header_Processing_Strategy
+ *
+ * @brief Defines the HTTP header processing strategy.
+ *
+ */
class HTTP_Header_Processing_Strategy : public URL_Processing_Strategy
{
- // = TITLE
- // Defines the HTTP header processing strategy.
- //
- // = DESCRIPTION
public:
+ /// Constructor.
HTTP_Header_Processing_Strategy (URL &,
URL_Iterator &);
- // Constructor.
+ /// Perform the strategy for processing an HTTP header.
virtual int execute (void);
- // Perform the strategy for processing an HTTP header.
};
+/**
+ * @class HTML_Body_Validation_Strategy
+ *
+ * @brief Defines the HTML body processing strategy.
+ *
+ * This class iterates through the body of an HTML file and
+ * recursively visits embedded links.
+ */
class HTML_Body_Validation_Strategy : public URL_Processing_Strategy
{
- // = TITLE
- // Defines the HTML body processing strategy.
- //
- // = DESCRIPTION
- // This class iterates through the body of an HTML file and
- // recursively visits embedded links.
public:
+ /// Constructor.
HTML_Body_Validation_Strategy (URL &,
URL_Iterator &,
URL_Validation_Visitor &);
- // Constructor.
+ /**
+ * Perform the strategy for processing an HTML file. This strategy
+ * iterates over the HTML file and recursively visits embedded links
+ * to process them, as well.
+ */
virtual int execute (void);
- // Perform the strategy for processing an HTML file. This strategy
- // iterates over the HTML file and recursively visits embedded links
- // to process them, as well.
private:
+ /// This is the context of the visit.
URL_Validation_Visitor &visitor_context_;
- // This is the context of the visit.
};
+/**
+ * @class URL_Download_Strategy
+ *
+ * @brief Defines a URL downloading strategy.
+ *
+ * This class downloads a URL's contents into a temporary file.
+ */
class URL_Download_Strategy : public URL_Processing_Strategy
{
- // = TITLE
- // Defines a URL downloading strategy.
- //
- // = DESCRIPTION
- // This class downloads a URL's contents into a temporary file.
public:
+ /// Constructor.
URL_Download_Strategy (URL &,
URL_Iterator &);
- // Constructor.
+ /// Perform the strategy for downloading a URL to a temporary file.
virtual int execute (void);
- // Perform the strategy for downloading a URL to a temporary file.
};
+/**
+ * @class URL_Visitation_Strategy_Factory
+ *
+ * @brief Abstract Factory for the URL visitation strategy.
+ *
+ */
class URL_Visitation_Strategy_Factory
{
- // = TITLE
- // Abstract Factory for the URL visitation strategy.
- //
- // = DESCRIPTION
public:
URL_Visitation_Strategy_Factory (URL *);
@@ -132,114 +140,120 @@ public:
virtual ~URL_Visitation_Strategy_Factory (void);
// = Factory Methods.
+ /// Factory Method that makes the header iterator.
virtual URL_Iterator *make_header_iterator (void) = 0;
- // Factory Method that makes the header iterator.
+ /// Factory Method that makes the body iterator.
virtual URL_Iterator *make_body_iterator (void) = 0;
- // Factory Method that makes the body iterator.
+ /// Factory Method that makes the header processing strategy.
virtual URL_Processing_Strategy *make_header_strategy (URL_Iterator &) = 0;
- // Factory Method that makes the header processing strategy.
+ /// Factory Method that makes the body processing strategy .
virtual URL_Processing_Strategy *make_body_strategy (URL_Iterator &) = 0;
- // Factory Method that makes the body processing strategy .
+ /// Close down the resources.
virtual int destroy (void) = 0;
- // Close down the resources.
protected:
+ /// Stash the URL so we don't have to pass it around.
URL *url_;
- // Stash the URL so we don't have to pass it around.
};
+/**
+ * @class URL_Download_Visitation_Strategy_Factory
+ *
+ * @brief Concrete Factory for the URL validation visitation strategy.
+ *
+ */
class URL_Download_Visitation_Strategy_Factory : public URL_Visitation_Strategy_Factory
{
- // = TITLE
- // Concrete Factory for the URL validation visitation strategy.
- //
- // = DESCRIPTION
public:
+ /// Constructor.
URL_Download_Visitation_Strategy_Factory (URL *);
- // Constructor.
// = Factory Methods.
+ /// Factory Method that makes an <HTTP_Header_Iterator>.
virtual URL_Iterator *make_header_iterator (void);
- // Factory Method that makes an <HTTP_Header_Iterator>.
+ /// Factory Method that makes an <HTML_Body_Iterator>.
virtual URL_Iterator *make_body_iterator (void);
- // Factory Method that makes an <HTML_Body_Iterator>.
+ /// Factory Method that makes the header processing strategy.
virtual URL_Processing_Strategy *make_header_strategy (URL_Iterator &);
- // Factory Method that makes the header processing strategy.
+ /// Factory Method that makes the body processing strategy .
virtual URL_Processing_Strategy *make_body_strategy (URL_Iterator &);
- // Factory Method that makes the body processing strategy .
+ /// Close down the resources.
virtual int destroy (void);
- // Close down the resources.
};
+/**
+ * @class URL_Validation_Visitation_Strategy_Factory
+ *
+ * @brief Concrete Factory for the URL validation visitation strategy.
+ *
+ */
class URL_Validation_Visitation_Strategy_Factory : public URL_Visitation_Strategy_Factory
{
- // = TITLE
- // Concrete Factory for the URL validation visitation strategy.
- //
- // = DESCRIPTION
public:
+ /// Constructor.
URL_Validation_Visitation_Strategy_Factory (URL *,
URL_Validation_Visitor &);
- // Constructor.
// = Factory Methods.
+ /// Factory Method that makes an <HTTP_Header_Iterator>.
virtual URL_Iterator *make_header_iterator (void);
- // Factory Method that makes an <HTTP_Header_Iterator>.
+ /// Factory Method that makes an <HTML_Body_Iterator>.
virtual URL_Iterator *make_body_iterator (void);
- // Factory Method that makes an <HTML_Body_Iterator>.
+ /// Factory Method that makes the header processing strategy.
virtual URL_Processing_Strategy *make_header_strategy (URL_Iterator &);
- // Factory Method that makes the header processing strategy.
+ /// Factory Method that makes the body processing strategy .
virtual URL_Processing_Strategy *make_body_strategy (URL_Iterator &);
- // Factory Method that makes the body processing strategy .
+ /// Close down the resources.
virtual int destroy (void);
- // Close down the resources.
private:
+ /// Context of the visitor.
URL_Validation_Visitor &visitor_context_;
- // Context of the visitor.
};
+/**
+ * @class URL_Visitor
+ *
+ * @brief Base class for the URL Visitor.
+ *
+ * This class plays the "visitor" role in the Visitor pattern.
+ */
class URL_Visitor
{
- // = TITLE
- // Base class for the URL Visitor.
- //
- // = DESCRIPTION
- // This class plays the "visitor" role in the Visitor pattern.
public:
virtual ~URL_Visitor (void);
+ /// Visit an <HTTP_URL>.
virtual int visit (HTTP_URL &http_url) = 0;
- // Visit an <HTTP_URL>.
// @@
// virtual int visit (FTP_URL &http_url) = 0;
+ /// Cleanup the resources.
virtual int destroy (void) = 0;
- // Cleanup the resources.
protected:
+ /// Make the appropriate <URL_Visitation_Strategy_Factory>.
virtual URL_Visitation_Strategy_Factory *make_visitation_strategy_factory (URL &) = 0;
- // Make the appropriate <URL_Visitation_Strategy_Factory>.
};
typedef int ATTRIBUTES;
typedef ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
Client_Svc_Handler;
-typedef ACE_Pair<Client_Svc_Handler *, ATTRIBUTES>
+typedef std::pair<Client_Svc_Handler *, ATTRIBUTES>
CACHED_HANDLER;
typedef ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>
ACE_ADDR;
@@ -276,93 +290,52 @@ typedef ACE_NOOP_Concurrency_Strategy<Client_Svc_Handler>
typedef ACE_Cached_Connect_Strategy_Ex<Client_Svc_Handler, ACE_SOCK_CONNECTOR, CACHING_STRATEGY, ATTRIBUTES, ACE_SYNCH_NULL_MUTEX>
CACHED_CONNECT_STRATEGY;
+/**
+ * @class URL_Validation_Visitor
+ *
+ * @brief Subclass that defines the URL validation visitor.
+ *
+ * This class checks to make sure that the <HTTP_URL> is valid.
+ * If the <HTTP_URL> is an <HTML> file, it can also be used to
+ * recursively check that all embedded links in this file are
+ * valid.
+ */
class URL_Validation_Visitor : public URL_Visitor
{
- // = TITLE
- // Subclass that defines the URL validation visitor.
- //
- // = DESCRIPTION
- // This class checks to make sure that the <HTTP_URL> is valid.
- // If the <HTTP_URL> is an <HTML> file, it can also be used to
- // recursively check that all embedded links in this file are
- // valid.
public:
typedef ACE_Hash_Map_Manager <ACE_URL_Addr, URL_Status, ACE_Null_Mutex>
URL_CACHE;
+ /**
+ * Visit an <HTTP_URL> to make sure that it's valid. If the content
+ * type of the <HTTP_URL> is "text/html" and the <recursion> option
+ * is enabled then <visit> recursively checks each link embedded in
+ * the HTML page.
+ */
virtual int visit (HTTP_URL &http_url);
- // Visit an <HTTP_URL> to make sure that it's valid. If the content
- // type of the <HTTP_URL> is "text/html" and the <recursion> option
- // is enabled then <visit> recursively checks each link embedded in
- // the HTML page.
// @@
// virtual int visit (FTP_URL &http_url);
+ /// Cleanup the resources.
URL_Validation_Visitor (void);
virtual int destroy (void);
- // Cleanup the resources.
+ /// Returns a reference to the URL cache.
URL_CACHE &url_cache (void);
- // Returns a reference to the URL cache.
-
-
- /*
-
-
- typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- Svc_Handler;
- typedef ACE_Strategy_Connector<Svc_Handler, ACE_SOCK_CONNECTOR>
- STRAT_CONNECTOR;
- typedef ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS;
- typedef ACE_NOOP_Creation_Strategy<Svc_Handler>
- NULL_CREATION_STRATEGY;
- typedef ACE_NOOP_Concurrency_Strategy<Svc_Handler>
- NULL_ACTIVATION_STRATEGY;
-
- typedef ACE_Hash_Map_Manager_Ex<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,\
- ACE_Pair<Svc_Handler *, int>,\
- ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>, \
- ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,\
- ACE_Null_Mutex>
- CONNECTION_HASH_MAP;
- typedef ACE_Hash_Map_Iterator_Ex<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,\
- ACE_Pair<Svc_Handler *, int>,\
- ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>, \
- ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,\
- ACE_Null_Mutex>
- CONNECTION_HASH_MAP_ITERATOR;
- typedef ACE_Hash_Map_Reverse_Iterator_Ex<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,\
- ACE_Pair<Svc_Handler *, int>,\
- ACE_Hash<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>, \
- ACE_Equal_To<REFCOUNTED_HASH_RECYCLABLE_ADDRESS>,\
- ACE_Null_Mutex>
- CONNECTION_HASH_MAP_REVERSE_ITERATOR;
- typedef ACE_Pair_Caching_Utility <REFCOUNTED_HASH_RECYCLABLE_ADDRESS, \
- ACE_Pair<Svc_Handler *, int>, \
- CONNECTION_HASH_MAP, CONNECTION_HASH_MAP_ITERATOR, int >
- CACHING_STRATEGY_UTILITY;
- typedef ACE_LRU_Caching_Strategy<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,\
- ACE_Pair<Svc_Handler *, int>,\
- CONNECTION_HASH_MAP, int,\
- CACHING_STRATEGY_UTILITY >
- LRU;
- typedef ACE_Cached_Connect_Strategy_Ex<Svc_Handler,ACE_SOCK_CONNECTOR, LRU,int, ACE_SYNCH_NULL_MUTEX>
- CACHED_CONNECT_STRATEGY;
- */
+
protected:
+ /// Factory Method that makes a
+ /// <URL_Validation_Visitation_Strategy_Factory>.
virtual ~URL_Validation_Visitor (void);
virtual URL_Visitation_Strategy_Factory *make_visitation_strategy_factory (URL &);
- // Factory Method that makes a
- // <URL_Validation_Visitation_Strategy_Factory>.
+ /// Cache the status of URLs we've already validated.
URL_CACHE url_cache_;
- // Cache the status of URLs we've already validated.
+ /// Check to see if the reply status of this <url_addr> is in the
+ /// cache. Returns 1 if so, 0 if not.
int in_cache (const ACE_URL_Addr &url_addr);
- // Check to see if the reply status of this <url_addr> is in the
- // cache. Returns 1 if so, 0 if not.
NULL_CREATION_STRATEGY creation_strategy_;
NULL_ACTIVATION_STRATEGY activation_strategy_;
@@ -377,42 +350,48 @@ protected:
};
+/**
+ * @class URL_Download_Visitor
+ *
+ * @brief Subclass for the URL validtion visitor.
+ *
+ * This class checks to make sure that the <HTTP_URL> is valid.
+ */
class URL_Download_Visitor : public URL_Visitor
{
- // = TITLE
- // Subclass for the URL validtion visitor.
- //
- // = DESCRIPTION
- // This class checks to make sure that the <HTTP_URL> is valid.
public:
+ /**
+ * Visit an <HTTP_URL> to make sure that it's valid. If the content
+ * type of the <HTTP_URL> is "text/html" and the <recursion> option
+ * is enabled then <visit> recursively checks each link embedded in
+ * the HTML page.
+ */
virtual int visit (HTTP_URL &http_url);
- // Visit an <HTTP_URL> to make sure that it's valid. If the content
- // type of the <HTTP_URL> is "text/html" and the <recursion> option
- // is enabled then <visit> recursively checks each link embedded in
- // the HTML page.
// @@
// virtual int visit (FTP_URL &http_url);
+ /// Cleanup the resources.
virtual int destroy (void);
- // Cleanup the resources.
protected:
+ /// Factory Method that makes a <URL_Download_Visitation_Strategy_Factory>.
URL_Visitation_Strategy_Factory *make_visitation_strategy_factory (URL &);
- // Factory Method that makes a <URL_Download_Visitation_Strategy_Factory>.
};
+/**
+ * @class Auto_Destroyer
+ *
+ * @brief Simple class that ensures the <destroy> method is called on our
+ * <URL_*> objects when they go out of scope.
+ *
+ * This class is similar to an auto_ptr<> and should be used to
+ * simplify blocks of code that must create/destroy pointers to
+ * various <URL_*> related strategies and iterators.
+ */
template <class T>
class Auto_Destroyer
{
- // = TITLE
- // Simple class that ensures the <destroy> method is called on our
- // <URL_*> objects when they go out of scope.
- //
- // = DESCRIPTION
- // This class is similar to an auto_ptr<> and should be used to
- // simplify blocks of code that must create/destroy pointers to
- // various <URL_*> related strategies and iterators.
public:
Auto_Destroyer (T *t): t_ (t) {}
T *operator-> (void) { return this->t_; }
diff --git a/ACE/examples/Web_Crawler/URL_Visitor_Factory.cpp b/ACE/examples/Web_Crawler/URL_Visitor_Factory.cpp
index 1b8a316b219..260e0b569fa 100644
--- a/ACE/examples/Web_Crawler/URL_Visitor_Factory.cpp
+++ b/ACE/examples/Web_Crawler/URL_Visitor_Factory.cpp
@@ -3,11 +3,6 @@
#include "URL_Visitor_Factory.h"
-ACE_RCSID (Web_Crawler,
- URL_Visitor_Factory,
- "$Id$")
-
-
URL_Visitor_Factory::~URL_Visitor_Factory (void)
{
}
diff --git a/ACE/examples/Web_Crawler/URL_Visitor_Factory.h b/ACE/examples/Web_Crawler/URL_Visitor_Factory.h
index 9f484afe9f0..1650f8c9561 100644
--- a/ACE/examples/Web_Crawler/URL_Visitor_Factory.h
+++ b/ACE/examples/Web_Crawler/URL_Visitor_Factory.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// URL_Visitor_Factory.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL_Visitor_Factory.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _URL_VISITOR_FACTORY_H
#define _URL_VISITOR_FACTORY_H
@@ -24,51 +21,59 @@
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class URL_Visitor_Factory
+ *
+ * @brief Abstract base class that creates URL visitors.
+ *
+ * Subclasses define each of the Factory Methods to
+ * make the right objects, which all "vary" together.
+ */
class URL_Visitor_Factory
{
- // = TITLE
- // Abstract base class that creates URL visitors.
- //
- // = DESCRIPTION
- // Subclasses define each of the Factory Methods to
- // make the right objects, which all "vary" together.
public:
/// Destructor.
virtual ~URL_Visitor_Factory (void);
+ /// Factory Method that makes the appropriate type of <URL_Visitor>.
virtual URL_Visitor *make_visitor (void) = 0;
- // Factory Method that makes the appropriate type of <URL_Visitor>.
+ /// Factory Method that makes the appropriate type of
+ /// <Command_Processor>.
virtual Command_Processor *make_command_processor (void) = 0;
- // Factory Method that makes the appropriate type of
- // <Command_Processor>.
};
+/**
+ * @class URL_Validation_Visitor_Factory
+ *
+ * @brief Create a URL visitor that validates URL links.
+ */
class URL_Validation_Visitor_Factory : public URL_Visitor_Factory
{
- // = TITLE
- // Create a URL visitor that validates URL links.
public:
+ /// Factory Method that makes a <URL_Validation_Visitor>.
virtual URL_Visitor *make_visitor (void);
- // Factory Method that makes a <URL_Validation_Visitor>.
+ /// Factory Method that makes a <FIFO_Command_Processor>.
virtual Command_Processor *make_command_processor (void);
- // Factory Method that makes a <FIFO_Command_Processor>.
};
+/**
+ * @class URL_Download_Visitor_Factory
+ *
+ * @brief Create a URL visitor that downloads URL links.
+ */
class URL_Download_Visitor_Factory : public URL_Visitor_Factory
{
- // = TITLE
- // Create a URL visitor that downloads URL links.
public:
+ /// Factory Method that makes a <URL_Download_Visitor>.
virtual URL_Visitor *make_visitor (void);
- // Factory Method that makes a <URL_Download_Visitor>.
+ /// Factory Method that makes a <FIFO_Command_Processor>.
virtual Command_Processor *make_command_processor (void);
- // Factory Method that makes a <FIFO_Command_Processor>.
};
#endif /* _URL_VISITOR_FACTORY_H */
diff --git a/ACE/examples/Web_Crawler/Web_Crawler.cpp b/ACE/examples/Web_Crawler/Web_Crawler.cpp
index 16639a38d73..a0913290ae4 100644
--- a/ACE/examples/Web_Crawler/Web_Crawler.cpp
+++ b/ACE/examples/Web_Crawler/Web_Crawler.cpp
@@ -4,7 +4,7 @@
#include "URL_Visitor_Factory.h"
#include "Web_Crawler.h"
-ACE_RCSID(Web_Crawler, Web_Crawler, "$Id$")
+
Web_Crawler::~Web_Crawler (void)
{
@@ -34,7 +34,7 @@ Web_Crawler::open (int argc, ACE_TCHAR *argv[])
int
Web_Crawler::run (void)
-{
+{
// Make the appropriate <URL_Visitor>.
Auto_Destroyer<URL_Visitor> visitor (this->url_visitor_factory_->make_visitor ());
@@ -67,25 +67,25 @@ Web_Crawler::run (void)
OPTIONS::instance()->port_no ()), //KIRTHIKA
0);
Auto_Destroyer<ACE_URL_Addr> url_addr_ptr (url_addr);
-
+
HTTP_URL *http_url;
ACE_NEW_RETURN (http_url,
HTTP_URL (**url_addr_ptr),
0);
Auto_Destroyer<HTTP_URL> http_url_ptr (http_url);
-
+
URL_Command *url_command;
ACE_NEW_RETURN (url_command,
URL_Command (*http_url_ptr),
0);
// Auto_Destroyer<URL_Command> url_command_ptr (url_command);
-
+
if (cp->insert (url_command) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p\n", "insert"),
-1);
-
+
if (cp->execute () != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p\n", "execute"),
diff --git a/ACE/examples/Web_Crawler/Web_Crawler.h b/ACE/examples/Web_Crawler/Web_Crawler.h
index 01e275e2187..6c80d20bc95 100644
--- a/ACE/examples/Web_Crawler/Web_Crawler.h
+++ b/ACE/examples/Web_Crawler/Web_Crawler.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// Web_Crawler.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Web_Crawler.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef _WEB_CRAWLER_H
#define _WEB_CRAWLER_H
@@ -27,36 +24,40 @@
// Forward declaration.
class URL_Visitor_Factory;
+/**
+ * @class Web_Crawler
+ *
+ * @brief An abstraction for a Web Crawler.
+ *
+ * This class is a Facade that organizes the other classes in the
+ * solution, which include a factory that creates a visitor,
+ * which in turn embodies the appropriate visitation strategy.
+ */
class Web_Crawler
{
- // = TITLE
- // An abstraction for a Web Crawler.
- //
- // = DESCRIPTION
- // This class is a Facade that organizes the other classes in the
- // solution, which include a factory that creates a visitor,
- // which in turn embodies the appropriate visitation strategy.
public:
// = Initialization and termination methods.
+ /// Constructor.
Web_Crawler (void);
- // Constructor.
+ /// Destructor.
~Web_Crawler (void);
- // Destructor.
+ /// Parses the command-line options and initializes the
+ /// <URL_Visitor_Factory>.
int open (int argc, ACE_TCHAR *argv[]);
- // Parses the command-line options and initializes the
- // <URL_Visitor_Factory>.
+ /// Run the Web Crawler and carries out whatever visitation strategy
+ /// is configured. Returns -1 on failure and 0 on success.
int run (void);
- // Run the Web Crawler and carries out whatever visitation strategy
- // is configured. Returns -1 on failure and 0 on success.
private:
+ /**
+ * Pointer to a factory that creates visitors that explore URLs and
+ * perform various tasks. Subclasses of <URL_Visitor_Factory>
+ * determine what happens during a visitation.
+ */
URL_Visitor_Factory *url_visitor_factory_;
- // Pointer to a factory that creates visitors that explore URLs and
- // perform various tasks. Subclasses of <URL_Visitor_Factory>
- // determine what happens during a visitation.
};
#endif /* _WEB_CRAWLER_H */
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/examples/Web_Crawler/main.cpp b/ACE/examples/Web_Crawler/main.cpp
index 1735f811b78..6509858bea6 100644
--- a/ACE/examples/Web_Crawler/main.cpp
+++ b/ACE/examples/Web_Crawler/main.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples/Web_Crawler
-//
-// = FILENAME
-// main.cpp
-//
-// = DESCRIPTION
-// This program implements a Web crawler that can be configured to
-// apply various strategies to URLs that it visits.
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file main.cpp
+ *
+ * $Id$
+ *
+ * This program implements a Web crawler that can be configured to
+ * apply various strategies to URLs that it visits.
+ *
+ *
+ * @author Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/Signal.h"
#include "Web_Crawler.h"
#include "Options.h"
-ACE_RCSID(Web_Crawler, main, "$Id$")
+
void sig_handler (int)
{
@@ -31,14 +28,14 @@ void sig_handler (int)
ACE_OS::abort ();
}
-int
+int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
#if !defined (ACE_HAS_WINCE)
ACE_Sig_Action sa ((ACE_SignalHandler) sig_handler, SIGFPE);
#endif
Web_Crawler crawler;
-
+
if (crawler.open (argc, argv) == -1)
return 1;
else if (crawler.run () == -1)
diff --git a/ACE/examples/example_base.mpb b/ACE/examples/example_base.mpb
index 71b8b3452c6..a08669ec1bd 100644
--- a/ACE/examples/example_base.mpb
+++ b/ACE/examples/example_base.mpb
@@ -5,4 +5,4 @@
// examples.mwc uses the implicit keyword to cause this
// project to be used as the base for all examples,
project : aceexe {
-} \ No newline at end of file
+}
diff --git a/ACE/html/Stats/index.shtml b/ACE/html/Stats/index.shtml
index ced61281cbb..2683832f444 100644
--- a/ACE/html/Stats/index.shtml
+++ b/ACE/html/Stats/index.shtml
@@ -50,7 +50,7 @@ In addition to the statistics described above, a number of other ACE/TAO/CIAO de
<a href="http://www.dre.vanderbilt.edu/Scoreboard/">Automated Builds</a>
</li>
<li>
- <a href="http://www.dre.vanderbilt.edu/~isisbuilds/auto_compile_logs/isislab/emulab/FC6xampler/Template-Display/_Report/">Xampler Performance benchmarks</a>
+ Xampler Performance benchmarks for <a href="http://www.dre.vanderbilt.edu/~isisbuilds/auto_compile_logs/isislab/emulab/FC6xampler/Template-Display/_Report/">x86</a>
</li>
<li>
<a href="http://www.dre.vanderbilt.edu/Stats/CORBAecompact/">Footprint CORBA/e compact</a>
diff --git a/ACE/html/index.html b/ACE/html/index.html
index 3cdd34e3109..0c4e91c6027 100644
--- a/ACE/html/index.html
+++ b/ACE/html/index.html
@@ -5,122 +5,126 @@
<!-- $Id$ -->
<head>
- <title>ACE+TAO+CIAO Documentation</title>
+ <title>ACE+TAO+CIAO+DAnCE Documentation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<center>
- <h1>ACE+TAO+CIAO Documentation</h1>
+ <h1>ACE+TAO+CIAO+DAnCE Documentation</h1>
</center>
<p>Documentation is separated by components:</p>
<ul>
<li>
- <p><a href="ace/index.html">The ACE library</a></p>
+ <p><a href="libace-doc/index.html">The ACE library</a></p>
</li>
<li>
- <p><a href="acexml/index.html">The ACEXML library</a></p>
+ <p><a href="libacexml-doc/index.html">The ACEXML library</a></p>
</li>
<li>
- <p><a href="ace/ssl/index.html">ACE SSL Adapters</a></p>
+ <p><a href="libace-doc/ssl/index.html">ACE SSL Adapters</a></p>
</li>
<li>
- <p><a href="ace/rmcast/index.html">ACE Reliable Multicast
+ <p><a href="libace-doc/rmcast/index.html">ACE Reliable Multicast
components</a></p>
</li>
<li>
- <p><a href="ace/QoS/index.html">ACE Components for
+ <p><a href="libace-doc/QoS/index.html">ACE Components for
QoS-enabled networking APIs.</a></p>
</li>
<li>
- <p><a href="tao/index.html">The TAO library and
+ <p><a href="libace-doc/inet/index.html">ACE INet library</a></p>
+ </li>
+
+ <li>
+ <p><a href="libtao-doc/index.html">The TAO library and
components</a></p>
</li>
<li>
<p><a href=
- "tao/portableserver/index.html">TAO_PortableServer:</a> TAO's
+ "libtao-doc/portableserver/index.html">TAO_PortableServer:</a> TAO's
Portable Object Adapter</p>
</li>
<li>
- <p><a href="tao/dynamicany/index.html">TAO_DynamicAny:</a>
+ <p><a href="libtao-doc/dynamicany/index.html">TAO_DynamicAny:</a>
TAO's implementation of Dynamic Anys.</p>
</li>
<li>
<p><a href=
- "tao/dynamicinterface/index.html">TAO_DynamicInterface:</a>
+ "libtao-doc/dynamicinterface/index.html">TAO_DynamicInterface:</a>
TAO's implementation of DII/DSI.</p>
</li>
<li>
<p><a href=
- "tao/smartproxies/index.html">TAO_SmartProxies:</a> TAO's
+ "libtao-doc/smartproxies/index.html">TAO_SmartProxies:</a> TAO's
smart proxies support library.</p>
</li>
<li>
<p><a href=
- "tao/iormanipulation/index.html">TAO_IORManipulation:</a> TAO
+ "libtao-doc/iormanipulation/index.html">TAO_IORManipulation:</a> TAO
extension to manipulate IORs.</p>
</li>
<li>
- <p><a href="tao/iortable/index.html">TAO_IORTable:</a> TAO's
+ <p><a href="libtao-doc/iortable/index.html">TAO_IORTable:</a> TAO's
ad-hoc adapter for simple Object Keys.</p>
</li>
<li>
- <p><a href="tao/strategies/index.html">TAO_Strategies:</a>
+ <p><a href="libtao-doc/strategies/index.html">TAO_Strategies:</a>
Additional configuration options and protocols for TAO.</p>
</li>
<li>
<p><a href=
- "tao/rtportableserver/index.html">TAO_RTPortableServer:</a>
+ "libtao-doc/rtportableserver/index.html">TAO_RTPortableServer:</a>
The Portable Object Adapter with RT-CORBA support</p>
</li>
<li>
- <p><a href="tao/rtcorba/index.html">TAO_RTCORBA:</a>
+ <p><a href="libtao-doc/rtcorba/index.html">TAO_RTCORBA:</a>
Additional components to support RT-CORBA</p>
</li>
<li>
- <p><a href="tao/pi/index.html">TAO_PI:</a> TAO Client
+ <p><a href="libtao-doc/pi/index.html">TAO_PI:</a> TAO Client
Portable Interceptor support</p>
</li>
<li>
- <p><a href="tao/pi_server/index.html">TAO_PI_Server:</a> TAO
+ <p><a href="libtao-doc/pi_server/index.html">TAO_PI_Server:</a> TAO
Server Portable Interceptor support</p>
</li>
<li>
- <p><a href="tao/anytypecode/index.html">TAO_AnyTypeCode:</a>
+ <p><a href="libtao-doc/anytypecode/index.html">TAO_AnyTypeCode:</a>
TAO AnyTypeCode support</p>
</li>
<li>
- <p><a href="tao/compression/index.html">TAO_Compression:</a>
+ <p><a href="libtao-doc/compression/index.html">TAO_Compression:</a>
TAO Compression support</p>
</li>
<li>
- <p><a href="tao/transportcurrent/index.html">TAO_TransportCurrent:</a>
+ <p><a href="libtao-doc/transportcurrent/index.html">TAO_TransportCurrent:</a>
TAO Transport Current support</p>
</li>
<li>
- <p><a href="tao/ziop/index.html">TAO_ZIOP:</a>
+ <p><a href="libtao-doc/ziop/index.html">TAO_ZIOP:</a>
TAO ZIOP support</p>
</li>
</ul>
@@ -128,75 +132,70 @@
<ul>
<li>
- <p><a href="tao/implrepo_service/index.html">Implementation
+ <p><a href="libtao-doc/implrepo_service/index.html">Implementation
Repository:</a> TAO's object activation daemon.</p>
</li>
<li>
- <p><a href="tao/esf/index.html">TAO_ESF:</a> TAO's Event
+ <p><a href="libtao-doc/esf/index.html">TAO_ESF:</a> TAO's Event
Service Framework, a collection of template classes used to
implement TAO Event Services.</p>
</li>
<li>
- <p><a href="tao/rtevent/index.html">TAO_RTEvent:</a> TAO's RT
+ <p><a href="libtao-doc/rtevent/index.html">TAO_RTEvent:</a> TAO's RT
Event Service implementation.</p>
</li>
<li>
- <p><a href="tao/cosevent/index.html">TAO_CosEvent:</a> TAO's
+ <p><a href="libtao-doc/cosevent/index.html">TAO_CosEvent:</a> TAO's
COS Event Service implementation.</p>
</li>
<li>
- <p><a href="tao/cosnaming/index.html">TAO_CosNaming:</a>
+ <p><a href="libtao-doc/cosnaming/index.html">TAO_CosNaming:</a>
TAO's COS Naming Service implementation.</p>
</li>
<li>
<p><a href=
- "tao/cosnotification/index.html">TAO_CosNotification:</a>
+ "libtao-doc/cosnotification/index.html">TAO_CosNotification:</a>
TAO's COS Notification Service implementation.</p>
</li>
<li>
- <p><a href="tao/costime/index.html">TAO_CosTime:</a> TAO's
+ <p><a href="libtao-doc/costime/index.html">TAO_CosTime:</a> TAO's
COS Time Service implementation.</p>
</li>
<li>
- <p><a href="tao/costrader/index.html">TAO_CosTrader:</a>
+ <p><a href="libtao-doc/costrader/index.html">TAO_CosTrader:</a>
TAO's COS Trader Service implementation.</p>
</li>
<li>
- <p><a href="tao/av/index.html">TAO_AV:</a> TAO's Audio/Video
+ <p><a href="libtao-doc/av/index.html">TAO_AV:</a> TAO's Audio/Video
Streaming Service implementation.</p>
</li>
<li>
- <p><a href="tao/security/index.html">TAO_Security:</a> TAO's
+ <p><a href="libtao-doc/security/index.html">TAO_Security:</a> TAO's
CORBA Security Service implementation.</p>
</li>
<li>
- <p><a href="tao/ssliop/index.html">TAO_SSLIOP:</a> TAO's
+ <p><a href="libtao-doc/ssliop/index.html">TAO_SSLIOP:</a> TAO's
SSLIOP protocol implementation.</p>
</li>
<li>
<p><a href=
- "tao/portablegroup/index.html">TAO_PortableGroup:</a> TAO's
+ "libtao-doc/portablegroup/index.html">TAO_PortableGroup:</a> TAO's
PortableGroup implementation.</p>
</li>
<li>
- <p><a href="tao/pss/index.html">TAO_PSS:</a> TAO's Persistent
- State Service implementation.</p>
- </li>
-
- <li>
- <p><a href="tao/ifr/index.html">TAO_IFR:</a> TAO's Interface
+ <p><a href="libtao-doc/ifr/index.html">TAO_IFR:</a> TAO's Interface
Repository Service implementation.</p>
</li>
</ul><!--The following is CIAO replated-->
@@ -204,18 +203,18 @@
<ul>
<li>
- <p><a href="tao/ciao/ciao/index.html">CIAO:</a> CIAO's core
+ <p><a href="libciao-doc/ciao/index.html">CIAO:</a> CIAO's core
implementation.</p>
</li>
<li>
- <p><a href="tao/ciao/dance/index.html">DAnCE:</a> CIAO's
- Deployment and Configuration Engine.</p>
+ <p><a href="libdance-doc/index.html">DAnCE:</a> DAnCE
+ (Deployment and Configuration Engine).</p>
</li>
<li>
- <p><a href="tao/ciao/tools/config_handlers/index.html">Config Handlers:</a> CIAO's
- Config Handlers.</p>
+ <p><a href="libciao-doc/dds4ccm/index.html">DDS4CCM:</a> CIAO's
+ DDS4CCM.</p>
</li>
</ul>
</body>
diff --git a/ACE/include/makeinclude/component_check.GNU b/ACE/include/makeinclude/component_check.GNU
index 105a72d0b39..97a4ac4a560 100644
--- a/ACE/include/makeinclude/component_check.GNU
+++ b/ACE/include/makeinclude/component_check.GNU
@@ -9,7 +9,6 @@ ALL_COMPONENTS := $(ACE_MAKE_OPTIONS)
ALL_COMPONENTS += $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
ALL_COMPONENTS += $(shell sh $(ACE_ROOT)/bin/ace_components --tao)
ALL_COMPONENTS += $(shell sh $(ACE_ROOT)/bin/ace_components --orbsvcs)
-ALL_COMPONENTS += $(shell sh $(ACE_ROOT)/bin/ace_components --pace)
# Filter out all the components that are currently available from the
# list of requirements.
diff --git a/ACE/include/makeinclude/macros.GNU b/ACE/include/makeinclude/macros.GNU
index 0ee539d5fb2..463d7f6e105 100644
--- a/ACE/include/makeinclude/macros.GNU
+++ b/ACE/include/makeinclude/macros.GNU
@@ -12,7 +12,8 @@ TARGETS_LOCAL = \
profile.local \
optimize.local \
install.local \
- deinstall.local \
+ binout.local \
+ clean_binout.local \
clean_binaries.local \
clean_idl_stubs.local \
clean.local \
diff --git a/ACE/include/makeinclude/platform_aix.GNU b/ACE/include/makeinclude/platform_aix.GNU
index 33e9c785263..9e355abfc60 100644
--- a/ACE/include/makeinclude/platform_aix.GNU
+++ b/ACE/include/makeinclude/platform_aix.GNU
@@ -27,15 +27,9 @@
debug ?= 1
distrib ?= 0
-exceptions ?= 1
optimize ?= 0
threads ?= 1
-# There's no way to turn off exceptions with IBM C/C++
-ifeq (0,$(exceptions))
- exceptions = 1
-endif
-
# In case anything here or in the config depends on OS version number,
# grab it here and pass it all to the compiler as well.
AIX_MAJOR_VERS := $(shell uname -v)
diff --git a/ACE/include/makeinclude/platform_aix_g++.GNU b/ACE/include/makeinclude/platform_aix_g++.GNU
index c892df15647..85321ee86e9 100644
--- a/ACE/include/makeinclude/platform_aix_g++.GNU
+++ b/ACE/include/makeinclude/platform_aix_g++.GNU
@@ -9,7 +9,6 @@
debug ?= 1
distrib ?= 0
-exceptions ?= 1
optimize ?= 1
threads ?= 1
buildbits ?= 32
@@ -50,7 +49,7 @@ AIX_VERS := $(AIX_MAJOR_VERS)0$(AIX_MINOR_VERS)
CC = gcc
CXX = g++
-CFLAGS += -W -Wall -DACE_AIX_VERS=$(AIX_VERS)
+CFLAGS += -DACE_AIX_VERS=$(AIX_VERS)
ifeq ($(buildbits),32)
CFLAGS += -maix32
endif
@@ -91,5 +90,3 @@ RANLIB = ranlib
# add -E to LDFLAGS if using GNU ld
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
diff --git a/ACE/include/makeinclude/platform_aix_ibm.GNU b/ACE/include/makeinclude/platform_aix_ibm.GNU
index d675201759b..86056359dae 100644
--- a/ACE/include/makeinclude/platform_aix_ibm.GNU
+++ b/ACE/include/makeinclude/platform_aix_ibm.GNU
@@ -1,11 +1,10 @@
# $Id$
# This file is for use with AIX 5.x and up, using either of the IBM
-# compilers (Visual Age C++ 6 or newer compiler).
+# compilers (Visual Age C++ 6 or newer XL C++ compiler).
debug ?= 1
distrib ?= 0
-exceptions ?= 1
optimize ?= 0
threads ?= 1
buildbits ?= 32
@@ -36,13 +35,6 @@ AIX_MAJOR_VERS := $(shell uname -v)
AIX_MINOR_VERS := $(shell uname -r)
AIX_VERS := $(AIX_MAJOR_VERS)0$(AIX_MINOR_VERS)
-# Use of exceptions should be a compiler-specific setting, but for now it's
-# not. IBM C/C++ doesn't have a way to turn exceptions off, and Visual
-# Age C++ V5 building ACE without exception handling causes segv on startup
-# of every test. Until this is straightened out, force exceptions=1 for
-# both compilers.
-exceptions=1
-
SOEXT = so
SOFLAGS += -G
LDFLAGS += -brtl
@@ -105,9 +97,7 @@ else
# According to documentation, default is -qeh, which is equivalent
# to -qeh=v5. Apparently 6.0 fixed some problems with nested
# try-catch blocks.
- ifeq ($(exceptions),1)
- CCFLAGS += -qeh=v6
- endif
+ CCFLAGS += -qeh=v6
else
ifeq ($(XLCVERSION),0x0800)
CCFLAGS += -qflag=w:w
@@ -119,10 +109,15 @@ else
# According to documentation, default is -qeh, which is equivalent
# to -qeh=v5. Apparently 6.0 fixed some problems with nested
# try-catch blocks.
- ifeq ($(exceptions),1)
- CCFLAGS += -qeh=v6
- endif
+ CCFLAGS += -qeh=v6
else
+ # Until there's a reason to change, use the V9 settings for V10.1 and 11.
+ ifeq ($(XLCVERSION),0x0a01)
+ XLCVERSION = 0x0900
+ endif
+ ifeq ($(XLCVERSION),0x0b01)
+ XLCVERSION = 0x0900
+ endif
ifeq ($(XLCVERSION),0x0900)
CCFLAGS += -qflag=w:w
ifeq ($(templates),manual)
@@ -133,9 +128,7 @@ else
# According to documentation, default is -qeh, which is equivalent
# to -qeh=v5. Apparently 6.0 fixed some problems with nested
# try-catch blocks.
- ifeq ($(exceptions),1)
- CCFLAGS += -qeh=v6
- endif
+ CCFLAGS += -qeh=v6
else
CXX = echo "Unrecognized compiler version $(XLCVERSION)\n"
endif
@@ -162,8 +155,6 @@ else
#CCFLAGS += -qstaticinline
endif
-CCFLAGS += -qfuncsect
-
# The Visual Age preprocessor is not usable with the TAO_IDL compiler.
# At the moment an idl file just contains includes of other idl files
# the Visual Age preprocessor doesn't report that file in the list of
diff --git a/ACE/include/makeinclude/platform_cegcc.GNU b/ACE/include/makeinclude/platform_cegcc.GNU
new file mode 100644
index 00000000000..a5502a40167
--- /dev/null
+++ b/ACE/include/makeinclude/platform_cegcc.GNU
@@ -0,0 +1,62 @@
+# $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
+
+CROSS_COMPILE ?= i386-mingw32ce-
+
+LIBS += -lcoredll -lmingw32 -lmingwex -lws2 -lsupc++ -liphlpapi
+
+no_hidden_visibility ?= 1
+qos ?= 1
+
+ifdef COMSPEC
+ HOST_EXE_EXT = .exe
+endif
+
+ifneq (,$(HOST_ROOT))
+TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
+TAO_IDL = $(HOST_ROOT)/bin/tao_idl$(HOST_EXE_EXT)
+TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2$(HOST_EXE_EXT)
+TAO_IDL_DEP = $(TAO_IDL)
+TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
+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)
+endif
+
+include $(ACE_ROOT)/include/makeinclude/platform_gnuwin32_common.GNU
diff --git a/ACE/include/makeinclude/platform_clang_common.GNU b/ACE/include/makeinclude/platform_clang_common.GNU
new file mode 100644
index 00000000000..94cea192d09
--- /dev/null
+++ b/ACE/include/makeinclude/platform_clang_common.GNU
@@ -0,0 +1,110 @@
+# -*- Makefile -*-
+# $Id$
+#
+# Common file help turn on/off explicit template instantiation
+
+ifeq ($(CXX),insure)
+ # insure does not pass through the -dumpversion option.
+ CXX_FOR_VERSION_TEST ?= g++
+else
+ CXX_FOR_VERSION_TEST ?= $(CXX)
+endif
+
+CXX_VERSION := $(shell $(CXX_FOR_VERSION_TEST) -dumpversion)
+
+# If no option has been specified, set templates to automatic
+# version of the compiler.
+#
+templates ?= automatic
+
+# The correct flags to pass to the linker for ELF dynamic shared library
+# versioning.
+# If the platform file didn't already set versioned_so, default to 1.
+versioned_so ?= 1
+with_ld ?=
+ifeq ($(versioned_so),1)
+ ifeq ($(with_ld),hpux)
+ SOFLAGS += -Wl,+h -Wl,$(SONAME)
+ else
+ ifeq ($(with_ld),aix)
+ # What to do here???
+ else
+ SOFLAGS += -Wl,-h -Wl,$(SONAME)
+ endif
+ endif
+endif
+
+static_libs_only ?=
+
+CXX_FULL_VERSION := $(shell $(CXX_FOR_VERSION_TEST) --version)
+gcc_template_instantiation_visibility ?= 0
+
+# Only modify LDFLAGS if DLD has been set.
+ifneq ($(DLD),)
+ ifeq ($(DLD),$(CXX_FOR_VERSION_TEST)) # only try this is we are using ld through gcc
+ LD_FOR_VERSION_TEST = $(shell $(CXX_FOR_VERSION_TEST) -print-prog-name=ld)
+ else
+ LD_FOR_VERSION_TEST = $(DLD)
+ endif # DLD = CXX_FOR_VERSION_TEST
+ # The -E option is GNU ld specific
+ ifneq ($(mingw32),1)
+ GNU_LD := $(shell sh -c '$(LD_FOR_VERSION_TEST) -v 2>&1 | grep -c "GNU ld"')
+ else
+ GNU_LD := $(if $(findstring GNU ld,$(shell $(LD_FOR_VERSION_TEST) -v)), 1, 0)
+ endif # mingw32
+endif # DLD
+
+ifeq ($(GNU_LD),1)
+ STATIC_LINK_FLAG ?= -static
+endif # GNU_LD
+
+ifeq ($(no_strict_aliasing), 1)
+ CCFLAGS += -fno-strict-aliasing
+endif
+
+ifeq ($(shared_libs), 1)
+ ifneq ($(static_libs_only), 1)
+ # Add all symbols to the dynamic symbol table. Needed to enable
+ # dynamic_cast<> for shared libraries. (see
+ # http://gcc.gnu.org/faq.html#dso)
+
+ ifeq ($(GNU_LD),1)
+ # Make sure this version of ld supports the -E option.
+ ifneq ($(mingw32),1)
+ LD_EXPORT_DEFINED := $(shell sh -c '$(LD_FOR_VERSION_TEST) -E 2>&1 | egrep -i "(option|flag)" /dev/null; echo $$?')
+ else
+ LD_EXPORT_DEFINED := $(shell $(LD_FOR_VERSION_TEST) -E 2>&1 | grep -c -i -e '(option|flag)')
+ ifeq ($(LD_EXPORT_DEFINED),0)
+ LD_EXPORT_DEFINED:=1
+ else
+ LD_EXPORT_DEFINED:=0
+ endif
+ endif # mingw32
+ ifeq ($(LD_EXPORT_DEFINED),1)
+ LDFLAGS += -Wl,-E
+ endif # LD_EXPORT_DEFINED = 1
+ endif # GNU ld
+
+ # Take advantage of G++ (>= 4.x) visibility attributes to generate
+ # improved shared library binaries.
+ ifneq ($(no_hidden_visibility),1)
+ CCFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
+ ifeq ($(gcc_template_instantiation_visibility),1)
+ CCFLAGS += -DACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS=1
+ endif # gcc_template_instantiation_visibility
+ else
+ CPPFLAGS += -DACE_HAS_CUSTOM_EXPORT_MACROS=0
+ endif # no_hidden_visibility
+ else
+ # Explicitly disable G++ (>= 4.x) visibility attributes since
+ # they are only meant for use when building shared libraries.
+ no_hidden_visibility = 1
+ CPPFLAGS += -DACE_HAS_CUSTOM_EXPORT_MACROS=0
+ endif # static_libs_only
+else
+ # Explicitly disable G++ (>= 4.x) visibility attributes since
+ # they are only meant for use when building shared libraries.
+ no_hidden_visibility = 1
+ CPPFLAGS += -DACE_HAS_CUSTOM_EXPORT_MACROS=0
+endif # shared_libs
+
diff --git a/ACE/include/makeinclude/platform_cray.GNU b/ACE/include/makeinclude/platform_cray.GNU
deleted file mode 100644
index af4c700010a..00000000000
--- a/ACE/include/makeinclude/platform_cray.GNU
+++ /dev/null
@@ -1,50 +0,0 @@
-# $Id$
-
-# Platform macros for SGI/Cray UNICOS (vector) & UNICOS/mk (mpp) -
-# UNICOS 9.0.2.8
-# UNICOS 10.0.0.5
-# UNICOS/mk 2.0.4.57
-# Cray C++ Version 3.2.0.1
-# Cray Standard C Version 6.2.0.1
-#
-# Contributed by Doug Anderson <dla@home.com>
-
-debug = 1
-exceptions = 1
-static_libs_only = 1
-quantify =
-purify =
-
-# Cray's autoinstantiation seems to be broken, resulting in
-# C++ prelinker: error: instantiation loop
-# So, we're using ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-CC = cc
-LDLIB += -L$(ACE_ROOT)/lib
-CXX = CC
-#CFLAGS +=
-CCFLAGS += -h noautoinstantiate
-DCFLAGS += -g
-DCCFLAGS += $(DCFLAGS)
-OCFLAGS += -O2
-OCCFLAGS += $(OCFLAGS)
-
-ifeq (1,$(exceptions))
- CCFLAGS += -h exceptions
-else
- CCFLAGS += -h noexceptions
-endif # exceptions
-
-DLD = $(CXX)
-LD = $(CXX)
-LIBS = -lpthread
-PIC =
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-
-# This is necessary to get libraries to contain template info, but only
-# necessary when using autoinstantiation
-# PRELIB = @echo ""; \
-# echo "int main() { return 0; }" >dummy.cpp; \
-# echo "$(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LIBS) -o dummy dummy.cpp $?";\
-# $(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LIBS) -o dummy dummy.cpp $?;
diff --git a/ACE/include/makeinclude/platform_cygwin32.GNU b/ACE/include/makeinclude/platform_cygwin32.GNU
index ed9c9823ad0..d7eb70a8fab 100644
--- a/ACE/include/makeinclude/platform_cygwin32.GNU
+++ b/ACE/include/makeinclude/platform_cygwin32.GNU
@@ -1,30 +1,9 @@
+# -*- Makefile -*-
# $Id$
#
# This file should allow to build ACE for cygwin32 with cygwin tools.
#
-# Edit to change TCPU and w32api defs below.
-#
-# Don't forget to define the ACE_ROOT environment variable!
-#
-
-#
-# Chose your target CPU (by default we set it to pentiumpro. In your
-# platform_macros.GNU file you can override this to pentium, i486 or i386
-#
-TCPU ?= pentiumpro
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
-
-# 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
-
include $(ACE_ROOT)/include/makeinclude/platform_gnuwin32_common.GNU
diff --git a/ACE/include/makeinclude/platform_freebsd.GNU b/ACE/include/makeinclude/platform_freebsd.GNU
index 864ce829009..dc635552151 100644
--- a/ACE/include/makeinclude/platform_freebsd.GNU
+++ b/ACE/include/makeinclude/platform_freebsd.GNU
@@ -1,3 +1,4 @@
+# -*- Makefile -*-
# $Id$
# platform_freebsd.GNU
@@ -7,66 +8,67 @@
## flags for threads.
OSVERSION := $(shell sysctl -n kern.osreldate)
-## GNU make does not support boolean conditional expressions
-## so we have to use a dummy RET variable.
-RET = $(shell test $(OSVERSION) -ge 200000 && printf 1)
-ifeq ($(RET),1)
-versioned_so = 1
-endif
-
-exceptions ?= 1
-threads ?= 1
debug ?= 1
optimize ?= 1
-pipes ?= 1
+threads ?= 1
+versioned_so ?= 1
CC = gcc
CXX = g++
-CFLAGS += -W -Wall -Wpointer-arith
+AR = ar
+ARFLAGS = ruv
+CPPFLAGS += -I/usr/local/include
DCFLAGS += -g
-RET = $(shell test $(OSVERSION) -ge 300000 && printf 1)
-ifneq ($(RET),1)
- LDFLAGS += -Wl,-rpath $(ACE_ROOT)/lib
-endif
+DCCFLAGS += $(DCFLAGS)
DLD = $(CXX)
LD = $(CXX)
+LDFLAGS += -L/usr/local/lib
OCFLAGS += -O2
+OCCFLAGS = $(OCFLAGS)
PIC = -fpic
-AR = ar
-ARFLAGS = ruv
+PRELIB = @true
RANLIB = ranlib
+SOFLAGS += -shared
-SOFLAGS += $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @echo
-
-## Set the correct compiler flags for pthreads. This
-## test is copied from /usr/ports/Mk/bsd.port.mk
ifeq ($(threads),1)
-RET = $(shell test $(OSVERSION) -lt 500016 && printf 1)
-ifeq ($(RET),1)
- PTHREAD_CPPFLAGS = -D_THREAD_SAFE
- PTHREAD_LIBS = -pthread
-else
- RET = $(shell test $(OSVERSION) -lt 502102 && printf 1)
- ifeq ($(RET),1)
- PTHREAD_LIBS = -lc_r
- else
- PTHREAD_LIBS = -lpthread
- endif
-endif # RET
+ FLAGS_C_CC += -pthread
+ SOFLAGS += -pthread
+endif # threads
-CPPFLAGS += $(PTHREAD_CPPFLAGS)
-LIBS += $(PTHREAD_LIBS)
+PLATFORM_X11_CPPFLAGS = -I/usr/X11R6/include
+PLATFORM_X11_LIBS = -lX11
+PLATFORM_X11_LDFLAGS = -L/usr/X11R6/lib
-else
-CPPFLAGS += -DACE_MT_SAFE=0
-endif # threads
+PLATFORM_XT_CPPFLAGS =
+PLATFORM_XT_LIBS = -lXt
+PLATFORM_XT_LDFLAGS =
+
+PLATFORM_FL_CPPFLAGS =
+PLATFORM_FL_LIBS = -lfltk -lfltk_forms -lfltk_gl
+PLATFORM_FL_LDFLAGS =
+
+PLATFORM_GL_CPPFLAGS = -I/usr/X11R6/include
+PLATFORM_GL_LIBS = -lGL
+PLATFORM_GL_LDFLAGS = -L/usr/X11R6/lib
+
+PLATFORM_GTK_CPPFLAGS = $(shell gtk-config --cflags)
+PLATFORM_GTK_LIBS = $(shell gtk-config --libs)
+PLATFORM_GTK_LDFLAGS =
-# Test for template instantiation, add to SOFLAGS if SONAME set,
+PLATFORM_FOX_CPPFLAGS ?= -I/usr/include/fox
+PLATFORM_FOX_LIBS ?= -lFOX
+PLATFORM_FOX_LDFLAGS ?=
+
+PLATFORM_TK_CPPFLAGS=$(shell . /usr/local/lib/tk8.*/tkConfig.sh && echo -n $$TK_INCLUDE_SPEC)
+PLATFORM_TK_LIBS=$(shell . /usr/local/lib/tk8.*/tkConfig.sh && echo -n $$TK_LIB_FLAG)
+PLATFORM_TK_LDFLAGS=
+
+PLATFORM_TCL_CPPFLAGS=$(shell . /usr/local/lib/tcl8.*/tclConfig.sh && echo -n $$TCL_INCLUDE_SPEC)
+PLATFORM_TCL_LIBS=$(shell . /usr/local/lib/tcl8.*/tclConfig.sh && echo -n $$TCL_LIB_FLAG)
+PLATFORM_TCL_LDFLAGS=
+
+# Test for template instantiation, add to versioned_so if versioned_so set,
# add -E to LDFLAGS if using GNU ld
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
diff --git a/ACE/include/makeinclude/platform_g++_common.GNU b/ACE/include/makeinclude/platform_g++_common.GNU
index fa4e182e6b2..53c5dde5687 100644
--- a/ACE/include/makeinclude/platform_g++_common.GNU
+++ b/ACE/include/makeinclude/platform_g++_common.GNU
@@ -1,7 +1,66 @@
# -*- Makefile -*-
# $Id$
-#
-# Common file help turn on/off explicit template instantiation
+
+ifeq ($(insure),1)
+ CC = insure
+ CXX = insure
+else
+ ifneq ($(CROSS_COMPILE),)
+ CROSS-COMPILE = 1
+ # Build using the cross-tools
+ ifneq ($($CROSS_COMPILE_POSTFIX),)
+ CC = ${CROSS_COMPILE}gcc{$CROSS_COMPILE_POSTFIX}
+ CXX = ${CROSS_COMPILE}g++{$CROSS_COMPILE_POSTFIX}
+ AR = ${CROSS_COMPILE}ar{$CROSS_COMPILE_POSTFIX}
+ else
+ CC = ${CROSS_COMPILE}gcc
+ CXX = ${CROSS_COMPILE}g++
+ AR = ${CROSS_COMPILE}ar
+ endif
+ # Cross-linker requires this for linked in shared libs that depend
+ # themselves on other shared libs (not directly linked in)
+ LDFLAGS += -Wl,-rpath-link,$(ACE_ROOT)/lib
+ ifneq (,$(HOST_ROOT))
+ TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
+ TAO_IDL = $(HOST_ROOT)/bin/tao_idl
+ TAO_IDL_DEP = $(TAO_IDL)
+ TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2
+ TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
+ TAO_IDL3_TO_XMI = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_xmi
+ TAO_IDL3_TO_XMI_DEP = $(TAO_IDL3_TO_XMI)
+ # make sure to use the target compiler, not the cross-compiler
+ # as preprocessor for the cross-compiled idl tools
+ TAO_IDL_PREPROCESSOR = gcc
+ endif
+ endif
+endif
+
+ifneq ($(TCPU),)
+ ifeq ($(tunemodelflag),1)
+ FLAGS_C_CC += -mtune=$(TCPU)
+ endif
+
+ ifeq ($(cpumodelflag),1)
+ FLAGS_C_CC += -mcpu=$(TCPU)
+ endif
+
+ ifeq ($(archmodelflag),1)
+ FLAGS_C_CC += -march=$(TCPU)
+ endif
+endif
+
+ifeq ($(gprof),1)
+ FLAGS_C_CC += -pg
+ LDFLAGS += -pg
+endif
+
+ifeq ($(c++0x),1)
+ CCFLAGS += --std=c++0x
+endif
+
+ifeq ($(gcov),1)
+ FLAGS_C_CC += -fprofile-arcs -ftest-coverage
+endif
ifeq ($(CXX),insure)
# insure does not pass through the -dumpversion option.
@@ -11,11 +70,17 @@ else
endif
CXX_VERSION := $(shell $(CXX_FOR_VERSION_TEST) -dumpversion)
+CXX_MACHINE := $(shell $(CXX_FOR_VERSION_TEST) -dumpmachine)
ifeq (cmd,$(findstring cmd,$(SHELL)))
-CXX_MAJOR_VERSION := $(shell $(CXX_FOR_VERSION_TEST) -dumpversion | sed -e "s/[^0-9\.]//g" | sed -e "s/\..*$$//")
+CXX_MAJOR_VERSION := $(firstword $(subst ., ,$(CXX_VERSION)))
else
CXX_MAJOR_VERSION := $(shell $(CXX_FOR_VERSION_TEST) -dumpversion | sed -e 's/[^0-9\.]//g' | sed -e 's/\..*$$//')
endif
+ifeq (cmd,$(findstring cmd,$(SHELL)))
+CXX_MINOR_VERSION := $(word 2,$(subst ., ,$(CXX_VERSION)))
+else
+CXX_MINOR_VERSION := $(shell $(CXX_FOR_VERSION_TEST) -dumpversion | sed -e 's/[^0-9\.]//g' | sed -e 's/^[0-9]*\.//' | sed -e 's/\..*$$//')
+endif
ifeq ($(findstring $(CXX_MAJOR_VERSION),1 2 3),$(CXX_MAJOR_VERSION))
GXX_4_OR_BETTER := 0
else
@@ -28,7 +93,7 @@ endif
templates ?= automatic
# The correct flags to pass to the linker for ELF dynamic shared library
-# versioning. None of this works on OpenBSD's ld.
+# versioning.
# If the platform file didn't already set versioned_so, default to 1.
versioned_so ?= 1
with_ld ?=
@@ -36,13 +101,10 @@ ifeq ($(versioned_so),1)
ifeq ($(with_ld),hpux)
SOFLAGS += -Wl,+h -Wl,$(SONAME)
else
- ifeq ($(with_ld),openbsd)
+ ifeq ($(with_ld),aix)
+ # What to do here???
else
- ifeq ($(with_ld),aix)
- # What to do here???
- else
- SOFLAGS += -Wl,-h -Wl,$(SONAME)
- endif
+ SOFLAGS += -Wl,-h -Wl,$(SONAME)
endif
endif
endif
@@ -63,7 +125,7 @@ ifneq ($(DLD),)
ifneq ($(mingw32),1)
GNU_LD := $(shell sh -c '$(LD_FOR_VERSION_TEST) -v 2>&1 | grep -c "GNU ld"')
else
- GNU_LD := $(shell $(LD_FOR_VERSION_TEST) -v | grep -c 'GNU ld')
+ GNU_LD := $(if $(findstring GNU ld,$(shell $(LD_FOR_VERSION_TEST) -v)), 1, 0)
endif # mingw32
endif # DLD
@@ -71,6 +133,26 @@ ifeq ($(GNU_LD),1)
STATIC_LINK_FLAG ?= -static
endif # GNU_LD
+ifeq ($(no-optimize-sibling-calls), 1)
+ FLAGS_C_CC += -fno-optimize-sibling-calls
+endif
+
+ifeq ($(no_strict_aliasing), 1)
+ CCFLAGS += -fno-strict-aliasing
+else
+ ifneq ($(no_strict_aliasing), 0)
+ # if not explicitly disabled enable suppression of strict-aliasing checks by default
+ # for GCC >= 4.2; these checks and the resulting warnings are very controversial and
+ # popular opinion on the web seems to be that it brings little practical value and a
+ # lot of pain to attempt to solve code issues and the best way to deal is to suppress
+ ifeq ($(GXX_4_OR_BETTER), 1)
+ ifneq ($(findstring $(CXX_MAJOR_VERSION).$(CXX_MINOR_VERSION),4.1),$(CXX_MAJOR_VERSION).$(CXX_MINOR_VERSION))
+ CCFLAGS += -fno-strict-aliasing
+ endif
+ endif
+ endif
+endif
+
ifeq ($(shared_libs), 1)
ifneq ($(static_libs_only), 1)
# Add all symbols to the dynamic symbol table. Needed to enable
@@ -123,7 +205,11 @@ else
endif # GXX_4_OR_BETTER == 1
endif # shared_libs
-# GCC 2.x needs this to compile TAO correctly
-ifeq ($(CXX_MAJOR_VERSION), 2)
- CCFLAGS += -ftemplate-depth-23
+minimaltoc ?= 0
+ifeq ($(minimaltoc),1)
+ FLAGS_C_CC += -mminimal-toc
endif
+
+pipes ?= 1
+
+FLAGS_C_CC += -Wall -W -Wpointer-arith
diff --git a/ACE/include/makeinclude/platform_gnuwin32_common.GNU b/ACE/include/makeinclude/platform_gnuwin32_common.GNU
index 00750e11752..c7bf8f55825 100644
--- a/ACE/include/makeinclude/platform_gnuwin32_common.GNU
+++ b/ACE/include/makeinclude/platform_gnuwin32_common.GNU
@@ -1,3 +1,4 @@
+# -*- Makefile -*-
# $Id$
ifneq ($(mingw32),1)
@@ -10,14 +11,32 @@ ifneq ($(mingw32),1)
endif
endif
-GNUWIN32_CXX_VERSION := $(shell $(CXX) -dumpversion)
+# Choose your target CPU (by default we set it to pentiumpro. In your
+# platform_macros.GNU file you can override this to pentium, i486 or i386
+TCPU ?= pentiumpro
+
+# Cygwin/MinGW doesn't allow to add the version number of ACE to the dll name
+# because ace.dll.6.0.1 isn't a valid dll name
+versioned_so = 0
+
+# Cygwin/MinGW doesn't have rwho
+rwho = 0
+
+# Disable auto-import warnings. The Cygwin/MinGW 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
+
+no_hidden_visibility ?= 1
winsock2 ?= 1
-exceptions ?= 1
debug ?= 1
optimize ?= 1
threads ?= 1
-pipes ?= 1
+
+cpumodelflag ?= 0
+tunemodelflag ?= 1
# When building shared libraries
ifeq ($(shared_libs), 1)
@@ -27,50 +46,34 @@ ifeq ($(shared_libs), 1)
endif
ifeq ($(debug),0)
-CFLAGS += -DNDEBUG
-endif
-
-CC = gcc
-CXX = g++
-RC = windres
-DLLTOOL = dlltool
-
-RC_OUTPUT_FLAG = -o
-
-ifeq (2.9,$(findstring 2.9,$(GNUWIN32_CXX_VERSION)))
- MODEL_FLAGS += -mcpu=$(TCPU)
-else
- MODEL_FLAGS += -mtune=$(TCPU)
+ CPPFLAGS += -DNDEBUG
endif
-CFLAGS += -Wpointer-arith
ifeq ($(threads),1)
- CFLAGS += -mthreads
+ FLAGS_C_CC += -mthreads
endif # threads
-CFLAGS += $(MODEL_FLAGS)
-
-EXEEXT = .exe
-
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-
-ifeq ($(mingw32),1)
-ifeq ($(winsock2),1)
-LIBS += -lws2_32 -lmswsock
-endif
-LIBS += -lwsock32 -lnetapi32
-endif
-
-OCFLAGS += -O3
-PIC =
-AR = ar
+CC = ${COMPARCH}gcc
+CXX = ${COMPARCH}g++
+RC = ${COMPARCH}windres
+DLLTOOL = ${COMPARCH}dlltool
+AR = ${COMPARCH}ar
+RANLIB = ${COMPARCH}ranlib
+
+DCFLAGS += -g
+DLD = $(CXX)
+LD = $(CXX)
+OCFLAGS += -O3
ARFLAGS = rsuv
-RANLIB = ranlib
SOEXT = dll
-SOFLAGS += $(MODEL_FLAGS) $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
+EXEEXT = .exe
+RC_OUTPUT_FLAG = -o
+
+SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
+
+SHLIBBUILD = $(DLLTOOL) --dllname $@ --output-lib $@.a $(VSHOBJS) && \
+ $(SOLINK.cc) -Wl,--enable-auto-image-base -Wl,--out-implib,$@.a \
+ -shared -o $@ $(LDFLAGS) $(VSHOBJS) $(ACE_SHLIBS) $(LIBS)
PLATFORM_FL_CPPFLAGS ?=
PLATFORM_FL_LIBS ?= -lfltk -lfltk_forms -lfltk_gl -lfltk_images
@@ -84,39 +87,9 @@ PLATFORM_WX_CPPFLAGS ?= $(shell wx-config --cxxflags) -I/usr/local/include
PLATFORM_WX_LIBS ?= $(shell wx-config --libs)
PLATFORM_WX_LDFLAGS ?= $(shell wx-config --ldflags)
-# The sed below is to strip comments on the .def file,
-# to workaround to a bug in ld.
-SHLIBBUILD = \
- $(RM) $(VSHDIR)/$@.def.old $(VSHDIR)/$@.def; \
- $(DLLTOOL) --export-all --output-def $(VSHDIR)/$@.def --dllname $@ \
- $(VSHOBJS) \
- && mv $(VSHDIR)/$@.def $(VSHDIR)/$@.def.old \
- && sed 's/;.*$$//g' < $(VSHDIR)/$@.def.old > $(VSHDIR)/$@.def \
- && $(SOLINK.cc) -Wl,--enable-auto-image-base -Wl,--out-implib,$@.a \
- -shared -o $@ $(LDFLAGS) -Wl,$(VSHDIR)/$@.def \
- $(VSHOBJS) $(ACE_SHLIBS) $(LIBS)
-
-PRELIB = @true
-
# Test for template instantiation, add to SOFLAGS if SONAME set,
# add -E to LDFLAGS if using GNU ld
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-ifeq ($(GXX_4_OR_BETTER), 1)
- no_attributes ?= 1
- wall ?= 1
-else
- no_attributes ?= 0
- wall ?= 0
-endif
-
-ifeq ($(no_attributes), 1)
- CFLAGS += -Wno-attributes
-endif
-
-ifeq ($(wall),1)
- CFLAGS += -Wall -W
-endif
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
+PRELIB = @true
diff --git a/ACE/include/makeinclude/platform_hpux_aCC.GNU b/ACE/include/makeinclude/platform_hpux_aCC.GNU
index 31ce884b23c..17ba3efa4a8 100644
--- a/ACE/include/makeinclude/platform_hpux_aCC.GNU
+++ b/ACE/include/makeinclude/platform_hpux_aCC.GNU
@@ -13,7 +13,6 @@
buildbits ?= 0
debug ?= 1
distrib ?= 0
-exceptions ?= 1
optimize ?= 0
stdcpplib ?= 1
threads ?= 1
@@ -46,21 +45,18 @@ else
endif
endif
+# Want to be able to do [unsigned] long long.
+CCFLAGS += -ext
+
ifeq (1,$(stdcpplib))
CCFLAGS += -AA
ifeq (03,$(CXXMAJORVERS))
# Warning 930 is spurious when new(std::nothrow) is used. Reported to HP
# as support call 3201224717. (Steve Huston, 23-Nov-2002)
CCFLAGS += +W930
- # aCC 3.31 has poor member template support.
- ifeq (31,$(CXXMINORVERS))
- CCFLAGS += -DACE_LACKS_MEMBER_TEMPLATES
- endif
endif
# Compile errors using -AA and +noeh together - HP problem report
# JAGad12608, fix slated for Dec 2001 Release -- Steve Huston, April 10, 2001.
-# If you still have problems with this area, uncomment the following line:
-# exceptions = 1
else
CCFLAGS += -AP
endif
@@ -69,25 +65,7 @@ endif
# and specified compiler options.
ifeq ($(threads),1)
THR_DEFS = -DACE_HAS_THREADS
-
- # x.30 was the first version offering -mt. So, if it's a .2x version,
- # set the defs by hand; anything else, use -mt. This leaves out .1x
- # versions, which should be no problem at this point.
- ifeq (,$(filter 2%,$(CXXMINORVERS)))
- CC_THR_DEFS += -mt
- else
- # Different for v2 vs. v1 C++ library selection.
- ifeq (1,$(stdcpplib))
- THR_DEFS += -D_RWSTD_MULTI_THREAD
- else
- THR_DEFS += -DRWSTD_MULTI_THREAD -D_THREAD_SAFE
- endif
-
- # For HP-UX 11.x, choose kernel threads over CMA (user) threads.
- ifeq ($(word 2,$(HPVERS_WORDS)), 11)
- THR_DEFS += -D_POSIX_C_SOURCE=199506L
- endif
- endif
+ CC_THR_DEFS += -mt
else
THR_DEFS = -DACE_HAS_THREADS=0
# On HP-UX 11, even without building for threads, the *_r reentrant
@@ -104,7 +82,6 @@ ifeq (03,$(CXXMAJORVERS))
# Suppress Warning 361 (missing return from non-void function)
# Suppress Warning 1039(Binary incompatabilty between old and new compilers)
CCFLAGS += +W302,361,1039
-
ifeq (57,$(CXXMINORVERS))
# aCC 3.57 has a bug. When a class has private constructors
# and is trying to be created from a friend class we end up with
@@ -116,6 +93,14 @@ ifeq (03,$(CXXMAJORVERS))
# Same bug as above
export aCC_ARRAY_OPT=OFF
endif
+ ifeq (80,$(CXXMINORVERS))
+ # Enabled template meta programming
+ CCFLAGS += +hpxstd98
+ endif
+ ifeq (85,$(CXXMINORVERS))
+ # Enabled template meta programming
+ CCFLAGS += +hpxstd98
+ endif
endif
ifeq (05,$(CXXMAJORVERS))
@@ -133,12 +118,6 @@ endif
CPPFLAGS += $(THR_DEFS) -D_HPUX_SOURCE -DHPUX_VERS=$(HPUX_VERS) -DACE_LACKS_PRAGMA_ONCE
CCFLAGS += $(CC_THR_DEFS)
-# If exception support is explicitly disabled, tell the compiler.
-# This is not recommended since the run-time library can throw exceptions.
-ifneq ($(exceptions),1)
- CCFLAGS += +noeh
-endif
-
DCCFLAGS += -g
DLD = $(CXX) $(CCFLAGS)
LD = $(CXX)
diff --git a/ACE/include/makeinclude/platform_hpux_gcc.GNU b/ACE/include/makeinclude/platform_hpux_gcc.GNU
index bf7c5207448..84ea5ceca49 100644
--- a/ACE/include/makeinclude/platform_hpux_gcc.GNU
+++ b/ACE/include/makeinclude/platform_hpux_gcc.GNU
@@ -4,7 +4,6 @@
buildbits ?= 64
debug ?= 1
distrib ?= 0
-exceptions ?= 1
optimize ?= 1
stdcpplib ?= 1
threads ?= 1
@@ -103,4 +102,4 @@ endif
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG) -DHPUX_VERS=$(HPUX_VERS) $(THR_DEFS)
+CCFLAGS += -DHPUX_VERS=$(HPUX_VERS) $(THR_DEFS)
diff --git a/ACE/include/makeinclude/platform_integrity_ghs.GNU b/ACE/include/makeinclude/platform_integrity_ghs.GNU
index 358020bc1fd..4d4da7dbdc0 100644
--- a/ACE/include/makeinclude/platform_integrity_ghs.GNU
+++ b/ACE/include/makeinclude/platform_integrity_ghs.GNU
@@ -6,7 +6,6 @@ optimize ?= 1
shared_libs =
static_libs = 1
-exceptions ?= 1
#### CPU type
ifndef CPU
@@ -54,9 +53,7 @@ CXX = $(GHSROOT)/cx$(CPU)
# undefine "vector" because it's predefined for 7400 boards
IOPS = -bspname=$(RTOSROOT)/target/$(BSP).bld -os_dir $(RTOSROOT) --one_instantiation_per_object -non_shared -Uvector
-ifeq (1, $(exceptions))
- IOPS += --exceptions
-endif # exceptions
+IOPS += --exceptions
CCFLAGS += $(CFLAGS) -integrate -dynamic -I$(RTOSROOT)/INTEGRITY-include-SCA $(IOPS) -bspfile=$(TARGET_BSP) $(TARGET_LD)
DCFLAGS += -G
diff --git a/ACE/include/makeinclude/platform_irix6.x_common.GNU b/ACE/include/makeinclude/platform_irix6.x_common.GNU
deleted file mode 100644
index c0af65aa353..00000000000
--- a/ACE/include/makeinclude/platform_irix6.x_common.GNU
+++ /dev/null
@@ -1,16 +0,0 @@
-# $Id$
-
-xt_reactor ?= 1
-exceptions ?= 1
-debug ?= 1
-optimize ?= 1
-
-PLATFORM_XT_CPPFLAGS=
-PLATFORM_XT_LIBS=-lXm -lXt -lX11
-PLATFORM_XT_LDFLAGS=
-
-ifndef ACE_IRIX_VERS
-ACE_IRIX_VERS := $(subst .,,$(shell uname -r))
-endif # ACE_IRIX_VERS
-
-CPPFLAGS += -DACE_IRIX_VERS=$(ACE_IRIX_VERS)
diff --git a/ACE/include/makeinclude/platform_irix6.x_g++.GNU b/ACE/include/makeinclude/platform_irix6.x_g++.GNU
deleted file mode 100644
index f2ff118a9ff..00000000000
--- a/ACE/include/makeinclude/platform_irix6.x_g++.GNU
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id$
-
-# Irix 6.X with GNU C++
-
-include $(ACE_ROOT)/include/makeinclude/platform_irix6.x_common.GNU
-
-CC = gcc
-CXX = g++
-CFLAGS += $(DCFLAGS)
-
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS += -L$(ACE_ROOT)/lib -Wl,-dont_warn_unused
-LIBS += -lpthread
-OCFLAGS += -O2
-PIC = -fpic
-# AR = ar
-ARFLAGS = rv
-RANLIB = @true
-SOFLAGS += -shared $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) $(LDFLAGS) -o $@ $(VSHDIR)$*.o
-
-# Test for template instantiation, add to SOFLAGS if SONAME set,
-# add -E to LDFLAGS if using GNU ld
-#
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
diff --git a/ACE/include/makeinclude/platform_irix6.x_sgic++.GNU b/ACE/include/makeinclude/platform_irix6.x_sgic++.GNU
deleted file mode 100644
index 2f4f9495942..00000000000
--- a/ACE/include/makeinclude/platform_irix6.x_sgic++.GNU
+++ /dev/null
@@ -1,101 +0,0 @@
-# -*- Makefile -*-
-
-# $Id$
-
-# Irix 6.[234] with SGI C++
-# In order to get the -n32 flag enabled please set the SGI_ABI
-# environment variable to -n32. This causes a new compiler to be
-# invoked.
-
-threads ?= 1
-templates ?= implicit
-
-include $(ACE_ROOT)/include/makeinclude/platform_irix6.x_common.GNU
-
-# Instead of setting the ABI here we rely on the the macro SGI_ABI.
-CC = cc
-CXX = CC
-DLD = $(CXX)
-LD = $(CXX)
-
-# Basic flags
-
-# In Irix 6.2 w/o the thread patches this macro should have no effect.
-ifeq ($(threads),1)
- CPPFLAGS += -D_SGI_MP_SOURCE
-endif
-
-OCCFLAGS += -O -OPT:Olimit=0
-DCCFLAGS += -g
-
-# Enable 64-bit builds
-ifeq (64,$(buildbits))
- CFLAGS += -64
- CPPFLAGS += -64
-endif
-
-# Enable exceptions even in the o32 bit ABI.
-CCFLAGS += -exceptions -DACE_HAS_EXCEPTIONS
-
-# Use the standard library and standard template instantiation mechanisms
-CCFLAGS += -LANG:std
-
-ifneq ($(templates),implicit)
- # Instantiate no templates automatically, do not run prelinker. There
- # are other choices available, but those have not been used in a while.
- CCFLAGS += -no_prelink
-endif # templates != implicit
-
-# Instantiate everything; without this, apps/Gateway/Gateway/gatewayd might
-# not build due to missing template instantiations. NOTE: it seems
-# this setting no longer works for ACE.
-#CCFLAGS += -ptall
-# Instantiate used templates, plus prelinking instantiation
-#CCFLAGS += -ptused -prelink
-# Instantiate used templates, but do not run prelinker
-#CCFLAGS += -ptused
-
-# Suppress warnings about "pack" pragmas not being defined
-# Suppress warnings about "member with the same name as its class"
-# Suppress warnings about "class has no copy assignment operator"
-# Suppress warnings about "Access control" on inherited classes
-# Suppress warnings about "last argument" of varargs function is unnamed
-ifeq (7.3,$(findstring 7.3,$(CXX_VERSION)))
- # 7.3.x doesn't have the 3506 error code
- CCFLAGS += -diag_suppress 3284,1253,3439,1234
-else
- CCFLAGS += -diag_suppress 3284,1253,3439,1234,3506
-endif
-
-LDFLAGS += -Wl,-woff,15
-LDFLAGS += -Wl,-woff,84
-LDFLAGS += -Wl,-woff,85
-LDFLAGS += -Wl,-woff,133
-
-# You need to remove this if you are using 6.2 without the Pthread
-# patches or if you want to compile without threads support.
-ifndef DONT_LINK_PTHREADS
-ifeq ($(threads),1)
- LIBS += -lpthread
-endif
-endif
-
-PIC = -KPIC
-
-ifneq ($(templates),implicit)
- AR = ar
- ARFLAGS = r
-else
-# We need to create the archive via CC so that the prelinker can
-# instantiate the required templates.
- AR = CC -ar
- ARFLAGS = -o
-endif # templates != implicit
-
-RANLIB = echo
-SOFLAGS += -shared $(CCFLAGS) $(CPPFLAGS) -all -multigot
-SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- /bin/ln $(VSHDIR)$*.o $@
-
-# The math library
-MATHLIB=-lm
diff --git a/ACE/include/makeinclude/platform_linux.GNU b/ACE/include/makeinclude/platform_linux.GNU
index 0bce73d819b..7d7091920d2 100644
--- a/ACE/include/makeinclude/platform_linux.GNU
+++ b/ACE/include/makeinclude/platform_linux.GNU
@@ -1,22 +1,16 @@
# -*- Makefile -*-
# $Id$
-# According to Bryon G. Rigg <bgrigg@opus.bcbnet.com>, this file
-# should allow ACE to be built on Linux.
-
include $(ACE_ROOT)/include/makeinclude/platform_linux_common.GNU
ifeq ($(insure),0)
- CC ?= gcc
- CXX ?= g++
+ CC = gcc
+ CXX = g++
CXX_FOR_VERSION_TEST ?= $(CXX)
else
CXX_FOR_VERSION_TEST ?= g++
endif
-# fix this
-pipes ?= 1
-
CXX_FULL_VERSION := $(shell $(CXX_FOR_VERSION_TEST) --version)
CXX_VERSION := $(shell $(CXX_FOR_VERSION_TEST) -dumpversion)
@@ -36,11 +30,10 @@ ifeq (Red Hat, $(findstring Red Hat,$(CXX_FULL_VERSION)))
gcc_template_instantiation_visibility ?= 1
endif
endif
-
-FLAGS_C_CC += -W -Wall -Wpointer-arith
-ifeq ($(threads),1)
- CPPFLAGS += -D_REENTRANT $(PLATFORM_AIO_SUPPORT)
-endif # threads
+# Mandriva 2007
+ifeq (4.1.1-3mdk, $(findstring 4.1.1-3mdk,$(CXX_FULL_VERSION)))
+ gcc_template_instantiation_visibility ?= 1
+endif
ifeq ($(buildbits),32)
FLAGS_C_CC += -m32
@@ -48,9 +41,13 @@ ifeq ($(buildbits),32)
endif
ifeq ($(buildbits),64)
FLAGS_C_CC += -m64
+ LDFLAGS += -m64
endif
-#
+# DT_RUNPATH is preferred over DT_RPATH, but the linker will only use it when
+# this extra flag option (enable-new-dtags) is present
+LD_RPATH_FLAGS += -Wl,--enable-new-dtags
+
# Rely on _GNU_SOURCE to set these defaults defined in /usr/include/features.h
# instead of setting them directly here (older versions of gcc don't set it
# for you): _SVID_SOURCE _BSD_SOURCE _POSIX_SOURCE _POSIX_C_SOURCE=199506L, ...
@@ -63,16 +60,16 @@ LD = $(CXX)
LIBS += -ldl
ifeq ($(threads),1)
- LIBS += -lpthread
- # look for the rt library in the usual places
- LIBS += $(shell test "`ls -L /usr/lib*/librt.so* /lib*/librt.so*`" && echo -lrt)
+ FLAGS_C_CC += -pthread
+ SOFLAGS += -pthread
+ LIBS += -lrt
endif
ifeq ($(optimize),1)
SOFLAGS += -Wl,-O3
endif
-SOFLAGS += $(CPPFLAGS) -shared
+SOFLAGS += -shared
SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \
$(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
PRELIB = @true
@@ -92,9 +89,6 @@ else
OCCFLAGS ?= -O3
endif
-CFLAGS += $(FLAGS_C_CC)
-CCFLAGS += $(FLAGS_C_CC) $(TEMPLATES_FLAG)
-
# Added line below to support "Executable Shared Object" files (as
# needed by the service configurator).
# Marius Kjeldahl <mariusk@sn.no, marius@funcom.com>
diff --git a/ACE/include/makeinclude/platform_linux_clang.GNU b/ACE/include/makeinclude/platform_linux_clang.GNU
new file mode 100644
index 00000000000..977def96cd6
--- /dev/null
+++ b/ACE/include/makeinclude/platform_linux_clang.GNU
@@ -0,0 +1,61 @@
+# $Id$
+
+# This file should allow ACE to be built on Linux, using the clang compiler.
+
+include $(ACE_ROOT)/include/makeinclude/platform_linux_common.GNU
+
+ifeq ($(insure),0)
+ CC = clang
+ CXX = clang++
+endif
+
+ifndef CXX_VERSION
+ CXX_VERSION := $(shell $(CXX) --version)
+endif
+
+CCFLAGS += $(CFLAGS)
+DCFLAGS += -g
+DLD = $(CXX)
+LD = $(CXX)
+LIBS += -ldl
+
+ifeq ($(threads),1)
+ LIBS += -lpthread
+ LIBS += -lrt
+endif
+
+OCFLAGS += -O3
+
+ifeq ($(optimize),0)
+ CPPFLAGS += -O0
+endif
+
+SOFLAGS += $(CPPFLAGS) -shared
+SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \
+ $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
+PRELIB = @true
+
+# Visibility doesn't seem to work with clang 2.8, default to off
+no_hidden_visibility ?= 1
+
+ifeq ($(shared_libs), 1)
+ ifneq ($static_libs_only), 1)
+ LDFLAGS += -Wl,-E
+ ifneq ($(no_hidden_visibility),1)
+ CCFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
+ else
+ CPPFLAGS += -DACE_HAS_CUSTOM_EXPORT_MACROS=0
+ endif # no_hidden_visibility
+ endif
+endif
+
+
+# Added line below to support "Executable Shared Object" files (as
+# needed by the service configurator).
+# Marius Kjeldahl <mariusk@sn.no, marius@funcom.com>
+ifeq ($(threads),1)
+ ESOBUILD = $(COMPILEESO.cc) $(PIC) -shared -o $(VSHDIR)$*.so $<
+ ifndef PRELIB
+ PRELIB = @true
+ endif # ! PRELIB
+endif
diff --git a/ACE/include/makeinclude/platform_linux_common.GNU b/ACE/include/makeinclude/platform_linux_common.GNU
index 8a19abcdde1..3b7b5f67614 100644
--- a/ACE/include/makeinclude/platform_linux_common.GNU
+++ b/ACE/include/makeinclude/platform_linux_common.GNU
@@ -4,7 +4,6 @@
# We always include config-linux.h on Linux platforms.
ACE_PLATFORM_CONFIG ?= config-linux.h
-exceptions ?= 1
debug ?= 1
optimize ?= 1
threads ?= 1
@@ -33,9 +32,9 @@ PLATFORM_GTK_CPPFLAGS=$(shell gtk-config --cflags)
PLATFORM_GTK_LIBS =$(shell gtk-config --libs)
PLATFORM_GTK_LDFLAGS =
-PLATFORM_FOX_CPPFLAGS=
-PLATFORM_FOX_LIBS=-lFOX
-PLATFORM_FOX_LDFLAGS=
+PLATFORM_FOX_CPPFLAGS ?= -I/usr/include/fox
+PLATFORM_FOX_LIBS ?= -lFOX
+PLATFORM_FOX_LDFLAGS ?=
# NOTE: we only support wxWindows over GTK
PLATFORM_WX_CPPFLAGS= $(shell wx-config --cxxflags) $(PLATFORM_GTK_CPPFLAGS)
@@ -46,24 +45,23 @@ PLATFORM_BOOST_CPPFLAGS ?=
PLATFORM_BOOST_LDLAGS ?=
PLATFORM_BOOST_UTF_LIBS ?= -lboost_unit_test_framework
-ifeq (Ubuntu, $(findstring Ubuntu,$(LSB_RELEASE_ID)))
- PLATFORM_TK_CPPFLAGS=$(shell . /usr/lib/tk*/tkConfig.sh && echo -n $$TK_INCLUDE_SPEC $$TK_DEFS)
- PLATFORM_TK_LIBS=$(shell . /usr/lib/tk*/tkConfig.sh && echo -n $$TK_LIB_FLAG)
- PLATFORM_TK_LDFLAGS=
-
- PLATFORM_TCL_CPPFLAGS=
- PLATFORM_TCL_LIBS=-ltcl8.4
- PLATFORM_TCL_LDFLAGS=
+ifeq ($(buildbits),64)
+PLATFORM_TK_CPPFLAGS=$(shell . /usr/lib64/tkConfig.sh && echo -n $$TK_INCLUDE_SPEC $$TK_DEFS)
+PLATFORM_TK_LIBS=$(shell . /usr/lib64/tkConfig.sh && echo -n $$TK_LIB_FLAG)
else
- PLATFORM_TK_CPPFLAGS=-I$(shell . /usr/lib*/tkConfig.sh && echo -n $$TK_INC_DIR $$TK_DEFS)
- PLATFORM_TK_LIBS=$(shell . /usr/lib*/tkConfig.sh && echo -n $$TK_LIB_FLAG)
- PLATFORM_TK_LDFLAGS=
-
+PLATFORM_TK_CPPFLAGS=$(shell . /usr/lib/tkConfig.sh && echo -n $$TK_INCLUDE_SPEC $$TK_DEFS)
+PLATFORM_TK_LIBS=$(shell . /usr/lib/tkConfig.sh && echo -n $$TK_LIB_FLAG)
+endif
+PLATFORM_TK_LDFLAGS=
- PLATFORM_TCL_CPPFLAGS=
- PLATFORM_TCL_LIBS=-ltcl
- PLATFORM_TCL_LDFLAGS=
+ifeq ($(buildbits),64)
+PLATFORM_TCL_CPPFLAGS=$(shell . /usr/lib64/tclConfig.sh && echo -n $$TCL_INCLUDE_SPEC $$TCL_DEFS)
+PLATFORM_TCL_LIBS=$(shell . /usr/lib64/tclConfig.sh && echo -n $$(eval echo $$TCL_LIB_FLAG))
+else
+PLATFORM_TCL_CPPFLAGS=$(shell . /usr/lib/tclConfig.sh && echo -n $$TCL_INCLUDE_SPEC $$TCL_DEFS)
+PLATFORM_TCL_LIBS=$(shell . /usr/lib/tclConfig.sh && echo -n $$(eval echo $$TCL_LIB_FLAG))
endif
+PLATFORM_TCL_LDFLAGS=
PLATFORM_QT_CPPFLAGS ?= -I$(QTDIR)/include
PLATFORM_QT_LIBS ?= -lqt-mt
@@ -84,9 +82,6 @@ ifeq ($(sctp),lksctp)
PLATFORM_SCTP_LIBS?= -lsctp
endif
-PLATFORM_AIO_SUPPORT := \
- $(shell test "`ls -L /usr/lib*/librt.so* /lib*/librt.so*`" && echo -DACE_HAS_AIO_CALLS)
-
GNU_LIBPTHREAD_VERSION := $(shell getconf GNU_LIBPTHREAD_VERSION 2> /dev/null || echo Unknown)
ifeq (NPTL, $(word 1,$(GNU_LIBPTHREAD_VERSION)))
NPTL_VERS := $(subst ., ,$(word 2,$(GNU_LIBPTHREAD_VERSION)))
@@ -115,12 +110,7 @@ endif # ssl
SYSARCH := $(shell uname -m)
-ifeq ($(insure),1)
- CC = insure
- CXX = insure
-endif
-
PIC = -fPIC
AR ?= ar
-ARFLAGS = rsuv
+ARFLAGS ?= rsuv
RANLIB = @true
diff --git a/ACE/include/makeinclude/platform_linux_icc.GNU b/ACE/include/makeinclude/platform_linux_icc.GNU
index 66d756c755e..e430f2052c2 100644
--- a/ACE/include/makeinclude/platform_linux_icc.GNU
+++ b/ACE/include/makeinclude/platform_linux_icc.GNU
@@ -39,6 +39,10 @@ endif
ifeq (11.0,$(findstring 11.0,$(CXX_VERSION)))
CFLAGS += -wd1684
endif
+ifeq (12.0,$(findstring 12.0,$(CXX_VERSION)))
+ CPPFLAGS += -std=c++0x
+ no_hidden_visibility ?= 0
+endif
no_hidden_visibility ?= 1
@@ -54,22 +58,21 @@ ifeq ($(ipo),1)
CPPFLAGS += -ipo
endif
+
CFLAGS += -w1
ifeq ($(threads),1)
- CPPFLAGS += -D_REENTRANT $(PLATFORM_AIO_SUPPORT)
+ CPPFLAGS += -D_REENTRANT
endif # threads
-CCFLAGS += $(CFLAGS) $(IMPLICIT_TEMPLATES_FLAG) -ip
-DCFLAGS += -g
+CCFLAGS += $(CFLAGS) -ip
+DCFLAGS += -g -debug full
DLD = $(CXX)
LD = $(CXX)
LIBS += -ldl
ifeq ($(threads),1)
LIBS += -lpthread
- ifeq (-DACE_HAS_AIO_CALLS,$(PLATFORM_AIO_SUPPORT))
- LIBS += -lrt
- endif
+ LIBS += -lrt
endif
OCFLAGS += -O3
@@ -94,7 +97,7 @@ ifeq ($(shared_libs), 1)
ifneq ($static_libs_only), 1)
LDFLAGS += -Wl,-E
ifneq ($(no_hidden_visibility),1)
- CCFLAGS += -fvisibility=hidden
+ CCFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
else
CPPFLAGS += -DACE_HAS_CUSTOM_EXPORT_MACROS=0
endif # no_hidden_visibility
@@ -111,4 +114,3 @@ ifeq ($(threads),1)
PRELIB = @true
endif # ! PRELIB
endif
-
diff --git a/ACE/include/makeinclude/platform_linux_pgi.GNU b/ACE/include/makeinclude/platform_linux_pgi.GNU
index 38c9a454cba..3c0674d9866 100644
--- a/ACE/include/makeinclude/platform_linux_pgi.GNU
+++ b/ACE/include/makeinclude/platform_linux_pgi.GNU
@@ -14,7 +14,7 @@ ifeq ($(threads),1)
CPPFLAGS += -D_REENTRANT $(PLATFORM_AIO_SUPPORT)
endif # threads
-CCFLAGS += $(CFLAGS) $(IMPLICIT_TEMPLATES_FLAG)
+CCFLAGS += $(CFLAGS)
DCFLAGS += -g
DLD = $(CXX)
LD = $(CXX)
diff --git a/ACE/include/makeinclude/platform_linux_suncc.GNU b/ACE/include/makeinclude/platform_linux_suncc.GNU
index c49d17bbede..2aeb3c495aa 100644
--- a/ACE/include/makeinclude/platform_linux_suncc.GNU
+++ b/ACE/include/makeinclude/platform_linux_suncc.GNU
@@ -13,40 +13,35 @@ ifeq ($(insure),0)
CXX = CC
endif
-ifeq ($(threads),1)
- CPPFLAGS += -D_REENTRANT $(PLATFORM_AIO_SUPPORT)
-endif # threads
-
GNU_LIBPTHREAD_VERSION := $(shell getconf GNU_LIBPTHREAD_VERSION)
ifeq (NPTL, $(word 1,$(GNU_LIBPTHREAD_VERSION)))
CPPFLAGS += -DACE_HAS_LINUX_NPTL
endif
-CCFLAGS += $(CFLAGS) $(IMPLICIT_TEMPLATES_FLAG)
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += -ldl
+DCCFLAGS += -g
+DCFLAGS += -g
+DLD = $(CXX)
+LD = $(CXX)
+LIBS += -ldl
+OCCFLAGS = -O3
+OCFLAGS = -O3
+PRELIB = @true
+SOFLAGS += -shared
+PIC = -PIC
+
+SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \
+ $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
ifeq ($(threads),1)
- LIBS += -lpthread
- ifeq (-DACE_HAS_AIO_CALLS,$(PLATFORM_AIO_SUPPORT))
- LIBS += -lrt
- endif
+ CPPFLAGS += -D_REENTRANT
+ LIBS += -lpthread -lrt
endif
-OCFLAGS += -O3
-
ifeq ($(optimize),0)
# Disable all optimizing in code
CPPFLAGS += -O0
endif
-PIC =
-SOFLAGS += $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
-PRELIB = @true
ifeq ($(shared_libs), 1)
ifneq ($static_libs_only), 1)
@@ -66,6 +61,9 @@ ifeq ($(buildbits),64)
CFLAGS += -m64
endif
+# Enable GNU extensions
+CPPFLAGS+= -D_GNU_SOURCE
+
# Added line below to support "Executable Shared Object" files (as
# needed by the service configurator).
# Marius Kjeldahl <mariusk@sn.no, marius@funcom.com>
diff --git a/ACE/include/makeinclude/platform_lynxos.GNU b/ACE/include/makeinclude/platform_lynxos.GNU
index 6279f4d2624..f4314d758df 100644
--- a/ACE/include/makeinclude/platform_lynxos.GNU
+++ b/ACE/include/makeinclude/platform_lynxos.GNU
@@ -1,20 +1,9 @@
+# -*- Makefile -*-
# $Id$
-#
+
# LynxOS with g++. Defaults to LynxOS Version 4.0.0. For Version 4.2.0,
# for example, add "VERSION=4.2.0" to your make invocation.
-#### NOTE: It's best to create a file that includes this one, instead
-#### of symlinking it. That way, you can easily override the default
-#### configuration. For example, to configure for a PowerPC target, I
-#### use a include/makeinclude/platform_macros.GNU that contains the
-#### following lines (without comment markers):
-####
-#### LYNXTARGET = ppc
-#### include $(ACE_ROOT)/include/makeinclude/platform_lynxos.GNU
-####
-#### Similarly, the default VERSION and HOST_OS settings (see below)
-#### can be overridden for your particular platform.
-
ifeq ($(shell uname -s),LynxOS)
export VERSION=$(shell uname -r)
@@ -24,67 +13,20 @@ ifeq ($(shell uname -s),LynxOS)
else
CROSS-COMPILE = 1
- #### The following may need to be customized for your host or target type.
- #### Or, you can source the appropriate (for your shell) Lynx SETUP file
- #### before running "make".
-
ifeq (,$(VERSION))
export VERSION = 4.0.0
endif # VERSION
-
- ifeq (,$(LYNXTARGET))
- export LYNXTARGET = x86
- endif # LYNXTARGET
-
- ifeq (,$(OBJSFORMAT))
- export OBJSFORMAT = elf
- endif # OBJSFORMAT
-
- ifeq (,$(HOST_OS))
- export HOST_OS = linux
- endif # HOST_OS
-
- ifeq (,$(HOST_OS_REVISION))
- export HOST_OS_REVISION = $(shell uname -r)
- endif # HOST_OS_REVISION
-
- ifeq (,$(ENV_PREFIX))
- export ENV_PREFIX = /usr/lynx/$(VERSION)/$(LYNXTARGET)
- endif # ENV_PREFIX
-
- ifeq (,$(findstring $(ENV_PREFIX),$(PATH)))
- export PATH := $(ENV_PREFIX)/cdk/$(HOST_OS)-$(OBJSFORMAT)-$(LYNXTARGET)/bin:$(ENV_PREFIX)/cdk/$(HOST_OS)-$(OBJSFORMAT)-$(LYNXTARGET)/usr/bin:$(PATH)
- endif # PATH
endif # ! LynxOS
LYNXOS_MAJOR = $(shell echo $(VERSION) | awk -F. '{print $$1;}')
LYNXOS_MINOR = $(shell echo $(VERSION) | awk -F. '{print $$2;}')
-PLATFORM_XT_CPPFLAGS=
-PLATFORM_XT_LIBS=-lXm -lXt
-PLATFORM_XT_LDFLAGS=
-
-PLATFORM_X11_CPPFLAGS=
-PLATFORM_X11_LIBS=-lXp -lXpm -lXmu -lXext -lX11 -lSM -lICE
-PLATFORM_X11_LDFLAGS=
-
-PLATFORM_TCL_CPPFLAGS=
-PLATFORM_TCL_LIBS=-ltcl
-PLATFORM_TCL_LDFLAGS=
-
-PLATFORM_TK_CPPFLAGS=$(shell . /usr/lib/tkConfig.sh && echo -n $$TK_INC_DIR $$TK_DEFS)
-PLATFORM_TK_LIBS=-ltk $(PLATFORM_X11_LIBS)
-PLATFORM_TK_LDFLAGS=
-
-shared_libs ?= 1
optimize ?= 1
debug ?= 1
-pipes ?= 1
threads ?= 1
-exceptions ?= 1
ifeq ($(threads),1)
- CFLAGS += -mthreads
+ FLAGS_C_CC += -mthreads
SOFLAGS += -mthreads
endif
@@ -93,45 +35,57 @@ ifeq ($(rpc),1)
endif
ifeq ($(shared_libs),1)
- CPPFLAGS += -DACE_HAS_SVR4_DYNAMIC_LINKING
- LDFLAGS += -mshared
- LIBS += -ldl
-else
- LIBS += -lnetinet -lnsl
+ CPPFLAGS += -DACE_HAS_SVR4_DYNAMIC_LINKING
+ FLAGS_C_CC += -mshared
+ SOFLAGS += -mshared
+ LIBS += -ldl
+ ifeq ($(CROSS-COMPILE),1)
+ LDFLAGS += -Wl,-rpath-link,$(ACE_ROOT)/lib
+ endif
endif
ifeq (5.0.0,$(VERSION))
- LIBS += -lbsd
+ LIBS += -lnetinet
endif
CC = gcc
CXX = g++
-PIC = -fPIC
-CFLAGS += -Wpointer-arith -Wall -fsigned-char $(PIC)
-CFLAGS += -DACE_LYNXOS_MAJOR=$(LYNXOS_MAJOR) -DACE_LYNXOS_MINOR=$(LYNXOS_MINOR)
+
+AR = ar
+ARFLAGS = ruv
+CPPFLAGS += -DACE_LYNXOS_MAJOR=$(LYNXOS_MAJOR) -DACE_LYNXOS_MINOR=$(LYNXOS_MINOR)
DCFLAGS += -g
+DCCFLAGS += $(DCFLAGS)
DLD = $(CXX)
LD = $(CXX)
OCFLAGS += -O2
-AR = ar
-ARFLAGS = ruv
-RANLIB = @true
-SOFLAGS += $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
+OCCFLAGS = $(OCFLAGS)
+PIC = -fPIC
PRELIB = @true
+RANLIB = @true
+SOFLAGS += -shared
+
+PLATFORM_XT_CPPFLAGS=
+PLATFORM_XT_LIBS=-lXm -lXt
+PLATFORM_XT_LDFLAGS=
+
+PLATFORM_X11_CPPFLAGS=
+PLATFORM_X11_LIBS=-lXp -lXpm -lXmu -lXext -lX11 -lSM -lICE
+PLATFORM_X11_LDFLAGS=
+
+PLATFORM_TCL_CPPFLAGS=$(shell . /usr/lib/tclConfig.sh && echo -n $$TCL_INC_DIR $$TCL_DEFS)
+PLATFORM_TCL_LIBS=-ltcl8.0
+PLATFORM_TCL_LDFLAGS=
+
+PLATFORM_TK_CPPFLAGS=$(shell . /usr/lib/tkConfig.sh && echo -n $$TK_INC_DIR $$TK_DEFS) $(PLATFORM_X11_CPPFLAGS)
+PLATFORM_TK_LIBS=-ltk8.0 $(PLATFORM_XT_LIBS) $(PLATFORM_X11_LIBS)
+PLATFORM_TK_LDFLAGS=$(PLATFORM_X11_LDFLAGS)
# Test for template instantiation, add to SOFLAGS if SONAME set,
# add -E to LDFLAGS if using GNU ld
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
-
-ifeq ($(CXX_MAJOR_VERSION), 3)
- LDFLAGS += -L/usr/lib/thread
-endif
-
# To save much disk space, strip all executables. Comment the
# following line out if you want to debug. Or, add "POSTLINK="
# to your make invocation.
diff --git a/ACE/include/makeinclude/platform_macosx.GNU b/ACE/include/makeinclude/platform_macosx.GNU
index 582164ac98b..a75f1bc892a 100644
--- a/ACE/include/makeinclude/platform_macosx.GNU
+++ b/ACE/include/makeinclude/platform_macosx.GNU
@@ -1,21 +1,20 @@
+# -*- Makefile -*-
# $Id$
-# platform_macosx.GNU
+
# support for Mac OS X 10.2 (jaguar), 10.3 (panther)
# Note: /sw/lib & /sw/include are inserted for the convience of Fink
# users. Non-Fink users should simply create these directories to
# eliminate the warnings.
-exceptions ?= 1
threads ?= 1
debug ?= 1
optimize ?= 0
versioned_so ?= 0
-pipes ?= 1
with_ld = macosx
CC = gcc
CXX = g++
-CFLAGS += -Wall -Wpointer-arith -Wno-long-double -I/sw/include
+CFLAGS += -Wno-long-double -I/sw/include
DCFLAGS += -g
DLD = libtool
@@ -42,5 +41,3 @@ SOBUILD = -o $(VSHDIR)$*.dylib $<
# add -E to LDFLAGS if using GNU ld
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
diff --git a/ACE/include/makeinclude/platform_macosx_common.GNU b/ACE/include/makeinclude/platform_macosx_common.GNU
new file mode 100644
index 00000000000..318f63b8235
--- /dev/null
+++ b/ACE/include/makeinclude/platform_macosx_common.GNU
@@ -0,0 +1,54 @@
+# -*- Makefile -*-
+# $Id$
+
+# support for Mac OS X 10.4 (Tiger)
+# By default, this uses the default compiler selected using gcc_select.
+
+boost = 1
+zzip = 1
+zlib = 1
+threads ?= 1
+debug ?= 1
+optimize ?= 0
+ssl ?= 1
+versioned_so ?= 0
+universal ?= 0
+
+ifeq (,$(no_hidden_visibility))
+# Disable symbol visibility support by default.
+#
+# Apple's g++ 4 compiler doesn't appear to correctly support
+# visibility attributes, at least as well as the vanilla g++.
+ no_hidden_visibility = 1
+endif
+
+with_ld = macosx
+
+CC ?= gcc
+CXX ?= g++
+
+DCFLAGS += -g
+DLD = $(CXX)
+LD = $(CXX)
+#LIBS += -lstdc++.6 -lSystem -lSystemStubs
+
+OCFLAGS += -O2
+RANLIB = ranlib
+SOEXT = dylib
+SOFLAGS += -dynamiclib
+SOBUILD = -o $(VSHDIR)$*.dylib $<
+
+# Test for template instantiation, add to SOFLAGS if versioned_so set,
+# add -E to LDFLAGS if using GNU ld
+ifeq ($(findstring g++,$(CXX)),)#
+ include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
+else
+ include $(ACE_ROOT)/include/makeinclude/platform_clang_common.GNU
+endif
+
+LDFLAGS += -flat_namespace
+
+ifeq ($(universal),1)
+ CFLAGS += -arch i386 -arch ppc
+ LDFLAGS += -arch i386 -arch ppc
+endif
diff --git a/ACE/include/makeinclude/platform_macosx_icc.GNU b/ACE/include/makeinclude/platform_macosx_icc.GNU
index 472b5801eb3..0516f945126 100644
--- a/ACE/include/makeinclude/platform_macosx_icc.GNU
+++ b/ACE/include/makeinclude/platform_macosx_icc.GNU
@@ -1,6 +1,5 @@
# $Id$
-exceptions ?= 1
threads ?= 1
debug ?= 1
optimize ?= 0
@@ -46,7 +45,7 @@ ifeq ($(threads),1)
CPPFLAGS += -D_REENTRANT $(PLATFORM_AIO_SUPPORT)
endif # threads
-CCFLAGS += $(CFLAGS) $(IMPLICIT_TEMPLATES_FLAG) -ip
+CCFLAGS += $(CFLAGS) -ip
DCFLAGS += -g -debug full
DLD = $(CXX)
LD = $(CXX)
diff --git a/ACE/include/makeinclude/platform_macosx_iphone.GNU b/ACE/include/makeinclude/platform_macosx_iphone.GNU
new file mode 100644
index 00000000000..4d83b12f160
--- /dev/null
+++ b/ACE/include/makeinclude/platform_macosx_iphone.GNU
@@ -0,0 +1,52 @@
+# $Id$
+
+static_libs_only=1
+
+include $(ACE_ROOT)/include/makeinclude/platform_macosx_common.GNU
+
+XCODE:=/Developer
+
+ifeq ($(IPHONE_TARGET), SIMULATOR)
+ IPHONE_PLATFORM:=$(XCODE)/Platforms/iPhoneSimulator.platform/Developer
+ IPHONE_SDK:=$(IPHONE_PLATFORM)/SDKs/iPhoneSimulator${IPHONE_VERSION}.sdk
+ IPHONE_HARDWARE_ARCHITECTURE=i386
+
+ # crt1.10.6.o is missing under MacOSX 10.6, fallback to 10.5
+ # until apple provides the missing crt1.10.6.o
+ CFLAGS += -mmacosx-version-min=10.5
+ CXXFLAGS += -mmacosx-version-min=10.5
+ LDFLAGS += -mmacosx-version-min=10.5
+endif
+
+ifeq ($(IPHONE_TARGET), HARDWARE)
+ CROSS-COMPILE=1
+ IPHONE_PLATFORM:=$(XCODE)/Platforms/iPhoneOS.platform/Developer
+ IPHONE_SDK:=$(IPHONE_PLATFORM)/SDKs/iPhoneOS${IPHONE_VERSION}.sdk
+ IPHONE_HARDWARE_ARCHITECTURE=armv6
+ifeq ($(iphone_codesign),1)
+ CODESIGN_ALLOCATE:=$(IPHONE_PLATFORM)/usr/bin/codesign_allocate
+ POSTLINK=; codesign -f -s "iPhone Developer" $(BIN)
+endif
+ rwho = 0
+endif
+
+CC:=$(IPHONE_PLATFORM)/usr/bin/gcc
+CXX:=$(IPHONE_PLATFORM)/usr/bin/g++
+AR:=$(IPHONE_PLATFORM)/usr/bin/ar
+RANLIB:=$(IPHONE_PLATFORM)/usr/bin/ranlib
+DLD = $(CXX)
+LD = $(CXX)
+CFLAGS += -arch $(IPHONE_HARDWARE_ARCHITECTURE) -isysroot $(IPHONE_SDK)
+CXXFLAGS += -arch $(IPHONE_HARDWARE_ARCHITECTURE) -isysroot $(IPHONE_SDK)
+
+ifneq (,$(HOST_ROOT))
+ TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
+ TAO_IDL = $(HOST_ROOT)/bin/tao_idl
+ TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2
+ TAO_IDL_DEP = $(TAO_IDL)
+ TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
+ # make sure to use the target compiler, not the cross-compiler
+ # as preprocessor for the cross-compiled idl tools
+ TAO_IDL_PREPROCESSOR = gcc
+endif
+
diff --git a/ACE/include/makeinclude/platform_macosx_lion.GNU b/ACE/include/makeinclude/platform_macosx_lion.GNU
new file mode 100644
index 00000000000..cbaab50f2ab
--- /dev/null
+++ b/ACE/include/makeinclude/platform_macosx_lion.GNU
@@ -0,0 +1,22 @@
+# $Id$
+
+ssl=0
+
+INSLIB?=$(ACE_ROOT)/lib
+
+ifeq ($(buildbits),32)
+ FLAGS_C_CC += -m32
+ LDFLAGS += -m32
+endif
+ifeq ($(buildbits),64)
+ FLAGS_C_CC += -m64
+ LDFLAGS += -m64
+endif
+ifeq ($(buildbits),universal)
+ FLAGS_C_CC += -arch i386 -arch x86_64
+ LDFLAGS += -arch i386 -arch x86_64
+endif
+
+PLATFORM_NDDS_FLAGS=-ppPath cpp-4.2 -I.
+
+include $(ACE_ROOT)/include/makeinclude/platform_macosx_common.GNU
diff --git a/ACE/include/makeinclude/platform_macosx_panther.GNU b/ACE/include/makeinclude/platform_macosx_panther.GNU
index c542054de1a..26a4587a4e8 100644
--- a/ACE/include/makeinclude/platform_macosx_panther.GNU
+++ b/ACE/include/makeinclude/platform_macosx_panther.GNU
@@ -1,19 +1,18 @@
+# -*- Makefile -*-
# $Id$
+
# platform_macosx.GNU
# support for Mac OS X 10.3 (Panther)
-exceptions ?= 1
threads ?= 1
debug ?= 1
optimize ?= 0
versioned_so ?= 0
with_ld = macosx
-pipes ?= 1
-
CC = gcc
CXX = g++
-CFLAGS += -Wall -Wpointer-arith -Wno-long-double
+CFLAGS += -Wno-long-double
DCFLAGS += -g
DLD = libtool
@@ -32,4 +31,4 @@ SOBUILD = -o $(VSHDIR)$*.dylib $<
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
LDFLAGS += -flat_namespace -undefined warning
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
+CCFLAGS += $(CFLAGS) $(FLAGS_C_CC)
diff --git a/ACE/include/makeinclude/platform_macosx_snowleopard.GNU b/ACE/include/makeinclude/platform_macosx_snowleopard.GNU
new file mode 100644
index 00000000000..bf6363d6cbb
--- /dev/null
+++ b/ACE/include/makeinclude/platform_macosx_snowleopard.GNU
@@ -0,0 +1,19 @@
+# $Id$
+
+ifeq ($(buildbits),32)
+ FLAGS_C_CC += -m32
+ LDFLAGS += -m32
+endif
+ifeq ($(buildbits),64)
+ FLAGS_C_CC += -m64
+ LDFLAGS += -m64
+endif
+ifeq ($(buildbits),universal)
+ FLAGS_C_CC += -arch i386 -arch x86_64
+ LDFLAGS += -arch i386 -arch x86_64
+endif
+
+PLATFORM_NDDS_FLAGS="-ppPath cpp-4.2 -I."
+
+include $(ACE_ROOT)/include/makeinclude/platform_macosx_common.GNU
+
diff --git a/ACE/include/makeinclude/platform_macosx_tiger.GNU b/ACE/include/makeinclude/platform_macosx_tiger.GNU
index 8629f209ab7..6889fb7b6dd 100644
--- a/ACE/include/makeinclude/platform_macosx_tiger.GNU
+++ b/ACE/include/makeinclude/platform_macosx_tiger.GNU
@@ -3,54 +3,6 @@
# support for Mac OS X 10.4 (Tiger)
# By default, this uses the default compiler selected using gcc_select.
-cidl = 1
-boost = 1
-zzip = 1
-zlib = 1
-exceptions ?= 1
-threads ?= 1
-debug ?= 1
-optimize ?= 0
-ssl ?= 1
-versioned_so ?= 0
-universal ?= 0
+include $(ACE_ROOT)/include/makeinclude/platform_macosx_common.GNU
-ifeq (,$(no_hidden_visibility))
-# Disable symbol visibility support by default.
-#
-# Apple's g++ 4 compiler doesn't appear to correctly support
-# visibility attributes, at least as well as the vanilla g++.
- no_hidden_visibility = 1
-endif
-
-with_ld = macosx
-
-pipes ?= 1
-
-CC = gcc
-CXX = g++
-CFLAGS += -Wall -Wpointer-arith -Wno-long-double
-
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-#LIBS += -lstdc++.6 -lSystem -lSystemStubs
-
-OCFLAGS += -O2
-RANLIB = ranlib
-SOEXT = dylib
-SOFLAGS += -dynamiclib
-SOBUILD = -o $(VSHDIR)$*.dylib $<
-
-# Test for template instantiation, add to SOFLAGS if versioned_so set,
-# add -E to LDFLAGS if using GNU ld
-#
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-LDFLAGS += -flat_namespace
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
-
-ifeq ($(universal),1)
- CFLAGS += -arch i386 -arch ppc
- LDFLAGS += -arch i386 -arch ppc
-endif
+CFLAGS += -Wno-long-double \ No newline at end of file
diff --git a/ACE/include/makeinclude/platform_mingw32.GNU b/ACE/include/makeinclude/platform_mingw32.GNU
index 69a548f2121..62f00982144 100644
--- a/ACE/include/makeinclude/platform_mingw32.GNU
+++ b/ACE/include/makeinclude/platform_mingw32.GNU
@@ -1,44 +1,10 @@
+# -*- Makefile -*-
# $Id$
-
-# This file should allow to build ACE for mingw32 with mingw tools.
-# Edit to change TCPU below.
-#
-# Don't forget to define the ACE_ROOT environment variable!
-
-# mingw32 packages as distributed from sourceforge:
-# http://sourceforge.net/project/showfiles.php?group_id=2435&release_id=15084
-# See also http://www.mingw.org.
-#
-# You will also need a GNU Make for win32 (so you can actualy
-# USE this file :-). Tested with MSYS from MinGW
-#
-# Caveat:
-#
-# If ld complains about not finding crt2.o, dllcrt2.o or gcrt2.o
-# when linking executables, you will need to modify the specs file for gcc:
-# lib/gcc-lib/mingw32/2.95.2/specs
-# look for the line after the one begining ``*startfile:'', and add
-# full path as prefix for crt2, dllcrt2 and gcrt2
-# (i.e., change
-# ... %{!shared:%{!mdll:crt2%O%s}} ...
-# with
-# ... %{!shared:%{!mdll:c:/mingw32/lib/gcc-lib/mingw32/2.95.2/crt2%O%s}} ...
-# or something similar depending on the location of your instalation).
-
#
-# Chose your target CPU (by default we set it to pentiumpro. In your
-# platform_macros.GNU file you can override this to pentium, i486 or i386
+# This file should allow to build ACE for mingw32 with mingw tools.
#
-TCPU ?= pentiumpro
-
-mingw32 ?= 1
-# MingW 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
-
-# MinGW doesn't have rwho
-rwho ?= 0
+mingw32 = 1
# MinGW has wfmo and registry
wfmo ?= 1
@@ -47,15 +13,23 @@ winregistry ?= 1
# We can use the QoS support
qos ?= 1
-# Disable auto-import warnings. The MingW 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
-
PWD=$(subst \,/,$(shell pwd))
-PLATFORM_SSL_LIBS ?= -lssl32 -leay32
+ifeq (cmd,$(findstring cmd,$(SHELL)))
+ CMDSEP = &
+ vxworks_ntbuild = 1
+ MKDIR_NTSYTLE = 1
+ ACE_MKDIR = mkdir
+ ECHO_BLANK_LINE = cmd /c echo.
+ PRELIB:=
+endif
include $(ACE_ROOT)/include/makeinclude/platform_gnuwin32_common.GNU
-PRELIB:=
+PLATFORM_SSL_LIBS ?= -lssl32 -leay32
+
+ifeq ($(winsock2),1)
+ LIBS += -lws2_32 -lmswsock
+endif
+
+LIBS += -lwsock32 -lnetapi32
diff --git a/ACE/include/makeinclude/platform_mvs.GNU b/ACE/include/makeinclude/platform_mvs.GNU
deleted file mode 100644
index 579b7454378..00000000000
--- a/ACE/include/makeinclude/platform_mvs.GNU
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id$
-
-# For MVS OpenEdition platform
-
-debug ?= 0
-
-CXX = cxx
-DCFLAGS += -g
-DCCFLAGS += -g
-CPPFLAGS += -+ -W "c,langlvl(LONGLONG)" -W c,xplink -W "c,rtti(dynamiccast)"
-LDFLAGS += -W l,xplink
-DEFFLAGS = -D_ALL_SOURCE -DNDEBUG
-CC = $(CXX)
-LD = $(CXX)
-DLD = $(CXX)
-AR = ar
-ARFLAGS = ruv
-RANLIB = echo
-#LDFLAGS += -W l,p,map
-
-# MVCMD needed because cxx does not use the -o option to place objects
-MVCMD = @test ! -s $(@F) || mv $(@F) $(@D)/$(@F)
-
-# Used to build static executables
-ACELIB_STATIC = -lACE
-
-# Used to build shared executables (much smaller in size)
-ACELIB_DLL = $(ACE_ROOT)/lib/libACE.x
-
-# set accordingly to build either static or shared executables
-ACELIB = $(ACELIB_DLL)
-
-SOFLAGS += -W l,dll
-PIC = -W c,exportall
-static_libs ?= 1
diff --git a/ACE/include/makeinclude/platform_netbsd.GNU b/ACE/include/makeinclude/platform_netbsd.GNU
index 7395d52ae89..322b0647d0f 100644
--- a/ACE/include/makeinclude/platform_netbsd.GNU
+++ b/ACE/include/makeinclude/platform_netbsd.GNU
@@ -1,44 +1,39 @@
+# -*- Makefile -*-
# $Id$
# platform_netbsd.GNU
-versioned_so = 1
-
-exceptions ?= 1
debug ?= 1
optimize ?= 1
threads ?= 1
-pipes ?= 1
-no_hidden_visibility ?= 1
+versioned_so ?= 1
CC = gcc
-CXX = g++
+CXX = g++
-CFLAGS += -W -Wall -Wpointer-arith
+AR = ar
+ARFLAGS = ruv
+CPPFLAGS += -I/usr/local/include
DCFLAGS += -g
-LDFLAGS += -Wl,-rpath $(ACE_ROOT)/lib
+DCCFLAGS += $(DCFLAGS)
DLD = $(CXX)
-LD = $(CXX)
-LIBS +=
+LD = $(CXX)
+LDFLAGS += -L/usr/local/lib
OCFLAGS += -O2
+OCCFLAGS = $(OCFLAGS)
PIC = -fpic
-AR = ar
-ARFLAGS = ruv
+PRELIB = @true
RANLIB = ranlib
+SOFLAGS += -shared
-SOFLAGS += $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @echo
+SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
ifeq ($(threads),1)
-LDFLAGS += -pthread
-CFLAGS += -D_REENTRANT -DACE_HAS_THREADS
+ LDFLAGS += -pthread
+ CPPFLAGS += -D_REENTRANT -DACE_HAS_THREADS
endif # threads
-# Test for template instantiation, add to SOFLAGS if versioned_so set,
+# Test for template instantiation, add to versioned_so if versioned_so set,
# add -E to LDFLAGS if using GNU ld
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
-
diff --git a/ACE/include/makeinclude/platform_openbsd.GNU b/ACE/include/makeinclude/platform_openbsd.GNU
index af0e6dd7304..3ce7630d2c9 100644
--- a/ACE/include/makeinclude/platform_openbsd.GNU
+++ b/ACE/include/makeinclude/platform_openbsd.GNU
@@ -1,50 +1,69 @@
+# -*- Makefile -*-
# $Id$
# platform_openbsd.GNU
-versioned_so = 1
-
-exceptions ?= 1
debug ?= 1
optimize ?= 1
threads ?= 1
-pipes ?= 1
CC = gcc
-CXX = g++
+CXX = g++
-CFLAGS += -W -Wall -Wpointer-arith
+AR = ar
+ARFLAGS = ruv
+CPPFLAGS += -I/usr/local/include
DCFLAGS += -g
-LDFLAGS += -Wl,-rpath $(ACE_ROOT)/lib
+DCCFLAGS += $(DCFLAGS)
DLD = $(CXX)
-LD = $(CXX)
-LIBS +=
+LD = $(CXX)
+LDFLAGS += -L/usr/local/lib
OCFLAGS += -O2
+OCCFLAGS = $(OCFLAGS)
PIC = -fpic
-AR = ar
-ARFLAGS = ruv
+PRELIB = @true
RANLIB = ranlib
-
-#SOFLAGS += -Bshareable -x /usr/lib/c++rt0.o
-SOFLAGS += $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @echo
+SOFLAGS += -shared
ifeq ($(threads),1)
-LDFLAGS += -pthread
-CFLAGS += -D_THREAD_SAFE -DACE_HAS_THREADS
+ CPPFLAGS += -D_THREAD_SAFE
+ FLAGS_C_CC += -pthread
+ SOFLAGS += -pthread
endif # threads
-# Setting the internal name and version of shared libraries isn't supported
-# by OpenBSD. In fact, the -h option gives an error and interestingly
-# enough, the -soname option doesn't but just ignores its parameter.
-# This tells platform_g++_common.GNU not to add these link options.
-with_ld = openbsd
+PLATFORM_X11_CPPFLAGS = -I/usr/X11R6/include
+PLATFORM_X11_LIBS = -lX11
+PLATFORM_X11_LDFLAGS = -L/usr/X11R6/lib
+
+PLATFORM_XT_CPPFLAGS =
+PLATFORM_XT_LIBS = -lXt
+PLATFORM_XT_LDFLAGS =
+
+PLATFORM_FL_CPPFLAGS =
+PLATFORM_FL_LIBS = -lfltk -lfltk_forms -lfltk_gl
+PLATFORM_FL_LDFLAGS =
-# Test for template instantiation, add to SOFLAGS if versioned_so set,
+PLATFORM_GL_CPPFLAGS = -I/usr/X11R6/include
+PLATFORM_GL_LIBS = -lGL
+PLATFORM_GL_LDFLAGS = -L/usr/X11R6/lib
+
+PLATFORM_GTK_CPPFLAGS = $(shell gtk-config --cflags)
+PLATFORM_GTK_LIBS = $(shell gtk-config --libs)
+PLATFORM_GTK_LDFLAGS =
+
+PLATFORM_FOX_CPPFLAGS ?= -I/usr/include/fox
+PLATFORM_FOX_LIBS ?= -lFOX
+PLATFORM_FOX_LDFLAGS ?=
+
+PLATFORM_TK_CPPFLAGS=$(shell . /usr/local/lib/tk*/tkConfig.sh && echo -n $$TK_INCLUDE_SPEC) $(PLATFORM_X11_CPPFLAGS)
+PLATFORM_TK_LIBS=$(shell . /usr/local/lib/tk*/tkConfig.sh && echo -n $$TK_LIB_FLAG) $(PLATFORM_X11_LIBS)
+PLATFORM_TK_LDFLAGS=$(PLATFORM_X11_LDFLAGS)
+
+PLATFORM_TCL_CPPFLAGS=$(shell . /usr/local/lib/tcl*/tclConfig.sh && echo -n $$TCL_INCLUDE_SPEC)
+PLATFORM_TCL_LIBS=$(shell . /usr/local/lib/tcl*/tclConfig.sh && echo -n $$TCL_LIB_FLAG)
+PLATFORM_TCL_LDFLAGS=
+
+# Test for template instantiation, add to versioned_so if versioned_so set,
# add -E to LDFLAGS if using GNU ld
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
-
diff --git a/ACE/include/makeinclude/platform_openvms.GNU b/ACE/include/makeinclude/platform_openvms.GNU
index 0cd65627312..e6491ee0f44 100644
--- a/ACE/include/makeinclude/platform_openvms.GNU
+++ b/ACE/include/makeinclude/platform_openvms.GNU
@@ -4,7 +4,6 @@
ACE_OPENVMS = 1
versioned_so ?= 0
-exceptions ?= 1
debug ?= 1
optimize ?= 0
threads ?= 1
diff --git a/ACE/include/makeinclude/platform_qnx_gcc.GNU b/ACE/include/makeinclude/platform_qnx_gcc.GNU
new file mode 100644
index 00000000000..bf5f0b7a683
--- /dev/null
+++ b/ACE/include/makeinclude/platform_qnx_gcc.GNU
@@ -0,0 +1,41 @@
+# $Id$
+#
+# QNX/RTP hosted, using GCC
+
+inline ?= 1
+debug ?= 1
+optimize ?= 0
+threads ?= 1
+pipes ?= 0
+
+CCFLAGS += -fexceptions
+LDFLAGS += -fexceptions
+
+ifeq ($(inline),1)
+CCFLAGS += -finline-functions
+else
+CCFLAGS += -fno-inline
+endif # inline
+
+DCFLAGS += -ggdb
+DCCFLAGS += -ggdb
+
+ifeq ($(optimize),1)
+OCFLAGS += -O3
+endif #optimize
+
+DLD = $(CXX)
+LD = $(CXX)
+
+LIBS += -lsocket -lstdc++ -lm
+
+PIC = -fPIC
+ARFLAGS = ruv
+SOFLAGS += $(CPPFLAGS) -shared
+SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
+PRELIB = @true
+
+# Test for template instantiation, add to SOFLAGS if SONAME set,
+# add -E to LDFLAGS if using GNU ld
+#
+include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
diff --git a/ACE/include/makeinclude/platform_qnx_neutrino.GNU b/ACE/include/makeinclude/platform_qnx_neutrino.GNU
deleted file mode 100644
index 2bd92551f7b..00000000000
--- a/ACE/include/makeinclude/platform_qnx_neutrino.GNU
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id$
-
-# QNX 4.25 hosted GNU g++ for Neutrino 2.0
-
-CROSS-COMPILE = 1
-static_libs_only = 1
-
-debug ?= 1
-optimize ?= 1
-pipes ?= 1
-
-CC ?= i386-nto-gcc
-CXX ?= i386-nto-g++
-
-CFLAGS += -W -Wall -Wpointer-arith
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS +=
-LIBS += -lsocket -lstdc++
-OCFLAGS += -O2
-PIC = -fPIC
-AR ?= i386-nto-ar
-ARFLAGS = ruv
-RANLIB ?= i386-nto-ranlib
-SOFLAGS += -G $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
-
-# Test for template instantiation, add to SOFLAGS if SONAME set,
-# add -E to LDFLAGS if using GNU ld
-#
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
diff --git a/ACE/include/makeinclude/platform_qnx_rtp_gcc.GNU b/ACE/include/makeinclude/platform_qnx_rtp_gcc.GNU
deleted file mode 100644
index cc0a6db11aa..00000000000
--- a/ACE/include/makeinclude/platform_qnx_rtp_gcc.GNU
+++ /dev/null
@@ -1,51 +0,0 @@
-# $Id$
-#
-# QNX/RTP hosted, using gcc-2.95.2
-
-inline ?= 1
-debug ?= 1
-optimize ?= 0
-exceptions ?= 1
-threads ?= 1
-ifeq ($(exceptions),1)
- CCFLAGS += -fexceptions
- LDFLAGS += -fexceptions
-else
- CCFLAGS += -fno-exceptions
- LDFLAGS += -fno-exceptions
-endif # ! exceptions
-
-ifeq ($(inline),1)
- CCFLAGS += -finline-functions
-else
- CCFLAGS += -fno-inline
-endif # inline
-
-ifeq ($(debug),1)
- DCFLAGS += -gdwarf-2
-else # debug excludes optimize due to g++ internal compiler error
- ifeq ($(optimize),1)
- OCFLAGS += -O3
- endif #optimize
-endif #debug
-CC ?= gcc
-CXX ?= g++
-
-CFLAGS += -pipe -W -Wall -Wpointer-arith
-
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += -lsocket -lstdc++ -lm
-
-PIC = -fPIC
-AR ?= ar
-ARFLAGS = ruv
-SOFLAGS += $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
-
-# Test for template instantiation, add to SOFLAGS if SONAME set,
-# add -E to LDFLAGS if using GNU ld
-#
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
diff --git a/ACE/include/makeinclude/platform_rtems.x_g++.GNU b/ACE/include/makeinclude/platform_rtems.x_g++.GNU
index b68661d23fc..785c1a9d197 100644
--- a/ACE/include/makeinclude/platform_rtems.x_g++.GNU
+++ b/ACE/include/makeinclude/platform_rtems.x_g++.GNU
@@ -1,14 +1,13 @@
+# -*- Makefile -*-
# $Id$
-#
+
# RTEMS 4.6.6 and later with GNU g++.
CROSS-COMPILE = 1
debug ?= 1
optimize ?= 1
-exceptions ?= 1
threads ?= 1
-pipes ?= 1
shared_libs =
static_libs = 1
@@ -16,11 +15,9 @@ rwho = 0
ifneq (,$(HOST_ROOT))
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
+ TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2
TAO_IDL_DEP = $(TAO_IDL)
TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
- CIDLC_DEP = $(CIDLC)
endif
ifeq (,$(RTEMS_MAKEFILE_PATH))
@@ -43,8 +40,7 @@ ifeq (no,$(RTEMS_HAS_NETWORKING))
CCFLAGS += -DACE_LACKS_NETWORKING
endif
-CFLAGS += -specs bsp_specs -qrtems -D_REENTRANT -fasm -fno-builtin -fno-defer-pop -fvolatile -W -Wall -DACE_HAS_RTEMS -B$(RTEMS_MAKEFILE_PATH)/lib
-CCFLAGS += -specs bsp_specs -qrtems -D_REENTRANT -fasm -fno-builtin -fno-defer-pop -fvolatile -W -Wall -DACE_HAS_RTEMS -B$(RTEMS_MAKEFILE_PATH)/lib
+CFLAGS += -specs bsp_specs -qrtems -D_REENTRANT -fasm -fno-builtin -fno-defer-pop -fvolatile -DACE_HAS_RTEMS -B$(RTEMS_MAKEFILE_PATH)/lib
DCFLAGS += -g
DCCFLAGS += -g
DLD = $(LD)
@@ -54,4 +50,3 @@ LD = $(CXX)
LDFLAGS += -Wl,--allow-multiple-definition -B$(RTEMS_MAKEFILE_PATH)/lib -Wl,-Ttext,0x00100000
OCFLAGS += -O
PIC =
-
diff --git a/ACE/include/makeinclude/platform_sunos5_common.GNU b/ACE/include/makeinclude/platform_sunos5_common.GNU
index e968af141f6..e335914b016 100644
--- a/ACE/include/makeinclude/platform_sunos5_common.GNU
+++ b/ACE/include/makeinclude/platform_sunos5_common.GNU
@@ -21,8 +21,7 @@ endif
kstat ?= 1
ifeq ($(kstat),1)
# Unguard the raw monitor code and link the system lib.
- CFLAGS += -DACE_HAS_KSTAT
- CCFLAGS += -DACE_HAS_KSTAT
+ FLAGS_C_CC += -DACE_HAS_KSTAT
LIBS += -lkstat
endif
diff --git a/ACE/include/makeinclude/platform_sunos5_g++.GNU b/ACE/include/makeinclude/platform_sunos5_g++.GNU
index 34b7bdc7d1e..d0c2fc5cdbc 100644
--- a/ACE/include/makeinclude/platform_sunos5_g++.GNU
+++ b/ACE/include/makeinclude/platform_sunos5_g++.GNU
@@ -1,5 +1,4 @@
# -*- Makefile -*-
-
# $Id$
# SunOS 5.x (Solaris 2.x) with g++
@@ -10,13 +9,12 @@
debug ?= 1
optimize ?= 1
threads ?= 1
-exceptions ?= 1
-pipes ?= 1
buildbits ?= 32
-ifeq ($(exceptions),0)
- CCFLAGS += -fno-exceptions
-endif # exceptions
+ifeq ($(buildbits),64)
+ FLAGS_C_CC += -m64
+ LDFLAGS += -m64
+endif
ifeq ($(shell /bin/uname -m),i86pc)
#### gcc on Solaris86 doesn't use -g
@@ -29,8 +27,6 @@ endif # ! i86pc
CC = gcc
CXX = g++
-CFLAGS += -W -Wall -Wpointer-arith
-CCFLAGS += -W -Wall -Wpointer-arith
ifeq ($(threads),1)
CPPFLAGS += -D_REENTRANT
@@ -58,8 +54,6 @@ include $(ACE_ROOT)/include/makeinclude/platform_sunos5_common.GNU
#
include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-CCFLAGS += $(TEMPLATES_FLAG)
-
# Make sure we resolve all symbols at link time, see bugzilla 2710
LDFLAGS += -z now
diff --git a/ACE/include/makeinclude/platform_sunos5_sunc++.GNU b/ACE/include/makeinclude/platform_sunos5_sunc++.GNU
index 5bf5127adaf..6e5ee2e753e 100644
--- a/ACE/include/makeinclude/platform_sunos5_sunc++.GNU
+++ b/ACE/include/makeinclude/platform_sunos5_sunc++.GNU
@@ -42,12 +42,15 @@
compat4 ?= 0
debug ?= 1
-distrib ?= 0
+distrib ?= 1
+rwtools ?= 0
stdcpplib ?= 1
+stlport ?= 0
threads ?= 1
versioned_so ?= 1
tk_reactor ?= 0
ace_with_x11 ?= 0
+no_annotations ?= 1
no_hidden_visibility ?= 1
templates ?= automatic
@@ -71,8 +74,6 @@ ifeq (C++ 5.4,$(findstring C++ 5.4,$(CC_VERSION)))
ACE_CC_PREPROCESSOR = cc
endif
-PLATFORM_STLPORT_CPPFLAGS = -library=stlport4
-
ifeq ($(atomic_ops_sparc),1)
CFLAGS += -DACE_HAS_BUILTIN_ATOMIC_OP -DACE_INCLUDE_ATOMIC_OP_SPARC
endif
@@ -107,11 +108,10 @@ ifeq (C++ 5,$(findstring C++ 5,$(CC_VERSION)))
ifeq (C++ 5.0,$(findstring C++ 5.0,$(CC_VERSION)))
inline = 0
else
- ifeq (C++ 5.1,$(findstring C++ 5.1,$(CC_VERSION)))
+ ifeq (C++ 5.1 ,$(findstring C++ 5.1 ,$(CC_VERSION)))
inline = 0
else # ! 5.1
inline ?= 1
- exceptions ?= 1
endif # 5.2 or greater
endif #! 5.0
@@ -124,20 +124,7 @@ ifeq (C++ 5,$(findstring C++ 5,$(CC_VERSION)))
CCFLAGS += -compat=4
CCFLAGS += -features=rtti
else
- #### Use old iostreams.
- ifeq (C++ 5.0,$(findstring C++ 5.0,$(CC_VERSION)))
- ifeq (1,$(stdcpplib))
- CCFLAGS += -library=Cstd
- else
- CCFLAGS += -library=iostream,no%Cstd
- CPPFLAGS += -DACE_USES_OLD_IOSTREAMS
- endif # stdcpplib
- else
- ifeq (0,$(stdcpplib))
- CCFLAGS += -library=iostream
- CPPFLAGS += -DACE_USES_OLD_IOSTREAMS
- endif # stdcpplib
-
+ ifneq (C++ 5.0,$(findstring C++ 5.0,$(CC_VERSION)))
# If 64-bit build is desired, turn that on. If no code gen options
# are given to Forte 6, the default build is 32-bit, even when
# building on a 64-bit system. Specifying xarch=v9 generates code
@@ -159,9 +146,14 @@ ifeq (C++ 5,$(findstring C++ 5,$(CC_VERSION)))
CFLAGS += -m64
LDFLAGS += -m64
else
- CFLAGS += -xarch=v9
- LDFLAGS += -xarch=v9
- endif
+ ifeq (C++ 5.10,$(findstring C++ 5.10,$(CC_VERSION)))
+ CFLAGS += -m64
+ LDFLAGS += -m64
+ else
+ CFLAGS += -xarch=v9
+ LDFLAGS += -xarch=v9
+ endif # C++ 5.10
+ endif # C++ 5.9
endif # C++ 5.8
endif # C++ 5.7
endif # buildbits
@@ -169,30 +161,6 @@ ifeq (C++ 5,$(findstring C++ 5,$(CC_VERSION)))
endif # compat4 requested
endif # CC 5.0 or later
-CCFLAGS += $(TEMPLATES_FLAG)
-
-#### Sun CC-specific "Pure virtual function called" bug fix trigger.
-#### XXX: Shouldn't this go into a compiler version specific guard ???
-CPPFLAGS += -DSUN_CC_HAS_PVFC_BUG
-
-#### Exception handling breaks on MP machines prior to Sun C++ 4.2
-#### with jumbo patch 104631-02, see ace/config-sunos5.5.h.
-#### If you are using a version of Sun C++ prior to 4,2, or haven't
-#### applied that jumbo patch to your 4.2, or don't want to pay the
-#### performance penalty of exception handling, then use the default
-#### of no exceptions. If you want to enable exception handling,
-#### add "exceptions=1" to your "make" invocation.
-ifeq (0,$(exceptions))
- CCFLAGS += -noex
- ifeq (C++ 5.6,$(findstring C++ 5.6,$(CC_VERSION)))
- override stlport = 1
- else
- ifeq (C++ 5.7,$(findstring C++ 5.7,$(CC_VERSION)))
- override stlport = 1
- endif
- endif
-endif # ! exceptions
-
ifeq ($(shared_libs), 1)
ifneq ($(static_libs_only), 1)
@@ -221,15 +189,43 @@ include $(ACE_ROOT)/include/makeinclude/platform_sunos5_common.GNU
LIBS += -lsocket -lrt -laio -ldl -lnsl -lgen -lposix4 -ladm
-# Sun Studio will not create a default dependency on libCrun and
-# libCstd when building a shared library with the -G option.
-stlport ?= 0
-ifeq ($(stlport),0)
- LIBS += -lCrun -lCstd
+# Support alternate CC libraries (i.e. STLport, Tools.h++, Cstd)
+# See: http://docs.sun.com/app/docs/doc/820-7599/bkaty?a=view
+ifeq ($(stlport),1)
+ CC_LIBRARY = stlport4
+ PLATFORM_STLPORT_CCFLAGS += -library=$(CC_LIBRARY)
+ PLATFORM_STLPORT_LDFLAGS += -library=$(CC_LIBRARY)
+else
+ ifeq ($(rwtools),1)
+ ifeq ($(stdcpplib),1)
+ CC_LIBRARY = rwtools7_std
+ else
+ CC_LIBRARY = rwtools7,iostream
+ CPPFLAGS += -DACE_USES_OLD_IOSTREAMS
+ endif
+ else # default
+ ifeq ($(stdcpplib),1)
+ CC_LIBRARY = Cstd
+ else
+ CC_LIBRARY = no%Cstd,iostream
+ CPPFLAGS += -DACE_USES_OLD_IOSTREAMS
+ endif
+ endif
+ CCFLAGS += -library=$(CC_LIBRARY)
+ LDFLAGS += -library=$(CC_LIBRARY)
endif
-LDFLAGS += -xildoff
+### CC 5.10 enables annotation support by default; allow user to override
+### new behavior. This also provides a work around for 64-bit linker crashes,
+### see: http://defect.opensolaris.org/bz/show_bug.cgi?id=9720
+ifeq (C++ 5.10,$(findstring C++ 5.10,$(CC_VERSION)))
+ ifeq ($(no_annotations),1)
+ LDFLAGS += -xannotate=no
+ endif
+endif
+LDFLAGS += -xildoff
+CPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS
OCFLAGS += -xO4
PIC = -KPIC
AR = CC
diff --git a/ACE/include/makeinclude/platform_tandem.GNU b/ACE/include/makeinclude/platform_tandem.GNU
index 7081e560849..c5aace6eb97 100644
--- a/ACE/include/makeinclude/platform_tandem.GNU
+++ b/ACE/include/makeinclude/platform_tandem.GNU
@@ -11,7 +11,6 @@ CC = cc
CXX = NCC
DLD = $(CXX)
LD = $(CXX)
-CPPFLAGS += -no_exceptions
CPPFLAGS += -I/usr/include3.18
CPPFLAGS += -D_REENTRANT
#CPPFLAGS += -ptused -prelink
@@ -58,9 +57,9 @@ SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
#INCDIR += -I/usr/include -I/usr/include3.18
# -I /usr/ucbinclude
#### No threads
-#CCFLAGS += -no_exceptions -pta $(WARNOFF) $(INCDIR)
+#CCFLAGS += -pta $(WARNOFF) $(INCDIR)
#### Threads
-#CCFLAGS += -D_REENTRANT -no_exceptions -pta $(WARNOFF)
+#CCFLAGS += -D_REENTRANT -pta $(WARNOFF)
#DLD = $(CXX)
#LD = $(CXX)
diff --git a/ACE/include/makeinclude/platform_tru64_cxx.GNU b/ACE/include/makeinclude/platform_tru64_cxx.GNU
deleted file mode 100644
index 0d43f8cc114..00000000000
--- a/ACE/include/makeinclude/platform_tru64_cxx.GNU
+++ /dev/null
@@ -1,142 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with
-# Digital UNIX using the cxx compiler.
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_pre.GNU
-
-# Note that TAO has not been tested with debug=0 on this platform. So
-# you should be careful when turning off debug.
-debug ?= 1
-
-# exceptions=1 is the default on this platform. exceptions=0 has not
-# been tested. See the bottom of this file for more. Turning off exceptions
-# on this platform can cause bad things to happen.
-exceptions ?= 1
-
-threads ?= 1
-
-# Use of Standard C++ Library requires some flags to be added to the
-# compile line
-#
-stdcpplib ?= 1
-
-CC = cxx
-CXX = $(CC)
-
-# Note: Just get the version if it hasnt been defined so far.
-#
-ifndef CXX_VERSION
- CXX_VERSION := $(shell $(CXX) -V)
-endif # ! CXX_VERSION
-
-#### Note: -thread uses POSIX threads. If you want to use DCE threads
-#### instead, change "-pthread" to "-threads".
-ifeq ($(threads),1)
- CFLAGS += -pthread
-endif
-
-#### These flags can only be used with cxx Version 6.0 and later.
-#### They are enabled by default; they can be disabled by settting
-#### CXX_VER to CXX_5 either on the make command line, or by
-#### or by setting the CXX_VER environment variable to CXX_5.
-ifneq ($(CXX_VER),CXX_5)
- WARNING_FLAGS += -w0
- ifneq (,$(VERBOSE_WARNING))
- WARNING_FLAGS += -msg_display_number -msg_display_tag
- endif # VERBOSE_WARNING
-
- ifneq (,$(optimize))
- #### See ace/config-cxx-common.h for the meaning of this warning.
- #### It's not necessary on DU 5.0.
- WARNING_FLAGS += -msg_disable 1016
- endif # optimize
- ifeq (4.,$(findstring 4.,$(shell uname -r)))
- # 9: nested comment not allowed. But there's one in /usr/include/pdsc.h!
- WARNING_FLAGS += -msg_disable 9
- endif
-endif # 6.0 or later
-
-templates ?= automatic
-
-# Turn on the appropriate flags
-#
-ifeq ($(templates), automatic)
- ifeq ($(TEMPLATES_FLAG),) # Turn on flags if none is speficied.
- TEMPLATES_FLAG = -pt
- SOFLAGS += -tall
- endif
-else
- ifeq ($(templates), used)
- ifeq ($(TEMPLATES_FLAG),) # Turn on flags if none is speficied.
- TEMPLATES_FLAG = -pt
- SOFLAGS += -tused
- endif
- endif # templates == used
-endif # templates == automatic
-
-# Add the extra definitions needed to use the Standard Template Library
-#
-ifeq ($(stdcpplib), 1)
- CPPFLAGS += -D__USE_STD_IOSTREAM
-endif
-
-# The correct flags to pass to the linker for ELF dynamic shared library
-# versioning
-#
-ifneq ($(SONAME),)
- SOFLAGS += -soname $(SONAME)
-endif
-
-CCFLAGS += $(CFLAGS) $(WARNING_FLAGS) $(TEMPLATES_FLAG)
-DCFLAGS += -g1 -O0
-DLD = $(CXX)
-LD = $(CXX)
-#### The -hidden [...] -non_hidden business avoids multiply defined
-#### symbols between the shared library and libcxxstd.a. It's the
-#### workaround recommended in PTR 43-4-204. It must appear before any
-#### linker commands.
-LDFLAGS += -hidden $(wildcard /usr/lib/libcxxstd.a) -non_hidden
-LIBS += $(CFLAGS) -lxti -lrt
-MATHLIB = -lm
-OCFLAGS += -O3
-PIC =
-ARFLAGS = cruvZ
-# This is needed to pull in all the template instantiations from the
-# repository into the library.
-#
-TMPINCDIR = cxx_repository
-
-# When libraries are archived, a hash index is automatically created
-# so there is no need for ranlib
-#
-RANLIB = @true
-SOFLAGS += -shared -use_ld_input $(ACELIB)
-
-LIBS := $(LIBS)
-SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- ln $(VSHDIR)$*.o $@
-
-ifeq (0,$(exceptions))
- #### Disable the default exception handling of cxx >= 6.0.
- #### This is untested. exceptions=1 is the default, so it's not used
- #### by default.
- ifeq (6.,$(findstring 6.,$(CXX_VERSION)))
- CCFLAGS += -nocleanup
- endif # 6.x
-endif # ! exceptions
-
-### There is a bug with pthreads header file shipped with v1885 of
-### V5.1. We need to turn this flag to get asm () inline for
-### compilation.
-ifeq (1885,$(findstring 1885,$(ACE_DU_SUBVERSION)))
- ifeq (6.,$(findstring 6.,$(CXX_VERSION)))
- CPPFLAGS += -D_PTHREAD_ENV_DECCXX
- endif # 6.x
-endif #v1885
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_post.GNU
diff --git a/ACE/include/makeinclude/platform_tru64_g++.GNU b/ACE/include/makeinclude/platform_tru64_g++.GNU
deleted file mode 100644
index aec60768660..00000000000
--- a/ACE/include/makeinclude/platform_tru64_g++.GNU
+++ /dev/null
@@ -1,46 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with
-# Digital UNIX using the GNU compiler.
-
-# Of late, this platform and compiler combination hasn't been tested. In
-# fact neither compilation nor testing has been done for almost a year.
-# So it's better to avoid this combination, if possible.
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_pre.GNU
-
-debug ?= 1
-exceptions ?= 1
-threads ?= 1
-optimize ?= 1
-
-CC = gcc
-CXX = g++
-CFLAGS += -D_REENTRANT
-
-DCFLAGS += -g
-LD = $(CXX)
-DLD = $(CXX)
-LIBS += -lpthread -lmach -lexc -lxti -lrt
-OCFLAGS += -O3
-PIC = -fpic
-ARFLAGS = cruvZ
-# When libraries are archived, a hash index is automatically created so there
-# is no need for ranlib
-RANLIB = /usr/bin/true
-SOFLAGS += -shared $(CPPFLAGS) $(ACELIB)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
-
-# Test for template instantiation, add to SOFLAGS if SONAME set,
-# add -E to LDFLAGS if using GNU ld
-#
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_post.GNU
diff --git a/ACE/include/makeinclude/platform_tru64_post.GNU b/ACE/include/makeinclude/platform_tru64_post.GNU
deleted file mode 100644
index 52ccdc93d1a..00000000000
--- a/ACE/include/makeinclude/platform_tru64_post.GNU
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id$
-
-# Common definitions which were in multiple files adding to the confusion
-
-# All versions of 4.x...Why doesn't Digital have 4.[a-z] ? That would be
-# more fun...
-
-ifeq (4.,$(findstring 4.,$(ACE_DU_VERSION)))
- ifeq (4.0D,$(findstring 4.0D,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x40D
- else
- ifeq (4.0E,$(findstring 4.0E,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x40E
- else
- ifeq (4.0F,$(findstring 4.0F,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x40F
- else
- ifeq (4.0G,$(findstring 4.0G,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x40F # can't have 0x40G
- else
- CFLAGS += -DDIGITAL_UNIX=0x400
- endif
- endif
- endif
- endif
-else # ! 4.x
- ifeq (V5.1,$(findstring V5.1,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x510
- else
- CFLAGS += -DDIGITAL_UNIX=0x500
- endif
-endif # ! 5.x
diff --git a/ACE/include/makeinclude/platform_tru64_pre.GNU b/ACE/include/makeinclude/platform_tru64_pre.GNU
deleted file mode 100644
index 318ba855258..00000000000
--- a/ACE/include/makeinclude/platform_tru64_pre.GNU
+++ /dev/null
@@ -1,11 +0,0 @@
-# $Id$
-
-# Common definitions for all versions of Digital Unix.
-
-ifndef ACE_DU_VERSION
- ACE_DU_VERSION := $(shell uname -r)
-endif # ! ACE_DU_VERSION
-
-ifndef ACE_DU_SUBVERSION
- ACE_DU_SUBVERSION := $(shell /usr/sbin/sizer -v)
-endif # ! ACE_DU_SUBVERSION
diff --git a/ACE/include/makeinclude/platform_unixware_g++.GNU b/ACE/include/makeinclude/platform_unixware_g++.GNU
deleted file mode 100644
index 08a5ca29f13..00000000000
--- a/ACE/include/makeinclude/platform_unixware_g++.GNU
+++ /dev/null
@@ -1,44 +0,0 @@
-# $Id$
-
-# UnixWare V2.2.1.2 with g++ version 2.7.2.2
-
-debug ?= 0
-exceptions ?= 1
-threads ?= 1
-
-CC = gcc
-CXX = g++
-
-ACE_GNUG_ON_UNIXWARE = 1
-
-#ifeq ($(exceptions),1)
- CCFLAGS += -fexceptions
-#endif
-
-DCFLAGS += -g
-#DCFLAGS += -g
-
-OCCFLAGS += -O2
-
-DLD = $(CXX) -g
-LD = $(CXX)
-LIBS += -lsocket -lnsl -lgen -lthread
-PIC = -fpic
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-#SOFLAGS = -assert pure-text
-SOFLAGS += -shared
-# SOBUILD - compile into .so directly
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-# SOLINK = $(SOLINK.cc) -o $@ $(LDFLAGS) $<
-PRELIB = @true
-
-# Test for template instantiation, add to SOFLAGS if SONAME set,
-# add -E to LDFLAGS if using GNU ld
-#
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-pipes ?= 1
-CFLAGS += -W -Wall -Wpointer-arith #### -Winline
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
diff --git a/ACE/include/makeinclude/platform_vxworks.GNU b/ACE/include/makeinclude/platform_vxworks.GNU
index f94e2687948..30db5614a42 100644
--- a/ACE/include/makeinclude/platform_vxworks.GNU
+++ b/ACE/include/makeinclude/platform_vxworks.GNU
@@ -25,4 +25,8 @@ endif
ifeq (vxworks-6.7, $(findstring vxworks-6.7,$(WIND_PLATFORM)))
include $(ACE_ROOT)/include/makeinclude/platform_vxworks6.7.GNU
endif
+ifeq (vxworks-6.8, $(findstring vxworks-6.8,$(WIND_PLATFORM)))
+ include $(ACE_ROOT)/include/makeinclude/platform_vxworks6.8.GNU
+endif
+
diff --git a/ACE/include/makeinclude/platform_vxworks5.5.x.GNU b/ACE/include/makeinclude/platform_vxworks5.5.x.GNU
deleted file mode 100644
index b73bcc57580..00000000000
--- a/ACE/include/makeinclude/platform_vxworks5.5.x.GNU
+++ /dev/null
@@ -1,354 +0,0 @@
-# $Id$
-# VxWorks 5.5.x (x > 0).
-
-#### Notes:
-#### 1) This file requires that the WIND_BASE and WIND_HOST_TYPE environment
-#### variables be set. If the target CPU is not SIMNT, then your CPU
-#### environment variable must be set.
-#### 2) If you have problems with munch output not being compilable
-#### because it contains identifiers with ".", e.g., ".cpp", in them:
-#### add a global variable or function to that .cpp file. See
-#### ace/IOStream_T.cpp for an explanation and example.
-#### 3) The TOOL environment variable may be set to "diab" (default is "gnu").
-#### 4) If perl is not on your path, you'll also need to set your PERL_PATH
-#### environment variable to the full path to perl.
-
-VXWORKS = 1
-CROSS-COMPILE = 1
-
-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_DEP = $(TAO_IDL)
-TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
-CIDLC_DEP = $(CIDLC)
-endif
-
-debug ?= 1
-optimize ?= 1
-threads ?= 1
-exceptions ?= 1
-xerces ?= 0
-versioned_so ?= 0
-
-ifeq ($(static_libs),1)
- shared_libs = 0
-else
- static_libs = 0
-endif
-ifeq ($(static_libs_only),1)
- shared_libs = 0
-endif
-
-# VxWorks doesn't have rwho
-rwho = 0
-
-ifeq (,$(WIND_BASE))
- default:
- @ERROR: you must set your WIND_BASE environment variable
-endif # WIND_BASE
-
-ifeq (,$(WIND_HOST_TYPE))
- default:
- @ERROR: you must set your WIND_HOST_TYPE environment variable
-endif # WIND_HOST_TYPE
-
-ifeq ("$(WIND_HOST_TYPE)","x86-win32")
-ifneq ($(MAKE_MODE), unix)
-vxworks_ntbuild = 1
-MKDIR_NTSTYLE = 1
-lacks_touch = 1
-endif
-endif
-
-HOST_DIR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
-
-ifeq (,$(PERL_PATH))
- PERL_PATH = perl
-endif # ! PERL_PATH
-
-ifeq ($(VXWORKS_VERSION_FLAG),)
- VXWORKS_VERSION_FLAG = -DACE_VXWORKS=0x551
-endif # VXWORKS_VERSION_FLAG
-
-ifeq ($(TOOL),)
- override TOOL = gnu
-else
- override TOOL := $(TOOL)
-endif
-override TOOL_FAMILY := $(TOOL)
-
-ifeq ("$(TOOL)","gnu")
- templates ?= automatic
-endif
-
-PRJ_TYPE = vxApp
-TARGET_DIR = $(WIND_BASE)/target/h
-TGT_DIR = $(WIND_BASE)/target
-MEDUSA_DIR = $(WIND_BASE)/target/h/make/config/featureSet
-PID_DIR = $(MEDUSA_DIR)/pid
-PCD_DIR = $(MEDUSA_DIR)/pcd
-PNE_DIR = $(MEDUSA_DIR)/pne
-
-PID_INSTALLED = $(shell test -d $(PID_DIR) && echo 1)
-PCD_INSTALLED = $(shell test -d $(PCD_DIR) && echo 1)
-PNE_INSTALLED = $(shell test -d $(PNE_DIR) && echo 1)
-
-ifeq ($(PID_INSTALLED),1)
- CCFLAGS += -DACE_HAS_VXWORKS551_PID
- CFLAGS += -DACE_HAS_VXWORKS551_PID
-endif
-ifeq ($(PCD_INSTALLED),1)
- CCFLAGS += -DACE_HAS_VXWORKS551_PCD
- CFLAGS += -DACE_HAS_VXWORKS551_PCD
-endif
-ifeq ($(PNE_INSTALLED),1)
- CCFLAGS += -DACE_HAS_VXWORKS551_PNE
- CFLAGS += -DACE_HAS_VXWORKS551_PNE
-endif
-
-ifeq ($(CPU),)
- # default CPU
- CPU = SIMNT
-else
- override CPU := $(CPU)
-endif
-
-ifeq ($(findstring PPC, $(CPU)), PPC)
- CCFLAGS += -mlongcall
- CFLAGS += -mlongcall
-endif
-
-ifeq ($(shared_libs),1)
- SHARED_LIBS = 1
-endif
-ifeq ($(shared_libs_only),1)
- SHARED_LIBS = 1
-endif
-
-ifeq ($(SHARED_LIBS),1)
- ACELIB = -L./
- #### There's no difference between non-shared and shared object code.
- VSHDIR = $(VDIR)
-endif # shared_libs
-
-BIN_UNCHECKED ?=
-SHLIB_UNCHECKED ?=
-
-ifneq ("$(BIN_UNCHECKED)","")
-VX_APP_BUILD := 1
-else
- ifeq ($(SHARED_LIBS),1)
- ifneq ("$(SHLIB_UNCHECKED)","")
- VX_SO_BUILD := 1
- endif
- endif
- ifneq ($(VX_SO_BUILD),1)
- VX_LIB_BUILD := 1
- endif
-endif
-
-ifneq ($(VX_LIB_BUILD),1)
- VXWORKSLINK = 1
- ifeq ($(VX_APP_BUILD),1)
- ## set variables for VxWorks linktarget identification
- PRJ_FILE = $(basename $(notdir $(BIN_UNCHECKED))).vxworks
- EXEEXT = .out
- PRJ_DIR = .
- CLEANUP_OBJS := ctdt.c $(PRJ_DIR)/$(PRJ_FILE) $(CLEANUP_OBJS)
- else
- ## set variables for VxWorks .SO linktarget identification
- PRJ_FILE = $(basename $(notdir $(SHLIB_UNCHECKED))).vxworks
- PRJ_DIR = .
- CLEANUP_OBJS := ctdt.c $(PRJ_DIR)/$(PRJ_FILE) *.out $(CLEANUP_OBJS)
- endif
-endif
-
-include $(TARGET_DIR)/make/defs.default
-include $(TARGET_DIR)/make/defs.$(WIND_HOST_TYPE)
-include $(TARGET_DIR)/make/defs.$(PRJ_TYPE)
-include $(TARGET_DIR)/tool/$(TOOL_FAMILY)/make.$(CPU)$(TOOL)
-
-no_cflags_ansi ?= 0
-ifeq ($(no_cflags_ansi), 1)
- ifeq ("$(TOOL_FAMILY)","gnu")
- CC_COMPILER := $(filter-out -ansi, $(CC_COMPILER))
- else
- CC_COMPILER := $(filter-out -Xansi, $(CC_COMPILER))
- endif
-endif
-
-no_ccflags_ansi ?= 0
-ifeq ($(no_ccflags_ansi), 1)
- ifeq ("$(TOOL_FAMILY)","gnu")
- C++_COMPILER := $(filter-out -ansi, $(C++_COMPILER))
- else
- C++_COMPILER := $(filter-out -Xansi, $(C++_COMPILER))
- endif
-endif
-
-## make sure we don't use that stupid, crippled vxrm.bat script.
-override RM=rm -f
-
-ifeq ($(VXWORKSLINK), 1)
- # prevent possible clash with static LIB rules
- # in VxWorks make includes and rules.lib.GNU
- override ARCHIVE =
- override LARGE_PROJECT =
- PRJ_OBJS = $(addprefix $(VDIR), $(OBJS)) $(VSHOBJS)
- ifeq ($(SHARED_LIBS),1)
- ##LD_PARTIAL += -L$(ACE_ROOT)/lib -L./ $(LDLIBPATH) $(LD_LINK_PATH)
- PRJ_OBJS_FOR_LD_PARTIAL=$(addprefix $(VDIR), $(OBJS)) $(VSHOBJS)
- ifeq ($(VX_SO_BUILD),1)
- ## Shared lib builds for VxWorks will also build 'import' libraries
- LIB_INSTALL += $(VLIB:%=$(INSLIB)/%)
- CLEANUP_INSTALL += $(CLEANUP_VLIB:%=$(INSLIB)/%)
- REALCLEAN_FILES += $(CLEANUP_LIB:%=%) $(CLEANUP_LIB:%=%_debug) $(CLEANUP_LIB:%=%_profile) $(CLEANUP_LIB:%=%_optimize)
- endif
- else
- LD_PARTIAL += -L$(ACE_ROOT)/ace -L./ $(LDLIBPATH) $(LD_LINK_PATH)
- ifeq (1,$(repo))
- PRJ_OBJS_FOR_LD_PARTIAL=$(addprefix $(VDIR), $(OBJS)) $(VSHOBJS) $(shell set AR=$(AR) && set RANLIB=$(RANLIB) && perl $(ACE_ROOT)/bin/vx_repo_link.pl $(VLDLIBS)) $(ACE_SHLIBS)
- ifneq (1,$(VX_KEEP_PRELINK_LIB))
- POSTLINK = rmdir /s/q .lib && rmdir /s/q $(subst /,\,$(VDIR))
- REALCLEAN_FILES += .lib
- else
- POSTLINK = rmdir /s/q $(subst /,\,$(VDIR))
- endif
- else
- PRJ_OBJS_FOR_LD_PARTIAL=$(addprefix $(VDIR), $(OBJS)) $(VSHOBJS) $(VLDLIBS) $(ACE_SHLIBS)
- endif
- endif
- PRJ_OBJS_FOR_LD=$(addprefix $(VDIR), $(OBJS)) $(VSHOBJS)
- PRJ_OBJS_FOR_NM=$(addprefix $(VDIR), $(OBJS)) $(VSHOBJS)
- PRJ_OBJS_FOR_AR=$(addprefix $(VDIR), $(OBJS)) $(VSHOBJS)
- POST_BUILD_RULE = $(POSTLINK)
- COMPILE_TRADITIONAL = $(CC) $(OPTION_OBJECT_ONLY) $(OPTION_DOLLAR_SYMBOLS)\
- $(filter-out -ansi, $(CFLAGS))
-
- ## make sure default target stays the ACE/TAO default target
- ##
-default: all
-
-endif
-
-CPPFLAGS += $(VXWORKS_VERSION_FLAG)
-
-ifeq ($(debug),1)
- DCFLAGS += -g
- DCCFLAGS += -g
- CPPFLAGS +=
-endif
-
-ifeq ("$(TOOL)","gnu")
-# Test for template instantiation, add to SOFLAGS if SONAME set,
-# add -E to LDFLAGS if using GNU ld
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-ifeq ("$(templates)","automatic")
- ifdef repo
- ifeq ($(VXWORKSLINK),1)
- ifeq ($(VX_APP_BUILD),1)
- ifneq ($(SHARED_LIBS),1)
- LD_PARTIAL += -frepo
- endif
- endif
- else
- #ace_lib_prelink := 1
- LINK.cc = override
- LINK.cc.override = $(LD_PARTIAL) -frepo
- LDFLAGS = $(ACE_SHLIBS)
- endif
- else
- C++FLAGS += -fmerge-templates
- endif
-endif
-
-# TEMPLATES_FLAG is set by platform_g++_common.GNU
-ifneq ($(TEMPLATES_FLAG),) # If specified, add it to the CCFLAGS
- CPPFLAGS += $(TEMPLATES_FLAG)
-endif
-endif # TOOL == gnu
-
-ifeq ("$(TOOL)","diab")
-ifeq ($(exceptions),1)
- C++FLAGS += -Xexceptions
-else
- C++FLAGS += -Xexceptions-off
-endif
-else
-ifeq ("$(TOOL)","gnu")
-C++FLAGS += -ftemplate-depth-50
-ifeq ($(exceptions),1)
- C++FLAGS += -fexceptions
-else
- C++FLAGS += -fno-exceptions
-endif
-endif
-endif
-
-ifneq ($(findstring $(VX_CPU_FAMILY),ppc arm),)
-ifeq ("$(TOOL)","diab")
- C++FLAGS += -Xchar-signed
-else
-ifeq ("$(TOOL)","gnu")
- C++FLAGS += -fsigned-char
-endif
-endif
-endif
-
-ifeq ($(CPU),SIMNT)
-override MUNCH_FLAGS := -asm $(TOOLENV)
-endif
-
-ifneq ($(optimize),1)
- CC_OPTIM_NORMAL =
-endif
-
-CCFLAGS += $(C++FLAGS)
-
-PIC =
-
-ifeq ($(VXWORKSLINK),1)
-
- ifdef repo
- ifeq ($(SHARED_LIBS),1)
- BACKUP_RPO_RULE = for %f in ($(basename $(addprefix $(VDIR), $(OBJS)) $(VSHOBJS))) do if exist %f.rpo mv %f.rpo %f.rpobak $(ACE_NUL_STDERR)
- POST_BUILD_RULE = for %f in ($(basename $(addprefix $(VDIR), $(OBJS)) $(VSHOBJS))) do if exist %f.rpobak mv %f.rpobak %f.rpo $(ACE_NUL_STDERR)
- endif
- endif
-
-.PHONY: $(PRJ_DIR)/$(PRJ_FILE)
- ## special target to satisfy VxWorks dependencies for images
-$(PRJ_DIR)/$(PRJ_FILE):
- ifdef repo
- ifeq ($(SHARED_LIBS),1)
- #### execute prelink step to make compiler instantiate all needed
- #### templates; discard image and repo files (*.rpo) after linkstep
- #### this step holds for both .SO as well as 'app' images so use both VSHOBJS and OBJS
- -$(LD_PARTIAL) -frepo -L$(ACE_ROOT)/ace -L./ $(LDLIBPATH) $(LD_LINK_PATH)$(LINK_OUTPUT_FLAG) ace-templ_inst $? $(ACE_SHLIBS) $(addprefix $(VDIR), $(OBJS)) $(VSHOBJS)
- -$(RM) ace-templ_inst
- #### We need to backup the .RPO files or otherwise the link step of the final image will
- #### start instantiating templates again even if we do not specify '-frepo'!
- -$(BACKUP_RPO_RULE)
- ifeq ($(VX_SO_BUILD),1)
- #### build library of objects in .SO to use as a sort of import library for VxWorks
- echo $(filter %.o, $(VSHOBJS)) | xargs $(AR) $(ARFLAGS) $(VLIB) $(AREXTRA)
- -chmod a+r $(VLIB)
- ifneq (,$(RANLIB))
- -$(RANLIB) $(VLIB)
- endif # RANLIB
- endif # VX_SO_BUILD
- endif
- endif
- @echo 1>$@
-
-endif
diff --git a/ACE/include/makeinclude/platform_vxworks6.2.GNU b/ACE/include/makeinclude/platform_vxworks6.2.GNU
index 2e32b881c68..ff77b1b63a1 100644
--- a/ACE/include/makeinclude/platform_vxworks6.2.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.2.GNU
@@ -20,7 +20,6 @@ CROSS-COMPILE = 1
debug ?= 1
optimize ?= 1
threads ?= 1
-exceptions ?= 1
rtp ?= 1
ifeq ($(rtp),0)
pthread ?= 0
@@ -69,16 +68,13 @@ 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
+ TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2.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_DEP = $(TAO_IDL)
TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
-CIDLC_DEP = $(CIDLC)
endif
HOST_DIR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
@@ -302,26 +298,13 @@ else
endif
endif
endif
-
-# TEMPLATES_FLAG is set by platform_g++_common.GNU
-ifneq ($(TEMPLATES_FLAG),) # If specified, add it to the CCFLAGS
- CPPFLAGS += $(TEMPLATES_FLAG)
-endif
endif # TOOL_FAMILY == gnu
ifeq ("$(TOOL_FAMILY)","diab")
-ifeq ($(exceptions),1)
C++FLAGS += -Xexceptions
else
- C++FLAGS += -Xexceptions-off
-endif
-else
ifeq ("$(TOOL_FAMILY)","gnu")
-ifeq ($(exceptions),1)
C++FLAGS += -fexceptions
-else
- C++FLAGS += -fno-exceptions
-endif
endif
endif
@@ -343,7 +326,7 @@ ifneq ($(optimize),1)
CC_OPTIM_NORMAL =
endif
-CCFLAGS += $(C++FLAGS)
+CCFLAGS += $(C++FLAGS) $(FLAGS_C_CC)
ifeq (0,$(rtp))
PIC =
diff --git a/ACE/include/makeinclude/platform_vxworks6.3.GNU b/ACE/include/makeinclude/platform_vxworks6.3.GNU
index 7bdc6254526..05b3914782f 100644
--- a/ACE/include/makeinclude/platform_vxworks6.3.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.3.GNU
@@ -20,7 +20,6 @@ CROSS-COMPILE = 1
debug ?= 1
optimize ?= 1
threads ?= 1
-exceptions ?= 1
rtp ?= 1
ifeq ($(rtp),0)
pthread ?= 0
@@ -64,22 +63,19 @@ 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)/TAO/CIAO/bin/tao_idl3_to_idl2$(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)
endif
HOST_DIR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
@@ -207,10 +203,11 @@ ifeq ($(rtp),1)
LDFLAGS := $(filter-out -N, $(LDFLAGS))
LD := $(CPLUS)
DLD := $(CPLUS)
+ WIND_USR_LIB ?= lib
ifeq ($(findstring *sf,*$(TOOL)),*sf)
- LDFLAGS += -L$(WIND_USR)/lib/$(VX_CPU_FAMILY)/$(CPU)/sfcommon$(PICDIR)
+ LDFLAGS += -L$(WIND_USR)/$(WIND_USR_LIB)/$(VX_CPU_FAMILY)/$(CPU)/sfcommon$(PICDIR)
else
- LDFLAGS += -L$(WIND_USR)/lib/$(VX_CPU_FAMILY)/$(CPU)/common$(PICDIR)
+ LDFLAGS += -L$(WIND_USR)/$(WIND_USR_LIB)/$(VX_CPU_FAMILY)/$(CPU)/common$(PICDIR)
endif
else
include $(TGT_DIR)/h/make/defs.default
@@ -224,6 +221,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
@@ -334,26 +332,13 @@ else
endif
endif
endif
-
-# TEMPLATES_FLAG is set by platform_g++_common.GNU
-ifneq ($(TEMPLATES_FLAG),) # If specified, add it to the CCFLAGS
- CPPFLAGS += $(TEMPLATES_FLAG)
-endif
endif # TOOL_FAMILY == gnu
ifeq ("$(TOOL_FAMILY)","diab")
-ifeq ($(exceptions),1)
C++FLAGS += -Xexceptions
else
- C++FLAGS += -Xexceptions-off
-endif
-else
ifeq ("$(TOOL_FAMILY)","gnu")
-ifeq ($(exceptions),1)
C++FLAGS += -fexceptions
-else
- C++FLAGS += -fno-exceptions
-endif
endif
endif
@@ -379,7 +364,7 @@ ifneq ($(optimize),1)
CC_OPTIM_NORMAL =
endif
-CCFLAGS += $(C++FLAGS)
+CCFLAGS += $(C++FLAGS) $(FLAGS_C_CC)
ifeq ($(VXWORKSLINK), 1)
diff --git a/ACE/include/makeinclude/platform_vxworks6.6.GNU b/ACE/include/makeinclude/platform_vxworks6.6.GNU
index d9d6ec510e0..e04a6bf50ac 100644
--- a/ACE/include/makeinclude/platform_vxworks6.6.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.6.GNU
@@ -17,3 +17,9 @@ ifeq ("$(TOOL_FAMILY)","gnu")
CPPFLAGS += -fno-strict-aliasing
endif
+# Workaround for bug in diab compiler with just 6.6
+ifeq (vxworks-6.6, $(findstring vxworks-6.6,$(WIND_PLATFORM)))
+ ifeq ("$(TOOL_FAMILY)","diab")
+ C++FLAGS += -W:c++:,-Xusing-std-on
+ endif
+endif
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/platform_vxworks6.8.GNU b/ACE/include/makeinclude/platform_vxworks6.8.GNU
new file mode 100644
index 00000000000..e0aa8bb0cb7
--- /dev/null
+++ b/ACE/include/makeinclude/platform_vxworks6.8.GNU
@@ -0,0 +1,11 @@
+# $Id$
+# VxWorks 6.8
+
+ifeq ($(VXWORKS_VERSION_FLAG),)
+ VXWORKS_VERSION_FLAG = -DACE_VXWORKS=0x680
+endif # VXWORKS_VERSION_FLAG
+
+WIND_USR_LIB = ../lib/usr/lib
+
+include $(ACE_ROOT)/include/makeinclude/platform_vxworks6.7.GNU
+
diff --git a/ACE/include/makeinclude/platform_win32_dmc.GNU b/ACE/include/makeinclude/platform_win32_dmc.GNU
index 038f553ef25..3d752cbc8a7 100644
--- a/ACE/include/makeinclude/platform_win32_dmc.GNU
+++ b/ACE/include/makeinclude/platform_win32_dmc.GNU
@@ -1,11 +1,10 @@
+# -*- Makefile -*-
# $Id$
# debug = 1
# optimize = 1
-# exceptions = 0
winsock2 ?= 1
-exceptions ?= 0
debug ?= 1
optimize ?= 1
threads ?= 1
@@ -37,7 +36,7 @@ SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
PRELIB = @true
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
+CCFLAGS += $(CFLAGS)
# Dmc doesn't have rwho
rwho = 0
diff --git a/ACE/include/makeinclude/platform_win32_icc.GNU b/ACE/include/makeinclude/platform_win32_icc.GNU
index e0079956735..5e10925ca65 100644
--- a/ACE/include/makeinclude/platform_win32_icc.GNU
+++ b/ACE/include/makeinclude/platform_win32_icc.GNU
@@ -1,11 +1,10 @@
+# -*- Makefile -*-
# $Id$
# debug = 1
# optimize = 1
-# exceptions = 0
winsock2 ?= 1
-exceptions ?= 1
debug ?= 1
optimize ?= 1
threads ?= 1
@@ -44,4 +43,4 @@ OBJEXT = obj
SOFLAGS += $(MODEL_FLAGS) $(CPPFLAGS)
SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
+CCFLAGS += $(CFLAGS)
diff --git a/ACE/include/makeinclude/platform_win32_interix.GNU b/ACE/include/makeinclude/platform_win32_interix.GNU
index feababd508d..897cf0f1983 100644
--- a/ACE/include/makeinclude/platform_win32_interix.GNU
+++ b/ACE/include/makeinclude/platform_win32_interix.GNU
@@ -1,37 +1,43 @@
+# -*- Makefile -*-
# $Id$
# platform_win32_interix.GNU
-#versioned_so = 1
+versioned_so ?= 0
-exceptions ?= 1
debug ?= 1
optimize ?= 1
threads ?= 1
-CC = gcc
-CXX = g++
+CC = gcc
+CXX = g++
-include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
-
-CFLAGS += -W -Wall -Wpointer-arith -pipe -frepo
-CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG) -D_ALL_SOURCE
+CPPFLAGS += -D_ALL_SOURCE
DCFLAGS += -g
-LDFLAGS += -L /usr/lib -L$(ACE_ROOT)/lib -ldl -lc -dynamic
DLD = $(CXX)
-LD = $(CXX)
-LIBS +=
+LD = $(CXX)
+LIBS += -ldl
+OCFLAGS += -O2
+PIC =
AR = ar
-ARFLAGS = ruvs
+ARFLAGS = ruv
RANLIB = ranlib
+LN_S = cp
-SOFLAGS += $(CPPFLAGS) -shared -i -W1,-E -W1,-Bsymbolic
-#SOBUILD = $(COMPILE.cc) -o $(VSHDIR)$*.so $<
-PRELIB = @echo
+SOFLAGS += -shared
+SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
+PRELIB = @echo
ifeq ($(threads),1)
-LDFLAGS += -lpthread
-#CFLAGS += -D_THREAD_SAFE -D_REENTRANT -DACE_HAS_THREADS
-CFLAGS += -D_REENTRANT -DACE_HAS_THREADS
+ LDFLAGS += -lpthread
+ CFLAGS += -D_THREAD_SAFE -DACE_HAS_THREADS
endif # threads
+PLATFORM_X11_CPPFLAGS=-I/usr/X11R6/include
+PLATFORM_X11_LIBS=-lX11
+PLATFORM_X11_LDFLAGS=-L/usr/X11R6/lib
+
+# Test for template instantiation, add to SOFLAGS if versioned_so set,
+# add -E to LDFLAGS if using GNU ld
+#
+#include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
diff --git a/ACE/include/makeinclude/platform_win32_msvc.GNU b/ACE/include/makeinclude/platform_win32_msvc.GNU
index 962f8870ec5..8bec8100e42 100644
--- a/ACE/include/makeinclude/platform_win32_msvc.GNU
+++ b/ACE/include/makeinclude/platform_win32_msvc.GNU
@@ -116,7 +116,7 @@ CXXFLAGS = $(CFLAGS)
RC_INCLUDE_FLAG = -I
RC_OUTPUT_FLAG = -fo
SYSTEMLIBS += advapi32.lib user32.lib
-MSVC_LINK = $(LD) $(SYSTEMLIBS) $(MSVC_LDFLAGS) $(patsubst -L%,-libpath:%, $(subst /,\,$(LDFLAGS))) $(patsubst -l%,%.lib,$(ACE_SHLIBS)) $(LIBS) -out:$@
+MSVC_LINK = $(LD) $(SYSTEMLIBS) $(MSVC_LDFLAGS) $(patsubst %\,%,$(patsubst -L%,-libpath:%, $(subst /,\,$(LDFLAGS)))) $(patsubst -l%,%.lib,$(ACE_SHLIBS)) $(LIBS) -out:$@
define SOLINK.cc.override
$(MSVC_LINK) $(MSVC_DLLFLAGS) $^
mt -nologo -manifest $@.manifest -outputresource:$@\;2
diff --git a/ACE/include/makeinclude/rules.bin.GNU b/ACE/include/makeinclude/rules.bin.GNU
index fe6fb0a83b1..5fb5d8c76af 100644
--- a/ACE/include/makeinclude/rules.bin.GNU
+++ b/ACE/include/makeinclude/rules.bin.GNU
@@ -34,7 +34,6 @@ PSRC += $(addsuffix .cpp, $(CLEANUP_BIN))
CLEANUP_INSTALL += $(CLEANUP_BIN:%=$(INSBIN)/%$(VAR)$(EXEEXT))
-CHORUSLINK ?=
VXWORKSLINK ?=
using_aix_vacpp ?=
diff --git a/ACE/include/makeinclude/rules.common.GNU b/ACE/include/makeinclude/rules.common.GNU
index 37a4aef0e44..a52d629823c 100644
--- a/ACE/include/makeinclude/rules.common.GNU
+++ b/ACE/include/makeinclude/rules.common.GNU
@@ -11,8 +11,8 @@
all: __prebuild__ all.nested all.local
debug: debug.nested debug.local
profile: profile.nested profile.local
-install: install.nested install.local
-deinstall: deinstall.nested deinstall.local
+binout: binout.nested binout.local
+clean_binout: clean_binout.nested clean_binout.local
clean_binaries: clean_binaries.nested clean_binaries.local
clean_idl_stubs: clean_idl_stubs.nested clean_idl_stubs.local
clean: clean.nested clean.local
diff --git a/ACE/include/makeinclude/rules.lib.GNU b/ACE/include/makeinclude/rules.lib.GNU
index 0a0a6338d8b..15b3bf059f2 100644
--- a/ACE/include/makeinclude/rules.lib.GNU
+++ b/ACE/include/makeinclude/rules.lib.GNU
@@ -20,7 +20,7 @@ ifeq ($(versioned_so),1)
# Version number of the libraries
#
ifeq ($(SOVERSION),)
- SOVERSION = .$(ACE_MAJOR_VERSION).$(ACE_MINOR_VERSION).$(ACE_BETA_VERSION)
+ SOVERSION = .$(GNUACE_PROJECT_VERSION)
endif # SOVERSION
# Name that will be written into the dynamic library
@@ -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))
@@ -50,6 +49,7 @@ VSHLIB_NO_VER = $(ARCH_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
CLEANUP_VSHLIB_NO_VER = $(CLEANUP_SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
VSHLIB = $(VSHLIB_NO_VER:%=%$(SOVERSION))
CLEANUP_VSHLIB = $(CLEANUP_VSHLIB_NO_VER:%=%$(SOVERSION))
+SHLIB_WITH_VER = $(SHLIB:%=%$(SOVERSION))
SHLIBA ?=
VSHLIBA = $(ARCH_SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
@@ -90,18 +90,27 @@ ifneq ($(IDL_SRC),)
$(VLOBJS) $(VSHOBJS): $(IDL_SRC)
endif
+# Since INSLIB already has the ARCH dir appended, if appropriate, ARCH
+# needs to be stripped from V[SH]LIB on the way over to INSLIB. To avoid
+# an extra '/' which confuses the relative link calculation, ensure the
+# '/' after ARCH is stripped if it's an ARCH build.
+ARCHDIR ?=
+ifdef ARCH
+ ARCHDIR = $(ARCH)/
+endif
+
ifdef static_libs
- LIB_INSTALL += $(VLIB:%=$(INSLIB)/%)
- CLEANUP_INSTALL += $(CLEANUP_VLIB:%=$(INSLIB)/%)
+ LIB_INSTALL += $(VLIB:$(ARCHDIR)%=$(INSLIB)/%)
+ CLEANUP_INSTALL += $(CLEANUP_VLIB:$(ARCHDIR)%=$(INSLIB)/%)
endif # static_libs
ifdef shared_libs
- LIB_INSTALL += $(VSHLIB:%=$(INSLIB)/%)
- CLEANUP_INSTALL += $(CLEANUP_VSHLIB:%=$(INSLIB)/%)
- CLEANUP_INSTALL += $(CLEANUP_VSHLIB_NO_VER:%=$(INSLIB)/%*)
+ LIB_INSTALL += $(VSHLIB:$(ARCHDIR)%=$(INSLIB)/%)
+ CLEANUP_INSTALL += $(CLEANUP_VSHLIB:$(ARCHDIR)%=$(INSLIB)/%)
+ CLEANUP_INSTALL += $(CLEANUP_VSHLIB_NO_VER:$(ARCHDIR)%=$(INSLIB)/%*)
ifdef SHLIBA
- LIB_INSTALL += $(VSHLIBA:%=$(INSLIB)/%)
- CLEANUP_INSTALL += $(CLEANUP_SHLIBA:%=$(INSLIB)/%)
+ LIB_INSTALL += $(VSHLIBA:$(ARCHDIR)%=$(INSLIB)/%)
+ CLEANUP_INSTALL += $(CLEANUP_SHLIBA:$(ARCHDIR)%=$(INSLIB)/%)
endif
endif # shared_libs
@@ -237,21 +246,21 @@ $(VSHLIB): $(VSHOBJS)
#### to lib files, for example.
-$(LINK.cc) $(LINK_OUTPUT_FLAG) ace-templ_inst $^ $(LDFLAGS) $(ACE_NUL_STDERR)
endif # ace_lib_prelink
- ifeq ($(split),1)
- $(SHR_FILTER) $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHDIR)/*.$(OBJEXT) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS)
- else # ! split
- ifneq ($(SOLINK.cc.override),)
+ ifneq ($(SOLINK.cc.override),)
$(SOLINK.cc.override)
- else
+ else
$(SHR_FILTER) $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $^ $(LDFLAGS) $(ACE_SHLIBS) $(LIBS)
- endif #override
- endif # split
+ endif #override
endif # ibmcxx_build
endif # SHLIBBUILD
endif # aix_build
endif # VXWORKSLINK
ifneq ($(SOVERSION),)
+# This carefully works with both ARCH (where VSHLIB_* refer to the ARCH
+# subdir, but SHLIB does not) and non-ARCH builds (where VSHLIB_* and SHLIB
+# refer to the same place). SHLIB_WITH_VER should be the same as $@ but
+# without the ARCH subdir.
-$(RM) $(VSHLIB_NO_VER)
- -$(LN_S) $@ $(VSHLIB_NO_VER)
+ -$(LN_S) $(if $(findstring cp,$(firstword $(LN_S))),$(@),$(SHLIB_WITH_VER)) $(VSHLIB_NO_VER)
endif
-chmod a+rx $@
diff --git a/ACE/include/makeinclude/rules.local.GNU b/ACE/include/makeinclude/rules.local.GNU
index 0255d0ccb34..18696073c5e 100644
--- a/ACE/include/makeinclude/rules.local.GNU
+++ b/ACE/include/makeinclude/rules.local.GNU
@@ -41,19 +41,28 @@ ifdef TEMPLATE_REPOSITORY
CLEANUP_DIRS += $(TEMPLATE_REPOSITORY)
endif
-ifneq ($(mingw32),1)
+ifeq ($(use_pwd_call),)
+ ifneq ($(mingw32),1)
+ use_pwd_call := 0
+ else
+ use_pwd_call := 1
+ endif
+endif
+
+ifneq ($(use_pwd_call),1)
makefile_name.local:
@echo
@echo GNUmakefile: $(shell pwd)/$(MAKEFILE) MAKEFLAGS=$(MAKEFLAGS)
@echo
else
+ECHO_BLANK_LINE ?= echo
makefile_name.local:
- @echo
+ @$(ECHO_BLANK_LINE)
@echo GNUmakefile: $(call PWD)/$(MAKEFILE) MAKEFLAGS=$(MAKEFLAGS)
- @echo
+ @$(ECHO_BLANK_LINE)
endif
-all.local: makefile_name.local $(split_target) build.objdirs build.local install.local
+all.local: makefile_name.local build.objdirs build.local binout.local
#----------------------------------------------------------------------------
# C/C++ compilation targets
@@ -94,18 +103,23 @@ OS ?=
# Define a canned command set to create the output object directory if needed.
ifeq ($(vxworks_ntbuild),1)
define mk_obj_out_dir
-@if not exist $(dir $@) $(MKDIR) $(dir $@) $(ACE_NUL_STDERR)
-@echo > $(dir $@).creation_stamp
+@if not exist $(subst /,\,$(@D)) $(MKDIR) $(subst /,\,$(@D)) $(ACE_NUL_STDERR)
endef
else
define mk_obj_out_dir
-@-test -d $(dir $@) || $(MKDIR) $(dir $@) $(ACE_NUL_STDERR)
+@-test -d $(@D) || $(MKDIR) $(@D) $(ACE_NUL_STDERR)
endef
endif
nullstring :=
CC_OUTPUT_FLAG_SEP ?= $(nullstring) #space
+%.$(PREPROCESS_SUFFIX): %.c
+ $(PREPROCESS.c) $(CC_OUTPUT_FLAG)$(CC_OUTPUT_FLAG_SEP)$@ $<
+
+%.$(PREPROCESS_SUFFIX): %.cpp
+ $(PREPROCESS.cc) $(CC_OUTPUT_FLAG)$(CC_OUTPUT_FLAG_SEP)$@ $<
+
$(VDIR)%.$(OBJEXT): %.c
$(mk_obj_out_dir)
$(COMPILE.c) $(CC_OUTPUT_FLAG)$(CC_OUTPUT_FLAG_SEP)$@ $<
@@ -170,19 +184,10 @@ $(VSHDIR)%.$(OBJEXT): %.cc
$(mk_obj_out_dir)
$(COMPILE.cc) $(PIC) $(CC_OUTPUT_FLAG)$(CC_OUTPUT_FLAG_SEP)$@ $<
- ifeq ($(split), 1)
-$(VSHDIR)%.$(OBJEXT): %.cpp
- $(mk_obj_out_dir)
- $(COMPILE.cc) $(PIC) SPLIT/`echo $< | sed "s/.cpp/_S\*/"`
- mv *.$(OBJEXT) $(VSHDIR)
- else # ! split
-
$(VSHDIR)%.$(OBJEXT): %.cpp
$(mk_obj_out_dir)
$(COMPILE.cc) $(PIC) $(CC_OUTPUT_FLAG)$(CC_OUTPUT_FLAG_SEP)$@ $<
- endif # split
-
$(VSHDIR)%.$(OBJEXT): %.cxx
$(mk_obj_out_dir)
$(COMPILE.cc) $(PIC) $(CC_OUTPUT_FLAG)$(CC_OUTPUT_FLAG_SEP)$@ $<
@@ -234,11 +239,11 @@ ifneq ($(INSBIN),)
endif
INSTALL ?=
-install.local: $(INSTALL)
+binout.local: $(INSTALL)
-deinstall.local:
+clean_binout.local:
ifdef CLEANUP_INSTALL
- ifneq ($(CLEANUP_INSTALL),)
+ ifneq ($(strip $(CLEANUP_INSTALL)),)
$(RM) $(CLEANUP_INSTALL)
endif # CLEANUP_INSTALL
endif # CLEANUP_INSTALL
@@ -263,12 +268,12 @@ ifndef LN_S
endif # ! WIN32
endif # ! LN_S
-# Don't call shell/call directly below since we may need to
+# Don't call shell/call directly below since we may need to
# add the architecture specific suffix to the directory
-ifneq ($(mingw32),1)
-ARCH_SOURCE_DIR := $(patsubst /,,$(shell pwd)/$(ARCH))
+ifneq ($(use_pwd_call),1)
+ARCH_SOURCE_DIR := $(patsubst %/,%,$(shell pwd)/$(ARCH))
else
-ARCH_SOURCE_DIR := $(patsubst /,,$(call PWD)/$(ARCH))
+ARCH_SOURCE_DIR := $(patsubst %/,%,$(call PWD)/$(ARCH))
endif
$(INSBIN)/%$(VAR)$(EXEEXT) \
@@ -285,72 +290,49 @@ $(INSMAN)/man8/% \
$(INSMAN)/manl/% \
$(INSMAN)/mann/% :
ifeq ($(vxworks_ntbuild),1)
- @if exist $@ echo "$(@F) already installed"
- @if not exist $@ echo "Installing $(@F:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) to $(@D)" && \
- $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) && \
+ @if not exist $@ $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) && \
$(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) && \
- echo "Installing $(@F) to $(@D)" && \
$(RM) $@ && \
+ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@ && \
$(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@
else #not vxworks_ntbuild
- ifeq ($(mingw32),1)
- #If we're actually copying instead of linking, pay attention to timestamps to know when to install
ifeq ($(firstword $(LN_S)),cp)
ifneq ($(SOVERSION),)
@if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
- if test $(@F) -ot $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) ; then \
- echo "Installing $(@F:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) -> $(@D)" ; \
- $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- fi ; \
+ $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
fi
endif #SOVERSION
@if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
- if test $@ -nt $(@F) ; then \
- echo "$(@F) already installed" ; \
- else \
- echo "Installing $(@F) -> $(@D)" ; \
- $(RM) $@; \
- $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
- fi ; \
+ $(RM) $@; \
+ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
+ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
fi
else #firstword of LN_S is not cp, so we're using real symlinks
- @if test $(ARCH_SOURCE_DIR) != $(@D) -o -n "$(SOVERSION)" ; then \
- if test -s $@ ; then \
- echo "$(@F) already installed" ; \
- else \
- echo "Installing $(@F:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) -> $(@D)" ; \
+ ifneq ($(SOVERSION),)
+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
+ if test ! -s $@ ; then \
$(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
+ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
$(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- echo "Installing $(@F) -> $(@D)" ; \
- $(RM) $@; \
- $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
fi ; \
fi
- endif #firstword
- else #not mingw32
- @if test $(ARCH_SOURCE_DIR) != $(@D) -o -n "$(SOVERSION)" ; then \
- if test -s $@ ; then \
- echo "$(@F) already installed" ; \
- else \
- echo "Installing $(@F:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) -> $(@D)" ; \
- $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)); \
- echo "Installing $(@F) -> $(@D)" ; \
+ endif #SOVERSION
+ @if test $(ARCH_SOURCE_DIR) != $(@D) ; then \
+ if test ! -s $@ ; then \
$(RM) $@; \
+ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
$(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@; \
fi ; \
fi
- endif #mingw32
+ endif #firstword
endif #vxworks_ntbuild
ifdef MVSLIB
#special for MVS in order to use the .x files
@if test -w $(@D) ; then \
- if test -s $(@:.$(SOEXT)=.x) ; then \
- echo "$(@F:.$(SOEXT)=.x) already installed" ; \
- else \
- echo "Installing $(@F:.$(SOEXT)=.x) -> $(@D)" ; \
+ if test ! -s $(@:.$(SOEXT)=.x) ; then \
$(RM) $(@); $(LN_S) $(ARCH_SOURCE_DIR)/$(@F:.$(SOEXT)=.x) $(@:.$(SOEXT)=.x) ; \
fi \
fi
@@ -418,7 +400,7 @@ ifdef DO_CLEANUP
templateregistry templateregistry.* ir.out core.* *.core $(CLEANUP_OBJS)
endif # DO_CLEANUP
-realclean.local: clean.local deinstall.local clean_idl_stubs.local
+realclean.local: clean.local clean_binout.local clean_idl_stubs.local
ifdef DO_CLEANUP
-$(RM) -r $(REALCLEAN_FILES) $(sort $(CLEANUP_OBJDIRS)) $(ARCH)
endif # DO_CLEANUP
@@ -489,7 +471,7 @@ endif
depend.local: $(MAKEFILE) idl_stubs.local
@$(RM) $(DEPENDENCY_FILE).old
@cp $(DEPENDENCY_FILE) $(DEPENDENCY_FILE).old
- $(DEPGEN_ENV) $(DEPGEN) -A $(DEPEND_CMD_ARGS) -e config.h -f $(DEPENDENCY_FILE) \
+ $(DEPGEN_ENV) $(DEPGEN) -A $(DEPEND_CMD_ARGS) -f $(DEPENDENCY_FILE) \
$(CPPFLAGS) -t gnu -DMAKEDEPEND $(CCFLAGS) $(LSRC) $(SRC) $(PSRC)
@if cmp -s $(DEPENDENCY_FILE) $(DEPENDENCY_FILE).old ;\
then echo "GNUmakefile dependencies unchanged." ;\
@@ -499,7 +481,7 @@ depend.local: $(MAKEFILE) idl_stubs.local
$(RM) $(DEPENDENCY_FILE).old ;
#----------------------------------------------------------------------------
-# RCS info target
+# idl_stubs target
#----------------------------------------------------------------------------
IDL_FILES ?=
@@ -508,13 +490,6 @@ IDL_CLIENT_HDR_EXT ?=
idl_stubs.local: $(foreach file, $(IDL_FILES), $(file)$(IDL_CLIENT_HDR_EXT))
#----------------------------------------------------------------------------
-# RCS info target
-#----------------------------------------------------------------------------
-
-rcs_info.local:
- @rcs info
-
-#----------------------------------------------------------------------------
# Variant targets and conditional macros
#----------------------------------------------------------------------------
@@ -528,17 +503,16 @@ $(CLEANUP_DIRS):
@test -d $@ || $(MKDIR) $@ $(ACE_NUL_STDERR)
endif
-#---------------------------------------------------------------------------
-# Source file splitting
-#---------------------------------------------------------------------------
-SPLIT:
- @echo "Splitting source files..."
- @$(ACE_ROOT)/bin/split-cpp -s Svc_Conf_l.cpp -s Svc_Conf_y.cpp $(LSRC)
- @echo "done."
-
svnignore.local:
if [ "n$(ARCH_BIN)" != "n" ]; then \
(svn propget svn:ignore .; echo $(ARCH_BIN)) | sort | uniq | sed '/^$$/d' >SvNiGnOrE; \
svn propset svn:ignore -F SvNiGnOrE .; \
rm SvNiGnOrE; \
fi
+
+#----------------------------------------------------------------------------
+# Optional private, site-specific rules
+#----------------------------------------------------------------------------
+
+private_rules_file ?= rules.private.GNU
+-include $(private_rules_file)
diff --git a/ACE/include/makeinclude/wrapper_macros.GNU b/ACE/include/makeinclude/wrapper_macros.GNU
index 31bc814b4d7..29f8650283e 100644
--- a/ACE/include/makeinclude/wrapper_macros.GNU
+++ b/ACE/include/makeinclude/wrapper_macros.GNU
@@ -26,11 +26,7 @@
# to CPPFLAGS, PLATFORM_DMALLOC_LDFLAGS to LDFLAGS, and
# PLATFORM_DMALLOC_LIBS to LIBS. For more information on
# dmalloc, see http://dmalloc.com.
-# exceptions Enable exception handling (not supported by all platforms).
# fast Enable -fast option, e.g., with Sun C++.
-# include_env Enable usage of CORBA::Environment parameters that is
-# compatible with TAO versions before 1.2.2. Default:
-# disabled. Has no effect when building with exceptions=0
# inline Enable ACE inlining. Some platforms enable inlining by
# default, others do not. If platform_macros.GNU does not
# set this, inline is enabled.
@@ -72,12 +68,6 @@
# rwho Build with rwho, this results in building apps/drwho
# pipes Build with pipe support, resulting in adding -pipe to the
# compiler options.
-# split Build the library by first splitting up the ACE source
-# to several files, with one object code entity for each
-# source file. This allows an application that is linked
-# with ACE to extract _exactly_ what it needs from the
-# library, resulting in a smaller executable.
-# Setting this to 1 overrides debug to 0.
# sctp Build support for TAO SCIOP and for ACE SCTP
# wrapper-facades. The sctp macro should be set to a string
# value representing a particular SCTP implementation.
@@ -127,9 +117,6 @@
# DLD Name of dynamic linker
# LD Name of linker
# IDL Name of the CORBA IDL compiler
-# TEMPLATES_FLAG
-# Flag to pass to the compiler to control the instantiation of
-# templates.
# INSBIN Binary (executable) installation directory
# INSINC Include file installation directory
# INSMAN Manpage installation directory
@@ -167,6 +154,9 @@
# PLATFORM_SCTP_LIBS
# Platform libraries required for SCTP
# PRELINK Executable to precede linking, such as quantify
+# PREPROCESS.c Command to preprocess C
+# PREPROCESS.cc
+# Command to preprocess C++
# PURELINK If set, contains purify executable as well as all options
# PURE_CACHE_BASE_DIR
# The base directory in which Pure products will produce
@@ -192,102 +182,6 @@
# (link to the appropriate platform-specific config file).
#----------------------------------------------------------------------------
-# default to not using an architecture specific output directory
-ARCH ?=
-ARCH_BIN = $(BIN)
-ARCH_BIN2 = $(BIN2)
-ARCH_LIB = $(LIB_CHECKED)
-ARCH_LIB2 = $(LIB2)
-ARCH_SHLIB = $(SHLIB)
-ARCH_SHLIB2 = $(SHLIB2)
-ARCH_SHLIBA = $(SHLIBA)
-ARCH_SHLIBA2 = $(SHLIBA2)
-
-ifdef ARCH
-ifdef BIN
- ARCH_BIN = $(ARCH)/$(BIN)
-endif
-ifdef BIN2
- ARCH_BIN2 = $(ARCH)/$(BIN2)
-endif
-ifdef LIB_CHECKED
- ARCH_LIB = $(ARCH)/$(LIB_CHECKED)
-endif
-ifdef LIB2
- ARCH_LIB2 = $(ARCH)/$(LIB2)
-endif
-ifdef SHLIB
- ARCH_SHLIB = $(ARCH)/$(SHLIB)
-endif
-ifdef SHLIB2
- ARCH_SHLIB2 = $(ARCH)/$(SHLIB2)
-endif
-ifdef SHLIBA
- ARCH_SHLIBA = $(ARCH)/$(SHLIBA)
-endif
-ifdef SHLIBA2
- ARCH_HLIBA2 = $(ARCH)/$(SHLIBA2)
-endif
-endif
-
-# Set the cleanup targets. These targets are used by realclean even if
-# the component isn't being built, i.e., the decision to build it was based
-# on components built in another makefile and written a file (that might no
-# longer be available) and accessed by $(ACE_ROOT)/bin/ace_components.
-#
-# If a component should always be built, just use the normal BIN, LIB, or
-# SHLIB variables. If it's dependent on a component, use the BIN2 or
-# BIN_UNCHECKED variety, then assign that to BIN if the required component
-# is available.
-
-BIN_UNCHECKED ?=
-CLEANUP_BIN ?=
-ifdef BIN
- CLEANUP_BIN = $(ARCH_BIN)
-endif # !BIN
-ifdef BIN2
- CLEANUP_BIN += $(ARCH_BIN2)
-endif # !BIN2
-ifneq ($(BIN_UNCHECKED),)
- CLEANUP_BIN += $(BIN_UNCHECKED)
-endif # !BIN_UNCHECKED
-
-LIB_UNCHECKED ?=
-CLEANUP_LIB ?=
-ifdef LIB_CHECKED
- CLEANUP_LIB = $(ARCH_LIB)
-endif # !LIB_CHECKED
-ifdef LIB2
- CLEANUP_LIB += $(ARCH_LIB2)
-endif # !LIB2
-ifneq ($(LIB_UNCHECKED),)
- CLEANUP_LIB = $(LIB_UNCHECKED)
-endif # !LIB_UNCHECKED
-
-SHLIB_UNCHECKED ?=
-CLEANUP_SHLIB ?=
-ifdef SHLIB
- CLEANUP_SHLIB = $(ARCH_SHLIB)
-endif # !SHLIB
-ifdef SHLIB2
- CLEANUP_SHLIB += $(ARCH_SHLIB2)
-endif # SHLIB2
-ifneq ($(SHLIB_UNCHECKED),)
- CLEANUP_SHLIB += $(SHLIB_UNCHECKED)
-endif # ! SHLIB_UNCHECKED
-
-SHLIBA_UNCHECKED ?=
-CLEANUP_SHLIBA ?=
-ifdef SHLIBA
- CLEANUP_SHLIBA = $(ARCH_SHLIBA)
-endif # SHLIBA
-ifdef SHLIBA2
- CLEANUP_SHLIBA = $(ARCH_SHLIBA2)
-endif # SHLIB2A
-ifneq ($(SHLIBA_UNCHECKED),)
- CLEANUP_SHLIBA = $(SHLIBA_UNCHECKED)
-endif # SHLIBA_UNCHECKED
-
#### Default to building shared libraries only. Set it here to give the
#### platform a chance to override.
ifndef shared_libs
@@ -299,15 +193,17 @@ endif # static_libs
#### Set up the build ACE version in case the platform_macros.GNU wants it.
ifeq (cmd,$(findstring cmd,$(SHELL)))
-ACE_MAJOR_VERSION := $(shell awk "/ACE_MAJOR_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
-ACE_MINOR_VERSION := $(shell awk "/ACE_MINOR_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
-ACE_BETA_VERSION := $(shell awk "/ACE_BETA_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
+ ACE_MAJOR_VERSION := $(shell awk "/ACE_MAJOR_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
+ ACE_MINOR_VERSION := $(shell awk "/ACE_MINOR_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
+ ACE_BETA_VERSION := $(shell awk "/ACE_BETA_VERSION/ { print $$3}" ${ACE_ROOT}/ace/Version.h)
else
-ACE_MAJOR_VERSION := $(shell awk '/ACE_MAJOR_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
-ACE_MINOR_VERSION := $(shell awk '/ACE_MINOR_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
-ACE_BETA_VERSION := $(shell awk '/ACE_BETA_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
+ ACE_MAJOR_VERSION := $(shell awk '/ACE_MAJOR_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
+ ACE_MINOR_VERSION := $(shell awk '/ACE_MINOR_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
+ ACE_BETA_VERSION := $(shell awk '/ACE_BETA_VERSION/ { print $$3}' ${ACE_ROOT}/ace/Version.h)
endif
+ACE_VERSION = $(ACE_MAJOR_VERSION).$(ACE_MINOR_VERSION).$(ACE_BETA_VERSION)
+
# Define some variables to silence warnings
SHR_FILTER ?=
@@ -321,7 +217,6 @@ endif # alternate_platform_macros
# Define some variables to silence warnings
GHS ?=
-CHORUS ?=
AIX_TEMPLATE_HACK ?=
# $(ACE_PLATFORM_CONFIG) is used in dependency rules and corresponds to the
@@ -336,22 +231,34 @@ ifeq ($(threads),0)
endif # threads
####
-#### Defaults are exceptions on (1), fast off (0), threads on (1)
+#### Defaults are fast off (0), threads on (1)
#### and versioned_so on (1).
####
-exceptions ?= 1
fast ?= 0
versioned_so ?= 1
use_dep_libs ?= 1
threads ?= 1
symlinks ?= relative
link_groups ?= 0
+mcpp ?= 0
+root_is_symlink ?= 0
SOVERSION ?=
SONAME ?=
-ifeq ($(PWD),)
- PWD=$(shell pwd)
+ifeq ($(root_is_symlink),1)
+ ifneq ($(symlinks),relative)
+ warn_output:=$(warning WARNING: You should really use relative library symlinks with symlinked root)
+ endif
+ use_pwd_call = 1
+ ### use 'real' pwd command from shell; internal make command resolves symlinks
+ ifeq ($(PWD),)
+ PWD=$(shell $(SHELL) -c pwd)
+ endif
+else
+ ifeq ($(PWD),)
+ PWD=$(shell pwd)
+ endif
endif
ifeq ($(ACE_MKDIR),)
@@ -367,7 +274,15 @@ endif
INCLDIRS ?=
DEFFLAGS ?=
-CPPFLAGS += $(DEFFLAGS) $(INCLDIRS)
+ifeq ($(debug),0)
+ DEFFLAGS += -DNDEBUG
+endif
+
+ifeq (,$(findstring -I$(ACE_ROOT),$(INCLDIRS)))
+ INCLDIRS += -I$(ACE_ROOT)
+endif
+
+CPPFLAGS += $(DEFFLAGS) $(INCLDIRS)
# Define default extensions for IDL-generated files
IDL_CLIENT_HDR_EXT ?= C.h
@@ -380,18 +295,8 @@ IDL_SERVER_THDR_EXT ?= S_T.h
IDL_SERVER_TINL_EXT ?= S_T.inl
IDL_SERVER_TSRC_EXT ?= S_T.cpp
-ifeq (,$(findstring -I$(ACE_ROOT),$(INCLDIRS)))
- INCLDIRS += -I$(ACE_ROOT)
-endif
-INSINC ?= $(ACE_ROOT)/ace
-INSLIB ?= $(ACE_ROOT)/lib
-INSMAN ?= $(ACE_ROOT)/man
-ifeq (,$(findstring -L$(INSLIB),$(LDFLAGS)))
- LDFLAGS += -L$(INSLIB)
-endif
-
ifeq (default,$(origin LEX))
-LEX = flex
+ LEX = flex
endif
EXEEXT ?=
@@ -414,7 +319,135 @@ endif # ! WIN32
ACE_NUL_STDERR = 2>$(ACE_NUL) || true
PCFLAGS += #### set in platform_macros.GNU file, e.g., -p
PCCFLAGS += #### set in platform_macros.GNU file, e.g., -p
-VAR =
+VAR ?=
+
+# User-written makefiles that are not MPC-generated often use LIB to specify
+# what to build. This is in contrast to MPC-generated files that use
+# LIB_CHECKED for this purpose. LIB causes conflicts on Windows with gmake
+# and Visual Studio which uses the LIB environment variable as a search path
+# for libraries to link. So, to allow non-MPC makefiles to keep working, set
+# LIB_CHECKED based on LIB if the former is not set and the latter is.
+ifndef COMSPEC
+ LIB_CHECKED ?= $(LIB)
+endif # ! COMPSPEC (and, therefore, assumed !Windows
+
+# default to not using an architecture-specific output directory
+ARCH ?=
+
+ifdef ARCH
+ INSLIB := $(INSLIB:%=%/$(ARCH))
+
+ # ADD_ARCH is a function used with $(call) to "ARCHIFY" a variable which
+ # contains the name and path of an executable or library. If the file is not
+ # located in the ARCH subdir, the non-ARCH location is used. First we need
+ # some helper functions to deal with quoting/protecting spaces.
+ # ADD_ARCH can return a path containing a space, the caller must quote it or
+ # escape the space, depending on the context.
+ PROT_SPC = $(subst $(SPACE),?,$(1))
+ UNPROT_SPC = $(subst ?,$(SPACE),$(1))
+ FILE_EXISTS = $(wildcard $(subst $(SPACE),\$(SPACE),$(1)))
+ ADD_ARCH_HLP = $(call UNPROT_SPC,$(dir $(1))$(ARCH)/$(notdir $(1)))
+ ARCH_FILE = $(call FILE_EXISTS,$(call ADD_ARCH_HLP,$(call PROT_SPC,$(1))))
+ ADD_ARCH = $(if $(call ARCH_FILE,$(1)),$(call ARCH_FILE,$(1)),$(call FILE_EXISTS,$(1)))
+
+ ARCH_BIN = $(if $(BIN),$(ARCH)/$(BIN))
+ ARCH_BIN2 = $(if $(BIN2),$(ARCH)/$(BIN2))
+ ARCH_LIB = $(if $(LIB_CHECKED),$(ARCH)/$(LIB_CHECKED))
+ ARCH_LIB2 = $(if $(LIB2),$(ARCH)/$(LIB2))
+ ARCH_SHLIB = $(if $(SHLIB),$(ARCH)/$(SHLIB))
+ ARCH_SHLIB2 = $(if $(SHLIB2),$(ARCH)/$(SHLIB2))
+ ARCH_SHLIBA = $(if $(SHLIBA),$(ARCH)/$(SHLIBA))
+ ARCH_SHLIBA2 = $(if $(SHLIBA2),$(ARCH)/$(SHLIBA2))
+
+else #ARCH is not defined
+
+ ADD_ARCH = $(1)
+
+ ARCH_BIN = $(BIN)
+ ARCH_BIN2 = $(BIN2)
+ ARCH_LIB = $(LIB_CHECKED)
+ ARCH_LIB2 = $(LIB2)
+ ARCH_SHLIB = $(SHLIB)
+ ARCH_SHLIB2 = $(SHLIB2)
+ ARCH_SHLIBA = $(SHLIBA)
+ ARCH_SHLIBA2 = $(SHLIBA2)
+
+endif #ARCH
+
+# for use with the result of ADD_ARCH
+ADD_QUOTE = $(if $(findstring $(SPACE),$(1)),"$(1)",$(1))
+
+
+INSINC ?= $(ACE_ROOT)/ace
+INSLIB ?= $(ACE_ROOT)/lib
+INSMAN ?= $(ACE_ROOT)/man
+
+ifeq (,$(findstring -L$(INSLIB),$(LDFLAGS)))
+ LDFLAGS += -L$(INSLIB)
+endif
+
+#ifdef ARCH
+# LDFLAGS_ARCH := $(LDFLAGS:-L%=-L%/$(ARCH))
+# LDFLAGS += $(LDFLAGS_ARCH)
+#endif
+
+# Set the cleanup targets. These targets are used by realclean even if
+# the component isn't being built, i.e., the decision to build it was based
+# on components built in another makefile and written a file (that might no
+# longer be available) and accessed by $(ACE_ROOT)/bin/ace_components.
+#
+# If a component should always be built, just use the normal BIN, LIB, or
+# SHLIB variables. If it's dependent on a component, use the BIN2 or
+# BIN_UNCHECKED variety, then assign that to BIN if the required component
+# is available.
+
+BIN_UNCHECKED ?=
+CLEANUP_BIN ?=
+ifdef BIN
+ CLEANUP_BIN = $(ARCH_BIN)
+endif # !BIN
+ifdef BIN2
+ CLEANUP_BIN += $(ARCH_BIN2)
+endif # !BIN2
+ifneq ($(BIN_UNCHECKED),)
+ CLEANUP_BIN += $(BIN_UNCHECKED)
+endif # !BIN_UNCHECKED
+
+LIB_UNCHECKED ?=
+CLEANUP_LIB ?=
+ifdef LIB_CHECKED
+ CLEANUP_LIB = $(ARCH_LIB)
+endif # !LIB_CHECKED
+ifdef LIB2
+ CLEANUP_LIB += $(ARCH_LIB2)
+endif # !LIB2
+ifneq ($(LIB_UNCHECKED),)
+ CLEANUP_LIB = $(LIB_UNCHECKED)
+endif # !LIB_UNCHECKED
+
+SHLIB_UNCHECKED ?=
+CLEANUP_SHLIB ?=
+ifdef SHLIB
+ CLEANUP_SHLIB = $(ARCH_SHLIB)
+endif # !SHLIB
+ifdef SHLIB2
+ CLEANUP_SHLIB += $(ARCH_SHLIB2)
+endif # SHLIB2
+ifneq ($(SHLIB_UNCHECKED),)
+ CLEANUP_SHLIB += $(SHLIB_UNCHECKED)
+endif # ! SHLIB_UNCHECKED
+
+SHLIBA_UNCHECKED ?=
+CLEANUP_SHLIBA ?=
+ifdef SHLIBA
+ CLEANUP_SHLIBA = $(ARCH_SHLIBA)
+endif # SHLIBA
+ifdef SHLIBA2
+ CLEANUP_SHLIBA = $(ARCH_SHLIBA2)
+endif # SHLIB2A
+ifneq ($(SHLIBA_UNCHECKED),)
+ CLEANUP_SHLIBA = $(SHLIBA_UNCHECKED)
+endif # SHLIBA_UNCHECKED
# Let users override the default VDIR directories
ifdef ARCH
@@ -428,7 +461,7 @@ endif
# NOTE: VLDLIBS is defined below, in case it is overridden for static-
# or shared-only builds.
ifeq (default,$(origin YACC))
-YACC = bison
+ YACC = bison
endif
#----------------------------------------------------------------------------
@@ -438,6 +471,7 @@ endif
OBJEXT ?= o
SOEXT ?= so
LIBEXT ?= a
+LIB_PREFIX ?= lib
CC_OUTPUT_FLAG ?= -o
SO_OUTPUT_FLAG ?= -o
@@ -456,29 +490,12 @@ ifneq ($(optimize),)
CCFLAGS += $(OCCFLAGS)
endif # optimize
-split ?= 0
-ifeq ($(split),0)
- override split =
-endif # split
-
-ifneq ($(split),)
- override split_target = SPLIT
- override debug = 0
- CPPFLAGS += -DACE_IS_SPLITTING
-else
- override split_target =
-endif # split
-
ifeq ($(debug),0)
override debug =
endif # debug
ifeq ($(debug),)
CPPFLAGS += -DACE_NDEBUG
-# Disable the RCSID for release/non-debug builds.
- ifeq (,$(findstring ACE_USE_RCSID,$(CPPFLAGS)))
- CPPFLAGS += -DACE_USE_RCSID=0
- endif
else
CFLAGS += $(DCFLAGS)
CCFLAGS += $(DCCFLAGS)
@@ -669,23 +686,10 @@ endif
ec_typed_events ?= 1
zlib ?= 1
-ifeq ($(exceptions),0)
- #### Disable the default exception handling of g++ >= 2.8.0.
- ifneq ($(ACE_GNUG_ON_UNIXWARE),)
- CCFLAGS += -fcheck-new
- else
- CCFLAGS += -fno-exceptions -fcheck-new
- endif # ! ACE_GNUG_ON_UNIXWARE
-else # exceptions
- CPPFLAGS += -DACE_HAS_EXCEPTIONS
- ifndef include_env
- include_env ?=
- endif
- ifeq ($(include_env),1)
- CPPFLAGS += -DACE_ENV_BKWD_COMPAT
- endif
- ACE_MAKE_OPTIONS += exceptions
-endif # exceptions
+valgrind ?=
+ifeq ($(valgrind),1)
+ CPPFLAGS += -DACE_HAS_VALGRIND
+endif
profile ?=
ifeq ($(profile),0)
@@ -724,8 +728,12 @@ ifeq ($(static_libs_only),0)
endif # static_libs_only
ifdef shared_libs_only
- override shared_libs = 1
- override static_libs =
+ ifdef static_libs_only
+ $(error Both static_libs_only and shared_libs_only defined.)
+ else
+ override shared_libs = 1
+ override static_libs =
+ endif
endif # shared_libs_only
ifdef static_libs_only
override shared_libs =
@@ -810,12 +818,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
@@ -839,8 +847,7 @@ pipes ?= 0
# of intermediate files. This can be disabled by setting pipes to 0 in the
# platform_macros.GNU file.
ifeq ($(pipes),1)
- CFLAGS += -pipe
- CCFLAGS += -pipe
+ FLAGS_C_CC += -pipe
endif # pipes
# RMCast is turned on by default
@@ -857,6 +864,7 @@ rwho ?= 1
stlport ?= 0
ifeq ($(stlport),1)
CPPFLAGS += -DACE_HAS_STLPORT $(PLATFORM_STLPORT_CPPFLAGS)
+ CCFLAGS += $(PLATFORM_STLPORT_CCFLAGS)
LDFLAGS += $(PLATFORM_STLPORT_LDFLAGS)
LIBS += $(PLATFORM_STLPORT_LIBS)
endif
@@ -879,6 +887,38 @@ ace_uuid ?= 1
ace_filecache ?= 1
acexml ?= 1
+# Icecream distributed compilation support
+ifeq ($(icecream),1)
+ # check availability of icecc
+ ifneq ($(ICECC_ROOT),)
+ ICECC_PROG := $(ICECC_ROOT)/icecc
+ else
+ ICECC_PROG := $(shell which icecc 2>/dev/null)
+ endif
+ ICECC_VERTEST := $(shell test -x "$(ICECC_PROG)" && $(ICECC_PROG) --version)
+ ifneq (ICECC,$(findstring ICECC,$(ICECC_VERTEST)))
+ # not good, try alternative install location
+ ICECC_PROG := /opt/icecream/bin/icecc
+ ICECC_VERTEST := $(shell test -x "$(ICECC_PROG)" && $(ICECC_PROG) --version)
+ ifneq (ICECC,$(findstring ICECC,$(ICECC_VERTEST)))
+ override icecream := 0
+ $(error Cannot locate valid Icecream compiler.)
+ endif
+ endif
+ ifeq ($(icecream),1)
+ # force LD and DLD to be 'normal' tools
+ override LD := $(LD)
+ override DLD := $(DLD)
+ # define tools that icecc should call for local jobs
+ ICECC_CC := $(CC)
+ ICECC_CXX := $(CXX)
+ export ICECC_CC ICECC_CXX
+ # let all compilation go through icecc
+ CC := $(ICECC_PROG)
+ CXX := $(ICECC_PROG)
+ endif
+endif
+
#----------------------------------------------------------------------------
# Conditional macro definitions
#----------------------------------------------------------------------------
@@ -887,30 +927,37 @@ PTDIRS ?=
PRELINK ?=
POSTLINK ?=
PURELINK ?=
-TEMPLATES_FLAG ?=
MVCMD ?=
+PREPROCESS_OPT ?= -E
+PREPROCESS_SUFFIX ?= i
-COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
-COMPILE.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS) -c
+COMPILE.c = $(CC) $(CFLAGS) $(FLAGS_C_CC) $(CPPFLAGS) -c
+COMPILE.cc = $(CXX) $(CCFLAGS) $(FLAGS_C_CC) $(CPPFLAGS) $(PTDIRS) -c
+PREPROCESS.c ?= $(CC) $(PREPROCESS_OPT) $(CFLAGS) $(CPPFLAGS)
+PREPROCESS.cc ?= $(CXX) $(PREPROCESS_OPT) $(CCFLAGS) $(CPPFLAGS)
RC ?=
COMPILE.rc = $(RC) $(RCFLAGS)
COMPILE-NO_DASH_G.cc = `echo $(COMPILE.cc) | sed 's/-g //'`
# 960905 Marius Kjeldahl <marius@funcom.com>
# Added the line below to be used for compiling executable shared objects
-COMPILEESO.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS)
+COMPILEESO.cc = $(CXX) $(CCFLAGS) $(FLAGS_C_CC) $(CPPFLAGS) $(PTDIRS)
ifeq ($(LINK.c),override)
LINK.c = $(LINK.c.override)
else
- LINK.c = $(PURELINK) $(PRELINK) $(LD) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) \
+ LINK.c = $(PURELINK) $(PRELINK) $(LD) $(CFLAGS) $(FLAGS_C_CC) $(CPPFLAGS) $(LDFLAGS) \
$(LDLIBS) $(LIBS)
endif # LINK.c.override
ifeq ($(LINK.cc),override)
LINK.cc = $(LINK.cc.override)
else
- LINK.cc = $(PURELINK) $(PRELINK) $(LD) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS)
+ LINK.cc = $(PURELINK) $(PRELINK) $(LD) $(CCFLAGS) $(FLAGS_C_CC) $(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/ace.m4 b/ACE/m4/ace.m4
index f6ab11916d6..c4ef3353ae7 100644
--- a/ACE/m4/ace.m4
+++ b/ACE/m4/ace.m4
@@ -24,9 +24,17 @@ dnl Macros that add ACE configuration options to a `configure' script.
dnl ACE_CONFIGURATION_OPTIONS
AC_DEFUN([ACE_CONFIGURATION_OPTIONS],
[
- AM_CONDITIONAL([BUILD_ACE_FOR_TAO], false)
+ dnl There's no TAO support anywhere here, but these conditionals need
+ dnl to be here to satisfy MPC's generated conditionals.
+ AM_CONDITIONAL([BUILD_ACE_FOR_TAO], false)
+ AM_CONDITIONAL([BUILD_CORBA_E_COMPACT], false)
- AC_ARG_ENABLE([ace-codecs],
+ dnl This one is just wrong... this is a feature test and should not be
+ dnl an MPC 'avoids' but I don't have time to go fix all that, so just
+ dnl squash it here.
+ AM_CONDITIONAL([BUILD_OLD_STDSTREAM], false)
+
+ AC_ARG_ENABLE([ace-codecs],
AS_HELP_STRING(--enable-ace-codecs,build ACE with codecs support [[[yes]]]),
[
case "${enableval}" in
@@ -68,6 +76,28 @@ AC_DEFUN([ACE_CONFIGURATION_OPTIONS],
])
AM_CONDITIONAL([BUILD_ACE_FILECACHE], [test X$ace_user_enable_ace_filecache = Xyes])
+ dnl This is odd, yes, but the MPC switch is backwards from what's
+ dnl usually intended.
+ AC_ARG_ENABLE([ace-inet],
+ AS_HELP_STRING(--enable-ace-inet,build ACE with protocols/INet component [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_disable_ace_inet=no
+ ;;
+ no)
+ ace_user_disable_ace_inet=yes
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ace-inet])
+ ;;
+ esac
+ ],
+ [
+ ace_user_disable_ace_inet=no
+ ])
+ AM_CONDITIONAL([BUILD_EXCLUDE_INET], [test X$ace_user_disable_ace_inet = Xyes])
+
AC_ARG_ENABLE([ace-other],
AS_HELP_STRING(--enable-ace-other,build ACE with all misc pieces [[[yes]]]),
[
@@ -581,25 +611,6 @@ AC_DEFUN([ACE_CONFIGURATION_OPTIONS],
ACE_ENABLE_SSL
ACE_ENABLE_ACEXML
- AC_ARG_WITH([tao],
- AS_HELP_STRING(--with-tao,build TAO (the ACE ORB) [[[yes]]]),
- [
- case "${withval}" in
- yes)
- ace_user_with_tao=yes
- ;;
- no)
- ace_user_with_tao=no
- ;;
- *)
- AC_MSG_ERROR([bad value ${withval} for --with-tao])
- ;;
- esac
- ],
- [
- ace_user_with_tao=yes
- ])
-
AC_ARG_WITH([tli-device],
AS_HELP_STRING(--with-tli-device(=DEV),device for TCP on TLI [[/dev/tcp]]),
[
@@ -1250,8 +1261,8 @@ AC_DEFUN([ACE_PATH_FL],
fi
fi
if test X"${FLTKCONFIG}" != X; then
- ACE_FLTK_CPPFLAGS=`$FLTKCONFIG --use-gl --cxxflags 2>/dev/null`
- ACE_FLTK_LIBS=`$FLTKCONFIG --use-gl --ldflags 2>/dev/null`
+ ACE_FLTK_CPPFLAGS=`$FLTKCONFIG --cxxflags 2>/dev/null`
+ ACE_FLTK_LIBS=`$FLTKCONFIG --ldflags 2>/dev/null`
AC_SUBST(ACE_FLTK_CPPFLAGS)
AC_SUBST(ACE_FLTK_LIBS)
@@ -1393,6 +1404,7 @@ if test "$no_x" != yes; then
AC_SUBST(ACE_XT_LIBS)
fi
AM_CONDITIONAL([BUILD_ATHENA], true)
+AM_CONDITIONAL([BUILD_ATHENA3D], true)
AM_CONDITIONAL([BUILD_MOTIF], false)
])
@@ -1607,8 +1619,6 @@ AM_CONDITIONAL([BUILD_GL], [test X$ace_user_enable_fl_reactor = Xyes])
AM_CONDITIONAL([BUILD_FL], [test X$ace_user_enable_fl_reactor = Xyes])
AM_CONDITIONAL([BUILD_ACE_FLREACTOR],
[test X$ace_user_enable_fl_reactor = Xyes])
-AM_CONDITIONAL([BUILD_TAO_FLRESOURCE],
- [test X$ace_user_enable_fl_reactor = Xyes])
])
@@ -1638,8 +1648,6 @@ AC_ARG_ENABLE([qt-reactor],
AM_CONDITIONAL([BUILD_QT], [test X$ace_user_enable_qt_reactor = Xyes])
AM_CONDITIONAL([BUILD_ACE_QTREACTOR],
[test X$ace_user_enable_qt_reactor = Xyes])
-AM_CONDITIONAL([BUILD_TAO_QTRESOURCE],
- [test X$ace_user_enable_qt_reactor = Xyes])
])
@@ -1671,8 +1679,6 @@ AC_ARG_ENABLE([tk-reactor],
AM_CONDITIONAL([BUILD_TK], [test X$ace_user_enable_tk_reactor = Xyes])
AM_CONDITIONAL([BUILD_ACE_TKREACTOR],
[test X$ace_user_enable_tk_reactor = Xyes])
-AM_CONDITIONAL([BUILD_TAO_TKRESOURCE],
- [test X$ace_user_enable_tk_reactor = Xyes])
])
@@ -1709,8 +1715,6 @@ dnl line, then "no_x" is set to "yes."
AM_CONDITIONAL([BUILD_XT], [test X$ace_user_enable_xt_reactor = Xyes])
AM_CONDITIONAL([BUILD_ACE_XTREACTOR],
[test X$ace_user_enable_xt_reactor = Xyes])
-AM_CONDITIONAL([BUILD_TAO_XTRESOURCE],
- [test X$ace_user_enable_xt_reactor = Xyes])
])
# ACE_PATH_FOX
@@ -1765,6 +1769,4 @@ AC_ARG_ENABLE([fox-reactor],
AM_CONDITIONAL([BUILD_FOX], [test X$ace_user_enable_fox_reactor = Xyes])
AM_CONDITIONAL([BUILD_ACE_FOXREACTOR],
[test X$ace_user_enable_fox_reactor = Xyes])
-AM_CONDITIONAL([BUILD_TAO_FOXRESOURCE],
- [test X$ace_user_enable_fox_reactor = Xyes])
])
diff --git a/ACE/m4/ace_defines.m4 b/ACE/m4/ace_defines.m4
index 08a16407e05..c8b37af9171 100644
--- a/ACE/m4/ace_defines.m4
+++ b/ACE/m4/ace_defines.m4
@@ -27,7 +27,7 @@ do
ACE_CHECK_DEFINE($ace_def,
[AC_DEFINE_UNQUOTED(AS_TR_CPP([ACE_HAS_$ace_def])) $2],
[$3],
- [$4])dnl
+ [$4])
done
])
@@ -43,6 +43,6 @@ do
ACE_CHECK_DEFINE($ace_def,
[$2],
[AC_DEFINE_UNQUOTED(AS_TR_CPP([ACE_LACKS_$ace_def])) $3],
- [$4])dnl
+ [$4])
done
])
diff --git a/ACE/m4/ace_func.m4 b/ACE/m4/ace_func.m4
index bc8cbd11653..f031f563ae0 100644
--- a/ACE/m4/ace_func.m4
+++ b/ACE/m4/ace_func.m4
@@ -207,8 +207,6 @@ fi
# + Defines ACE_LACKS_WCSTOLL to 1 if platform lacks wcstoll()
# + Defines ACE_WCSTOLL_EQUIVALENT to identifier name if platform
# has a equivalent function that differs in name only.
-# + Defines ACE_LACKS_WCSTOLL_PROTOTYPE to 1 if platform lacks
-# declaration for wcstoll().
AC_DEFUN([ACE_FUNC_WCSTOLL],
[ACE_CHECK_LACKS_FUNCS(wcstoll)
if test $ac_cv_func_wcstoll = "no"; then
@@ -223,13 +221,6 @@ if test $ac_cv_func_wcstoll = "no"; then
[Define to function that is equivalent to wcstoll()])
fi
fi
-else
- AC_CHECK_DECL([wcstoll],
- [],
- [AC_DEFINE([ACE_LACKS_WCSTOLL_PROTOTYPE], 1,
- [Define to 1 if platform lacks a declaration for wcstoll()])],
- [#include <stdlib.h>
-#include <wchar.h>])
fi
])
@@ -237,8 +228,6 @@ fi
# + Defines ACE_LACKS_WCSTOULL to 1 if platform lacks wcstoull()
# + Defines ACE_WCSTOULL_EQUIVALENT to identifier name if platform
# has a equivalent function that differs in name only.
-# + Defines ACE_LACKS_WCSTOULL_PROTOTYPE to 1 if platform lacks
-# declaration for wcstoull().
AC_DEFUN([ACE_FUNC_WCSTOULL],
[ACE_CHECK_LACKS_FUNCS(wcstoull)
if test $ac_cv_func_wcstoull = "no"; then
@@ -253,13 +242,6 @@ if test $ac_cv_func_wcstoull = "no"; then
[Define to function that is equivalent to wcstoull()])
fi
fi
-else
- AC_CHECK_DECL([wcstoull],
- [],
- [AC_DEFINE([ACE_LACKS_WCSTOULL_PROTOTYPE], 1,
- [Define to 1 if platform lacks a declaration for wcstoull()])],
- [#include <stdlib.h>
-#include <wchar.h>])
fi
])
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/m4/compiler.m4 b/ACE/m4/compiler.m4
index ce202c8b8b7..14ba9708690 100644
--- a/ACE/m4/compiler.m4
+++ b/ACE/m4/compiler.m4
@@ -161,6 +161,9 @@ dnl @todo Clean up / consolidate these conditionals
;;
aCC)
CFLAGS = "${CFLAGS:-} -Ae"
+ # We want support for long long; without this the feature checks
+ # for wcstoll et al detect the function but it won't compile.
+ CXXFLAGS="$CXXFLAGS -ext"
# -AA has been available since aC++ x.27 (2001?) - if using a
# compiler without this support, must --enable_stdcpplib=no.
if test "$ace_user_enable_stdcpplib" = yes; then
diff --git a/ACE/m4/config_h.m4 b/ACE/m4/config_h.m4
index e8b8460b948..4d556e79698 100644
--- a/ACE/m4/config_h.m4
+++ b/ACE/m4/config_h.m4
@@ -74,7 +74,7 @@ AH_TEMPLATE([ACE_HAS_STDEXCEPT_NO_H],[Platform provides C++ <stdexcept> header])
dnl Deprecated! (or soon to be?)
AH_TEMPLATE([ACE_HAS_OSF1_GETTIMEOFDAY],
[timezone* 2nd parameter & no prototype])
-AH_TEMPLATE([ACE_HAS_LYNXOS_SIGNALS],[])
+AH_TEMPLATE([ACE_HAS_LYNXOS4_SIGNALS],[])
AH_TEMPLATE([ACE_HAS_TANDEM_SIGNALS],[])
AH_TEMPLATE([PTHREAD_STACK_MIN],[])
@@ -262,9 +262,6 @@ AH_TEMPLATE([ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS],
AH_TEMPLATE([ACE_HAS_BROKEN_MAP_FAILED],
[Platform doesn't cast MAP_FAILED to a (void *).])
-AH_TEMPLATE([ACE_HAS_BROKEN_CTIME],
-[Compiler/platform uses macro for ctime (e.g., MVS)])
-
AH_TEMPLATE([ACE_HAS_BROKEN_DGRAM_SENDV],
[Platform sendv() does not work properly with datagrams, i.e. it
fails when the iovec size is IOV_MAX.])
@@ -278,9 +275,6 @@ AH_TEMPLATE([ACE_HAS_BROKEN_MMAP_H],
AH_TEMPLATE([ACE_HAS_BROKEN_POSIX_TIME],
[Platform defines struct timespec in <sys/timers.h>])
-AH_TEMPLATE([ACE_HAS_BROKEN_R_ROUTINES],
-[Platform defines ctime_r, asctime_r, rand_r and getpwnam_r as macros])
-
AH_TEMPLATE([ACE_HAS_BROKEN_RANDR],
[OS/compiler's header files are inconsistent with libC definition of
rand_r().])
@@ -322,9 +316,6 @@ AH_TEMPLATE([ACE_HAS_GETPAGESIZE],
[Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must
be defined, except on Win32).])
-AH_TEMPLATE([ACE_HAS_GNU_CSTRING_H],
-[Denotes that GNU has cstring.h as standard which redefines memchr()])
-
AH_TEMPLATE([ACE_HAS_INTRINSIC_INTERLOCKED],
[Platform supports the intrinsic interlocked optimizations.])
@@ -531,10 +522,6 @@ AH_TEMPLATE([ACE_SHM_OPEN_REQUIRES_ONE_SLASH],[shm_open() requires a leading sla
AH_TEMPLATE([ACE_HAS_SIGISMEMBER_BUG],
[Platform has bug with sigismember() (HP/UX 11).])
-AH_TEMPLATE([ACE_HAS_SIG_MACROS],
-[Platform/compiler has macros for sig{empty,fill,add,del}set (e.g.,
- SCO and FreeBSD)])
-
AH_TEMPLATE([ACE_HAS_SIGNAL_OBJECT_AND_WAIT],
[Platform supports the Win32 SignalObjectAndWait() function (WinNT
4.0 and beyond).])
@@ -585,9 +572,6 @@ AH_TEMPLATE([ACE_HAS_SVR4_TLI],
AH_TEMPLATE([ACE_HAS_SYSV_IPC],
[Platform supports System V IPC (most versions of UNIX, but not Win32)])
-AH_TEMPLATE([ACE_HAS_SYS_ERRLIST],
-[Platform/compiler supports _sys_errlist symbol])
-
AH_TEMPLATE([ACE_HAS_SYS_SIGLIST],
[Compiler/platform supports _sys_siglist array])
@@ -797,9 +781,6 @@ AH_TEMPLATE([ACE_LACKS_TIMESPEC_T],
AH_TEMPLATE([ACE_LACKS_STRTOK_R_PROTOTYPE],
[Platform/compiler lacks the strtok_r() prototype])
-AH_TEMPLATE([ACE_LACKS_PREAD_PROTOTYPE],
-[Platform/compiler lacks the pread() and pwrite() prototypes])
-
AH_TEMPLATE([ACE_LACKS_CHAR_RIGHT_SHIFTS],
[Compiler does not have any istream operator>> for chars, u_chars, or
signed chars.])
diff --git a/ACE/m4/platform.m4 b/ACE/m4/platform.m4
index 367493e931c..f03fefd3dba 100644
--- a/ACE/m4/platform.m4
+++ b/ACE/m4/platform.m4
@@ -160,7 +160,7 @@ dnl */
AC_DEFINE([__NO_INCLUDE_WARN__])
AC_DEFINE([ACE_MALLOC_ALIGN], [8])
AC_DEFINE([ACE_MAP_PRIVATE], [ACE_MAP_SHARED])
- AC_DEFINE([ACE_HAS_LYNXOS_SIGNALS])
+ AC_DEFINE([ACE_HAS_LYNXOS4_SIGNALS])
AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
;;
*mvs*)
diff --git a/ACE/netsvcs/clients/Logger/direct_logging.cpp b/ACE/netsvcs/clients/Logger/direct_logging.cpp
index 432759f1ce3..652e70a8c72 100644
--- a/ACE/netsvcs/clients/Logger/direct_logging.cpp
+++ b/ACE/netsvcs/clients/Logger/direct_logging.cpp
@@ -11,8 +11,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/CDR_Stream.h"
-ACE_RCSID(Logger, direct_logging, "$Id$")
-
static u_short LOGGER_PORT = ACE_DEFAULT_SERVER_PORT;
static const ACE_TCHAR *const LOGGER_HOST = ACE_DEFAULT_SERVER_HOST;
static const ACE_TCHAR *const DATA = ACE_TEXT ("hello world\n");
diff --git a/ACE/netsvcs/clients/Logger/indirect_logging.cpp b/ACE/netsvcs/clients/Logger/indirect_logging.cpp
index f227385e800..bac237e2d7d 100644
--- a/ACE/netsvcs/clients/Logger/indirect_logging.cpp
+++ b/ACE/netsvcs/clients/Logger/indirect_logging.cpp
@@ -10,8 +10,6 @@
#include "ace/Log_Msg.h"
#include "ace/Log_Record.h"
-ACE_RCSID(Logger, indirect_logging, "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
diff --git a/ACE/netsvcs/clients/Naming/Client/Client_Test.cpp b/ACE/netsvcs/clients/Naming/Client/Client_Test.cpp
index b1cf54582e0..503e0826c90 100644
--- a/ACE/netsvcs/clients/Naming/Client/Client_Test.cpp
+++ b/ACE/netsvcs/clients/Naming/Client/Client_Test.cpp
@@ -15,10 +15,6 @@
#include "Client_Test.h"
-ACE_RCSID (Client,
- Client_Test,
- "$Id$")
-
// Get the instance of Name_Service using Dynamic_Service
//inline Name_Service *
diff --git a/ACE/netsvcs/clients/Naming/Client/main.cpp b/ACE/netsvcs/clients/Naming/Client/main.cpp
index 6f953f4c90a..a729180c026 100644
--- a/ACE/netsvcs/clients/Naming/Client/main.cpp
+++ b/ACE/netsvcs/clients/Naming/Client/main.cpp
@@ -10,10 +10,6 @@
#include "Client_Test.h"
-ACE_RCSID (Client,
- main,
- "$Id$")
-
int
ACE_TMAIN (int, ACE_TCHAR *argv[])
{
diff --git a/ACE/netsvcs/clients/Naming/Client/svc.conf b/ACE/netsvcs/clients/Naming/Client/svc.conf
index 231c7b483b6..5efa47cfdaf 100644
--- a/ACE/netsvcs/clients/Naming/Client/svc.conf
+++ b/ACE/netsvcs/clients/Naming/Client/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Note that $PORT is an environment variable that is
# automatically interpreted and substituted by ACE!
# static ACE_Naming_Context "main -p $PORT -h tango"
diff --git a/ACE/netsvcs/clients/Naming/Client/svc2.conf b/ACE/netsvcs/clients/Naming/Client/svc2.conf
index 6c3f6b57124..5c8f63abf96 100644
--- a/ACE/netsvcs/clients/Naming/Client/svc2.conf
+++ b/ACE/netsvcs/clients/Naming/Client/svc2.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Note that $DB and $PORT are environment variables that are
# automatically interpreted and substituted by ACE! In addition, note
# how you can give a relative name for the libACE_svcs.so and ACE will
diff --git a/ACE/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp b/ACE/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
index fd87cae7149..69664ac8906 100644
--- a/ACE/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
+++ b/ACE/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
@@ -13,7 +13,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Dump_Restore, Dump_Restore, "$Id$")
+
Dump_Restore::Dump_Restore (int argc, ACE_TCHAR *argv[])
: infile_ (0)
diff --git a/ACE/netsvcs/clients/Naming/Dump_Restore/createfile.cpp b/ACE/netsvcs/clients/Naming/Dump_Restore/createfile.cpp
index 0b2925b3202..d7e20e283bc 100644
--- a/ACE/netsvcs/clients/Naming/Dump_Restore/createfile.cpp
+++ b/ACE/netsvcs/clients/Naming/Dump_Restore/createfile.cpp
@@ -4,7 +4,7 @@
#include "ace/OS_NS_string.h"
#include "ace/ACE.h"
-ACE_RCSID(Dump_Restore, createfile, "$Id$")
+
int
ACE_TMAIN(int argc, ACE_TCHAR *argv[])
diff --git a/ACE/netsvcs/clients/Naming/Dump_Restore/main.cpp b/ACE/netsvcs/clients/Naming/Dump_Restore/main.cpp
index 46d298357bc..165c3ebd73e 100644
--- a/ACE/netsvcs/clients/Naming/Dump_Restore/main.cpp
+++ b/ACE/netsvcs/clients/Naming/Dump_Restore/main.cpp
@@ -6,9 +6,9 @@
#include "ace/Log_Msg.h"
#include "Dump_Restore.h"
-ACE_RCSID(Dump_Restore, main, "$Id$")
-int
+
+int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
ACE_Service_Config daemon (argv[0]);
@@ -19,7 +19,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
Dump_Restore client_handler (argc, argv);
ACE_Reactor::run_event_loop ();
-
+
/* NOTREACHED */
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("leaving main\n")));
return 0;
diff --git a/ACE/netsvcs/clients/Tokens/collection/collection.cpp b/ACE/netsvcs/clients/Tokens/collection/collection.cpp
index b4dcf69b056..db819aab495 100644
--- a/ACE/netsvcs/clients/Tokens/collection/collection.cpp
+++ b/ACE/netsvcs/clients/Tokens/collection/collection.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// collection.cpp
-//
-// = DESCRIPTION
-// Shows how applications can use the ACE_Token_Collection
-// utility. This example creates three collections and spawns a
-// thread to operate on each. The threads use the collective
-// acquire, renew, and release features of ACE_Token_Collection.
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file collection.cpp
+ *
+ * $Id$
+ *
+ * Shows how applications can use the ACE_Token_Collection
+ * utility. This example creates three collections and spawns a
+ * thread to operate on each. The threads use the collective
+ * acquire, renew, and release features of ACE_Token_Collection.
+ *
+ *
+ * @author Tim Harrison
+ */
+//=============================================================================
+
#include "ace/Get_Opt.h"
#include "ace/Local_Tokens.h"
@@ -26,7 +23,7 @@
#include "ace/Thread_Manager.h"
#include "ace/Service_Config.h"
-ACE_RCSID(collection, collection, "$Id$")
+
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
diff --git a/ACE/netsvcs/clients/Tokens/collection/rw_locks.cpp b/ACE/netsvcs/clients/Tokens/collection/rw_locks.cpp
index 1b1b0291e55..cf0acd33237 100644
--- a/ACE/netsvcs/clients/Tokens/collection/rw_locks.cpp
+++ b/ACE/netsvcs/clients/Tokens/collection/rw_locks.cpp
@@ -7,7 +7,7 @@
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-ACE_RCSID(collection, rw_locks, "$Id$")
+
static ACE_Token_Proxy *global_rlock;
static ACE_Token_Proxy *global_wlock;
diff --git a/ACE/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp b/ACE/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp
index 76be5ea34cc..e21ddab5a9d 100644
--- a/ACE/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp
+++ b/ACE/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp
@@ -1,19 +1,13 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// deadlock_detection_test.cpp
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file deadlock_detection_test.cpp
+ *
+ * $Id$
+ *
+ * @author Tim Harrison
+ */
+//=============================================================================
#include "ace/Token_Manager.h"
#include "ace/Remote_Tokens.h"
@@ -24,8 +18,6 @@
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-ACE_RCSID(deadlock, deadlock_detection_test, "$Id$")
-
typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
static ACE_Token_Proxy *global_mutex;
diff --git a/ACE/netsvcs/clients/Tokens/invariant/invariant.cpp b/ACE/netsvcs/clients/Tokens/invariant/invariant.cpp
index d9821bbc27d..ad3335eda8f 100644
--- a/ACE/netsvcs/clients/Tokens/invariant/invariant.cpp
+++ b/ACE/netsvcs/clients/Tokens/invariant/invariant.cpp
@@ -1,19 +1,13 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// invariant.cpp
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file invariant.cpp
+ *
+ * $Id$
+ *
+ * @author Tim Harrison
+ */
+//=============================================================================
#include "ace/Get_Opt.h"
#include "ace/Singleton.h"
@@ -22,8 +16,6 @@
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-ACE_RCSID(invariant, invariant, "$Id$")
-
typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
static const char *rwname = "reader/writer";
diff --git a/ACE/netsvcs/clients/Tokens/manual/manual.cpp b/ACE/netsvcs/clients/Tokens/manual/manual.cpp
index 966cf0d214e..a4e6de2bcb4 100644
--- a/ACE/netsvcs/clients/Tokens/manual/manual.cpp
+++ b/ACE/netsvcs/clients/Tokens/manual/manual.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// manual.cpp
-//
-// = DESCRIPTION
-// Allows manual operations on local and remote tokens.
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file manual.cpp
+ *
+ * $Id$
+ *
+ * Allows manual operations on local and remote tokens.
+ *
+ *
+ * @author Tim Harrison
+ */
+//=============================================================================
+
#include "ace/Get_Opt.h"
#include "ace/Local_Tokens.h"
@@ -28,28 +25,30 @@
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-ACE_RCSID(manual, manual, "$Id$")
+
typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
+/**
+ * @class STDIN_Token
+ *
+ * @brief STDIN Token
+ *
+ * Translates STDIN commands to ACE Token commands.
+ */
class STDIN_Token : public ACE_Event_Handler
- // = TITLE
- // STDIN Token
- //
- // = DESCRIPTION
- // Translates STDIN commands to ACE Token commands.
{
public:
+ /// Construction.
STDIN_Token (void);
- // Construction.
+ /// Parse command-line arguments.
int parse_args (int argc, ACE_TCHAR *argv[]);
- // Parse command-line arguments.
//FUZZ: disable check_for_lack_ACE_OS
+ /// Register with whatever event dispatcher is needed and run.
+ ///FUZZ: enable check_for_lack_ACE_OS
int open (int argc, char *argv[]);
- // Register with whatever event dispatcher is needed and run.
- //FUZZ: enable check_for_lack_ACE_OS
// = Event_Handler methods.
int handle_input (ACE_HANDLE);
@@ -59,30 +58,30 @@ public:
private:
+ /// Display options.
void display_menu (void);
- // Display options.
+ /// Get or make a proxy to <token> with a <tid> client id.
ACE_Token_Proxy *get_proxy (const char *tid, const char *token, char type);
- // Get or make a proxy to <token> with a <tid> client id.
+ /// Create a proxy to <token> with a <tid> client id.
ACE_Token_Proxy *create_proxy (const char *token, char type);
- // Create a proxy to <token> with a <tid> client id.
// = Mapping from tid to Token_Collection.
+ /// COLLECTION maintains a mapping from tid to a collection.
typedef ACE_Map_Manager<TID, ACE_Token_Collection *, ACE_Null_Mutex>
COLLECTIONS;
- // COLLECTION maintains a mapping from tid to a collection.
+ /// Allows iterations through collections_.
typedef ACE_Map_Iterator<TID, ACE_Token_Collection *, ACE_Null_Mutex>
COLLECTIONS_ITERATOR;
- // Allows iterations through collections_.
+ /// Allows iterations through collections_.
typedef ACE_Map_Entry<TID, ACE_Token_Collection *>
COLLECTIONS_ENTRY;
- // Allows iterations through collections_.
+ /// A collection for each <tid>.
COLLECTIONS collections_;
- // A collection for each <tid>.
const char *server_host_;
int server_port_;
diff --git a/ACE/netsvcs/clients/Tokens/mutex/test_mutex.cpp b/ACE/netsvcs/clients/Tokens/mutex/test_mutex.cpp
index a4e14cbfa1c..da98bc4b55c 100644
--- a/ACE/netsvcs/clients/Tokens/mutex/test_mutex.cpp
+++ b/ACE/netsvcs/clients/Tokens/mutex/test_mutex.cpp
@@ -1,19 +1,13 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_mutex.cpp
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_mutex.cpp
+ *
+ * $Id$
+ *
+ * @author Tim Harrison
+ */
+//=============================================================================
#include "ace/Get_Opt.h"
#include "ace/Local_Tokens.h"
@@ -23,8 +17,6 @@
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-ACE_RCSID(mutex, test_mutex, "$Id$")
-
static ACE_Token_Proxy *mutex;
static int remote_mutexes = 0;
static const char *server_host = ACE_DEFAULT_SERVER_HOST;
diff --git a/ACE/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp b/ACE/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp
index 7e4e3264671..d4d4496122a 100644
--- a/ACE/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp
+++ b/ACE/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// rw_locks.cpp
-//
-// = DESCRIPTION
-// test_rw_locks shows how to use ACE_Local_RLock, ACE_Local_WLock,
-// ACE_Remote_RLock, and ACE_Remote_WLock.
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file rw_locks.cpp
+ *
+ * $Id$
+ *
+ * test_rw_locks shows how to use ACE_Local_RLock, ACE_Local_WLock,
+ * ACE_Remote_RLock, and ACE_Remote_WLock.
+ *
+ *
+ * @author Tim Harrison
+ */
+//=============================================================================
+
#include "ace/Get_Opt.h"
#include "ace/Local_Tokens.h"
@@ -25,7 +22,7 @@
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-ACE_RCSID(rw_lock, rw_locks, "$Id$")
+
typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
diff --git a/ACE/netsvcs/lib/Base_Optimizer.cpp b/ACE/netsvcs/lib/Base_Optimizer.cpp
index 3cf3754c212..e1155dd6e44 100644
--- a/ACE/netsvcs/lib/Base_Optimizer.cpp
+++ b/ACE/netsvcs/lib/Base_Optimizer.cpp
@@ -5,8 +5,6 @@
#include "Base_Optimizer.h"
-ACE_RCSID(lib, Base_Optimizer, "$Id$")
-
template<class Base, class Member>
Base_Optimizer<Base, Member>::Base_Optimizer (void)
{
diff --git a/ACE/netsvcs/lib/Base_Optimizer.h b/ACE/netsvcs/lib/Base_Optimizer.h
index 87c19185d3b..eb8319de769 100644
--- a/ACE/netsvcs/lib/Base_Optimizer.h
+++ b/ACE/netsvcs/lib/Base_Optimizer.h
@@ -10,7 +10,6 @@
*/
//=============================================================================
-
#ifndef BASE_OPTIMIZER_H
#define BASE_OPTIMIZER_H
@@ -23,7 +22,6 @@
/**
* @class Base_Optimizer
*
- *
* Thanks to Nathan Myers and Fergus Henderson for this little
* beauty.
*/
diff --git a/ACE/netsvcs/lib/Client_Logging_Handler.cpp b/ACE/netsvcs/lib/Client_Logging_Handler.cpp
index 84a59ac7d1f..8fd68f7cfa2 100644
--- a/ACE/netsvcs/lib/Client_Logging_Handler.cpp
+++ b/ACE/netsvcs/lib/Client_Logging_Handler.cpp
@@ -16,10 +16,6 @@
#include "ace/INET_Addr.h"
#include "Client_Logging_Handler.h"
-ACE_RCSID(lib,
- Client_Logging_Handler,
- "$Id$")
-
ACE_Client_Logging_Handler::ACE_Client_Logging_Handler (ACE_HANDLE output_handle)
: logging_output_ (output_handle)
{
@@ -35,7 +31,6 @@ ACE_Client_Logging_Handler::ACE_Client_Logging_Handler (ACE_HANDLE output_handle
}
// This is called when a <send> to the logging server fails...
-
int
ACE_Client_Logging_Handler::handle_signal (int signum,
siginfo_t *,
@@ -48,7 +43,6 @@ ACE_Client_Logging_Handler::handle_signal (int signum,
}
// This function is called every time a client connects to us.
-
int
ACE_Client_Logging_Handler::open (void *)
{
@@ -91,7 +85,6 @@ ACE_Client_Logging_Handler::get_handle (void) const
}
// Receive a logging record from an application.
-
int
ACE_Client_Logging_Handler::handle_input (ACE_HANDLE handle)
{
@@ -135,9 +128,9 @@ ACE_Client_Logging_Handler::handle_input (ACE_HANDLE handle)
int flags = 0;
// We've got a framed IPC mechanism, so we can just to a <recv>.
- int result = spipe.recv (&header_msg,
- (ACE_Str_Buf *) 0,
- &flags);
+ ssize_t result = spipe.recv (&header_msg,
+ (ACE_Str_Buf *) 0,
+ &flags);
if (result < 0 || header_msg.len == 0)
{
@@ -241,7 +234,7 @@ ACE_Client_Logging_Handler::handle_input (ACE_HANDLE handle)
&payload_msg,
&flags);
- if (result < 0 || payload_msg.len != length)
+ if (result < 0 || payload_msg.len != (int)length)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("%p\n"),
@@ -307,7 +300,6 @@ ACE_Client_Logging_Handler::handle_input (ACE_HANDLE handle)
// Receive a logging record from an application send via a non-0
// MSG_BAND... This just calls handle_input().
-
int
ACE_Client_Logging_Handler::handle_exception (ACE_HANDLE handle)
{
@@ -315,7 +307,6 @@ ACE_Client_Logging_Handler::handle_exception (ACE_HANDLE handle)
}
// Called when object is removed from the ACE_Reactor
-
int
ACE_Client_Logging_Handler::close (u_long)
{
@@ -607,11 +598,11 @@ ACE_Client_Logging_Acceptor::init (int argc, ACE_TCHAR *argv[])
this->local_addr_) == -1)
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Can't connect to logging server %s on port %d: ")
+ ACE_TEXT ("Can't connect to logging server %C on port %d: ")
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
@@ -628,7 +619,7 @@ ACE_Client_Logging_Acceptor::init (int argc, ACE_TCHAR *argv[])
-1);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Client Logging Daemon is connected to Server ")
- ACE_TEXT ("Logging Daemon %s on port %d on handle %u\n"),
+ ACE_TEXT ("Logging Daemon %C on port %d on handle %u\n"),
server_addr.get_host_name (),
server_addr.get_port_number (),
stream.get_handle ()));
@@ -681,7 +672,7 @@ ACE_Client_Logging_Acceptor::parse_args (int argc, ACE_TCHAR *argv[])
ACE_TCHAR *local_addr_cstr = local_addr_str.rep ();
if (-1 == local_addr_.string_to_addr (ACE_TEXT_ALWAYS_CHAR (local_addr_cstr)))
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), local_addr_cstr));
- delete local_addr_cstr;
+ delete [] local_addr_cstr;
}
if (this->server_addr_.set (this->server_port_,
diff --git a/ACE/netsvcs/lib/Log_Message_Receiver.cpp b/ACE/netsvcs/lib/Log_Message_Receiver.cpp
index b6496232bd3..a50aeaacbee 100644
--- a/ACE/netsvcs/lib/Log_Message_Receiver.cpp
+++ b/ACE/netsvcs/lib/Log_Message_Receiver.cpp
@@ -6,16 +6,14 @@
#include "ace/Log_Msg.h"
#include "Log_Message_Receiver.h"
-ACE_RCSID(lib, Log_Message_Receiver, "$Id$")
-
// Type based log message receiver
template<ACE_SYNCH_DECL> void
Static_Log_Message_Receiver<ACE_SYNCH_USE>::log_record (const ACE_TCHAR *hostname,
ACE_Log_Record &record)
{
#if defined (ACE_HAS_THREADS)
- static ACE_SYNCH_MUTEX_T lock_;
- ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, lock_);
+ static ACE_SYNCH_MUTEX_T lock_;
+ ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, lock_);
#endif /* ACE_HAS_THREADS */
record.print (hostname,
@@ -68,15 +66,10 @@ Log_Message_Receiver_Impl<ACE_SYNCH_USE>::attach (Log_Message_Receiver_Impl<ACE_
#if defined (ACE_HAS_THREADS)
# if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- Guard guard (copy_lock_);
- if (guard.locked () == 0)
- return 0;
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, guard, copy_lock_, 0);
# else
// Use the "body"s print lock as copy lock.
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
- guard,
- global_copy_lock_,
- 0);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, global_copy_lock_, 0);
# endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
#endif /* ACE_HAS_THREADS */
++body->count_;
@@ -90,14 +83,10 @@ Log_Message_Receiver_Impl<ACE_SYNCH_USE>::detach (Log_Message_Receiver_Impl<ACE_
#if defined (ACE_HAS_THREADS)
# if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- Guard guard (copy_lock_);
- if (guard.locked () == 0)
- return;
+ ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, copy_lock_);
# else
// Use the "body"s print lock as copy lock.
- ACE_GUARD (ACE_SYNCH_MUTEX,
- guard,
- global_copy_lock_);
+ ACE_GUARD (ACE_SYNCH_MUTEX, guard, global_copy_lock_);
# endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
#endif /* ACE_HAS_THREADS */
if (body->count_-- == 0)
@@ -109,7 +98,7 @@ template<ACE_SYNCH_DECL> void
Log_Message_Receiver_Impl<ACE_SYNCH_USE>::log_record (const ACE_TCHAR *hostname,
ACE_Log_Record &record)
{
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, print_lock_));
+ ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, print_lock_);
record.print (hostname,
ACE_Log_Msg::instance ()->flags (),
stderr);
@@ -122,7 +111,7 @@ Log_Message_Receiver_Impl<ACE_SYNCH_USE>::log_output (const ACE_TCHAR *hostname,
{
if (outputfile != 0)
{
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, print_lock_));
+ ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, print_lock_);
record.print (hostname,
ACE_Log_Msg::instance ()->flags (),
*outputfile);
diff --git a/ACE/netsvcs/lib/Log_Message_Receiver.h b/ACE/netsvcs/lib/Log_Message_Receiver.h
index a067ca537c7..e6730a6458c 100644
--- a/ACE/netsvcs/lib/Log_Message_Receiver.h
+++ b/ACE/netsvcs/lib/Log_Message_Receiver.h
@@ -79,7 +79,7 @@
// be possible to write more complex LMRs, like one that creates
// a new log file each day or keeps a fixed size, round robin,
// log file. It should also be possible to have separate LMRs
-// of the same type that uses differnt log files.
+// of the same type that uses different log files.
//
// ==========================================================================//
@@ -175,7 +175,7 @@ private:
* @brief Implementation with reference count.
*/
template<ACE_SYNCH_DECL>
-class Log_Message_Receiver_Impl
+class Log_Message_Receiver_Impl : private ACE_Copy_Disabled
{
public:
// Methods for handling reference count and instance lifetime
@@ -183,8 +183,7 @@ public:
static Log_Message_Receiver_Impl *attach (Log_Message_Receiver_Impl<ACE_SYNCH_USE> *body);
static void detach (Log_Message_Receiver_Impl<ACE_SYNCH_USE> *body);
- void log_record (const ACE_TCHAR *hostname,
- ACE_Log_Record &record);
+ void log_record (const ACE_TCHAR *hostname, ACE_Log_Record &record);
void log_output(const ACE_TCHAR *hostname,
ACE_Log_Record &record,
@@ -195,7 +194,6 @@ protected:
~Log_Message_Receiver_Impl (void);
/// Attributes
- typedef ACE_Guard<ACE_SYNCH_MUTEX_T> Guard;
int count_;
ACE_SYNCH_MUTEX_T print_lock_;
@@ -203,10 +201,6 @@ private:
#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
static ACE_SYNCH_MUTEX_T copy_lock_;
#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
- // = Not implemeted
- ACE_UNIMPLEMENTED_FUNC (Log_Message_Receiver_Impl (const Log_Message_Receiver_Impl<ACE_SYNCH_USE> &rhs))
- ACE_UNIMPLEMENTED_FUNC (void operator=(const Log_Message_Receiver_Impl<ACE_SYNCH_USE> &rhs))
};
#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
diff --git a/ACE/netsvcs/lib/Name_Handler.cpp b/ACE/netsvcs/lib/Name_Handler.cpp
index 99e675243a0..aa146be6d25 100644
--- a/ACE/netsvcs/lib/Name_Handler.cpp
+++ b/ACE/netsvcs/lib/Name_Handler.cpp
@@ -8,10 +8,6 @@
#include "ace/Signal.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(lib,
- Name_Handler,
- "$Id$")
-
// Simple macro that does bitwise AND -- useful in table lookup
#define ACE_TABLE_MAP(INDEX, MASK) (INDEX & MASK)
@@ -21,7 +17,7 @@ ACE_RCSID(lib,
int
ACE_Name_Acceptor::parse_args (int argc, ACE_TCHAR *argv[])
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Acceptor::parse_args"));
+ ACE_TRACE ("ACE_Name_Acceptor::parse_args");
int service_port = ACE_DEFAULT_SERVER_PORT;
@@ -46,7 +42,7 @@ ACE_Name_Acceptor::parse_args (int argc, ACE_TCHAR *argv[])
int
ACE_Name_Acceptor::init (int argc, ACE_TCHAR *argv[])
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Acceptor::init"));
+ ACE_TRACE ("ACE_Name_Acceptor::init");
// Use the options hook to parse the command line arguments and set
// options.
@@ -101,7 +97,7 @@ ACE_SVC_FACTORY_DEFINE (ACE_Name_Acceptor)
ACE_Name_Handler::ACE_Name_Handler (ACE_Thread_Manager *tm)
: ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> (tm)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::ACE_Name_Handler"));
+ ACE_TRACE ("ACE_Name_Handler::ACE_Name_Handler");
// Set up pointers to member functions for the top-level dispatching
// of client requests.
@@ -142,7 +138,7 @@ ACE_Name_Handler::ACE_Name_Handler (ACE_Thread_Manager *tm)
/* VIRTUAL */ int
ACE_Name_Handler::open (void * v)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::open"));
+ ACE_TRACE ("ACE_Name_Handler::open");
// Call down to our parent to register ourselves with the Reactor.
if (ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::open (0) == -1)
@@ -163,7 +159,7 @@ ACE_Name_Handler::open (void * v)
ACE_Name_Handler::send_reply (ACE_INT32 status,
ACE_UINT32 err)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::send_reply"));
+ ACE_TRACE ("ACE_Name_Handler::send_reply");
void *buf;
this->name_reply_.msg_type (status);
this->name_reply_.errnum (err);
@@ -190,7 +186,7 @@ ACE_Name_Handler::send_reply (ACE_INT32 status,
/* VIRTUAL */ int
ACE_Name_Handler::send_request (ACE_Name_Request &request)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::send_request"));
+ ACE_TRACE ("ACE_Name_Handler::send_request");
void *buffer;
ssize_t length = request.encode (buffer);
@@ -215,7 +211,7 @@ ACE_Name_Handler::send_request (ACE_Name_Request &request)
/* VIRTUAL */ int
ACE_Name_Handler::abandon (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::abandon"));
+ ACE_TRACE ("ACE_Name_Handler::abandon");
return this->send_reply (-1, errno);
}
@@ -224,7 +220,7 @@ ACE_Name_Handler::abandon (void)
/* VIRTUAL */ int
ACE_Name_Handler::handle_timeout (const ACE_Time_Value &, const void *)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::handle_timeout"));
+ ACE_TRACE ("ACE_Name_Handler::handle_timeout");
return this->abandon ();
}
@@ -233,7 +229,7 @@ ACE_Name_Handler::handle_timeout (const ACE_Time_Value &, const void *)
/* VIRTUAL */ ACE_HANDLE
ACE_Name_Handler::get_handle (void) const
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::get_handle"));
+ ACE_TRACE ("ACE_Name_Handler::get_handle");
return this->peer ().get_handle ();
}
@@ -242,7 +238,7 @@ ACE_Name_Handler::get_handle (void) const
/* VIRTUAL */ int
ACE_Name_Handler::dispatch (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::dispatch"));
+ ACE_TRACE ("ACE_Name_Handler::dispatch");
// Dispatch the appropriate request.
int index = this->name_request_.msg_type ();
@@ -262,7 +258,7 @@ ACE_Name_Handler::dispatch (void)
/* VIRTUAL */ int
ACE_Name_Handler::recv_request (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::recv_request"));
+ ACE_TRACE ("ACE_Name_Handler::recv_request");
// Read the first 4 bytes to get the length of the message This
// implementation assumes that the first 4 bytes are the length of
// the message.
@@ -333,7 +329,7 @@ ACE_Name_Handler::recv_request (void)
/* VIRTUAL */ int
ACE_Name_Handler::handle_input (ACE_HANDLE)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::handle_input"));
+ ACE_TRACE ("ACE_Name_Handler::handle_input");
if (this->recv_request () == -1)
return -1;
@@ -344,14 +340,14 @@ ACE_Name_Handler::handle_input (ACE_HANDLE)
int
ACE_Name_Handler::bind (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::bind"));
+ ACE_TRACE ("ACE_Name_Handler::bind");
return this->shared_bind (0);
}
int
ACE_Name_Handler::rebind (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::rebind"));
+ ACE_TRACE ("ACE_Name_Handler::rebind");
int result = this->shared_bind (1);
return result == 1 ? 0 : result;
}
@@ -359,7 +355,7 @@ ACE_Name_Handler::rebind (void)
int
ACE_Name_Handler::shared_bind (int rebind)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::shared_bind"));
+ ACE_TRACE ("ACE_Name_Handler::shared_bind");
ACE_NS_WString a_name (this->name_request_.name (),
this->name_request_.name_len () / sizeof (ACE_WCHAR_T));
ACE_NS_WString a_value (this->name_request_.value (),
@@ -396,7 +392,7 @@ ACE_Name_Handler::shared_bind (int rebind)
int
ACE_Name_Handler::resolve (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::resolve"));
+ ACE_TRACE ("ACE_Name_Handler::resolve");
#if 0
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("request for RESOLVE\n")));
#endif /* 0 */
@@ -429,7 +425,7 @@ ACE_Name_Handler::resolve (void)
int
ACE_Name_Handler::unbind (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::unbind"));
+ ACE_TRACE ("ACE_Name_Handler::unbind");
#if 0
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("request for UNBIND\n")));
#endif /* 0 */
@@ -445,7 +441,7 @@ ACE_Name_Handler::unbind (void)
ACE_Name_Request
ACE_Name_Handler::name_request (ACE_NS_WString *one_name)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::name_request"));
+ ACE_TRACE ("ACE_Name_Handler::name_request");
ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> one_name_urep (one_name->rep ());
return ACE_Name_Request (ACE_Name_Request::LIST_NAMES,
one_name_urep.get (),
@@ -457,7 +453,7 @@ ACE_Name_Handler::name_request (ACE_NS_WString *one_name)
ACE_Name_Request
ACE_Name_Handler::value_request (ACE_NS_WString *one_value)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::value_request"));
+ ACE_TRACE ("ACE_Name_Handler::value_request");
ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> one_value_urep (one_value->rep ());
return ACE_Name_Request (ACE_Name_Request::LIST_VALUES,
0, 0,
@@ -469,7 +465,7 @@ ACE_Name_Handler::value_request (ACE_NS_WString *one_value)
ACE_Name_Request
ACE_Name_Handler::type_request (ACE_NS_WString *one_type)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::type_request"));
+ ACE_TRACE ("ACE_Name_Handler::type_request");
return ACE_Name_Request (ACE_Name_Request::LIST_TYPES,
0, 0,
0, 0,
@@ -480,7 +476,7 @@ ACE_Name_Handler::type_request (ACE_NS_WString *one_type)
int
ACE_Name_Handler::lists (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::lists"));
+ ACE_TRACE ("ACE_Name_Handler::lists");
ACE_PWSTRING_SET set;
ACE_NS_WString pattern (this->name_request_.name (),
@@ -531,7 +527,7 @@ ACE_Name_Handler::lists (void)
int
ACE_Name_Handler::lists_entries (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::lists_entries"));
+ ACE_TRACE ("ACE_Name_Handler::lists_entries");
ACE_BINDING_SET set;
ACE_NS_WString pattern (this->name_request_.name (),
this->name_request_.name_len () / sizeof (ACE_WCHAR_T));
@@ -631,7 +627,7 @@ ACE_Name_Acceptor::naming_context (void)
ACE_Name_Handler::~ACE_Name_Handler (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::~ACE_Name_Handler"));
+ ACE_TRACE ("ACE_Name_Handler::~ACE_Name_Handler");
#if 0
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("closing down Handle %d\n"),
this->get_handle ()));
diff --git a/ACE/netsvcs/lib/Server_Logging_Handler.cpp b/ACE/netsvcs/lib/Server_Logging_Handler.cpp
index 0073da30fc8..0fdccbc523c 100644
--- a/ACE/netsvcs/lib/Server_Logging_Handler.cpp
+++ b/ACE/netsvcs/lib/Server_Logging_Handler.cpp
@@ -5,12 +5,9 @@
#include "Server_Logging_Handler.h"
-ACE_RCSID(lib, Server_Logging_Handler, "$Id$")
-
// The following are "Factories" used by the ACE_Service_Config and
// svc.conf file to dynamically initialize the state of the
// single-threaded and multi-threaded logging server.
-
ACE_SVC_FACTORY_DEFINE (ACE_Server_Logging_Acceptor)
ACE_SVC_FACTORY_DEFINE (ACE_Thr_Server_Logging_Acceptor)
diff --git a/ACE/netsvcs/lib/Server_Logging_Handler_T.cpp b/ACE/netsvcs/lib/Server_Logging_Handler_T.cpp
index a8e5e0da81e..caa9a15b148 100644
--- a/ACE/netsvcs/lib/Server_Logging_Handler_T.cpp
+++ b/ACE/netsvcs/lib/Server_Logging_Handler_T.cpp
@@ -10,8 +10,6 @@
#include "Server_Logging_Handler_T.h"
#include "ace/Signal.h"
-ACE_RCSID(lib, Server_Logging_Handler_T, "$Id$")
-
#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
// Track number of requests.
template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_DECL, class LMR>
@@ -310,7 +308,7 @@ ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::scheduling_strategy (void)
template<class SLH, class LMR, class SST> int
ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::init (int argc, ACE_TCHAR *argv[])
{
- ACE_TRACE (ACE_TEXT ("ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::init"));
+ ACE_TRACE ("ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::init");
// Use the options hook to parse the command line arguments and set
// options.
@@ -352,7 +350,7 @@ ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::init (int argc, ACE_TCHAR *argv[])
template<class SLH, class LMR, class SST> int
ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::parse_args (int argc, ACE_TCHAR *argv[])
{
- ACE_TRACE (ACE_TEXT ("ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::parse_args"));
+ ACE_TRACE ("ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::parse_args");
int service_port = ACE_DEFAULT_SERVER_PORT;
diff --git a/ACE/netsvcs/lib/TS_Clerk_Handler.cpp b/ACE/netsvcs/lib/TS_Clerk_Handler.cpp
index 8b9262626b9..463d472a81e 100644
--- a/ACE/netsvcs/lib/TS_Clerk_Handler.cpp
+++ b/ACE/netsvcs/lib/TS_Clerk_Handler.cpp
@@ -8,8 +8,6 @@
#include "ace/OS_NS_time.h"
#include "ace/os_include/os_netdb.h"
-ACE_RCSID(lib, TS_Clerk_Handler, "$Id$")
-
ACE_TS_Clerk_Handler::ACE_TS_Clerk_Handler (ACE_TS_Clerk_Processor *processor,
ACE_INET_Addr &addr)
: state_ (ACE_TS_Clerk_Handler::IDLE),
@@ -27,7 +25,7 @@ ACE_TS_Clerk_Handler::ACE_TS_Clerk_Handler (ACE_TS_Clerk_Processor *processor,
void
ACE_TS_Clerk_Handler::state (ACE_TS_Clerk_Handler::State state)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::state"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::state");
this->state_ = state;
}
@@ -35,7 +33,7 @@ ACE_TS_Clerk_Handler::state (ACE_TS_Clerk_Handler::State state)
ACE_TS_Clerk_Handler::State
ACE_TS_Clerk_Handler::state (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::state"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::state");
return this->state_;
}
@@ -43,7 +41,7 @@ ACE_TS_Clerk_Handler::state (void)
void
ACE_TS_Clerk_Handler::timeout (long to)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::timeout"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::timeout");
if (to > this->max_timeout_)
to = this->max_timeout_;
@@ -56,7 +54,7 @@ ACE_TS_Clerk_Handler::timeout (long to)
long
ACE_TS_Clerk_Handler::timeout (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::timeout"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::timeout");
long old_timeout = this->timeout_;
this->timeout_ *= 2;
@@ -78,7 +76,7 @@ ACE_TS_Clerk_Handler::handle_signal (int, siginfo_t *, ucontext_t *)
void
ACE_TS_Clerk_Handler::max_timeout (long mto)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::max_timeout"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::max_timeout");
this->max_timeout_ = mto;
}
@@ -86,14 +84,14 @@ ACE_TS_Clerk_Handler::max_timeout (long mto)
long
ACE_TS_Clerk_Handler::max_timeout (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::max_timeout"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::max_timeout");
return this->max_timeout_;
}
int
ACE_TS_Clerk_Handler::open (void *)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::open"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::open");
ACE_INET_Addr server_addr;
// Set connection state as established
@@ -132,7 +130,7 @@ ACE_TS_Clerk_Handler::open (void *)
ACE_HANDLE
ACE_TS_Clerk_Handler::get_handle (void) const
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::get_handle"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::get_handle");
return this->peer().get_handle ();
}
@@ -140,7 +138,7 @@ int
ACE_TS_Clerk_Handler::handle_close (ACE_HANDLE,
ACE_Reactor_Mask mask)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::handle_close"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::handle_close");
ACE_UNUSED_ARG (mask);
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) shutting down on handle %d\n"),
@@ -152,7 +150,7 @@ ACE_TS_Clerk_Handler::handle_close (ACE_HANDLE,
int
ACE_TS_Clerk_Handler::reinitiate_connection (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::reinitiate_connection"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::reinitiate_connection");
// Skip over deactivated descriptors.
// Set state to connecting so that we don't try to send anything
@@ -177,7 +175,7 @@ ACE_TS_Clerk_Handler::reinitiate_connection (void)
int
ACE_TS_Clerk_Handler::handle_input (ACE_HANDLE)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::handle_input"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::handle_input");
// We're getting a time update message from a server
ACE_Time_Request reply;
if (this->recv_reply (reply) != 0)
@@ -207,7 +205,7 @@ int
ACE_TS_Clerk_Handler::handle_timeout (const ACE_Time_Value &,
const void *)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::handle_timeout"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::handle_timeout");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%t) attempting to reconnect to server with timeout = %d\n"),
this->timeout_));
@@ -222,21 +220,21 @@ ACE_TS_Clerk_Handler::handle_timeout (const ACE_Time_Value &,
void
ACE_TS_Clerk_Handler::remote_addr (ACE_INET_Addr &addr)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::remote_addr"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::remote_addr");
this->remote_addr_ = addr;
}
ACE_INET_Addr &
ACE_TS_Clerk_Handler::remote_addr (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::remote_addr"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::remote_addr");
return this->remote_addr_;
}
int
ACE_TS_Clerk_Handler::recv_reply (ACE_Time_Request &reply)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::recv_reply"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::recv_reply");
const int bytes_expected = reply.size ();
// Since Time_Request messages are fixed size, read the entire
@@ -270,7 +268,7 @@ ACE_TS_Clerk_Handler::recv_reply (ACE_Time_Request &reply)
int
ACE_TS_Clerk_Handler::send_request (ACE_UINT32 sequence_num, ACE_Time_Info &time_info)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Handler::send_request"));
+ ACE_TRACE ("ACE_TS_Clerk_Handler::send_request");
void *buffer;
ssize_t length;
@@ -329,7 +327,7 @@ ACE_TS_Clerk_Processor::ACE_TS_Clerk_Processor ()
void
ACE_TS_Clerk_Processor::alloc (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::alloc"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::alloc");
ACE_NEW (this->shmem_, ALLOCATOR (this->poolname_));
void *temp = 0;
@@ -360,14 +358,14 @@ int
ACE_TS_Clerk_Processor::handle_timeout (const ACE_Time_Value &,
const void *)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::handle_timeout"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::handle_timeout");
return this->update_time ();
}
int
ACE_TS_Clerk_Processor::update_time ()
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::update_time"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::update_time");
ACE_UINT32 expected_sequence_num = this->cur_sequence_num_;
// Increment sequence number
@@ -430,7 +428,7 @@ ACE_TS_Clerk_Processor::update_time ()
int
ACE_TS_Clerk_Processor::fini (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::fini"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::fini");
// Cancel the timer
if (this->timer_id_ != -1)
@@ -462,14 +460,14 @@ ACE_TS_Clerk_Processor::fini (void)
int
ACE_TS_Clerk_Processor::info (ACE_TCHAR **, size_t) const
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::info"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::info");
return 0;
}
int
ACE_TS_Clerk_Processor::init (int argc, ACE_TCHAR *argv[])
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::init"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::init");
// Use the options hook to parse the command line arguments and set
// options.
this->parse_args (argc, argv);
@@ -507,7 +505,7 @@ int
ACE_TS_Clerk_Processor::initiate_connection (ACE_TS_Clerk_Handler *handler,
ACE_Synch_Options &synch_options)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::initiate_connection"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::initiate_connection");
ACE_TCHAR buf[MAXHOSTNAMELEN + 1];
// Mark ourselves as idle so that the various iterators will ignore
@@ -566,7 +564,7 @@ ACE_TS_Clerk_Processor::initiate_connection (ACE_TS_Clerk_Handler *handler,
int
ACE_TS_Clerk_Processor::parse_args (int argc, ACE_TCHAR *argv[])
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::parse_args"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::parse_args");
ACE_INET_Addr server_addr;
ACE_TS_Clerk_Handler *handler;
@@ -614,14 +612,14 @@ ACE_TS_Clerk_Processor::parse_args (int argc, ACE_TCHAR *argv[])
int
ACE_TS_Clerk_Processor::suspend (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::suspend"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::suspend");
return 0;
}
int
ACE_TS_Clerk_Processor::resume (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Clerk_Processor::resume"));
+ ACE_TRACE ("ACE_TS_Clerk_Processor::resume");
return 0;
}
diff --git a/ACE/netsvcs/lib/TS_Server_Handler.cpp b/ACE/netsvcs/lib/TS_Server_Handler.cpp
index a8c30c73662..01fcd33e952 100644
--- a/ACE/netsvcs/lib/TS_Server_Handler.cpp
+++ b/ACE/netsvcs/lib/TS_Server_Handler.cpp
@@ -7,8 +7,6 @@
#include "ace/OS_NS_time.h"
#include "ace/Signal.h"
-ACE_RCSID(lib, TS_Server_Handler, "$Id$")
-
int
ACE_TS_Server_Acceptor::parse_args (int argc, ACE_TCHAR *argv[])
{
@@ -40,7 +38,7 @@ ACE_TS_Server_Acceptor::parse_args (int argc, ACE_TCHAR *argv[])
int
ACE_TS_Server_Acceptor::init (int argc, ACE_TCHAR *argv[])
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Acceptor::init"));
+ ACE_TRACE ("ACE_TS_Server_Acceptor::init");
// Use the options hook to parse the command line arguments and set
// options.
@@ -89,7 +87,7 @@ ACE_SVC_FACTORY_DEFINE (ACE_TS_Server_Acceptor)
ACE_TS_Server_Handler::ACE_TS_Server_Handler (ACE_Thread_Manager *tm)
: ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> (tm)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::ACE_TS_Server_Handler"));
+ ACE_TRACE ("ACE_TS_Server_Handler::ACE_TS_Server_Handler");
}
// Activate this instance of the ACE_TS_Server_Handler (called by the
@@ -98,7 +96,7 @@ ACE_TS_Server_Handler::ACE_TS_Server_Handler (ACE_Thread_Manager *tm)
/* VIRTUAL */ int
ACE_TS_Server_Handler::open (void *)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::open"));
+ ACE_TRACE ("ACE_TS_Server_Handler::open");
ACE_INET_Addr client_addr;
@@ -110,7 +108,7 @@ ACE_TS_Server_Handler::open (void *)
-1);
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) accepted connection from host %s on fd %d\n"),
+ ACE_TEXT ("(%t) accepted connection from host %C on fd %d\n"),
client_addr.get_host_name (),
this->peer ().get_handle ()));
@@ -126,7 +124,7 @@ ACE_TS_Server_Handler::open (void *)
/* VIRTUAL */ int
ACE_TS_Server_Handler::send_request (ACE_Time_Request &request)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::send_request"));
+ ACE_TRACE ("ACE_TS_Server_Handler::send_request");
void *buffer;
ssize_t length = request.encode (buffer);
@@ -152,7 +150,7 @@ ACE_TS_Server_Handler::send_request (ACE_Time_Request &request)
/* VIRTUAL */ int
ACE_TS_Server_Handler::abandon (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::abandon"));
+ ACE_TRACE ("ACE_TS_Server_Handler::abandon");
// Note we are using the time field to report the errno in case of
// failure.
@@ -164,7 +162,7 @@ ACE_TS_Server_Handler::abandon (void)
/* VIRTUAL */ int
ACE_TS_Server_Handler::handle_timeout (const ACE_Time_Value &, const void *)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::handle_timeout"));
+ ACE_TRACE ("ACE_TS_Server_Handler::handle_timeout");
return this->abandon ();
}
@@ -173,7 +171,7 @@ ACE_TS_Server_Handler::handle_timeout (const ACE_Time_Value &, const void *)
/* VIRTUAL */ ACE_HANDLE
ACE_TS_Server_Handler::get_handle (void) const
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::get_handle"));
+ ACE_TRACE ("ACE_TS_Server_Handler::get_handle");
return this->peer ().get_handle ();
}
@@ -182,7 +180,7 @@ ACE_TS_Server_Handler::get_handle (void) const
/* VIRTUAL */ int
ACE_TS_Server_Handler::dispatch (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::dispatch"));
+ ACE_TRACE ("ACE_TS_Server_Handler::dispatch");
// Get the system time and then create an ACE_Time_Request
time_t t = ACE_OS::time (0);
ACE_Time_Request rq (ACE_Time_Request::TIME_UPDATE, t);
@@ -195,7 +193,7 @@ ACE_TS_Server_Handler::dispatch (void)
/* VIRTUAL */ int
ACE_TS_Server_Handler::recv_request (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::recv_request"));
+ ACE_TRACE ("ACE_TS_Server_Handler::recv_request");
ssize_t bytes_expected = this->time_request_.size ();
// Since Time_Request messages are fixed size, read the entire
@@ -244,7 +242,7 @@ ACE_TS_Server_Handler::recv_request (void)
/* VIRTUAL */ int
ACE_TS_Server_Handler::handle_input (ACE_HANDLE)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::handle_input"));
+ ACE_TRACE ("ACE_TS_Server_Handler::handle_input");
if (this->recv_request () == -1)
return -1;
@@ -254,7 +252,7 @@ ACE_TS_Server_Handler::handle_input (ACE_HANDLE)
ACE_TS_Server_Handler::~ACE_TS_Server_Handler (void)
{
- ACE_TRACE (ACE_TEXT ("ACE_TS_Server_Handler::~ACE_TS_Server_Handler"));
+ ACE_TRACE ("ACE_TS_Server_Handler::~ACE_TS_Server_Handler");
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("closing down Handle %d\n"),
this->get_handle ()));
diff --git a/ACE/netsvcs/lib/Time_Request_Reply.cpp b/ACE/netsvcs/lib/Time_Request_Reply.cpp
index 5542e3974e5..83b43e89652 100644
--- a/ACE/netsvcs/lib/Time_Request_Reply.cpp
+++ b/ACE/netsvcs/lib/Time_Request_Reply.cpp
@@ -9,17 +9,13 @@
#include "Time_Request_Reply.h"
-ACE_RCSID(lib, Time_Request_Reply, "$Id$")
-
// Default "do nothing" constructor.
-
ACE_Time_Request::ACE_Time_Request (void)
{
ACE_TRACE ("ACE_Time_Request::ACE_Time_Request");
}
// Create a ACE_Time_Request message.
-
ACE_Time_Request::ACE_Time_Request (ACE_INT32 t, // Type of request.
const time_t time,
ACE_Time_Value *timeout) // Max time waiting for request.
@@ -46,14 +42,6 @@ ACE_Time_Request::ACE_Time_Request (ACE_INT32 t, // Type of request.
this->transfer_.time_ = this->time_ = time;
}
-// Initialize length_ in order to avoid problems with byte-ordering
-void
-ACE_Time_Request::init (void)
-{
- ACE_TRACE ("ACE_Time_Request::init");
-// this->length (sizeof this->transfer_);
-}
-
// Get the fixed size of message
ssize_t
ACE_Time_Request::size (void) const
diff --git a/ACE/netsvcs/lib/Time_Request_Reply.h b/ACE/netsvcs/lib/Time_Request_Reply.h
index 530c5693899..8393150638e 100644
--- a/ACE/netsvcs/lib/Time_Request_Reply.h
+++ b/ACE/netsvcs/lib/Time_Request_Reply.h
@@ -58,13 +58,6 @@ public:
const time_t time,
ACE_Time_Value *timeout = 0);
- /**
- * Initialize length_ in order to ensure correct byte ordering before a
- * request is sent.
- * @deprecated This method is a no-op.
- */
- void init (void);
-
// Get the fixed size of message
ssize_t size (void) const;
diff --git a/ACE/netsvcs/lib/Token_Handler.cpp b/ACE/netsvcs/lib/Token_Handler.cpp
index ae446d61262..f9f234b2201 100644
--- a/ACE/netsvcs/lib/Token_Handler.cpp
+++ b/ACE/netsvcs/lib/Token_Handler.cpp
@@ -7,10 +7,6 @@
#include "ace/Signal.h"
-ACE_RCSID (lib,
- Token_Handler,
- "$Id$")
-
int
ACE_Token_Acceptor::parse_args (int argc, ACE_TCHAR *argv[])
{
diff --git a/ACE/netsvcs/lib/lib.mpc b/ACE/netsvcs/lib/lib.mpc
index 6124ac65764..45c2cf9a2ef 100644
--- a/ACE/netsvcs/lib/lib.mpc
+++ b/ACE/netsvcs/lib/lib.mpc
@@ -11,10 +11,12 @@ project(netsvcs): ace_output, acelib {
TS_Clerk_Handler.cpp
Client_Logging_Handler.cpp
Name_Handler.cpp
- Server_Logging_Handler_T.cpp
Log_Message_Receiver.cpp
Server_Logging_Handler.cpp
Token_Handler.cpp
+ }
+ Template_Files {
Base_Optimizer.cpp
+ Server_Logging_Handler_T.cpp
}
}
diff --git a/ACE/netsvcs/servers/README b/ACE/netsvcs/servers/README
index f6fa4a19557..fcab03dc49a 100644
--- a/ACE/netsvcs/servers/README
+++ b/ACE/netsvcs/servers/README
@@ -14,20 +14,20 @@ program by changing how the svc.conf file is setup:
and single-threaded implementations are provided.
. Client_Logging_Handler.* -- Implements the client portion
- of the ACE distributed logging service. Note that you
+ of the ACE distributed logging service. Note that you
generally will run a netsvc daemon that's configured with
*either* the server portion of the logging service or the
client portion of the logging service, but not both in
- the same process. In otherwords, you'll need to have
+ the same process. In other words, you'll need to have
separate svc.conf files to configure the client logging process
- and the server logging process indepedently.
+ and the server logging process independently.
. Name_Handler.* -- Implements a distributed name service that
allows applications to bind, find, and unbind names in
a distributed system.
. Token_Handler.* -- Implements a distributed token service
- that allows distributed applications to acquire and release
+ that allows distributed applications to acquire and release
locks in a distributed system.
. Time_Handler.* -- Implements a distributed time service that
diff --git a/ACE/netsvcs/servers/main.cpp b/ACE/netsvcs/servers/main.cpp
index c3f37ab9743..5763af2a092 100644
--- a/ACE/netsvcs/servers/main.cpp
+++ b/ACE/netsvcs/servers/main.cpp
@@ -10,8 +10,6 @@
#include "Token_Handler.h"
#include "Server_Logging_Handler.h"
-ACE_RCSID(servers, main, "$Id$")
-
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
@@ -164,8 +162,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Register ourselves to receive signals so we can shut down
// gracefully.
- if (ACE_Reactor::instance ()->register_handler (sig_set,
- &sa) == -1)
+ if (ACE_Reactor::instance ()->register_handler (sig_set, &sa) == -1)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("register signals2")));
diff --git a/ACE/netsvcs/servers/servers.mpc b/ACE/netsvcs/servers/servers.mpc
index 4ac3bd9abde..9ca17d88781 100644
--- a/ACE/netsvcs/servers/servers.mpc
+++ b/ACE/netsvcs/servers/servers.mpc
@@ -2,7 +2,7 @@
// $Id$
project(Netsvcs_server) : aceexe, avoids_ace_for_tao {
- exename = main
+ exename = ace_netsvcs
libs += netsvcs
after += netsvcs
includes += $(ACE_ROOT)/netsvcs/lib
diff --git a/ACE/netsvcs/servers/svc.conf b/ACE/netsvcs/servers/svc.conf
index 94462ea04b0..2e3828ff144 100644
--- a/ACE/netsvcs/servers/svc.conf
+++ b/ACE/netsvcs/servers/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# These are the services that can be linked into ACE.
# Note that you can append the "netsvcs" with
# a relative path if you idn't set your LD search path correctly --
diff --git a/ACE/performance-tests/Misc/Misc.mpc b/ACE/performance-tests/Misc/Misc.mpc
index 3be2b7e3078..d6b744e8331 100644
--- a/ACE/performance-tests/Misc/Misc.mpc
+++ b/ACE/performance-tests/Misc/Misc.mpc
@@ -58,10 +58,10 @@ project(*preempt) : aceexe {
}
}
-// May need to add an ace_obsolete_guard_class feature
-//project(*test_guard) : aceexe {
-// exename = test_guard
-// Source_Files {
-// test_guard.cpp
-// }
-//}
+project(*test_guard) : aceexe {
+ avoids += ace_for_tao
+ exename = test_guard
+ Source_Files {
+ test_guard.cpp
+ }
+}
diff --git a/ACE/performance-tests/Misc/basic_func.cpp b/ACE/performance-tests/Misc/basic_func.cpp
index a76565d74fb..4f1bbd2a55e 100644
--- a/ACE/performance-tests/Misc/basic_func.cpp
+++ b/ACE/performance-tests/Misc/basic_func.cpp
@@ -2,8 +2,6 @@
#include "basic_func.h"
-ACE_RCSID(Misc, basic_func, "$Id$")
-
int A, BB, C, D, E, F;
void
diff --git a/ACE/performance-tests/Misc/basic_func.h b/ACE/performance-tests/Misc/basic_func.h
index bbaf4d4cfb9..6281c349214 100644
--- a/ACE/performance-tests/Misc/basic_func.h
+++ b/ACE/performance-tests/Misc/basic_func.h
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance-tests/Misc
-//
-// = FILENAME
-// basic_func.h
-//
-// = DESCRIPTION
-// For use with basic_perf.cpp.
-//
-// = AUTHOR
-// David Levine
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file basic_func.h
+ *
+ * $Id$
+ *
+ * For use with basic_perf.cpp.
+ *
+ *
+ * @author David Levine
+ */
+//=============================================================================
+
#ifndef BASIC_FUNC_H
#define BASIC_FUNC_H
diff --git a/ACE/performance-tests/Misc/basic_perf.cpp b/ACE/performance-tests/Misc/basic_perf.cpp
index d084e84e1b2..5fb55ba3049 100644
--- a/ACE/performance-tests/Misc/basic_perf.cpp
+++ b/ACE/performance-tests/Misc/basic_perf.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance-tests/Misc
-//
-// = FILENAME
-// basic_perf.cpp
-//
-// = DESCRIPTION
-// Times various simple operations.
-//
-// With Sun C++, use -O2: make CFLAGS="-mt -O2" BIN=basic_perf
-// -fast seems to produce slower times.
-//
-// = AUTHOR
-// David Levine
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file basic_perf.cpp
+ *
+ * $Id$
+ *
+ * Times various simple operations.
+ *
+ * With Sun C++, use -O2: make CFLAGS="-mt -O2" BIN=basic_perf
+ * -fast seems to produce slower times.
+ *
+ *
+ * @author David Levine
+ */
+//=============================================================================
+
#include "basic_func.h"
#include "ace/High_Res_Timer.h"
@@ -27,8 +24,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_sys_utsname.h"
-ACE_RCSID(Misc, basic_perf, "$Id$")
-
static const char usage [] = "[-? |\n"
" [-i <iterations> [1000000]]";
diff --git a/ACE/performance-tests/Misc/childbirth_time.cpp b/ACE/performance-tests/Misc/childbirth_time.cpp
index 913b4de0e25..ad30cbf6e28 100644
--- a/ACE/performance-tests/Misc/childbirth_time.cpp
+++ b/ACE/performance-tests/Misc/childbirth_time.cpp
@@ -1,64 +1,61 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// (none)
-//
-// = FILENAME
-// childbirth_time.cpp
-//
-// = DESCRIPTION
-// This program is used to measure various child-creation mechanisms
-// on various platforms. By default, the program measure the time
-// to 'fork' a new process using ACE_Process.spawn (). Other tests
-// are possible as described below. James Hu provides the idea to
-// batch measuring threads creation.
-//
-// Usage: childbirth_time [-n ###] [-l ###] [-p|-f|-t|-a|-m|-x] [-h] [-e]
-//
-// -n ###: Specify number of iteration in tens. If this
-// option is not specified, the default is
-// MULTIPLY_FACTOR * (100 iterations,) which is
-// equivalent to -n 10.
-//
-// -l ###: Specify MULTIPLY_FACTOR. Default is 10.
-//
-// *-p: Measure the performance of forking a child process
-// and exec an "empty" program. This test uses
-// ACE_Process.spawn (). (Default)
-//
-// -f: Measure the performance of native "fork" function
-// call. Notice that there is no equivalent NT
-// function calls and this option is only available
-// on UN*X platform.
-//
-// -t: Measure the performance of native thread creation
-// mechanisms. On Solaris, this is thr_create ().
-// On NT, this is CreateThread (). Currently, only
-// these two platforms are implemented.
-//
-// -m: Measure the performance of Thread_Manager::spawn_n
-// method.
-//
-// -x: Test the baseline performance of ACE_Thread_Mutex.
-// This really doesn't belong here
-//
-// -a: Measure the performance of thread creation using
-// ACE_OS::thr_create ().
-//
-// -h: Use High Resolution Timer if supported by platform.
-//
-// -e: Exec a program after fork (). This option has no
-// effect on NT.
-//
-// = CREATION DATE
-// June 29, 1997
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file childbirth_time.cpp
+ *
+ * $Id$
+ *
+ * This program is used to measure various child-creation mechanisms
+ * on various platforms. By default, the program measure the time
+ * to 'fork' a new process using ACE_Process.spawn (). Other tests
+ * are possible as described below. James Hu provides the idea to
+ * batch measuring threads creation.
+ *
+ * Usage: childbirth_time [-n ###] [-l ###] [-p|-f|-t|-a|-m|-x] [-h] [-e]
+ *
+ * -n ###: Specify number of iteration in tens. If this
+ * option is not specified, the default is
+ * MULTIPLY_FACTOR * (100 iterations,) which is
+ * equivalent to -n 10.
+ *
+ * -l ###: Specify MULTIPLY_FACTOR. Default is 10.
+ *
+ * *-p: Measure the performance of forking a child process
+ * and exec an "empty" program. This test uses
+ * ACE_Process.spawn (). (Default)
+ *
+ * -f: Measure the performance of native "fork" function
+ * call. Notice that there is no equivalent NT
+ * function calls and this option is only available
+ * on UN*X platform.
+ *
+ * -t: Measure the performance of native thread creation
+ * mechanisms. On Solaris, this is thr_create ().
+ * On NT, this is CreateThread (). Currently, only
+ * these two platforms are implemented.
+ *
+ * -m: Measure the performance of Thread_Manager::spawn_n
+ * method.
+ *
+ * -x: Test the baseline performance of ACE_Thread_Mutex.
+ * This really doesn't belong here
+ *
+ * -a: Measure the performance of thread creation using
+ * ACE_OS::thr_create ().
+ *
+ * -h: Use High Resolution Timer if supported by platform.
+ *
+ * -e: Exec a program after fork (). This option has no
+ * effect on NT.
+ *
+ * = CREATION DATE
+ * June 29, 1997
+ *
+ *
+ * @author Nanbor Wang
+ */
+//=============================================================================
+
// Process Creation profiling
@@ -69,8 +66,6 @@
#include "ace/Profile_Timer.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(Misc, childbirth_time, "$Id$")
-
#define ACE_STOP_SIGN ACE_OS::sleep (0)
#define MAX_NO_ITERATION 10000
diff --git a/ACE/performance-tests/Misc/context_switch_time.cpp b/ACE/performance-tests/Misc/context_switch_time.cpp
index 70e9a0610a0..293f687d434 100644
--- a/ACE/performance-tests/Misc/context_switch_time.cpp
+++ b/ACE/performance-tests/Misc/context_switch_time.cpp
@@ -1,48 +1,45 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// (none)
-//
-// = FILENAME
-// context_switch_time.cpp
-//
-// = DESCRIPTION
-// Program that calculates context switch time between threads.
-// The Suspend-Resume test is based on the Task Context Switching
-// measurement approach described in:
-// Darren Cathey<br>
-// "RTOS Benchmarking -- All Things Considered . . ."<br>
-// <a href="http://www.realtime-info.be"><em>Real-Time Magazine</em></a>,
-// Second Quarter 1993,
-// <em>reprinted by <a href="http://www.wrs.com/artreqfm.html">Wind River
-// Systems</a></em><p>
-// which in turn is based on Superconducting Super Collider (SSC)
-// Laboratory Ping Suspend/Resume Task and Suspend/Resume Task benchmarks.
-// It measures two different times:
-// 1) The time to resume a blocked high priority task, which does
-// nothing other than block immediately. A lower priority task
-// resumes the high priority task, so the elapsed time includes
-// two context switches, one task suspend, and one task resume.
-// 2) The time to suspend and resume a low priority task that does
-// nothing. There is no context switching. This time is subtracted
-// from the one described in 1) above, and the result is divided by
-// two to yield the context switch time.
-//
-// Notes:
-// On Solaris 2.5.1, it appears that the lowest context switching times,
-// at least on a single-CPU machine, are obtained _without_ creating new
-// LWPs for new threads (THR_NEW_LWP). The -n option enables the use of
-// THR_NEW_LWP for testing.
-//
-// = CREATION DATE
-// 17 January 1997
-//
-// = AUTHOR
-// David L. Levine
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file context_switch_time.cpp
+ *
+ * $Id$
+ *
+ * Program that calculates context switch time between threads.
+ * The Suspend-Resume test is based on the Task Context Switching
+ * measurement approach described in:
+ * Darren Cathey<br>
+ * "RTOS Benchmarking -- All Things Considered . . ."<br>
+ * <a href="http://www.realtime-info.be"><em>Real-Time Magazine</em></a>,
+ * Second Quarter 1993,
+ * <em>reprinted by <a href="http://www.wrs.com/artreqfm.html">Wind River
+ * Systems</a></em><p>
+ * which in turn is based on Superconducting Super Collider (SSC)
+ * Laboratory Ping Suspend/Resume Task and Suspend/Resume Task benchmarks.
+ * It measures two different times:
+ * 1) The time to resume a blocked high priority task, which does
+ * nothing other than block immediately. A lower priority task
+ * resumes the high priority task, so the elapsed time includes
+ * two context switches, one task suspend, and one task resume.
+ * 2) The time to suspend and resume a low priority task that does
+ * nothing. There is no context switching. This time is subtracted
+ * from the one described in 1) above, and the result is divided by
+ * two to yield the context switch time.
+ *
+ * Notes:
+ * On Solaris 2.5.1, it appears that the lowest context switching times,
+ * at least on a single-CPU machine, are obtained _without_ creating new
+ * LWPs for new threads (THR_NEW_LWP). The -n option enables the use of
+ * THR_NEW_LWP for testing.
+ *
+ * = CREATION DATE
+ * 17 January 1997
+ *
+ *
+ * @author David L. Levine
+ */
+//=============================================================================
+
static const char usage [] = "[-? |\n"
" [-c <repeat counter, 0 means forever>]\n"
@@ -61,8 +58,6 @@ static const char usage [] = "[-? |\n"
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_errno.h"
-ACE_RCSID(Misc, context_switch_time, "$Id$")
-
#if defined (ACE_HAS_THREADS)
#if !defined (ACE_DEBUG_CST)
@@ -667,11 +662,11 @@ public:
ACE_hrtime_t elapsed_time () const { return elapsed_time_; }
private:
+ /// Mutex used for acquire/release time measurement.
ACE_Thread_Mutex mutex_;
- // Mutex used for acquire/release time measurement.
+ /// Semaphore used for acquire/release time measurement.
ACE_Thread_Semaphore sem_;
- // Semaphore used for acquire/release time measurement.
const ACE_UINT32 iterations_;
@@ -749,9 +744,9 @@ public:
virtual int svc ();
+ /// Called by other task: it returns when this task is ready to
+ /// continue
void ready () { initialized_.acquire (); }
- // Called by other task: it returns when this task is ready to
- // continue
void done ();
@@ -765,17 +760,17 @@ private:
int terminate_;
ACE_UINT32 iterations_;
+ /// Semaphore used to resume the task.
ACE_Thread_Semaphore &sem_;
- // Semaphore used to resume the task.
+ /// Mutex used to block the task.
ACE_Thread_Mutex &mutex_;
- // Mutex used to block the task.
+ /// Clock shared between low and high priority tasks.
ACE_High_Res_Timer &timer_;
- // Clock shared between low and high priority tasks.
+ /// Running total context switch time, nsec.
ACE_hrtime_t total_time_;
- // Running total context switch time, nsec.
// Force proper construction of independent instances.
High_Priority_Synchronized_Task ();
@@ -924,17 +919,17 @@ public:
private:
const ACE_UINT32 iterations_;
+ /// Used by the low priority thread to resume the high priority thread.
ACE_Thread_Semaphore sem_;
- // Used by the low priority thread to resume the high priority thread.
+ /// Used by the low priority thread to block the high priority thread.
ACE_Thread_Mutex mutex_;
- // Used by the low priority thread to block the high priority thread.
+ /// Clock shared between low and high priority tasks.
ACE_High_Res_Timer timer_;
- // Clock shared between low and high priority tasks.
+ /// The high priority task.
High_Priority_Synchronized_Task high_;
- // The high priority task.
ACE_hrtime_t elapsed_time_;
diff --git a/ACE/performance-tests/Misc/preempt.cpp b/ACE/performance-tests/Misc/preempt.cpp
index 0e6edcfbc30..7e774fac3a8 100644
--- a/ACE/performance-tests/Misc/preempt.cpp
+++ b/ACE/performance-tests/Misc/preempt.cpp
@@ -1,35 +1,32 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance-tests/Misc
-//
-// = FILENAME
-// preempt.cpp
-//
-// = DESCRIPTION
-// This is a simple test to illustrate OS thread preemption. One
-// ore more high priority threads periodically (every half
-// second, by default) reads the clock. They use select () to
-// block for that duration. Meanwhile, a low priority thread
-// continually chews up the CPU. Without preemption, the high
-// priority thread won't have a chance to read the clock in a
-// timely manner.
-//
-// At the end of the test, the actual clock read intervals by the
-// high priority task(s) are printed out. With proper
-// preemption, the intervals should correspond to the requested
-// clock read interval.
-//
-// There is a -y option for the low priority thread to periodically
-// yield. It shouldn't be necessary to use that option, if preemption
-// is supported. It's a handy option for testing.
-//
-// = AUTHOR
-// David L. Levine
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file preempt.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test to illustrate OS thread preemption. One
+ * ore more high priority threads periodically (every half
+ * second, by default) reads the clock. They use select () to
+ * block for that duration. Meanwhile, a low priority thread
+ * continually chews up the CPU. Without preemption, the high
+ * priority thread won't have a chance to read the clock in a
+ * timely manner.
+ *
+ * At the end of the test, the actual clock read intervals by the
+ * high priority task(s) are printed out. With proper
+ * preemption, the intervals should correspond to the requested
+ * clock read interval.
+ *
+ * There is a -y option for the low priority thread to periodically
+ * yield. It shouldn't be necessary to use that option, if preemption
+ * is supported. It's a handy option for testing.
+ *
+ *
+ * @author David L. Levine
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/ACE.h"
@@ -41,8 +38,6 @@
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(Misc, preempt, "$Id$")
-
#if defined (ACE_HAS_THREADS) || ! defined (ACE_LACKS_FORK)
#if defined (ACE_HAS_STHREADS)
diff --git a/ACE/performance-tests/Misc/test_guard.cpp b/ACE/performance-tests/Misc/test_guard.cpp
index e559508af41..e8d3f1b54ae 100644
--- a/ACE/performance-tests/Misc/test_guard.cpp
+++ b/ACE/performance-tests/Misc/test_guard.cpp
@@ -1,24 +1,15 @@
// $Id$
-// This test program illustrates the performance of ACE_Guard and
-// ACE_Thread_Mutex_Guard.
+// This test program illustrates the performance of ACE_GUARD
#include "ace/Log_Msg.h"
#include "ace/Get_Opt.h"
#include "ace/Profile_Timer.h"
-
-#if !defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
-#error You must compile ACE and this program with ACE_USES_OBSOLETE_GUARD_CLASSES defined!
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
-
-ACE_RCSID(Misc, test_guard, "$Id$")
+#include "ace/Thread_Mutex.h"
+#include "ace/Guard_T.h"
#if defined (ACE_HAS_THREADS)
-# define ACE_THREAD_GUARD(OBJ,LOCK) \
- ACE_Thread_Mutex_Guard OBJ (LOCK); \
- if (OBJ.locked () == 0) return;
-
static const int DEFAULT_ITERATIONS = 100000000;
enum
@@ -39,13 +30,9 @@ void guard (void)
dummy++;
}
-void thr_guard (void)
-{
- ACE_THREAD_GUARD (_ace_mon, lock_);
- dummy++;
-}
-
-char *test_name[TEST_END] = { "ACE_Guard", "ACE_Thread_Mutex_Guard" };
+// FUZZ: disable check_for_ACE_Guard
+const char *test_name[TEST_END] = { "ACE_Guard" };
+// FUZZ: enable check_for_ACE_Guard
guard_func test_function=guard;
@@ -54,30 +41,20 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
ACE_Profile_Timer timer;
- //FUZZ: disable check_for_lack_ACE_OS
- ACE_Get_Opt getopt (argc, argv, ACE_TEXT("gtn:"));
- //FUZZ: enable check_for_lack_ACE_OS
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT("gn:"));
int iterations = DEFAULT_ITERATIONS;
int c, i;
- //FUZZ: disable check_for_lack_ACE_OS
- while ((c = getopt()) != -1)
- //FUZZ: enable check_for_lack_ACE_OS
+ while ((c = get_opt()) != -1)
switch (c)
{
-#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
- case 't':
- test_type = TEST_THR_GUARD;
- test_function = thr_guard;
- break;
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
case 'g':
test_type = TEST_GUARD;
test_function = guard;
break;
case 'n':
- iterations = ACE_OS::atoi (getopt.opt_arg ());
+ iterations = ACE_OS::atoi (get_opt.opt_arg ());
break;
default:
ACE_ERROR_RETURN ((LM_ERROR,
diff --git a/ACE/performance-tests/Misc/test_mutex.cpp b/ACE/performance-tests/Misc/test_mutex.cpp
index cff5dd76249..e692dc214c4 100644
--- a/ACE/performance-tests/Misc/test_mutex.cpp
+++ b/ACE/performance-tests/Misc/test_mutex.cpp
@@ -52,8 +52,6 @@
#include "ace/OS_main.h"
#include "ace/OS_NS_Thread.h"
-ACE_RCSID(Misc, test_mutex, "$Id$")
-
#if defined (ACE_HAS_THREADS)
static const int DEFAULT_ITERATIONS = 100000000;
diff --git a/ACE/performance-tests/Misc/test_naming.cpp b/ACE/performance-tests/Misc/test_naming.cpp
index 01938e7e563..c98e6455440 100644
--- a/ACE/performance-tests/Misc/test_naming.cpp
+++ b/ACE/performance-tests/Misc/test_naming.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance_tests
-//
-// = FILENAME
-// test_naming.cpp
-//
-// = DESCRIPTION
-// This is an example to do performance testing of the Naming Service
-// using both the normal Memory Pool as well as the light Memory Pool.
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file test_naming.cpp
+ *
+ * $Id$
+ *
+ * This is an example to do performance testing of the Naming Service
+ * using both the normal Memory Pool as well as the light Memory Pool.
+ *
+ *
+ * @author Prashant Jain
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/ACE.h"
@@ -25,9 +22,6 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(Misc, test_naming, "$Id$")
-
-
#define ACE_NS_MAX_ENTRIES 4000
static char name[BUFSIZ];
diff --git a/ACE/performance-tests/Misc/test_singleton.cpp b/ACE/performance-tests/Misc/test_singleton.cpp
index 53790a0fca4..a9534af5f41 100644
--- a/ACE/performance-tests/Misc/test_singleton.cpp
+++ b/ACE/performance-tests/Misc/test_singleton.cpp
@@ -36,8 +36,6 @@
#include "test_singleton.h"
-ACE_RCSID(Misc, test_singleton, "$Id$")
-
#if defined (ACE_HAS_THREADS)
static const int DEFAULT_ITERATIONS = 100000000;
@@ -168,7 +166,6 @@ template ACE_Singleton<DC_Singleton, ACE_SYNCH_MUTEX> *
ACE_Singleton<DC_Singleton, ACE_SYNCH_MUTEX>::singleton_;
#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
-
#else
int
ACE_TMAIN (int, ACE_TCHAR *[])
diff --git a/ACE/performance-tests/RPC/run_test.pl b/ACE/performance-tests/RPC/run_test.pl
index 305509dc83a..70e4167efe1 100755
--- a/ACE/performance-tests/RPC/run_test.pl
+++ b/ACE/performance-tests/RPC/run_test.pl
@@ -5,7 +5,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# $Id$
# -*- perl -*-
-use lib '../../bin';
+use lib "$ENV{ACE_ROOT}/bin";
use PerlACE::Run_Test;
$SV = new PerlACE::Process ("server");
diff --git a/ACE/performance-tests/SCTP/Options_Manager.cpp b/ACE/performance-tests/SCTP/Options_Manager.cpp
index d85fcfd7acf..959e5aaaee8 100644
--- a/ACE/performance-tests/SCTP/Options_Manager.cpp
+++ b/ACE/performance-tests/SCTP/Options_Manager.cpp
@@ -461,7 +461,8 @@ void Options_Manager::_show_usage(FILE* out, ACE_TCHAR const * const opts_set)
// Show usage message. KEEP THE DEFAULTS DISPLAYED HERE IN SYNC
// WITH THE DEFAULTS SET AT THE BEGINNING OF THE CONSTRUCTOR.
- ACE_OS::fprintf (out, "%s - Measures round trip latency statistics of ACE synchronous\n", __program_name);
+ ACE_OS::fprintf (out, "%s - Measures round trip latency statistics of ACE synchronous\n",
+ ACE_TEXT_ALWAYS_CHAR (__program_name));
// indent past program name
for (unsigned int i=0;i<ACE_OS::strlen(__program_name);++i)
ACE_OS::fprintf (out, " ");
@@ -473,7 +474,8 @@ void Options_Manager::_show_usage(FILE* out, ACE_TCHAR const * const opts_set)
ACE_OS::fprintf (out, " messaging (SOCK_SEQPACK) using unmarshalled ACE_CDR::Octet.\n");
}
- ACE_OS::fprintf (out, "USAGE: %s [ -<flag> [<val>] | --<name> [<val>] ]...\n\n", __program_name);
+ ACE_OS::fprintf (out, "USAGE: %s [ -<flag> [<val>] | --<name> [<val>] ]...\n\n",
+ ACE_TEXT_ALWAYS_CHAR (__program_name));
if (!ACE_OS::strcmp (ACE_TEXT ("client-opts"), opts_set)){
ACE_OS::fprintf (out, " Flag Args Option-Name Default\n"
diff --git a/ACE/performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp b/ACE/performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp
index bb423300062..439f3fd31fb 100644
--- a/ACE/performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp
+++ b/ACE/performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SOCK_SEQPACK_Association_Test.cpp
-//
-// = DESCRIPTION
-//
-// Tests the methods get_local_addrs and get_remote_addrs of class
-// ACE_SOCK_SEQPACK_Association.
-//
-// This is not an automated "one-button" test. Rather, it prints
-// some output to a log file, so that an interested human can
-// inspect the output and get a vague notion of whether or not
-// the methods are working properly.
-//
-// = AUTHOR
-// Edward Mulholland (emulholl@atl.lmco.com)
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file SOCK_SEQPACK_Association_Test.cpp
+ *
+ * $Id$
+ *
+ *
+ * Tests the methods get_local_addrs and get_remote_addrs of class
+ * ACE_SOCK_SEQPACK_Association.
+ *
+ * This is not an automated "one-button" test. Rather, it prints
+ * some output to a log file, so that an interested human can
+ * inspect the output and get a vague notion of whether or not
+ * the methods are working properly.
+ *
+ *
+ * @author Edward Mulholland (emulholl@atl.lmco.com)
+ */
+//=============================================================================
+
#include "ace/SOCK_SEQPACK_Association.h"
#include "ace/SOCK_SEQPACK_Connector.h"
diff --git a/ACE/performance-tests/SCTP/hist.cpp b/ACE/performance-tests/SCTP/hist.cpp
index c67916a86cd..4bed955b422 100644
--- a/ACE/performance-tests/SCTP/hist.cpp
+++ b/ACE/performance-tests/SCTP/hist.cpp
@@ -170,7 +170,7 @@ void report_to(FILE *strm, hist_t *hist) {
2*hist->sum*mean +
hist->num_points*mean*mean) / (hist->num_points-1);
ACE_OS::fprintf(strm, "variance: %g\n", variance);
- if (hist->skew)
+ if (hist->skew)
{
ACE_OS::fprintf(strm, "skew: %g\n", ((hist->sum3 -
3*hist->sum2*mean +
@@ -189,7 +189,7 @@ void report_to(FILE *strm, hist_t *hist) {
ACE_OS::fprintf(strm, "num_bins: %d %g %g\n", hist->num_bins,hist->first,hist->last);
if (hist->firstoptheader) {
trace = hist->firstoptheader;
- while(trace->next != 0)
+ while(trace->next != 0)
{
ACE_OS::fprintf(strm, "%s: %s\n", trace->key, trace->value);
trace = trace->next;
@@ -219,7 +219,7 @@ void report_to(FILE *strm, hist_t *hist) {
(double)hist->hs[hist->num_bins+1]/hist->num_points,
(double)histfloor(1000.0*sofar/hist->num_points)/1000.0);
- if (hist->num_outer)
+ if (hist->num_outer)
{
ACE_OS::fprintf(strm, "outliers:\n");
for(i = 0; i < hist->num_outer; i++) ACE_OS::fprintf(strm, "\t%12.3f\n",
diff --git a/ACE/performance-tests/SCTP/run_spectrum.pl b/ACE/performance-tests/SCTP/run_spectrum.pl
index d6ec34e6075..9d1d923e6d5 100755
--- a/ACE/performance-tests/SCTP/run_spectrum.pl
+++ b/ACE/performance-tests/SCTP/run_spectrum.pl
@@ -7,7 +7,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
use warnings;
use strict;
-use lib '../../bin';
+use lib "$ENV{ACE_ROOT}/bin";
use PerlACE::Run_Test;
use Getopt::Long;
use Pod::Usage;
diff --git a/ACE/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp b/ACE/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp
index 48d57269f18..0f102293d0b 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp
@@ -15,10 +15,6 @@
#include "Baseline_Test.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (Base_Test,
- Baseline_Test,
- "$Id$")
-
Baseline_Test_Options baseline_options;
// Static Baseline Options holds the test configuration information
// and the test statistics.
@@ -40,17 +36,15 @@ Baseline_Test_Base::init (int argc, ACE_TCHAR *argv[])
int
Baseline_Test_Base::parse_args (int argc, ACE_TCHAR *argv[])
{
- //FUZZ: disable check_for_lack_ACE_OS
- ACE_Get_Opt getopt (argc, argv, ACE_TEXT("i:ylrw"), 0);
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT("i:ylrw"), 0);
int c;
- while ((c = getopt ()) != -1)
- //FUZZ: enable check_for_lack_ACE_OS
+ while ((c = get_opt ()) != -1)
switch (c)
{
case 'i': // Total iterations
{
- int tmp = ACE_OS::atoi (getopt.opt_arg ());
+ int tmp = ACE_OS::atoi (get_opt.opt_arg ());
if (tmp <= 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%d is not a valid value for iteration\n",
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.cpp
index 32ad7ea5431..3beff24d359 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.cpp
@@ -4,8 +4,6 @@
#include "Performance_Test_Options.h"
#include "Adaptive_Lock_Performance_Test_Base.h"
-ACE_RCSID(Synch_Benchmarks, Adaptive_Lock_Performance_Test_Base_, "$Id$")
-
#if defined (ACE_HAS_THREADS)
ACE_Lock *Adaptive_Lock_Performance_Test_Base::lock_ = 0;
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.h b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.h
index 9fb65628ea8..f648e76f17d 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.h
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.h
@@ -4,8 +4,6 @@
#define ACE_ADAPTIVE_LOCK_PERFORMANCE_TEST_BASE_H
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, Adaptive_Lock_Performance_Test_Base, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Adaptive_Lock_Performance_Test_Base : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.cpp
index 48fe88cad2f..c4be61acb13 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.cpp
@@ -4,8 +4,6 @@
#include "Benchmark_Performance.h"
#include "ace/Basic_Types.h"
-ACE_RCSID(Synch_Benchmarks, Benchmark_Performance, "$Id$")
-
#if defined (ACE_HAS_THREADS)
// Global variables (used by the dynamically linked services).
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp
index 42045f5963e..3cb5a0c3300 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp
@@ -12,10 +12,6 @@
#include "ace/Service_Repository.h"
#include "ace/Reactor.h"
-ACE_RCSID (Perf_Test,
- Performance_Test,
- "$Id$")
-
Performance_Test::Performance_Test (void)
: n_lwps_ (0),
orig_n_lwps_ (0)
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp
index 59f4e698d28..989527550c8 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp
@@ -4,8 +4,6 @@
#include "Performance_Test_Options.h"
#include "ace/OS_NS_strings.h"
-ACE_RCSID(Synch_Benchmarks, Performance_Test_Options, "$Id$")
-
#if defined (ACE_HAS_THREADS)
// Manages the options.
Performance_Test_Options performance_test_options;
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp
index d438e9ac3f4..76915ec5d21 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp
@@ -5,8 +5,6 @@
#include "Adaptive_Lock_Performance_Test_Base.h"
#include "ace/Lock_Adapter_T.h"
-ACE_RCSID(Synch_Benchmarks, adaptive_mutex_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Adaptive_Mutex_Test : public Adaptive_Lock_Performance_Test_Base
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp
index cc49bf1b698..47d4b4f1a8a 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp
@@ -6,8 +6,6 @@
#include "ace/Lock_Adapter_T.h"
#include "ace/Recursive_Thread_Mutex.h"
-ACE_RCSID(Synch_Benchmarks, adaptive_recursive_lock_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Adaptive_Recursive_Lock_Test : public Adaptive_Lock_Performance_Test_Base
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp
index 2644aef7415..3f8bbd9be39 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp
@@ -6,8 +6,6 @@
#include "ace/Semaphore.h"
#include "ace/Lock_Adapter_T.h"
-ACE_RCSID(Synch_Benchmarks, adaptive_sema_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Adaptive_Sema_Test : public Adaptive_Lock_Performance_Test_Base
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/condb_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/condb_test.cpp
index 9c0a09534e2..e21a97b8301 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/condb_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/condb_test.cpp
@@ -4,8 +4,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, condb_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Cond_Brdcast_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/conds_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/conds_test.cpp
index a30b67c040f..2cf3f2a8134 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/conds_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/conds_test.cpp
@@ -4,8 +4,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, conds_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Cond_Signal_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/context_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/context_test.cpp
index fc4fa0dc26d..ff88c8d0022 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/context_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/context_test.cpp
@@ -4,8 +4,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, context_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Context_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp
index b5296452322..d2b18a48af7 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp
@@ -6,8 +6,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, mutex_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Guard_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp
index ff62b5e3a2a..fda4df4db87 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp
@@ -6,8 +6,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, memory_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Memory_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/mutex_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/mutex_test.cpp
index c1e0a1e0ad0..cba075e6829 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/mutex_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/mutex_test.cpp
@@ -4,8 +4,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, mutex_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Mutex_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp
index 10bed9b88f3..368ca81eb90 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp
@@ -6,8 +6,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, pipe_proc_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Pipe_Proc_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp
index 895b5a846fe..f4141b23b49 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp
@@ -7,8 +7,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, pipe_thr_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Pipe_Thr_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/recursive_lock_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/recursive_lock_test.cpp
index 6246835ee88..de42ba1cdd0 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/recursive_lock_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/recursive_lock_test.cpp
@@ -5,8 +5,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, recursive_lock_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Recursive_Lock_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwrd_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwrd_test.cpp
index a0eb5c6cff8..966bfa86396 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwrd_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwrd_test.cpp
@@ -5,8 +5,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, rwrd_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export RWRD_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwwr_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwwr_test.cpp
index 1c7a25eae1f..59795bfa262 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwwr_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwwr_test.cpp
@@ -5,8 +5,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, rwwr_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export RWWR_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/sema_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/sema_test.cpp
index 9f1d7657139..3deee48c2ed 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/sema_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/sema_test.cpp
@@ -5,8 +5,6 @@
#include "Benchmark_Performance.h"
#include "ace/Semaphore.h"
-ACE_RCSID(Synch_Benchmarks, sema_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Sema_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/sysvsema_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/sysvsema_test.cpp
index 5899e4f1a75..71eeddcc45a 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/sysvsema_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/sysvsema_test.cpp
@@ -5,8 +5,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, sysvsema_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export SYSVSema_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/token_test.cpp b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/token_test.cpp
index fe66740feca..0cc7f11b812 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Perf_Test/token_test.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Perf_Test/token_test.cpp
@@ -5,8 +5,6 @@
#include "Performance_Test_Options.h"
#include "Benchmark_Performance.h"
-ACE_RCSID(Synch_Benchmarks, token_test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
class ACE_Svc_Export Token_Test : public Benchmark_Performance
diff --git a/ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp b/ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp
index 48c2ec20cd0..d3bff3e1584 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp
@@ -7,8 +7,6 @@
#include "ace/Log_Msg.h"
#include "Benchmark_Base.h"
-ACE_RCSID(Synch_Benchmarks, Benchmark_Base, "$Id$")
-
#if defined (ACE_HAS_THREADS)
// Initialize the static variables.
@@ -28,12 +26,12 @@ Benchmark_Base::benchmark_type (void)
int
Benchmark_Base::thr_id (void)
{
-#if defined (ACE_HAS_PTHREADS) || defined (ACE_HAS_DCETHREADS) || defined (VXWORKS)
+#if defined (ACE_HAS_PTHREADS) || defined (VXWORKS)
// This invokes the thread-specific storage smart pointer.
return this->id_->thr_id ();
#else
return ACE_Thread::self ();
-#endif /* ACE_HAS_PTHREADS || ACE_HAS_DCETHREADS || VXWORKS */
+#endif /* ACE_HAS_PTHREADS || VXWORKS */
}
Benchmark_Method_Base::Benchmark_Method_Base (void)
@@ -70,7 +68,7 @@ Benchmark_Method_Base::exec (ACE_Service_Repository_Iterator *sri)
return 0;
}
-#if defined (ACE_HAS_PTHREADS) || defined (ACE_HAS_DCETHREADS) || defined (VXWORKS)
+#if defined (ACE_HAS_PTHREADS) || defined (VXWORKS)
/* static */
MT_INT Thr_ID::thread_id_ (0);
@@ -91,5 +89,5 @@ Thr_ID::thr_id (int i)
this->thr_id_ = i;
}
-#endif /* ACE_HAS_PTHREADS || ACE_HAS_DCETHREADS || VXWORKS */
+#endif /* ACE_HAS_PTHREADS || VXWORKS */
#endif /* ACE_HAS_THREADS */
diff --git a/ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h b/ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h
index 1737d45b36f..0fc3f369b0a 100644
--- a/ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h
+++ b/ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h
@@ -20,7 +20,7 @@
# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS) || defined (ACE_HAS_DCETHREADS) || defined (VXWORKS)
+# if defined (ACE_HAS_PTHREADS) || defined (VXWORKS)
typedef ACE_Atomic_Op<ACE_Thread_Mutex, int> MT_INT;
@@ -43,7 +43,7 @@ private:
int thr_id_;
static MT_INT thread_id_;
};
-# endif /* ACE_HAS_PTHREADS || ACE_HAS_DCETHREADS || VXWORKS */
+# endif /* ACE_HAS_PTHREADS || VXWORKS */
class SYNCHLIB_Export Benchmark_Base : public ACE_Service_Object
{
@@ -76,10 +76,10 @@ protected:
int benchmark_type_;
// Store the RTTI info of this module.
-# if defined (ACE_HAS_PTHREADS) || defined (ACE_HAS_DCETHREADS) || defined (VXWORKS)
+# if defined (ACE_HAS_PTHREADS) || defined (VXWORKS)
ACE_TSS <Thr_ID> id_;
// Keeps track of our "virtual" thread id...
-# endif /* ACE_HAS_PTHREADS || ACE_HAS_DCETHREADS || VXWORKS */
+# endif /* ACE_HAS_PTHREADS || VXWORKS */
};
class SYNCHLIB_Export Benchmark_Method_Base : public Benchmark_Base
diff --git a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t1.conf b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t1.conf
index 1c4c2ad2f01..eb267e201fc 100644
--- a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t1.conf
+++ b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t1.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure all the tests
dynamic Performance_Test
diff --git a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t16.conf b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t16.conf
index f50ae6f4544..2cbd39c20db 100644
--- a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t16.conf
+++ b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t16.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure all the tests
dynamic Performance_Test
diff --git a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t2.conf b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t2.conf
index cc08f483a73..d42d25a678c 100644
--- a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t2.conf
+++ b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t2.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure all the tests
dynamic Performance_Test
diff --git a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t32.conf b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t32.conf
index c12d3dc752b..6eafc6c3381 100644
--- a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t32.conf
+++ b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t32.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure all the tests
dynamic Performance_Test
diff --git a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t4.conf b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t4.conf
index 2d6661d36e1..7f4b54a0a16 100644
--- a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t4.conf
+++ b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t4.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure all the tests
dynamic Performance_Test
diff --git a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t64.conf b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t64.conf
index 0bf358d0191..ba0c8c1eeda 100644
--- a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t64.conf
+++ b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t64.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure all the tests
dynamic Performance_Test
diff --git a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t8.conf b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t8.conf
index cbfe7062fa8..7d5a3d41236 100644
--- a/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t8.conf
+++ b/ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t8.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure all the tests
dynamic Performance_Test
diff --git a/ACE/performance-tests/Synch-Benchmarks/svcconf/svc.conf b/ACE/performance-tests/Synch-Benchmarks/svcconf/svc.conf
index ec2d85fbcbf..d79940dd11f 100644
--- a/ACE/performance-tests/Synch-Benchmarks/svcconf/svc.conf
+++ b/ACE/performance-tests/Synch-Benchmarks/svcconf/svc.conf
@@ -1,3 +1,5 @@
+# $Id$
+
# Dynamically configure all the tests
dynamic Performance_Test
diff --git a/ACE/performance-tests/Synch-Benchmarks/synch_driver.cpp b/ACE/performance-tests/Synch-Benchmarks/synch_driver.cpp
index 4fb02007eb0..a992e2c6835 100644
--- a/ACE/performance-tests/Synch-Benchmarks/synch_driver.cpp
+++ b/ACE/performance-tests/Synch-Benchmarks/synch_driver.cpp
@@ -8,8 +8,6 @@
#include "ace/Service_Repository.h"
#include "Synch_Lib/Benchmark_Base.h"
-ACE_RCSID(Synch_Benchmarks, synch_driver, "$Id$")
-
#if defined (ACE_HAS_THREADS)
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
diff --git a/ACE/performance-tests/TCP/run_test.pl b/ACE/performance-tests/TCP/run_test.pl
index 34c4f416c39..8000ae6496e 100755
--- a/ACE/performance-tests/TCP/run_test.pl
+++ b/ACE/performance-tests/TCP/run_test.pl
@@ -5,8 +5,8 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# $Id$
# -*- perl -*-
-use lib '../../bin';
-use PerlACE::Run_Test;
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
$SV = new PerlACE::Process ("tcp_test", "-s");
$CL = new PerlACE::Process ("tcp_test", "-c localhost -i 50000 -b 64");
diff --git a/ACE/performance-tests/TCP/tcp_test.cpp b/ACE/performance-tests/TCP/tcp_test.cpp
index e2b202326d7..0e5996df6a2 100644
--- a/ACE/performance-tests/TCP/tcp_test.cpp
+++ b/ACE/performance-tests/TCP/tcp_test.cpp
@@ -1,21 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance-tests/TCP
-//
-// = FILENAME
-// tcp_test.cpp
-//
-// = DESCRIPTION
-// Measures TCP round-trip performance.
-//
-// = AUTHORS
-// Based on udp_test by Fred Kuhns and David L. Levine
-// Modified by Carlos O'Ryan and Nanbor Wang.
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file tcp_test.cpp
+ *
+ * $Id$
+ *
+ * Measures TCP round-trip performance.
+ *
+ *
+ * @author Based on udp_test by Fred Kuhns and David L. LevineModified by Carlos O'Ryan and Nanbor Wang.
+ */
+//=============================================================================
+
#include "ace/Reactor.h"
#include "ace/Select_Reactor.h"
@@ -42,8 +38,6 @@
// FUZZ: disable check_for_math_include
#include <math.h>
-ACE_RCSID(TCP, tcp_test, "$Id$")
-
// Global variables (evil).
static const u_short DEFPORT = 5050;
static const int MAXPKTSZ = 65536;
@@ -112,27 +106,27 @@ public:
ACE_Reactor_Mask close_mask);
//FUZZ: disable check_for_lack_ACE_OS
+ /// Send the <buf> to the server.
int send (const char *buf, size_t len);
- // Send the <buf> to the server.
//FUZZ: enable check_for_lack_ACE_OS
+ /// Wait for the response.
int get_response (char *buf, size_t len);
- // Wait for the response.
+ /// Send messages to server and record statistics.
int run (void);
- // Send messages to server and record statistics.
//FUZZ: disable check_for_lack_ACE_OS
+ /// Send shutdown message to server.
int shutdown (void);
- // Send shutdown message to server.
//FUZZ: enable check_for_lack_ACE_OS
private:
+ /// To send messages and receive responses.
ACE_SOCK_Stream endpoint_;
- // To send messages and receive responses.
+ /// The address to send messages to.
ACE_INET_Addr remote_addr_;
- // The address to send messages to.
ACE_UNIMPLEMENTED_FUNC (Client (void))
ACE_UNIMPLEMENTED_FUNC (Client (const Client &))
@@ -309,8 +303,8 @@ public:
ACE_Reactor_Mask close_mask);
private:
+ /// Receives datagrams.
ACE_SOCK_Stream endpoint_;
- // Receives datagrams.
ACE_UNIMPLEMENTED_FUNC (Server (void))
ACE_UNIMPLEMENTED_FUNC (Server (const Server &))
@@ -541,12 +535,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
"server (%P|%t): sched_params failed\n"));
}
- //FUZZ: disable check_for_lack_ACE_OS
- ACE_Get_Opt getopt (argc, argv, ACE_TEXT("hxwvb:I:p:sci:m:at:"));
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT("hxwvb:I:p:sci:m:at:"));
- while ((c = getopt ()) != -1)
+ while ((c = get_opt ()) != -1)
{
- //FUZZ: enable check_for_lack_ACE_OS
switch ((char) c)
{
case 'v':
@@ -558,7 +550,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
break;
case 'm':
- bufsz = ACE_OS::atoi (getopt.opt_arg ());
+ bufsz = ACE_OS::atoi (get_opt.opt_arg ());
if (bufsz <= 0)
ACE_ERROR_RETURN ((LM_ERROR,
@@ -571,7 +563,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
1);
case 'i':
- nsamples = ACE_OS::atoi (getopt.opt_arg ());
+ nsamples = ACE_OS::atoi (get_opt.opt_arg ());
if (nsamples <= 0)
ACE_ERROR_RETURN ((LM_ERROR,
"\nIterations must be greater than 0!\n\n"),
@@ -595,7 +587,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
#endif /* ACE_WIN32 */
case 'b':
- so_bufsz = ACE_OS::atoi (getopt.opt_arg ());
+ so_bufsz = ACE_OS::atoi (get_opt.opt_arg ());
if (so_bufsz <= 0)
ACE_ERROR_RETURN ((LM_ERROR,
@@ -604,7 +596,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
break;
case 'I':
- usdelay = ACE_OS::atoi (getopt.opt_arg ());
+ usdelay = ACE_OS::atoi (get_opt.opt_arg ());
if (usdelay < 0)
{
@@ -612,20 +604,20 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_ERROR_RETURN ((LM_ERROR,
"%s: bad usdelay: %s\n",
argv[0],
- getopt.opt_arg ()),
+ get_opt.opt_arg ()),
1);
}
break;
case 'p':
- dstport = ACE_OS::atoi (getopt.opt_arg ());
+ dstport = ACE_OS::atoi (get_opt.opt_arg ());
if (dstport <= 0)
ACE_ERROR_RETURN ((LM_ERROR,
"\nInvalid port number!\n\n"),
1);
break;
case 't':
- svr_thrno = ACE_OS::atoi (getopt.opt_arg ());
+ svr_thrno = ACE_OS::atoi (get_opt.opt_arg ());
if (svr_thrno <= 0)
ACE_ERROR_RETURN ((LM_ERROR,
@@ -647,7 +639,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
}
}
- if ((getopt.opt_ind () >= argc && client != 0) || argc == 1)
+ if ((get_opt.opt_ind () >= argc && client != 0) || argc == 1)
{
usage ();
return 1;
@@ -670,25 +662,25 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_INET_Addr remote_addr;
- if (ACE_OS::ace_isdigit(argv[getopt.opt_ind ()][0]))
+ if (ACE_OS::ace_isdigit(argv[get_opt.opt_ind ()][0]))
{
- if (remote_addr.set (dstport,
+ if (remote_addr.set (ACE_HTONS(dstport),
(ACE_UINT32) ACE_OS::inet_addr
- (ACE_TEXT_ALWAYS_CHAR(argv[getopt.opt_ind ()]))) == -1)
+ (ACE_TEXT_ALWAYS_CHAR(argv[get_opt.opt_ind ()])), 0) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
"invalid IP address: %s\n",
- argv[getopt.opt_ind ()]),
+ argv[get_opt.opt_ind ()]),
1);
}
else
{
- if (remote_addr.set (dstport, argv[getopt.opt_ind ()]) == -1)
+ if (remote_addr.set (dstport, argv[get_opt.opt_ind ()]) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
"invalid IP address: %s\n",
- argv[getopt.opt_ind ()]),
+ argv[get_opt.opt_ind ()]),
1);
}
- getopt.opt_ind ()++;
+ get_opt.opt_ind ()++;
ACE_DEBUG ((LM_DEBUG, "Connecting to %s:%d\n",
remote_addr.get_host_name (),
diff --git a/ACE/performance-tests/TTCP/C/new-ttcp.cpp b/ACE/performance-tests/TTCP/C/new-ttcp.cpp
index b8db1e5675c..08c530ea379 100644
--- a/ACE/performance-tests/TTCP/C/new-ttcp.cpp
+++ b/ACE/performance-tests/TTCP/C/new-ttcp.cpp
@@ -93,8 +93,6 @@ struct rusage
#include <sys/resource.h>
#endif
-ACE_RCSID(C, new_ttcp, "$Id$")
-
struct sockaddr_in sinme;
struct sockaddr_un sunme;
struct sockaddr_in sinhim;
diff --git a/ACE/performance-tests/UDP/run_test.pl b/ACE/performance-tests/UDP/run_test.pl
index 638b8c18c99..fcd236a40a2 100755
--- a/ACE/performance-tests/UDP/run_test.pl
+++ b/ACE/performance-tests/UDP/run_test.pl
@@ -5,8 +5,8 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
# $Id$
# -*- perl -*-
-use lib '../../bin';
-use PerlACE::Run_Test;
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
$SV = new PerlACE::Process ("udp_test", "-r");
$CL = new PerlACE::Process ("udp_test", "-t -n 10000 localhost");
diff --git a/ACE/performance-tests/UDP/udp_test.cpp b/ACE/performance-tests/UDP/udp_test.cpp
index 2d5d0f093e2..c03937ca6a0 100644
--- a/ACE/performance-tests/UDP/udp_test.cpp
+++ b/ACE/performance-tests/UDP/udp_test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance-tests/UDP
-//
-// = FILENAME
-// udp_test.cpp
-//
-// = DESCRIPTION
-// Measures UDP round-trip performance.
-//
-// = AUTHORS
-// Fred Kuhns and David L. Levine
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file udp_test.cpp
+ *
+ * $Id$
+ *
+ * Measures UDP round-trip performance.
+ *
+ *
+ * @author Fred Kuhns and David L. Levine
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#include "ace/Reactor.h"
@@ -34,8 +31,6 @@
// FUZZ: disable check_for_math_include
#include <math.h>
-ACE_RCSID(UDP, udp_test, "$Id$")
-
// Global variables (evil).
static const u_short DEFPORT = 5050;
static const int MAXPKTSZ = 65536;
@@ -103,27 +98,27 @@ public:
ACE_Reactor_Mask close_mask);
//FUZZ: disable check_for_lack_ACE_OS
+ /// Send the <buf> to the server.
int send (const char *buf, size_t len);
- // Send the <buf> to the server.
//FUZZ: enable check_for_lack_ACE_OS
+ /// Wait for the response.
int get_response (char *buf, size_t len);
- // Wait for the response.
+ /// Send messages to server and record statistics.
int run (void);
- // Send messages to server and record statistics.
//FUZZ: disable check_for_lack_ACE_OS
+ /// Send shutdown message to server.
int shutdown (void);
- // Send shutdown message to server.
//FUZZ: enable check_for_lack_ACE_OS
private:
+ /// To send messages and receive responses.
ACE_SOCK_Dgram endpoint_;
- // To send messages and receive responses.
+ /// The address to send messages to.
ACE_INET_Addr remote_addr_;
- // The address to send messages to.
ACE_UNIMPLEMENTED_FUNC (Client (void))
ACE_UNIMPLEMENTED_FUNC (Client (const Client &))
@@ -439,7 +434,7 @@ Client::run (void)
for (; *cmd; cmd++)
ACE_OS::fprintf (sumfp,
"%s ",
- *cmd);
+ ACE_TEXT_ALWAYS_CHAR (*cmd));
ACE_OS::fprintf (sumfp,
"\n");
@@ -495,8 +490,8 @@ public:
ACE_Reactor_Mask close_mask);
private:
+ /// Receives datagrams.
ACE_SOCK_Dgram endpoint_;
- // Receives datagrams.
ACE_UNIMPLEMENTED_FUNC (Server (void))
ACE_UNIMPLEMENTED_FUNC (Server (const Server &))
diff --git a/ACE/protocols/ace/HTBP/HTBP.mpc b/ACE/protocols/ace/HTBP/HTBP.mpc
index 46e625eb486..618d1212763 100644
--- a/ACE/protocols/ace/HTBP/HTBP.mpc
+++ b/ACE/protocols/ace/HTBP/HTBP.mpc
@@ -4,7 +4,11 @@
project(HTBP) : acelib, ace_output, install {
avoids += ace_for_tao
sharedname = ACE_HTBP
- dynamicflags = HTBP_BUILD_DLL
+ dynamicflags += HTBP_BUILD_DLL
+
+ specific {
+ install_dir = ace/HTBP
+ }
Pkgconfig_Files {
ACE_HTBP.pc.in
diff --git a/ACE/protocols/ace/HTBP/HTBP_Addr.cpp b/ACE/protocols/ace/HTBP/HTBP_Addr.cpp
index 24b837c5e6c..872c35fec64 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Addr.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_Addr.cpp
@@ -3,10 +3,6 @@
#include "HTBP_Addr.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (HTBP,
- ACE_HTBP_Addr,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Constructor
diff --git a/ACE/protocols/ace/HTBP/HTBP_Channel.cpp b/ACE/protocols/ace/HTBP/HTBP_Channel.cpp
index 1d2c48f5fd6..43248a58034 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Channel.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_Channel.cpp
@@ -20,7 +20,8 @@
#include "ace/Message_Block.h"
#include "ace/Reactor.h"
-
+#include "ace/os_include/netinet/os_tcp.h"
+#include "ace/OS_NS_time.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -38,7 +39,7 @@ ACE::HTBP::Channel::Channel (ACE::HTBP::Session *s)
error_buffer_ (0)
{
ACE_NEW (this->notifier_,ACE::HTBP::Notifier(this));
- this->filter_ = get_filter ();
+ this->filter_ = ACE::HTBP::Filter_Factory::get_filter (this->session_ != 0);
this->request_count_ = static_cast<unsigned long> (ACE_OS::time());
}
@@ -55,7 +56,17 @@ ACE::HTBP::Channel::Channel (ACE_SOCK_Stream &s)
error_buffer_ (0)
{
- filter_ = get_filter ();
+#if !defined (ACE_LACKS_TCP_NODELAY)
+ int no_delay = 1;
+ int result = this->ace_stream_.set_option (ACE_IPPROTO_TCP,
+ TCP_NODELAY,
+ (void *) &no_delay,
+ sizeof (no_delay));
+ if (result == -1)
+ ACE_DEBUG ((LM_DEBUG, "HTBP::Channel ctor(stream), %p\n", "set_option" ));
+#endif /* ! ACE_LACKS_TCP_NODELAY */
+
+ this->filter_ = ACE::HTBP::Filter_Factory::get_filter (this->session_ != 0);
this->request_count_ = static_cast<unsigned long> (ACE_OS::time());
}
@@ -70,7 +81,17 @@ ACE::HTBP::Channel::Channel (ACE_HANDLE h)
state_ (Init),
error_buffer_ (0)
{
- filter_ = get_filter ();
+#if !defined (ACE_LACKS_TCP_NODELAY)
+ int no_delay = 1;
+ int result = this->ace_stream_.set_option (ACE_IPPROTO_TCP,
+ TCP_NODELAY,
+ (void *) &no_delay,
+ sizeof (no_delay));
+ if (result == -1)
+ ACE_DEBUG ((LM_DEBUG, "HTBP::Channel(handle) ctor, %p\n", "set_option" ));
+#endif /* ! ACE_LACKS_TCP_NODELAY */
+
+ this->filter_ = ACE::HTBP::Filter_Factory::get_filter (this->session_ != 0);
this->request_count_ = static_cast<unsigned long> (ACE_OS::time());
}
@@ -395,6 +416,7 @@ ACE::HTBP::Channel::recvv (iovec iov[],
{
int ndx = 0;
iovec *iov2 = new iovec[iovcnt];
+ ACE_Auto_Array_Ptr<iovec> guard (iov2);
for (int i = 0; i < iovcnt; i++)
{
size_t n = ACE_MIN ((size_t) iov[i].iov_len ,
@@ -414,7 +436,6 @@ ACE::HTBP::Channel::recvv (iovec iov[],
}
if (ndx > 0)
result += this->ace_stream_.recvv(iov2,ndx,timeout);
- delete [] iov2;
}
else
result = this->ace_stream_.recvv(iov,iovcnt,timeout);
@@ -504,7 +525,7 @@ ACE::HTBP::Channel::sendv (const iovec iov[],
ssize_t result = 0;
size_t n = 0;
-
+
for (int i = 0; i < iovcnt; n += iov[i++].iov_len)
{
// No action.
@@ -548,18 +569,4 @@ ACE::HTBP::Channel::disable (int value) const
return 0;//this->ace_stream_.disable(value);
}
-ACE::HTBP::Filter *
-ACE::HTBP::Channel::get_filter ()
-{
- ACE::HTBP::Filter_Factory *factory = 0;
-
- // @todo Should I be throwing an exception here if
- // memory is not allocated right ?
- ACE_NEW_RETURN (factory,
- ACE::HTBP::Filter_Factory,
- 0);
- int inside = (this->session_ != 0);
- return factory->get_filter (inside);
-}
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/HTBP/HTBP_Channel.h b/ACE/protocols/ace/HTBP/HTBP_Channel.h
index b33d446e40b..9756ceebf26 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Channel.h
+++ b/ACE/protocols/ace/HTBP/HTBP_Channel.h
@@ -235,9 +235,6 @@ namespace ACE
private:
- /// Get the filter from the Filter_Factory
- Filter * get_filter ();
-
/// The filter_ is a pluggable component used to manage the
/// wrapping of data in a way suitable for the proxy to
/// manage. The actual filter instance is owned by the
diff --git a/ACE/protocols/ace/HTBP/HTBP_Channel.inl b/ACE/protocols/ace/HTBP/HTBP_Channel.inl
index 7df1ba8f16e..c6281dc0a8f 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Channel.inl
+++ b/ACE/protocols/ace/HTBP/HTBP_Channel.inl
@@ -36,8 +36,7 @@ ACE_INLINE
void
ACE::HTBP::Channel::filter (ACE::HTBP::Filter *f)
{
- if (this->filter_)
- delete this->filter_;
+ delete this->filter_;
this->filter_ = f;
}
diff --git a/ACE/protocols/ace/HTBP/HTBP_Environment.cpp b/ACE/protocols/ace/HTBP/HTBP_Environment.cpp
index 8fa1b0cc397..4ddffaa5c39 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Environment.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_Environment.cpp
@@ -2,10 +2,6 @@
#include "HTBP_Environment.h"
-ACE_RCSID (HTBP,
- ACE_HTBP_Environment,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE::HTBP::Environment::Environment (ACE_Configuration *config,
@@ -85,6 +81,7 @@ ACE::HTBP::Environment::open_registry_config ()
ACE_NEW_RETURN (this->config_,
ACE_Configuration_Win32Registry (root),
-1);
+ this->own_config_ = true;
return 0;
#else
errno = ENOTSUP;
@@ -101,6 +98,7 @@ ACE::HTBP::Environment::open_persistent_config (const ACE_TCHAR *persistent_file
-1);
// do this before trying to open so it isn't leaked if the open fails.
this->config_ = heap;
+ this->own_config_ = true;
if (persistent_file == 0)
heap->open();
else
diff --git a/ACE/protocols/ace/HTBP/HTBP_Environment.h b/ACE/protocols/ace/HTBP/HTBP_Environment.h
index 894a376457a..d958cecbb10 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Environment.h
+++ b/ACE/protocols/ace/HTBP/HTBP_Environment.h
@@ -98,7 +98,7 @@ namespace ACE
ACE_Ini_ImpExp *imp_exp_;
/// We created the config instance, so we must clean it up
- int own_config_;
+ bool own_config_;
};
}
diff --git a/ACE/protocols/ace/HTBP/HTBP_Filter.cpp b/ACE/protocols/ace/HTBP/HTBP_Filter.cpp
index 094539c05a0..410895883f0 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Filter.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_Filter.cpp
@@ -9,7 +9,7 @@
#include "HTBP_Filter.inl"
#endif
-ACE_RCSID(HTBP,ACE_HTBP_Filter,"$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/HTBP/HTBP_Filter.h b/ACE/protocols/ace/HTBP/HTBP_Filter.h
index ebc9ebb895f..806b7a53d13 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Filter.h
+++ b/ACE/protocols/ace/HTBP/HTBP_Filter.h
@@ -14,12 +14,13 @@
#define ACE_HTBP_FILTER_H
#include /**/ "ace/pre.h"
-#include "ace/OS.h"
+#include "HTBP_Export.h"
+
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "HTBP_Export.h"
+#include "ace/os_include/sys/os_types.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/HTBP/HTBP_Filter_Factory.cpp b/ACE/protocols/ace/HTBP/HTBP_Filter_Factory.cpp
index bd9e9751b6d..24a388d86d6 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Filter_Factory.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_Filter_Factory.cpp
@@ -4,12 +4,11 @@
#include "HTBP_Inside_Squid_Filter.h"
#include "HTBP_Outside_Squid_Filter.h"
-#include "HTBP_Stream.h"
#include "ace/Service_Object.h"
#include "ace/Dynamic_Service.h"
#include "ace/Log_Msg.h"
-ACE_RCSID (ACE_HTBP_Filter_Factory, HTBP, "$Id$")
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/HTBP/HTBP_Filter_Factory.h b/ACE/protocols/ace/HTBP/HTBP_Filter_Factory.h
index 0681055b679..2cc9220bf70 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Filter_Factory.h
+++ b/ACE/protocols/ace/HTBP/HTBP_Filter_Factory.h
@@ -54,7 +54,7 @@ namespace ACE
virtual int init (int argc, ACE_TCHAR *argv[]);
//
- Filter *get_filter (int inside);
+ static Filter *get_filter (int inside);
};
}
}
diff --git a/ACE/protocols/ace/HTBP/HTBP_ID_Requestor.cpp b/ACE/protocols/ace/HTBP/HTBP_ID_Requestor.cpp
index a048a295459..3700ce1d816 100644
--- a/ACE/protocols/ace/HTBP/HTBP_ID_Requestor.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_ID_Requestor.cpp
@@ -9,10 +9,6 @@
#include "ace/SOCK_Connector.h"
#include "ace/UUID.h"
-ACE_RCSID(HTBP,
- ACE_HTBP_ID_Requestor,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_TString ACE::HTBP::ID_Requestor::htid_;
@@ -83,10 +79,10 @@ ACE::HTBP::ID_Requestor::send_request (ACE_SOCK_Stream *cli_stream)
{
char *buffer;
ACE_NEW_RETURN (buffer, char[this->url_.length()+16],-1);
+ ACE_Auto_Array_Ptr<char> guard (buffer);
ACE_OS::sprintf (buffer,"GET %s HTTP/1.0\n\n",
ACE_TEXT_ALWAYS_CHAR(url_.c_str()));
int result = cli_stream->send_n (buffer,ACE_OS::strlen(buffer));
- delete [] buffer;
if (result == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT("(%P|%t) ACE::HTBP::ID_Requestor::")
@@ -101,7 +97,7 @@ ACE::HTBP::ID_Requestor::get_HTID ()
if (ACE::HTBP::ID_Requestor::htid_.length() != 0)
return ACE::HTBP::ID_Requestor::htid_.rep();
- ACE_Guard<ACE_SYNCH_MUTEX> guard (ACE::HTBP::ID_Requestor::htid_lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, ACE::HTBP::ID_Requestor::htid_lock_, 0);
if (ACE::HTBP::ID_Requestor::htid_.length() != 0)
return ACE::HTBP::ID_Requestor::htid_.rep();
diff --git a/ACE/protocols/ace/HTBP/HTBP_ID_Requestor.h b/ACE/protocols/ace/HTBP/HTBP_ID_Requestor.h
index b885f07cae5..97a1f04f1f8 100644
--- a/ACE/protocols/ace/HTBP/HTBP_ID_Requestor.h
+++ b/ACE/protocols/ace/HTBP/HTBP_ID_Requestor.h
@@ -7,7 +7,7 @@
#include "HTBP_Export.h"
#include "ace/SString.h"
-#include "ace/Synch.h"
+#include "ace/Synch_Traits.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
diff --git a/ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp b/ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp
index 1bc9f4a208b..82d618a5979 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp
@@ -2,9 +2,7 @@
// $Id$
#include "ace/Log_Msg.h"
-
-//#include <sstream>
-
+#include "ace/OS_NS_stdio.h"
#include "HTBP_Session.h"
#include "HTBP_Inside_Squid_Filter.h"
@@ -12,8 +10,6 @@
#include "HTBP_Inside_Squid_Filter.inl"
#endif
-ACE_RCSID(HTBP,ACE_HTBP_Inside_Squid_Filter,"$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ssize_t
@@ -94,6 +90,7 @@ ACE::HTBP::Inside_Squid_Filter::send_data_header (ssize_t data_len,
ACE::HTBP::Channel *ch)
{
char *buffer = new char[BUFSIZ];
+ ACE_Auto_Array_Ptr<char> guard (buffer);
ssize_t result = -1;
if (this->make_request_header (ch,"POST ",buffer,BUFSIZ) != -1)
{
@@ -178,6 +175,7 @@ int
ACE::HTBP::Inside_Squid_Filter::send_ack (ACE::HTBP::Channel *ch)
{
char *buffer = new char[BUFSIZ];
+ ACE_Auto_Array_Ptr<char> guard (buffer);
ssize_t result = -1;
if (ch->state() == ACE::HTBP::Channel::Ack_Sent)
{
@@ -209,7 +207,7 @@ ACE::HTBP::Inside_Squid_Filter::recv_ack (ACE::HTBP::Channel *ch)
errno = EWOULDBLOCK;
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT("HTBP::Inside_Squid_Filter::")
- ACE_TEXT("recv_data_header, ")
+ ACE_TEXT("recv_ack, ")
ACE_TEXT("header not complete\n")),0);
}
if (this->http_code() == 200)
diff --git a/ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp b/ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp
index 5e626170457..ba2cdda11b6 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp
@@ -1,4 +1,3 @@
-// ACE_HTBP_Outside_Squid_Filter.cpp
// $Id$
#include "ace/Log_Msg.h"
@@ -10,10 +9,6 @@
#include "HTBP_Outside_Squid_Filter.inl"
#endif
-ACE_RCSID(HTBP,
- ACE_HTBP_Outside_Squid_Filter,
- "$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ssize_t
diff --git a/ACE/protocols/ace/HTBP/HTBP_Session.cpp b/ACE/protocols/ace/HTBP/HTBP_Session.cpp
index cb1dc421250..b54f69587e1 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Session.cpp
+++ b/ACE/protocols/ace/HTBP/HTBP_Session.cpp
@@ -6,6 +6,7 @@
#include "HTBP_Session.h"
#include "ace/SOCK_Connector.h"
#include "ace/Event_Handler.h"
+#include "ace/os_include/netinet/os_tcp.h"
#include "HTBP_Filter.h"
#include "HTBP_ID_Requestor.h"
@@ -13,8 +14,6 @@
#include "HTBP_Session.inl"
#endif
-ACE_RCSID(HTBP,HTBP_Session,"$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE::HTBP::Session::Session_Map ACE::HTBP::Session::session_map_;
@@ -25,7 +24,7 @@ ACE_SYNCH_MUTEX ACE::HTBP::Session::session_id_lock_;
ACE_UINT32
ACE::HTBP::Session::next_session_id ()
{
- ACE_Guard<ACE_SYNCH_MUTEX> g(ACE::HTBP::Session::session_id_lock_);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, g, ACE::HTBP::Session::session_id_lock_, 0);
return ++last_session_id_;
}
@@ -62,7 +61,7 @@ ACE::HTBP::Session::Session (void)
destroy_proxy_addr_ (0),
inbound_ (0),
outbound_ (0),
- closed_ (0),
+ closed_ (false),
handler_ (0),
reactor_(0),
stream_ (0),
@@ -70,8 +69,8 @@ ACE::HTBP::Session::Session (void)
{
ACE::HTBP::ID_Requestor req;
ACE_TCHAR * htid = req.get_HTID();
+ ACE_Auto_Array_Ptr<ACE_TCHAR> guard (htid);
session_id_.local_ = ACE_TEXT_ALWAYS_CHAR(htid);
- delete[] htid;
session_id_.id_ = ACE::HTBP::Session::next_session_id();
ACE_NEW (inbound_, ACE::HTBP::Channel (this));
ACE_NEW (outbound_, ACE::HTBP::Channel (this));
@@ -81,12 +80,12 @@ ACE::HTBP::Session::Session (const ACE::HTBP::Addr &peer,
const ACE::HTBP::Addr &local,
ACE_UINT32 sid,
ACE_INET_Addr *proxy,
- int take_proxy)
+ bool take_proxy)
: proxy_addr_ (proxy),
destroy_proxy_addr_ (take_proxy),
inbound_ (0),
outbound_ (0),
- closed_ (0),
+ closed_ (false),
handler_ (0),
reactor_(0),
stream_ (0),
@@ -103,13 +102,13 @@ ACE::HTBP::Session::Session (const ACE::HTBP::Addr &peer,
ACE::HTBP::Session::Session (const ACE::HTBP::Session_Id_t &id,
ACE_INET_Addr *proxy,
- int take_proxy)
+ bool take_proxy)
: proxy_addr_ (proxy),
destroy_proxy_addr_ (take_proxy),
session_id_(id),
inbound_ (0),
outbound_ (0),
- closed_ (0),
+ closed_ (false),
handler_ (0),
reactor_ (0),
stream_ (0),
@@ -138,6 +137,9 @@ ACE::HTBP::Session::~Session (void)
{
if (destroy_proxy_addr_)
delete proxy_addr_;
+
+ delete this->inbound_;
+ delete this->outbound_;
}
int
@@ -147,7 +149,7 @@ ACE::HTBP::Session::close (void)
this->inbound_->close();
if (this->outbound_)
this->outbound_->close();
- this->closed_= 1;
+ this->closed_ = true;
return ACE::HTBP::Session::remove_session (this);
}
@@ -156,7 +158,7 @@ ACE::HTBP::Channel *
ACE::HTBP::Session::outbound (void) const
{
if (!this->closed_ && this->proxy_addr_)
- const_cast<ACE::HTBP::Session *> (this)->reconnect();
+ this->reconnect();
if ( this->outbound_ == 0)
return 0;
ACE::HTBP::Channel::State s =this->outbound_->state();
@@ -164,11 +166,9 @@ ACE::HTBP::Session::outbound (void) const
}
void
-ACE::HTBP::Session::reconnect_i (ACE::HTBP::Channel *s)
+ACE::HTBP::Session::reconnect_i (ACE::HTBP::Channel *s) const
{
ACE_SOCK_Connector conn;
- char host[100];
- this->proxy_addr_->get_host_name(host,100);
if (conn.connect (s->ace_stream(),*this->proxy_addr_) == -1)
{
ACE_TCHAR buffer[128];
@@ -179,6 +179,19 @@ ACE::HTBP::Session::reconnect_i (ACE::HTBP::Channel *s)
buffer, s == this->inbound_ ?
ACE_TEXT("inbound") : ACE_TEXT ("outbound")));
}
+ else
+ {
+#if !defined (ACE_LACKS_TCP_NODELAY)
+ int no_delay = 1;
+ int result = s->ace_stream().set_option (ACE_IPPROTO_TCP,
+ TCP_NODELAY,
+ (void *) &no_delay,
+ sizeof (no_delay));
+ if (result == -1)
+ ACE_DEBUG ((LM_DEBUG, "HTBP::Session::reconnect_i, %p\n", "set_option" ));
+#endif /* ! ACE_LACKS_TCP_NODELAY */
+
+ }
s->register_notifier(this->reactor_);
if (s == this->inbound_)
s->send_ack();
@@ -235,6 +248,7 @@ ACE::HTBP::Session::flush_outbound_queue (void)
ACE_NEW_RETURN (iov,
iovec[this->outbound_queue_.message_count()],
-1);
+ ACE_Auto_Array_Ptr<iovec> guard (iov);
this->outbound_queue_.peek_dequeue_head (msg);
for (size_t i = 0; i < this->outbound_queue_.message_count(); i++)
{
@@ -245,9 +259,11 @@ ACE::HTBP::Session::flush_outbound_queue (void)
if (this->outbound_->state() == ACE::HTBP::Channel::Wait_For_Ack)
this->outbound_->recv_ack();
result = this->outbound_->sendv (iov,this->outbound_queue_.message_count(),0);
- delete [] iov;
- while (this->outbound_queue_.dequeue_head(msg))
- msg->release();
+ while (this->outbound_queue_.message_count ())
+ {
+ this->outbound_queue_.dequeue_head (msg);
+ msg->release ();
+ }
}
return result;
}
diff --git a/ACE/protocols/ace/HTBP/HTBP_Session.h b/ACE/protocols/ace/HTBP/HTBP_Session.h
index 5b46c6e86b3..b74cd51247d 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Session.h
+++ b/ACE/protocols/ace/HTBP/HTBP_Session.h
@@ -82,10 +82,10 @@ namespace ACE
const Addr& local,
ACE_UINT32 sid = 0,
ACE_INET_Addr *proxy = 0,
- int take_proxy = 0);
+ bool take_proxy = false);
Session (const Session_Id_t &id,
ACE_INET_Addr *proxy = 0,
- int take_proxy = 0);
+ bool take_proxy = false);
Session (const Session &other);
Session& operator= (const Session &other);
@@ -155,8 +155,8 @@ namespace ACE
/// the reference passed in, so that it may be used inline for
/// the inboundor outbound methods
- void reconnect ();
- void reconnect_i (Channel *);
+ void reconnect () const;
+ void reconnect_i (Channel *) const;
typedef ACE_Hash_Map_Manager<Session_Id_t, Session*,
ACE_SYNCH_MUTEX> Session_Map;
@@ -173,10 +173,7 @@ namespace ACE
Channel *inbound_;
Channel *outbound_;
- Filter *inbound_filter_;
- Filter *outbound_filter_;
-
- int closed_;
+ bool closed_;
ACE_Event_Handler *handler_;
ACE_Reactor *reactor_;
diff --git a/ACE/protocols/ace/HTBP/HTBP_Session.inl b/ACE/protocols/ace/HTBP/HTBP_Session.inl
index 06c510650c9..aee8cbf4dc3 100644
--- a/ACE/protocols/ace/HTBP/HTBP_Session.inl
+++ b/ACE/protocols/ace/HTBP/HTBP_Session.inl
@@ -6,7 +6,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE
void
-ACE::HTBP::Session::reconnect ()
+ACE::HTBP::Session::reconnect () const
{
if (!this->closed_ && this->proxy_addr_)
{
diff --git a/ACE/protocols/ace/INet/AuthenticationBase.cpp b/ACE/protocols/ace/INet/AuthenticationBase.cpp
new file mode 100644
index 00000000000..735a94cd7bb
--- /dev/null
+++ b/ACE/protocols/ace/INet/AuthenticationBase.cpp
@@ -0,0 +1,21 @@
+// $Id$
+
+#include "ace/INet/AuthenticationBase.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/AuthenticationBase.inl"
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+ AuthenticationBase::~AuthenticationBase () {}
+
+ AuthenticatorBase::~AuthenticatorBase () {}
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/AuthenticationBase.h b/ACE/protocols/ace/INet/AuthenticationBase.h
new file mode 100644
index 00000000000..45675f4a553
--- /dev/null
+++ b/ACE/protocols/ace/INet/AuthenticationBase.h
@@ -0,0 +1,87 @@
+// $Id$
+
+/**
+ * @file AuthenticationBase.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_INET_AUTHENTICATION_BASE_H
+#define ACE_INET_AUTHENTICATION_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+#include "ace/SString.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+ /**
+ * @class ACE_INet_AuthenticationBase
+ *
+ * @brief Base class for authentication information
+ * holder.
+ *
+ */
+ class ACE_INET_Export AuthenticationBase
+ {
+ public:
+ /// Destructor
+ virtual ~AuthenticationBase ();
+
+ /// Returns authentication scheme (f.i. 'ftp' or 'http:basic').
+ virtual const ACE_CString& scheme () const = 0;
+
+ /// Returns authentication realm.
+ virtual const ACE_CString& realm () const = 0;
+
+ /// Returns user id.
+ virtual const ACE_CString& user () const = 0;
+
+ /// Changes user id.
+ virtual void user (const ACE_CString& usr) = 0;
+
+ /// Returns password.
+ virtual const ACE_CString& password () const = 0;
+
+ /// Changes password.
+ virtual void password (const ACE_CString& pw) = 0;
+
+ protected:
+ /// Constructor
+ AuthenticationBase ();
+ };
+
+ /**
+ * @class ACE_INet_AuthenticatorBase
+ *
+ * @brief Base class for authenticators.
+ *
+ */
+ class ACE_INET_Export AuthenticatorBase
+ {
+ public:
+ /// Destructor
+ virtual ~AuthenticatorBase ();
+
+ /// Verifies authentication for given info and returns true if
+ /// verification succeeded, false otherwise.
+ /// If true, the authentication information is updated with the actual
+ /// credentials.
+ virtual bool authenticate(AuthenticationBase& authentication) const = 0;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/AuthenticationBase.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_AUTHENTICATION_BASE_H */
diff --git a/ACE/protocols/ace/INet/AuthenticationBase.inl b/ACE/protocols/ace/INet/AuthenticationBase.inl
new file mode 100644
index 00000000000..bc6c98f7c43
--- /dev/null
+++ b/ACE/protocols/ace/INet/AuthenticationBase.inl
@@ -0,0 +1,17 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+ ACE_INLINE
+ AuthenticationBase::AuthenticationBase ()
+ {}
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/BidirStreamBuffer.cpp b/ACE/protocols/ace/INet/BidirStreamBuffer.cpp
new file mode 100644
index 00000000000..3ac0551fcf3
--- /dev/null
+++ b/ACE/protocols/ace/INet/BidirStreamBuffer.cpp
@@ -0,0 +1,219 @@
+// $Id$
+
+#ifndef ACE_IOS_BIDIR_STREAM_BUFFER_CPP
+#define ACE_IOS_BIDIR_STREAM_BUFFER_CPP
+
+#include "ace/INet/BidirStreamBuffer.h"
+#include "ace/OS_Memory.h"
+#include "ace/OS_NS_string.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace IOS
+ {
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::BasicBidirStreamBuffer (
+ STREAM_HANDLER* sh,
+ std::streamsize bufsz,
+ openmode mode)
+ : bufsize_ (bufsz),
+ mode_ (mode),
+ stream_ (sh),
+ interceptor_ (0)
+ {
+ this->stream_->add_reference ();
+
+ char_type* p = 0;
+ ACE_NEW_NORETURN (p, char_type [bufsz]);
+ this->read_buffer_.reset (p);
+ p = 0;
+ ACE_NEW_NORETURN (p, char_type [bufsz]);
+ this->write_buffer_.reset (p);
+
+ this->reset_buffers ();
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::~BasicBidirStreamBuffer ()
+ {
+ this->close_stream ();
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ typename BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::int_type
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::overflow (int_type c)
+ {
+ if (!(this->mode_ & ios_type::out)) return char_traits::eof ();
+
+ if (c != char_traits::eof ())
+ {
+ *this->pptr () = char_traits::to_char_type (c);
+ this->pbump (1);
+ }
+ if (this->flush_buffer () == std::streamsize (-1)) return char_traits::eof ();
+
+ return c;
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ typename BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::int_type
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::underflow ()
+ {
+ if (!(this->mode_ & ios_type::in)) return char_traits::eof ();
+
+ if (this->gptr () && (this->gptr () < this->egptr ()))
+ return char_traits::to_int_type (*this->gptr ());
+
+ int putback = int (this->gptr () - this->eback ());
+ if (putback > 4) putback = 4;
+
+ ACE_OS::memmove (this->read_buffer_.get () + (4 - putback),
+ this->gptr () - putback,
+ putback * sizeof (char_type));
+
+ if (this->interceptor_)
+ this->interceptor_->before_read (this->bufsize_ - 4);
+
+ int n = this->read_from_stream (this->read_buffer_.get () + 4,
+ this->bufsize_ - 4);
+
+ if (this->interceptor_)
+ this->interceptor_->after_read (this->read_buffer_.get () + 4, n);
+
+ if (n <= 0)
+ {
+ if (this->interceptor_)
+ this->interceptor_->on_eof ();
+
+ return char_traits::eof ();
+ }
+
+ this->setg (this->read_buffer_.get () + (4 - putback),
+ this->read_buffer_.get () + 4,
+ this->read_buffer_.get () + 4 + n);
+
+ // return next character
+ return char_traits::to_int_type (*this->gptr ());
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ int
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::sync ()
+ {
+ if (this->pptr () && this->pptr () > this->pbase ())
+ {
+ if (this->flush_buffer () == -1) return -1;
+ }
+ return 0;
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ const STREAM_HANDLER&
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::stream () const
+ {
+ return *this->stream_;
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ void
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::close_stream ()
+ {
+ if (this->stream_ != 0)
+ {
+ ACE_Errno_Guard eguard (errno);
+ this->stream_->remove_reference ();
+ this->stream_ = 0;
+ }
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ void
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::set_interceptor (interceptor_type& interceptor)
+ {
+ this->interceptor_ = &interceptor;
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ void
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::set_mode (openmode mode)
+ {
+ this->mode_ = mode;
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ typename BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::openmode
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::get_mode () const
+ {
+ return this->mode_;
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ void
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::reset_buffers()
+ {
+ this->setg (this->read_buffer_.get () + 4,
+ this->read_buffer_.get () + 4,
+ this->read_buffer_.get () + 4);
+ this->setp (this->write_buffer_.get (),
+ this->write_buffer_.get () + (this->bufsize_ - 1));
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ int
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::read_from_stream (char_type* buffer, std::streamsize length)
+ {
+ return this->stream_ == 0 ? 0 : this->stream_->read_from_stream (buffer, length, sizeof(char_type));
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ int
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::write_to_stream (const char_type* buffer, std::streamsize length)
+ {
+ return this->stream_ == 0 ? 0 : this->stream_->write_to_stream (buffer, length, sizeof(char_type));
+ }
+
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR>
+ int
+ BasicBidirStreamBuffer<ACE_CHAR_T, STREAM_HANDLER, TR>::flush_buffer ()
+ {
+ int n = int (this->pptr () - this->pbase ());
+
+ if (this->interceptor_)
+ this->interceptor_->before_write (this->pbase (), n);
+
+ int n_out = this->write_to_stream (this->pbase (), n);
+
+ if (this->interceptor_)
+ this->interceptor_->after_write (n_out);
+
+ if (n_out == n)
+ {
+ this->pbump (-n);
+ return n;
+ }
+ return -1;
+ }
+
+ template <class STREAM_HANDLER>
+ BidirStreamBuffer<STREAM_HANDLER>::BidirStreamBuffer (
+ STREAM_HANDLER* sh,
+ std::streamsize bufsz,
+ openmode mode)
+ : BasicBidirStreamBuffer<char, STREAM_HANDLER> (sh, bufsz, mode)
+ {
+ }
+
+ template <class STREAM_HANDLER>
+ BidirStreamBuffer<STREAM_HANDLER>::~BidirStreamBuffer ()
+ {
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_IOS_BIDIR_STREAM_BUFFER_CPP */
diff --git a/ACE/protocols/ace/INet/BidirStreamBuffer.h b/ACE/protocols/ace/INet/BidirStreamBuffer.h
new file mode 100644
index 00000000000..8238be85d73
--- /dev/null
+++ b/ACE/protocols/ace/INet/BidirStreamBuffer.h
@@ -0,0 +1,139 @@
+// $Id$
+
+/**
+ * @file BidirStreamBuffer.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_IOS_BIDIR_STREAM_BUFFER_H
+#define ACE_IOS_BIDIR_STREAM_BUFFER_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Auto_Ptr.h"
+#include "ace/INet/StreamInterceptor.h"
+#include <streambuf>
+#include <iosfwd>
+#include <ios>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace IOS
+ {
+ /**
+ * @class ACE_IOS_BasicBidirStreamBuffer
+ *
+ * @brief Encapsulates bidirectional streambuffer attached
+ * to a StreamHandler implementation.
+ *
+ * Implements a C++ standard bidirectional streambuffer using
+ * a streamed connection handler as data source/destination.
+ * Used as a base for implementing C++ standard streams capable
+ * of performing C++ standard formatted input and output on
+ * any streamed connection that can be represented by a stream
+ * handler.
+ */
+ template <class ACE_CHAR_T, class STREAM_HANDLER, class TR = std::char_traits<ACE_CHAR_T> >
+ class BasicBidirStreamBuffer
+ : public std::basic_streambuf<ACE_CHAR_T, TR>
+ {
+ public:
+ // useful traits
+ typedef std::basic_streambuf<ACE_CHAR_T, TR> base_type;
+ typedef std::basic_ios<ACE_CHAR_T, TR> ios_type;
+ typedef ACE_CHAR_T char_type;
+ typedef TR char_traits;
+ typedef typename base_type::int_type int_type;
+ typedef typename base_type::pos_type pos_type;
+ typedef typename base_type::off_type off_type;
+ typedef typename ios_type::openmode openmode;
+ typedef StreamInterceptorBase<char_type, char_traits> interceptor_type;
+
+ /// Constructor
+ BasicBidirStreamBuffer (STREAM_HANDLER* sh, std::streamsize bufsz, openmode mode);
+
+ /// Destructor
+ virtual ~BasicBidirStreamBuffer ();
+
+ virtual int_type overflow (int_type c);
+ virtual int_type underflow ();
+ virtual int sync ();
+
+ const STREAM_HANDLER& stream () const;
+
+ void close_stream ();
+
+ void set_interceptor (interceptor_type& interceptor);
+
+ protected:
+ void set_mode (openmode mode);
+
+ openmode get_mode () const;
+
+ void reset_buffers();
+
+ private:
+ virtual int read_from_stream (char_type* buffer, std::streamsize length);
+
+ virtual int write_to_stream (const char_type* buffer, std::streamsize length);
+
+ int flush_buffer ();
+
+ std::streamsize bufsize_;
+ ACE_Auto_Array_Ptr<char_type> read_buffer_;
+ ACE_Auto_Array_Ptr<char_type> write_buffer_;
+ openmode mode_;
+ STREAM_HANDLER *stream_;
+ interceptor_type* interceptor_;
+
+ BasicBidirStreamBuffer(const BasicBidirStreamBuffer&);
+ BasicBidirStreamBuffer& operator = (const BasicBidirStreamBuffer&);
+ };
+
+ /**
+ * @class ACE_IOS_BidirStreamBuffer
+ *
+ * @brief Encapsulates bidirectional character streambuffer attached
+ * to a StreamHandler implementation.
+ *
+ */
+ template <class STREAM_HANDLER>
+ class BidirStreamBuffer
+ : public BasicBidirStreamBuffer<char, STREAM_HANDLER>
+ {
+ public:
+ typedef BasicBidirStreamBuffer< char, STREAM_HANDLER> super;
+ typedef typename super::openmode openmode;
+
+ BidirStreamBuffer (STREAM_HANDLER* sh, std::streamsize bufsz, openmode mode);
+ virtual ~BidirStreamBuffer ();
+
+ private:
+ BidirStreamBuffer(const BidirStreamBuffer&);
+ BidirStreamBuffer& operator = (const BidirStreamBuffer&);
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/BidirStreamBuffer.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("BidirStreamBuffer.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_IOS_BIDIR_STREAM_BUFFER_H */
diff --git a/ACE/protocols/ace/INet/BufferedStreamBuffer.cpp b/ACE/protocols/ace/INet/BufferedStreamBuffer.cpp
new file mode 100644
index 00000000000..fca19374088
--- /dev/null
+++ b/ACE/protocols/ace/INet/BufferedStreamBuffer.cpp
@@ -0,0 +1,184 @@
+// $Id$
+
+#ifndef ACE_BUFFERED_STREAM_BUFFER_CPP
+#define ACE_BUFFERED_STREAM_BUFFER_CPP
+
+#include "ace/INet/BufferedStreamBuffer.h"
+#include "ace/OS_Memory.h"
+#include "ace/OS_NS_string.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace IOS
+ {
+
+ template <class ACE_CHAR_T, class TR>
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::BasicBufferedStreamBuffer (
+ std::streamsize bufsz,
+ typename std::basic_ios<ACE_CHAR_T, TR>::openmode mode)
+ : bufsize_ (bufsz),
+ mode_ (mode),
+ interceptor_ (0)
+ {
+ char_type* p = 0;
+ ACE_NEW_NORETURN (p, char_type [bufsz]);
+ this->buffer_.reset (p);
+
+ this->setg (this->buffer_.get () + 4,
+ this->buffer_.get () + 4,
+ this->buffer_.get () + 4);
+ this->setp (this->buffer_.get (),
+ this->buffer_.get () + (this->bufsize_ - 1));
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::~BasicBufferedStreamBuffer ()
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ typename BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::int_type
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::overflow (int_type c)
+ {
+ if (!(this->mode_ & ios_type::out)) return char_traits::eof ();
+
+ if (c != char_traits::eof ())
+ {
+ *this->pptr () = char_traits::to_char_type (c);
+ this->pbump (1);
+ }
+ if (this->flush_buffer () == std::streamsize (-1)) return char_traits::eof ();
+
+ return c;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ typename BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::int_type
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::underflow ()
+ {
+ if (!(this->mode_ & ios_type::in)) return char_traits::eof ();
+
+ if (this->gptr () && (this->gptr () < this->egptr ()))
+ return char_traits::to_int_type (*this->gptr ());
+
+ int putback = int (this->gptr () - this->eback ());
+ if (putback > 4) putback = 4;
+
+ ACE_OS::memmove (this->buffer_.get () + (4 - putback),
+ this->gptr (),
+ putback * sizeof (char_type));
+
+ if (this->interceptor_)
+ this->interceptor_->before_read (this->bufsize_ - 4);
+
+ int n = this->read_from_stream (this->buffer_.get () + 4,
+ this->bufsize_ - 4);
+
+ if (this->interceptor_)
+ this->interceptor_->after_read (this->buffer_.get () + 4, n);
+
+ if (n <= 0)
+ {
+ if (this->interceptor_)
+ this->interceptor_->on_eof ();
+
+ return char_traits::eof ();
+ }
+
+ this->setg (this->buffer_.get () + (4 - putback),
+ this->buffer_.get () + 4,
+ this->buffer_.get () + 4 + n);
+
+ // return next character
+ return char_traits::to_int_type (*this->gptr ());
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ int
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::sync ()
+ {
+ if (this->pptr () && this->pptr () > this->pbase ())
+ {
+ if (this->flush_buffer () == -1) return -1;
+ }
+ return 0;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::set_interceptor (interceptor_type& interceptor)
+ {
+ this->interceptor_ = &interceptor;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::set_mode (
+ typename std::basic_ios<ACE_CHAR_T, TR>::openmode mode)
+ {
+ this->mode_ = mode;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ typename std::basic_ios<ACE_CHAR_T, TR>::openmode
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::get_mode () const
+ {
+ return this->mode_;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ int
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::read_from_stream (char_type* /*buffer*/, std::streamsize /*length*/)
+ {
+ // to be implemented in derived class
+ return 0;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ int
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::write_to_stream (const char_type* /*buffer*/, std::streamsize /*length*/)
+ {
+ // to be implemented in derived class
+ return 0;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::reset_buffers()
+ {
+ this->setg (this->buffer_.get () + 4,
+ this->buffer_.get () + 4,
+ this->buffer_.get () + 4);
+ this->setp (this->buffer_.get (),
+ this->buffer_.get () + (this->bufsize_ - 1));
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ int
+ BasicBufferedStreamBuffer<ACE_CHAR_T, TR>::flush_buffer ()
+ {
+ int n = int (this->pptr () - this->pbase ());
+
+ if (this->interceptor_)
+ this->interceptor_->before_write (this->pbase (), n);
+
+ int n_out = this->write_to_stream (this->pbase (), n);
+
+ if (this->interceptor_)
+ this->interceptor_->after_write (n_out);
+
+ if (n_out == n)
+ {
+ this->pbump (-n);
+ return n;
+ }
+ return -1;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_BUFFERED_STREAM_BUFFER_CPP */
diff --git a/ACE/protocols/ace/INet/BufferedStreamBuffer.h b/ACE/protocols/ace/INet/BufferedStreamBuffer.h
new file mode 100644
index 00000000000..8127667b983
--- /dev/null
+++ b/ACE/protocols/ace/INet/BufferedStreamBuffer.h
@@ -0,0 +1,109 @@
+// $Id$
+
+/**
+ * @file BufferedStreamBuffer.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_IOS_BUFFERED_STREAM_BUFFER_H
+#define ACE_IOS_BUFFERED_STREAM_BUFFER_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Auto_Ptr.h"
+#include "ace/INet/StreamInterceptor.h"
+#include <streambuf>
+#include <iosfwd>
+#include <ios>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace IOS
+ {
+ /**
+ * @class ACE_IOS_BasicBufferedStreamBuffer
+ *
+ * @brief Encapsulates unidirectional streambuffer attached
+ * to an input OR output stream.
+ *
+ * Implements a base class for a C++ standard unidirectional
+ * streambuffer using any data source/destination that can be
+ * driven by overloading the <write_to_stream> or <read_from_stream>
+ * methods.
+ */
+ template <class ACE_CHAR_T, class TR = std::char_traits<ACE_CHAR_T> >
+ class BasicBufferedStreamBuffer
+ : public std::basic_streambuf<ACE_CHAR_T, TR>
+ {
+ public:
+ typedef std::basic_streambuf<ACE_CHAR_T, TR> base_type;
+ typedef std::basic_ios<ACE_CHAR_T, TR> ios_type;
+ typedef ACE_CHAR_T char_type;
+ typedef TR char_traits;
+ typedef typename base_type::int_type int_type;
+ typedef typename base_type::pos_type pos_type;
+ typedef typename base_type::off_type off_type;
+ typedef typename ios_type::seekdir seekdir;
+ typedef typename ios_type::openmode openmode;
+ typedef StreamInterceptorBase<char_type, char_traits> interceptor_type;
+
+ BasicBufferedStreamBuffer (std::streamsize bufsz,
+ typename std::basic_ios<ACE_CHAR_T, TR>::openmode mode);
+
+ virtual ~BasicBufferedStreamBuffer ();
+
+ virtual int_type overflow (int_type c);
+ virtual int_type underflow ();
+ virtual int sync ();
+
+ void set_interceptor (interceptor_type& interceptor);
+
+ protected:
+ void set_mode (typename std::basic_ios<ACE_CHAR_T, TR>::openmode mode);
+
+ typename std::basic_ios<ACE_CHAR_T, TR>::openmode get_mode () const;
+
+ virtual int read_from_stream (char_type* buffer, std::streamsize length);
+
+ virtual int write_to_stream (const char_type* buffer, std::streamsize length);
+
+ void reset_buffers ();
+
+ private:
+ int flush_buffer ();
+
+ std::streamsize bufsize_;
+ ACE_Auto_Array_Ptr<char_type> buffer_;
+ typename std::basic_ios<ACE_CHAR_T, TR>::openmode mode_;
+ interceptor_type* interceptor_;
+
+ BasicBufferedStreamBuffer(const BasicBufferedStreamBuffer&);
+ BasicBufferedStreamBuffer& operator = (const BasicBufferedStreamBuffer&);
+ };
+
+ /// char specialization
+ typedef BasicBufferedStreamBuffer<char, std::char_traits<char> > BufferedStreamBuffer;
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/BufferedStreamBuffer.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("BufferedStreamBuffer.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_IOS_BUFFERED_STREAM_BUFFER_H */
diff --git a/ACE/protocols/ace/INet/ClientRequestHandler.cpp b/ACE/protocols/ace/INet/ClientRequestHandler.cpp
new file mode 100644
index 00000000000..ad7350c7ced
--- /dev/null
+++ b/ACE/protocols/ace/INet/ClientRequestHandler.cpp
@@ -0,0 +1,72 @@
+// $Id$
+
+#include "ace/INet/ClientRequestHandler.h"
+#include "ace/Functor_String.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/ClientRequestHandler.inl"
+#endif
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ ClientRequestHandler::ClientRequestHandler () {}
+
+ ClientRequestHandler::~ClientRequestHandler () {}
+
+ ConnectionCache& ClientRequestHandler::connection_cache ()
+ {
+ return *TConnectionCacheSingleton::instance ();
+ }
+
+ ClientINetRequestHandler::ClientINetRequestHandler () {}
+
+ ClientINetRequestHandler::~ClientINetRequestHandler () {}
+
+ ClientINetRequestHandler::INetConnectionKey::INetConnectionKey (
+ const ACE_CString& host,
+ u_short port)
+ : ConnectionKey (),
+ host_ (host),
+ port_ (port)
+ {
+ }
+
+ ClientINetRequestHandler::INetConnectionKey::~INetConnectionKey ()
+ {}
+
+ u_long ClientINetRequestHandler::INetConnectionKey::hash () const
+ {
+ return ACE_Hash<ACE_CString>()(this->host_) + this->port_;
+ }
+
+ ConnectionKey* ClientINetRequestHandler::INetConnectionKey::duplicate () const
+ {
+ ConnectionKey* k = 0;
+ ACE_NEW_RETURN (k,
+ INetConnectionKey (this->host_, this->port_),
+ 0);
+ return k;
+ }
+
+ bool ClientINetRequestHandler::INetConnectionKey::equal (const ConnectionKey& key) const
+ {
+ try {
+ const INetConnectionKey& ikey = dynamic_cast<const INetConnectionKey&> (key);
+ return this->host_ == ikey.host_ && this->port_ == ikey.port_;
+ }
+ catch (...) {
+ return false;
+ }
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/ClientRequestHandler.h b/ACE/protocols/ace/INet/ClientRequestHandler.h
new file mode 100644
index 00000000000..4d8fa7d3f95
--- /dev/null
+++ b/ACE/protocols/ace/INet/ClientRequestHandler.h
@@ -0,0 +1,116 @@
+// $Id$
+
+/**
+ * @file ClientRequestHandler.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_INET_CLIENT_REQUEST_HANDLER_H
+#define ACE_INET_CLIENT_REQUEST_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+#include "ace/Singleton.h"
+#include "ace/Synch_Traits.h"
+#include "ace/Null_Mutex.h"
+#include "ace/Thread_Mutex.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/RequestHandler.h"
+#include "ace/INet/ConnectionCache.h"
+#include <iostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+ class URL_Base; // forward
+
+ /**
+ * @class ACE_INet_ClientRequestHandler
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export ClientRequestHandler
+ : public RequestHandler
+ {
+ public:
+ ClientRequestHandler ();
+ virtual ~ClientRequestHandler ();
+
+ virtual std::istream& handle_open_request (const URL_Base& url) = 0;
+
+ virtual std::istream& response_stream () = 0;
+
+ virtual bool is_response_ok () const = 0;
+
+ static ConnectionCache& connection_cache ();
+
+ private:
+ typedef ACE_Singleton<ConnectionCache,
+ ACE_SYNCH_MUTEX> TConnectionCacheSingleton;
+ };
+
+ /**
+ * @class ACE_INet_ClientINetRequestHandler
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export ClientINetRequestHandler
+ : public ClientRequestHandler
+ {
+ public:
+ ClientINetRequestHandler ();
+ virtual ~ClientINetRequestHandler ();
+
+ /**
+ * @class ACE_INet_INetConnectionKey
+ *
+ * @brief
+ *
+ */
+#if (defined(_MSC_VER) || defined(__MINGW32__))
+ class ACE_INET_Export INetConnectionKey
+#else
+ class INetConnectionKey
+#endif
+ : public ConnectionKey
+ {
+ public:
+ INetConnectionKey (const ACE_CString& host,
+ u_short port);
+ virtual ~INetConnectionKey ();
+
+ virtual u_long hash () const;
+
+ virtual ConnectionKey* duplicate () const;
+
+ const ACE_CString& host () const;
+
+ u_short port () const;
+
+ protected:
+ virtual bool equal (const ConnectionKey& key) const;
+
+ private:
+ ACE_CString host_;
+ u_short port_;
+ };
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/ClientRequestHandler.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_CLIENT_REQUEST_HANDLER_H */
diff --git a/ACE/protocols/ace/INet/ClientRequestHandler.inl b/ACE/protocols/ace/INet/ClientRequestHandler.inl
new file mode 100644
index 00000000000..930ac77ef3c
--- /dev/null
+++ b/ACE/protocols/ace/INet/ClientRequestHandler.inl
@@ -0,0 +1,27 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ ACE_INLINE
+ const ACE_CString& ClientINetRequestHandler::INetConnectionKey::host () const
+ {
+ return this->host_;
+ }
+
+ ACE_INLINE
+ u_short ClientINetRequestHandler::INetConnectionKey::port () const
+ {
+ return this->port_;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/ConnectionCache.cpp b/ACE/protocols/ace/INet/ConnectionCache.cpp
new file mode 100644
index 00000000000..d450e84389a
--- /dev/null
+++ b/ACE/protocols/ace/INet/ConnectionCache.cpp
@@ -0,0 +1,361 @@
+// $Id$
+
+#include "ace/INet/ConnectionCache.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/ConnectionCache.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ ConnectionKey::ConnectionKey ()
+ {}
+
+ ConnectionKey::~ConnectionKey ()
+ {}
+
+ ConnectionCacheKey::ConnectionCacheKey ()
+ : key_ (0),
+ delete_key_ (false)
+ {
+ }
+
+ ConnectionCacheKey::ConnectionCacheKey (const ConnectionKey& key)
+ : key_ (&const_cast<ConnectionKey&> (key)),
+ delete_key_ (false)
+ {
+ }
+
+ ConnectionCacheKey::ConnectionCacheKey (const ConnectionCacheKey& cachekey)
+ : key_ (0),
+ delete_key_ (false)
+ {
+ *this = cachekey;
+ }
+
+ ConnectionCacheKey& ConnectionCacheKey::operator =(const ConnectionCacheKey& cachekey)
+ {
+ if (this != &cachekey)
+ {
+ if (this->key_ != 0 && this->delete_key_)
+ {
+ delete this->key_;
+ this->delete_key_ = false;
+ }
+
+ this->key_ = cachekey.key_->duplicate ();
+
+ if (this->key_ == 0)
+ {
+ this->delete_key_ = false;
+ }
+ else
+ {
+ this->delete_key_ = true;
+ }
+ }
+ return *this;
+ }
+
+ u_long ConnectionCacheKey::hash (void) const
+ {
+ return this->key_ ? this->key ().hash () : 0;
+ }
+
+ ConnectionHolder::~ConnectionHolder () {}
+ ConnectionHolder::ConnectionHolder () {}
+
+ ConnectionFactory::~ConnectionFactory () {}
+ ConnectionFactory::ConnectionFactory () {}
+
+ ConnectionCacheValue::ConnectionCacheValue ()
+ : state_ (CST_INIT),
+ connection_ (0)
+ {
+ }
+
+ ConnectionCacheValue::ConnectionCacheValue (connection_type* connection)
+ : state_ (connection ? CST_IDLE : CST_INIT),
+ connection_ (connection)
+ {
+ }
+
+ ConnectionCacheValue::ConnectionCacheValue (const ConnectionCacheValue& cacheval)
+ {
+ *this = cacheval;
+ }
+
+ ConnectionCacheValue& ConnectionCacheValue::operator =(const ConnectionCacheValue& cacheval)
+ {
+ if (this != &cacheval)
+ {
+ this->state_ = cacheval.state ();
+ this->connection_ = const_cast<connection_type*> (cacheval.connection ());
+ }
+ return *this;
+ }
+
+ ConnectionCache::ConnectionCache(size_t size)
+ : condition_ (lock_),
+ cache_map_ (size)
+ {
+ }
+
+ ConnectionCache::~ConnectionCache ()
+ {
+ this->close_all_connections ();
+ }
+
+ bool ConnectionCache::find_connection (const ConnectionKey& key,
+ ConnectionCacheValue& cacheval)
+ {
+ if (this->cache_map_.find (ConnectionCacheKey (key),
+ cacheval) == 0)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool ConnectionCache::set_connection (const ConnectionKey& key,
+ const ConnectionCacheValue& cacheval)
+ {
+ return this->cache_map_.rebind (ConnectionCacheKey (key),
+ cacheval) != -1;
+ }
+
+ bool ConnectionCache::claim_existing_connection(const ConnectionKey& key,
+ connection_type*& connection,
+ ConnectionCacheValue::State& state)
+ {
+ INET_TRACE ("ConnectionCache::claim_existing_connection");
+
+ ConnectionCacheValue cacheval;
+ if (this->find_connection (key, cacheval))
+ {
+ state = cacheval.state ();
+ if (state == ConnectionCacheValue::CST_IDLE)
+ {
+ cacheval.state (ConnectionCacheValue::CST_BUSY);
+ if (this->set_connection (key, cacheval))
+ {
+ connection = cacheval.connection ();
+ return true;
+ }
+ else
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("ConnectionCache::claim_existing_connection - ")
+ ACE_TEXT ("failed to claim connection entry")));
+ }
+ }
+ }
+ return false;
+ }
+
+ bool ConnectionCache::claim_connection(const ConnectionKey& key,
+ connection_type*& connection,
+ const factory_type& connection_factory,
+ bool wait)
+ {
+ INET_TRACE ("ConnectionCache::claim_connection");
+
+ while (1)
+ {
+ bool create_connection = false;
+ ConnectionCacheValue::State state = ConnectionCacheValue::CST_NONE;
+ do
+ {
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ this->lock_,
+ false));
+
+ if (this->claim_existing_connection (key, connection, state))
+ {
+ INET_DEBUG (9, (LM_INFO, DLINFO ACE_TEXT ("%P|%t) ConnectionCache::claim_connection - ")
+ ACE_TEXT ("successfully claimed existing connection\n")));
+ return true;
+ }
+
+ if ((state == ConnectionCacheValue::CST_BUSY ||
+ state == ConnectionCacheValue::CST_INIT) && !wait)
+ return false;
+
+ if (state == ConnectionCacheValue::CST_CLOSED ||
+ state == ConnectionCacheValue::CST_NONE)
+ {
+ if (!this->set_connection (key, ConnectionCacheValue ()))
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("ConnectionCache::claim_connection - ")
+ ACE_TEXT ("failed to initialize connection entry")));
+ return false;
+ }
+
+ create_connection = true;
+ }
+ else
+ {
+ INET_DEBUG (9, (LM_INFO, DLINFO ACE_TEXT ("ConnectionCache::claim_connection - ")
+ ACE_TEXT ("waiting for connection to become available\n")));
+ // wait for connection to become ready/free
+ if (this->condition_.wait () != 0)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("(%P|%t) ConnectionCache::claim_connection - ")
+ ACE_TEXT ("error waiting for connection condition (%p)\n")));
+ return false;
+ }
+ INET_DEBUG (9, (LM_INFO, DLINFO ACE_TEXT ("ConnectionCache::claim_connection - ")
+ ACE_TEXT ("awoken and retrying to claim connection\n")));
+ }
+ }
+ while (0);
+
+ if (create_connection)
+ {
+ connection = connection_factory.create_connection (key);
+ if (connection)
+ {
+ INET_DEBUG (9, (LM_INFO, DLINFO ACE_TEXT ("ConnectionCache::claim_connection - ")
+ ACE_TEXT ("successfully created new connection\n")));
+
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ this->lock_,
+ false));
+
+ ConnectionCacheValue cacheval (connection);
+ cacheval.state (ConnectionCacheValue::CST_BUSY);
+ return this->set_connection (key, cacheval);
+ }
+ else
+ return false;
+ }
+ }
+ }
+
+ bool ConnectionCache::release_connection(const ConnectionKey& key,
+ connection_type* connection)
+ {
+ INET_TRACE ("ConnectionCache::release_connection");
+
+ INET_DEBUG (9, (LM_INFO, DLINFO ACE_TEXT ("ConnectionCache::release_connection - ")
+ ACE_TEXT ("releasing connection\n")));
+
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ this->lock_,
+ false));
+
+ ConnectionCacheValue cacheval;
+ if (this->find_connection (key, cacheval) &&
+ cacheval.connection () == connection &&
+ cacheval.state () == ConnectionCacheValue::CST_BUSY)
+ {
+ cacheval.state (ConnectionCacheValue::CST_IDLE);
+ if (this->set_connection (key, cacheval))
+ {
+ // signal other threads about free connection
+ this->condition_.broadcast ();
+ return true;
+ }
+ else
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("ConnectionCache::release_connection - ")
+ ACE_TEXT ("failed to release connection entry")));
+ return false;
+ }
+ }
+ else
+ return false;
+ }
+
+ bool ConnectionCache::close_connection(const ConnectionKey& key,
+ connection_type* connection)
+ {
+ INET_TRACE ("ConnectionCache::close_connection");
+
+ INET_DEBUG (9, (LM_INFO, DLINFO ACE_TEXT ("ConnectionCache::close_connection - ")
+ ACE_TEXT ("closing connection\n")));
+
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ this->lock_,
+ false));
+
+ ConnectionCacheValue cacheval;
+ if (this->find_connection (key, cacheval) &&
+ cacheval.connection () == connection &&
+ cacheval.state () == ConnectionCacheValue::CST_BUSY)
+ {
+ connection_type* conn = cacheval.connection ();
+ cacheval.connection (0);
+ cacheval.state (ConnectionCacheValue::CST_CLOSED);
+ if (this->set_connection (key, cacheval))
+ {
+ // signal other threads about closed connection
+ this->condition_.broadcast ();
+ delete conn; // clean up
+ return true;
+ }
+ else
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("ConnectionCache::close_connection - ")
+ ACE_TEXT ("failed to close connection entry")));
+ return false;
+ }
+ }
+ else
+ return false;
+ }
+
+ bool ConnectionCache::has_connection(const ConnectionKey& key)
+ {
+ INET_TRACE ("ConnectionCache::has_connection");
+
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ this->lock_,
+ false));
+
+ ConnectionCacheValue cacheval;
+ return (this->find_connection (key, cacheval) &&
+ cacheval.state () != ConnectionCacheValue::CST_CLOSED);
+ }
+
+ void ConnectionCache::close_all_connections()
+ {
+ INET_TRACE ("ConnectionCache::close_all_connections");
+
+ ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX,
+ guard_,
+ this->lock_));
+
+ map_iter_type iter = this->cache_map_.end ();
+ for (iter = this->cache_map_.begin ();
+ iter != this->cache_map_.end ();
+ ++iter)
+ {
+ if ((*iter).int_id_.state () == ConnectionCacheValue::CST_CLOSED)
+ {
+ connection_type* conn = (*iter).int_id_.connection ();
+ (*iter).int_id_.connection (0);
+ (*iter).int_id_.state (ConnectionCacheValue::CST_CLOSED);
+ delete conn;
+ }
+ }
+ this->cache_map_.unbind_all ();
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/ConnectionCache.h b/ACE/protocols/ace/INet/ConnectionCache.h
new file mode 100644
index 00000000000..0776fe295da
--- /dev/null
+++ b/ACE/protocols/ace/INet/ConnectionCache.h
@@ -0,0 +1,270 @@
+// $Id$
+
+/**
+ * @file ConnectionCache.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_INET_CONNECTION_CACHE_H
+#define ACE_INET_CONNECTION_CACHE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Synch_Traits.h"
+#include "ace/Thread_Mutex.h"
+#include "ace/Condition_Thread_Mutex.h"
+#include "ace/Null_Mutex.h"
+#include "ace/Hash_Map_Manager_T.h"
+#include "ace/INet/INet_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+
+ /**
+ * @class ACE_INet_ConnectionKey
+ *
+ * @brief Base class for connection keys.
+ *
+ */
+ class ACE_INET_Export ConnectionKey
+ {
+ public:
+ ConnectionKey ();
+ virtual ~ConnectionKey ();
+
+ bool operator ==(const ConnectionKey& key) const;
+
+ bool operator !=(const ConnectionKey& key) const;
+
+ virtual u_long hash () const = 0;
+
+ virtual ConnectionKey* duplicate () const = 0;
+
+ protected:
+ virtual bool equal (const ConnectionKey& key) const = 0;
+ };
+
+ /**
+ * @class ACE_INet_ConnectionCacheKey
+ *
+ * @brief Holder class for connection keys.
+ *
+ * Implements non-copying holder object used as ext_id in
+ * connection cache map.
+ */
+ class ConnectionCacheKey
+ {
+ public:
+ ConnectionCacheKey ();
+ ConnectionCacheKey (const ConnectionKey& key);
+ ConnectionCacheKey (const ConnectionCacheKey& cachekey);
+
+ ConnectionCacheKey& operator =(const ConnectionCacheKey& cachekey);
+
+ bool operator ==(const ConnectionCacheKey& cachekey) const;
+
+ bool operator !=(const ConnectionCacheKey& cachekey) const;
+
+ u_long hash () const;
+
+ const ConnectionKey& key () const;
+
+ private:
+ ConnectionKey* key_;
+ bool delete_key_;
+ };
+
+ /**
+ * @class ACE_INet_ConnectionHolder
+ *
+ * @brief Generic base for connection wrappers.
+ *
+ */
+ class ACE_INET_Export ConnectionHolder
+ {
+ public:
+ virtual ~ConnectionHolder ();
+ protected:
+ ConnectionHolder ();
+ };
+
+
+ /**
+ * @class ACE_INet_ConnectionFactory
+ *
+ * @brief Base class for connection factories.
+ *
+ * Derived classes create specific connections and
+ * return those for caching wrapped in a connection
+ * holder.
+ */
+ class ACE_INET_Export ConnectionFactory
+ {
+ public:
+ ConnectionFactory ();
+ virtual ~ConnectionFactory ();
+
+ virtual ConnectionHolder* create_connection (
+ const ConnectionKey& key) const = 0;
+ };
+
+
+ /**
+ * @class ACE_INet_ConnectionCacheValue
+ *
+ * @brief Holder class for connections.
+ *
+ * Implements non-copying holder object maintaining
+ * connection state used as int_id in connection
+ * cache map.
+ */
+ class ConnectionCacheValue
+ {
+ public:
+ enum State
+ {
+ CST_NONE,
+ CST_INIT,
+ CST_IDLE,
+ CST_BUSY,
+ CST_CLOSED
+ };
+
+ typedef ConnectionHolder connection_type;
+
+ ConnectionCacheValue ();
+ explicit ConnectionCacheValue (connection_type* connection);
+ ConnectionCacheValue (const ConnectionCacheValue& cacheval);
+
+ ConnectionCacheValue& operator =(const ConnectionCacheValue& cacheval);
+
+ bool operator == (const ConnectionCacheValue& cacheval) const;
+
+ bool operator != (const ConnectionCacheValue& cacheval) const;
+
+ connection_type* connection ();
+
+ const connection_type* connection () const;
+
+ void connection (connection_type* conn);
+
+ State state () const;
+
+ void state (State st);
+
+ private:
+ State state_;
+ connection_type* connection_;
+ };
+
+
+ /**
+ * @class ACE_INet_ConnectionCache
+ *
+ * @brief Implements a cache for INet connection objects.
+ *
+ */
+ class ACE_INET_Export ConnectionCache
+ {
+ public:
+ typedef ConnectionHolder connection_type;
+ typedef ConnectionFactory factory_type;
+
+ typedef ACE_Hash_Map_Manager_Ex <ConnectionCacheKey,
+ ConnectionCacheValue,
+ ACE_Hash<ConnectionCacheKey>,
+ ACE_Equal_To<ConnectionCacheKey>,
+ ACE_SYNCH_NULL_MUTEX> map_type;
+
+ typedef map_type::iterator map_iter_type;
+
+ typedef ACE_Hash_Map_Entry <ConnectionCacheKey,
+ ConnectionCacheValue> map_entry_type;
+
+ /// Constructor
+ ConnectionCache(size_t size = ACE_DEFAULT_MAP_SIZE);
+
+ /// Destructor
+ ~ConnectionCache ();
+
+ /// Claim a connection from the cache.
+ /// Creates a new connection using <connection_factory>
+ /// if the cache does not contain a matching entry for
+ /// <key>.
+ /// If <wait> is true and the state of the matching
+ /// connection is BUSY the method will block waiting for
+ /// connection to become available.
+ /// Returns true if a connection could be successfully
+ /// claimed and sets <connection> to the claimed connection.
+ /// Returns false otherwise.
+ bool claim_connection(const ConnectionKey& key,
+ connection_type*& connection,
+ const factory_type& connection_factory,
+ bool wait = true);
+
+ /// Release a previously claimed connection making it
+ /// available for renewed claiming.
+ /// Returns true if the connection was successfully released.
+ bool release_connection(const ConnectionKey& key,
+ connection_type* connection);
+
+ /// Close a previously claimed connection.
+ /// Deletes the actual connection object and marks the cache entry
+ /// as CLOSED.
+ /// Returns true is the connection was successfully closed.
+ bool close_connection(const ConnectionKey& key,
+ connection_type* connection);
+
+ /// Returns true if the cache contains a connection matching
+ /// <key>. Cache entries with state CLOSED are not considered.
+ /// Returns false otherwise.
+ bool has_connection (const ConnectionKey& key);
+
+ /// Unconditionally closes all active connections.
+ void close_all_connections ();
+
+ /// Returns the number of registered cache entries (including CLOSED).
+ size_t current_size () const;
+
+ private:
+ /// Updates cache entry state
+ bool set_connection (const ConnectionKey& key,
+ const ConnectionCacheValue& cacheval);
+
+ /// Attempts to claim an existing connection.
+ /// Returns true and sets <connection> if successful.
+ /// Returns false otherwise.
+ /// Does not wait when no connection available.
+ bool claim_existing_connection(const ConnectionKey& key,
+ connection_type*& connection,
+ ConnectionCacheValue::State& state);
+
+ /// Looks up a matching cache entry for <key> and updates
+ /// <cacheval> with the entry state if found.
+ /// Returns true if found, false otherwise.
+ bool find_connection (const ConnectionKey& key,
+ ConnectionCacheValue& cacheval);
+
+
+ mutable ACE_SYNCH_MUTEX lock_;
+ ACE_SYNCH_CONDITION condition_;
+ map_type cache_map_;
+ };
+
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/ConnectionCache.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_CONNECTION_CACHE_H */
diff --git a/ACE/protocols/ace/INet/ConnectionCache.inl b/ACE/protocols/ace/INet/ConnectionCache.inl
new file mode 100644
index 00000000000..1f276e49dde
--- /dev/null
+++ b/ACE/protocols/ace/INet/ConnectionCache.inl
@@ -0,0 +1,98 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ ACE_INLINE
+ bool ConnectionKey::operator ==(const ConnectionKey& key) const
+ {
+ return this->equal (key);
+ }
+
+ ACE_INLINE
+ bool ConnectionKey::operator !=(const ConnectionKey& key) const
+ {
+ return !this->equal (key);
+ }
+
+ ACE_INLINE
+ bool ConnectionCacheKey::operator ==(const ConnectionCacheKey& cachekey) const
+ {
+ return this->key_ ? (this->key () == cachekey.key ()) : !cachekey.key_;
+ }
+
+ ACE_INLINE
+ bool ConnectionCacheKey::operator !=(const ConnectionCacheKey& cachekey) const
+ {
+ return !(*this == cachekey);
+ }
+
+ ACE_INLINE
+ const ConnectionKey& ConnectionCacheKey::key () const
+ {
+ return *this->key_;
+ }
+
+ ACE_INLINE
+ bool ConnectionCacheValue::operator == (const ConnectionCacheValue& cacheval) const
+ {
+ return this->connection () == cacheval.connection () &&
+ this->state () == cacheval.state ();
+ }
+
+ ACE_INLINE
+ bool ConnectionCacheValue::operator != (const ConnectionCacheValue& cacheval) const
+ {
+ return !((*this) == cacheval);
+ }
+
+ ACE_INLINE
+ ConnectionCacheValue::connection_type* ConnectionCacheValue::connection ()
+ {
+ return this->connection_;
+ }
+
+ ACE_INLINE
+ const ConnectionCacheValue::connection_type* ConnectionCacheValue::connection () const
+ {
+ return this->connection_;
+ }
+
+ ACE_INLINE
+ void ConnectionCacheValue::connection (connection_type* conn)
+ {
+ this->connection_ = conn;
+ }
+
+ ACE_INLINE
+ ConnectionCacheValue::State ConnectionCacheValue::state () const
+ {
+ return this->state_;
+ }
+
+ ACE_INLINE
+ void ConnectionCacheValue::state (State st)
+ {
+ this->state_ = st;
+ }
+
+ ACE_INLINE
+ size_t ConnectionCache::current_size () const
+ {
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ this->lock_,
+ false));
+ return this->cache_map_.current_size ();
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_ClientRequestHandler.cpp b/ACE/protocols/ace/INet/FTP_ClientRequestHandler.cpp
new file mode 100644
index 00000000000..1f9a8775f55
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_ClientRequestHandler.cpp
@@ -0,0 +1,713 @@
+// $Id$
+
+#include "ace/INet/FTP_ClientRequestHandler.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/FTP_ClientRequestHandler.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/String_IOStream.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/OS_NS_ctype.h"
+#include "ace/Connector.h"
+#include "ace/Acceptor.h"
+#include "ace/SOCK_Acceptor.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+
+ ClientRequestHandler::SessionHolder::SessionHolder ()
+ : session_ ()
+ {
+ }
+
+ ClientRequestHandler::SessionHolder::~SessionHolder()
+ {
+ }
+
+ ClientRequestHandler::SessionFactory::SessionFactory ()
+ {
+ }
+
+ ClientRequestHandler::SessionFactory::~SessionFactory ()
+ {
+ }
+
+ ACE::INet::ConnectionHolder*
+ ClientRequestHandler::SessionFactory::create_connection (
+ const ACE::INet::ConnectionKey& key) const
+ {
+ INET_TRACE ("FTP::ClientRequestHandler::SessionFactory::create_connection");
+
+ const INetConnectionKey& ikey = dynamic_cast<const INetConnectionKey&> (key);
+
+ SessionHolder* session_holder = 0;
+ ACE_NEW_RETURN (session_holder,
+ SessionHolder (),
+ 0);
+ ACE_Auto_Ptr<SessionHolder> session_safe_ref (session_holder);
+
+ (*session_holder)->set_host (ikey.host (), ikey.port ());
+
+ if ((*session_holder)->connect (true))
+ {
+ return session_safe_ref.release ();
+ }
+
+ return 0;
+ }
+
+ ClientRequestHandler::Authentication::Authentication (
+ const ACE_CString& realm,
+ ACE_CString& user,
+ ACE_CString& pw)
+ : AuthenticationBase (),
+ realm_ (realm),
+ user_ (user),
+ password_ (pw)
+ {
+ }
+
+ ClientRequestHandler::Authentication::~Authentication () {}
+
+ const ACE_CString& ClientRequestHandler::Authentication::scheme () const
+ {
+ return URL::protocol ();
+ }
+
+ const ACE_CString& ClientRequestHandler::Authentication::realm () const
+ {
+ return this->realm_;
+ }
+
+ const ACE_CString& ClientRequestHandler::Authentication::user () const
+ {
+ return this->user_;
+ }
+
+ void ClientRequestHandler::Authentication::user (const ACE_CString& usr)
+ {
+ this->user_ = usr;
+ }
+
+ const ACE_CString& ClientRequestHandler::Authentication::password () const
+ {
+ return this->password_;
+ }
+
+ void ClientRequestHandler::Authentication::password (const ACE_CString& pw)
+ {
+ this->password_ = pw;
+ }
+
+ const ACE_CString ClientRequestHandler::anonymous_user_ = "anonymous";
+ const ACE_CString ClientRequestHandler::empty_;
+
+ ClientRequestHandler::ClientRequestHandler (bool passive_mode)
+ : session_ (0),
+ use_passive_mode_ (passive_mode),
+ active_port_ (0),
+ out_data_stream_ (0),
+ in_data_stream_ (0),
+ transfer_active_ (false)
+ {
+ this->out_data_stream_.set_interceptor (*this);
+ this->in_data_stream_.set_interceptor (*this);
+ }
+
+ ClientRequestHandler::~ClientRequestHandler ()
+ {
+ this->release_connection ();
+ }
+
+ bool ClientRequestHandler::is_response_ok () const
+ {
+ return this->response_.is_completed_ok () ||
+ (this->response_.is_preliminary_ok () &&
+ !this->in_data_stream_.bad ());
+ }
+
+ std::istream& ClientRequestHandler::handle_open_request (
+ const ACE::INet::URL_Base& url)
+ {
+ const URL& ftp_url = dynamic_cast<const URL&> (url);
+ return this->handle_get_request (ftp_url);
+ }
+
+ std::istream& ClientRequestHandler::handle_get_request (
+ const URL& ftp_url,
+ bool binary)
+ {
+ if (this->initialize_connection (ftp_url.get_host (),
+ ftp_url.get_port ()))
+ {
+ bool rc = true;
+ if (this->session ()->is_new_connection () ||
+ (!ftp_url.get_user_info ().empty () &&
+ ftp_url.get_user_info () != this->current_user_))
+ {
+ if (!this->session ()->is_new_connection ())
+ rc = this->logout ();
+
+ if (rc)
+ {
+ ACE_CString user = ftp_url.get_user_info ().empty () ?
+ anonymous_user_ : ftp_url.get_user_info ();
+ ACE_CString password = user;
+ rc = this->handle_credentials (ftp_url, user, password);
+ if (rc) rc = this->login (user, password);
+ }
+ }
+
+ if (rc) rc = this->finish_transfer ();
+
+ if (rc)
+ {
+ stream_type* data_stream =
+ this->start_download (ftp_url.get_path (), binary);
+ if (data_stream)
+ {
+ // no need to check prev stream since we just called finish_transfer
+ // to clean everything up
+ this->in_data_stream_.set_stream (data_stream);
+ }
+ else
+ {
+ rc = false;
+ }
+ }
+
+ if (!rc)
+ {
+ this->close_connection ();
+
+ this->handle_request_error(ftp_url);
+ }
+ }
+ else
+ {
+ this->handle_connection_error (ftp_url);
+ }
+
+ return this->response_stream ();
+ }
+
+ void ClientRequestHandler::on_eof ()
+ {
+ this->finish_transfer ();
+ }
+
+ bool ClientRequestHandler::initialize_connection (const ACE_CString& host,
+ u_short port)
+ {
+ static const SessionFactory session_factory;
+
+ ACE::INet::ConnectionHolder* pch = 0;
+ if (this->connection_cache ().claim_connection (INetConnectionKey (host, port),
+ pch,
+ session_factory))
+ {
+ this->session (dynamic_cast<SessionHolder*> (pch));
+ return true;
+ }
+ else
+ return false;
+ }
+
+ bool ClientRequestHandler::handle_credentials (const URL& url,
+ ACE_CString& user,
+ ACE_CString& password)
+ {
+ Authentication authentication (url.get_host(),
+ user,
+ password);
+ return URL::authenticate (authentication);
+ }
+
+ void ClientRequestHandler::handle_request_error (const URL& /*url*/)
+ {
+ }
+
+ void ClientRequestHandler::handle_connection_error (const URL& /*url*/)
+ {
+ }
+
+ void ClientRequestHandler::release_connection ()
+ {
+ if (this->session_)
+ {
+ this->connection_cache ().release_connection (
+ INetConnectionKey (this->session ()->get_host (),
+ this->session ()->get_port ()),
+ this->session_);
+ this->session_ = 0;
+ }
+ }
+
+ void ClientRequestHandler::close_connection ()
+ {
+ if (this->session_)
+ {
+ this->connection_cache ().close_connection (
+ INetConnectionKey (this->session ()->get_host (),
+ this->session ()->get_port ()),
+ this->session_);
+ this->session_ = 0;
+ }
+ }
+
+ void ClientRequestHandler::quit_connection ()
+ {
+ this->logout ();
+ this->close_connection ();
+ }
+
+ bool ClientRequestHandler::logout ()
+ {
+ bool rc = true;
+ if (this->session ()->is_connected ())
+ {
+ try
+ {
+ this->finish_transfer ();
+ }
+ catch (...)
+ {
+ }
+ this->process_command (Request::FTP_QUIT);
+ rc = this->response_.is_completed_ok ();
+ this->current_user_ = anonymous_user_;
+ this->session ()->close ();
+ }
+ return rc;
+ }
+
+ bool ClientRequestHandler::login (const ACE_CString& user,
+ const ACE_CString& password)
+ {
+ // read startup message
+ this->session ()->receive_response (this->response_);
+ if (this->response_.is_completed_ok ())
+ {
+ // send user name
+ this->process_command (Request::FTP_USER, user);
+ if (this->response_.is_intermediate_ok ())
+ {
+ this->process_command (Request::FTP_PASS, password);
+ }
+ }
+ return this->response_.is_completed_ok ();
+ }
+
+ bool ClientRequestHandler::is_valid_path (const ACE_CString& path)
+ {
+ return this->process_command (Request::FTP_STAT, path) == Response::COMPLETED_OK;
+ }
+
+ bool ClientRequestHandler::is_file (const ACE_CString& path)
+ {
+ return (this->is_valid_path (path) &&
+ this->process_command (Request::FTP_CWD, path) != Response::COMPLETED_OK);
+ }
+
+ bool ClientRequestHandler::is_dir (const ACE_CString& path)
+ {
+ return (this->is_valid_path (path) &&
+ this->process_command (Request::FTP_CWD, path) == Response::COMPLETED_OK);
+ }
+
+ bool ClientRequestHandler::set_filetype (bool binary)
+ {
+ return this->process_command (Request::FTP_TYPE, binary ? "I" : "A") == Response::COMPLETED_OK;
+ }
+
+ ClientRequestHandler::stream_type*
+ ClientRequestHandler::start_download (const ACE_CString& path, bool binary)
+ {
+ if (path.empty () || this->is_dir (path))
+ {
+ if (this->set_filetype (false))
+ {
+ return this->open_data_connection (Request::FTP_LIST, path);
+ }
+ }
+ else
+ {
+ if (this->set_filetype (binary))
+ {
+ return this->open_data_connection (Request::FTP_RETR, path);
+ }
+ }
+ return 0;
+ }
+
+ ClientRequestHandler::stream_type*
+ ClientRequestHandler::start_upload (const ACE_CString& path, bool binary)
+ {
+ if (this->set_filetype (binary))
+ {
+ return this->open_data_connection (Request::FTP_STOR, path);
+ }
+ return 0;
+ }
+
+ bool ClientRequestHandler::finish_transfer ()
+ {
+ if (transfer_active_)
+ {
+ stream_type* old_stream = dynamic_cast<stream_type*> (this->in_data_stream_.set_stream (0));
+ if (old_stream)
+ {
+ // decrease ref count to 1
+ const_cast<connection_type&> (old_stream->stream ()).remove_reference ();
+ // also removes last ref count on stream handler
+ delete old_stream;
+ }
+ old_stream = dynamic_cast<stream_type*> (this->out_data_stream_.set_stream (0));
+ {
+ // decrease ref count to 1
+ const_cast<connection_type&> (old_stream->stream ()).remove_reference ();
+ // also removes last ref count on stream handler
+ delete old_stream;
+ }
+
+ this->transfer_active_ = false;
+
+ this->session ()->receive_response (this->response_);
+ return this->response_.is_completed_ok ();
+ }
+ return true;
+ }
+
+ bool ClientRequestHandler::abort_transfer ()
+ {
+ if (transfer_active_)
+ {
+ this->session ()->send_interrupt ();
+ this->process_command (Request::FTP_ABOR);
+ if (this->response_.status () == 426)
+ this->session ()->receive_response (this->response_);
+
+ stream_type* old_stream = dynamic_cast<stream_type*> (this->in_data_stream_.set_stream (0));
+ {
+ // decrease ref count to 1
+ const_cast<connection_type&> (old_stream->stream ()).remove_reference ();
+ // also removes last ref count on stream handler
+ delete old_stream;
+ }
+ old_stream = dynamic_cast<stream_type*> (this->out_data_stream_.set_stream (0));
+ {
+ // decrease ref count to 1
+ const_cast<connection_type&> (old_stream->stream ()).remove_reference ();
+ // also removes last ref count on stream handler
+ delete old_stream;
+ }
+
+ this->transfer_active_ = false;
+
+ return this->response_.is_completed_ok ();
+ }
+ return true;
+ }
+
+ Response::StatusType
+ ClientRequestHandler::process_command (const ACE_CString& cmd,
+ const ACE_CString& arg)
+ {
+ if (this->session ()->send_request (this->request_(cmd) << arg))
+ {
+ this->session ()->receive_response (this->response_);
+ }
+ else
+ {
+ this->response_(0);
+ }
+ return this->response_.status_type ();
+ }
+
+ ClientRequestHandler::stream_type*
+ ClientRequestHandler::open_data_connection (const ACE_CString& cmd,
+ const ACE_CString& arg)
+ {
+ if (this->use_passive_mode_)
+ {
+ // get address for passive data connection
+ ACE_INET_Addr data_addr;
+ if (this->get_passive_address (data_addr))
+ {
+ // establish data connection
+
+ // copy sync settings from session
+ unsigned long f_reactor =
+ this->session ()->is_reactive() ? ACE_Synch_Options::USE_REACTOR : 0;
+ ACE_Synch_Options sync_opt (ACE_Synch_Options::USE_TIMEOUT | f_reactor,
+ this->session ()->timeout ());
+
+ typedef ACE_Connector<SessionHolder::session_type::connection_type,
+ ACE_SOCK_CONNECTOR> connector_type;
+ connector_type connector;
+
+ // create connection object (stream handler)
+ SessionHolder::session_type::connection_type* data_connection = 0;
+ ACE_NEW_NORETURN (data_connection,
+ SessionHolder::session_type::connection_type(sync_opt));
+ if (data_connection == 0)
+ {
+ return 0;
+ }
+
+ // connect to data connection address
+ if (connector.connect (data_connection,
+ data_addr,
+ ACE_Synch_Options (0,
+ this->session ()->timeout ())) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_FTP_ClientRequestHandler::open_data_connection - ")
+ ACE_TEXT ("failed to connect to %C:%d\n"),
+ ACE_OS::last_error (),
+ data_addr.get_host_name (),
+ data_addr.get_port_number ()));
+ // as the connection was dynamically allocated
+ // the connector causes it to be destroyed after
+ // the connection failure
+ return 0;
+ }
+
+ // enable ref counting so we can control when to destroy
+ data_connection->reference_counting_policy ().value (
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+
+ // create io stream for connection
+ stream_type* data_stream = 0;
+ ACE_NEW_NORETURN (data_stream,
+ stream_type (data_connection));
+ if (data_stream)
+ {
+ if (this->process_command (cmd, arg) == Response::PRELIM_OK)
+ return data_stream;
+
+ delete data_stream; // decreases ref count on connection
+ }
+ // remove last ref count -> delete
+ data_connection->remove_reference ();
+ }
+ }
+ else
+ {
+ // address for active data connection
+ ACE_INET_Addr data_addr;
+ this->session ()->get_local_addr (data_addr);
+ data_addr.set_port_number (this->active_port_);
+
+ // copy sync settings from session
+ unsigned long f_reactor =
+ this->session ()->is_reactive() ? ACE_Synch_Options::USE_REACTOR : 0;
+ ACE_Synch_Options sync_opt (ACE_Synch_Options::USE_TIMEOUT | f_reactor,
+ this->session ()->timeout ());
+
+ typedef ACE_Oneshot_Acceptor<SessionHolder::session_type::connection_type,
+ ACE_SOCK_ACCEPTOR> acceptor_type;
+ acceptor_type acceptor;
+
+ // start data connection acceptor listening and retrieve actual listening address
+ if (acceptor.open (data_addr) == 0 &&
+ acceptor.acceptor ().get_local_addr (data_addr) == 0)
+ {
+ // send listen address to peer followed by data command to execute
+ if (this->send_active_address (data_addr) &&
+ this->process_command (cmd, arg) == Response::PRELIM_OK)
+ {
+ // create connection object (stream handler)
+ SessionHolder::session_type::connection_type* data_connection = 0;
+ ACE_NEW_NORETURN (data_connection,
+ SessionHolder::session_type::connection_type(sync_opt));
+ if (data_connection == 0)
+ {
+ return 0;
+ }
+
+ // accept data connection from peer
+ if (acceptor.accept (data_connection,
+ 0,
+ ACE_Synch_Options (ACE_Synch_Options::USE_TIMEOUT,
+ this->session ()->timeout ())) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_FTP_ClientRequestHandler::open_data_connection - ")
+ ACE_TEXT ("failed to accept connection to %C:%d\n"),
+ ACE_OS::last_error (),
+ data_addr.get_host_name (),
+ data_addr.get_port_number ()));
+
+ // as the connection was dynamically allocated
+ // the acceptor causes it to be destroyed after
+ // the connection failure
+ return 0;
+ }
+
+ // enable ref counting so we can control when to destroy
+ data_connection->reference_counting_policy ().value (
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+
+ // create io stream for connection
+ stream_type* data_stream = 0;
+ ACE_NEW_NORETURN (data_stream,
+ stream_type (data_connection));
+ if (data_stream)
+ {
+ return data_stream;
+ }
+ // remove last ref count -> delete
+ data_connection->remove_reference ();
+ }
+ }
+ }
+ return 0;
+ }
+
+
+ bool
+ ClientRequestHandler::get_passive_address (ACE_INET_Addr& addr)
+ {
+ // can we use the RFC 2428 extensions?
+ if (this->session ()->supports_ftp_extensions ())
+ {
+ if (this->process_command (Request::FTP_EPSV) == Response::COMPLETED_OK)
+ {
+ return this->parse_ext_address (this->response_.response ()[0],
+ addr);
+ }
+ // flag RFC 2428 extensions as unsupported
+ this->session ()->set_ftp_extension_support (false);
+ }
+ // use 'old' command
+ if (this->process_command (Request::FTP_PASV) == Response::COMPLETED_OK)
+ {
+ return this->parse_address (this->response_.response ()[0],
+ addr);
+ }
+ return false;
+ }
+
+ bool
+ ClientRequestHandler::parse_address (const ACE_CString& str, ACE_INET_Addr& addr)
+ {
+ static const int eof_ = std::char_traits<char>::eof ();
+
+ ACE::IOS::CString_OStream sos_host;
+ u_short port_hi = 0, port_lo = 0;
+
+ ACE::IOS::CString_IStream sis (str);
+ sis.ignore (str.length (), '(');
+ int ch = sis.get ();
+ if (ACE_OS::ace_isdigit (ch))
+ {
+ for (int i=0; i<4 ;++i)
+ {
+ if (ch == ',')
+ {
+ sos_host.put ('.');
+ ch = sis.get ();
+ }
+ while (ch != eof_ && ACE_OS::ace_isdigit (ch))
+ {
+ sos_host.put (ch);
+ ch = sis.get ();
+ }
+ }
+ if (ch == ',')
+ {
+ sis >> port_hi;
+ ch = sis.get ();
+ if (ch == ',')
+ {
+ sis >> port_lo;
+
+ u_short port = port_hi*256 + port_lo;
+ addr.set (port, sos_host.str ().c_str ());
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ bool
+ ClientRequestHandler::parse_ext_address (const ACE_CString& str, ACE_INET_Addr& addr)
+ {
+ static const int eof_ = std::char_traits<char>::eof ();
+
+ ACE::IOS::CString_IStream sis (str);
+ sis.ignore (str.length (), '(');
+ int ch = sis.get ();
+ if (ch != eof_)
+ {
+ int delim = ch;
+ sis.ignore (str.length (), delim);
+ sis.ignore (str.length (), delim);
+ if (sis.peek () != eof_)
+ {
+ u_short port = 0;
+ sis >> port;
+ addr.set (port, this->session ()->get_host ().c_str ());
+ return true;
+ }
+ }
+ return false;
+ }
+
+ bool
+ ClientRequestHandler::send_active_address (const ACE_INET_Addr& addr)
+ {
+ ACE::IOS::CString_OStream arg;
+ char ip_buf[128];
+ if (addr.get_host_addr (ip_buf, sizeof(ip_buf)) == 0)
+ {
+ return false;
+ }
+ u_short port = addr.get_port_number ();
+ // can we use the RFC 2428 extensions?
+ if (this->session ()->supports_ftp_extensions ())
+ {
+ arg << '|'
+ << (addr.get_type () == AF_INET ? '1' : '2')
+ << '|'
+ << (&ip_buf[0])
+ << '|'
+ << port
+ << '|';
+ if (this->process_command (Request::FTP_EPRT, arg.str ()) == Response::COMPLETED_OK)
+ {
+ return true;
+ }
+ // flag RFC 2428 extensions as unsupported
+ this->session ()->set_ftp_extension_support (false);
+
+ arg.clear ();
+ }
+ // use 'old' command
+ ACE_CString ip_addr = addr.get_host_addr (ip_buf, sizeof(ip_buf));
+ ACE_CString::size_type pos;
+ while ((pos = ip_addr.find ('.')) != ACE_CString::npos)
+ {
+ ip_addr[pos] = ',';
+ }
+ arg << ip_addr << ','
+ << (port / 256) // port hi
+ << ','
+ << (port % 256); // port lo
+ return (this->process_command (Request::FTP_PORT, arg.str ()) == Response::COMPLETED_OK);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_ClientRequestHandler.h b/ACE/protocols/ace/INet/FTP_ClientRequestHandler.h
new file mode 100644
index 00000000000..e011823b49e
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_ClientRequestHandler.h
@@ -0,0 +1,234 @@
+// $Id$
+
+/**
+ * @file FTP_ClientRequestHandler.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_FTP_CLIENT_REQUEST_HANDLER_H
+#define ACE_FTP_CLIENT_REQUEST_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Synch_Traits.h"
+#include "ace/Thread_Mutex.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/IOS_util.h"
+#include "ace/INet/StreamInterceptor.h"
+#include "ace/INet/ClientRequestHandler.h"
+#include "ace/INet/FTP_Request.h"
+#include "ace/INet/FTP_Response.h"
+#include "ace/INet/FTP_Session.h"
+#include "ace/INet/FTP_URL.h"
+#include "ace/INet/FTP_IOStream.h"
+#include "ace/INet/Sock_IOStream.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace FTP
+ {
+ /**
+ * @class ACE_FTP_ClientRequestHandler
+ *
+ * @brief This class implements clientside request handling
+ * for FTP URLs.
+ *
+ * The class supports the FTP protocol as specified in RFCs 959
+ * and 2428.
+ */
+ class ACE_INET_Export ClientRequestHandler
+ : public ACE::INet::ClientINetRequestHandler,
+ public ACE::IOS::StreamInterceptor
+ {
+ public:
+ ClientRequestHandler (bool passive_mode = true);
+ virtual ~ClientRequestHandler ();
+
+ bool uses_passive_mode () const;
+
+ void use_passive_mode ();
+
+ void use_active_mode (u_short port = 0);
+
+ u_short uses_active_port () const;
+
+ virtual Request& request ();
+
+ virtual const Request& request () const;
+
+ virtual Response& response ();
+
+ virtual const Response& response () const;
+
+ std::ostream& request_stream ();
+
+ virtual std::istream& response_stream ();
+
+ virtual bool is_response_ok () const;
+
+ virtual std::istream& handle_open_request (const ACE::INet::URL_Base& url);
+
+ virtual std::istream& handle_get_request (const URL& url, bool binary=true);
+/*
+ virtual std::ostream& start_put_request (const URL& url, bool binary=true);
+
+ virtual bool finish_put_request ();
+*/
+ void quit_connection ();
+
+ static const ACE_CString anonymous_user_;
+
+ protected:
+ static const ACE_CString empty_;
+
+ typedef Session_T<ACE_SYNCH>::connection_type connection_type;
+ typedef ACE::IOS::Sock_IOStreamBase<ACE_SYNCH> stream_type;
+
+ virtual void on_eof ();
+
+ class Authentication
+ : public ACE::INet::AuthenticationBase
+ {
+ public:
+ Authentication (const ACE_CString& realm,
+ ACE_CString& user,
+ ACE_CString& pw);
+
+ virtual ~Authentication ();
+
+ virtual const ACE_CString& scheme () const;
+
+ virtual const ACE_CString& realm () const;
+
+ virtual const ACE_CString& user () const;
+
+ virtual void user (const ACE_CString& usr);
+
+ virtual const ACE_CString& password () const;
+
+ virtual void password (const ACE_CString& pw);
+
+ private:
+ const ACE_CString& realm_;
+ ACE_CString& user_;
+ ACE_CString& password_;
+ };
+
+ class SessionHolder
+ : public ACE::INet::ConnectionHolder
+ {
+ public:
+ typedef Session_T<ACE_SYNCH> session_type;
+
+ SessionHolder ();
+ virtual ~SessionHolder();
+
+ session_type& operator *();
+ session_type* operator ->();
+
+ private:
+ session_type session_;
+ };
+
+ class SessionFactory
+ : public ACE::INet::ConnectionFactory
+ {
+ public:
+ SessionFactory ();
+ virtual ~SessionFactory ();
+
+ virtual ACE::INet::ConnectionHolder* create_connection (
+ const ACE::INet::ConnectionKey& key) const;
+ };
+
+ SessionHolder& session ();
+
+ void session (SessionHolder* session);
+
+ virtual bool initialize_connection (const ACE_CString& host,
+ u_short port);
+
+ virtual bool handle_credentials (const URL& url,
+ ACE_CString& user,
+ ACE_CString& password);
+
+ virtual void handle_request_error (const URL& url);
+
+ virtual void handle_connection_error (const URL& url);
+
+ void release_connection ();
+
+ void close_connection ();
+
+ /*
+ * FTP protocol helpers
+ */
+
+ bool login (const ACE_CString& user, const ACE_CString& password);
+
+ bool logout ();
+
+ bool is_valid_path (const ACE_CString& path);
+
+ bool is_file (const ACE_CString& path);
+
+ bool is_dir (const ACE_CString& path);
+
+ bool set_filetype (bool binary);
+
+ stream_type* start_download (const ACE_CString& path, bool binary);
+
+ stream_type* start_upload (const ACE_CString& path, bool binary);
+
+ bool finish_transfer ();
+
+ bool abort_transfer ();
+
+ Response::StatusType process_command (const ACE_CString& cmd,
+ const ACE_CString& arg = empty_);
+
+ stream_type* open_data_connection (const ACE_CString& cmd,
+ const ACE_CString& arg);
+
+ bool get_passive_address (ACE_INET_Addr& addr);
+
+ bool parse_address (const ACE_CString& str, ACE_INET_Addr& addr);
+
+ bool parse_ext_address (const ACE_CString& str, ACE_INET_Addr& addr);
+
+ bool send_active_address (const ACE_INET_Addr& addr);
+
+ private:
+ Request request_;
+ Response response_;
+ SessionHolder* session_;
+ bool use_passive_mode_;
+ u_short active_port_;
+
+ OStream out_data_stream_;
+ IStream in_data_stream_;
+ bool transfer_active_;
+
+ ACE_CString current_user_;
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/FTP_ClientRequestHandler.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_CLIENT_REQUEST_HANDLER_H */
diff --git a/ACE/protocols/ace/INet/FTP_ClientRequestHandler.inl b/ACE/protocols/ace/INet/FTP_ClientRequestHandler.inl
new file mode 100644
index 00000000000..efaca8aadae
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_ClientRequestHandler.inl
@@ -0,0 +1,105 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+ ACE_INLINE
+ ClientRequestHandler::SessionHolder::session_type& ClientRequestHandler::SessionHolder::operator *()
+ {
+ return this->session_;
+ }
+
+ ACE_INLINE
+ ClientRequestHandler::SessionHolder::session_type* ClientRequestHandler::SessionHolder::operator -> ()
+ {
+ return &this->session_;
+ }
+
+ ACE_INLINE
+ bool ClientRequestHandler::uses_passive_mode () const
+ {
+ return this->use_passive_mode_;
+ }
+
+ ACE_INLINE
+ void ClientRequestHandler::use_passive_mode ()
+ {
+ this->use_passive_mode_ = true;
+ }
+
+ ACE_INLINE
+ void ClientRequestHandler::use_active_mode (u_short port)
+ {
+ this->use_passive_mode_ = false;
+ this->active_port_ = port;
+ }
+
+ ACE_INLINE
+ u_short ClientRequestHandler::uses_active_port () const
+ {
+ return this->active_port_;
+ }
+
+
+ ACE_INLINE
+ Request& ClientRequestHandler::request ()
+ {
+ return this->request_;
+ }
+
+ ACE_INLINE
+ const Request& ClientRequestHandler::request () const
+ {
+ return this->request_;
+ }
+
+ ACE_INLINE
+ Response& ClientRequestHandler::response ()
+ {
+ return this->response_;
+ }
+
+ ACE_INLINE
+ const Response& ClientRequestHandler::response () const
+ {
+ return this->response_;
+ }
+
+ ACE_INLINE
+ ClientRequestHandler::SessionHolder& ClientRequestHandler::session ()
+ {
+ return *this->session_;
+ }
+
+ ACE_INLINE
+ void ClientRequestHandler::session (SessionHolder* session)
+ {
+ this->session_ = session;
+ }
+
+ ACE_INLINE
+ std::ostream& ClientRequestHandler::request_stream ()
+ {
+ if (this->session_)
+ return this->out_data_stream_;
+ else
+ return ACE::IOS::Null::out_stream_;
+ }
+
+ ACE_INLINE
+ std::istream& ClientRequestHandler::response_stream ()
+ {
+ if (this->session_)
+ return this->in_data_stream_;
+ else
+ return ACE::IOS::Null::in_stream_;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_IOStream.cpp b/ACE/protocols/ace/INet/FTP_IOStream.cpp
new file mode 100644
index 00000000000..3d6406f584f
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_IOStream.cpp
@@ -0,0 +1,107 @@
+// $Id$
+
+#include "ace/INet/FTP_IOStream.h"
+#include "ace/INet/IOS_util.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/FTP_IOStream.inl"
+#endif
+
+#include "ace/Truncate.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+
+ StreamBuffer::StreamBuffer (std::iostream * stream)
+ : ACE::IOS::BufferedStreamBuffer (BUFFER_SIZE,
+ std::ios::in | std::ios::out),
+ stream_ (stream)
+ {
+ }
+
+ StreamBuffer::~StreamBuffer ()
+ {
+ }
+
+ std::iostream* StreamBuffer::set_stream (std::iostream * stream)
+ {
+ std::iostream * old_stream = this->stream_;
+ this->stream_ = stream;
+ this->reset_buffers ();
+ return old_stream;
+ }
+
+ int StreamBuffer::read_from_stream (char* buffer, std::streamsize length)
+ {
+ if (this->stream_ == 0) return -1;
+ this->stream_->read (buffer, length);
+ return ACE_Utils::truncate_cast<int> (this->stream_->gcount ());
+ }
+
+ int StreamBuffer::write_to_stream (const char* buffer, std::streamsize length)
+ {
+ if (this->stream_ == 0) return -1;
+ this->stream_->write (buffer, length);
+ return this->stream_->good () ? ACE_Utils::truncate_cast<int> (length) : -1;
+ }
+
+ int StreamBuffer::sync ()
+ {
+ if (this->stream_ == 0) return -1;
+ if (ACE::IOS::BufferedStreamBuffer::sync () == -1)
+ return -1;
+ return this->stream_->sync ();
+ }
+
+ IOS::IOS (std::iostream * stream)
+ : streambuf_ (stream)
+ {
+ ace_ios_init (&this->streambuf_);
+ }
+
+ IOS::~IOS ()
+ {
+ try
+ {
+ this->streambuf_.sync();
+ }
+ catch (...)
+ {
+ }
+ }
+
+ std::iostream* IOS::set_stream (std::iostream* stream)
+ {
+ std::iostream* old_stream = this->rdbuf ()->set_stream (stream);
+ this->clear ();
+ return old_stream;
+ }
+
+ OStream::OStream(std::iostream * stream)
+ : IOS (stream), std::ostream (&streambuf_)
+ {
+ }
+
+ OStream::~OStream()
+ {
+ }
+
+ IStream::IStream(std::iostream * stream)
+ : IOS (stream), std::istream (&streambuf_)
+ {
+ }
+
+ IStream::~IStream()
+ {
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_IOStream.h b/ACE/protocols/ace/INet/FTP_IOStream.h
new file mode 100644
index 00000000000..908cfc9b06b
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_IOStream.h
@@ -0,0 +1,127 @@
+// $Id$
+
+/**
+ * @file FTP_IOStream.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_FTP_IOSTREAM_H
+#define ACE_FTP_IOSTREAM_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/BufferedStreamBuffer.h"
+#include <ostream>
+#include <istream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace FTP
+ {
+
+ /**
+ * @class ACE_FTP_StreamBuffer
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export StreamBuffer
+ : public ACE::IOS::BufferedStreamBuffer
+ {
+ public:
+ StreamBuffer (std::iostream * stream);
+ virtual ~StreamBuffer ();
+
+ virtual int sync ();
+
+ std::iostream* set_stream (std::iostream * stream);
+
+ protected:
+ enum
+ {
+ BUFFER_SIZE = 4096
+ };
+
+ virtual int read_from_stream (char* buffer, std::streamsize length);
+
+ virtual int write_to_stream (const char* buffer, std::streamsize length);
+
+ private:
+ std::iostream * stream_;
+ };
+
+
+ /**
+ * @class ACE_FTP_IOS
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export IOS
+ : public virtual std::ios
+ {
+ public:
+ IOS (std::iostream* stream);
+ ~IOS ();
+
+ StreamBuffer* rdbuf ();
+
+ std::iostream* set_stream (std::iostream* stream);
+
+ protected:
+ StreamBuffer streambuf_;
+ };
+
+ /**
+ * @class ACE_FTP_OStream
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export OStream
+ : public IOS, public std::ostream
+ {
+ public:
+ explicit OStream(std::iostream* stream);
+ ~OStream();
+
+ void set_interceptor (StreamBuffer::interceptor_type& interceptor);
+ };
+
+ /**
+ * @class ACE_FTP_IStream
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export IStream
+ : public IOS, public std::istream
+ {
+ public:
+ explicit IStream(std::iostream* stream);
+ ~IStream();
+
+ void set_interceptor (StreamBuffer::interceptor_type& interceptor);
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/FTP_IOStream.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_FTP_IOSTREAM_H */
diff --git a/ACE/protocols/ace/INet/FTP_IOStream.inl b/ACE/protocols/ace/INet/FTP_IOStream.inl
new file mode 100644
index 00000000000..d365c3eaeed
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_IOStream.inl
@@ -0,0 +1,33 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+
+ ACE_INLINE
+ StreamBuffer* IOS::rdbuf ()
+ {
+ return &this->streambuf_;
+ }
+
+ ACE_INLINE
+ void OStream::set_interceptor (StreamBuffer::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ ACE_INLINE
+ void IStream::set_interceptor (StreamBuffer::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_Request.cpp b/ACE/protocols/ace/INet/FTP_Request.cpp
new file mode 100644
index 00000000000..57d2f6f17c6
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Request.cpp
@@ -0,0 +1,152 @@
+// $Id$
+
+#include "ace/String_Base.h"
+#include "ace/OS_NS_ctype.h"
+#include "ace/INet/FTP_Request.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/FTP_Request.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/String_IOStream.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+
+ const ACE_CString Request::FTP_USER = "USER";
+ const ACE_CString Request::FTP_PASS = "PASS";
+ const ACE_CString Request::FTP_QUIT = "QUIT";
+ const ACE_CString Request::FTP_TYPE = "TYPE";
+ const ACE_CString Request::FTP_SYST = "SYST";
+ const ACE_CString Request::FTP_PWD = "PWD";
+ const ACE_CString Request::FTP_CWD = "CWD";
+ const ACE_CString Request::FTP_CDUP = "CDUP";
+ const ACE_CString Request::FTP_RNFR = "RNFR";
+ const ACE_CString Request::FTP_RNTO = "RNTO";
+ const ACE_CString Request::FTP_DELE = "DELE";
+ const ACE_CString Request::FTP_MKD = "MKD";
+ const ACE_CString Request::FTP_RMD = "RMD";
+ const ACE_CString Request::FTP_RETR = "RETR";
+ const ACE_CString Request::FTP_STOR = "STOR";
+ const ACE_CString Request::FTP_LIST = "LIST";
+ const ACE_CString Request::FTP_NLST = "NLST";
+ const ACE_CString Request::FTP_ABOR = "ABOR";
+ const ACE_CString Request::FTP_EPRT = "EPRT";
+ const ACE_CString Request::FTP_PORT = "PORT";
+ const ACE_CString Request::FTP_EPSV = "EPSV";
+ const ACE_CString Request::FTP_PASV = "PASV";
+ const ACE_CString Request::FTP_STAT = "STAT";
+
+ const int Request::eof_ = std::char_traits<char>::eof ();
+
+ Request::Request()
+ {
+ }
+
+ Request::~Request()
+ {
+ }
+
+ void Request::arguments (ACE_Array<ACE_CString> & args) const
+ {
+ ACE::IOS::CString_IStream sis (this->args_);
+
+ int ch = sis.get ();
+ while (ch != eof_)
+ {
+ // skip whitespace
+ while (ACE_OS::ace_isspace (ch)) ch = sis.get ();
+ if (ch != eof_)
+ {
+ // get arg
+ ACE_Array<ACE_CString>::size_type n =
+ args.size ();
+ args.size (n + 1);
+ ACE_CString& arg = args[n];
+ while (ch != eof_ && !ACE_OS::ace_isspace (ch))
+ {
+ arg += ch;
+ ch = sis.get ();
+ }
+ }
+ }
+ }
+
+ void Request::write(std::ostream& str) const
+ {
+ str << this->command_.c_str ();
+ if (!this->args_.empty ())
+ str << ' ' << this->args_.c_str ();
+ str << "\r\n";
+
+ INET_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("ACE_INet_FTP: --> %C %C\n"),
+ this->command_.c_str (),
+ this->command_ == FTP_PASS ?
+ "***" : this->args_.c_str ()));
+ }
+
+ bool Request::read(std::istream& str)
+ {
+ ACE_CString cmd (4, '\0');
+ ACE_CString args (128, '\0');
+
+ int ch = str.peek ();
+ if (ch == eof_)
+ {
+ str.get (); // skip to eof
+ return false;
+ }
+ // skip whitespace
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ str.get ();
+ }
+ // get method
+ ch = str.get ();
+ while (!ACE_OS::ace_isspace (ch) && ch != eof_ && cmd.length () < MAX_CMD_LENGTH)
+ {
+ cmd += ch;
+ ch = str.get ();
+ }
+ if (!ACE_OS::ace_isspace (ch))
+ return false; // invalid FTP command string
+ if (ch != '\r' && ch != '\n')
+ {
+ // skip whitespace
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ str.get ();
+ }
+ // get arguments
+ ch = str.get ();
+ while (ch != eof_ && ch != '\r' && ch != '\n' && args.length () < MAX_ARG_LENGTH)
+ {
+ args += ch;
+ ch = str.get ();
+ }
+ if (ch != eof_ && ch != '\r' && ch != '\n')
+ {
+ return false; // args too long
+ }
+ }
+ if (ch == '\r')
+ {
+ str.get ();
+ }
+ this->command (cmd);
+ this->args_ = args;
+ return true;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_Request.h b/ACE/protocols/ace/INet/FTP_Request.h
new file mode 100644
index 00000000000..d57bb4898de
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Request.h
@@ -0,0 +1,117 @@
+// $Id$
+
+/**
+ * @file FTP_Request.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_FTP_REQUEST_H
+#define ACE_FTP_REQUEST_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Containers_T.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/Request.h"
+#include "ace/SString.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace FTP
+ {
+
+ /**
+ * @class ACE_FTP_Request
+ *
+ * @brief Encapsulates FTP requests/commands.
+ *
+ */
+ class ACE_INET_Export Request
+ : public ACE::INet::Request
+ {
+ public:
+ Request ();
+
+ virtual ~Request ();
+
+ /// resets the request object
+ void reset ();
+
+ /// resets the request object and sets
+ /// new command
+ Request& operator ()(const ACE_CString& cmd);
+
+ /// sets the current command
+ void command (const ACE_CString& cmd);
+
+ /// returns the current command
+ const ACE_CString& command () const;
+
+ /// adds a command argument
+ /// separates multiple arguments with a space
+ Request& operator <<(const ACE_CString& arg);
+
+ /// returns the arguments string
+ const ACE_CString& arguments () const;
+
+ /// retrieves the arguments
+ void arguments (ACE_Array<ACE_CString> & args) const;
+
+ /// Writes the FTP request to the given stream
+ void write(std::ostream& str) const;
+
+ /// Reads the FTP request from the
+ /// given stream.
+ bool read(std::istream& str);
+
+ static const ACE_CString FTP_USER;
+ static const ACE_CString FTP_PASS;
+ static const ACE_CString FTP_QUIT;
+ static const ACE_CString FTP_TYPE;
+ static const ACE_CString FTP_SYST;
+ static const ACE_CString FTP_PWD;
+ static const ACE_CString FTP_CWD;
+ static const ACE_CString FTP_CDUP;
+ static const ACE_CString FTP_RNFR;
+ static const ACE_CString FTP_RNTO;
+ static const ACE_CString FTP_DELE;
+ static const ACE_CString FTP_MKD;
+ static const ACE_CString FTP_RMD;
+ static const ACE_CString FTP_RETR;
+ static const ACE_CString FTP_STOR;
+ static const ACE_CString FTP_LIST;
+ static const ACE_CString FTP_NLST;
+ static const ACE_CString FTP_ABOR;
+ static const ACE_CString FTP_EPRT;
+ static const ACE_CString FTP_PORT;
+ static const ACE_CString FTP_EPSV;
+ static const ACE_CString FTP_PASV;
+ static const ACE_CString FTP_STAT;
+
+ private:
+ static const int eof_;
+
+ enum Limits
+ {
+ MAX_CMD_LENGTH = 4,
+ MAX_ARG_LENGTH = 4096 // seems like a sensible maximum
+ };
+
+ ACE_CString command_;
+ ACE_CString args_;
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/FTP_Request.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_FTP_REQUEST_H */
diff --git a/ACE/protocols/ace/INet/FTP_Request.inl b/ACE/protocols/ace/INet/FTP_Request.inl
new file mode 100644
index 00000000000..605ca36280a
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Request.inl
@@ -0,0 +1,58 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+
+ ACE_INLINE
+ void Request::reset ()
+ {
+ this->command_.clear ();
+ this->args_.clear ();
+ }
+
+ ACE_INLINE
+ Request& Request::operator ()(const ACE_CString& cmd)
+ {
+ this->reset ();
+ this->command (cmd);
+ return *this;
+ }
+
+ ACE_INLINE
+ void Request::command (const ACE_CString& cmd)
+ {
+ this->command_ = cmd;
+ }
+
+ ACE_INLINE
+ const ACE_CString& Request::command () const
+ {
+ return this->command_;
+ }
+
+ ACE_INLINE
+ Request& Request::operator <<(const ACE_CString& arg)
+ {
+ if (!arg.empty ())
+ {
+ if (!this->args_.empty ()) this->args_ += ' ' ;
+ this->args_ += arg;
+ }
+ return *this;
+ }
+
+ ACE_INLINE
+ const ACE_CString& Request::arguments () const
+ {
+ return this->args_;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_Response.cpp b/ACE/protocols/ace/INet/FTP_Response.cpp
new file mode 100644
index 00000000000..46b2ea1a0b3
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Response.cpp
@@ -0,0 +1,132 @@
+// $Id$
+
+#include "ace/OS_NS_stdlib.h"
+#include "ace/OS_NS_ctype.h"
+#include "ace/String_Base.h"
+#include "ace/INet/FTP_Response.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/FTP_Response.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/String_IOStream.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+ const int Response::eof_ = std::char_traits<char>::eof ();
+
+ Response::Response()
+ : status_ (NORESPONSE)
+ {
+ }
+
+ Response::~Response()
+ {
+ }
+
+ void Response::write(ostream& str) const
+ {
+ ACE_Array<ACE_CString>::size_type n = 0;
+ str << this->status_;
+ if (this->response_.size () > 0)
+ {
+ n = this->response_.size () - 1;
+ str << (n > 0 ? '-' : ' ') << this->response_[0].c_str ();
+ }
+ str << "\r\n";
+ for (ACE_Array<ACE_CString>::size_type i = 1;
+ i < n;
+ ++i)
+ {
+ str << this->response_[i].c_str () << "\r\n";
+ }
+ if (n > 0)
+ {
+ str << this->status_ << ' '
+ << this->response_[n].c_str () << "\r\n";
+ }
+ }
+
+ bool Response::read(istream& str)
+ {
+ int ch;
+ str >> this->status_;
+ ch = str.get ();
+ if (str.bad () || this->status_type () == NOSTATE || (ch != ' ' && ch != '-'))
+ {
+ return false; // invalid status
+ }
+
+ bool multi_line = (ch == '-');
+
+ ACE_Array<ACE_CString>::size_type n =
+ this->response_.size ();
+ this->response_.size (n+1);
+ this->response_[n].clear ();
+ ACE::IOS::CString_OStream sos (this->response_[n]);
+ sos << this->status_;
+ sos.put (ch);
+ ch = this->read_line (str, sos);
+ if (ch == '\r') ch = str.get ();
+ sos.close (); // close the stream before resizing the array invalidates the string reference
+
+ INET_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("ACE_INet_FTP: <-- %C\n"),
+ this->response_[n].c_str ()));
+
+ if (multi_line)
+ {
+ while (ch != eof_)
+ {
+ int nxt_stat = 0;
+
+ n = this->response_.size ();
+ this->response_.size (n+1);
+ this->response_[n].clear ();
+ ACE::IOS::CString_OStream nxt_sos (this->response_[n]);
+
+ if (ACE_OS::ace_isdigit (str.peek ()))
+ {
+ str >> nxt_stat;
+ ch = str.get ();
+ if (str.bad () || (nxt_stat == this->status_ && ch != ' '))
+ {
+ this->status_ = NORESPONSE;
+ return false;
+ }
+ nxt_sos << nxt_stat;
+ nxt_sos.put(ch);
+ }
+ ch = this->read_line (str, nxt_sos);
+
+ nxt_sos.close ();
+
+ INET_DEBUG (9, (LM_DEBUG, DLINFO
+ ACE_TEXT ("ACE_INet_FTP: <-+ %C\n"),
+ this->response_[n].c_str ()));
+
+ if (nxt_stat == this->status_)
+ {
+ return true;
+ }
+ }
+
+ this->status_ = NORESPONSE;
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_Response.h b/ACE/protocols/ace/INet/FTP_Response.h
new file mode 100644
index 00000000000..022cd77e9d2
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Response.h
@@ -0,0 +1,133 @@
+// $Id$
+
+/**
+ * @file FTP_Response.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_FTP_RESPONSE_H
+#define ACE_FTP_RESPONSE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/Response.h"
+#include "ace/SString.h"
+#include "ace/Containers_T.h"
+#include <iostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace FTP
+ {
+
+ /**
+ * @class ACE_FTP_Response
+ *
+ * @brief Encapsulates FTP responses.
+ *
+ */
+ class ACE_INET_Export Response
+ : public ACE::INet::Response
+ {
+ public:
+ Response ();
+
+ virtual ~Response ();
+
+ /// resets the FTP response
+ void reset ();
+
+ /// resets the FTP response and sets
+ /// the response status
+ Response& operator ()(int status);
+
+ /// returns the current response status
+ int status () const;
+
+ /// sets the current response status
+ void status (int status);
+
+ /// retrieves the current response line(s)
+ const ACE_Array<ACE_CString>& response () const;
+
+ /// adds a response line
+ Response& operator <<(const ACE_CString& line);
+
+ /// Writes the FTP response to the given stream
+ void write(std::ostream& str) const;
+
+ /// Reads the FTP response from the
+ /// given stream.
+ bool read(std::istream& str);
+
+ /// response types
+ enum StatusType
+ {
+ NOSTATE = -1,
+ NORESPONSE = 0,
+ PRELIM_OK = 1,
+ COMPLETED_OK = 2,
+ INTERMEDIATE_OK = 3,
+ TRANSIENT_FAIL = 4,
+ PERMANENT_FAIL = 5
+ };
+
+ /// response subtypes
+ enum StatusSubtype
+ {
+ NOSUBTYPE = -1,
+ SYNTAX = 0,
+ INFORMATION = 1,
+ CONNECTION = 2,
+ AUTHENTICATION = 3,
+ NONE = 4,
+ FILESYSTEM = 5
+ };
+
+ /// returns the current response type
+ StatusType status_type () const;
+
+ /// returns true if the current response type is PRELIM_OK
+ bool is_preliminary_ok () const;
+
+ /// returns true if the current response type is COMPLETED_OK
+ bool is_completed_ok () const;
+
+ /// returns true if the current response type is INTERMEDIATE_OK
+ bool is_intermediate_ok () const;
+
+ /// returns true if the current response type is TRANSIENT_FAIL
+ bool is_transient_fail () const;
+
+ /// returns true if the current response type is PERMANENT_FAIL
+ bool is_permanent_fail () const;
+
+ /// returns the current response sub type
+ StatusSubtype status_sub_type () const;
+
+ static StatusType status_type (int status);
+
+ private:
+ static const int eof_;
+
+ int read_line (std::istream& is, std::ostream& os);
+
+ int status_;
+ ACE_Array<ACE_CString> response_;
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/FTP_Response.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_FTP_RESPONSE_H */
diff --git a/ACE/protocols/ace/INet/FTP_Response.inl b/ACE/protocols/ace/INet/FTP_Response.inl
new file mode 100644
index 00000000000..7e8c5a3048d
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Response.inl
@@ -0,0 +1,132 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+
+ ACE_INLINE
+ void Response::reset ()
+ {
+ this->status_ = NORESPONSE;
+ this->response_.size (0);
+ }
+
+ ACE_INLINE
+ void Response::status(int status)
+ {
+ this->status_ = status;
+ }
+
+ ACE_INLINE
+ int Response::status() const
+ {
+ return this->status_;
+ }
+
+ ACE_INLINE
+ Response& Response::operator ()(int status)
+ {
+ this->reset ();
+ this->status (status);
+ return *this;
+ }
+
+ ACE_INLINE
+ const ACE_Array<ACE_CString>& Response::response () const
+ {
+ return this->response_;
+ }
+
+ ACE_INLINE
+ Response& Response::operator <<(const ACE_CString& line)
+ {
+ ACE_Array<ACE_CString>::size_type n =
+ this->response_.size ();
+ this->response_.size (n+1);
+ this->response_[n] = line;
+ return *this;
+ }
+
+ ACE_INLINE
+ Response::StatusType Response::status_type (int status)
+ {
+ if (status == NORESPONSE)
+ return NORESPONSE;
+ int st = status / 100;
+ if (st >= PRELIM_OK && st <= PERMANENT_FAIL)
+ return static_cast<StatusType> (st);
+ else
+ return NOSTATE;
+ }
+
+ ACE_INLINE
+ Response::StatusType Response::status_type () const
+ {
+ return status_type (this->status_);
+ }
+
+ ACE_INLINE
+ Response::StatusSubtype Response::status_sub_type () const
+ {
+ StatusType st = this->status_type ();
+ if (st != NOSTATE && st != NORESPONSE)
+ {
+ int sst = (this->status_ - (st * 100)) / 10;
+ if (sst >= SYNTAX && sst <= FILESYSTEM)
+ return static_cast<StatusSubtype> (sst);
+ }
+ return NOSUBTYPE;
+ }
+
+ ACE_INLINE
+ bool Response::is_preliminary_ok () const
+ {
+ return this->status_type () == PRELIM_OK;
+ }
+
+ ACE_INLINE
+ bool Response::is_completed_ok () const
+ {
+ return this->status_type () == COMPLETED_OK;
+ }
+
+ ACE_INLINE
+ bool Response::is_intermediate_ok () const
+ {
+ return this->status_type () == INTERMEDIATE_OK;
+ }
+
+ ACE_INLINE
+ bool Response::is_transient_fail () const
+ {
+ return this->status_type () == TRANSIENT_FAIL;
+ }
+
+ ACE_INLINE
+ bool Response::is_permanent_fail () const
+ {
+ return this->status_type () == PERMANENT_FAIL;
+ }
+
+ ACE_INLINE
+ int Response::read_line (std::istream& is, std::ostream& os)
+ {
+ int ch;
+ for (ch = is.get ();
+ ch != eof_ && ch != '\r' && ch != '\n';
+ ch = is.get ())
+ {
+ os.put (ch);
+ }
+ return ch;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_Session.cpp b/ACE/protocols/ace/INet/FTP_Session.cpp
new file mode 100644
index 00000000000..f33a846778a
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Session.cpp
@@ -0,0 +1,322 @@
+// $Id$
+
+#ifndef ACE_FTP_SESSION_CPP
+#define ACE_FTP_SESSION_CPP
+
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/FTP_Session.h"
+#include "ace/INet/String_IOStream.h"
+#include "ace/INet/IOS_util.h"
+#include "ace/INET_Addr.h"
+#include "ace/Event_Handler.h"
+#include "ace/Connector.h"
+#include "ace/String_Base.h"
+#include "ace/Truncate.h"
+#include <istream>
+#include <ostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::Session_T ()
+ : port_ (FTP_PORT),
+ reactive_ (false),
+ connection_ (0),
+ sock_stream_ (0),
+ ftp_timeout_ (DEFAULT_TIMEOUT),
+ cannot_reconnect_ (false),
+ has_ftp_ext_ (true),
+ new_connect_ (true)
+ {
+ INET_TRACE ("ACE_FTP_Session - ctor");
+ }
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::Session_T (const ACE_Time_Value& timeout)
+ : port_ (FTP_PORT),
+ reactive_ (false),
+ connection_ (0),
+ sock_stream_ (0),
+ ftp_timeout_ (timeout),
+ cannot_reconnect_ (false),
+ has_ftp_ext_ (true),
+ new_connect_ (true)
+ {
+ INET_TRACE ("ACE_FTP_Session - ctor");
+ }
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::~Session_T ()
+ {
+ INET_TRACE ("ACE_FTP_Session - dtor");
+ this->close ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::is_connected () const
+ {
+ return this->connection_ && this->connection_->is_connected ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::is_new_connection () const
+ {
+ return this->new_connect_;
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::set_host (const ACE_CString& host, u_short port)
+ {
+ if (!this->is_connected ())
+ {
+ this->host_ = host;
+ this->port_ = port;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::set_host (const ACE_CString& host)
+ {
+ if (!this->is_connected ())
+ {
+ this->host_ = host;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::set_port (u_short port)
+ {
+ if (!this->is_connected ())
+ {
+ this->port_ = port;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ const ACE_CString& Session_T<ACE_SYNCH_USE>::get_host () const
+ {
+ return this->host_;
+ }
+
+ template <ACE_SYNCH_DECL>
+ u_short Session_T<ACE_SYNCH_USE>::get_port () const
+ {
+ return this->port_;
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::connect (bool use_reactor)
+ {
+ INET_TRACE ("ACE_FTP_Session::connect");
+
+ typedef ACE_Connector<connection_type, ACE_SOCK_CONNECTOR> connector_type;
+
+ this->close ();
+
+ unsigned long f_reactor = use_reactor ? ACE_Synch_Options::USE_REACTOR : 0;
+ ACE_Synch_Options sync_opt (ACE_Synch_Options::USE_TIMEOUT | f_reactor,
+ this->ftp_timeout_);
+ connector_type connector;
+
+ connection_type* new_connection = 0;
+ ACE_NEW_RETURN (new_connection,
+ connection_type(sync_opt),
+ false);
+ if (connector.connect (new_connection,
+ ACE_INET_Addr (this->port_,
+ this->host_.c_str ()),
+ ACE_Synch_Options (0,this->ftp_timeout_)) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_FTP_Session::connect - ")
+ ACE_TEXT ("failed to connect; host=%C, port=%d"),
+ ACE_OS::last_error (), this->host_.c_str (), this->port_));
+ // as the connection was dynamically allocated
+ // the connector causes it to be destroyed after
+ // the connection failure
+ return false;
+ }
+
+ this->connection_ = new_connection;
+ this->connection_->reference_counting_policy ().value (
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+
+ ACE_NEW_NORETURN (this->sock_stream_,
+ sock_stream_type (this->connection_));
+ if (this->sock_stream_)
+ {
+ this->new_connect_ = true;
+ this->cannot_reconnect_ = false;
+ this->reactive_ = use_reactor;
+
+ return true;
+ }
+ else
+ {
+ this->close ();
+ return false;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::connect (connection_type* connection)
+ {
+ INET_TRACE ("ACE_FTP_Session::connect(connection)");
+
+ this->close ();
+
+ if (connection->is_connected ())
+ {
+ ACE_INET_Addr remote;
+ connection->peer ().get_remote_addr (remote);
+ this->host_ = remote.get_host_name ();
+ this->port_ = remote.get_port_number ();
+ }
+ else
+ {
+ typedef ACE_Connector<connection_type, ACE_SOCK_CONNECTOR> connector_type;
+
+ connector_type connector;
+ if (connector.connect (connection,
+ ACE_INET_Addr (this->host_.c_str (),
+ this->port_)) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_FTP_Session::connect(connection) - ")
+ ACE_TEXT ("failed to connect; host=%C, port=%d"),
+ ACE_OS::last_error (), this->host_.c_str (), this->port_));
+ return false;
+ }
+ }
+
+ this->connection_ = connection;
+ this->connection_->add_reference ();
+
+ ACE_NEW_NORETURN (this->sock_stream_,
+ sock_stream_type (this->connection_));
+
+ if (this->sock_stream_)
+ {
+ this->new_connect_ = true;
+ this->cannot_reconnect_ = true;
+ return true;
+ }
+ else
+ {
+ this->close ();
+ return false;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::send_request (Request& request)
+ {
+ INET_TRACE ("ACE_FTP_Session::send_request");
+
+ if (!this->is_connected ())
+ {
+ if (this->cannot_reconnect_ || !this->connect(this->reactive_))
+ {
+ if (!this->cannot_reconnect_)
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) FTP_Session::send_request - ")
+ ACE_TEXT ("reconnect failed\n"),
+ ACE_OS::last_error ()));
+ return ACE::IOS::Null::out_stream_;
+ }
+ }
+
+ this->new_connect_ = false;
+
+ request.write (*this->sock_stream_);
+
+ return this->is_connected () && this->sock_stream_->good ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::receive_response (Response& response)
+ {
+ INET_TRACE ("ACE_FTP_Session::receive_response");
+
+ this->sock_stream_->flush ();
+
+ response.reset ();
+ return response.read (*this->sock_stream_);
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::send_interrupt ()
+ {
+ INET_TRACE ("ACE_FTP_Session::send_interrupt");
+
+ if (this->is_connected ())
+ {
+ this->sock_stream_->put (ACE_Utils::truncate_cast<char> (int (INTERRUPT)));
+ this->sock_stream_->sync ();
+ return this->sock_stream_->good ();
+ }
+
+ return false;
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::close ()
+ {
+ INET_TRACE ("ACE_FTP_Session::close");
+
+ if (this->connection_)
+ {
+ if (this->sock_stream_)
+ {
+ delete this->sock_stream_;
+ this->sock_stream_ = 0;
+ }
+ // this should be the last referece and removing it
+ // causes the connection to be destroyed
+ this->connection_->remove_reference ();
+ this->connection_ = 0;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::supports_ftp_extensions () const
+ {
+ return this->has_ftp_ext_;
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::set_ftp_extension_support (bool f)
+ {
+ this->has_ftp_ext_ = f;
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::is_reactive () const
+ {
+ return this->reactive_;
+ }
+
+ template <ACE_SYNCH_DECL>
+ const ACE_Time_Value& Session_T<ACE_SYNCH_USE>::timeout () const
+ {
+ return this->ftp_timeout_;
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::get_local_addr (ACE_INET_Addr& loc_addr) const
+ {
+ if (this->is_connected ())
+ this->connection_->peer ().get_local_addr (loc_addr);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_FTP_SESSION_CPP */
diff --git a/ACE/protocols/ace/INet/FTP_Session.h b/ACE/protocols/ace/INet/FTP_Session.h
new file mode 100644
index 00000000000..5a3e5264af7
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Session.h
@@ -0,0 +1,126 @@
+// $Id$
+
+/**
+ * @file FTP_Session.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_FTP_SESSION_H
+#define ACE_FTP_SESSION_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+#include "ace/Countdown_Time.h"
+#include "ace/SOCK_Connector.h"
+#include "ace/INET_Addr.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/FTP_Request.h"
+#include "ace/INet/FTP_Response.h"
+#include "ace/INet/StreamHandler.h"
+#include "ace/INet/Sock_IOStream.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace FTP
+ {
+ /**
+ * @class ACE_FTP_Session
+ *
+ * @brief Encapsulates FTP session.
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class Session_T
+ {
+ public:
+ typedef ACE::IOS::StreamHandler<ACE_SOCK_STREAM, ACE_SYNCH_USE> connection_type;
+
+ enum
+ {
+ FTP_PORT = 21
+ };
+
+ Session_T ();
+
+ Session_T (const ACE_Time_Value& timeout);
+
+ virtual ~Session_T ();
+
+ bool is_connected () const;
+
+ bool is_new_connection () const;
+
+ void set_host (const ACE_CString& host, u_short port);
+
+ void set_host (const ACE_CString& host);
+
+ void set_port (u_short port);
+
+ const ACE_CString& get_host () const;
+
+ u_short get_port () const;
+
+ bool connect (bool use_reactor = false);
+
+ bool connect (connection_type* connection);
+
+ bool send_request (Request& request);
+
+ bool receive_response (Response& response);
+
+ bool send_interrupt ();
+
+ void close ();
+
+ bool supports_ftp_extensions () const;
+
+ void set_ftp_extension_support (bool f);
+
+ bool is_reactive () const;
+
+ const ACE_Time_Value& timeout () const;
+
+ void get_local_addr (ACE_INET_Addr& loc_addr) const;
+
+ private:
+ enum
+ {
+ DEFAULT_TIMEOUT = 30, // sec
+
+ INTERRUPT = 244 // Telnet IP signal
+ };
+
+ ACE_CString host_;
+ u_short port_;
+
+ typedef ACE::IOS::Sock_IOStreamBase<ACE_SYNCH_USE> sock_stream_type;
+
+ bool reactive_;
+ connection_type* connection_;
+ sock_stream_type* sock_stream_;
+ ACE_Time_Value ftp_timeout_;
+ bool cannot_reconnect_;
+ bool has_ftp_ext_; // RFC 2428 - IPv6 and NAT
+ bool new_connect_;
+ };
+
+ typedef Session_T<ACE_NULL_SYNCH> Session;
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/FTP_Session.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("FTP_Session.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_FTP_SESSION_H */
diff --git a/ACE/protocols/ace/INet/FTP_Simple_exec.cpp b/ACE/protocols/ace/INet/FTP_Simple_exec.cpp
new file mode 100644
index 00000000000..8381f2aaf45
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_Simple_exec.cpp
@@ -0,0 +1,203 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/OS_NS_errno.h"
+#include "FTP_URL.h"
+#include "FTP_ClientRequestHandler.h"
+#include <iostream>
+#include <fstream>
+
+ACE_CString url;
+ACE_CString outfile;
+bool do_login = false;
+ACE_CString password;
+bool do_active = false;
+
+void
+usage (void)
+{
+ std::cout << "usage: ftp_simple_wget [options] <url>\n";
+ std::cout << "Executes an FTP download request and sends the result to STDOUT or file\n";
+ std::cout << "\t-a\t\tuse active mode for data connections\n";
+ std::cout << "\t-o <filename>\t\tfile to write output to\n";
+ std::cout << "\t-l\t\task for password at login\n";
+ std::cout << "\t-p <password>\t\tuse <password> for login\n";
+}
+
+bool
+parse_args (int argc, ACE_TCHAR *argv [])
+{
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("ao:lp:h"), 0, 0, ACE_Get_Opt::RETURN_IN_ORDER);
+
+ int c;
+ ACE_CString s;
+ while ((c = get_opt ()) != EOF)
+ {
+ switch (c)
+ {
+ case 1:
+ url = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+
+ case 'a':
+ do_active = true;
+ break;
+
+ case 'o':
+ outfile = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+
+ case 'l':
+ do_login = true;
+ break;
+
+ case 'p':
+ password = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+
+ case 'h':
+ default:
+ usage ();
+ return false;
+ }
+ }
+
+ return true;
+}
+
+class My_Authenticator
+ : public ACE::INet::AuthenticatorBase
+{
+ public:
+ My_Authenticator () {}
+ ~My_Authenticator () {}
+
+ virtual bool authenticate(ACE::INet::AuthenticationBase& auth) const
+ {
+ if (!password.empty ()) auth.password (password);
+ if (do_login)
+ {
+ std::cout << "Authentication (" << auth.scheme() << ") required." << std::endl;
+ std::cout << "Realm : " << auth.realm () << std::endl
+ << "User: " << auth.user() << std::endl
+ << "Password: \t\t\t (Enter password or press enter for default)\rPassword: ";
+ char buf[80] = {0};
+ u_int n = 0;
+ int ch = 0;
+ while (n < (sizeof(buf)-1) && (ch = std::cin.get ()) != '\n' && ch != std::char_traits<char>::eof ())
+ {
+ buf[n++] = char(ch);
+ }
+ if (n>0)
+ auth.password (buf);
+ }
+ return true;
+ }
+};
+
+class My_FTP_RequestHandler
+ : public ACE::FTP::ClientRequestHandler
+{
+ public:
+ My_FTP_RequestHandler () : read_length_ (0) {}
+ virtual ~My_FTP_RequestHandler () {}
+
+ protected:
+ virtual void handle_request_error (const ACE::FTP::URL& url)
+ {
+ std::cout << "ERROR" << std::endl;
+ std::cerr << "Failed to handle download for " << url.to_string ().c_str () << std::endl;
+ }
+
+ virtual void handle_connection_error (const ACE::FTP::URL& url)
+ {
+ std::cout << "ERROR" << std::endl;
+ std::cerr << "Failed to set up connection for " << url.to_string ().c_str () << std::endl;
+ }
+
+ virtual void after_read (const char_type* /*buffer*/, int length_read)
+ {
+ this->read_length_ += length_read;
+ std::cout << "\r [" << this->read_length_ << "/???]";
+ }
+
+ virtual void on_eof ()
+ {
+ ACE::FTP::ClientRequestHandler::on_eof ();
+ std::cout << std::endl;
+ }
+
+ private:
+ int read_length_;
+};
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv [])
+{
+ ACE_Auto_Ptr<std::ofstream> fout;
+ std::ostream* sout = &std::cout;
+
+ if (!parse_args (argc, argv))
+ {
+ return 1;
+ }
+
+ ACE::INet::URL_INetAuthBase::add_authenticator ("my_auth",
+ new My_Authenticator);
+
+ std::cout << "Starting..." << std::endl;
+
+ if (!url.empty ())
+ {
+ if (!outfile.empty ())
+ {
+ fout.reset (new std::ofstream (outfile.c_str (), std::ios_base::binary|std::ios_base::out));
+
+ if (!*fout)
+ {
+ std::cerr << "Failed to open output file : " << outfile.c_str () << std::endl;
+ return 1;
+ }
+
+ sout = fout.get ();
+ }
+
+ ACE::FTP::URL ftp_url;
+
+ std::cout << "Parsing url [" << url.c_str () << "]" << std::endl;
+
+ if (!ftp_url.parse (url))
+ {
+ std::cerr << "Failed parsing url [" << url << "]" << std::endl;
+ std::cerr << "\tresult = " << ftp_url.to_string ().c_str ();
+ return 1;
+ }
+
+ std::cout << "Opening url..." << std::endl;
+ My_FTP_RequestHandler my_rh;
+ if (do_active) my_rh.use_active_mode ();
+ ACE::INet::URLStream urlin = ftp_url.open (my_rh);
+ if (urlin)
+ {
+ std::cout << "Saving to: ";
+ if (!outfile.empty ())
+ std::cout << '\'' << outfile.c_str () << '\'' << std::endl;
+ else
+ std::cout << "(stdout)" << std::endl;
+
+ (*sout) << urlin->rdbuf ();
+ sout->flush ();
+ }
+ }
+ else
+ {
+ std::cerr << "ERROR: No URL specified!" << std::endl;
+ usage ();
+ return 1;
+ }
+
+ std::cout << "Done" << std::endl;
+
+ return 0;
+}
diff --git a/ACE/protocols/ace/INet/FTP_URL.cpp b/ACE/protocols/ace/INet/FTP_URL.cpp
new file mode 100644
index 00000000000..b6a8118a2d0
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_URL.cpp
@@ -0,0 +1,96 @@
+// $Id$
+
+#include "ace/INet/FTP_URL.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/FTP_URL.inl"
+#endif
+
+#include "ace/INet/String_IOStream.h"
+#include "ace/INet/FTP_ClientRequestHandler.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+ const char* URL::PROTOCOL = "ftp";
+
+ const ACE_CString& URL::protocol ()
+ {
+ static const ACE_CString protocol_ (PROTOCOL);
+ return protocol_;
+ }
+
+ URL::URL ()
+ : URL_INetAuthBase (FTP_PORT)
+ {
+ }
+
+ URL::URL (const ACE_CString& url_string)
+ : URL_INetAuthBase (FTP_PORT)
+ {
+ this->parse (url_string);
+ }
+
+ URL::URL (const URL& url)
+ : URL_INetAuthBase (0)
+ {
+ *this = url;
+ }
+
+ URL::~URL ()
+ {
+ }
+
+ URL& URL::operator =(const URL& url)
+ {
+ this->set_user_info (url.get_user_info ());
+ this->set_host (url.get_host ());
+ this->set_port (url.get_port ());
+ this->set_path (url.get_path ());
+ return *this;
+ }
+
+ ACE_CString URL::to_string () const
+ {
+ ACE::IOS::CString_OStream sos;
+ sos << this->get_scheme () << "://"
+ << this->get_authority ().c_str ()
+ << this->get_path ().c_str ();
+ return sos.str ();
+ }
+
+ ACE::INet::ClientRequestHandler* URL::create_default_request_handler () const
+ {
+ ACE::INet::ClientRequestHandler* prh = 0;
+ ACE_NEW_NORETURN (prh, ClientRequestHandler ());
+ return prh;
+ }
+
+ const URL::Factory& URL::factory_ = *URL::TURLFactorySingleton::instance ();
+
+ URL::Factory::Factory ()
+ {
+ ACE::INet::URL_Base::register_factory (this);
+ }
+
+ URL::Factory::~Factory ()
+ {}
+
+ const ACE_CString& URL::Factory::protocol ()
+ {
+ return URL::protocol ();
+ }
+
+ ACE::INet::URL_Base* URL::Factory::create_from_string (const ACE_CString& url_string)
+ {
+ URL* purl = 0;
+ ACE_NEW_NORETURN (purl, URL (url_string));
+ return purl;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/FTP_URL.h b/ACE/protocols/ace/INet/FTP_URL.h
new file mode 100644
index 00000000000..68f505e550d
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_URL.h
@@ -0,0 +1,89 @@
+// $Id$
+
+/**
+ * @file FTP_URL.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_FTP_URL_H
+#define ACE_FTP_URL_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/URLBase.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace FTP
+ {
+ /**
+ * @class ACE_FTP_URL
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export URL
+ : public ACE::INet::URL_INetAuthBase
+ {
+ public:
+ URL ();
+ URL (const ACE_CString& url_string);
+ URL (const URL& url);
+ virtual ~URL ();
+
+ URL& operator =(const URL& url);
+
+ virtual const ACE_CString& get_scheme () const;
+
+ virtual ACE_CString to_string () const;
+
+ virtual u_short default_port () const;
+
+ static const char* PROTOCOL;
+
+ static const ACE_CString& protocol ();
+
+ enum
+ {
+ FTP_PORT = 21
+ };
+
+ protected:
+ virtual ACE::INet::ClientRequestHandler* create_default_request_handler () const;
+
+ private:
+ class Factory
+ : public ACE::INet::URL_Base::Factory
+ {
+ public:
+ Factory ();
+ virtual ~Factory ();
+ virtual const ACE_CString& protocol ();
+ virtual ACE::INet::URL_Base* create_from_string (const ACE_CString& url_string);
+ };
+
+ typedef ACE_Singleton<Factory,
+ ACE_Null_Mutex> TURLFactorySingleton;
+ static const Factory& factory_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/FTP_URL.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_FTP_URL_H */
diff --git a/ACE/protocols/ace/INet/FTP_URL.inl b/ACE/protocols/ace/INet/FTP_URL.inl
new file mode 100644
index 00000000000..0a5cd7fb23d
--- /dev/null
+++ b/ACE/protocols/ace/INet/FTP_URL.inl
@@ -0,0 +1,27 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace FTP
+ {
+
+ ACE_INLINE
+ const ACE_CString& URL::get_scheme () const
+ {
+ return protocol ();
+ }
+
+ ACE_INLINE
+ u_short URL::default_port () const
+ {
+ return FTP_PORT;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTPS_Context.cpp b/ACE/protocols/ace/INet/HTTPS_Context.cpp
new file mode 100644
index 00000000000..6eff53b4daf
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_Context.cpp
@@ -0,0 +1,125 @@
+// $Id$
+
+#include "ace/INet/HTTPS_Context.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTPS_Context.inl"
+#endif
+
+#include "ace/OS_NS_stdlib.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_sys_stat.h"
+#include "ace/INet/INet_Log.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTPS
+ {
+
+ int Context::ssl_mode_ = ACE_SSL_Context::SSLv3;
+ bool Context::ssl_strict_ = false;
+ bool Context::ssl_once_ = true;
+ int Context::ssl_depth_ = 0;
+ bool Context::ssl_verify_peer_ = true;
+
+ Context::Context (bool verify_peer,
+ bool strict,
+ bool once,
+ int depth,
+ int ssl_mode,
+ ACE_SSL_Context* ssl_ctx,
+ bool release,
+ ACE::INet::SSL_CallbackManager* ssl_cbmngr)
+ : ssl_ctx_ (0)
+ {
+ if (ssl_ctx == 0)
+ {
+ ACE_NEW_NORETURN (ssl_ctx, ACE_SSL_Context ());
+ release = true;
+ }
+ if (ssl_ctx != 0)
+ {
+ if (release)
+ {
+ this->alloc_safe.reset (ssl_ctx);
+ }
+ this->ssl_ctx_ = ssl_ctx;
+
+ this->ssl_ctx_->set_mode (ssl_mode);
+ if (verify_peer)
+ this->ssl_ctx_->set_verify_peer (strict ? 1 : 0,
+ once ? 1 : 0,
+ depth);
+ if (ssl_cbmngr != 0)
+ ssl_cbmngr->initialize_callbacks (this->ssl_ctx_);
+ // do this to be sure that these settings have been properly set
+ // ACE_SSL_Context does not handle this quite correctly
+ ::SSL_CTX_set_verify (this->ssl_ctx_->context (),
+ this->ssl_ctx_->default_verify_mode (),
+ this->ssl_ctx_->default_verify_callback ());
+ INET_DEBUG (9,(LM_INFO, DLINFO
+ ACE_TEXT ("HTTPS_Context::ctor - ")
+ ACE_TEXT ("ssl_mode = [%d], ")
+ ACE_TEXT ("verify_peer = [%d], ")
+ ACE_TEXT ("verify_mode = [%d]\n"),
+ this->ssl_ctx_->get_mode (),
+ (verify_peer ? 1 : 0),
+ this->ssl_ctx_->default_verify_mode ()));
+ }
+ }
+
+ Context::Context (ACE_SSL_Context* ssl_ctx,
+ bool release,
+ ACE::INet::SSL_CallbackManager* ssl_cbmngr)
+ : ssl_ctx_ (ssl_ctx)
+ {
+ if (this->ssl_ctx_ != 0)
+ {
+ if (release)
+ this->alloc_safe.reset (this->ssl_ctx_);
+
+ if (ssl_cbmngr != 0)
+ ssl_cbmngr->initialize_callbacks (this->ssl_ctx_);
+ }
+ }
+
+ Context& Context::instance ()
+ {
+ return *ACE_Unmanaged_Singleton<Context, ACE_SYNCH::MUTEX>::instance ();
+ }
+
+ Context::Context (const Context&)
+ {
+ }
+
+ Context::~Context ()
+ {
+ }
+
+ bool Context::load_trusted_ca (const char* ca_location)
+ {
+ ACE_stat stat;
+ if (ca_location != 0 && ACE_OS::stat (ca_location, &stat) == 0)
+ {
+ bool is_dir = ((stat.st_mode & S_IFMT) == S_IFDIR);
+ if (this->ssl_ctx_->load_trusted_ca (is_dir ? 0 : ca_location,
+ is_dir ? ca_location : 0,
+ false) == 0)
+ return true;
+ }
+ else
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("Context::load_trusted_ca - ")
+ ACE_TEXT ("invalid ca_location [%C]\n"),
+ ca_location == 0 ? "(null)" : ca_location));
+ }
+ return false;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTPS_Context.h b/ACE/protocols/ace/INet/HTTPS_Context.h
new file mode 100644
index 00000000000..ee8b54336bf
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_Context.h
@@ -0,0 +1,106 @@
+// $Id$
+
+/**
+ * @file HTTPS_Context.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTPS_CONTEXT_H
+#define ACE_HTTPS_CONTEXT_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/Singleton.h"
+#include "ace/SSL/SSL_Context.h"
+#include "ace/INet/SSL_CallbackManager.h"
+#include "ace/INet/INet_SSL_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTPS
+ {
+ /**
+ * @class ACE_HTTPS_Context
+ *
+ * @brief Implements security (SSL) context for HTTPS sessions.
+ *
+ */
+ class ACE_INET_SSL_Export Context
+ {
+ public:
+ Context (bool verify_peer = Context::ssl_verify_peer_,
+ bool strict = Context::ssl_strict_,
+ bool once = Context::ssl_once_,
+ int depth = Context::ssl_depth_,
+ int ssl_mode = Context::ssl_mode_,
+ ACE_SSL_Context* ssl_ctx =
+ ACE_SSL_Context::instance (),
+ bool release = false,
+ ACE::INet::SSL_CallbackManager* ssl_cbmngr =
+ ACE::INet::SSL_CallbackManager::instance ());
+
+ Context (ACE_SSL_Context* ssl_ctx,
+ bool release = false,
+ ACE::INet::SSL_CallbackManager* ssl_cbmngr = 0);
+
+ ~Context ();
+
+ operator bool (void) const;
+
+ bool operator ! (void) const;
+
+ ACE_SSL_Context& ssl_context (void);
+
+ const ACE_SSL_Context& ssl_context (void) const;
+
+ bool use_default_ca ();
+
+ bool set_key_files (const char* certificate_filename,
+ const char* private_key_filename,
+ int file_type = SSL_FILETYPE_PEM);
+
+ bool load_trusted_ca (const char* ca_location);
+
+ int has_trusted_ca ();
+
+ static void set_default_ssl_mode (int ssl_mode);
+
+ static void set_default_verify_mode (bool verify_peer);
+
+ static void set_default_verify_settings (bool strict,
+ bool once = true,
+ int depth = 0);
+
+ static Context& instance ();
+
+ private:
+ friend class ACE_Singleton<Context, ACE_SYNCH::MUTEX>;
+
+ //Context ();
+ Context (const Context&);
+
+ ACE_SSL_Context* ssl_ctx_;
+ ACE_Auto_Ptr<ACE_SSL_Context> alloc_safe;
+
+ static int ssl_mode_;
+ static bool ssl_strict_;
+ static bool ssl_once_;
+ static int ssl_depth_;
+ static bool ssl_verify_peer_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTPS_Context.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_SSL_CALLBACKMANAGER_H */
diff --git a/ACE/protocols/ace/INet/HTTPS_Context.inl b/ACE/protocols/ace/INet/HTTPS_Context.inl
new file mode 100644
index 00000000000..d4aaee7e8c8
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_Context.inl
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTPS
+ {
+
+ ACE_INLINE
+ Context::operator bool (void) const
+ {
+ return this->ssl_ctx_ != 0;
+ }
+
+ ACE_INLINE
+ bool Context::operator ! (void) const
+ {
+ return this->ssl_ctx_ == 0;
+ }
+
+ ACE_INLINE
+ ACE_SSL_Context& Context::ssl_context (void)
+ {
+ return *this->ssl_ctx_;
+ }
+
+ ACE_INLINE
+ const ACE_SSL_Context& Context::ssl_context (void) const
+ {
+ return *this->ssl_ctx_;
+ }
+
+ ACE_INLINE
+ bool Context::use_default_ca ()
+ {
+ if (::SSL_CTX_set_default_verify_paths(this->ssl_ctx_->context ()) != 1)
+ {
+ ACE_SSL_Context::report_error ();
+ return false;
+ }
+ return true;
+ }
+
+ ACE_INLINE
+ bool Context::set_key_files (const char* certificate_filename,
+ const char* private_key_filename,
+ int file_type)
+ {
+ if (this->ssl_ctx_->certificate (certificate_filename, file_type) == 0)
+ {
+ if (this->ssl_ctx_->private_key (private_key_filename, file_type) == 0)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ ACE_INLINE
+ int Context::has_trusted_ca ()
+ {
+ return this->ssl_ctx_->have_trusted_ca ();
+ }
+
+ ACE_INLINE
+ void Context::set_default_ssl_mode (int ssl_mode)
+ {
+ Context::ssl_mode_ = ssl_mode;
+ }
+
+ ACE_INLINE
+ void Context::set_default_verify_mode (bool verify_peer)
+ {
+ Context::ssl_verify_peer_ = verify_peer;
+ }
+
+ ACE_INLINE
+ void Context::set_default_verify_settings (bool strict,
+ bool once,
+ int depth)
+ {
+ Context::ssl_strict_ = strict;
+ Context::ssl_once_ = once;
+ Context::ssl_depth_ = depth;
+ }
+
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTPS_Session.cpp b/ACE/protocols/ace/INet/HTTPS_Session.cpp
new file mode 100644
index 00000000000..03530c904eb
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_Session.cpp
@@ -0,0 +1,284 @@
+// $Id$
+
+#ifndef ACE_HTTPS_SESSION_CPP
+#define ACE_HTTPS_SESSION_CPP
+
+#include "ace/INet/HTTPS_Session.h"
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/IOS_util.h"
+#include "ace/INet/HTTPS_URL.h"
+#include "ace/INet/Sock_IOStream.h"
+#include "ace/INet/String_IOStream.h"
+#include "ace/INet/SSL_Proxy_Connector.h"
+#include "ace/INET_Addr.h"
+#include "ace/Event_Handler.h"
+#include "ace/Connector.h"
+#include "ace/SSL/SSL_SOCK_Connector.h"
+#include "ace/String_Base.h"
+#include <istream>
+#include <ostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTPS
+ {
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::Session_T (bool keep_alive
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ , Context* ctx
+#endif
+ )
+ : SessionBase (URL::HTTPS_PORT, keep_alive),
+ connection_ (0),
+ sock_stream_ (0)
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ , context_ (ctx)
+#endif
+ {
+ INET_TRACE ("ACE_HTTPS_Session - ctor");
+ }
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::Session_T (const ACE_Time_Value& timeout,
+ bool keep_alive,
+ const ACE_Time_Value* alive_timeout
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ , Context* ctx
+#endif
+ )
+ : SessionBase (URL::HTTPS_PORT, timeout, keep_alive, alive_timeout),
+ connection_ (0),
+ sock_stream_ (0)
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ , context_ (ctx)
+#endif
+ {
+ INET_TRACE ("ACE_HTTPS_Session - ctor");
+ this->close_streams ();
+ this->close_connection ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::~Session_T ()
+ {
+ INET_TRACE ("ACE_HTTPS_Session - dtor");
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::is_connected () const
+ {
+ return this->connection_ && this->connection_->is_connected ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::connect_i (const ACE_Synch_Options& sync_opt)
+ {
+ INET_TRACE ("ACE_HTTPS_Session::connect_i");
+
+ connection_type* new_connection = 0;
+
+ if (this->is_proxy_connection ())
+ {
+ typedef ACE::IOS::StreamHandler<ACE_SOCK_STREAM, ACE_SYNCH_USE> proxy_connection_type;
+ typedef ACE_Connector<proxy_connection_type, ACE_SOCK_CONNECTOR> proxy_connector_type;
+ typedef ACE::IOS::Sock_IOStreamBase<ACE_SYNCH_USE> proxy_stream_type;
+
+ proxy_connection_type proxy_connection(sync_opt);
+ proxy_connector_type proxy_connector;
+
+ proxy_connection_type* proxy_connection_ptr = &proxy_connection;
+ if (proxy_connector.connect (proxy_connection_ptr,
+ ACE_INET_Addr (this->port_,
+ this->host_.c_str ()),
+ ACE_Synch_Options (0,this->http_timeout_)) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_HTTPS_Session::connect_i - ")
+ ACE_TEXT ("failed to connect to proxy; host=%C, port=%d\n"),
+ ACE_OS::last_error (), this->host_.c_str (), this->port_));
+ return false;
+ }
+
+ proxy_stream_type proxy_stream (&proxy_connection);
+ ACE::IOS::CString_OStream target_address;
+ target_address << this->proxy_target_host_ << ':' << this->proxy_target_port_;
+ ACE::HTTP::Request connect_request (ACE::HTTP::Request::HTTP_CONNECT,
+ target_address.str ().c_str (),
+ ACE::HTTP::Request::HTTP_1_1);
+ connect_request.set("Proxy-Connection", "keep-alive");
+ connect_request.set_host(this->proxy_target_host_);
+ ACE::HTTP::Response connect_response;
+
+ connect_request.write (proxy_stream);
+ proxy_stream.flush ();
+ if (!connect_response.read (proxy_stream) ||
+ !connect_response.get_status ().is_ok ())
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("ACE_HTTPS_Session::connect_i - ")
+ ACE_TEXT ("cannot setup proxy tunnel; proxy replied: %d:%C\n"),
+ connect_response.get_status ().get_status(),
+ connect_response.get_status ().get_reason().c_str ()));
+ return false;
+ }
+
+ ACE_NEW_RETURN (new_connection,
+ connection_type(sync_opt),
+ false);
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ // set the provided SSL context for the SSL structure of the SSL_SOCK_Stream
+ if (this->context_ != 0)
+ {
+ ::SSL * ssl_ptr = new_connection->peer ().ssl ();
+ ::SSL_set_SSL_CTX (ssl_ptr, this->context_->ssl_context ().context ());
+ }
+#endif
+ ACE_HANDLE proxy_conn_handle = proxy_connection.peer ().get_handle ();
+ proxy_connection.peer ().set_handle (ACE_INVALID_HANDLE);
+
+ ACE::INet::SSL_Proxy_Connector proxy_ssl_connector;
+ ACE_Time_Value conn_timeout (this->http_timeout_);
+ if (proxy_ssl_connector.connect (new_connection->peer (),
+ proxy_conn_handle,
+ &conn_timeout) != 0)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("ACE_HTTPS_Session::connect_i - ")
+ ACE_TEXT ("failed to setup proxy SSL connection\n")));
+ return false;
+ }
+ new_connection->open (); // mark stream handler as connected
+ }
+ else
+ {
+ ACE_NEW_RETURN (new_connection,
+ connection_type(sync_opt),
+ false);
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ // set the provided SSL context for the SSL structure of the SSL_SOCK_Stream
+ if (this->context_ != 0)
+ {
+ ::SSL * ssl_ptr = new_connection->peer ().ssl ();
+ ::SSL_set_SSL_CTX (ssl_ptr, this->context_->ssl_context ().context ());
+ }
+#endif
+ typedef ACE_Connector<connection_type, ACE_SSL_SOCK_Connector> connector_type;
+
+ connector_type connector;
+
+ if (connector.connect (new_connection,
+ ACE_INET_Addr (this->port_,
+ this->host_.c_str ()),
+ ACE_Synch_Options (0,this->http_timeout_)) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_HTTPS_Session::connect_i - ")
+ ACE_TEXT ("failed to connect; host=%C, port=%d\n"),
+ ACE_OS::last_error (), this->host_.c_str (), this->port_));
+ // as the connection was dynamically allocated
+ // the connector causes it to be destroyed after
+ // the connection failure
+ return false;
+ }
+ }
+
+ this->connection_ = new_connection;
+ this->connection_->reference_counting_policy ().value (
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+
+ ACE_NEW_NORETURN (this->sock_stream_,
+ sock_stream_type (this->connection_));
+ if (this->sock_stream_)
+ {
+ this->cannot_reconnect_ = false;
+ this->reactive_ = sync_opt[ACE_Synch_Options::USE_REACTOR];
+
+ // reset reconnect timer
+ this->reconnect_timer_ = this->keep_alive_timeout_;
+ this->reconnect_countdown_.start ();
+
+ return true;
+ }
+ else
+ {
+ this->close ();
+ return false;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::attach_connection (connection_type* connection)
+ {
+ INET_TRACE ("ACE_HTTPS_Session::attach_connection");
+
+ if (!connection->is_connected ())
+ return false;
+
+ this->close ();
+
+ ACE_INET_Addr remote;
+ connection->peer ().get_remote_addr (remote);
+ this->host_ = remote.get_host_name ();
+ this->port_ = remote.get_port_number ();
+
+ this->connection_ = connection;
+ this->connection_->add_reference ();
+
+ ACE_NEW_NORETURN (this->sock_stream_,
+ sock_stream_type (this->connection_));
+
+ if (this->sock_stream_)
+ {
+ this->keep_alive_ = true;
+ this->keep_alive_timeout_ = ACE_Time_Value::zero;
+ this->cannot_reconnect_ = true;
+ return true;
+ }
+ else
+ {
+ this->close ();
+ return false;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::close_connection ()
+ {
+ if (this->sock_stream_)
+ {
+ delete this->sock_stream_;
+ this->sock_stream_ = 0;
+ }
+
+ if (this->connection_)
+ {
+ // this should be the last referece and removing it
+ // causes the connection to be destroyed
+ this->connection_->remove_reference ();
+ this->connection_ = 0;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::close_i ()
+ {
+ INET_TRACE ("ACE_HTTPS_Session::close_i");
+
+ this->close_connection ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ std::iostream& Session_T<ACE_SYNCH_USE>::sock_stream ()
+ {
+ return *this->sock_stream_;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HTTPS_SESSION_CPP */
diff --git a/ACE/protocols/ace/INet/HTTPS_Session.h b/ACE/protocols/ace/INet/HTTPS_Session.h
new file mode 100644
index 00000000000..cc41d9c9749
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_Session.h
@@ -0,0 +1,101 @@
+// $Id$
+
+/**
+ * @file HTTPS_Session.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTPS_SESSION_H
+#define ACE_HTTPS_SESSION_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SSL/SSL_SOCK_Connector.h"
+#include "ace/INet/HTTP_SessionBase.h"
+#include "ace/INet/StreamHandler.h"
+#include "ace/INet/SSLSock_IOStream.h"
+#include "ace/INet/HTTPS_Context.h"
+
+// we need OpenSSL > v0.9.8e to get support for SSL_set_SSL_CTX
+#define OPENSSL_VERSION_098E 0x0090805fL
+#if OPENSSL_VERSION_NUMBER > OPENSSL_VERSION_098E
+# define SSL_HAS_SSL_set_SSL_CTX 1
+#else
+# define SSL_HAS_SSL_set_SSL_CTX 0
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTPS
+ {
+ /**
+ * @class ACE_HTTPS_Session
+ *
+ * @brief Encapsulates HTTPS session.
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class Session_T : public ACE::HTTP::SessionBase
+ {
+ public:
+ typedef ACE::IOS::StreamHandler<ACE_SSL_SOCK_Stream, ACE_SYNCH_USE> connection_type;
+
+ Session_T (bool keep_alive = true
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ , Context* ctx = 0
+#endif
+ );
+
+ Session_T (const ACE_Time_Value& timeout,
+ bool keep_alive = true,
+ const ACE_Time_Value* alive_timeout = 0
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ , Context* ctx = 0
+#endif
+ );
+
+ virtual ~Session_T ();
+
+ virtual bool is_connected () const;
+
+ bool attach_connection (connection_type* connection);
+
+ protected:
+
+ void close_connection ();
+
+ virtual bool connect_i (const ACE_Synch_Options& sync_opt);
+
+ virtual void close_i ();
+
+ virtual std::iostream& sock_stream ();
+
+ private:
+ typedef ACE::IOS::SSLSock_IOStreamBase<ACE_SYNCH_USE> sock_stream_type;
+
+ connection_type* connection_;
+ sock_stream_type* sock_stream_;
+#if defined (SSL_HAS_SSL_set_SSL_CTX) && (SSL_HAS_SSL_set_SSL_CTX == 1)
+ Context* context_;
+#endif
+ };
+
+ typedef Session_T<ACE_NULL_SYNCH> Session;
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/HTTPS_Session.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("HTTPS_Session.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTPS_SESSION_H */
diff --git a/ACE/protocols/ace/INet/HTTPS_SessionFactory.cpp b/ACE/protocols/ace/INet/HTTPS_SessionFactory.cpp
new file mode 100644
index 00000000000..787fc56c963
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_SessionFactory.cpp
@@ -0,0 +1,77 @@
+// $Id$
+
+#include "ace/INet/HTTPS_SessionFactory.h"
+
+#include "ace/INet/INet_Log.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTPS
+ {
+
+ SessionFactory_Impl::SessionHolder_Impl::SessionHolder_Impl ()
+ : session_ (true)
+ {
+ }
+
+ SessionFactory_Impl::SessionHolder_Impl::~SessionHolder_Impl()
+ {
+ }
+
+ ACE::HTTP::SessionBase& SessionFactory_Impl::SessionHolder_Impl::session ()
+ {
+ return this->session_;
+ }
+
+ SessionFactory_Impl& SessionFactory_Impl::factory_ =
+ *ACE_Singleton<SessionFactory_Impl,ACE_SYNCH::NULL_MUTEX>::instance ();
+
+ SessionFactory_Impl::SessionFactory_Impl ()
+ {
+ INET_DEBUG (6, (LM_INFO, DLINFO
+ ACE_TEXT ("HTTPS_SessionFactory_Impl::ctor - ")
+ ACE_TEXT ("registering session factory for scheme [%C]\n"),
+ URL::protocol ().c_str ()));
+ ACE::HTTP::SessionFactoryRegistry::instance ().register_session_factory (URL::protocol (), this);
+ }
+
+ SessionFactory_Impl::~SessionFactory_Impl ()
+ {
+ }
+
+ ACE::INet::ConnectionHolder*
+ SessionFactory_Impl::create_connection (
+ const ACE::INet::ConnectionKey& key) const
+ {
+ INET_TRACE ("HTTPS_SessionFactory_Impl::create_connection");
+
+ const ACE::HTTP::ClientRequestHandler::HttpConnectionKey& ikey =
+ dynamic_cast<const ACE::HTTP::ClientRequestHandler::HttpConnectionKey&> (key);
+
+ SessionHolder_Impl* session_holder = 0;
+ ACE_NEW_RETURN (session_holder,
+ SessionHolder_Impl (),
+ 0);
+ ACE_Auto_Ptr<SessionHolder_Impl> session_safe_ref (session_holder);
+
+ (*session_holder)->set_host (ikey.host (), ikey.port ());
+ if (ikey.is_proxy_connection ())
+ {
+ (*session_holder)->set_proxy_target (ikey.proxy_target_host (),
+ ikey.proxy_target_port ());
+ }
+
+ if ((*session_holder)->connect (true))
+ {
+ return session_safe_ref.release ();
+ }
+
+ return 0;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTPS_SessionFactory.h b/ACE/protocols/ace/INet/HTTPS_SessionFactory.h
new file mode 100644
index 00000000000..31938227021
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_SessionFactory.h
@@ -0,0 +1,71 @@
+// $Id$
+
+/**
+ * @file HTTPS_SessionFactory.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTPS_SESSION_FACTORY_H
+#define ACE_HTTPS_SESSION_FACTORY_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/HTTP_ClientRequestHandler.h"
+#include "ace/INet/HTTPS_Session.h"
+#include "ace/INet/INet_SSL_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTPS
+ {
+ /**
+ * @class ACE_HTTPS_SessionFactory_Impl
+ *
+ * @brief Implements HTTPS session factory.
+ *
+ */
+ class ACE_INET_SSL_Export SessionFactory_Impl
+ : public ACE::HTTP::SessionFactory
+ {
+ private:
+ SessionFactory_Impl ();
+ virtual ~SessionFactory_Impl ();
+
+ friend class ACE_Singleton<SessionFactory_Impl, ACE_SYNCH::NULL_MUTEX>;
+
+ static SessionFactory_Impl& factory_;
+
+ class SessionHolder_Impl : public ACE::HTTP::SessionHolder
+ {
+ public:
+ SessionHolder_Impl ();
+ virtual ~SessionHolder_Impl();
+
+ protected:
+ virtual ACE::HTTP::SessionBase& session ();
+
+ private:
+ Session_T<ACE_SYNCH> session_;
+ };
+
+ public:
+ virtual ACE::INet::ConnectionHolder* create_connection (
+ const ACE::INet::ConnectionKey& key) const;
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTPS_SESSION_FACTORY_H */
diff --git a/ACE/protocols/ace/INet/HTTPS_URL.cpp b/ACE/protocols/ace/INet/HTTPS_URL.cpp
new file mode 100644
index 00000000000..0e0b0e35071
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_URL.cpp
@@ -0,0 +1,109 @@
+// $Id$
+
+#include "ace/INet/HTTPS_URL.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTPS_URL.inl"
+#endif
+
+#include "ace/INet/String_IOStream.h"
+#include "ace/INet/HTTP_ClientRequestHandler.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTPS
+ {
+ const char* URL::PROTOCOL = "https";
+
+ const ACE_CString& URL::protocol ()
+ {
+ static const ACE_CString protocol_ (PROTOCOL);
+ return protocol_;
+ }
+
+ URL::URL ()
+ : ACE::HTTP::URL (HTTPS_PORT)
+ {
+ }
+
+ URL::URL (const ACE_CString& url_string)
+ : ACE::HTTP::URL (HTTPS_PORT)
+ {
+ this->parse (url_string);
+ }
+
+ URL::URL (const URL& url)
+ : ACE::HTTP::URL (0)
+ {
+ *this = url;
+ }
+
+ URL::~URL ()
+ {
+ }
+
+ URL& URL::operator =(const URL& url)
+ {
+ ACE::HTTP::URL::operator=(url);
+ return *this;
+ }
+
+ ACE_CString URL::get_request_uri () const
+ {
+ ACE::IOS::CString_OStream sos;
+#if 0
+ if (!this->proxy_host_.empty ())
+ {
+ sos << this->get_scheme ().c_str () << "://"
+ << ACE::INet::URL_INetBase::get_host ().c_str ();
+ if (ACE::INet::URL_INetBase::get_port () != HTTP_PORT)
+ {
+ sos << ':' << ACE::INet::URL_INetBase::get_port ();
+ }
+ }
+#endif
+ // if path is empty we're requesting the root
+ sos << (this->get_path ().empty () ?
+ "/" :
+ this->get_path ().c_str ());
+ if (!this->get_query ().empty ())
+ sos << '?' << this->get_query ().c_str ();
+ if (!this->get_fragment ().empty ())
+ sos << '#' << this->get_fragment ().c_str ();
+ return sos.str ();
+ }
+
+ ACE::INet::ClientRequestHandler* URL::create_default_request_handler () const
+ {
+ ACE::INet::ClientRequestHandler* prh = 0;
+ ACE_NEW_NORETURN (prh, ACE::HTTP::ClientRequestHandler ());
+ return prh;
+ }
+
+ const URL::Factory& URL::factory_ = *URL::TURLFactorySingleton::instance ();
+
+ URL::Factory::Factory ()
+ {
+ ACE::INet::URL_Base::register_factory (this);
+ }
+
+ URL::Factory::~Factory ()
+ {}
+
+ const ACE_CString& URL::Factory::protocol ()
+ {
+ return URL::protocol ();
+ }
+
+ ACE::INet::URL_Base* URL::Factory::create_from_string (const ACE_CString& url_string)
+ {
+ URL* purl = 0;
+ ACE_NEW_NORETURN (purl, URL (url_string));
+ return purl;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTPS_URL.h b/ACE/protocols/ace/INet/HTTPS_URL.h
new file mode 100644
index 00000000000..32c1554f44f
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_URL.h
@@ -0,0 +1,89 @@
+// $Id$
+
+/**
+ * @file HTTPS_URL.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTPS_URL_H
+#define ACE_HTTPS_URL_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/INet_SSL_Export.h"
+#include "ace/INet/HTTP_URL.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTPS
+ {
+ /**
+ * @class ACE_HTTPS_URL
+ *
+ * @brief Implements HTTPS url support.
+ *
+ */
+ class ACE_INET_SSL_Export URL
+ : public ACE::HTTP::URL
+ {
+ public:
+ URL ();
+ URL (const ACE_CString& url_string);
+ URL (const URL& url);
+ virtual ~URL ();
+
+ URL& operator =(const URL& url);
+
+ virtual const ACE_CString& get_scheme () const;
+
+ virtual ACE_CString get_request_uri () const;
+
+ virtual u_short default_port () const;
+
+ static const char* PROTOCOL;
+
+ static const ACE_CString& protocol ();
+
+ enum
+ {
+ HTTPS_PORT = 443
+ };
+
+ protected:
+ virtual ACE::INet::ClientRequestHandler* create_default_request_handler () const;
+
+ private:
+ class Factory
+ : public ACE::INet::URL_Base::Factory
+ {
+ public:
+ Factory ();
+ virtual ~Factory ();
+ virtual const ACE_CString& protocol ();
+ virtual ACE::INet::URL_Base* create_from_string (const ACE_CString& url_string);
+ };
+
+ typedef ACE_Singleton<Factory,
+ ACE_Null_Mutex> TURLFactorySingleton;
+ static const Factory& factory_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTPS_URL.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTPS_URL_H */
diff --git a/ACE/protocols/ace/INet/HTTPS_URL.inl b/ACE/protocols/ace/INet/HTTPS_URL.inl
new file mode 100644
index 00000000000..4502825a57c
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTPS_URL.inl
@@ -0,0 +1,27 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTPS
+ {
+
+ ACE_INLINE
+ const ACE_CString& URL::get_scheme () const
+ {
+ return protocol ();
+ }
+
+ ACE_INLINE
+ u_short URL::default_port () const
+ {
+ return HTTPS_PORT;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_BasicAuthentication.cpp b/ACE/protocols/ace/INet/HTTP_BasicAuthentication.cpp
new file mode 100644
index 00000000000..e50c554a4e4
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_BasicAuthentication.cpp
@@ -0,0 +1,75 @@
+// $Id$
+
+#include "ace/INet/HTTP_BasicAuthentication.h"
+#include "ace/Codecs.h"
+#include "ace/Auto_Ptr.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_BasicAuthentication.inl"
+#endif
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ const char* BasicAuthentication::SCHEME = "Basic";
+
+ BasicAuthentication::BasicAuthentication()
+ {
+ }
+
+ BasicAuthentication::BasicAuthentication(const ACE_CString& user, const ACE_CString& passwd)
+ : user_ (user), passwd_ (passwd)
+ {
+ }
+
+ BasicAuthentication::BasicAuthentication(const Request& request)
+ {
+ if (request.has_credentials ())
+ {
+ ACE_CString scheme;
+ ACE_CString info;
+ request.get_credentials (scheme, info);
+ if (scheme == SCHEME)
+ {
+ size_t out_len = 0;
+ ACE_Auto_Array_Ptr<ACE_Byte> safe_buf (ACE_Base64::decode ((const ACE_Byte*)info.c_str (),
+ &out_len));
+ ACE_CString credentials ((char*)safe_buf.get (), out_len);
+ ACE_CString::size_type pos = credentials.find (':');
+ if (pos != ACE_CString::npos)
+ {
+ this->user_ = credentials.substr (0, pos);
+ this->passwd_ = credentials.substr (pos+1);
+ }
+ }
+ }
+ }
+
+ BasicAuthentication::~BasicAuthentication()
+ {
+ }
+
+ void BasicAuthentication::set_credentials (Request& request) const
+ {
+ ACE_CString credentials (this->user_);
+ credentials += ':';
+ credentials += this->passwd_;
+ size_t out_len = 0;
+ ACE_Auto_Array_Ptr<ACE_Byte> safe_buf (
+ ACE_Base64::encode ((const ACE_Byte*)credentials.c_str (),
+ credentials.length (),
+ &out_len,
+ false));
+ ACE_CString enc_cred ((char*)safe_buf.get (), out_len);
+ request.set_credentials (SCHEME, enc_cred);
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_BasicAuthentication.h b/ACE/protocols/ace/INet/HTTP_BasicAuthentication.h
new file mode 100644
index 00000000000..110b4bd0c88
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_BasicAuthentication.h
@@ -0,0 +1,85 @@
+// $Id$
+
+/**
+ * @file HTTP_BasicAuthentication.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_BASIC_AUTHENTICATION_H
+#define ACE_HTTP_BASIC_AUTHENTICATION_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/HTTP_Request.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_BasicAuthentication
+ *
+ * @brief Provides support for HTTP Basic Authentication credentials.
+ *
+ */
+ class ACE_INET_Export BasicAuthentication
+ {
+ public:
+ /// Constructor
+ BasicAuthentication();
+
+ /// Constructor. Sets user id and password.
+ BasicAuthentication(const ACE_CString& user, const ACE_CString& passwd);
+
+ /// Constructor. Decodes cedentials from request (if any).
+ BasicAuthentication(const Request& request);
+
+ /// Destructor
+ virtual ~BasicAuthentication();
+
+ /// Set user id.
+ void user (const ACE_CString& user);
+
+ /// Get user id.
+ const ACE_CString& user () const;
+
+ /// Set password.
+ void password (const ACE_CString& passwd);
+
+ /// Get password.
+ const ACE_CString& password () const;
+
+ /// Add authentication header with encoded credentials to request.
+ void set_credentials (Request& request) const;
+
+ static const char* SCHEME;
+
+ private:
+ // prevent copying
+ BasicAuthentication(const BasicAuthentication&);
+ BasicAuthentication& operator =(BasicAuthentication&);
+
+ ACE_CString user_;
+ ACE_CString passwd_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_BasicAuthentication.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_BASIC_AUTHENTICATION_H */
diff --git a/ACE/protocols/ace/INet/HTTP_BasicAuthentication.inl b/ACE/protocols/ace/INet/HTTP_BasicAuthentication.inl
new file mode 100644
index 00000000000..56b7a2fbcba
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_BasicAuthentication.inl
@@ -0,0 +1,39 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ ACE_INLINE
+ void BasicAuthentication::user (const ACE_CString& usr)
+ {
+ this->user_ = usr;
+ }
+
+ ACE_INLINE
+ const ACE_CString& BasicAuthentication::user () const
+ {
+ return this->user_;
+ }
+
+ ACE_INLINE
+ void BasicAuthentication::password (const ACE_CString& passwd)
+ {
+ this->passwd_ = passwd;
+ }
+
+ ACE_INLINE
+ const ACE_CString& BasicAuthentication::password () const
+ {
+ return this->passwd_;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.cpp b/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.cpp
new file mode 100644
index 00000000000..ade87052b37
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.cpp
@@ -0,0 +1,367 @@
+// $Id$
+
+#include "ace/INet/HTTP_ClientRequestHandler.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_ClientRequestHandler.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/Functor_String.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ SessionFactoryRegistry::SessionFactoryRegistry ()
+ {
+ }
+
+ SessionFactoryRegistry::~SessionFactoryRegistry ()
+ {
+ }
+
+ void SessionFactoryRegistry::register_session_factory (
+ const ACE_CString& scheme,
+ SessionFactory* factory)
+ {
+ if (factory == 0)
+ this->factory_map_.unbind (scheme);
+ else
+ this->factory_map_.rebind (scheme, factory);
+ }
+
+ SessionFactory*
+ SessionFactoryRegistry::find_session_factory (const ACE_CString& scheme)
+ {
+ SessionFactory* factory = 0;
+ this->factory_map_.find (scheme, factory);
+ return factory;
+ }
+
+ SessionFactoryRegistry& SessionFactoryRegistry::instance ()
+ {
+ return *ACE_Singleton<SessionFactoryRegistry, ACE_SYNCH::MUTEX>::instance ();
+ }
+
+ SessionHolder::SessionHolder ()
+ {
+ }
+
+ SessionHolder::~SessionHolder()
+ {
+ }
+
+ SessionFactory_Impl::SessionHolder_Impl::SessionHolder_Impl ()
+ : session_ (true)
+ {
+ }
+
+ SessionFactory_Impl::SessionHolder_Impl::~SessionHolder_Impl()
+ {
+ }
+
+ SessionBase& SessionFactory_Impl::SessionHolder_Impl::session ()
+ {
+ return this->session_;
+ }
+
+ SessionFactory_Impl& SessionFactory_Impl::factory_ =
+ *ACE_Singleton<SessionFactory_Impl,ACE_SYNCH::NULL_MUTEX>::instance ();
+
+ SessionFactory_Impl::SessionFactory_Impl ()
+ {
+ INET_DEBUG (6, (LM_INFO, DLINFO
+ ACE_TEXT ("HTTP_SessionFactory_Impl::ctor - ")
+ ACE_TEXT ("registering session factory for scheme [%C]\n"),
+ URL::protocol ().c_str ()));
+ SessionFactoryRegistry::instance ().register_session_factory (URL::protocol (), this);
+ }
+
+ SessionFactory_Impl::~SessionFactory_Impl ()
+ {
+ }
+
+ ACE::INet::ConnectionHolder*
+ SessionFactory_Impl::create_connection (
+ const ACE::INet::ConnectionKey& key) const
+ {
+ INET_TRACE ("HTTP_SessionFactory_Impl::create_connection");
+
+ const ClientRequestHandler::HttpConnectionKey& ikey =
+ dynamic_cast<const ClientRequestHandler::HttpConnectionKey&> (key);
+
+ SessionHolder_Impl* session_holder = 0;
+ ACE_NEW_RETURN (session_holder,
+ SessionHolder_Impl (),
+ 0);
+ ACE_Auto_Ptr<SessionHolder_Impl> session_safe_ref (session_holder);
+
+ (*session_holder)->set_host (ikey.host (), ikey.port ());
+ if (ikey.is_proxy_connection ())
+ {
+ (*session_holder)->set_proxy_target (ikey.proxy_target_host (),
+ ikey.proxy_target_port ());
+ }
+
+ if ((*session_holder)->connect (true))
+ {
+ return session_safe_ref.release ();
+ }
+
+ return 0;
+ }
+
+ ClientRequestHandler::HttpConnectionKey::HttpConnectionKey (
+ const ACE_CString& host,
+ u_short port)
+ : INetConnectionKey (host, port),
+ proxy_connection_ (false),
+ proxy_target_port_ (0)
+ {
+ }
+
+ ClientRequestHandler::HttpConnectionKey::HttpConnectionKey (
+ const ACE_CString& proxy_host,
+ u_short proxy_port,
+ const ACE_CString& host,
+ u_short port)
+ : INetConnectionKey (proxy_host, proxy_port),
+ proxy_connection_ (true),
+ proxy_target_host_ (host),
+ proxy_target_port_ (port)
+ {
+ }
+
+ ClientRequestHandler::HttpConnectionKey::~HttpConnectionKey()
+ {
+ }
+
+ u_long ClientRequestHandler::HttpConnectionKey::hash () const
+ {
+ if (this->proxy_connection_)
+ return ACE_Hash<ACE_CString>()(this->proxy_target_host_) +
+ this->proxy_target_port_ +
+ (this->proxy_connection_ ? 1 : 0);
+ else
+ return INetConnectionKey::hash () +
+ (this->proxy_connection_ ? 1 : 0);
+ }
+
+ ACE::INet::ConnectionKey* ClientRequestHandler::HttpConnectionKey::duplicate () const
+ {
+ ConnectionKey* k = 0;
+ if (this->proxy_connection_)
+ {
+ ACE_NEW_RETURN (k,
+ HttpConnectionKey (this->host (), this->port (),
+ this->proxy_target_host_,
+ this->proxy_target_port_),
+ 0);
+ }
+ else
+ {
+ ACE_NEW_RETURN (k,
+ HttpConnectionKey (this->host (), this->port ()),
+ 0);
+ }
+ return k;
+ }
+
+ bool ClientRequestHandler::HttpConnectionKey::equal (const ACE::INet::ConnectionKey& key) const
+ {
+ try {
+ const HttpConnectionKey& http_key = dynamic_cast<const HttpConnectionKey&> (key);
+ return (INetConnectionKey::equal (key) &&
+ this->proxy_connection_ == http_key.is_proxy_connection () &&
+ (!this->proxy_connection_ ||
+ (this->proxy_target_host_ == http_key.proxy_target_host () &&
+ this->proxy_target_port_ == http_key.proxy_target_port ())));
+ }
+ catch (...) {
+ return false;
+ }
+ }
+
+ ClientRequestHandler::ClientRequestHandler ()
+ : request_ (Request::HTTP_1_0),
+ session_ (0)
+ {
+ }
+
+ ClientRequestHandler::~ClientRequestHandler ()
+ {
+ this->release_connection ();
+ }
+
+ bool ClientRequestHandler::is_response_ok () const
+ {
+ return this->response_.get_status ().is_ok () &&
+ !const_cast<ClientRequestHandler*> (this)->response_stream ().bad ();
+ }
+
+ std::istream& ClientRequestHandler::handle_open_request (
+ const ACE::INet::URL_Base& url)
+ {
+ const URL& http_url = dynamic_cast<const URL&> (url);
+ return this->handle_get_request (http_url);
+ }
+
+ std::istream& ClientRequestHandler::handle_get_request (
+ const URL& http_url)
+ {
+ bool connected = false;
+ if (http_url.has_proxy ())
+ connected = this->initialize_connection (http_url.get_scheme (),
+ http_url.get_host(),
+ http_url.get_port (),
+ true,
+ http_url.get_proxy_host(),
+ http_url.get_proxy_port ());
+ else
+ connected = this->initialize_connection (http_url.get_scheme (),
+ http_url.get_host(),
+ http_url.get_port ());
+
+ if (connected)
+ {
+ this->request_.reset (Request::HTTP_GET,
+ http_url.get_request_uri (),
+ this->request_.get_version ());
+
+ this->response_.reset ();
+
+ this->initialize_request (http_url, this->request_);
+
+ if (!this->session ()->send_request (this->request_) ||
+ !this->session ()->receive_response (this->response_))
+ {
+ this->close_connection ();
+
+ this->handle_request_error(http_url);
+ }
+ }
+ else
+ {
+ this->handle_connection_error (http_url);
+ }
+
+ return this->response_stream ();
+ }
+
+ void ClientRequestHandler::on_eof ()
+ {
+ this->release_connection ();
+ }
+
+ bool ClientRequestHandler::initialize_connection (const ACE_CString& scheme,
+ const ACE_CString& host,
+ u_short port,
+ bool proxy_conn,
+ const ACE_CString& proxy_host,
+ u_short proxy_port)
+ {
+ SessionFactory* session_factory =
+ SessionFactoryRegistry::instance ().find_session_factory (scheme);
+
+ if (session_factory == 0)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("ClientRequestHandler::initialize_connection - ")
+ ACE_TEXT ("unable to find session factory for scheme [%C]\n"),
+ scheme.c_str ()));
+ return false;
+ }
+
+ ACE::INet::ConnectionHolder* pch = 0;
+ if (proxy_conn)
+ {
+ if (!this->connection_cache ().claim_connection (HttpConnectionKey (proxy_host,
+ proxy_port,
+ host,
+ port),
+ pch,
+ *session_factory))
+ return false;
+ }
+ else
+ {
+ if (!this->connection_cache ().claim_connection (HttpConnectionKey (host,
+ port),
+ pch,
+ *session_factory))
+ return false;
+ }
+
+ this->session (dynamic_cast<SessionHolder*> (pch));
+ return true;
+ }
+
+ void ClientRequestHandler::initialize_request (const URL& /*url*/, Request& /*request*/)
+ {
+ }
+
+ void ClientRequestHandler::handle_request_error (const URL& /*url*/)
+ {
+ }
+
+ void ClientRequestHandler::handle_connection_error (const URL& /*url*/)
+ {
+ }
+
+ void ClientRequestHandler::release_connection ()
+ {
+ if (this->session_)
+ {
+ if (this->session ()->is_proxy_connection ())
+ {
+ this->connection_cache ().release_connection (
+ HttpConnectionKey (this->session ()->get_host (),
+ this->session ()->get_port (),
+ this->session ()->get_proxy_target_host (),
+ this->session ()->get_proxy_target_port ()),
+ this->session_);
+ }
+ else
+ {
+ this->connection_cache ().release_connection (
+ HttpConnectionKey (this->session ()->get_host (),
+ this->session ()->get_port ()),
+ this->session_);
+ }
+ this->session_ = 0;
+ }
+ }
+
+ void ClientRequestHandler::close_connection ()
+ {
+ if (this->session_)
+ {
+ if (this->session ()->is_proxy_connection ())
+ {
+ this->connection_cache ().release_connection (
+ HttpConnectionKey (this->session ()->get_host (),
+ this->session ()->get_port (),
+ this->session ()->get_proxy_target_host (),
+ this->session ()->get_proxy_target_port ()),
+ this->session_);
+ }
+ else
+ {
+ this->connection_cache ().release_connection (
+ HttpConnectionKey (this->session ()->get_host (),
+ this->session ()->get_port ()),
+ this->session_);
+ }
+ this->session_ = 0;
+ }
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.h b/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.h
new file mode 100644
index 00000000000..a2c1ea8708c
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.h
@@ -0,0 +1,254 @@
+// $Id$
+
+/**
+ * @file HTTP_ClientRequestHandler.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_CLIENT_REQUEST_HANDLER_H
+#define ACE_HTTP_CLIENT_REQUEST_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Synch_Traits.h"
+#include "ace/Singleton.h"
+#include "ace/Thread_Mutex.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/IOS_util.h"
+#include "ace/INet/StreamInterceptor.h"
+#include "ace/INet/ClientRequestHandler.h"
+#include "ace/INet/HTTP_Request.h"
+#include "ace/INet/HTTP_Response.h"
+#include "ace/INet/HTTP_URL.h"
+#include "ace/INet/HTTP_Session.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_SessionHolder
+ *
+ * @brief Abstract base class for HTTP session objects.
+ *
+ */
+ class ACE_INET_Export SessionHolder
+ : public ACE::INet::ConnectionHolder
+ {
+ protected:
+ SessionHolder ();
+ virtual ~SessionHolder();
+
+ virtual SessionBase& session () = 0;
+
+ public:
+ SessionBase& operator *();
+ SessionBase* operator ->();
+ };
+
+ /**
+ * @class ACE_HTTP_SessionFactory
+ *
+ * @brief Abstract base class for HTTP session factories.
+ *
+ */
+ class ACE_INET_Export SessionFactory
+ : public ACE::INet::ConnectionFactory
+ {
+ protected:
+ SessionFactory () {}
+ virtual ~SessionFactory () {}
+ };
+
+ /**
+ * @class ACE_HTTP_SessionFactory_Impl
+ *
+ * @brief Implementation of HTTP session factory.
+ *
+ */
+ class ACE_INET_Export SessionFactory_Impl
+ : public SessionFactory
+ {
+ private:
+ SessionFactory_Impl ();
+ virtual ~SessionFactory_Impl ();
+
+ friend class ACE_Singleton<SessionFactory_Impl, ACE_SYNCH::NULL_MUTEX>;
+
+ static SessionFactory_Impl& factory_;
+
+ class SessionHolder_Impl : public SessionHolder
+ {
+ public:
+ SessionHolder_Impl ();
+ virtual ~SessionHolder_Impl();
+
+ protected:
+ virtual SessionBase& session ();
+
+ private:
+ Session_T<ACE_SYNCH> session_;
+ };
+
+ public:
+ virtual ACE::INet::ConnectionHolder* create_connection (
+ const ACE::INet::ConnectionKey& key) const;
+ };
+
+ /**
+ * @class ACE_HTTP_SessionFactoryRegistry
+ *
+ * @brief Implements registry of HTTP session factories.
+ *
+ */
+ class ACE_INET_Export SessionFactoryRegistry
+ {
+ private:
+ SessionFactoryRegistry ();
+ ~SessionFactoryRegistry ();
+
+ friend class ACE_Singleton<SessionFactoryRegistry, ACE_SYNCH::MUTEX>;
+
+ public:
+
+ void register_session_factory (const ACE_CString& scheme,
+ SessionFactory* factory);
+
+ SessionFactory* find_session_factory (const ACE_CString& scheme);
+
+ static SessionFactoryRegistry& instance ();
+
+ private:
+ typedef ACE_Map_Manager<ACE_CString,
+ SessionFactory*,
+ ACE_SYNCH::MUTEX> TSessionFactoryMap;
+
+ TSessionFactoryMap factory_map_;
+ };
+
+ /**
+ * @class ACE_HTTP_ClientRequestHandler
+ *
+ * @brief This class implements clientside request handling
+ * for HTTP(S) URLs.
+ *
+ * The class supports the HTTP protocol as specified in RFC 2616.
+ */
+ class ACE_INET_Export ClientRequestHandler
+ : public ACE::INet::ClientINetRequestHandler,
+ public ACE::IOS::StreamInterceptor
+ {
+ public:
+ ClientRequestHandler ();
+ virtual ~ClientRequestHandler ();
+
+ virtual Request& request ();
+
+ virtual const Request& request () const;
+
+ virtual Response& response ();
+
+ virtual const Response& response () const;
+
+ std::ostream& request_stream ();
+
+ virtual std::istream& response_stream ();
+
+ virtual bool is_response_ok () const;
+
+ virtual std::istream& handle_open_request (const ACE::INet::URL_Base& url);
+
+ virtual std::istream& handle_get_request (const URL& url);
+/*
+ virtual std::istream& handle_post_request (const URL& url,
+ const PostData& post_data);
+
+ virtual std::istream& handle_put_request (const URL& url,
+ std::istream* put_data = 0);
+*/
+
+#if (defined(_MSC_VER) || defined(__MINGW32__))
+ class ACE_INET_Export HttpConnectionKey
+#else
+ class HttpConnectionKey
+#endif
+ : public INetConnectionKey
+ {
+ public:
+ HttpConnectionKey (const ACE_CString& host,
+ u_short port);
+ HttpConnectionKey (const ACE_CString& proxy_host,
+ u_short proxy_port,
+ const ACE_CString& target_host,
+ u_short target_port);
+ virtual ~HttpConnectionKey();
+
+ virtual u_long hash () const;
+
+ virtual ConnectionKey* duplicate () const;
+
+ bool is_proxy_connection () const;
+
+ const ACE_CString& proxy_target_host () const;
+
+ u_short proxy_target_port () const;
+
+ protected:
+ virtual bool equal (const ConnectionKey& key) const;
+
+ private:
+ bool proxy_connection_;
+ ACE_CString proxy_target_host_;
+ u_short proxy_target_port_;
+ };
+
+ protected:
+ virtual void on_eof ();
+
+ SessionHolder& session ();
+
+ void session (SessionHolder* session);
+
+ virtual bool initialize_connection (const ACE_CString& scheme,
+ const ACE_CString& host,
+ u_short port,
+ bool proxy_conn = false,
+ const ACE_CString& proxy_host = Request::EMPTY,
+ u_short proxy_port = 0);
+
+ virtual void initialize_request (const URL& url, Request& request);
+
+ virtual void handle_request_error (const URL& url);
+
+ virtual void handle_connection_error (const URL& url);
+
+ void release_connection ();
+
+ void close_connection ();
+
+ private:
+ Request request_;
+ Response response_;
+ SessionHolder* session_;
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_ClientRequestHandler.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_CLIENT_REQUEST_HANDLER_H */
diff --git a/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.inl b/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.inl
new file mode 100644
index 00000000000..3e023ecd6e7
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_ClientRequestHandler.inl
@@ -0,0 +1,95 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+ ACE_INLINE
+ SessionBase& SessionHolder::operator *()
+ {
+ return this->session ();
+ }
+
+ ACE_INLINE
+ SessionBase* SessionHolder::operator -> ()
+ {
+ return &this->session ();
+ }
+
+ ACE_INLINE
+ bool ClientRequestHandler::HttpConnectionKey::is_proxy_connection () const
+ {
+ return this->proxy_connection_;
+ }
+
+ ACE_INLINE
+ const ACE_CString& ClientRequestHandler::HttpConnectionKey::proxy_target_host () const
+ {
+ return this->proxy_target_host_;
+ }
+
+ ACE_INLINE
+ u_short ClientRequestHandler::HttpConnectionKey::proxy_target_port () const
+ {
+ return this->proxy_target_port_;
+ }
+
+ ACE_INLINE
+ Request& ClientRequestHandler::request ()
+ {
+ return this->request_;
+ }
+
+ ACE_INLINE
+ const Request& ClientRequestHandler::request () const
+ {
+ return this->request_;
+ }
+
+ ACE_INLINE
+ Response& ClientRequestHandler::response ()
+ {
+ return this->response_;
+ }
+
+ ACE_INLINE
+ const Response& ClientRequestHandler::response () const
+ {
+ return this->response_;
+ }
+
+ ACE_INLINE
+ SessionHolder& ClientRequestHandler::session ()
+ {
+ return *this->session_;
+ }
+
+ ACE_INLINE
+ void ClientRequestHandler::session (SessionHolder* session)
+ {
+ this->session_ = session;
+ }
+
+ ACE_INLINE
+ std::ostream& ClientRequestHandler::request_stream ()
+ {
+ return this->session_ ?
+ this->session ()->request_stream (*this) :
+ ACE::IOS::Null::out_stream_;
+ }
+
+ ACE_INLINE
+ std::istream& ClientRequestHandler::response_stream ()
+ {
+ return this->session_ ?
+ this->session ()->response_stream (*this) :
+ ACE::IOS::Null::in_stream_;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Header.cpp b/ACE/protocols/ace/INet/HTTP_Header.cpp
new file mode 100644
index 00000000000..7397e0ce18d
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Header.cpp
@@ -0,0 +1,47 @@
+// $Id$
+
+#include "ace/INet/HTTP_Header.h"
+#include "ace/OS_NS_stdlib.h"
+#include <string>
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Header.inl"
+#endif
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ const ACE_CString Header::HTTP_1_0 = "HTTP/1.0";
+ const ACE_CString Header::HTTP_1_1 = "HTTP/1.1";
+ const ACE_CString Header::CHUNKED_TRANSFER_ENCODING = "chunked";
+ const ACE_CString Header::TRANSFER_ENCODING = "Transfer-Encoding";
+ const ACE_CString Header::CONNECTION = "Connection";
+ const ACE_CString Header::CONNECTION_KEEP_ALIVE = "Keep-Alive";
+ const ACE_CString Header::CONNECTION_CLOSE = "Close";
+
+ Header::Header()
+ : ACE::INet::HeaderBase (),
+ version_ (HTTP_1_0)
+ {
+ }
+
+ Header::Header(const ACE_CString& version)
+ : ACE::INet::HeaderBase (),
+ version_ (version)
+ {
+ }
+
+ Header::~Header()
+ {
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Header.h b/ACE/protocols/ace/INet/HTTP_Header.h
new file mode 100644
index 00000000000..558ca663516
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Header.h
@@ -0,0 +1,98 @@
+// $Id$
+
+/**
+ * @file HTTP_Header.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_HEADER_H
+#define ACE_HTTP_HEADER_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/HeaderBase.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_Header
+ *
+ * @brief Encapsulates common HTTP message properties.
+ *
+ */
+ class ACE_INET_Export Header
+ : public ACE::INet::HeaderBase
+ {
+ public:
+ /// Constructor
+ Header();
+
+ /// Constructor
+ Header(const ACE_CString& version);
+
+ /// Destructor
+ virtual ~Header();
+
+ /// Sets the HTTP version to use.
+ void set_version(const ACE_CString& version);
+
+ /// Returns the HTTP version.
+ const ACE_CString& get_version() const;
+
+ /// If flag is true, sets the Transfer-Encoding header to
+ /// CHUNKED_TRANSFER_ENCODING. Otherwise, removes the
+ /// Transfer-Encoding header.
+ void set_chunked_transfer_encoding(bool flag);
+
+ /// Returns true if the Transfer-Encoding header is set
+ /// and its value is CHUNKED_TRANSFER_ENCODING.
+ bool has_chunked_transfer_encoding() const;
+
+ /// Sets the value of the Connection header field.
+ /// The value is set to "Keep-Alive" if true
+ /// specified, or to "Close" otherwise.
+ void set_keep_alive(bool keep_alive);
+
+ /// Returns true if
+ /// * the message has a Connection header field and its value is "Keep-Alive"
+ /// * the message is a HTTP/1.1 message and no Connection header is set
+ /// Returns false otherwise.
+ bool has_keep_alive() const;
+
+ static const ACE_CString HTTP_1_0;
+ static const ACE_CString HTTP_1_1;
+
+ static const ACE_CString CHUNKED_TRANSFER_ENCODING;
+
+ static const ACE_CString TRANSFER_ENCODING;
+ static const ACE_CString CONNECTION;
+
+ static const ACE_CString CONNECTION_KEEP_ALIVE;
+ static const ACE_CString CONNECTION_CLOSE;
+
+ private:
+ ACE_CString version_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Header.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_HEADER_H */
diff --git a/ACE/protocols/ace/INet/HTTP_Header.inl b/ACE/protocols/ace/INet/HTTP_Header.inl
new file mode 100644
index 00000000000..2895ef048c6
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Header.inl
@@ -0,0 +1,64 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ ACE_INLINE
+ void Header::set_version(const ACE_CString& version)
+ {
+ this->version_ = version;
+ }
+
+ ACE_INLINE
+ const ACE_CString& Header::get_version() const
+ {
+ return this->version_;
+ }
+
+ ACE_INLINE
+ void Header::set_chunked_transfer_encoding(bool flag)
+ {
+ if (flag)
+ {
+ this->set (TRANSFER_ENCODING, CHUNKED_TRANSFER_ENCODING);
+ }
+ else
+ {
+ this->remove (TRANSFER_ENCODING);
+ }
+ }
+
+ ACE_INLINE
+ bool Header::has_chunked_transfer_encoding() const
+ {
+ ACE_CString val;
+ return this->get (TRANSFER_ENCODING, val) &&
+ (val == CHUNKED_TRANSFER_ENCODING);
+ }
+
+ ACE_INLINE
+ void Header::set_keep_alive(bool keep_alive)
+ {
+ this->set (CONNECTION, keep_alive ?
+ CONNECTION_KEEP_ALIVE :
+ CONNECTION_CLOSE);
+ }
+
+ ACE_INLINE
+ bool Header::has_keep_alive() const
+ {
+ ACE_CString val;
+ return this->get (CONNECTION, val) &&
+ (val == CONNECTION_KEEP_ALIVE);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_IOStream.cpp b/ACE/protocols/ace/INet/HTTP_IOStream.cpp
new file mode 100644
index 00000000000..ec0eb70a5a9
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_IOStream.cpp
@@ -0,0 +1,110 @@
+// $Id$
+
+#include "ace/INet/HTTP_IOStream.h"
+#include "ace/INet/IOS_util.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_IOStream.inl"
+#endif
+
+#include "ace/Truncate.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ StreamBuffer::StreamBuffer (std::iostream& stream, StreamBuffer::policy_type* policy)
+ : ACE::IOS::BufferedStreamBuffer (BUFFER_SIZE,
+ std::ios::in | std::ios::out),
+ stream_ (stream),
+ policy_ (policy)
+ {
+ if (this->policy_)
+ this->policy_->set_stream_buffer (this);
+ }
+
+ StreamBuffer::~StreamBuffer ()
+ {
+ if (this->policy_)
+ delete this->policy_;
+ }
+
+ int StreamBuffer::read_from_stream (char* buffer, std::streamsize length)
+ {
+ if (this->policy_)
+ return this->policy_->read_from_stream (buffer, length);
+ else
+ return this->read_from_stream_i (buffer, length);
+ }
+
+ int StreamBuffer::read_from_stream_i (char* buffer, std::streamsize length)
+ {
+ this->stream_.read (buffer, length);
+ return ACE_Utils::truncate_cast<int> (this->stream_.gcount ());
+ }
+
+ int StreamBuffer::write_to_stream (const char* buffer, std::streamsize length)
+ {
+ if (this->policy_)
+ return this->policy_->write_to_stream (buffer, length);
+ else
+ return this->write_to_stream_i (buffer, length);
+ }
+
+ int StreamBuffer::write_to_stream_i (const char* buffer, std::streamsize length)
+ {
+ this->stream_.write (buffer, length);
+ return this->stream_.good () ? ACE_Utils::truncate_cast<int> (length) : -1;
+ }
+
+ int StreamBuffer::sync ()
+ {
+ if (ACE::IOS::BufferedStreamBuffer::sync () == -1)
+ return -1;
+ return this->stream_.sync ();
+ }
+
+ IOS::IOS (std::iostream& stream, StreamBuffer::policy_type* policy)
+ : streambuf_ (stream, policy)
+ {
+ ace_ios_init (&this->streambuf_);
+ }
+
+ IOS::~IOS ()
+ {
+ try
+ {
+ this->streambuf_.sync();
+ }
+ catch (...)
+ {
+ }
+ }
+
+ OStream::OStream(std::iostream& stream, StreamBuffer::policy_type* policy)
+ : IOS (stream, policy), std::ostream (&streambuf_)
+ {
+ }
+
+ OStream::~OStream()
+ {
+ }
+
+ IStream::IStream(std::iostream& stream, StreamBuffer::policy_type* policy)
+ : IOS (stream, policy), std::istream (&streambuf_)
+ {
+ }
+
+ IStream::~IStream()
+ {
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_IOStream.h b/ACE/protocols/ace/INet/HTTP_IOStream.h
new file mode 100644
index 00000000000..2157fd1c893
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_IOStream.h
@@ -0,0 +1,133 @@
+// $Id$
+
+/**
+ * @file HTTP_IOStream.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_IOSTREAM_H
+#define ACE_HTTP_IOSTREAM_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/BufferedStreamBuffer.h"
+#include "ace/INet/HTTP_StreamPolicyBase.h"
+#include <ostream>
+#include <istream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+
+ /**
+ * @class ACE_HTTP_StreamBuffer
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export StreamBuffer
+ : public ACE::IOS::BufferedStreamBuffer
+ {
+ public:
+ typedef StreamPolicyBase<StreamBuffer> policy_type;
+
+ StreamBuffer (std::iostream& stream, policy_type* policy = 0);
+ virtual ~StreamBuffer ();
+
+ virtual int sync ();
+
+ protected:
+ friend class StreamPolicyBase<StreamBuffer>;
+
+ enum
+ {
+ BUFFER_SIZE = 4096
+ };
+
+ virtual int read_from_stream (char* buffer, std::streamsize length);
+
+ virtual int write_to_stream (const char* buffer, std::streamsize length);
+
+ virtual int read_from_stream_i (char* buffer, std::streamsize length);
+
+ virtual int write_to_stream_i (const char* buffer, std::streamsize length);
+
+ private:
+ std::iostream & stream_;
+ policy_type * policy_;
+ };
+
+
+ /**
+ * @class ACE_HTTP_IOS
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export IOS
+ : public virtual std::ios
+ {
+ public:
+ IOS (std::iostream& stream, StreamBuffer::policy_type* policy = 0);
+ ~IOS ();
+
+ StreamBuffer* rdbuf ();
+
+ protected:
+ StreamBuffer streambuf_;
+ };
+
+ /**
+ * @class ACE_HTTP_OStream
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export OStream
+ : public IOS, public std::ostream
+ {
+ public:
+ explicit OStream(std::iostream& stream, StreamBuffer::policy_type* policy = 0);
+ ~OStream();
+
+ void set_interceptor (StreamBuffer::interceptor_type& interceptor);
+ };
+
+ /**
+ * @class ACE_HTTP_IStream
+ *
+ * @brief
+ *
+ */
+ class ACE_INET_Export IStream
+ : public IOS, public std::istream
+ {
+ public:
+ explicit IStream(std::iostream& stream, StreamBuffer::policy_type* policy = 0);
+ ~IStream();
+
+ void set_interceptor (StreamBuffer::interceptor_type& interceptor);
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_IOStream.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_IOSTREAM_H */
diff --git a/ACE/protocols/ace/INet/HTTP_IOStream.inl b/ACE/protocols/ace/INet/HTTP_IOStream.inl
new file mode 100644
index 00000000000..96b0a83a438
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_IOStream.inl
@@ -0,0 +1,33 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ ACE_INLINE
+ StreamBuffer* IOS::rdbuf ()
+ {
+ return &this->streambuf_;
+ }
+
+ ACE_INLINE
+ void OStream::set_interceptor (StreamBuffer::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ ACE_INLINE
+ void IStream::set_interceptor (StreamBuffer::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Request.cpp b/ACE/protocols/ace/INet/HTTP_Request.cpp
new file mode 100644
index 00000000000..c6c99bae01d
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Request.cpp
@@ -0,0 +1,181 @@
+// $Id$
+
+#include "ace/String_Base.h"
+#include "ace/OS_NS_ctype.h"
+#include "ace/INet/HTTP_Request.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Request.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ const ACE_CString Request::HTTP_GET = "GET";
+ const ACE_CString Request::HTTP_HEAD = "HEAD";
+ const ACE_CString Request::HTTP_PUT = "PUT";
+ const ACE_CString Request::HTTP_POST = "POST";
+ const ACE_CString Request::HTTP_OPTIONS = "OPTIONS";
+ const ACE_CString Request::HTTP_DELETE = "DELETE";
+ const ACE_CString Request::HTTP_TRACE = "TRACE";
+ const ACE_CString Request::HTTP_CONNECT = "CONNECT";
+ const ACE_CString Request::HOST = "Host";
+ const ACE_CString Request::COOKIE = "Cookie";
+ const ACE_CString Request::AUTHORIZATION = "Authorization";
+
+ Request::Request()
+ : method_ (HTTP_GET),
+ uri_ ("/")
+ {
+ }
+
+ Request::Request(const ACE_CString& version)
+ : Header (version),
+ method_ (HTTP_GET),
+ uri_ ("/")
+ {
+ }
+
+ Request::Request(const ACE_CString& method, const ACE_CString& uri)
+ : method_ (method),
+ uri_ (uri)
+ {
+ }
+
+ Request::Request(const ACE_CString& method, const ACE_CString& uri, const ACE_CString& version)
+ : Header (version),
+ method_ (method),
+ uri_ (uri)
+ {
+ }
+
+ Request::~Request()
+ {
+ }
+
+ void Request::set_host(const ACE_CString& host, u_short port)
+ {
+ ACE_CString val(host);
+ val += ':';
+ char buf[16];
+ val += ACE_OS::itoa (port, buf, 10);
+ this->set (HOST, val);
+ }
+
+ void Request::add_cookie(const ACE_CString & cookie)
+ {
+ this->add (COOKIE, cookie);
+ }
+
+ void Request::get_cookies(ACE_Array<ACE_CString> & cookies) const
+ {
+ this->get_values (COOKIE, cookies);
+ }
+
+ void Request::get_credentials(ACE_CString& scheme, ACE_CString& auth_info) const
+ {
+ if (this->has_credentials ())
+ {
+ ACE_CString auth;
+ this->get (AUTHORIZATION, auth);
+ ACE_CString::ITERATOR it (auth);
+ while (!it.done () && ACE_OS::ace_isspace (*it))
+ ++it;
+ while (!it.done () && !ACE_OS::ace_isspace (*it))
+ scheme += *it++;
+ while (!it.done () && ACE_OS::ace_isspace (*it))
+ ++it;
+ while (!it.done ())
+ auth_info += *it++;
+ }
+ }
+
+ void Request::set_credentials(const ACE_CString& scheme, const ACE_CString& auth_info)
+ {
+ ACE_CString val (scheme);
+ val += " ";
+ val += auth_info;
+ this->set (AUTHORIZATION, val);
+ }
+
+ void Request::write(std::ostream& str) const
+ {
+ str << this->method_.c_str () << " " << this->uri_.c_str () << " " << this->get_version ().c_str () << "\r\n";
+
+ INET_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("ACE_INet_HTTP: --> %C %C %C\n"),
+ this->method_.c_str (),
+ this->uri_.c_str (),
+ this->get_version ().c_str ()));
+
+ Header::write (str);
+ str << "\r\n";
+ }
+
+ bool Request::read(std::istream& str)
+ {
+ ACE_CString method (16, '\0');
+ ACE_CString uri (128, '\0');
+ ACE_CString version (16, '\0');
+
+ int ch = str.peek ();
+ if (ch == eof_)
+ {
+ str.get (); // skip to eof
+ return false;
+ }
+ // skip whitespace
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ str.get ();
+ }
+ // get method
+ ch = this->read_ws_field (str, method, MAX_METHOD_LENGTH);
+ if (ch == eof_ || !ACE_OS::ace_isspace (ch))
+ return false; // invalid HTTP method string
+ // skip whitespace
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ str.get ();
+ }
+ // get uri
+ ch = this->read_ws_field (str, uri, MAX_URI_LENGTH);
+ if (ch == eof_ || !ACE_OS::ace_isspace (ch))
+ return false; // invalid HTTP uri string
+ // skip whitespace
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ str.get ();
+ }
+ // get version
+ ch = this->read_ws_field (str, version, MAX_VERSION_LENGTH);
+ if (ch == eof_ || !ACE_OS::ace_isspace (ch))
+ return false; // invalid HTTP version string
+ // skip to eol
+ while (ch != '\n' && ch != eof_)
+ ch = str.get ();
+ // get header lines
+ if (!Header::read (str))
+ return false;
+ // skip empty line
+ ch = str.get ();
+ while (ch != '\n' && ch != eof_)
+ ch = str.get ();
+ this->set_method (method);
+ this->set_URI (uri);
+ this->set_version(version);
+ return true;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Request.h b/ACE/protocols/ace/INet/HTTP_Request.h
new file mode 100644
index 00000000000..b10a870f389
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Request.h
@@ -0,0 +1,139 @@
+// $Id$
+
+/**
+ * @file HTTP_Request.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_REQUEST_H
+#define ACE_HTTP_REQUEST_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Containers_T.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/Request.h"
+#include "ace/INet/HTTP_Header.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ class ACE_INET_Export Request
+ : public ACE::INet::Request, public Header
+ {
+ public:
+ /// Constructor; creates a GET / HTTP/1.0 HTTP request.
+ Request();
+
+ /// Constructor; creates a GET request with given version.
+ Request(const ACE_CString& version);
+
+ /// Constructor; creates a HTTP/1.0 request with given method and URI.
+ Request(const ACE_CString& method, const ACE_CString& uri);
+
+ /// Constructor; creates an HTTP request with given method, URI and version.
+ Request(const ACE_CString& method, const ACE_CString& uri, const ACE_CString& version);
+
+ /// Destructor
+ virtual ~Request();
+
+ /// Reset the request object
+ void reset ();
+
+ void reset (const ACE_CString& version);
+
+ void reset (const ACE_CString& method, const ACE_CString& uri);
+
+ void reset (const ACE_CString& method, const ACE_CString& uri, const ACE_CString& version);
+
+ /// Set the method.
+ void set_method(const ACE_CString& method);
+
+ /// Return the method.
+ const ACE_CString& get_method() const;
+
+ /// Set the request URI.
+ void set_URI(const ACE_CString& uri);
+
+ /// Return the request URI.
+ const ACE_CString& get_URI() const;
+
+ /// Set the Host header field.
+ void set_host(const ACE_CString& host);
+
+ void set_host(const ACE_CString& host, u_short port);
+
+ /// Returns true if Host header field has been set.
+ bool has_host () const;
+
+ /// Returns the value of the Host header field.
+ ACE_CString get_host() const;
+
+ /// Adds a Cookie header.
+ void add_cookie(const ACE_CString & cookie);
+
+ /// Get cookies from Cookie header(s).
+ void get_cookies(ACE_Array<ACE_CString> & cookies) const;
+
+ /// Returns true if the request contains authentication
+ /// information in the form of an Authorization header.
+ bool has_credentials() const;
+
+ /// Returns the authentication scheme and authentication information
+ void get_credentials(ACE_CString& scheme, ACE_CString& auth_info) const;
+
+ /// Set the authentication scheme and information
+ void set_credentials(const ACE_CString& scheme, const ACE_CString& auth_info);
+
+ /// Writes the HTTP request to the given stream
+ void write(std::ostream& str) const;
+
+ /// Reads the HTTP request from the
+ /// given stream.
+ bool read(std::istream& str);
+
+ static const ACE_CString HTTP_GET;
+ static const ACE_CString HTTP_HEAD;
+ static const ACE_CString HTTP_PUT;
+ static const ACE_CString HTTP_POST;
+ static const ACE_CString HTTP_OPTIONS;
+ static const ACE_CString HTTP_DELETE;
+ static const ACE_CString HTTP_TRACE;
+ static const ACE_CString HTTP_CONNECT;
+
+ static const ACE_CString HOST;
+ static const ACE_CString COOKIE;
+ static const ACE_CString AUTHORIZATION;
+
+ private:
+ enum Limits
+ {
+ MAX_METHOD_LENGTH = 32,
+ MAX_URI_LENGTH = 4096,
+ MAX_VERSION_LENGTH = 8
+ };
+
+ ACE_CString method_;
+ ACE_CString uri_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Request.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_REQUEST_H */
diff --git a/ACE/protocols/ace/INet/HTTP_Request.inl b/ACE/protocols/ace/INet/HTTP_Request.inl
new file mode 100644
index 00000000000..e1aff7cedf5
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Request.inl
@@ -0,0 +1,101 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ ACE_INLINE
+ void Request::reset ()
+ {
+ this->clear ();
+ this->set_version (HTTP_1_0);
+ this->method_ = HTTP_GET;
+ this->uri_ = "/";
+ }
+
+ ACE_INLINE
+ void Request::reset (const ACE_CString& version)
+ {
+ this->clear ();
+ this->set_version (version);
+ this->method_ = HTTP_GET;
+ this->uri_ = "/";
+ }
+
+ ACE_INLINE
+ void Request::reset (const ACE_CString& method, const ACE_CString& uri)
+ {
+ this->clear ();
+ this->set_version (HTTP_1_0);
+ this->method_ = method;
+ this->uri_ = uri;
+ }
+
+ ACE_INLINE
+ void Request::reset (const ACE_CString& method, const ACE_CString& uri, const ACE_CString& version)
+ {
+ this->clear ();
+ this->set_version (version);
+ this->method_ = method;
+ this->uri_ = uri;
+ }
+
+ ACE_INLINE
+ void Request::set_method(const ACE_CString& method)
+ {
+ this->method_ = method;
+ }
+
+ ACE_INLINE
+ const ACE_CString& Request::get_method() const
+ {
+ return this->method_;
+ }
+
+ ACE_INLINE
+ void Request::set_URI(const ACE_CString& uri)
+ {
+ this->uri_ = uri;
+ }
+
+ ACE_INLINE
+ const ACE_CString& Request::get_URI() const
+ {
+ return this->uri_;
+ }
+
+ ACE_INLINE
+ void Request::set_host(const ACE_CString& host)
+ {
+ this->set (HOST, host);
+ }
+
+ ACE_INLINE
+ bool Request::has_host () const
+ {
+ return this->has (HOST);
+ }
+
+ ACE_INLINE
+ ACE_CString Request::get_host() const
+ {
+ ACE_CString val;
+ this->get (HOST, val);
+ return val;
+ }
+
+ ACE_INLINE
+ bool Request::has_credentials() const
+ {
+ return this->has (AUTHORIZATION);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Response.cpp b/ACE/protocols/ace/INet/HTTP_Response.cpp
new file mode 100644
index 00000000000..fff4e2233ee
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Response.cpp
@@ -0,0 +1,126 @@
+// $Id$
+
+#include "ace/OS_NS_stdlib.h"
+#include "ace/OS_NS_ctype.h"
+#include "ace/String_Base.h"
+#include "ace/INet/HTTP_Response.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Response.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ const ACE_CString Response::COOKIE = "Set-Cookie";
+
+ Response::Response()
+ {
+ }
+
+ Response::Response(const Status& status)
+ : status_ (status)
+ {
+ }
+
+ Response::Response(const ACE_CString& version, const Status& status)
+ : Header (version), status_ (status)
+ {
+ }
+
+ Response::~Response()
+ {
+ }
+
+ void Response::add_cookie(const ACE_CString & cookie)
+ {
+ this->add (COOKIE, cookie);
+ }
+
+ void Response::get_cookies(ACE_Array<ACE_CString> & cookies) const
+ {
+ this->get_values (COOKIE, cookies);
+ }
+
+ void Response::write(ostream& str) const
+ {
+ str << this->get_version ().c_str () << " "
+ << static_cast<int>(this->status_.get_status ()) << " "
+ << this->status_.get_reason ().c_str () << "\r\n";
+ Header::write (str);
+ str << "\r\n";
+ }
+
+ bool Response::read(istream& str)
+ {
+ ACE_CString version;
+ ACE_CString status;
+ ACE_CString reason;
+
+ int ch = str.peek ();
+ if (ch == eof_)
+ {
+ str.get (); // skip to eof
+ return false;
+ }
+ // skip whitespace
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ str.get ();
+ }
+ // get version
+ ch = this->read_ws_field (str, version, MAX_VERSION_LENGTH);
+ if (ch == eof_ || !ACE_OS::ace_isspace (ch))
+ return false; // invalid HTTP version string
+ // skip whitespace
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ str.get ();
+ }
+ // get status
+ ch = this->read_ws_field (str, status, MAX_STATUS_LENGTH);
+ if (ch == eof_ || !ACE_OS::ace_isspace (ch))
+ return false; // invalid HTTP status code
+ // skip whitespace
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ str.get ();
+ }
+ // get reason
+ ch = this->read_field (str, reason, MAX_REASON_LENGTH, '\r');
+ if (ch == '\r')
+ ch = str.get (); // get lf
+ if (ch != '\n')
+ return false; // HTTP reason string too long
+
+ INET_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("ACE_INet_HTTP: <-- %C %C %C\n"),
+ version.c_str (),
+ status.c_str (),
+ reason.c_str()));
+
+ // get header lines
+ if (!Header::read (str))
+ return false;
+ // skip empty line
+ ch = str.get ();
+ while (ch != '\n' && ch != eof_)
+ ch = str.get ();
+ this->set_version(version);
+ this->status_.set_status (status);
+ this->status_.set_reason (reason);
+ return true;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Response.h b/ACE/protocols/ace/INet/HTTP_Response.h
new file mode 100644
index 00000000000..fe6e3fbc813
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Response.h
@@ -0,0 +1,101 @@
+// $Id$
+
+/**
+ * @file HTTP_Response.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_RESPONSE_H
+#define ACE_HTTP_RESPONSE_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Containers_T.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/Response.h"
+#include "ace/INet/HTTP_Header.h"
+#include "ace/INet/HTTP_Status.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_Response
+ *
+ * @brief Encapsulates HTTP response message properties.
+ *
+ */
+ class ACE_INET_Export Response
+ : public ACE::INet::Response, public Header
+ {
+ public:
+ /// Constructor
+ Response();
+
+ Response(const Status& status);
+
+ Response(const ACE_CString& version, const Status& status = Status());
+
+ /// Destructor
+ virtual ~Response();
+
+ /// Reset the response object
+ void reset ();
+
+ void reset (const Status& status);
+
+ void reset (const ACE_CString& version, const Status& status = Status());
+
+ /// Set the status.
+ void set_status(const Status& status);
+
+ /// Return the status.
+ const Status& get_status() const;
+
+ /// Adds a Cookie header.
+ void add_cookie(const ACE_CString& cookie);
+
+ /// Get cookies from Cookie header(s)).
+ void get_cookies(ACE_Array<ACE_CString> & cookies) const;
+
+ /// Writes the HTTP response to the given stream
+ virtual void write(std::ostream& str) const;
+
+ /// Reads the HTTP response from the
+ /// given stream.
+ /// 100 Continue responses are ignored.
+ virtual bool read(std::istream& str);
+
+ static const ACE_CString COOKIE;
+
+ private:
+ enum Limits
+ {
+ MAX_VERSION_LENGTH = 8,
+ MAX_STATUS_LENGTH = 3,
+ MAX_REASON_LENGTH = 512
+ };
+
+ Status status_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Response.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_RESPONSE_H */
diff --git a/ACE/protocols/ace/INet/HTTP_Response.inl b/ACE/protocols/ace/INet/HTTP_Response.inl
new file mode 100644
index 00000000000..891e9a332d8
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Response.inl
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ ACE_INLINE
+ void Response::reset ()
+ {
+ this->clear ();
+ this->set_version (EMPTY);
+ this->status_ = Status ();
+ }
+
+ ACE_INLINE
+ void Response::reset (const Status& status)
+ {
+ this->clear ();
+ this->set_version (EMPTY);
+ this->status_ = status;
+ }
+
+ ACE_INLINE
+ void Response::reset (const ACE_CString& version, const Status& status)
+ {
+ this->clear ();
+ this->set_version (version);
+ this->status_ = status;
+ }
+
+ ACE_INLINE
+ void Response::set_status(const Status& status)
+ {
+ this->status_ = status;
+ }
+
+ /// Return the status.
+ ACE_INLINE
+ const Status& Response::get_status() const
+ {
+ return this->status_;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Session.cpp b/ACE/protocols/ace/INet/HTTP_Session.cpp
new file mode 100644
index 00000000000..a0e37795799
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Session.cpp
@@ -0,0 +1,182 @@
+// $Id$
+
+#ifndef ACE_HTTP_SESSION_CPP
+#define ACE_HTTP_SESSION_CPP
+
+#include "ace/INet/HTTP_Session.h"
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/IOS_util.h"
+#include "ace/INet/HTTP_URL.h"
+#include "ace/INET_Addr.h"
+#include "ace/Event_Handler.h"
+#include "ace/Connector.h"
+#include "ace/String_Base.h"
+#include <istream>
+#include <ostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::Session_T (bool keep_alive)
+ : SessionBase (URL::HTTP_PORT, keep_alive),
+ connection_ (0),
+ sock_stream_ (0)
+ {
+ INET_TRACE ("ACE_HTTP_Session - ctor");
+ }
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::Session_T (const ACE_Time_Value& timeout,
+ bool keep_alive,
+ const ACE_Time_Value* alive_timeout)
+ : SessionBase (URL::HTTP_PORT, timeout, keep_alive, alive_timeout),
+ connection_ (0),
+ sock_stream_ (0)
+ {
+ INET_TRACE ("ACE_HTTP_Session - ctor");
+ }
+
+ template <ACE_SYNCH_DECL>
+ Session_T<ACE_SYNCH_USE>::~Session_T ()
+ {
+ INET_TRACE ("ACE_HTTP_Session - dtor");
+ this->close_streams ();
+ this->close_connection ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::is_connected () const
+ {
+ return this->connection_ && this->connection_->is_connected ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::connect_i (const ACE_Synch_Options& sync_opt)
+ {
+ INET_TRACE ("ACE_HTTP_Session::connect_i");
+
+ typedef ACE_Connector<connection_type, ACE_SOCK_CONNECTOR> connector_type;
+
+ connector_type connector;
+
+ connection_type* new_connection = 0;
+ ACE_NEW_RETURN (new_connection,
+ connection_type(sync_opt),
+ false);
+ if (connector.connect (new_connection,
+ ACE_INET_Addr (this->port_,
+ this->host_.c_str ()),
+ ACE_Synch_Options (0,this->http_timeout_)) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_HTTP_Session::connect_i - ")
+ ACE_TEXT ("failed to connect; host=%C, port=%d\n"),
+ ACE_OS::last_error (), this->host_.c_str (), this->port_));
+ // as the connection was dynamically allocated
+ // the connector causes it to be destroyed after
+ // the connection failure
+ return false;
+ }
+
+ this->connection_ = new_connection;
+ this->connection_->reference_counting_policy ().value (
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+
+ ACE_NEW_NORETURN (this->sock_stream_,
+ sock_stream_type (this->connection_));
+ if (this->sock_stream_)
+ {
+ this->cannot_reconnect_ = false;
+ this->reactive_ = sync_opt[ACE_Synch_Options::USE_REACTOR];
+
+ // reset reconnect timer
+ this->reconnect_timer_ = this->keep_alive_timeout_;
+ this->reconnect_countdown_.start ();
+
+ return true;
+ }
+ else
+ {
+ this->close ();
+ return false;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ bool Session_T<ACE_SYNCH_USE>::attach_connection (connection_type* connection)
+ {
+ INET_TRACE ("ACE_HTTP_Session::attach_connection");
+
+ if (!connection->is_connected ())
+ return false;
+
+ this->close ();
+
+ ACE_INET_Addr remote;
+ connection->peer ().get_remote_addr (remote);
+ this->host_ = remote.get_host_name ();
+ this->port_ = remote.get_port_number ();
+
+ this->connection_ = connection;
+ this->connection_->add_reference ();
+
+ ACE_NEW_NORETURN (this->sock_stream_,
+ sock_stream_type (this->connection_));
+
+ if (this->sock_stream_)
+ {
+ this->keep_alive_ = true;
+ this->keep_alive_timeout_ = ACE_Time_Value::zero;
+ this->cannot_reconnect_ = true;
+ return true;
+ }
+ else
+ {
+ this->close ();
+ return false;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::close_connection ()
+ {
+ if (this->sock_stream_)
+ {
+ delete this->sock_stream_;
+ this->sock_stream_ = 0;
+ }
+
+ if (this->connection_)
+ {
+ // this should be the last referece and removing it
+ // causes the connection to be destroyed
+ this->connection_->remove_reference ();
+ this->connection_ = 0;
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Session_T<ACE_SYNCH_USE>::close_i ()
+ {
+ INET_TRACE ("ACE_HTTP_Session::close_i");
+
+ this->close_connection ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ std::iostream& Session_T<ACE_SYNCH_USE>::sock_stream ()
+ {
+ return *this->sock_stream_;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HTTP_SESSION_CPP */
diff --git a/ACE/protocols/ace/INet/HTTP_Session.h b/ACE/protocols/ace/INet/HTTP_Session.h
new file mode 100644
index 00000000000..0eac1ba24ff
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Session.h
@@ -0,0 +1,81 @@
+// $Id$
+
+/**
+ * @file HTTP_Session.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_SESSION_H
+#define ACE_HTTP_SESSION_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/HTTP_SessionBase.h"
+#include "ace/SOCK_Connector.h"
+#include "ace/INet/StreamHandler.h"
+#include "ace/INet/Sock_IOStream.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_Session
+ *
+ * @brief Encapsulates HTTP session.
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class Session_T : public SessionBase
+ {
+ public:
+ typedef ACE::IOS::StreamHandler<ACE_SOCK_STREAM, ACE_SYNCH_USE> connection_type;
+
+ Session_T (bool keep_alive = false);
+
+ Session_T (const ACE_Time_Value& timeout,
+ bool keep_alive = false,
+ const ACE_Time_Value* alive_timeout = 0);
+
+ virtual ~Session_T ();
+
+ virtual bool is_connected () const;
+
+ bool attach_connection (connection_type* connection);
+
+ protected:
+
+ void close_connection ();
+
+ virtual bool connect_i (const ACE_Synch_Options& sync_opt);
+
+ virtual void close_i ();
+
+ virtual std::iostream& sock_stream ();
+
+ private:
+ typedef ACE::IOS::Sock_IOStreamBase<ACE_SYNCH_USE> sock_stream_type;
+
+ connection_type* connection_;
+ sock_stream_type* sock_stream_;
+ };
+
+ typedef Session_T<ACE_NULL_SYNCH> Session;
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/HTTP_Session.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("HTTP_Session.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_SESSION_H */
diff --git a/ACE/protocols/ace/INet/HTTP_SessionBase.cpp b/ACE/protocols/ace/INet/HTTP_SessionBase.cpp
new file mode 100644
index 00000000000..3c9aafc0cd6
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_SessionBase.cpp
@@ -0,0 +1,314 @@
+// $Id$
+
+#include "ace/INet/HTTP_SessionBase.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_SessionBase.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/HTTP_StreamPolicy.h"
+#include "ace/INet/String_IOStream.h"
+#include "ace/INet/IOS_util.h"
+#include "ace/INet/HTTP_URL.h"
+#include "ace/INET_Addr.h"
+#include "ace/String_Base.h"
+#include <istream>
+#include <ostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ SessionBase::SessionBase (u_short port, bool keep_alive)
+ : port_ (port),
+ reactive_ (false),
+ in_stream_ (0),
+ out_stream_ (0),
+ http_timeout_ (DEFAULT_TIMEOUT),
+ keep_alive_timeout_ (DEFAULT_KEEP_ALIVE_TIMEOUT),
+ reconnect_timer_ (DEFAULT_KEEP_ALIVE_TIMEOUT),
+ reconnect_countdown_ (&reconnect_timer_),
+ keep_alive_ (keep_alive),
+ needs_reconnect_ (false),
+ cannot_reconnect_ (false),
+ expects_response_body_ (false)
+ {
+ INET_TRACE ("ACE_HTTP_SessionBase - ctor");
+ }
+
+ SessionBase::SessionBase (u_short port,
+ const ACE_Time_Value& timeout,
+ bool keep_alive,
+ const ACE_Time_Value* alive_timeout)
+ : port_ (port),
+ reactive_ (false),
+ in_stream_ (0),
+ out_stream_ (0),
+ http_timeout_ (timeout),
+ keep_alive_timeout_ (DEFAULT_KEEP_ALIVE_TIMEOUT),
+ reconnect_timer_ (DEFAULT_KEEP_ALIVE_TIMEOUT),
+ reconnect_countdown_ (&reconnect_timer_),
+ keep_alive_ (keep_alive),
+ needs_reconnect_ (false),
+ cannot_reconnect_ (false),
+ expects_response_body_ (false)
+ {
+ INET_TRACE ("ACE_HTTP_SessionBase - ctor");
+ if (keep_alive && alive_timeout)
+ {
+ this->keep_alive_timeout_ = *alive_timeout;
+ }
+ }
+
+ SessionBase::~SessionBase ()
+ {
+ INET_TRACE ("ACE_HTTP_SessionBase - dtor");
+ this->close_streams ();
+ }
+
+ bool SessionBase::connect (bool use_reactor)
+ {
+ INET_TRACE ("ACE_HTTP_SessionBase::connect");
+
+ this->close ();
+
+ unsigned long f_reactor = use_reactor ? ACE_Synch_Options::USE_REACTOR : 0;
+ ACE_Synch_Options sync_opt (ACE_Synch_Options::USE_TIMEOUT | f_reactor,
+ this->http_timeout_);
+
+ return this->connect_i (sync_opt);
+ }
+
+ std::ostream& SessionBase::send_request (Request& request)
+ {
+ INET_TRACE ("ACE_HTTP_SessionBase::send_request");
+
+ if (this->in_stream_)
+ {
+ delete this->in_stream_;
+ this->in_stream_ = 0;
+ }
+
+ bool keep_alive = this->keep_alive ();
+ if ((this->is_connected () && !keep_alive) || this->reconnect_needed ())
+ {
+ close();
+ this->needs_reconnect_ = false;
+ }
+
+ if (this->out_stream_)
+ {
+ delete this->out_stream_;
+ this->out_stream_ = 0;
+ }
+
+ if (!this->is_connected ())
+ {
+ if (this->cannot_reconnect_ || !this->connect(this->reactive_))
+ {
+ if (!this->cannot_reconnect_)
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) HTTP_SessionBase::send_request - ")
+ ACE_TEXT ("reconnect failed\n"),
+ ACE_OS::last_error ()));
+ return ACE::IOS::Null::out_stream_;
+ }
+ }
+ if (!keep_alive)
+ request.set_keep_alive (false);
+ if (!request.has_host ())
+ {
+ if (this->port_ == URL::HTTP_PORT)
+ request.set_host (this->host_);
+ else
+ request.set_host (this->host_, this->port_);
+ }
+
+ this->expects_response_body_ = request.get_method() != Request::HTTP_HEAD;
+
+ if (request.has_chunked_transfer_encoding ())
+ {
+ request.write (this->sock_stream ());
+ ChunkedTransferStreamPolicy* pol;
+ ACE_NEW_RETURN (pol,
+ ChunkedTransferStreamPolicy (),
+ ACE::IOS::Null::out_stream_);
+ ACE_NEW_RETURN (this->out_stream_,
+ OStream (this->sock_stream (), pol),
+ ACE::IOS::Null::out_stream_);
+ }
+ else if (request.get_content_length () != Header::UNKNOWN_CONTENT_LENGTH)
+ {
+ ACE::IOS::CString_OStream cs;
+ request.write (cs);
+ FixedLengthStreamPolicy* pol;
+ ACE_NEW_RETURN (pol,
+ FixedLengthStreamPolicy (cs.str ().length () + request.get_content_length ()),
+ ACE::IOS::Null::out_stream_);
+ ACE_NEW_RETURN (this->out_stream_,
+ OStream (this->sock_stream (), pol),
+ ACE::IOS::Null::out_stream_);
+ (*this->out_stream_) << cs.str ().c_str ();
+ }
+ else if (request.get_method () != Request::HTTP_PUT && request.get_method() != Request::HTTP_POST)
+ {
+ ACE::IOS::CString_OStream cs;
+ request.write (cs);
+ FixedLengthStreamPolicy* pol;
+ ACE_NEW_RETURN (pol,
+ FixedLengthStreamPolicy (cs.str ().length ()),
+ ACE::IOS::Null::out_stream_);
+ ACE_NEW_RETURN (this->out_stream_,
+ OStream (this->sock_stream (), pol),
+ ACE::IOS::Null::out_stream_);
+ (*this->out_stream_) << cs.str ().c_str ();
+ }
+ else
+ {
+ ACE_NEW_RETURN (this->out_stream_,
+ OStream (this->sock_stream ()),
+ ACE::IOS::Null::out_stream_);
+ request.write (*this->out_stream_);
+ }
+ // reset reconnect timer
+ this->reconnect_timer_ = this->keep_alive_timeout_;
+ this->reconnect_countdown_.start ();
+
+ return *this->out_stream_;
+ }
+
+ std::ostream& SessionBase::request_stream ()
+ {
+ if (this->out_stream_)
+ return *this->out_stream_;
+ else
+ return ACE::IOS::Null::out_stream_;
+ }
+
+ std::ostream& SessionBase::request_stream (
+ ACE::IOS::StreamInterceptor& interceptor)
+ {
+ if (this->out_stream_)
+ {
+ this->out_stream_->set_interceptor (interceptor);
+ return *this->out_stream_;
+ }
+ else
+ return ACE::IOS::Null::out_stream_;
+ }
+
+ std::istream& SessionBase::receive_response (Response& response)
+ {
+ INET_TRACE ("ACE_HTTP_SessionBase::receive_response");
+
+ if (this->in_stream_)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("HTTP_Session::receive_response - ")
+ ACE_TEXT ("invalid invocation without send_request\n")));
+ // receive_response called second time without
+ // new send_request in between
+ return ACE::IOS::Null::in_stream_;
+ }
+
+ if (this->out_stream_)
+ {
+ delete this->out_stream_;
+ this->out_stream_ = 0;
+ }
+
+ this->sock_stream ().flush ();
+
+ do
+ {
+ response.clear ();
+ if (!response.read (this->sock_stream ()))
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) HTTP_Session::receive_response - ")
+ ACE_TEXT ("failed to read response\n"),
+ ACE_OS::last_error ()));
+ return ACE::IOS::Null::in_stream_;
+ }
+ }
+ while (response.get_status ().get_status() == Status::HTTP_CONTINUE);
+
+ this->needs_reconnect_ = this->keep_alive () && !response.has_keep_alive ();
+
+ if (!this->expects_response_body_)
+ {
+ FixedLengthStreamPolicy* pol;
+ ACE_NEW_RETURN (pol,
+ FixedLengthStreamPolicy (0),
+ ACE::IOS::Null::in_stream_);
+ ACE_NEW_RETURN (this->in_stream_,
+ IStream (this->sock_stream (), pol),
+ ACE::IOS::Null::in_stream_);
+ }
+ else if (response.has_chunked_transfer_encoding ())
+ {
+ ChunkedTransferStreamPolicy* pol;
+ ACE_NEW_RETURN (pol,
+ ChunkedTransferStreamPolicy (),
+ ACE::IOS::Null::in_stream_);
+ ACE_NEW_RETURN (this->in_stream_,
+ IStream (this->sock_stream (), pol),
+ ACE::IOS::Null::in_stream_);
+ }
+ else if (response.get_content_length () != Header::UNKNOWN_CONTENT_LENGTH)
+ {
+ FixedLengthStreamPolicy* pol;
+ ACE_NEW_RETURN (pol,
+ FixedLengthStreamPolicy (response.get_content_length ()),
+ ACE::IOS::Null::in_stream_);
+ ACE_NEW_RETURN (this->in_stream_,
+ IStream (this->sock_stream (), pol),
+ ACE::IOS::Null::in_stream_);
+ }
+ else
+ {
+ ACE_NEW_RETURN (this->in_stream_,
+ IStream (this->sock_stream ()),
+ ACE::IOS::Null::in_stream_);
+ }
+
+ return *this->in_stream_;
+ }
+
+ std::istream& SessionBase::response_stream ()
+ {
+ if (this->in_stream_)
+ return *this->in_stream_;
+ else
+ return ACE::IOS::Null::in_stream_;
+ }
+
+ std::istream& SessionBase::response_stream (
+ ACE::IOS::StreamInterceptor& interceptor)
+ {
+ if (this->in_stream_)
+ {
+ this->in_stream_->set_interceptor (interceptor);
+ return *this->in_stream_;
+ }
+ else
+ return ACE::IOS::Null::in_stream_;
+ }
+
+ void SessionBase::close ()
+ {
+ INET_TRACE ("ACE_HTTP_SessionBase::close");
+
+ this->close_streams ();
+
+ this->close_i ();
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_SessionBase.h b/ACE/protocols/ace/INet/HTTP_SessionBase.h
new file mode 100644
index 00000000000..6233f80c6dd
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_SessionBase.h
@@ -0,0 +1,134 @@
+// $Id$
+
+/**
+ * @file HTTP_SessionBase.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_SESSION_BASE_H
+#define ACE_HTTP_SESSION_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+#include "ace/Countdown_Time.h"
+#include "ace/Synch_Options.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/HTTP_Request.h"
+#include "ace/INet/HTTP_Response.h"
+#include "ace/INet/HTTP_IOStream.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_SessionBase
+ *
+ * @brief Abstract base class for HTTP(S) sessions.
+ *
+ */
+ class ACE_INET_Export SessionBase
+ {
+ public:
+ SessionBase (u_short port,
+ bool keep_alive = false);
+
+ SessionBase (u_short port,
+ const ACE_Time_Value& timeout,
+ bool keep_alive = false,
+ const ACE_Time_Value* alive_timeout = 0);
+
+ virtual ~SessionBase ();
+
+ void set_keep_alive (bool f);
+
+ bool keep_alive () const;
+
+ virtual bool is_connected () const = 0;
+
+ void set_host (const ACE_CString& host,
+ u_short port);
+
+ void set_host (const ACE_CString& host);
+
+ void set_port (u_short port);
+
+ void set_proxy_target (const ACE_CString& host, u_short port);
+
+ const ACE_CString& get_host () const;
+
+ u_short get_port () const;
+
+ bool is_proxy_connection () const;
+
+ const ACE_CString& get_proxy_target_host () const;
+
+ u_short get_proxy_target_port () const;
+
+ bool connect (bool use_reactor = false);
+
+ std::ostream& send_request (Request& request);
+
+ std::ostream& request_stream ();
+
+ std::ostream& request_stream (ACE::IOS::StreamInterceptor& interceptor);
+
+ std::istream& receive_response (Response& response);
+
+ std::istream& response_stream ();
+
+ std::istream& response_stream (ACE::IOS::StreamInterceptor& interceptor);
+
+ void close ();
+
+ protected:
+
+ bool reconnect_needed ();
+
+ void close_streams ();
+
+ virtual bool connect_i (const ACE_Synch_Options& sync_opt) = 0;
+
+ virtual void close_i () = 0;
+
+ virtual std::iostream& sock_stream () = 0;
+
+ enum
+ {
+ DEFAULT_TIMEOUT = 30, // sec
+ DEFAULT_KEEP_ALIVE_TIMEOUT = 8 // sec
+ };
+
+ ACE_CString host_;
+ u_short port_;
+ bool proxy_connection_;
+ ACE_CString proxy_target_host_;
+ u_short proxy_target_port_;
+
+ bool reactive_;
+ IStream* in_stream_;
+ OStream* out_stream_;
+ ACE_Time_Value http_timeout_;
+ ACE_Time_Value keep_alive_timeout_;
+ ACE_Time_Value reconnect_timer_;
+ ACE_Countdown_Time reconnect_countdown_;
+ bool keep_alive_;
+ bool needs_reconnect_;
+ bool cannot_reconnect_;
+ bool expects_response_body_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_SessionBase.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_SESSION_BASE_H */
diff --git a/ACE/protocols/ace/INet/HTTP_SessionBase.inl b/ACE/protocols/ace/INet/HTTP_SessionBase.inl
new file mode 100644
index 00000000000..6539f51b284
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_SessionBase.inl
@@ -0,0 +1,124 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+ ACE_INLINE
+ void SessionBase::set_keep_alive (bool f)
+ {
+ this->keep_alive_ = f;
+ }
+
+ ACE_INLINE
+ bool SessionBase::keep_alive () const
+ {
+ return this->keep_alive_;
+ }
+
+ ACE_INLINE
+ void SessionBase::set_host (const ACE_CString& host, u_short port)
+ {
+ if (!this->is_connected ())
+ {
+ this->host_ = host;
+ this->port_ = port;
+ this->proxy_connection_ = false;
+ }
+ }
+
+ ACE_INLINE
+ void SessionBase::set_host (const ACE_CString& host)
+ {
+ if (!this->is_connected ())
+ {
+ this->host_ = host;
+ this->proxy_connection_ = false;
+ }
+ }
+
+ ACE_INLINE
+ void SessionBase::set_port (u_short port)
+ {
+ if (!this->is_connected ())
+ {
+ this->port_ = port;
+ }
+ }
+
+ ACE_INLINE
+ void SessionBase::set_proxy_target (const ACE_CString& host, u_short port)
+ {
+ if (!this->is_connected ())
+ {
+ this->proxy_target_host_ = host;
+ this->proxy_target_port_ = port;
+ this->proxy_connection_ = true;
+ }
+ }
+
+ ACE_INLINE
+ const ACE_CString& SessionBase::get_host () const
+ {
+ return this->host_;
+ }
+
+ ACE_INLINE
+ u_short SessionBase::get_port () const
+ {
+ return this->port_;
+ }
+
+ ACE_INLINE
+ bool SessionBase::is_proxy_connection () const
+ {
+ return this->proxy_connection_;
+ }
+
+ ACE_INLINE
+ const ACE_CString& SessionBase::get_proxy_target_host () const
+ {
+ return this->proxy_target_host_;
+ }
+
+ ACE_INLINE
+ u_short SessionBase::get_proxy_target_port () const
+ {
+ return this->proxy_target_port_;
+ }
+
+ ACE_INLINE
+ bool SessionBase::reconnect_needed ()
+ {
+ if (this->cannot_reconnect_)
+ return false;
+ if (!this->needs_reconnect_)
+ {
+ this->reconnect_countdown_.update ();
+ return this->reconnect_timer_ == ACE_Time_Value::zero;
+ }
+ return true;
+ }
+
+ ACE_INLINE
+ void SessionBase::close_streams ()
+ {
+ if (this->in_stream_)
+ {
+ delete this->in_stream_;
+ this->in_stream_ = 0;
+ }
+ if (this->out_stream_)
+ {
+ delete this->out_stream_;
+ this->out_stream_ = 0;
+ }
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Simple_exec.cpp b/ACE/protocols/ace/INet/HTTP_Simple_exec.cpp
new file mode 100644
index 00000000000..65805c2c582
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Simple_exec.cpp
@@ -0,0 +1,294 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/OS_NS_errno.h"
+#include "ace/INet/HTTP_URL.h"
+#include "ace/INet/HTTP_ClientRequestHandler.h"
+#if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1
+# include "ace/INet/SSL_CallbackManager.h"
+# include "ace/INet/HTTPS_Context.h"
+#endif
+#include "ace/INet/INet_Log.h"
+#include <iostream>
+#include <fstream>
+
+ACE_CString proxy_hostname;
+u_short proxy_port = ACE::HTTP::URL::HTTP_PROXY_PORT;
+ACE_CString url;
+ACE_CString outfile;
+#if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1
+int ssl_mode = ACE_SSL_Context::SSLv3;
+bool verify_peer = true;
+bool ignore_verify = false;
+ACE_CString certificate;
+ACE_CString private_key;
+ACE_CString ca_location;
+#endif
+
+void
+usage (void)
+{
+ std::cout << "usage: http_simple_wget [options] <url>\n";
+ std::cout << "Executes an HTTP GET request and sends the result to STDOUT or file\n";
+ std::cout << "\t-H <hostname> \t\tproxy host to connect to\n";
+ std::cout << "\t-p <port> \t\tproxy port to connect to\n";
+ std::cout << "\t-o <filename> \t\tfile to write output to\n";
+#if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1
+ std::cout << "\t-v <ssl version>\t\tSSL version to use: 2, 23, 3\n";
+ std::cout << "\t-n \t\tno peer certificate verification\n";
+ std::cout << "\t-i \t\tignore peer certificate verification failures\n";
+ std::cout << "\t-c <filename> \t\tcertificate file (PEM format)\n";
+ std::cout << "\t-k <filename> \t\tprivate key file (PEM format); requires -c\n";
+ std::cout << "\t-C <path> \t\ttrusted CA file or directory\n";
+#endif
+}
+
+bool
+parse_args (int argc, ACE_TCHAR *argv [])
+{
+#if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("H:p:o:hv:nic:k:C:"), 0, 0, ACE_Get_Opt::RETURN_IN_ORDER);
+#else
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("H:p:o:h"), 0, 0, ACE_Get_Opt::RETURN_IN_ORDER);
+#endif
+
+ int c;
+ ACE_CString s;
+ while ((c = get_opt ()) != EOF)
+ {
+ switch (c)
+ {
+ case 1:
+ url = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+ case 'H':
+ proxy_hostname = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+
+ case 'p':
+ proxy_port = (u_short)ACE_OS::atoi (ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ()));
+ break;
+
+ case 'o':
+ outfile = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+
+#if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1
+ case 'v':
+ {
+ ACE_CString ver = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ if (ver == "2")
+ ssl_mode = ACE_SSL_Context::SSLv2;
+ else if (ver == "23")
+ ssl_mode = ACE_SSL_Context::SSLv23;
+ else if (ver != "3") // default mode
+ {
+ std::cerr << "ERROR: Invalid SSL mode [" << ver << "] specfied!" << std::endl;
+ return false;
+ }
+ }
+ break;
+
+ case 'n':
+ verify_peer = false;
+ break;
+
+ case 'i':
+ ignore_verify = true;
+ break;
+
+ case 'c':
+ certificate = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+
+ case 'k':
+ private_key = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+
+ case 'C':
+ ca_location = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ());
+ break;
+#endif
+ case 'h':
+ default:
+ usage ();
+ return false;
+ }
+ }
+
+ return true;
+}
+
+class My_HTTP_RequestHandler
+ : public ACE::HTTP::ClientRequestHandler
+{
+ public:
+ My_HTTP_RequestHandler () : in_length_ (0), read_length_ (0) {}
+ virtual ~My_HTTP_RequestHandler () {}
+
+ protected:
+ virtual void handle_request_error (const ACE::HTTP::URL& url)
+ {
+ std::cout << "ERROR" << std::endl;
+ std::cerr << "Failed to handle request for " << url.to_string ().c_str () << std::endl;
+ }
+
+ virtual void handle_connection_error (const ACE::HTTP::URL& url)
+ {
+ std::cout << "ERROR" << std::endl;
+ std::cerr << "Failed to set up connection for " << url.to_string ().c_str () << std::endl;
+ }
+
+ virtual void after_read (const char_type* /*buffer*/, int length_read)
+ {
+ if (this->read_length_ == 0)
+ {
+ this->in_length_ = this->response ().get_content_length ();
+ }
+ this->read_length_ += length_read;
+ std::cout << "\r [" << this->read_length_ << '/';
+ if (this->in_length_ != ACE::HTTP::Response::UNKNOWN_CONTENT_LENGTH)
+ {
+ std::cout << this->in_length_ << "] " << ((this->read_length_ * 100) / this->in_length_) << "%";
+ }
+ else
+ std::cout << "???]";
+ std::cout.flush ();
+ }
+
+ virtual void on_eof ()
+ {
+ ACE::HTTP::ClientRequestHandler::on_eof ();
+ std::cout << std::endl;
+ this->read_length_ = 0;
+ }
+
+ private:
+ int in_length_;
+ int read_length_;
+};
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv [])
+{
+ ACE_Auto_Ptr<std::ofstream> fout;
+ std::ostream* sout = &std::cout;
+
+ if (!parse_args (argc, argv))
+ {
+ return 1;
+ }
+
+#if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1
+ ACE::HTTPS::Context::set_default_ssl_mode (ssl_mode);
+ ACE::HTTPS::Context::set_default_verify_mode (verify_peer);
+ ACE::HTTPS::Context::instance ().use_default_ca ();
+ if (!private_key.empty ())
+ {
+ if (certificate.empty ())
+ {
+ std::cerr << "ERROR: private key file [" << private_key << "] requires certificate file to be specified." << std::endl;
+ return 1;
+ }
+ if (!ACE::HTTPS::Context::instance ().set_key_files (private_key.c_str (), certificate.c_str ()))
+ {
+ std::cerr << "ERROR: failed to set private key [" << private_key << "]." << std::endl;
+ return 1;
+ }
+ }
+ if (!ca_location.empty ())
+ {
+ INET_DEBUG (6, (LM_INFO, DLINFO ACE_TEXT ("loading trusted CA [%C]\n"), ca_location.c_str ()));
+ if (!ACE::HTTPS::Context::instance ().load_trusted_ca (ca_location.c_str ()))
+ {
+ std::cerr << "ERROR: failed to load trusted CA from [" << ca_location << "]." << std::endl;
+ return 1;
+ }
+ INET_DEBUG (6, (LM_INFO, DLINFO ACE_TEXT ("loaded [%d] trusted CA\n"), ACE::HTTPS::Context::instance ().has_trusted_ca ()));
+ }
+ if (ignore_verify)
+ ACE::INet::SSL_CallbackManager::instance ()->set_certificate_callback (new ACE::INet::SSL_CertificateAcceptor);
+#endif
+
+ std::cout << "Starting..." << std::endl;
+
+ if (!url.empty ())
+ {
+ if (!outfile.empty ())
+ {
+ fout.reset (new std::ofstream (outfile.c_str (), std::ios_base::binary|std::ios_base::out));
+
+ if (!*fout)
+ {
+ std::cerr << "Failed to open output file : " << outfile.c_str () << std::endl;
+ return 1;
+ }
+
+ sout = fout.get ();
+ }
+
+ std::cout << "Parsing url [" << url.c_str () << "]" << std::endl;
+
+ ACE_Auto_Ptr<ACE::INet::URL_Base> url_safe (ACE::INet::URL_Base::create_from_string (url));
+
+ if (url_safe.get () == 0 || url != url_safe->to_string ())
+ {
+ std::cerr << "Failed parsing url [" << url << "]" << std::endl;
+ std::cerr << "\tresult = " << (url_safe.get () == 0 ? "(null)" : url_safe->to_string ().c_str ()) << std::endl;
+ return 1;
+ }
+
+ ACE::HTTP::URL& http_url = *dynamic_cast<ACE::HTTP::URL*> (url_safe.get ());
+
+ if (!proxy_hostname.empty ())
+ {
+ std::cout << "Setting proxy: " << proxy_hostname.c_str () << ':' << proxy_port << std::endl;
+ http_url.set_proxy (proxy_hostname, proxy_port);
+ }
+
+ std::cout << "Opening url...";
+ My_HTTP_RequestHandler my_rh;
+ ACE::INet::URLStream urlin = http_url.open (my_rh);
+ if (urlin)
+ {
+ std::cout << "Received response "
+ << (int)my_rh.response ().get_status ().get_status ()
+ << " "
+ << my_rh.response ().get_status ().get_reason ().c_str ()
+ << std::endl;
+ if (my_rh.response ().get_status ().is_ok ())
+ {
+ std::cout << "Length: ";
+ if (my_rh.response ().get_content_length () != ACE::HTTP::Response::UNKNOWN_CONTENT_LENGTH)
+ std::cout << my_rh.response ().get_content_length () << " [";
+ else
+ std::cout << "(unknown) [";
+ if (my_rh.response ().get_content_type () != ACE::HTTP::Response::UNKNOWN_CONTENT_TYPE)
+ std::cout << my_rh.response ().get_content_type ().c_str ();
+ else
+ std::cout << "(unknown)";
+ std::cout << "]" << std::endl;
+ }
+
+ std::cout << "Saving to: ";
+ if (!outfile.empty ())
+ std::cout << '\'' << outfile.c_str () << '\'' << std::endl;
+ else
+ std::cout << "(stdout)" << std::endl;
+
+ (*sout) << urlin->rdbuf ();
+ sout->flush ();
+ }
+ }
+ else
+ {
+ std::cerr << "ERROR: No URL specified!" << std::endl;
+ usage ();
+ return 1;
+ }
+
+ std::cout << "Done" << std::endl;
+
+ return 0;
+}
diff --git a/ACE/protocols/ace/INet/HTTP_Status.cpp b/ACE/protocols/ace/INet/HTTP_Status.cpp
new file mode 100644
index 00000000000..48917c29595
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Status.cpp
@@ -0,0 +1,197 @@
+// $Id$
+
+#include "ace/INet/HTTP_Status.h"
+#include "ace/INet/HeaderBase.h"
+#include "ace/OS_NS_stdlib.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Status.inl"
+#endif
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ const ACE_CString Status::HTTP_REASON_CONTINUE = "Continue";
+ const ACE_CString Status::HTTP_REASON_SWITCHING_PROTOCOLS = "Switching Protocols";
+ const ACE_CString Status::HTTP_REASON_OK = "OK";
+ const ACE_CString Status::HTTP_REASON_CREATED = "Created";
+ const ACE_CString Status::HTTP_REASON_ACCEPTED = "Accepted";
+ const ACE_CString Status::HTTP_REASON_NONAUTHORITATIVE = "Non-Authoritative Information";
+ const ACE_CString Status::HTTP_REASON_NO_CONTENT = "No Content";
+ const ACE_CString Status::HTTP_REASON_RESET_CONTENT = "Reset Content";
+ const ACE_CString Status::HTTP_REASON_PARTIAL_CONTENT = "Partial Content";
+ const ACE_CString Status::HTTP_REASON_MULTIPLE_CHOICES = "Multiple Choices";
+ const ACE_CString Status::HTTP_REASON_MOVED_PERMANENTLY = "Moved Permanently";
+ const ACE_CString Status::HTTP_REASON_FOUND = "Found";
+ const ACE_CString Status::HTTP_REASON_SEE_OTHER = "See Other";
+ const ACE_CString Status::HTTP_REASON_NOT_MODIFIED = "Not Modified";
+ const ACE_CString Status::HTTP_REASON_USEPROXY = "Use Proxy";
+ const ACE_CString Status::HTTP_REASON_TEMPORARY_REDIRECT = "Temporary Redirect";
+ const ACE_CString Status::HTTP_REASON_BAD_REQUEST = "Bad Request";
+ const ACE_CString Status::HTTP_REASON_UNAUTHORIZED = "Unauthorized";
+ const ACE_CString Status::HTTP_REASON_PAYMENT_REQUIRED = "Payment Required";
+ const ACE_CString Status::HTTP_REASON_FORBIDDEN = "Forbidden";
+ const ACE_CString Status::HTTP_REASON_NOT_FOUND = "Not Found";
+ const ACE_CString Status::HTTP_REASON_METHOD_NOT_ALLOWED = "Method Not Allowed";
+ const ACE_CString Status::HTTP_REASON_NOT_ACCEPTABLE = "Not Acceptable";
+ const ACE_CString Status::HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED = "Proxy Authentication Required";
+ const ACE_CString Status::HTTP_REASON_REQUEST_TIMEOUT = "Request Time-out";
+ const ACE_CString Status::HTTP_REASON_CONFLICT = "Conflict";
+ const ACE_CString Status::HTTP_REASON_GONE = "Gone";
+ const ACE_CString Status::HTTP_REASON_LENGTH_REQUIRED = "Length Required";
+ const ACE_CString Status::HTTP_REASON_PRECONDITION_FAILED = "Precondition Failed";
+ const ACE_CString Status::HTTP_REASON_REQUESTENTITYTOOLARGE = "Request Entity Too Large";
+ const ACE_CString Status::HTTP_REASON_REQUESTURITOOLONG = "Request-URI Too Large";
+ const ACE_CString Status::HTTP_REASON_UNSUPPORTEDMEDIATYPE = "Unsupported Media Type";
+ const ACE_CString Status::HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE = "Requested Range Not Satisfiable";
+ const ACE_CString Status::HTTP_REASON_EXPECTATION_FAILED = "Expectation Failed";
+ const ACE_CString Status::HTTP_REASON_INTERNAL_SERVER_ERROR = "Internal Server Error";
+ const ACE_CString Status::HTTP_REASON_NOT_IMPLEMENTED = "Not Implemented";
+ const ACE_CString Status::HTTP_REASON_BAD_GATEWAY = "Bad Gateway";
+ const ACE_CString Status::HTTP_REASON_SERVICE_UNAVAILABLE = "Service Unavailable";
+ const ACE_CString Status::HTTP_REASON_GATEWAY_TIMEOUT = "Gateway Time-out";
+ const ACE_CString Status::HTTP_REASON_VERSION_NOT_SUPPORTED = "HTTP Version not supported";
+ const ACE_CString Status::HTTP_REASON_UNKNOWN = "???";
+
+ Status::Status()
+ : code_ (HTTP_NONE)
+ {
+ }
+
+ Status::Status(Code status)
+ : code_ (status)
+ {
+ reason_ = get_reason(this->code_);
+ }
+
+ Status::Status(Code status, const ACE_CString& reason)
+ : code_ (status), reason_ (reason)
+ {
+ }
+
+ Status::Status(const Status& status)
+ {
+ *this = status;
+ }
+
+ Status& Status::operator =(const Status& status)
+ {
+ this->code_ = status.get_status ();
+ this->reason_ = status.get_reason ();
+ return *this;
+ }
+
+ void Status::set_status(const ACE_CString& status)
+ {
+ Code istat = (Code)ACE_OS::atoi (status.c_str ());
+ if (istat == HTTP_NONE || get_reason (istat) == HTTP_REASON_UNKNOWN)
+ {
+ this->code_ = INVALID;
+ }
+ else
+ {
+ this->code_ = istat;
+ }
+ }
+
+ const ACE_CString& Status::get_reason(Code status)
+ {
+ switch (status)
+ {
+ case HTTP_NONE:
+ return ACE::INet::HeaderBase::EMPTY;
+ case HTTP_CONTINUE:
+ return HTTP_REASON_CONTINUE;
+ case HTTP_SWITCHING_PROTOCOLS:
+ return HTTP_REASON_SWITCHING_PROTOCOLS;
+ case HTTP_OK:
+ return HTTP_REASON_OK;
+ case HTTP_CREATED:
+ return HTTP_REASON_CREATED;
+ case HTTP_ACCEPTED:
+ return HTTP_REASON_ACCEPTED;
+ case HTTP_NONAUTHORITATIVE:
+ return HTTP_REASON_NONAUTHORITATIVE;
+ case HTTP_NO_CONTENT:
+ return HTTP_REASON_NO_CONTENT;
+ case HTTP_RESET_CONTENT:
+ return HTTP_REASON_RESET_CONTENT;
+ case HTTP_PARTIAL_CONTENT:
+ return HTTP_REASON_PARTIAL_CONTENT;
+ case HTTP_MULTIPLE_CHOICES:
+ return HTTP_REASON_MULTIPLE_CHOICES;
+ case HTTP_MOVED_PERMANENTLY:
+ return HTTP_REASON_MOVED_PERMANENTLY;
+ case HTTP_FOUND:
+ return HTTP_REASON_FOUND;
+ case HTTP_SEE_OTHER:
+ return HTTP_REASON_SEE_OTHER;
+ case HTTP_NOT_MODIFIED:
+ return HTTP_REASON_NOT_MODIFIED;
+ case HTTP_USEPROXY:
+ return HTTP_REASON_USEPROXY;
+ case HTTP_TEMPORARY_REDIRECT:
+ return HTTP_REASON_TEMPORARY_REDIRECT;
+ case HTTP_BAD_REQUEST:
+ return HTTP_REASON_BAD_REQUEST;
+ case HTTP_UNAUTHORIZED:
+ return HTTP_REASON_UNAUTHORIZED;
+ case HTTP_PAYMENT_REQUIRED:
+ return HTTP_REASON_PAYMENT_REQUIRED;
+ case HTTP_FORBIDDEN:
+ return HTTP_REASON_FORBIDDEN;
+ case HTTP_NOT_FOUND:
+ return HTTP_REASON_NOT_FOUND;
+ case HTTP_METHOD_NOT_ALLOWED:
+ return HTTP_REASON_METHOD_NOT_ALLOWED;
+ case HTTP_NOT_ACCEPTABLE:
+ return HTTP_REASON_NOT_ACCEPTABLE;
+ case HTTP_PROXY_AUTHENTICATION_REQUIRED:
+ return HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED;
+ case HTTP_REQUEST_TIMEOUT:
+ return HTTP_REASON_REQUEST_TIMEOUT;
+ case HTTP_CONFLICT:
+ return HTTP_REASON_CONFLICT;
+ case HTTP_GONE:
+ return HTTP_REASON_GONE;
+ case HTTP_LENGTH_REQUIRED:
+ return HTTP_REASON_LENGTH_REQUIRED;
+ case HTTP_PRECONDITION_FAILED:
+ return HTTP_REASON_PRECONDITION_FAILED;
+ case HTTP_REQUESTENTITYTOOLARGE:
+ return HTTP_REASON_REQUESTENTITYTOOLARGE;
+ case HTTP_REQUESTURITOOLONG:
+ return HTTP_REASON_REQUESTURITOOLONG;
+ case HTTP_UNSUPPORTEDMEDIATYPE:
+ return HTTP_REASON_UNSUPPORTEDMEDIATYPE;
+ case HTTP_REQUESTED_RANGE_NOT_SATISFIABLE:
+ return HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE;
+ case HTTP_EXPECTATION_FAILED:
+ return HTTP_REASON_EXPECTATION_FAILED;
+ case HTTP_INTERNAL_SERVER_ERROR:
+ return HTTP_REASON_INTERNAL_SERVER_ERROR;
+ case HTTP_NOT_IMPLEMENTED:
+ return HTTP_REASON_NOT_IMPLEMENTED;
+ case HTTP_BAD_GATEWAY:
+ return HTTP_REASON_BAD_GATEWAY;
+ case HTTP_SERVICE_UNAVAILABLE:
+ return HTTP_REASON_SERVICE_UNAVAILABLE;
+ case HTTP_GATEWAY_TIMEOUT:
+ return HTTP_REASON_GATEWAY_TIMEOUT;
+ case HTTP_VERSION_NOT_SUPPORTED:
+ return HTTP_REASON_VERSION_NOT_SUPPORTED;
+ default:
+ return HTTP_REASON_UNKNOWN;
+ }
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_Status.h b/ACE/protocols/ace/INet/HTTP_Status.h
new file mode 100644
index 00000000000..a7435e5925b
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Status.h
@@ -0,0 +1,190 @@
+// $Id$
+
+/**
+ * @file HTTP_Status.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_STATUS_H
+#define ACE_HTTP_STATUS_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/SString.h"
+#include "ace/INet/INet_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_Status
+ *
+ * @brief Encapsulates HTTP status codes and reasons.
+ *
+ */
+ class ACE_INET_Export Status
+ {
+ public:
+ enum Code
+ {
+ INVALID = -1,
+ HTTP_NONE = 0,
+ HTTP_CONTINUE = 100,
+ HTTP_SWITCHING_PROTOCOLS = 101,
+ HTTP_OK = 200,
+ HTTP_CREATED = 201,
+ HTTP_ACCEPTED = 202,
+ HTTP_NONAUTHORITATIVE = 203,
+ HTTP_NO_CONTENT = 204,
+ HTTP_RESET_CONTENT = 205,
+ HTTP_PARTIAL_CONTENT = 206,
+ HTTP_MULTIPLE_CHOICES = 300,
+ HTTP_MOVED_PERMANENTLY = 301,
+ HTTP_FOUND = 302,
+ HTTP_SEE_OTHER = 303,
+ HTTP_NOT_MODIFIED = 304,
+ HTTP_USEPROXY = 305,
+ // 306 not defined
+ HTTP_TEMPORARY_REDIRECT = 307,
+ HTTP_BAD_REQUEST = 400,
+ HTTP_UNAUTHORIZED = 401,
+ HTTP_PAYMENT_REQUIRED = 402,
+ HTTP_FORBIDDEN = 403,
+ HTTP_NOT_FOUND = 404,
+ HTTP_METHOD_NOT_ALLOWED = 405,
+ HTTP_NOT_ACCEPTABLE = 406,
+ HTTP_PROXY_AUTHENTICATION_REQUIRED = 407,
+ HTTP_REQUEST_TIMEOUT = 408,
+ HTTP_CONFLICT = 409,
+ HTTP_GONE = 410,
+ HTTP_LENGTH_REQUIRED = 411,
+ HTTP_PRECONDITION_FAILED = 412,
+ HTTP_REQUESTENTITYTOOLARGE = 413,
+ HTTP_REQUESTURITOOLONG = 414,
+ HTTP_UNSUPPORTEDMEDIATYPE = 415,
+ HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
+ HTTP_EXPECTATION_FAILED = 417,
+ HTTP_INTERNAL_SERVER_ERROR = 500,
+ HTTP_NOT_IMPLEMENTED = 501,
+ HTTP_BAD_GATEWAY = 502,
+ HTTP_SERVICE_UNAVAILABLE = 503,
+ HTTP_GATEWAY_TIMEOUT = 504,
+ HTTP_VERSION_NOT_SUPPORTED = 505
+ };
+
+ /// Constructor; sets value to OK
+ Status();
+
+ /// Constructor; sets corresponding reason
+ Status(Code status);
+
+ /// Constructor
+ Status(Code status, const ACE_CString& reason);
+
+ /// Copy constructor
+ Status(const Status& status);
+
+ /// Copy assignment
+ Status& operator =(const Status& status);
+
+ /// Set the status code.
+ void set_status(Code status);
+
+ /// Set the status code.
+ /// String must contain valid numeric code.
+ void set_status(const ACE_CString& status);
+
+ /// Return the status code.
+ Code get_status() const;
+
+ /// Set the reason phrase.
+ void set_reason(const ACE_CString& reason);
+
+ /// Return the reason phrase.
+ const ACE_CString& get_reason() const;
+
+ /// Set the status code and corresponding reason phrase.
+ void set_status_and_reason(Code status);
+
+ /// Return true if status code != INVALID
+ bool is_valid () const;
+
+ /// Return true if status code == OK
+ bool is_ok () const;
+
+ /// Return true in case of a *valid* HTTP status
+ operator bool () const;
+
+ /// Return true if status code == INVALID
+ bool operator !() const;
+
+ /// Returns an appropriate reason phrase
+ static const ACE_CString& get_reason(Code status);
+
+ static const ACE_CString HTTP_REASON_CONTINUE;
+ static const ACE_CString HTTP_REASON_SWITCHING_PROTOCOLS;
+ static const ACE_CString HTTP_REASON_OK;
+ static const ACE_CString HTTP_REASON_CREATED;
+ static const ACE_CString HTTP_REASON_ACCEPTED;
+ static const ACE_CString HTTP_REASON_NONAUTHORITATIVE;
+ static const ACE_CString HTTP_REASON_NO_CONTENT;
+ static const ACE_CString HTTP_REASON_RESET_CONTENT;
+ static const ACE_CString HTTP_REASON_PARTIAL_CONTENT;
+ static const ACE_CString HTTP_REASON_MULTIPLE_CHOICES;
+ static const ACE_CString HTTP_REASON_MOVED_PERMANENTLY;
+ static const ACE_CString HTTP_REASON_FOUND;
+ static const ACE_CString HTTP_REASON_SEE_OTHER;
+ static const ACE_CString HTTP_REASON_NOT_MODIFIED;
+ static const ACE_CString HTTP_REASON_USEPROXY;
+ static const ACE_CString HTTP_REASON_TEMPORARY_REDIRECT;
+ static const ACE_CString HTTP_REASON_BAD_REQUEST;
+ static const ACE_CString HTTP_REASON_UNAUTHORIZED;
+ static const ACE_CString HTTP_REASON_PAYMENT_REQUIRED;
+ static const ACE_CString HTTP_REASON_FORBIDDEN;
+ static const ACE_CString HTTP_REASON_NOT_FOUND;
+ static const ACE_CString HTTP_REASON_METHOD_NOT_ALLOWED;
+ static const ACE_CString HTTP_REASON_NOT_ACCEPTABLE;
+ static const ACE_CString HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED;
+ static const ACE_CString HTTP_REASON_REQUEST_TIMEOUT;
+ static const ACE_CString HTTP_REASON_CONFLICT;
+ static const ACE_CString HTTP_REASON_GONE;
+ static const ACE_CString HTTP_REASON_LENGTH_REQUIRED;
+ static const ACE_CString HTTP_REASON_PRECONDITION_FAILED;
+ static const ACE_CString HTTP_REASON_REQUESTENTITYTOOLARGE;
+ static const ACE_CString HTTP_REASON_REQUESTURITOOLONG;
+ static const ACE_CString HTTP_REASON_UNSUPPORTEDMEDIATYPE;
+ static const ACE_CString HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE;
+ static const ACE_CString HTTP_REASON_EXPECTATION_FAILED;
+ static const ACE_CString HTTP_REASON_INTERNAL_SERVER_ERROR;
+ static const ACE_CString HTTP_REASON_NOT_IMPLEMENTED;
+ static const ACE_CString HTTP_REASON_BAD_GATEWAY;
+ static const ACE_CString HTTP_REASON_SERVICE_UNAVAILABLE;
+ static const ACE_CString HTTP_REASON_GATEWAY_TIMEOUT;
+ static const ACE_CString HTTP_REASON_VERSION_NOT_SUPPORTED;
+ static const ACE_CString HTTP_REASON_UNKNOWN;
+
+ private:
+ Code code_;
+ ACE_CString reason_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Status.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_STATUS_H */
diff --git a/ACE/protocols/ace/INet/HTTP_Status.inl b/ACE/protocols/ace/INet/HTTP_Status.inl
new file mode 100644
index 00000000000..1d62ca0f342
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Status.inl
@@ -0,0 +1,68 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+ ACE_INLINE
+ void Status::set_status(Code status)
+ {
+ this->code_ = status;
+ }
+
+ ACE_INLINE
+ Status::Code Status::get_status() const
+ {
+ return this->code_;
+ }
+
+ ACE_INLINE
+ void Status::set_reason(const ACE_CString& reason)
+ {
+ this->reason_ = reason;
+ }
+
+ ACE_INLINE
+ const ACE_CString& Status::get_reason() const
+ {
+ return this->reason_;
+ }
+
+ ACE_INLINE
+ void Status::set_status_and_reason(Code status)
+ {
+ this->reason_ = get_reason (this->code_ = status);
+ }
+
+ ACE_INLINE
+ bool Status::is_valid () const
+ {
+ return this->code_ != INVALID;
+ }
+
+ ACE_INLINE
+ bool Status::is_ok () const
+ {
+ return this->code_ >= HTTP_OK && this->code_ < HTTP_BAD_REQUEST;
+ }
+
+ ACE_INLINE
+ Status::operator bool() const
+ {
+ return this->is_valid ();
+ }
+
+ ACE_INLINE
+ bool Status::operator !() const
+ {
+ return !this->is_valid ();
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_StreamPolicy.cpp b/ACE/protocols/ace/INet/HTTP_StreamPolicy.cpp
new file mode 100644
index 00000000000..50b962e5d20
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_StreamPolicy.cpp
@@ -0,0 +1,151 @@
+// $Id$
+
+#ifndef ACE_HTTP_STREAM_POLICY_CPP
+#define ACE_HTTP_STREAM_POLICY_CPP
+
+#include "ace/INet/HTTP_StreamPolicy.h"
+#include <cctype>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+ template <class STREAM_BUFFER>
+ FixedLengthStreamPolicyBase<STREAM_BUFFER>::FixedLengthStreamPolicyBase (std::streamsize length)
+ : StreamPolicyBase<STREAM_BUFFER> (),
+ length_ (length),
+ count_ (0)
+ {
+ }
+
+ template <class STREAM_BUFFER>
+ FixedLengthStreamPolicyBase<STREAM_BUFFER>::~FixedLengthStreamPolicyBase ()
+ {
+ }
+
+ template <class STREAM_BUFFER>
+ int FixedLengthStreamPolicyBase<STREAM_BUFFER>::read_from_stream (
+ char_type * buf,
+ std::streamsize length)
+ {
+ int n = 0;
+ if (this->count_ < this->length_)
+ {
+ if (this->count_ + length > this->length_)
+ length = this->length_ - this->count_;
+ n = this->read_from_stream_i (buf, length);
+ if (n > 0) this->count_ += n;
+ }
+ return n;
+ }
+
+ template <class STREAM_BUFFER>
+ int FixedLengthStreamPolicyBase<STREAM_BUFFER>::write_to_stream (
+ const char_type * buf,
+ std::streamsize length)
+ {
+ int n = 0;
+ if (this->count_ < this->length_)
+ {
+ if ((this->count_ + length) > this->length_)
+ length = this->length_ - this->count_;
+ n = this->write_to_stream_i (buf, length);
+ if (n > 0) this->count_ += n;
+ }
+ return n;
+ }
+
+ template <class STREAM_BUFFER>
+ ChunkedTransferStreamPolicyBase<STREAM_BUFFER>::ChunkedTransferStreamPolicyBase ()
+ : StreamPolicyBase<STREAM_BUFFER> (),
+ chunk_cnt_ (0)
+ {
+ }
+
+ template <class STREAM_BUFFER>
+ ChunkedTransferStreamPolicyBase<STREAM_BUFFER>::~ChunkedTransferStreamPolicyBase ()
+ {
+ }
+
+ template <class STREAM_BUFFER>
+ int ChunkedTransferStreamPolicyBase<STREAM_BUFFER>::getc ()
+ {
+ static const int eof_ =
+ std::char_traits<char_type>::eof ();
+
+ char_type chbuf[1];
+ if (this->read_from_stream_i (chbuf, 1) <= 0)
+ return eof_;
+ else
+ return chbuf[0];
+ }
+
+ template <class STREAM_BUFFER>
+ int ChunkedTransferStreamPolicyBase<STREAM_BUFFER>::read_from_stream (
+ char_type * buf,
+ std::streamsize length)
+ {
+ static const int eof_ =
+ std::char_traits<char_type>::eof ();
+
+ char_type lf = this->chunk_.widen ('\n');
+ if (this->chunk_cnt_ == 0)
+ {
+ int ch = this->getc ();
+ while (std::isspace (ch))
+ ch = this->getc ();
+ typename buffer_type::string_type chunk_len_str;
+ while (std::isxdigit (ch))
+ {
+ chunk_len_str += (char_type) ch;
+ ch = this->getc ();
+ }
+ while (ch != eof_ && ch != lf)
+ {
+ ch = this->getc ();
+ }
+ ACE::IOS::String_IStreamBase<char_type> chunk_len_is (chunk_len_str);
+ unsigned chunk_len;
+ if (!(chunk_len_is >> chunk_len))
+ return eof_;
+ this->chunk_cnt_ = (std::streamsize) chunk_len;
+ }
+ if (this->chunk_cnt_ > 0)
+ {
+ if (length > this->chunk_cnt_)
+ length = this->chunk_cnt_;
+ int n = this->read_from_stream_i (buf, length);
+ if (n > 0)
+ this->chunk_cnt_ -= n;
+ return n;
+ }
+ else
+ {
+ int ch = this->getc ();
+ while (ch != eof_ && ch != lf)
+ ch = this->getc ();
+ return 0;
+ }
+ }
+
+ template <class STREAM_BUFFER>
+ int ChunkedTransferStreamPolicyBase<STREAM_BUFFER>::write_to_stream (
+ const char_type * buf,
+ std::streamsize length)
+ {
+ this->chunk_.clear ();
+ this->chunk_ << std::hex << length << std::dec;
+ this->chunk_ << this->chunk_.widen ('\r') << this->chunk_.widen ('\n');
+ this->chunk_.write (buf, length);
+ this->chunk_ << this->chunk_.widen ('\r') << this->chunk_.widen ('\n');
+ const typename buffer_type::string_type& str = this->chunk_.str ();
+ return this->write_to_stream_i (str.c_str (), str.length ());
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HTTP_STREAM_POLICY_CPP */
diff --git a/ACE/protocols/ace/INet/HTTP_StreamPolicy.h b/ACE/protocols/ace/INet/HTTP_StreamPolicy.h
new file mode 100644
index 00000000000..9ec94680c97
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_StreamPolicy.h
@@ -0,0 +1,100 @@
+// $Id$
+
+/**
+ * @file HTTP_StreamPolicy.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_STREAM_POLICY_H
+#define ACE_HTTP_STREAM_POLICY_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/HTTP_StreamPolicyBase.h"
+#include "ace/INet/HTTP_IOStream.h"
+#include "ace/INet/String_IOStream.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_FixedLengthStreamPolicy
+ *
+ * @brief Implements stream policy for fixed length data stream
+ * in HTTP response or request.
+ *
+ */
+ template <class STREAM_BUFFER>
+ class FixedLengthStreamPolicyBase
+ : public StreamPolicyBase<STREAM_BUFFER>
+ {
+ public:
+ typedef typename STREAM_BUFFER::char_type char_type;
+
+ FixedLengthStreamPolicyBase (std::streamsize length);
+ virtual ~FixedLengthStreamPolicyBase ();
+
+ protected:
+ virtual int read_from_stream (char_type* buffer, std::streamsize length);
+
+ virtual int write_to_stream (const char_type* buffer, std::streamsize length);
+
+ private:
+ std::streamsize length_;
+ std::streamsize count_;
+ };
+
+ typedef FixedLengthStreamPolicyBase<StreamBuffer> FixedLengthStreamPolicy;
+
+ /**
+ * @class ACE_HTTP_ChunkedTransferStreamPolicy
+ *
+ * @brief Implements stream policy for chunked data streams
+ * in HTTP response or request.
+ *
+ */
+ template <class STREAM_BUFFER>
+ class ChunkedTransferStreamPolicyBase
+ : public StreamPolicyBase<STREAM_BUFFER>
+ {
+ public:
+ typedef typename STREAM_BUFFER::char_type char_type;
+ typedef ACE::IOS::String_OStreamBase<char_type> buffer_type;
+
+ ChunkedTransferStreamPolicyBase ();
+ virtual ~ChunkedTransferStreamPolicyBase ();
+
+ protected:
+ virtual int read_from_stream (char_type* buffer, std::streamsize length);
+
+ virtual int write_to_stream (const char_type* buffer, std::streamsize length);
+
+ int getc ();
+
+ private:
+ std::streamsize chunk_cnt_;
+ buffer_type chunk_;
+ };
+
+ typedef ChunkedTransferStreamPolicyBase<StreamBuffer> ChunkedTransferStreamPolicy;
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/HTTP_StreamPolicy.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("HTTP_StreamPolicy.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_STREAM_POLICY_H */
diff --git a/ACE/protocols/ace/INet/HTTP_StreamPolicyBase.cpp b/ACE/protocols/ace/INet/HTTP_StreamPolicyBase.cpp
new file mode 100644
index 00000000000..6b72b17d203
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_StreamPolicyBase.cpp
@@ -0,0 +1,50 @@
+// $Id$
+
+#ifndef ACE_HTTP_STREAM_POLICY_BASE_CPP
+#define ACE_HTTP_STREAM_POLICY_BASE_CPP
+
+#include "ace/INet/HTTP_StreamPolicyBase.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+ template <class STREAM_BUFFER>
+ StreamPolicyBase<STREAM_BUFFER>::StreamPolicyBase ()
+ : streambuf_ (0)
+ {}
+
+ template <class STREAM_BUFFER>
+ StreamPolicyBase<STREAM_BUFFER>::~StreamPolicyBase ()
+ {}
+
+ template <class STREAM_BUFFER>
+ int StreamPolicyBase<STREAM_BUFFER>::read_from_stream_i (
+ char_type * buf,
+ std::streamsize length)
+ {
+ return this->streambuf_->read_from_stream_i (buf, length);
+ }
+
+ template <class STREAM_BUFFER>
+ int StreamPolicyBase<STREAM_BUFFER>::write_to_stream_i (
+ const char_type * buf,
+ std::streamsize length)
+ {
+ return this->streambuf_->write_to_stream_i (buf, length);
+ }
+
+ template <class STREAM_BUFFER>
+ void StreamPolicyBase<STREAM_BUFFER>::set_stream_buffer (STREAM_BUFFER* streambuf)
+ {
+ this->streambuf_ = streambuf;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HTTP_STREAM_POLICY_BASE_CPP */
diff --git a/ACE/protocols/ace/INet/HTTP_StreamPolicyBase.h b/ACE/protocols/ace/INet/HTTP_StreamPolicyBase.h
new file mode 100644
index 00000000000..2000eb3087e
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_StreamPolicyBase.h
@@ -0,0 +1,66 @@
+// $Id$
+
+/**
+ * @file HTTP_StreamPolicyBase.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_STREAM_POLICY_BASE_H
+#define ACE_HTTP_STREAM_POLICY_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/BufferedStreamBuffer.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_IOS_StreamPolicyBase
+ *
+ * @brief Abstract base for HTTP stream policies.
+ *
+ */
+ template <class STREAM_BUFFER>
+ class StreamPolicyBase
+ {
+ public:
+ StreamPolicyBase ();
+ virtual ~StreamPolicyBase ();
+
+ typedef typename STREAM_BUFFER::char_type char_type;
+
+ virtual int read_from_stream (char_type* buffer, std::streamsize length) = 0;
+
+ virtual int write_to_stream (const char_type* buffer, std::streamsize length) = 0;
+
+ void set_stream_buffer (STREAM_BUFFER* streambuf);
+
+ protected:
+ int read_from_stream_i (char_type* buffer, std::streamsize length);
+
+ int write_to_stream_i (const char_type* buffer, std::streamsize length);
+
+ private:
+ STREAM_BUFFER* streambuf_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/HTTP_StreamPolicyBase.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("HTTP_StreamPolicyBase.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_STREAM_POLICY_BASE_H */
diff --git a/ACE/protocols/ace/INet/HTTP_URL.cpp b/ACE/protocols/ace/INet/HTTP_URL.cpp
new file mode 100644
index 00000000000..01498682691
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_URL.cpp
@@ -0,0 +1,134 @@
+// $Id$
+
+#include "ace/INet/HTTP_URL.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_URL.inl"
+#endif
+
+#include "ace/INet/String_IOStream.h"
+#include "ace/INet/HTTP_ClientRequestHandler.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+ const char* URL::PROTOCOL = "http";
+
+ const ACE_CString& URL::protocol ()
+ {
+ static const ACE_CString protocol_ (PROTOCOL);
+ return protocol_;
+ }
+
+ URL::URL ()
+ : URL_INetAuthBase (HTTP_PORT),
+ proxy_port_ (HTTP_PROXY_PORT)
+ {
+ }
+
+ URL::URL (const ACE_CString& url_string)
+ : URL_INetAuthBase (HTTP_PORT),
+ proxy_port_ (HTTP_PROXY_PORT)
+ {
+ this->parse (url_string);
+ }
+
+ URL::URL (const URL& url)
+ : URL_INetAuthBase (0)
+ {
+ *this = url;
+ }
+
+ URL::URL (u_short port)
+ : URL_INetAuthBase (port),
+ proxy_port_ (HTTP_PROXY_PORT)
+ {
+ }
+
+ URL::~URL ()
+ {
+ }
+
+ URL& URL::operator =(const URL& url)
+ {
+ this->set_user_info (url.get_user_info ());
+ this->set_host (url.get_host ());
+ this->set_port (url.get_port ());
+ this->set_path (url.get_path ());
+ this->set_query (url.get_query ());
+ this->set_fragment (url.get_fragment ());
+ this->set_proxy (url.get_proxy_host (), url.get_proxy_port ());
+ return *this;
+ }
+
+ ACE_CString URL::get_request_uri () const
+ {
+ ACE::IOS::CString_OStream sos;
+ if (!this->proxy_host_.empty ())
+ {
+ sos << this->get_scheme ().c_str () << "://"
+ << ACE::INet::URL_INetBase::get_host ().c_str ();
+ if (ACE::INet::URL_INetBase::get_port () != HTTP_PORT)
+ {
+ sos << ':' << ACE::INet::URL_INetBase::get_port ();
+ }
+ }
+ // if path is empty we're requesting the root
+ sos << (this->get_path ().empty () ?
+ "/" :
+ this->get_path ().c_str ());
+ if (!this->get_query ().empty ())
+ sos << '?' << this->get_query ().c_str ();
+ if (!this->get_fragment ().empty ())
+ sos << '#' << this->get_fragment ().c_str ();
+ return sos.str ();
+ }
+
+ ACE_CString URL::to_string () const
+ {
+ ACE::IOS::CString_OStream sos;
+ sos << this->get_scheme () << "://"
+ << this->get_authority ().c_str ()
+ << this->get_path ().c_str ();
+ if (!this->get_query ().empty ())
+ sos << '?' << this->get_query ().c_str ();
+ if (!this->get_fragment ().empty ())
+ sos << '#' << this->get_fragment ().c_str ();
+ return sos.str ();
+ }
+
+ ACE::INet::ClientRequestHandler* URL::create_default_request_handler () const
+ {
+ ACE::INet::ClientRequestHandler* prh = 0;
+ ACE_NEW_NORETURN (prh, ClientRequestHandler ());
+ return prh;
+ }
+
+ const URL::Factory& URL::factory_ = *URL::TURLFactorySingleton::instance ();
+
+ URL::Factory::Factory ()
+ {
+ ACE::INet::URL_Base::register_factory (this);
+ }
+
+ URL::Factory::~Factory ()
+ {}
+
+ const ACE_CString& URL::Factory::protocol ()
+ {
+ return URL::protocol ();
+ }
+
+ ACE::INet::URL_Base* URL::Factory::create_from_string (const ACE_CString& url_string)
+ {
+ URL* purl = 0;
+ ACE_NEW_NORETURN (purl, URL (url_string));
+ return purl;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HTTP_URL.h b/ACE/protocols/ace/INet/HTTP_URL.h
new file mode 100644
index 00000000000..7217ab6851d
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_URL.h
@@ -0,0 +1,116 @@
+// $Id$
+
+/**
+ * @file HTTP_URL.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_HTTP_URL_H
+#define ACE_HTTP_URL_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/URLBase.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace HTTP
+ {
+ /**
+ * @class ACE_HTTP_URL
+ *
+ * @brief Implements HTTP url support.
+ *
+ */
+ class ACE_INET_Export URL
+ : public ACE::INet::URL_INetAuthBase
+ {
+ public:
+ URL ();
+ URL (const ACE_CString& url_string);
+ URL (const URL& url);
+ virtual ~URL ();
+
+ URL& operator =(const URL& url);
+
+ virtual const ACE_CString& get_scheme () const;
+
+ virtual const ACE_CString& get_query () const;
+
+ virtual const ACE_CString& get_fragment () const;
+
+ virtual ACE_CString get_request_uri () const;
+
+ virtual void set_query (const ACE_CString& query);
+
+ virtual void set_fragment (const ACE_CString& fargment);
+
+ void set_proxy (const ACE_CString& proxy_host, u_short proxy_port = HTTP_PROXY_PORT);
+
+ const ACE_CString& get_proxy_host () const;
+
+ u_short get_proxy_port () const;
+
+ bool has_proxy () const;
+
+ virtual ACE_CString to_string () const;
+
+ virtual u_short default_port () const;
+
+ static const char* PROTOCOL;
+
+ static const ACE_CString& protocol ();
+
+ enum
+ {
+ HTTP_PORT = 80,
+ HTTP_PROXY_PORT = 8080
+ };
+
+ protected:
+ URL (u_short port);
+
+ virtual ACE::INet::ClientRequestHandler* create_default_request_handler () const;
+
+ private:
+ ACE_CString query_;
+ ACE_CString fragment_;
+ ACE_CString proxy_host_;
+ u_short proxy_port_;
+
+ private:
+ class Factory
+ : public ACE::INet::URL_Base::Factory
+ {
+ public:
+ Factory ();
+ virtual ~Factory ();
+ virtual const ACE_CString& protocol ();
+ virtual ACE::INet::URL_Base* create_from_string (const ACE_CString& url_string);
+ };
+
+ typedef ACE_Singleton<Factory,
+ ACE_Null_Mutex> TURLFactorySingleton;
+ static const Factory& factory_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_URL.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_HTTP_URL_H */
diff --git a/ACE/protocols/ace/INet/HTTP_URL.inl b/ACE/protocols/ace/INet/HTTP_URL.inl
new file mode 100644
index 00000000000..398f4dc7c8d
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_URL.inl
@@ -0,0 +1,76 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ ACE_INLINE
+ const ACE_CString& URL::get_scheme () const
+ {
+ return protocol ();
+ }
+
+ ACE_INLINE
+ const ACE_CString& URL::get_query () const
+ {
+ return this->query_;
+ }
+
+ ACE_INLINE
+ const ACE_CString& URL::get_fragment () const
+ {
+ return this->fragment_;
+ }
+
+ ACE_INLINE
+ void URL::set_query (const ACE_CString& query)
+ {
+ this->query_ = query;
+ }
+
+ ACE_INLINE
+ void URL::set_fragment (const ACE_CString& fragment)
+ {
+ this->fragment_ = fragment;
+ }
+
+ ACE_INLINE
+ void URL::set_proxy (const ACE_CString& proxy_host, u_short proxy_port)
+ {
+ this->proxy_host_ = proxy_host;
+ this->proxy_port_ = proxy_port;
+ }
+
+ ACE_INLINE
+ const ACE_CString& URL::get_proxy_host () const
+ {
+ return this->proxy_host_;
+ }
+
+ ACE_INLINE
+ u_short URL::get_proxy_port () const
+ {
+ return this->proxy_port_;
+ }
+
+ ACE_INLINE
+ bool URL::has_proxy () const
+ {
+ return !this->proxy_host_.empty ();
+ }
+
+ ACE_INLINE
+ u_short URL::default_port () const
+ {
+ return HTTP_PORT;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HeaderBase.cpp b/ACE/protocols/ace/INet/HeaderBase.cpp
new file mode 100644
index 00000000000..20eb70c6297
--- /dev/null
+++ b/ACE/protocols/ace/INet/HeaderBase.cpp
@@ -0,0 +1,176 @@
+// $Id$
+
+#include "ace/INet/HeaderBase.h"
+#include "ace/OS_NS_stdlib.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HeaderBase.inl"
+#endif
+
+#include "ace/INet/INet_Log.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ const int HeaderBase::UNKNOWN_CONTENT_LENGTH = -1;
+ const ACE_CString HeaderBase::UNKNOWN_CONTENT_TYPE;
+ const ACE_CString HeaderBase::CONTENT_LENGTH = "Content-Length";
+ const ACE_CString HeaderBase::CONTENT_TYPE = "Content-Type";
+ const ACE_CString HeaderBase::EMPTY;
+
+ const int HeaderBase::eof_ = std::char_traits<char>::eof();
+
+ HeaderBase::HeaderBase()
+ {
+ }
+
+ HeaderBase::~HeaderBase()
+ {
+ }
+
+ void HeaderBase::set_content_length(int length)
+ {
+ if (length == UNKNOWN_CONTENT_LENGTH)
+ {
+ this->remove (CONTENT_LENGTH);
+ }
+ else
+ {
+ char buf[32];
+ this->set (CONTENT_LENGTH,
+ ACE_OS::itoa (length, buf, 10));
+ }
+ }
+
+ void HeaderBase::write(std::ostream& str) const
+ {
+ TNVMap::ITERATOR it (const_cast<TNVMap&> (this->header_values_));
+ for (it.first (); !it.done () ;it.advance ())
+ {
+ str << (*it).first ().c_str () << ": " << (*it).second ().c_str () << "\r\n";
+
+ INET_DEBUG (9, (LM_DEBUG, DLINFO
+ ACE_TEXT ("ACE_INet_HTTP: +-> %C: %C\n"),
+ (*it).first ().c_str (),
+ (*it).second ().c_str ()));
+ }
+ }
+
+ bool HeaderBase::read(std::istream& str)
+ {
+
+ ACE_CString name (64, '\0');
+ ACE_CString value (128, '\0');
+ int ch = str.peek ();
+ while (ch != eof_ && ch != '\r' && ch != '\n')
+ {
+ name.fast_clear ();
+ value.fast_clear ();
+ // parse name
+ ch = this->read_field (str, name, MAX_NAME_LENGTH, ':');
+ if (ch == '\n')
+ {
+ ch = str.get ();
+ continue; // ignore invalid headers
+ }
+ if (ch != ':')
+ {
+ return false; // name too long/missing colon; cannot continue
+ }
+
+ // skip leading whitespace before next field
+ while (ACE_OS::ace_isspace (str.peek ()))
+ {
+ ch = str.get ();
+ }
+
+ // parse value
+ ch = this->read_field (str, value, MAX_VALUE_LENGTH, '\r');
+ if (ch == '\r')
+ ch = str.get (); // get lf
+ if (ch != '\n')
+ return false; // value too long/no crlf found; cannot continue
+
+ // followup lines starting with ws are continuations of the value
+ // and must be appended
+ ch = str.peek ();
+ while (ch == ' ' || ch == '\t')
+ {
+ ch = this->read_field (str, value, MAX_VALUE_LENGTH, '\r');
+ if (ch == '\r')
+ ch = str.get (); // get lf
+ if (ch != '\n')
+ return false; // multiline value too long/no crlf; cannot continue
+
+ ch = str.peek ();
+ }
+
+ this->add (name, value);
+
+ INET_DEBUG (9, (LM_DEBUG, DLINFO
+ ACE_TEXT ("ACE_INet_HTTP: <-+ %C: %C\n"),
+ name.c_str (),
+ value.c_str ()));
+ }
+ return true;
+ }
+
+
+ void HeaderBase::set (const ACE_CString& name, const ACE_CString& value)
+ {
+ TNVMap::ITERATOR it (this->header_values_);
+ if (this->header_values_.find (NVPair (name), it) == 0)
+ {
+ (*it).second (value);
+ }
+ else
+ {
+ this->header_values_.insert (NVPair (name, value));
+ }
+ }
+
+ void HeaderBase::get_values(const ACE_CString& name, ACE_Array<ACE_CString> & values) const
+ {
+ TNVMap::ITERATOR it (const_cast<TNVMap&> (this->header_values_));
+ if (this->header_values_.find (name, it) == 0)
+ {
+ for (; !it.done () && ((*it).second () == name) ;it.advance ())
+ {
+ if (values.size (values.size ()+1) == 0)
+ {
+ values.set ((*it).second (), values.size ()-1);
+ }
+ }
+ }
+ }
+
+
+ NVPair::NVPair () {}
+
+ NVPair::NVPair (const ACE_CString& first)
+ : first_ (first)
+ {
+ }
+
+ NVPair::NVPair (const ACE_CString& first, const ACE_CString& second)
+ : first_ (first), second_ (second)
+ {
+ }
+
+ NVPair::NVPair (const NVPair& pair)
+ {
+ *this = pair;
+ }
+
+ NVPair::~NVPair () {}
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/HeaderBase.h b/ACE/protocols/ace/INet/HeaderBase.h
new file mode 100644
index 00000000000..5231ee24294
--- /dev/null
+++ b/ACE/protocols/ace/INet/HeaderBase.h
@@ -0,0 +1,163 @@
+// $Id$
+
+/**
+ * @file HeaderBase.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_INET_HEADER_BASE_H
+#define ACE_INET_HEADER_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/SString.h"
+#include "ace/Containers_T.h"
+#include "ace/Containers_T.h"
+#include "ace/OS_NS_ctype.h"
+#include "ace/INet/INet_Export.h"
+#include <iostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+ /**
+ * @class ACE_INet_NVPair
+ *
+ * @brief Name/Value pair holder class.
+ *
+ */
+ class NVPair
+ {
+ public:
+ NVPair ();
+ NVPair (const ACE_CString& first);
+ NVPair (const ACE_CString& first, const ACE_CString& second);
+ NVPair (const NVPair& pair);
+ virtual ~NVPair ();
+ NVPair& operator =(const NVPair& pair);
+ bool operator ==(const NVPair& pair) const;
+ bool operator <(const NVPair& pair) const;
+
+ const ACE_CString& first (void) const;
+
+ void first (const ACE_CString& t1);
+
+ const ACE_CString& second (void) const;
+
+ void second (const ACE_CString& t2);
+
+ private:
+ ACE_CString first_;
+ ACE_CString second_;
+ };
+
+ typedef ACE_Ordered_MultiSet<NVPair> TNVMap;
+
+
+ /**
+ * @class ACE_INet_HeaderBase
+ *
+ * @brief Encapsulates message header.
+ *
+ */
+ class ACE_INET_Export HeaderBase
+ {
+ public:
+ /// Constructor
+ HeaderBase();
+
+ /// Destructor
+ virtual ~HeaderBase();
+
+ /// Sets the Content-Length header.
+ /// Removes the Content-Length header if
+ /// length is UNKNOWN_CONTENT_LENGTH.
+ virtual void set_content_length(int length);
+
+ /// Returns the content length for this message.
+ /// Returns UNKNOWN_CONTENT_LENGTH if no
+ /// Content-Length header is present.
+ virtual int get_content_length() const;
+
+ /// Sets the content type for this message.
+ /// Removes the Content-Type header if
+ /// UNKNOWN_CONTENT_TYPE is specified.
+ virtual void set_content_type(const ACE_CString& mime_type);
+
+ /// Returns the content type for this message.
+ /// Returns UNKNOWN_CONTENT_TYPE if
+ /// no Content-Type header is present.
+ virtual ACE_CString get_content_type() const;
+
+ void clear ();
+
+ /// Writes the headers to the given stream
+ virtual void write(std::ostream& str) const;
+
+ /// Reads the headers from the
+ /// given stream.
+ virtual bool read(std::istream& str);
+
+ static const int UNKNOWN_CONTENT_LENGTH;
+ static const ACE_CString UNKNOWN_CONTENT_TYPE;
+
+ static const ACE_CString CONTENT_LENGTH;
+ static const ACE_CString CONTENT_TYPE;
+
+ static const ACE_CString EMPTY;
+
+ /// Sets header <name> to <value>. Overwrites existing vaues.
+ void set (const ACE_CString& name, const ACE_CString& value);
+
+ /// Adds header <name> with <value>. Allows duplicates.
+ void add (const ACE_CString& name, const ACE_CString& value);
+
+ /// Removes header <name> (first found).
+ void remove (const ACE_CString& name);
+
+ /// Retrieves value for header <name> into <value> (first found).
+ bool get (const ACE_CString& name, ACE_CString& value) const;
+
+ /// Returns true if a header <name> exists (1 or more), false otherwise.
+ bool has (const ACE_CString& name) const;
+
+ /// Retrieves values for all headers <name> into <values>.
+ void get_values (const ACE_CString& name, ACE_Array<ACE_CString>& values) const;
+
+ protected:
+ int read_field (std::istream& str, ACE_CString& var, size_t maxlen, char delim);
+ int read_ws_field (std::istream& str, ACE_CString& var, size_t maxlen);
+
+ static const int eof_;
+
+ private:
+ /// Limits for reading a header
+ enum Limits
+ {
+ MAX_NAME_LENGTH = 256,
+ MAX_VALUE_LENGTH = 4096
+ };
+
+ TNVMap header_values_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/HeaderBase.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_HEADER_BASE_H */
diff --git a/ACE/protocols/ace/INet/HeaderBase.inl b/ACE/protocols/ace/INet/HeaderBase.inl
new file mode 100644
index 00000000000..a6661081b48
--- /dev/null
+++ b/ACE/protocols/ace/INet/HeaderBase.inl
@@ -0,0 +1,156 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ ACE_INLINE
+ int HeaderBase::get_content_length() const
+ {
+ ACE_CString lenstr;
+ if (this->get (CONTENT_LENGTH, lenstr))
+ {
+ return ACE_OS::atoi (lenstr.c_str ());
+ }
+ return UNKNOWN_CONTENT_LENGTH;
+ }
+
+ ACE_INLINE
+ void HeaderBase::set_content_type(const ACE_CString& mime_type)
+ {
+ if (mime_type == UNKNOWN_CONTENT_TYPE)
+ {
+ this->remove (CONTENT_TYPE);
+ }
+ else
+ {
+ this->set (CONTENT_TYPE, UNKNOWN_CONTENT_TYPE);
+ }
+ }
+
+ ACE_INLINE
+ ACE_CString HeaderBase::get_content_type() const
+ {
+ ACE_CString val = UNKNOWN_CONTENT_TYPE;
+ this->get (CONTENT_TYPE, val);
+ return val;
+ }
+
+ ACE_INLINE
+ void HeaderBase::clear ()
+ {
+ this->header_values_.reset ();
+ }
+
+ ACE_INLINE
+ void HeaderBase::add (const ACE_CString& name, const ACE_CString& value)
+ {
+ this->header_values_.insert (NVPair (name, value));
+ }
+
+ ACE_INLINE
+ void HeaderBase::remove (const ACE_CString& name)
+ {
+ this->header_values_.remove (NVPair (name, EMPTY));
+ }
+
+ ACE_INLINE
+ bool HeaderBase::get (const ACE_CString& name, ACE_CString& value) const
+ {
+ TNVMap::ITERATOR it (const_cast<TNVMap&> (this->header_values_));
+ if (this->header_values_.find (NVPair (name), it) == 0)
+ {
+ value = (*it).second ();
+ return true;
+ }
+ return false;
+ }
+
+ ACE_INLINE
+ bool HeaderBase::has (const ACE_CString& name) const
+ {
+ TNVMap::ITERATOR it (const_cast<TNVMap&> (this->header_values_));
+ if (this->header_values_.find (NVPair (name), it) == 0)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ ACE_INLINE
+ int HeaderBase::read_field (std::istream& str, ACE_CString& var, size_t maxlen, char delim)
+ {
+ int ch = str.get ();
+ while (ch != eof_ && ch != delim && ch != '\n' && var.length () < maxlen)
+ {
+ var += ch;
+ ch = str.get ();
+ }
+ return ch;
+ }
+
+ ACE_INLINE
+ int HeaderBase::read_ws_field (std::istream& str, ACE_CString& var, size_t maxlen)
+ {
+ int ch = str.get ();
+ while (!ACE_OS::ace_isspace (ch) && ch != eof_ && var.length () < maxlen)
+ {
+ var += ch;
+ ch = str.get ();
+ }
+ return ch;
+ }
+
+ ACE_INLINE
+ NVPair& NVPair::operator =(const NVPair& pair)
+ {
+ this->first (pair.first ());
+ this->second (pair.second ());
+ return *this;
+ }
+
+ ACE_INLINE
+ bool NVPair::operator ==(const NVPair& pair) const
+ {
+ return this->first_ == pair.first ();
+ }
+
+ ACE_INLINE
+ bool NVPair::operator <(const NVPair& pair) const
+ {
+ return this->first_ < pair.first ();
+ }
+
+ ACE_INLINE
+ const ACE_CString& NVPair::first (void) const
+ {
+ return this->first_;
+ }
+
+ ACE_INLINE
+ void NVPair::first (const ACE_CString& t1)
+ {
+ this->first_ = t1;
+ }
+
+ ACE_INLINE
+ const ACE_CString& NVPair::second (void) const
+ {
+ return this->second_;
+ }
+
+ ACE_INLINE
+ void NVPair::second (const ACE_CString& t2)
+ {
+ this->second_ = t2;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/INet_Export.h b/ACE/protocols/ace/INet/INet_Export.h
new file mode 100644
index 00000000000..24f5c7e9c4d
--- /dev/null
+++ b/ACE/protocols/ace/INet/INet_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ACE_INET
+// ------------------------------
+#ifndef ACE_INET_EXPORT_H
+#define ACE_INET_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_INET_HAS_DLL)
+# define ACE_INET_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_INET_HAS_DLL */
+
+#if !defined (ACE_INET_HAS_DLL)
+# define ACE_INET_HAS_DLL 1
+#endif /* ! ACE_INET_HAS_DLL */
+
+#if defined (ACE_INET_HAS_DLL) && (ACE_INET_HAS_DLL == 1)
+# if defined (ACE_INET_BUILD_DLL)
+# define ACE_INET_Export ACE_Proper_Export_Flag
+# define ACE_INET_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_INET_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_INET_BUILD_DLL */
+# define ACE_INET_Export ACE_Proper_Import_Flag
+# define ACE_INET_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_INET_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_INET_BUILD_DLL */
+#else /* ACE_INET_HAS_DLL == 1 */
+# define ACE_INET_Export
+# define ACE_INET_SINGLETON_DECLARATION(T)
+# define ACE_INET_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_INET_HAS_DLL == 1 */
+
+// Set ACE_INET_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_INET_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_INET_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_INET_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_INET_NTRACE */
+
+#if (ACE_INET_NTRACE == 1)
+# define ACE_INET_TRACE(X)
+#else /* (ACE_INET_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_INET_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_INET_NTRACE == 1) */
+
+#endif /* ACE_INET_EXPORT_H */
+
+// End of auto generated file.
diff --git a/ACE/protocols/ace/INet/INet_Log.cpp b/ACE/protocols/ace/INet/INet_Log.cpp
new file mode 100644
index 00000000000..f6601a535d6
--- /dev/null
+++ b/ACE/protocols/ace/INet/INet_Log.cpp
@@ -0,0 +1,75 @@
+// $Id$
+
+#include "ace/INet/INet_Log.h"
+#include "ace/Env_Value_T.h"
+#include "ace/SString.h"
+#include "ace/Log_Msg.h"
+#include "ace/streams.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ unsigned int INet_Log::debug_level_ = INet_Log::Initializer ();
+
+ unsigned int INet_Log::Initializer(void)
+ {
+ unsigned int debug_level = 0;
+ bool trace = false;
+ ACE_TString filename;
+
+ ACE_Env_Value<int> log (ACE_TEXT("INET_LOG_LEVEL"), debug_level);
+ debug_level = log;
+
+ ACE_Env_Value<int> trace_env (ACE_TEXT("INET_TRACE_ENABLE"), 0);
+ trace = (trace_env != 0);
+
+ ACE_Env_Value<const ACE_TCHAR *> filename_env (ACE_TEXT("INET_LOG_FILE"), filename.c_str ());
+ filename = filename_env;
+
+ if (trace)
+ {
+ INET_ENABLE_TRACE ();
+ }
+ else
+ {
+ INET_DISABLE_TRACE ();
+ }
+
+ if (filename.length () > 0)
+ {
+#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
+
+ FILE* output_stream = ACE_OS::fopen (filename.c_str (), ACE_TEXT ("a"));
+
+ ACE_LOG_MSG->msg_ostream (output_stream, 1);
+
+#else /* ! ACE_LACKS_IOSTREAM_TOTALLY */
+
+ ofstream* output_stream = 0;
+
+ ACE_NEW_NORETURN (output_stream,
+ ofstream ());
+ if (output_stream)
+ {
+ output_stream->open (ACE_TEXT_ALWAYS_CHAR (filename.c_str ()),
+ ios::out | ios::app);
+
+ if (!output_stream->bad ())
+ {
+ ACE_LOG_MSG->msg_ostream (output_stream, 1);
+ }
+ }
+
+#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
+
+ ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER);
+ ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
+ }
+
+ return debug_level;
+ }
+
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/INet_Log.h b/ACE/protocols/ace/INet/INet_Log.h
new file mode 100644
index 00000000000..82733225fe7
--- /dev/null
+++ b/ACE/protocols/ace/INet/INet_Log.h
@@ -0,0 +1,131 @@
+/**
+ * @file INet_Log.h
+ * @author Martin Corino <mcorino@remedy.nl>
+ * // $Id$
+ * Macros used for logging in INet
+ */
+
+
+#ifndef INET_LOG_MACROS_H_
+#define INET_LOG_MACROS_H_
+
+#include "ace/INet/INet_Export.h"
+
+#if !defined (DLINFO)
+# define DLINFO ACE_TEXT("(%P|%t) [%M] - %T - ")
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ class ACE_INET_Export INet_Log
+ {
+ public:
+ INet_Log () {}
+
+ static unsigned int debug_level_;
+
+ static unsigned int Initializer (void);
+ };
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+// By default tracing is turned on in debugmode, off otherwise
+#if !defined (INET_NTRACE)
+# if defined (NDEBUG)
+# define INET_NTRACE 1
+# else
+# define INET_NTRACE 0
+# endif
+#endif /* INET_NTRACE */
+
+#if (INET_NTRACE == 1)
+# if !defined (ACE_NTRACE)
+# define INET_TRACE(X) do {} while (0)
+# define INET_ENABLE_TRACE() do {} while (0)
+# define INET_DISABLE_TRACE() do {} while (0)
+# else
+# if (ACE_NTRACE == 0)
+# error INET_TRACE cannot be disabled if ACE_TRACE is enabled
+# else
+# define INET_TRACE(X) do {} while (0)
+# define INET_ENABLE_TRACE() do {} while (0)
+# define INET_DISABLE_TRACE() do {} while (0)
+# endif
+# endif
+#else
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define INET_TRACE(X) ACE_TRACE_IMPL (X)
+# define INET_ENABLE_TRACE() ACE_Trace::start_tracing ()
+# define INET_DISABLE_TRACE() ACE_Trace::stop_tracing ()
+# undef DLINFO // Make log messages indent with tracing.
+# define DLINFO ACE_TEXT("%I(%P|%t) [%M] - %T - ")
+# include "ace/Trace.h"
+#endif /* INET_NTRACE */
+
+#if defined (INET_NLOGGING)
+# define INET_ERROR(L, X) do {} while (0)
+# define INET_DEBUG(L, X) do {} while (0)
+#define INET_ERROR_RETURN(L, X, Y) return (Y)
+#define INET_ERROR_BREAK(L, X) { break; }
+#else
+# if !defined (INET_ERROR)
+# define INET_ERROR(L, X) \
+ do { \
+ if (::ACE::INet_Log::debug_level_ >= L) \
+ { \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
+ ace___->conditional_set (__FILE__, __LINE__, -1, __ace_error); \
+ ace___->log X; \
+ } \
+ } while (0)
+# endif
+# if !defined (INET_DEBUG)
+# define INET_DEBUG(L, X) \
+ do { \
+ if (::ACE::INet_Log::debug_level_ >= L) \
+ { \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
+ ace___->conditional_set (__FILE__, __LINE__, 0, __ace_error); \
+ ace___->log X; \
+ } \
+ } while (0)
+# endif
+# if !defined (INET_HEX_DUMP)
+#define INET_HEX_DUMP(L, X) \
+ do { \
+ if (::ACE::INet_Log::debug_level_ >= L) \
+ { \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
+ ace___->conditional_set (__FILE__, __LINE__, 0, __ace_error); \
+ ace___->log_hexdump X; \
+ } \
+ } while (0)
+#endif
+# if !defined (INET_ERROR_RETURN)
+# define INET_ERROR_RETURN(L, X, Y) \
+ do { \
+ if (::ACE::INet_Log::debug_level_ >= L) \
+ { \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
+ ace___->conditional_set (__FILE__, __LINE__, Y, __ace_error); \
+ ace___->log X; \
+ return Y; \
+ } \
+ } while (0)
+# endif
+# if !defined (INET_ERROR_BREAK)
+# define INET_ERROR_BREAK(L, X) { INET_ERROR (L, X); break; }
+# endif
+#endif
+
+
+#endif
diff --git a/ACE/protocols/ace/INet/INet_SSL_Export.h b/ACE/protocols/ace/INet/INet_SSL_Export.h
new file mode 100644
index 00000000000..c6a60848fbf
--- /dev/null
+++ b/ACE/protocols/ace/INet/INet_SSL_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ACE_INET_SSL
+// ------------------------------
+#ifndef ACE_INET_SSL_EXPORT_H
+#define ACE_INET_SSL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_INET_SSL_HAS_DLL)
+# define ACE_INET_SSL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_INET_SSL_HAS_DLL */
+
+#if !defined (ACE_INET_SSL_HAS_DLL)
+# define ACE_INET_SSL_HAS_DLL 1
+#endif /* ! ACE_INET_SSL_HAS_DLL */
+
+#if defined (ACE_INET_SSL_HAS_DLL) && (ACE_INET_SSL_HAS_DLL == 1)
+# if defined (ACE_INET_SSL_BUILD_DLL)
+# define ACE_INET_SSL_Export ACE_Proper_Export_Flag
+# define ACE_INET_SSL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_INET_SSL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_INET_SSL_BUILD_DLL */
+# define ACE_INET_SSL_Export ACE_Proper_Import_Flag
+# define ACE_INET_SSL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_INET_SSL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_INET_SSL_BUILD_DLL */
+#else /* ACE_INET_SSL_HAS_DLL == 1 */
+# define ACE_INET_SSL_Export
+# define ACE_INET_SSL_SINGLETON_DECLARATION(T)
+# define ACE_INET_SSL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_INET_SSL_HAS_DLL == 1 */
+
+// Set ACE_INET_SSL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_INET_SSL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_INET_SSL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_INET_SSL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_INET_SSL_NTRACE */
+
+#if (ACE_INET_SSL_NTRACE == 1)
+# define ACE_INET_SSL_TRACE(X)
+#else /* (ACE_INET_SSL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_INET_SSL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_INET_SSL_NTRACE == 1) */
+
+#endif /* ACE_INET_SSL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/ACE/protocols/ace/INet/IOS_util.cpp b/ACE/protocols/ace/INet/IOS_util.cpp
new file mode 100644
index 00000000000..8510b2e905b
--- /dev/null
+++ b/ACE/protocols/ace/INet/IOS_util.cpp
@@ -0,0 +1,20 @@
+// $Id$
+
+#include "ace/INet/IOS_util.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace IOS
+ {
+
+ std::ostream Null::out_stream_ (0);
+ std::istream Null::in_stream_ (0);
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/IOS_util.h b/ACE/protocols/ace/INet/IOS_util.h
new file mode 100644
index 00000000000..9d91ba93237
--- /dev/null
+++ b/ACE/protocols/ace/INet/IOS_util.h
@@ -0,0 +1,75 @@
+// $Id$
+
+/**
+ * @file IOS_util.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_IOS_UTIL_H
+#define ACE_IOS_UTIL_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+#include <iostream>
+
+// ace_ios_init
+//
+// There is reported to be a bug in the Dinkumware
+// implementation of iostreams where calling
+// basic_ios::init() multiple times for the same
+// basic_ios instance creates a memory leak as a result
+// of the ios' locale being allocated more than
+// once, each time overwriting the old pointer.
+//
+// This usually happens in multiple inheritance
+// schemes involving a derived IOS class and a
+// derived IO stream class (i, o or io).
+//
+// The fix for Dinkumware is to not call init() in the
+// derived IOS class but call init() only for each
+// stream object - in the istream, ostream or
+// iostream constructor.
+//
+// Other stream implementations, however, require that
+// init() is called in the derived IOS constructor.
+// So we replace each call to init() with the
+// ace_ios_init macro defined below.
+
+
+#if !defined(ACE_IOS_INIT_FIX)
+ // Microsoft Visual Studio with Dinkumware STL (but not STLport)
+# if defined(_MSC_VER) && (!defined(_STLP_MSVC) || defined(_STLP_NO_OWN_IOSTREAMS))
+# define ACE_IOS_INIT_FIX 1
+ // QNX with Dinkumware but not GNU C++ Library
+# elif defined(__QNX__) && !defined(__GLIBCPP__)
+# define ACE_IOS_INIT_FIX 1
+# endif
+#endif
+
+#if defined(ACE_IOS_INIT_FIX)
+# define ace_ios_init(buf)
+#else
+# define ace_ios_init(buf) this->init(buf)
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace IOS
+ {
+ class ACE_INET_Export Null
+ {
+ public:
+ static std::ostream out_stream_;
+ static std::istream in_stream_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_IOS_UTIL_H */
diff --git a/ACE/protocols/ace/INet/Request.cpp b/ACE/protocols/ace/INet/Request.cpp
new file mode 100644
index 00000000000..1fb48613cd3
--- /dev/null
+++ b/ACE/protocols/ace/INet/Request.cpp
@@ -0,0 +1,21 @@
+// $Id$
+
+#include "ace/INet/Request.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ Request::Request () {}
+
+ Request::~Request () {}
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/Request.h b/ACE/protocols/ace/INet/Request.h
new file mode 100644
index 00000000000..8a4fe662bb7
--- /dev/null
+++ b/ACE/protocols/ace/INet/Request.h
@@ -0,0 +1,42 @@
+// $Id$
+
+/**
+ * @file Request.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_INET_REQUEST_H
+#define ACE_INET_REQUEST_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+
+ /**
+ * @class ACE_INet_Request
+ *
+ * @brief Base class for requests.
+ *
+ */
+ class ACE_INET_Export Request
+ {
+ public:
+ Request ();
+ virtual ~Request ();
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_REQUEST_H */
diff --git a/ACE/protocols/ace/INet/RequestHandler.cpp b/ACE/protocols/ace/INet/RequestHandler.cpp
new file mode 100644
index 00000000000..9f48a58b303
--- /dev/null
+++ b/ACE/protocols/ace/INet/RequestHandler.cpp
@@ -0,0 +1,21 @@
+// $Id$
+
+#include "ace/INet/RequestHandler.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ RequestHandler::RequestHandler () {}
+
+ RequestHandler::~RequestHandler () {}
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/RequestHandler.h b/ACE/protocols/ace/INet/RequestHandler.h
new file mode 100644
index 00000000000..73e1a7e7e70
--- /dev/null
+++ b/ACE/protocols/ace/INet/RequestHandler.h
@@ -0,0 +1,52 @@
+// $Id$
+
+/**
+ * @file RequestHandler.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_INET_REQUEST_HANDLER_H
+#define ACE_INET_REQUEST_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/Request.h"
+#include "ace/INet/Response.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+
+ /**
+ * @class ACE_INet_RequestHandler
+ *
+ * @brief Abstract base for request handlers.
+ *
+ */
+ class ACE_INET_Export RequestHandler
+ {
+ public:
+ RequestHandler ();
+ virtual ~RequestHandler ();
+
+ virtual Request& request () = 0;
+
+ virtual const Request& request () const = 0;
+
+ virtual Response& response () = 0;
+
+ virtual const Response& response () const = 0;
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_REQUEST_HANDLER_H */
diff --git a/ACE/protocols/ace/INet/Response.cpp b/ACE/protocols/ace/INet/Response.cpp
new file mode 100644
index 00000000000..bc12826090a
--- /dev/null
+++ b/ACE/protocols/ace/INet/Response.cpp
@@ -0,0 +1,21 @@
+// $Id$
+
+#include "ace/INet/Response.h"
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ Response::Response () {}
+
+ Response::~Response () {}
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/Response.h b/ACE/protocols/ace/INet/Response.h
new file mode 100644
index 00000000000..52e21dc36bb
--- /dev/null
+++ b/ACE/protocols/ace/INet/Response.h
@@ -0,0 +1,42 @@
+// $Id$
+
+/**
+ * @file Response.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_INET_RESPONSE_H
+#define ACE_INET_RESPONSE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+
+ /**
+ * @class ACE_INet_Response
+ *
+ * @brief Base class for responses.
+ *
+ */
+ class ACE_INET_Export Response
+ {
+ public:
+ Response ();
+ virtual ~Response ();
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_RESPONSE_H */
diff --git a/ACE/protocols/ace/INet/SSLSock_IOStream.cpp b/ACE/protocols/ace/INet/SSLSock_IOStream.cpp
new file mode 100644
index 00000000000..62de4128853
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSLSock_IOStream.cpp
@@ -0,0 +1,130 @@
+// $Id$
+
+#ifndef ACE_IOS_SSLSOCK_IOSTREAM_CPP
+#define ACE_IOS_SSLSOCK_IOSTREAM_CPP
+
+#include "ace/INet/SSLSock_IOStream.h"
+#include "ace/INet/IOS_util.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace IOS
+ {
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_StreamBufferBase<ACE_SYNCH_USE>::SSLSock_StreamBufferBase (stream_type* stream)
+ : BidirStreamBuffer<StreamHandler<ACE_SSL_SOCK_Stream, ACE_SYNCH_USE> > (
+ stream,
+ BUFFER_SIZE,
+ std::ios::in | std::ios::out)
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_StreamBufferBase<ACE_SYNCH_USE>::~SSLSock_StreamBufferBase ()
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_IOSBase<ACE_SYNCH_USE>::SSLSock_IOSBase (stream_type* stream)
+ : streambuf_ (stream)
+ {
+ ace_ios_init (&this->streambuf_);
+ }
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_IOSBase<ACE_SYNCH_USE>::~SSLSock_IOSBase ()
+ {
+ try
+ {
+ this->streambuf_.sync();
+ }
+ catch (...)
+ {
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ typename SSLSock_IOSBase<ACE_SYNCH_USE>::buffer_type*
+ SSLSock_IOSBase<ACE_SYNCH_USE>::rdbuf ()
+ {
+ return &this->streambuf_;
+ }
+
+ template <ACE_SYNCH_DECL>
+ void SSLSock_IOSBase<ACE_SYNCH_USE>::close ()
+ {
+ this->streambuf_.sync ();
+ this->streambuf_.close_stream ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ const typename SSLSock_IOSBase<ACE_SYNCH_USE>::stream_type&
+ SSLSock_IOSBase<ACE_SYNCH_USE>::stream () const
+ {
+ return this->streambuf_.stream ();
+ }
+
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_OStreamBase<ACE_SYNCH_USE>::SSLSock_OStreamBase(stream_type* stream)
+ : SSLSock_IOSBase<ACE_SYNCH_USE> (stream), std::ostream (SSLSock_IOSBase<ACE_SYNCH_USE>::rdbuf ())
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_OStreamBase<ACE_SYNCH_USE>::~SSLSock_OStreamBase()
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ void SSLSock_OStreamBase<ACE_SYNCH_USE>::set_interceptor (
+ typename buffer_type::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_IStreamBase<ACE_SYNCH_USE>::SSLSock_IStreamBase(stream_type* stream)
+ : SSLSock_IOSBase<ACE_SYNCH_USE> (stream), std::istream (SSLSock_IOSBase<ACE_SYNCH_USE>::rdbuf ())
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_IStreamBase<ACE_SYNCH_USE>::~SSLSock_IStreamBase ()
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ void SSLSock_IStreamBase<ACE_SYNCH_USE>::set_interceptor (
+ typename buffer_type::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_IOStreamBase<ACE_SYNCH_USE>::SSLSock_IOStreamBase(stream_type* stream)
+ : SSLSock_IOSBase<ACE_SYNCH_USE> (stream), std::iostream (SSLSock_IOSBase<ACE_SYNCH_USE>::rdbuf ())
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ SSLSock_IOStreamBase<ACE_SYNCH_USE>::~SSLSock_IOStreamBase ()
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ void SSLSock_IOStreamBase<ACE_SYNCH_USE>::set_interceptor (
+ typename buffer_type::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_IOS_SSLSOCK_IOSTREAM_CPP */
diff --git a/ACE/protocols/ace/INet/SSLSock_IOStream.h b/ACE/protocols/ace/INet/SSLSock_IOStream.h
new file mode 100644
index 00000000000..ad6df10810f
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSLSock_IOStream.h
@@ -0,0 +1,169 @@
+// $Id$
+
+/**
+ * @file SSLSock_IOStream.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_IOS_SSLSOCK_IOSTREAM_H
+#define ACE_IOS_SSLSOCK_IOSTREAM_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/SSL/SSL_SOCK_Stream.h"
+#include "ace/INet/BidirStreamBuffer.h"
+#include "ace/INet/StreamHandler.h"
+#include "ace/INet/StreamInterceptor.h"
+#include <istream>
+#include <ostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace IOS
+ {
+ /**
+ * @class ACE_IOS_SSLSock_StreamBuffer
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class SSLSock_StreamBufferBase
+ : public BidirStreamBuffer<StreamHandler<ACE_SSL_SOCK_Stream, ACE_SYNCH_USE> >
+ {
+ public:
+ typedef StreamHandler<ACE_SSL_SOCK_Stream, ACE_SYNCH_USE> stream_type;
+
+ SSLSock_StreamBufferBase (stream_type* stream);
+ virtual ~SSLSock_StreamBufferBase ();
+
+ private:
+ enum
+ {
+ BUFFER_SIZE = 1024
+ };
+ };
+
+ /**
+ * @class ACE_IOS_SSLSock_IOS
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class SSLSock_IOSBase
+ : public virtual std::ios
+ {
+ public:
+ typedef SSLSock_StreamBufferBase<ACE_SYNCH_USE> buffer_type;
+ typedef typename buffer_type::stream_type stream_type;
+
+ SSLSock_IOSBase (stream_type* stream);
+ ~SSLSock_IOSBase ();
+
+ buffer_type* rdbuf ();
+
+ void close ();
+
+ const stream_type& stream () const;
+
+ protected:
+ buffer_type streambuf_;
+ };
+
+ /**
+ * @class ACE_IOS_SSLSock_OStream
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class SSLSock_OStreamBase
+ : public SSLSock_IOSBase<ACE_SYNCH_USE>, public std::ostream
+ {
+ public:
+ typedef SSLSock_IOSBase<ACE_SYNCH_USE> ios_base;
+ typedef typename ios_base::stream_type stream_type;
+ typedef SSLSock_StreamBufferBase<ACE_SYNCH_USE> buffer_type;
+
+ explicit SSLSock_OStreamBase(stream_type* stream);
+
+ ~SSLSock_OStreamBase();
+
+ void set_interceptor (typename buffer_type::interceptor_type& interceptor);
+ };
+
+ /**
+ * @class ACE_IOS_SSLSock_IStream
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class SSLSock_IStreamBase
+ : public SSLSock_IOSBase<ACE_SYNCH_USE>, public std::istream
+ {
+ public:
+ typedef SSLSock_IOSBase<ACE_SYNCH_USE> ios_base;
+ typedef typename ios_base::stream_type stream_type;
+ typedef SSLSock_StreamBufferBase<ACE_SYNCH_USE> buffer_type;
+
+ explicit SSLSock_IStreamBase(stream_type* stream);
+
+ ~SSLSock_IStreamBase();
+
+ void set_interceptor (typename buffer_type::interceptor_type& interceptor);
+ };
+
+ /**
+ * @class ACE_IOS_SSLSock_IOStream
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class SSLSock_IOStreamBase
+ : public SSLSock_IOSBase<ACE_SYNCH_USE>, public std::iostream
+ {
+ public:
+ typedef SSLSock_IOSBase<ACE_SYNCH_USE> ios_base;
+ typedef typename ios_base::stream_type stream_type;
+ typedef SSLSock_StreamBufferBase<ACE_SYNCH_USE> buffer_type;
+
+ explicit SSLSock_IOStreamBase(stream_type* stream);
+
+ ~SSLSock_IOStreamBase();
+
+ void set_interceptor (typename buffer_type::interceptor_type& interceptor);
+ };
+
+ typedef SSLSock_StreamBufferBase<ACE_NULL_SYNCH> SSLSock_StreamBuffer;
+ typedef SSLSock_IOSBase<ACE_NULL_SYNCH> SSLSock_IOS;
+ typedef SSLSock_IStreamBase<ACE_NULL_SYNCH> SSLSock_IStream;
+ typedef SSLSock_OStreamBase<ACE_NULL_SYNCH> SSLSock_OStream;
+ typedef SSLSock_IOStreamBase<ACE_NULL_SYNCH> SSLSock_IOStream;
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/SSLSock_IOStream.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("SSLSock_IOStream.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_IOS_SSLSOCK_IOSTREAM_H */
diff --git a/ACE/protocols/ace/INet/SSL_CallbackManager.cpp b/ACE/protocols/ace/INet/SSL_CallbackManager.cpp
new file mode 100644
index 00000000000..f9c9b8b8d6b
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_CallbackManager.cpp
@@ -0,0 +1,122 @@
+// $Id$
+
+#include "ace/INet/SSL_CallbackManager.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/SSL_CallbackManager.inl"
+#endif
+
+#include "ace/Truncate.h"
+#include "ace/Singleton.h"
+#include "ace/INet/INet_Log.h"
+
+#include <openssl/x509.h>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ int SSL_CallbackManager::ssl_ctx_mngr_index_ = (-2);
+
+ SSL_CallbackManager::SSL_CallbackManager ()
+ {
+ }
+
+ SSL_CallbackManager::~SSL_CallbackManager ()
+ {
+ }
+
+ void SSL_CallbackManager::initialize_callbacks (ACE_SSL_Context* ssl_ctx)
+ {
+ if (ssl_ctx_mngr_index_ < -1)
+ {
+ ssl_ctx_mngr_index_ = ::SSL_CTX_get_ex_new_index (0, 0, 0,0,0);
+ if (ssl_ctx_mngr_index_ < 0)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("SSL_CallbackManager::initialize_callbacks - ")
+ ACE_TEXT ("failed to allocate SSL_CTX ex_data index.\n")));
+ return;
+ }
+ }
+
+ this->ssl_ctx_ = ssl_ctx == 0 ? ACE_SSL_Context::instance () : ssl_ctx;
+ ::SSL_CTX_set_ex_data (this->ssl_ctx_->context (), ssl_ctx_mngr_index_, this);
+ this->ssl_ctx_->default_verify_callback (verify_certificate_callback);
+ ::SSL_CTX_set_default_passwd_cb (ssl_ctx->context(), passwd_callback);
+ ::SSL_CTX_set_default_passwd_cb_userdata (ssl_ctx->context(), this);
+ }
+
+ SSL_CallbackManager* SSL_CallbackManager::instance ()
+ {
+ return ACE_Singleton<SSL_CallbackManager, ACE_SYNCH::MUTEX>::instance ();
+ }
+
+ int SSL_CallbackManager::verify_certificate_callback (SSL_CertificateCallbackArg& arg)
+ {
+ TCertificateCallback cert_cb = this->cert_callback_;
+ if (cert_cb)
+ {
+ cert_cb->handle_certificate_failure (arg);
+ }
+ return (arg.ignore_error () ? 1 : 0);
+ }
+
+ void SSL_CallbackManager::passwd_callback (ACE_CString& pwd)
+ {
+ TPasswordCallback pw_cb = passwd_callback_;
+ if (pw_cb)
+ {
+ pw_cb->get_privatekey_password (pwd);
+ }
+ }
+
+ int SSL_CallbackManager::verify_certificate_callback (int ok, X509_STORE_CTX* cert_ctx)
+ {
+ if (!ok && ssl_ctx_mngr_index_>=0)
+ {
+ // Retrieve the pointer to the SSL of the connection currently treated
+ void* ex_data = ::X509_STORE_CTX_get_ex_data (cert_ctx, ::SSL_get_ex_data_X509_STORE_CTX_idx());
+ ::SSL* ssl = reinterpret_cast< ::SSL* > (ex_data);
+ // Retrieve SSL_CTX pointer of the connection currently treated
+ ::SSL_CTX* ssl_ctx = ::SSL_get_SSL_CTX (ssl);
+ // Retrieve our SSL_CallbackManager
+ ex_data = ::SSL_CTX_get_ex_data (ssl_ctx, ssl_ctx_mngr_index_);
+ SSL_CallbackManager* cbmngr = reinterpret_cast<SSL_CallbackManager*> (ex_data);
+
+ SSL_CertificateCallbackArg arg (cbmngr->context(), cert_ctx);
+ ok = cbmngr->verify_certificate_callback (arg);
+ }
+
+ return ok;
+ }
+
+ int SSL_CallbackManager::passwd_callback (char* buf, int size, int /*rwflag*/, void* user_data)
+ {
+ if (user_data == 0)
+ return 0;
+
+ SSL_CallbackManager* cbmngr = reinterpret_cast<SSL_CallbackManager*> (user_data);
+
+ ACE_CString pwd;
+ cbmngr->passwd_callback (pwd);
+ if (!pwd.empty ())
+ {
+ ACE_OS::strncpy (buf, pwd.c_str (), size);
+ buf[size - 1] = '\0';
+ if (size > ACE_Utils::truncate_cast<int> (pwd.length ()))
+ size = ACE_Utils::truncate_cast<int> (pwd.length ());
+
+ return size;
+ }
+ else
+ return 0;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/SSL_CallbackManager.h b/ACE/protocols/ace/INet/SSL_CallbackManager.h
new file mode 100644
index 00000000000..8463e1ce5a0
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_CallbackManager.h
@@ -0,0 +1,79 @@
+// $Id$
+
+/**
+ * @file SSL_CallbackManager.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_SSL_CALLBACKMANAGER_H
+#define ACE_SSL_CALLBACKMANAGER_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/SSL/SSL_Context.h"
+#include "ace/INet/SSL_CertificateCallback.h"
+#include "ace/INet/SSL_PasswordCallback.h"
+#include "ace/INet/INet_SSL_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+ /**
+ * @class ACE_INet_SSL_CallbackManager
+ *
+ * @brief Implements manager class for configuring and handling
+ * SSL callbacks.
+ *
+ */
+ class ACE_INET_SSL_Export SSL_CallbackManager
+ {
+ public:
+ SSL_CallbackManager ();
+ ~SSL_CallbackManager ();
+
+ void initialize_callbacks (ACE_SSL_Context* ssl_ctx = ACE_SSL_Context::instance ());
+
+ const ACE_SSL_Context* context () const;
+
+ void set_certificate_callback (ACE::INet::SSL_CertificateCallback* cb);
+ void set_password_callback (ACE::INet::SSL_PasswordCallback* cb);
+
+ static SSL_CallbackManager* instance ();
+
+ private:
+ int verify_certificate_callback (SSL_CertificateCallbackArg& arg);
+ void passwd_callback (ACE_CString& pwd);
+
+ ACE_SSL_Context* ssl_ctx_;
+
+ typedef ACE_Refcounted_Auto_Ptr<ACE::INet::SSL_CertificateCallback,
+ ACE_SYNCH::MUTEX> TCertificateCallback;
+ typedef ACE_Refcounted_Auto_Ptr<ACE::INet::SSL_PasswordCallback,
+ ACE_SYNCH::MUTEX> TPasswordCallback;
+
+ TCertificateCallback cert_callback_;
+ TPasswordCallback passwd_callback_;
+
+ static int verify_certificate_callback (int ok, X509_STORE_CTX* cert_ctx);
+ static int passwd_callback (char* buf, int size, int rwflag, void* user_data);
+
+ static int ssl_ctx_mngr_index_;
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/SSL_CallbackManager.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_SSL_CALLBACKMANAGER_H */
diff --git a/ACE/protocols/ace/INet/SSL_CallbackManager.inl b/ACE/protocols/ace/INet/SSL_CallbackManager.inl
new file mode 100644
index 00000000000..3728957c3f6
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_CallbackManager.inl
@@ -0,0 +1,33 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ ACE_INLINE
+ const ACE_SSL_Context* SSL_CallbackManager::context () const
+ {
+ return this->ssl_ctx_;
+ }
+
+ ACE_INLINE
+ void SSL_CallbackManager::set_certificate_callback (ACE::INet::SSL_CertificateCallback* cb)
+ {
+ this->cert_callback_.reset (cb);
+ }
+
+ ACE_INLINE
+ void SSL_CallbackManager::set_password_callback (ACE::INet::SSL_PasswordCallback* cb)
+ {
+ this->passwd_callback_.reset (cb);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/SSL_CertificateCallback.cpp b/ACE/protocols/ace/INet/SSL_CertificateCallback.cpp
new file mode 100644
index 00000000000..e1a4b0bce2e
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_CertificateCallback.cpp
@@ -0,0 +1,62 @@
+// $Id$
+
+#include "ace/INet/SSL_CertificateCallback.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/SSL_CertificateCallback.inl"
+#endif
+
+#include "ace/Log_Msg.h"
+#include "ace/INet/INet_Log.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ SSL_CertificateCallbackArg::SSL_CertificateCallbackArg (const ACE_SSL_Context* ssl_ctx,
+ ::X509_STORE_CTX* cert_ctx)
+ : ssl_ctx_ (ssl_ctx),
+ err_depth_ (0),
+ err_code_ (0),
+ ignore_err_ (false)
+ {
+ this->ssl_cert_ = ::X509_STORE_CTX_get_current_cert (cert_ctx);
+ this->err_depth_ = ::X509_STORE_CTX_get_error_depth (cert_ctx);
+ this->err_code_ = ::X509_STORE_CTX_get_error (cert_ctx);
+ }
+
+ SSL_CertificateCallbackArg::~SSL_CertificateCallbackArg ()
+ {
+ }
+
+ SSL_CertificateCallback::SSL_CertificateCallback ()
+ {
+ }
+
+ SSL_CertificateCallback::~SSL_CertificateCallback ()
+ {
+ }
+
+ SSL_CertificateAcceptor::SSL_CertificateAcceptor ()
+ {
+ }
+
+ SSL_CertificateAcceptor::~SSL_CertificateAcceptor ()
+ {
+ }
+
+ void SSL_CertificateAcceptor::handle_certificate_failure (SSL_CertificateCallbackArg& arg)
+ {
+ INET_DEBUG (3, (LM_INFO, DLINFO
+ ACE_TEXT ("SSL_CertificateAcceptor::handle_certificate_failure - ")
+ ACE_TEXT ("ignored certificate verification error: %C\n"),
+ arg.error_message ().c_str ()));
+ arg.ignore_error (true);
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/SSL_CertificateCallback.h b/ACE/protocols/ace/INet/SSL_CertificateCallback.h
new file mode 100644
index 00000000000..328d8c4ef5f
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_CertificateCallback.h
@@ -0,0 +1,103 @@
+// $Id$
+
+/**
+ * @file SSL_CertificateCallback.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_SSL_CERTIFICATECALLBACK_H
+#define ACE_SSL_CERTIFICATECALLBACK_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+#include "ace/SSL/SSL_Context.h"
+#include "ace/INet/SSL_X509Cert.h"
+#include "ace/INet/INet_SSL_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+ /**
+ * @class ACE_INet_SSL_CertificateCallbackArg
+ *
+ * @brief Encapsulates the arguments for an SSL certificate
+ * verification callback.
+ *
+ */
+ class ACE_INET_SSL_Export SSL_CertificateCallbackArg
+ {
+ public:
+ SSL_CertificateCallbackArg (const ACE_SSL_Context* ssl_ctx,
+ ::X509_STORE_CTX* cert_ctx);
+ ~SSL_CertificateCallbackArg ();
+
+ const ACE_SSL_Context& context () const;
+
+ SSL_X509Cert& certificate (void);
+
+ int error_depth () const;
+
+ int error_code () const;
+
+ ACE_CString error_message () const;
+
+ bool ignore_error () const;
+
+ void ignore_error (bool f);
+
+ private:
+ const ACE_SSL_Context* ssl_ctx_;
+ SSL_X509Cert ssl_cert_;
+ int err_depth_;
+ int err_code_;
+ bool ignore_err_;
+ };
+
+ /**
+ * @class ACE_INet_SSL_CertificateCallback
+ *
+ * @brief Abstract base class for SSL certificate
+ * verification callbacks.
+ *
+ */
+ class ACE_INET_SSL_Export SSL_CertificateCallback
+ {
+ public:
+ SSL_CertificateCallback ();
+ virtual ~SSL_CertificateCallback ();
+
+ virtual void handle_certificate_failure (SSL_CertificateCallbackArg& arg) = 0;
+ };
+
+ /**
+ * @class ACE_INet_SSL_CertificateAcceptor
+ *
+ * @brief Implements an SSL certificate callback that accepts
+ * all peer certificates.
+ *
+ */
+ class ACE_INET_SSL_Export SSL_CertificateAcceptor
+ : public SSL_CertificateCallback
+ {
+ public:
+ SSL_CertificateAcceptor ();
+ virtual ~SSL_CertificateAcceptor ();
+
+ virtual void handle_certificate_failure (SSL_CertificateCallbackArg& arg);
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/SSL_CertificateCallback.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_SSL_CERTIFICATECALLBACK_H */
diff --git a/ACE/protocols/ace/INet/SSL_CertificateCallback.inl b/ACE/protocols/ace/INet/SSL_CertificateCallback.inl
new file mode 100644
index 00000000000..614db4394ac
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_CertificateCallback.inl
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ ACE_INLINE
+ const ACE_SSL_Context& SSL_CertificateCallbackArg::context () const
+ {
+ return *this->ssl_ctx_;
+ }
+
+ ACE_INLINE
+ SSL_X509Cert& SSL_CertificateCallbackArg::certificate (void)
+ {
+ return this->ssl_cert_;
+ }
+
+ ACE_INLINE
+ int SSL_CertificateCallbackArg::error_depth () const
+ {
+ return this->err_depth_;
+ }
+
+ ACE_INLINE
+ int SSL_CertificateCallbackArg::error_code () const
+ {
+ return this->err_code_;
+ }
+
+ ACE_INLINE
+ ACE_CString SSL_CertificateCallbackArg::error_message () const
+ {
+ return ACE_CString (X509_verify_cert_error_string (this->err_code_));
+ }
+
+ ACE_INLINE
+ bool SSL_CertificateCallbackArg::ignore_error () const
+ {
+ return this->ignore_err_;
+ }
+
+ ACE_INLINE
+ void SSL_CertificateCallbackArg::ignore_error (bool f)
+ {
+ this->ignore_err_ = f;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/SSL_PasswordCallback.cpp b/ACE/protocols/ace/INet/SSL_PasswordCallback.cpp
new file mode 100644
index 00000000000..08811a19563
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_PasswordCallback.cpp
@@ -0,0 +1,23 @@
+// $Id$
+
+#include "ace/INet/SSL_PasswordCallback.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ SSL_PasswordCallback::SSL_PasswordCallback ()
+ {
+ }
+
+ SSL_PasswordCallback::~SSL_PasswordCallback ()
+ {
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/SSL_PasswordCallback.h b/ACE/protocols/ace/INet/SSL_PasswordCallback.h
new file mode 100644
index 00000000000..0e89caa8c94
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_PasswordCallback.h
@@ -0,0 +1,45 @@
+// $Id$
+
+/**
+ * @file SSL_PasswordCallback.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_SSL_PASSWORDCALLBACK_H
+#define ACE_SSL_PASSWORDCALLBACK_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/INet_SSL_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+ /**
+ * @class ACE_INet_SSL_PasswordCallback
+ *
+ * @brief Abstract base class for SSL private key
+ * password callback.
+ *
+ */
+ class ACE_INET_SSL_Export SSL_PasswordCallback
+ {
+ public:
+ SSL_PasswordCallback ();
+ virtual ~SSL_PasswordCallback ();
+
+ virtual void get_privatekey_password (ACE_CString& pwd) = 0;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_SSL_PASSWORDCALLBACK_H */
diff --git a/ACE/protocols/ace/INet/SSL_Proxy_Connector.cpp b/ACE/protocols/ace/INet/SSL_Proxy_Connector.cpp
new file mode 100644
index 00000000000..d1ffcbf7c1e
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_Proxy_Connector.cpp
@@ -0,0 +1,212 @@
+// $Id$
+
+#include "ace/INet/SSL_Proxy_Connector.h"
+#include "ace/INet/INet_Log.h"
+
+#include "ace/OS_NS_errno.h"
+#include "ace/Handle_Set.h"
+#include "ace/Log_Msg.h"
+#include "ace/Countdown_Time.h"
+#include "ace/Truncate.h"
+
+#include <openssl/err.h>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ SSL_Proxy_Connector::SSL_Proxy_Connector () {}
+
+ SSL_Proxy_Connector::~SSL_Proxy_Connector () {}
+
+ /*
+ * This code is copied from ace/SSL/SSL_SOCK_Connector.cpp
+ */
+ int
+ SSL_Proxy_Connector::ssl_connect (ACE_SSL_SOCK_Stream &new_stream,
+ const ACE_Time_Value *timeout)
+ {
+ SSL *ssl = new_stream.ssl ();
+
+ if (SSL_is_init_finished (ssl))
+ return 0;
+
+ // Check if a connection is already pending for the given SSL
+ // structure.
+ if (!SSL_in_connect_init (ssl))
+ ::SSL_set_connect_state (ssl);
+
+ ACE_HANDLE handle = new_stream.get_handle ();
+
+ // We're going to call SSL_connect, optionally doing ACE::select and
+ // retrying the SSL_connect, until the SSL handshake is done or
+ // it fails.
+ // To get the timeout affect, set the socket to nonblocking mode
+ // before beginning if there is a timeout specified. If the timeout
+ // is 0 (wait as long as it takes) then don't worry about the blocking
+ // status; we'll block in SSL_connect if the socket is blocking, and
+ // block in ACE::select if not.
+ int reset_blocking_mode = 0;
+ if (timeout != 0)
+ {
+ reset_blocking_mode = ACE_BIT_DISABLED (ACE::get_flags (handle),
+ ACE_NONBLOCK);
+ // Set the handle into non-blocking mode if it's not already
+ // in it.
+ if (reset_blocking_mode
+ && ACE::set_flags (handle,
+ ACE_NONBLOCK) == -1)
+ return -1;
+ }
+
+ ACE_Time_Value t;
+ if (timeout != 0)
+ t = *timeout; // Need a non-const copy.
+
+ // Take into account the time between each select() call below.
+ ACE_Countdown_Time countdown ((timeout == 0 ? 0 : &t));
+
+ int status;
+
+ do
+ {
+ // These handle sets are used to set up for whatever SSL_connect
+ // says it wants next. They're reset on each pass around the loop.
+ ACE_Handle_Set rd_handle;
+ ACE_Handle_Set wr_handle;
+
+ status = ::SSL_connect (ssl);
+ switch (::SSL_get_error (ssl, status))
+ {
+ case SSL_ERROR_NONE:
+ // Start out with non-blocking disabled on the SSL stream.
+ new_stream.disable (ACE_NONBLOCK);
+ status = 0; // To tell caller about success
+ break; // Done
+
+ case SSL_ERROR_WANT_WRITE:
+ wr_handle.set_bit (handle);
+ status = 1; // Wait for more activity
+ break;
+
+ case SSL_ERROR_WANT_READ:
+ rd_handle.set_bit (handle);
+ status = 1; // Wait for more activity
+ break;
+
+ case SSL_ERROR_ZERO_RETURN:
+ // The peer has notified us that it is shutting down via
+ // the SSL "close_notify" message so we need to
+ // shutdown, too.
+ status = -1;
+ break;
+
+ case SSL_ERROR_SYSCALL:
+ // On some platforms (e.g. MS Windows) OpenSSL does not
+ // store the last error in errno so explicitly do so.
+ //
+ // Explicitly check for EWOULDBLOCK since it doesn't get
+ // converted to an SSL_ERROR_WANT_{READ,WRITE} on some
+ // platforms. If SSL_connect failed outright, though, don't
+ // bother checking more. This can happen if the socket gets
+ // closed during the handshake.
+ if (ACE_OS::set_errno_to_last_error () == EWOULDBLOCK &&
+ status == -1)
+ {
+ // Although the SSL_ERROR_WANT_READ/WRITE isn't getting
+ // set correctly, the read/write state should be valid.
+ // Use that to decide what to do.
+ status = 1; // Wait for more activity
+ if (SSL_want_write (ssl))
+ {
+ wr_handle.set_bit (handle);
+ }
+ else if (SSL_want_read (ssl))
+ {
+ rd_handle.set_bit (handle);
+ }
+ else
+ {
+ status = -1; // Doesn't want anything - bail out
+ }
+ }
+ else
+ {
+ status = -1;
+ }
+ break;
+
+ default:
+ ACE_SSL_Context::report_error ();
+ status = -1;
+ break;
+ }
+
+ if (status == 1)
+ {
+ // Must have at least one handle to wait for at this point.
+ ACE_ASSERT (rd_handle.num_set () == 1 || wr_handle.num_set () == 1);
+
+ // Block indefinitely if timeout pointer is zero.
+ status = ACE::select (int (handle) + 1,
+ &rd_handle,
+ &wr_handle,
+ 0,
+ (timeout == 0 ? 0 : &t));
+
+ (void) countdown.update ();
+
+ // 0 is timeout, so we're done.
+ // -1 is error, so we're done.
+ // Could be both handles set (same handle in both masks) so set to 1.
+ if (status >= 1)
+ {
+ status = 1;
+ }
+ else // Timeout or socket failure
+ {
+ status = -1;
+ }
+ }
+
+ } while (status == 1 && !SSL_is_init_finished (ssl));
+
+ if (reset_blocking_mode)
+ {
+ ACE_Errno_Guard eguard (errno);
+ ACE::clr_flags (handle, ACE_NONBLOCK);
+ }
+
+ return (status == -1 ? -1 : 0);
+ }
+
+ int
+ SSL_Proxy_Connector::connect (ACE_SSL_SOCK_Stream &new_stream,
+ ACE_HANDLE proxy_handle,
+ const ACE_Time_Value *timeout)
+ {
+ INET_TRACE ("SSL_Proxy_Connector::connect");
+
+ if (new_stream.get_handle () != ACE_INVALID_HANDLE)
+ return -1; // SSL already connected, somebody made a mistake here
+
+ // Set the handle from the established proxy connection in the
+ // SSL_SOCK_Stream.
+ new_stream.set_handle (proxy_handle);
+
+ // Finalize the connection by performing the SSL handshake
+ int result = this->ssl_connect (new_stream, timeout);
+
+ if (result == -1)
+ new_stream.close ();
+
+ return result;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/SSL_Proxy_Connector.h b/ACE/protocols/ace/INet/SSL_Proxy_Connector.h
new file mode 100644
index 00000000000..501e22401ee
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_Proxy_Connector.h
@@ -0,0 +1,60 @@
+// $Id$
+
+/**
+ * @file SSL_Proxy_Connector.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_SSL_PROXY_CONNECTOR_H
+#define ACE_SSL_PROXY_CONNECTOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SSL/SSL_SOCK_Stream.h"
+#include "ace/Time_Value.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+ /**
+ * @class ACE_INet_SSL_Proxy_Connector
+ *
+ * @brief Provides the functionality to attach an SSL_SOCK_Stream
+ * to an established socket of a proxy tunneling service.
+ *
+ * The <connect> method will finalize the setting up an SSL connection
+ * over the tunnel by performing an SSL handhake after setting the socket
+ * in the @c SSL_SOCK_Stream.
+ */
+ class SSL_Proxy_Connector
+ {
+ public:
+ SSL_Proxy_Connector ();
+ ~SSL_Proxy_Connector ();
+
+ /**
+ * Actively connect to an already connected proxy peer, producing a
+ * connected @c ACE_SSL_SOCK_Stream object if the connection succeeds.
+ * This method uses the provided connection (socket) handle to initialize
+ * the @c ACE_SSL_SOCK_Stream object and than finalizes the connection
+ * by performing the SSL handshake.
+ */
+ int connect (ACE_SSL_SOCK_Stream& new_stream,
+ ACE_HANDLE proxy_handle,
+ const ACE_Time_Value *timeout = 0);
+ protected:
+ /// Complete non-blocking SSL active connection.
+ int ssl_connect (ACE_SSL_SOCK_Stream &new_stream,
+ const ACE_Time_Value *timeout);
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_SSL_PROXY_CONNECTOR_H */
diff --git a/ACE/protocols/ace/INet/SSL_X509Cert.cpp b/ACE/protocols/ace/INet/SSL_X509Cert.cpp
new file mode 100644
index 00000000000..44845a70352
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_X509Cert.cpp
@@ -0,0 +1,18 @@
+// $Id$
+
+#include "ace/INet/SSL_X509Cert.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/SSL_X509Cert.inl"
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/SSL_X509Cert.h b/ACE/protocols/ace/INet/SSL_X509Cert.h
new file mode 100644
index 00000000000..f77760a0786
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_X509Cert.h
@@ -0,0 +1,57 @@
+// $Id$
+
+/**
+ * @file SSL_X509Cert.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_SSL_X509CERT_H
+#define ACE_SSL_X509CERT_H
+
+#include /**/ "ace/pre.h"
+
+#include <openssl/x509.h>
+#include <openssl/crypto.h>
+#include "ace/INet/INet_SSL_Export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+ /**
+ * @class ACE_INet_SSL_X509Cert
+ *
+ * @brief Encapsulates an SSL X509 certificate object.
+ *
+ * Provides reference counting for the X509 certificate object.
+ */
+ class ACE_INET_SSL_Export SSL_X509Cert
+ {
+ public:
+ SSL_X509Cert ();
+ SSL_X509Cert (::X509* ssl_cert);
+ SSL_X509Cert (const SSL_X509Cert& cert);
+ ~SSL_X509Cert ();
+
+ SSL_X509Cert& operator= (::X509* ssl_cert);
+ SSL_X509Cert& operator= (const SSL_X509Cert& ssl_cert);
+
+ ::X509* operator & (void);
+
+ private:
+ ::X509* ssl_cert_;
+ };
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/SSL_X509Cert.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_SSL_X509CERT_H */
diff --git a/ACE/protocols/ace/INet/SSL_X509Cert.inl b/ACE/protocols/ace/INet/SSL_X509Cert.inl
new file mode 100644
index 00000000000..0c0c0f8a88c
--- /dev/null
+++ b/ACE/protocols/ace/INet/SSL_X509Cert.inl
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ ACE_INLINE
+ SSL_X509Cert::SSL_X509Cert ()
+ : ssl_cert_ (0)
+ {
+ }
+
+ ACE_INLINE
+ SSL_X509Cert::SSL_X509Cert (::X509* ssl_cert)
+ : ssl_cert_ (0)
+ {
+ *this = ssl_cert;
+ }
+
+ ACE_INLINE
+ SSL_X509Cert::SSL_X509Cert (const SSL_X509Cert& cert)
+ {
+ *this = cert;
+ }
+
+ ACE_INLINE
+ SSL_X509Cert::~SSL_X509Cert ()
+ {
+ }
+
+ ACE_INLINE
+ SSL_X509Cert& SSL_X509Cert::operator= (::X509* ssl_cert)
+ {
+ if (this->ssl_cert_ != 0)
+ ::X509_free (this->ssl_cert_);
+
+ if (ssl_cert != 0)
+ CRYPTO_add (&(ssl_cert->references),
+ 1,
+ CRYPTO_LOCK_X509);
+ this->ssl_cert_ = ssl_cert;
+ return *this;
+ }
+
+ ACE_INLINE
+ SSL_X509Cert& SSL_X509Cert::operator= (const SSL_X509Cert& ssl_cert)
+ {
+ return (*this = &(const_cast<SSL_X509Cert&> (ssl_cert)));
+ }
+
+ ACE_INLINE
+ ::X509* SSL_X509Cert::operator & (void)
+ {
+ return this->ssl_cert_;
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/Sock_IOStream.cpp b/ACE/protocols/ace/INet/Sock_IOStream.cpp
new file mode 100644
index 00000000000..9151996cb57
--- /dev/null
+++ b/ACE/protocols/ace/INet/Sock_IOStream.cpp
@@ -0,0 +1,130 @@
+// $Id$
+
+#ifndef ACE_IOS_SOCK_IOSTREAM_CPP
+#define ACE_IOS_SOCK_IOSTREAM_CPP
+
+#include "ace/INet/Sock_IOStream.h"
+#include "ace/INet/IOS_util.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace IOS
+ {
+
+ template <ACE_SYNCH_DECL>
+ Sock_StreamBufferBase<ACE_SYNCH_USE>::Sock_StreamBufferBase (stream_type* stream)
+ : BidirStreamBuffer<StreamHandler<ACE_SOCK_STREAM, ACE_SYNCH_USE> > (
+ stream,
+ BUFFER_SIZE,
+ std::ios::in | std::ios::out)
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ Sock_StreamBufferBase<ACE_SYNCH_USE>::~Sock_StreamBufferBase ()
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ Sock_IOSBase<ACE_SYNCH_USE>::Sock_IOSBase (stream_type* stream)
+ : streambuf_ (stream)
+ {
+ ace_ios_init (&this->streambuf_);
+ }
+
+ template <ACE_SYNCH_DECL>
+ Sock_IOSBase<ACE_SYNCH_USE>::~Sock_IOSBase ()
+ {
+ try
+ {
+ this->streambuf_.sync();
+ }
+ catch (...)
+ {
+ }
+ }
+
+ template <ACE_SYNCH_DECL>
+ typename Sock_IOSBase<ACE_SYNCH_USE>::buffer_type*
+ Sock_IOSBase<ACE_SYNCH_USE>::rdbuf ()
+ {
+ return &this->streambuf_;
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Sock_IOSBase<ACE_SYNCH_USE>::close ()
+ {
+ this->streambuf_.sync ();
+ this->streambuf_.close_stream ();
+ }
+
+ template <ACE_SYNCH_DECL>
+ const typename Sock_IOSBase<ACE_SYNCH_USE>::stream_type&
+ Sock_IOSBase<ACE_SYNCH_USE>::stream () const
+ {
+ return this->streambuf_.stream ();
+ }
+
+
+ template <ACE_SYNCH_DECL>
+ Sock_OStreamBase<ACE_SYNCH_USE>::Sock_OStreamBase(stream_type* stream)
+ : Sock_IOSBase<ACE_SYNCH_USE> (stream), std::ostream (Sock_IOSBase<ACE_SYNCH_USE>::rdbuf ())
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ Sock_OStreamBase<ACE_SYNCH_USE>::~Sock_OStreamBase()
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Sock_OStreamBase<ACE_SYNCH_USE>::set_interceptor (
+ typename buffer_type::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ template <ACE_SYNCH_DECL>
+ Sock_IStreamBase<ACE_SYNCH_USE>::Sock_IStreamBase(stream_type* stream)
+ : Sock_IOSBase<ACE_SYNCH_USE> (stream), std::istream (Sock_IOSBase<ACE_SYNCH_USE>::rdbuf ())
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ Sock_IStreamBase<ACE_SYNCH_USE>::~Sock_IStreamBase ()
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Sock_IStreamBase<ACE_SYNCH_USE>::set_interceptor (
+ typename buffer_type::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ template <ACE_SYNCH_DECL>
+ Sock_IOStreamBase<ACE_SYNCH_USE>::Sock_IOStreamBase(stream_type* stream)
+ : Sock_IOSBase<ACE_SYNCH_USE> (stream), std::iostream (Sock_IOSBase<ACE_SYNCH_USE>::rdbuf ())
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ Sock_IOStreamBase<ACE_SYNCH_USE>::~Sock_IOStreamBase ()
+ {
+ }
+
+ template <ACE_SYNCH_DECL>
+ void Sock_IOStreamBase<ACE_SYNCH_USE>::set_interceptor (
+ typename buffer_type::interceptor_type& interceptor)
+ {
+ this->rdbuf ()->set_interceptor (interceptor);
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_IOS_SOCK_IOSTREAM_CPP */
diff --git a/ACE/protocols/ace/INet/Sock_IOStream.h b/ACE/protocols/ace/INet/Sock_IOStream.h
new file mode 100644
index 00000000000..691c29fa032
--- /dev/null
+++ b/ACE/protocols/ace/INet/Sock_IOStream.h
@@ -0,0 +1,168 @@
+// $Id$
+
+/**
+ * @file Sock_IOStream.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_IOS_SOCK_IOSTREAM_H
+#define ACE_IOS_SOCK_IOSTREAM_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/BidirStreamBuffer.h"
+#include "ace/INet/StreamHandler.h"
+#include "ace/INet/StreamInterceptor.h"
+#include <istream>
+#include <ostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace IOS
+ {
+ /**
+ * @class ACE_IOS_Sock_StreamBuffer
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class Sock_StreamBufferBase
+ : public BidirStreamBuffer<StreamHandler<ACE_SOCK_STREAM, ACE_SYNCH_USE> >
+ {
+ public:
+ typedef StreamHandler<ACE_SOCK_STREAM, ACE_SYNCH_USE> stream_type;
+
+ Sock_StreamBufferBase (stream_type* stream);
+ virtual ~Sock_StreamBufferBase ();
+
+ private:
+ enum
+ {
+ BUFFER_SIZE = 1024
+ };
+ };
+
+ /**
+ * @class ACE_IOS_Sock_IOS
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class Sock_IOSBase
+ : public virtual std::ios
+ {
+ public:
+ typedef Sock_StreamBufferBase<ACE_SYNCH_USE> buffer_type;
+ typedef typename buffer_type::stream_type stream_type;
+
+ Sock_IOSBase (stream_type* stream);
+ ~Sock_IOSBase ();
+
+ buffer_type* rdbuf ();
+
+ void close ();
+
+ const stream_type& stream () const;
+
+ protected:
+ buffer_type streambuf_;
+ };
+
+ /**
+ * @class ACE_IOS_Sock_OStream
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class Sock_OStreamBase
+ : public Sock_IOSBase<ACE_SYNCH_USE>, public std::ostream
+ {
+ public:
+ typedef Sock_IOSBase<ACE_SYNCH_USE> ios_base;
+ typedef typename ios_base::stream_type stream_type;
+ typedef Sock_StreamBufferBase<ACE_SYNCH_USE> buffer_type;
+
+ explicit Sock_OStreamBase(stream_type* stream);
+
+ ~Sock_OStreamBase();
+
+ void set_interceptor (typename buffer_type::interceptor_type& interceptor);
+ };
+
+ /**
+ * @class ACE_IOS_Sock_IStream
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class Sock_IStreamBase
+ : public Sock_IOSBase<ACE_SYNCH_USE>, public std::istream
+ {
+ public:
+ typedef Sock_IOSBase<ACE_SYNCH_USE> ios_base;
+ typedef typename ios_base::stream_type stream_type;
+ typedef Sock_StreamBufferBase<ACE_SYNCH_USE> buffer_type;
+
+ explicit Sock_IStreamBase(stream_type* stream);
+
+ ~Sock_IStreamBase();
+
+ void set_interceptor (typename buffer_type::interceptor_type& interceptor);
+ };
+
+ /**
+ * @class ACE_IOS_Sock_IOStream
+ *
+ * @brief
+ *
+ */
+ template <ACE_SYNCH_DECL>
+ class Sock_IOStreamBase
+ : public Sock_IOSBase<ACE_SYNCH_USE>, public std::iostream
+ {
+ public:
+ typedef Sock_IOSBase<ACE_SYNCH_USE> ios_base;
+ typedef typename ios_base::stream_type stream_type;
+ typedef Sock_StreamBufferBase<ACE_SYNCH_USE> buffer_type;
+
+ explicit Sock_IOStreamBase(stream_type* stream);
+
+ ~Sock_IOStreamBase();
+
+ void set_interceptor (typename buffer_type::interceptor_type& interceptor);
+ };
+
+ typedef Sock_StreamBufferBase<ACE_NULL_SYNCH> Sock_StreamBuffer;
+ typedef Sock_IOSBase<ACE_NULL_SYNCH> Sock_IOS;
+ typedef Sock_IStreamBase<ACE_NULL_SYNCH> Sock_IStream;
+ typedef Sock_OStreamBase<ACE_NULL_SYNCH> Sock_OStream;
+ typedef Sock_IOStreamBase<ACE_NULL_SYNCH> Sock_IOStream;
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/Sock_IOStream.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Sock_IOStream.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_IOS_SOCK_IOSTREAM_H */
diff --git a/ACE/protocols/ace/INet/StreamHandler.cpp b/ACE/protocols/ace/INet/StreamHandler.cpp
new file mode 100644
index 00000000000..083f0539296
--- /dev/null
+++ b/ACE/protocols/ace/INet/StreamHandler.cpp
@@ -0,0 +1,575 @@
+// $Id$
+
+#ifndef ACE_IOS_STREAM_HANDLER_CPP
+#define ACE_IOS_STREAM_HANDLER_CPP
+
+#include "ace/INet/INet_Log.h"
+#include "ace/INet/StreamHandler.h"
+#include "ace/OS_NS_Thread.h"
+#include "ace/OS_NS_errno.h"
+#include "ace/Countdown_Time.h"
+#include "ace/Truncate.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace IOS
+ {
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::StreamHandler (
+ const ACE_Synch_Options &synch_options,
+ ACE_Thread_Manager *thr_mgr,
+ mq_type *mq,
+ ACE_Reactor *reactor)
+ : ACE_Svc_Handler<ACE_PEER_STREAM, ACE_SYNCH_USE> (thr_mgr, mq, reactor),
+ connected_ (false),
+ send_timeout_ (false),
+ receive_timeout_ (false),
+ notification_strategy_ (reactor,
+ this,
+ ACE_Event_Handler::WRITE_MASK)
+ {
+ INET_TRACE ("ACE_IOS_StreamHandler - ctor");
+
+ unsigned long opt = synch_options[ACE_Synch_Options::USE_REACTOR] ?
+ ACE_Synch_Options::USE_REACTOR : 0;
+ if (synch_options[ACE_Synch_Options::USE_TIMEOUT])
+ opt |= ACE_Synch_Options::USE_TIMEOUT;
+ this->sync_opt_.set (opt,
+ synch_options.timeout (),
+ synch_options.arg ());
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::~StreamHandler ()
+ {
+ INET_TRACE ("ACE_IOS_StreamHandler - dtor");
+
+ this->connected_ = false;
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::open (void * /*p*/)
+ {
+ this->connected_ = true;
+ return 0;
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::close (u_long flags)
+ {
+ this->connected_ = false;
+ return base_type::close (flags);
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::handle_input (ACE_HANDLE)
+ {
+ // always read non-blocking however much there is
+ ACE_Time_Value to = ACE_Time_Value::zero;
+ return this->handle_input_i (MAX_INPUT_SIZE, &to);
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::handle_input_i (size_t rdlen, ACE_Time_Value* timeout)
+ {
+ INET_TRACE ("ACE_IOS_StreamHandler::handle_input_i");
+
+ char buffer[MAX_INPUT_SIZE];
+ ssize_t recv_cnt;
+ size_t bytes_in = 0;
+
+ // blocking (with or without timeout) or non-blocking?
+ bool no_wait = timeout && (*timeout == ACE_Time_Value::zero);
+
+ recv_cnt = this->peer ().recv_n (buffer,
+ rdlen <= sizeof(buffer) ? rdlen : sizeof(buffer),
+ timeout,
+ &bytes_in);
+
+ if (bytes_in > 0)
+ {
+ INET_HEX_DUMP (11, (LM_DEBUG, buffer, bytes_in, DLINFO
+ ACE_TEXT ("ACE_IOS_StreamHandler::handle_input_i <--")));
+
+ ACE_Message_Block *mb = 0;
+ ACE_NEW_RETURN (mb, ACE_Message_Block (bytes_in), -1);
+ mb->copy (buffer, bytes_in);
+ ACE_Time_Value nowait (ACE_OS::gettimeofday ());
+ if (this->putq (mb, &nowait) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("ACE_IOS_StreamHandler - discarding input data, "),
+ ACE_TEXT ("enqueue failed (%d)\n"),
+ ACE_OS::last_error ()));
+ mb->release ();
+ this->connected_ = false;
+ return -1;
+ }
+ }
+
+ if (recv_cnt == 0 || (recv_cnt < 0 && !no_wait))
+ {
+ if (recv_cnt < 0)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("ACE_IOS_StreamHandler - receive failed (%d)\n"),
+ ACE_OS::last_error ()));
+ }
+ this->connected_ = false;
+ return this->using_reactor () ? -1 : 0;
+ }
+ return 0;
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::handle_output (ACE_HANDLE)
+ {
+ if (this->use_timeout ())
+ {
+ ACE_Time_Value to = this->sync_opt_.timeout ();
+ return this->handle_output_i (&to);
+ }
+ else
+ return this->handle_output_i (0);
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::handle_output_i (ACE_Time_Value* timeout)
+ {
+ INET_TRACE ("ACE_IOS_StreamHandler::handle_output_i");
+
+ ACE_Message_Block *mb = 0;
+ ACE_Time_Value nowait (ACE_OS::gettimeofday ());
+ size_t bytes_out = 0;
+ if (-1 != this->getq (mb, &nowait))
+ {
+ ssize_t send_cnt =
+ this->peer ().send_n (mb->rd_ptr (), mb->length (), timeout, &bytes_out);
+ if (bytes_out > 0)
+ {
+ INET_HEX_DUMP (11, (LM_DEBUG, mb->rd_ptr (), bytes_out, DLINFO
+ ACE_TEXT ("ACE_IOS_StreamHandler::handle_output_i -->")));
+
+ mb->rd_ptr (static_cast<size_t> (bytes_out));
+ if (mb->length () > 0)
+ this->ungetq (mb);
+ else
+ mb->release ();
+ }
+ if (send_cnt <= 0)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("%p; ACE_IOS_StreamHandler - "),
+ ACE_TEXT ("send failed\n")));
+ this->connected_ = false;
+ return this->using_reactor () ? -1 : 0;
+ }
+ }
+ return (this->msg_queue ()->is_empty ()) ? -1 : 0;
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::read_from_stream (
+ void * buf,
+ size_t length,
+ u_short char_size)
+ {
+ INET_TRACE ("ACE_IOS_StreamHandler::read_from_stream");
+
+ size_t recv_char_count = 0;
+ char* wptr = (char*)buf;
+ size_t char_length = length * char_size;
+ ACE_Time_Value max_wait_time = this->sync_opt_.timeout ();
+ int result = 0;
+ if (this->using_reactor ())
+ {
+ ACE_thread_t tid;
+ this->reactor ()->owner (&tid);
+ bool reactor_thread =
+ ACE_OS::thr_equal (ACE_Thread::self (), tid) ? true : false;
+
+ if (this->connected_)
+ {
+ if (this->reactor ()->register_handler(this,
+ ACE_Event_Handler::READ_MASK) != 0)
+ {
+ return -1;
+ }
+ }
+
+ // run the event loop for the maximum allowed time to get the
+ // message data in
+ while ((this->connected_ || this->char_in_queue (char_size)) && char_length > 0)
+ {
+ result = 0;
+ if (reactor_thread && !this->char_in_queue (char_size))
+ {
+ // Run the event loop.
+ result = this->reactor ()->handle_events (this->use_timeout () ?
+ &max_wait_time : 0);
+ }
+
+ if (result != -1)
+ {
+ result = this->process_input (&wptr[recv_char_count],
+ char_length,
+ char_size,
+ this->use_timeout () ?
+ &max_wait_time : 0);
+ }
+
+ if (result == -1)
+ {
+ this->reactor ()->remove_handler (this,
+ ACE_Event_Handler::READ_MASK);
+ return -1;
+ }
+
+ recv_char_count += result;
+
+ if (recv_char_count > 0)
+ {
+ break;
+ }
+
+ if (this->use_timeout () &&
+ max_wait_time == ACE_Time_Value::zero)
+ {
+ this->reactor ()->remove_handler (this,
+ ACE_Event_Handler::READ_MASK);
+ this->receive_timeout_ = true;
+ return -1;
+ }
+ }
+
+ this->reactor ()->remove_handler (this,
+ ACE_Event_Handler::READ_MASK);
+ }
+ else
+ {
+ // non-reactive
+ // the first read we will try to read as much as possible
+ // non-blocking
+ // if that does not result in any data the next read will be
+ // blocking for 1 char_size data
+ size_t rdlen = MAX_INPUT_SIZE;
+ ACE_Time_Value timeout = ACE_Time_Value::zero;
+ ACE_Time_Value* to = &timeout;
+ while ((this->connected_ || this->char_in_queue (char_size)) && char_length > 0)
+ {
+ if (!this->char_in_queue (char_size))
+ {
+ // nothing in queue, so see if there is anything newly arrived
+ result = this->handle_input_i (rdlen, to);
+ }
+
+ if (result == -1)
+ return result;
+
+ result = this->process_input (&wptr[recv_char_count],
+ char_length,
+ char_size,
+ this->use_timeout () ?
+ &max_wait_time : 0);
+
+ if (result == -1)
+ return result;
+
+ recv_char_count += result;
+
+ if (recv_char_count > 0)
+ {
+ // if we got any char_size data (either newly read
+ // or remainder from queue) we quit
+ break;
+ }
+
+ if (this->use_timeout () &&
+ max_wait_time == ACE_Time_Value::zero)
+ {
+ this->receive_timeout_ = true;
+ return -1;
+ }
+
+ if (this->connected_ && char_length >0)
+ {
+ // nothing has been read the first time round
+ // now start blocking read 1 char_size data at a time
+ rdlen = char_size;
+ to = this->use_timeout () ? &max_wait_time : 0;
+ }
+ }
+ }
+
+ return ACE_Utils::truncate_cast<int> (recv_char_count / char_size);
+ }
+
+ // This method makes sure to only ever copy full char_size elements
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::process_input (
+ char* buf,
+ size_t& char_length,
+ u_short char_size,
+ ACE_Time_Value* timeout)
+ {
+ INET_TRACE ("ACE_IOS_StreamHandler::process_input");
+
+ ACE_Time_Value wait (ACE_OS::gettimeofday ());
+ // keep track of how much time we use here
+ ACE_Countdown_Time timeout_countdown (timeout);
+ // if timeout specified add it to the abs waittime
+ // otherwise it's a 'nowait'
+ if (timeout)
+ {
+ wait += *timeout;
+ timeout_countdown.start ();
+ }
+ ACE_Message_Block *mb_remain = 0;
+ size_t recv_char_count = 0;
+ while (!this->msg_queue ()->is_empty () && char_length > 0)
+ {
+ ACE_Message_Block *mb = 0;
+ if (this->getq (mb, &wait) == -1)
+ {
+ if (ACE_OS::last_error () == EWOULDBLOCK)
+ break; // timeout; queue still empty
+ else
+ return -1; // message queue shut down
+ }
+
+ size_t copy_len = 0;
+
+ if (mb_remain)
+ {
+ if ((mb_remain->length () + mb->length ()) < char_size)
+ {
+ ACE_Message_Block *mb_new = 0;
+ ACE_NEW_NORETURN (mb,
+ ACE_Message_Block (mb_remain->length () + mb->length ()));
+ if (mb_new == 0)
+ {
+ mb->release ();
+ mb_remain->release ();
+ return -1; // out of memory error
+ }
+ mb_new->copy (mb_remain->rd_ptr (), mb_remain->length ());
+ mb_remain->release ();
+ mb_new->copy (mb->rd_ptr (), mb->length ());
+ mb->release ();
+ mb_remain = mb_new;
+ continue; // check for next msg block
+ }
+
+ copy_len = (mb_remain->length () > char_length) ?
+ char_length :
+ mb_remain->length ();
+ ACE_OS::memmove (&buf[recv_char_count],
+ mb_remain->rd_ptr (),
+ copy_len);
+ char_length -= copy_len;
+ recv_char_count += copy_len;
+ mb_remain->rd_ptr (copy_len);
+ if (mb_remain->length () > 0)
+ {
+ continue; // buffer is full
+ }
+
+ // cleanup empty block
+ mb_remain->release ();
+ mb_remain = 0;
+ }
+
+ // normalize to total nr of char_size elements available in mb [+ mb_remain]
+ size_t total_char_len = ((mb->length () + copy_len)/ char_size) * char_size;
+ // what was the max we could copy?
+ size_t max_copy_len = (total_char_len > char_length) ?
+ char_length :
+ total_char_len;
+ // subtract what we possibly already copied from mb_remain
+ copy_len = max_copy_len - copy_len;
+
+ ACE_OS::memmove (&buf[recv_char_count],
+ mb->rd_ptr (),
+ copy_len);
+ recv_char_count += copy_len;
+ char_length -= copy_len;
+ mb->rd_ptr (copy_len);
+ if (mb->length () > 0)
+ {
+ mb_remain = mb;
+ }
+ else
+ mb->release ();
+ }
+
+ if (mb_remain)
+ {
+ this->ungetq (mb_remain);
+ }
+
+ if (timeout)
+ {
+ // stop countdown; update timeout value
+ timeout_countdown.stop ();
+ }
+
+ return ACE_Utils::truncate_cast<int> (recv_char_count);
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ bool StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::use_timeout () const
+ {
+ return this->sync_opt_[ACE_Synch_Options::USE_TIMEOUT];
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ bool StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::char_in_queue (u_short char_size)
+ {
+ return this->msg_queue ()->message_bytes () >= char_size;
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ int StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::write_to_stream (const void * buf, size_t length, u_short char_size)
+ {
+ INET_TRACE ("ACE_IOS_StreamHandler::write_to_stream");
+
+ // check if we're allowed to control the reactor if reactive
+ bool use_reactor = this->using_reactor ();
+ if (use_reactor)
+ {
+ ACE_thread_t tid;
+ this->reactor ()->owner (&tid);
+ use_reactor =
+ ACE_OS::thr_equal (ACE_Thread::self (), tid) ? true : false;
+ }
+
+ // set notification strategy if reactive
+ NotificationStrategyGuard ns_guard__(*this,
+ use_reactor ?
+ &this->notification_strategy_ : 0);
+
+ size_t datasz = length * char_size;
+ ACE_Message_Block *mb = 0;
+ ACE_NEW_RETURN (mb, ACE_Message_Block (datasz), -1);
+ mb->copy ((const char*)buf, datasz);
+ ACE_Time_Value nowait (ACE_OS::gettimeofday ());
+ if (this->putq (mb, &nowait) == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_IOS_StreamHandler - discarding output data, "),
+ ACE_TEXT ("enqueue failed\n"),
+ ACE_OS::last_error ()));
+ mb->release ();
+ return 0;
+ }
+
+ ACE_Time_Value max_wait_time = this->sync_opt_.timeout ();
+ int result = 0;
+
+ if (use_reactor)
+ {
+ if (this->reactor ()->register_handler(this,
+ ACE_Event_Handler::WRITE_MASK) != 0)
+ {
+ return -1;
+ }
+
+ // run the event loop for the maximum allowed time to get the
+ // message data out
+ while (this->connected_)
+ {
+ // Run the event loop.
+ result = this->reactor ()->handle_events (this->use_timeout () ?
+ &max_wait_time : 0);
+
+ if (result == -1)
+ {
+ INET_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("(%d) ACE_IOS_StreamHandler::write_to_stream - ")
+ ACE_TEXT ("handle_events failed\n"),
+ ACE_OS::last_error ()));
+ }
+
+ // If we got our message out, no need to run the event loop any
+ // further.
+ if (this->msg_queue ()->is_empty ())
+ {
+ break;
+ }
+
+ // Did we timeout? If so, stop running the loop.
+ if (result == 0
+ && this->use_timeout ()
+ && max_wait_time == ACE_Time_Value::zero)
+ {
+ this->reactor ()->remove_handler (this, ACE_Event_Handler::WRITE_MASK);
+ this->send_timeout_ = true;
+ return ACE_Utils::truncate_cast<int>
+ (length - (this->msg_queue ()->message_bytes () / char_size));
+ }
+
+ // Other errors? If so, stop running the loop.
+ if (result == -1)
+ {
+ this->reactor ()->remove_handler (this, ACE_Event_Handler::WRITE_MASK);
+ return -1;
+ }
+
+ // Otherwise, keep going...
+ }
+ }
+ else
+ {
+ while (this->connected_)
+ {
+ result = this->handle_output_i (this->use_timeout () ?
+ &max_wait_time : 0);
+
+ // If we got our message out, no need to run the event loop any
+ // further.
+ if (this->msg_queue ()->is_empty ())
+ {
+ break;
+ }
+
+ // Did we timeout? If so, stop running the loop.
+ if (result == 0
+ && this->use_timeout ()
+ && max_wait_time == ACE_Time_Value::zero)
+ {
+ this->send_timeout_ = true;
+ return ACE_Utils::truncate_cast<int>
+ (length - (this->msg_queue ()->message_bytes () / char_size));
+ }
+
+ // Otherwise, keep going...
+ }
+ }
+
+ if (this->connected_)
+ return ACE_Utils::truncate_cast<int> (length); // all sent
+ else
+ return ACE_Utils::truncate_cast<int>
+ (length - (this->msg_queue ()->message_bytes () / char_size));
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ bool StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::is_connected () const
+ {
+ return this->connected_;
+ }
+
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ bool StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE>::using_reactor () const
+ {
+ return this->sync_opt_[ACE_Synch_Options::USE_REACTOR];
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_IOS_STREAM_HANDLER_CPP */
diff --git a/ACE/protocols/ace/INet/StreamHandler.h b/ACE/protocols/ace/INet/StreamHandler.h
new file mode 100644
index 00000000000..537821c3b57
--- /dev/null
+++ b/ACE/protocols/ace/INet/StreamHandler.h
@@ -0,0 +1,151 @@
+// $Id$
+
+/**
+ * @file StreamHandler.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_IOS_STREAM_HANDLER_H
+#define ACE_IOS_STREAM_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Svc_Handler.h"
+#include "ace/Reactor_Notification_Strategy.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace IOS
+ {
+ /**
+ * @class ACE_IOS_StreamHandler
+ *
+ * @brief Encapsulates streamed connection.
+ *
+ * This class provides the connection point for the
+ * ACE Acceptor and Connector based patterns and the
+ * ACE Reactor framework to C++ standard streams
+ * based classes.
+ */
+ template <ACE_PEER_STREAM_1, ACE_SYNCH_DECL>
+ class StreamHandler
+ : public ACE_Svc_Handler<ACE_PEER_STREAM, ACE_SYNCH_USE>
+ {
+ public:
+ // useful traits
+ typedef StreamHandler<ACE_PEER_STREAM, ACE_SYNCH_USE> this_type;
+ typedef ACE_Svc_Handler<ACE_PEER_STREAM, ACE_SYNCH_USE> base_type;
+ typedef ACE_Message_Queue<ACE_SYNCH_USE> mq_type;
+
+ /// Constructor
+ StreamHandler (const ACE_Synch_Options &synch_options = ACE_Synch_Options::defaults,
+ ACE_Thread_Manager *thr_mgr = 0,
+ mq_type *mq = 0,
+ ACE_Reactor *reactor = ACE_Reactor::instance ());
+
+ /// Destructor
+ virtual ~StreamHandler ();
+
+ /// Activate the connection
+ virtual int open (void * = 0);
+
+ /// Close the connection
+ virtual int close (u_long flags = 0);
+
+ /// Called to handle incoming data when using StreamHandler in
+ /// reactive mode
+ virtual int handle_input (ACE_HANDLE);
+
+ /// Called to handle outgoing data when using StreamHandler in
+ /// reactive mode
+ virtual int handle_output (ACE_HANDLE);
+
+ /// Called by streambuffer to read/receive new data from peer
+ int read_from_stream (void * buf, size_t length, u_short char_size);
+
+ /// Called by streambuffer to send new data to peer
+ int write_to_stream (const void * buf, size_t length, u_short char_size);
+
+ /// Returns true as long as the connection to peer is active
+ bool is_connected () const;
+
+ /// Returns true if StreamHandler has been configured for reactive mode
+ bool using_reactor () const;
+
+ private:
+ enum
+ {
+ MAX_INPUT_SIZE = 4096
+ };
+
+ /// Attempts to receive data from peer and queue it.
+ /// Called either from handle_input in reactive mode or
+ /// directly from read_from_stream when non-reactive.
+ int handle_output_i (ACE_Time_Value* timeout = 0);
+
+ /// Attempts to send queued data to peer.
+ /// Called either from handle_output in reactive mode
+ /// or directly from write_to_stream when non-reactive.
+ int handle_input_i (size_t rdlen, ACE_Time_Value* timeout = 0);
+
+ /// processes queued input
+ int process_input (char* buf,
+ size_t& char_length,
+ u_short char_size,
+ ACE_Time_Value* timeout);
+
+ /// Returns true if a timeout is to be used on IO operations.
+ bool use_timeout () const;
+
+ /// Returns true is the queued data contains at least char_size bytes.
+ bool char_in_queue (u_short char_size);
+
+ bool connected_;
+ ACE_Synch_Options sync_opt_;
+ bool send_timeout_;
+ bool receive_timeout_;
+ ACE_Reactor_Notification_Strategy notification_strategy_;
+
+ class NotificationStrategyGuard
+ {
+ public:
+ NotificationStrategyGuard (this_type& queue_owner,
+ ACE_Reactor_Notification_Strategy* ns)
+ : queue_owner_ (queue_owner)
+ {
+ this->queue_owner_.msg_queue ()->notification_strategy (ns);
+ }
+ ~NotificationStrategyGuard ()
+ {
+ this->queue_owner_.msg_queue ()->notification_strategy (0);
+ }
+ private:
+ this_type& queue_owner_;
+ };
+ };
+
+ typedef StreamHandler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> SockStreamHandler;
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/StreamHandler.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("StreamHandler.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_IOS_STREAM_HANDLER_H */
diff --git a/ACE/protocols/ace/INet/StreamInterceptor.cpp b/ACE/protocols/ace/INet/StreamInterceptor.cpp
new file mode 100644
index 00000000000..7f5a5066e1b
--- /dev/null
+++ b/ACE/protocols/ace/INet/StreamInterceptor.cpp
@@ -0,0 +1,57 @@
+// $Id$
+
+#ifndef ACE_IOS_STREAM_INTERCEPTOR_CPP
+#define ACE_IOS_STREAM_INTERCEPTOR_CPP
+
+#include "ace/INet/StreamInterceptor.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace IOS
+ {
+
+ template <class ACE_CHAR_T, class TR>
+ StreamInterceptorBase<ACE_CHAR_T, TR>::StreamInterceptorBase ()
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ StreamInterceptorBase<ACE_CHAR_T, TR>::~StreamInterceptorBase ()
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void StreamInterceptorBase<ACE_CHAR_T, TR>::before_write (const char_type* /*buffer*/,
+ std::streamsize /*length_to_write*/)
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void StreamInterceptorBase<ACE_CHAR_T, TR>::after_write (int /*length_written*/)
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void StreamInterceptorBase<ACE_CHAR_T, TR>::before_read (std::streamsize /*length_to_read*/)
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void StreamInterceptorBase<ACE_CHAR_T, TR>::after_read (const char_type* /*buffer*/,
+ int /*length_read*/)
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void StreamInterceptorBase<ACE_CHAR_T, TR>::on_eof ()
+ {
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_IOS_STREAM_INTERCEPTOR_CPP */
diff --git a/ACE/protocols/ace/INet/StreamInterceptor.h b/ACE/protocols/ace/INet/StreamInterceptor.h
new file mode 100644
index 00000000000..94cf93125ac
--- /dev/null
+++ b/ACE/protocols/ace/INet/StreamInterceptor.h
@@ -0,0 +1,74 @@
+// $Id$
+
+/**
+ * @file StreamInterceptor.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_IOS_STREAM_INTERCEPTOR_H
+#define ACE_IOS_STREAM_INTERCEPTOR_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/INet/INet_Export.h"
+#include <iosfwd>
+#include <ios>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace IOS
+ {
+ /**
+ * @class ACE_IOS_StreamInterceptorBase
+ *
+ * @brief Abstract base for stream interceptors.
+ *
+ */
+ template <class ACE_CHAR_T, class TR = std::char_traits<ACE_CHAR_T> >
+ class StreamInterceptorBase
+ {
+ public:
+ typedef std::basic_ios<ACE_CHAR_T, TR> ios_type;
+ typedef ACE_CHAR_T char_type;
+ typedef typename ios_type::openmode openmode;
+
+ virtual ~StreamInterceptorBase ();
+ protected:
+ StreamInterceptorBase ();
+
+ public:
+ virtual void before_write (const char_type* buffer,
+ std::streamsize length_to_write);
+ virtual void after_write (int length_written);
+ virtual void before_read (std::streamsize length_to_read);
+ virtual void after_read (const char_type* buffer,
+ int length_read);
+ virtual void on_eof (void);
+ };
+
+ typedef StreamInterceptorBase<char> StreamInterceptor;
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/StreamInterceptor.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("StreamInterceptor.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_IOS_STREAM_INTERCEPTOR_H */
diff --git a/ACE/protocols/ace/INet/String_IOStream.cpp b/ACE/protocols/ace/INet/String_IOStream.cpp
new file mode 100644
index 00000000000..185bc64950d
--- /dev/null
+++ b/ACE/protocols/ace/INet/String_IOStream.cpp
@@ -0,0 +1,229 @@
+// $Id$
+
+#ifndef ACE_IOS_STRING_IOSTREAM_CPP
+#define ACE_IOS_STRING_IOSTREAM_CPP
+
+#include "ace/INet/String_IOStream.h"
+#include "ace/INet/IOS_util.h"
+#include "ace/Truncate.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace IOS
+ {
+
+ template <class ACE_CHAR_T, class TR>
+ String_StreamBufferBase<ACE_CHAR_T, TR>::String_StreamBufferBase (openmode mode)
+ : BasicBufferedStreamBuffer<ACE_CHAR_T, TR> (BUFFER_SIZE, mode),
+ string_ref_ (&string_),
+ rd_ptr_ (0)
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_StreamBufferBase<ACE_CHAR_T, TR>::String_StreamBufferBase (string_type& string, openmode mode)
+ : BasicBufferedStreamBuffer<ACE_CHAR_T, TR> (BUFFER_SIZE, mode),
+ string_ref_ (&string),
+ rd_ptr_ (0)
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_StreamBufferBase<ACE_CHAR_T, TR>::~String_StreamBufferBase ()
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ typename String_StreamBufferBase<ACE_CHAR_T, TR>::pos_type
+ String_StreamBufferBase<ACE_CHAR_T, TR>::seekoff (
+ off_type off,
+ seekdir way,
+ openmode which)
+ {
+
+ if (which != this->get_mode () || which == std::ios::out)
+ return pos_type (-1);
+
+ size_type spos = 0;
+ if (way == std::ios::cur)
+ spos = this->rd_ptr_;
+ else if (way == std::ios::end)
+ spos = this->string_ref_->length ();
+ spos += off;
+ if (spos < this->string_ref_->length ())
+ this->rd_ptr_ = spos;
+ else
+ this->rd_ptr_ = this->string_ref_->length ();
+
+ this->setg (this->eback (), this->eback (), this->eback ());
+ return pos_type (this->rd_ptr_);
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ typename String_StreamBufferBase<ACE_CHAR_T, TR>::pos_type
+ String_StreamBufferBase<ACE_CHAR_T, TR>::seekpos (
+ pos_type pos,
+ openmode which)
+ {
+ return this->seekoff (pos_type (pos), std::ios::beg, which);
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ const typename String_StreamBufferBase<ACE_CHAR_T, TR>::string_type&
+ String_StreamBufferBase<ACE_CHAR_T, TR>::str () const
+ {
+ const_cast<String_StreamBufferBase<ACE_CHAR_T, TR>*> (this)->sync ();
+ return *this->string_ref_;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void String_StreamBufferBase<ACE_CHAR_T, TR>::close_string ()
+ {
+ this->sync ();
+ this->string_ref_ = 0;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void String_StreamBufferBase<ACE_CHAR_T, TR>::clear_string ()
+ {
+ this->sync ();
+ this->string_ref_->clear ();
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ int String_StreamBufferBase<ACE_CHAR_T, TR>::read_from_stream (char_type* buffer, std::streamsize length)
+ {
+ int n = 0;
+ if (this->string_ref_)
+ {
+ if ((this->rd_ptr_ + length) > this->string_ref_->length ())
+ {
+ length = this->string_ref_->length () - this->rd_ptr_;
+ }
+ ACE_OS::memmove (buffer, &(*this->string_ref_)[this->rd_ptr_], length * sizeof (char_type));
+ this->rd_ptr_ += length;
+ n = ACE_Utils::truncate_cast<int> (length);
+ }
+ return n;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ int String_StreamBufferBase<ACE_CHAR_T, TR>::write_to_stream (const char_type* buffer, std::streamsize length)
+ {
+ int n = 0;
+ if (this->string_ref_)
+ {
+ this->string_ref_->append (buffer, length);
+ n = ACE_Utils::truncate_cast<int> (length);
+ }
+ return n;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_IOSBase<ACE_CHAR_T, TR>::String_IOSBase (openmode mode)
+ : streambuf_ (mode)
+ {
+ ace_ios_init (&this->streambuf_);
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_IOSBase<ACE_CHAR_T, TR>::String_IOSBase (string_type& string, openmode mode)
+ : streambuf_ (string, mode)
+ {
+ ace_ios_init (&this->streambuf_);
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_IOSBase<ACE_CHAR_T, TR>::~String_IOSBase ()
+ {
+ this->close ();
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ typename String_IOSBase<ACE_CHAR_T, TR>::buffer_type*
+ String_IOSBase<ACE_CHAR_T, TR>::rdbuf ()
+ {
+ return &this->streambuf_;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void String_IOSBase<ACE_CHAR_T, TR>::close ()
+ {
+ this->streambuf_.close_string ();
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ const typename String_IOSBase<ACE_CHAR_T, TR>::buffer_type&
+ String_IOSBase<ACE_CHAR_T, TR>::stream () const
+ {
+ return this->streambuf_;
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_OStreamBase<ACE_CHAR_T, TR>::String_OStreamBase()
+ : String_IOSBase<ACE_CHAR_T, TR> (std::ios::out),
+ std::basic_ostream<ACE_CHAR_T, TR> (String_IOSBase<ACE_CHAR_T, TR>::rdbuf ())
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_OStreamBase<ACE_CHAR_T, TR>::String_OStreamBase(string_type& string)
+ : String_IOSBase<ACE_CHAR_T, TR> (string, std::ios::out),
+ std::basic_ostream<ACE_CHAR_T, TR> (String_IOSBase<ACE_CHAR_T, TR>::rdbuf ())
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_OStreamBase<ACE_CHAR_T, TR>::~String_OStreamBase()
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ const typename String_OStreamBase<ACE_CHAR_T, TR>::string_type&
+ String_OStreamBase<ACE_CHAR_T, TR>::str () const
+ {
+ return this->stream ().str ();
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ void String_OStreamBase<ACE_CHAR_T, TR>::clear ()
+ {
+ return this->rdbuf ()->clear_string ();
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_IStreamBase<ACE_CHAR_T, TR>::String_IStreamBase()
+ : String_IOSBase<ACE_CHAR_T, TR> (std::ios::in),
+ std::basic_istream<ACE_CHAR_T, TR> (String_IOSBase<ACE_CHAR_T, TR>::rdbuf ())
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_IStreamBase<ACE_CHAR_T, TR>::String_IStreamBase(const string_type& string)
+ : String_IOSBase<ACE_CHAR_T, TR> (const_cast<string_type&> (string),
+ std::ios::in),
+ std::basic_istream<ACE_CHAR_T, TR> (String_IOSBase<ACE_CHAR_T, TR>::rdbuf ())
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_IStreamBase<ACE_CHAR_T, TR>::~String_IStreamBase()
+ {
+ }
+
+ template <class ACE_CHAR_T, class TR>
+ String_IStreamBase<ACE_CHAR_T, TR>&
+ String_IStreamBase<ACE_CHAR_T, TR>::rewind ()
+ {
+ this->rdbuf ()->pubseekpos (0, std::ios::in);
+ this->clear ();
+ return *this;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_IOS_STRING_IOSTREAM_CPP */
diff --git a/ACE/protocols/ace/INet/String_IOStream.h b/ACE/protocols/ace/INet/String_IOStream.h
new file mode 100644
index 00000000000..febb257f787
--- /dev/null
+++ b/ACE/protocols/ace/INet/String_IOStream.h
@@ -0,0 +1,175 @@
+// $Id$
+
+/**
+ * @file String_IOStream.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_IOS_STRING_IOSTREAM_H
+#define ACE_IOS_STRING_IOSTREAM_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/BufferedStreamBuffer.h"
+#include "ace/SString.h"
+#include <istream>
+#include <ostream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace IOS
+ {
+ /**
+ * @class ACE_IOS_String_StreamBuffer
+ *
+ * @brief
+ *
+ */
+ template <class ACE_CHAR_T, class TR = std::char_traits<ACE_CHAR_T> >
+ class String_StreamBufferBase
+ : public BasicBufferedStreamBuffer<ACE_CHAR_T, TR>
+ {
+ public:
+ typedef BasicBufferedStreamBuffer<ACE_CHAR_T, TR> super;
+ typedef typename super::char_type char_type;
+ typedef typename super::openmode openmode;
+ typedef ACE_String_Base<ACE_CHAR_T> string_type;
+ typedef typename string_type::size_type size_type;
+ typedef typename super::pos_type pos_type;
+ typedef typename super::off_type off_type;
+ typedef typename super::seekdir seekdir;
+
+ String_StreamBufferBase (openmode mode);
+ String_StreamBufferBase (string_type& string, openmode mode);
+ virtual ~String_StreamBufferBase ();
+
+ const string_type& str () const;
+
+ void close_string ();
+
+ void clear_string ();
+
+ protected:
+ virtual int read_from_stream (char_type* buffer, std::streamsize length);
+
+ virtual int write_to_stream (const char_type* buffer, std::streamsize length);
+
+ virtual pos_type seekoff (off_type off,
+ seekdir way,
+ openmode which);
+
+ virtual pos_type seekpos (pos_type pos,
+ openmode which);
+
+ private:
+ enum
+ {
+ BUFFER_SIZE = 1024
+ };
+
+ string_type string_;
+ string_type * string_ref_;
+ size_type rd_ptr_;
+ };
+
+ /**
+ * @class ACE_IOS_String_IOS
+ *
+ * @brief
+ *
+ */
+ template <class ACE_CHAR_T, class TR = std::char_traits<ACE_CHAR_T> >
+ class String_IOSBase
+ : public virtual std::basic_ios<ACE_CHAR_T, TR>
+ {
+ public:
+ typedef std::basic_ios<ACE_CHAR_T, TR> ios_base;
+ typedef String_StreamBufferBase<ACE_CHAR_T, TR> buffer_type;
+ typedef typename buffer_type::string_type string_type;
+ typedef typename buffer_type::openmode openmode;
+
+ String_IOSBase (openmode mode);
+ String_IOSBase (string_type& string, openmode mode);
+ ~String_IOSBase ();
+
+ buffer_type* rdbuf ();
+
+ void close ();
+
+ const buffer_type& stream () const;
+
+ protected:
+ buffer_type streambuf_;
+ };
+
+ /**
+ * @class ACE_IOS_Sock_OStream
+ *
+ * @brief
+ *
+ */
+ template <class ACE_CHAR_T, class TR = std::char_traits<ACE_CHAR_T> >
+ class String_OStreamBase
+ : public String_IOSBase<ACE_CHAR_T, TR>,
+ public std::basic_ostream<ACE_CHAR_T, TR>
+ {
+ public:
+ typedef String_IOSBase<ACE_CHAR_T, TR> ios_base;
+ typedef typename ios_base::string_type string_type;
+
+ explicit String_OStreamBase();
+ explicit String_OStreamBase(string_type& string);
+ ~String_OStreamBase();
+
+ const string_type& str () const;
+
+ void clear ();
+ };
+
+ /**
+ * @class ACE_IOS_Sock_IStream
+ *
+ * @brief
+ *
+ */
+ template <class ACE_CHAR_T, class TR = std::char_traits<ACE_CHAR_T> >
+ class String_IStreamBase
+ : public String_IOSBase<ACE_CHAR_T, TR>,
+ public std::basic_istream<ACE_CHAR_T, TR>
+ {
+ public:
+ typedef String_IOSBase<ACE_CHAR_T, TR> ios_base;
+ typedef typename ios_base::string_type string_type;
+ typedef typename ios_base::buffer_type::pos_type pos_type;
+
+ explicit String_IStreamBase();
+ explicit String_IStreamBase(const string_type& string);
+ ~String_IStreamBase();
+
+ String_IStreamBase& rewind ();
+ };
+
+ typedef String_StreamBufferBase<char> CString_StreamBuffer;
+ typedef String_IOSBase<char> CString_IOS;
+ typedef String_OStreamBase<char> CString_OStream;
+ typedef String_IStreamBase<char> CString_IStream;
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/INet/String_IOStream.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("String_IOStream.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_IOS_STRING_IOSTREAM_H */
diff --git a/ACE/protocols/ace/INet/URLBase.cpp b/ACE/protocols/ace/INet/URLBase.cpp
new file mode 100644
index 00000000000..9ba4641ead3
--- /dev/null
+++ b/ACE/protocols/ace/INet/URLBase.cpp
@@ -0,0 +1,452 @@
+// $Id$
+
+#include "ace/INet/URLBase.h"
+#include "ace/INet/IOS_util.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/URLBase.inl"
+#endif
+
+#include "ace/INet/String_IOStream.h"
+
+#include "ace/INet/ClientRequestHandler.h"
+#include <istream>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+
+ URLStream::URLStream (const URLStream& url_stream)
+ : request_handler_ref_ (url_stream.request_handler_ref_),
+ request_handler_ (url_stream.request_handler_)
+ {
+ }
+
+ URLStream::~URLStream ()
+ {
+ }
+
+ bool URLStream::operator ! ()
+ {
+ return this->request_handler_ == 0 || !this->request_handler_->is_response_ok ();
+ }
+
+ URLStream::operator bool ()
+ {
+ return this->request_handler_ != 0 && this->request_handler_->is_response_ok ();
+ }
+
+ std::istream& URLStream::operator * ()
+ {
+ return this->request_handler_ ?
+ this->request_handler_->response_stream () :
+ ACE::IOS::Null::in_stream_;
+ }
+
+ std::istream* URLStream::operator -> ()
+ {
+ return this->request_handler_ ?
+ &this->request_handler_->response_stream () :
+ &ACE::IOS::Null::in_stream_;
+ }
+
+ URLStream::URLStream (ClientRequestHandler& rh)
+ : request_handler_ (&rh)
+ {
+ }
+
+ URLStream::URLStream (ClientRequestHandler* rh)
+ : request_handler_ref_ (rh),
+ request_handler_ (rh)
+ {
+ }
+
+ const ACE_CString URL_Base::empty_;
+
+ URL_Base::URL_Base ()
+ {
+ }
+
+ URL_Base::~URL_Base () {}
+
+ bool URL_Base::parse (const ACE_CString& url_string)
+ {
+ static const int eof =
+ std::char_traits<ACE::IOS::CString_OStream::char_type>::eof ();
+
+ ACE_CString uri = url_string;
+ if (this->strip_scheme (uri))
+ {
+ ACE::IOS::CString_OStream sos;
+ ACE::IOS::CString_IStream sis (uri);
+
+ int ch;
+
+ // parse authority part (if any)
+ if ((ch = this->parse_authority (sis)) == '/' ||
+ !this->has_authority ()) // relative paths allowed if no authority
+ {
+ // parse path part
+ sos.put (ch);
+ for (ch = sis.get (); ch != '?' && ch != '#' && ch != eof ;ch = sis.get ())
+ sos.put (ch);
+ this->set_path (sos.str ());
+ sos.clear ();
+ }
+ else
+ {
+ // empty path
+ this->set_path (empty_);
+ }
+
+ if (ch == '?')
+ {
+ // parse query part
+ for (ch = sis.get (); ch != '#' && ch != eof ;ch = sis.get ())
+ sos.put (ch);
+ this->set_query (sos.str ());
+ sos.clear ();
+ }
+
+ if (ch == '#')
+ {
+ // get fragment
+ sos << sis.rdbuf ();
+ this->set_fragment (sos.str ());
+ }
+ else if (ch != eof)
+ {
+ // should not happen
+ return false;
+ }
+
+ // check for (minimum) correctness
+ return this->validate ();
+ }
+ return false;
+ }
+
+ int URL_Base::parse_authority(std::istream& is)
+ {
+ return is.get ();
+ }
+
+ bool URL_Base::has_authority ()
+ {
+ return false;
+ }
+
+ bool URL_Base::validate ()
+ {
+ return true;
+ }
+
+ URLStream URL_Base::open () const
+ {
+ ClientRequestHandler* rh = this->create_default_request_handler ();
+ if (rh)
+ {
+ rh->handle_open_request (*this);
+ return URLStream (rh);
+ }
+ else
+ return URLStream (0);
+ }
+
+ URLStream URL_Base::open (ClientRequestHandler& rh) const
+ {
+ rh.handle_open_request (*this);
+ return URLStream (rh);
+ }
+
+ URL_Base* URL_Base::create_from_string (const ACE_CString& url_string)
+ {
+ ACE_CString::size_type pos = url_string.find (':');
+ if (pos >0 )
+ {
+ Factory* url_factory = 0;
+ if (factories_->find (url_string.substr (0, pos), url_factory) == 0)
+ {
+ return url_factory->create_from_string (url_string);
+ }
+ }
+
+ return 0;
+ }
+
+#if defined (ACE_HAS_WCHAR)
+ bool URL_Base::parse (const ACE_WString& url_string)
+ {
+ return this->parse (ACE_Wide_To_Ascii (url_string.c_str ()).char_rep ());
+ }
+
+ ACE_WString URL_Base::to_wstring () const
+ {
+ return ACE_Ascii_To_Wide (this->to_string().c_str ()).wchar_rep ();
+ }
+
+ URL_Base* URL_Base::create_from_wstring (const ACE_WString& url_string)
+ {
+ return create_from_string (ACE_Wide_To_Ascii (url_string.c_str ()).char_rep ());
+ }
+#endif
+
+ bool URL_Base::strip_scheme (ACE_CString& url_string)
+ {
+ // since this will be called at a point where the
+ // actual URL class is already known (and with that
+ // the protocol prefix) we allow for the fact we
+ // may get a url passed without the actual prefix
+
+ ACE_CString::size_type pos = url_string.find (':');
+ if (pos > 0 && url_string[pos+1] == '/' && url_string[pos+1] == '/')
+ {
+ // in case we find a scheme check for the right protocol
+ if (this->get_protocol () != url_string.substr (0, pos))
+ {
+ return false;
+ }
+ url_string = url_string.substr (pos+3); // skip '<protocol>://'
+ }
+ return true;
+ }
+
+ void URL_Base::register_factory (Factory* url_factory)
+ {
+ if (factories_ == 0)
+ {
+ factories_ = URL_Base::TURLFactorySingleton::instance ();
+ }
+ if (url_factory)
+ factories_->bind (url_factory->protocol (), url_factory);
+ }
+
+ void URL_Base::deregister_factory (Factory* url_factory)
+ {
+ if (factories_ && url_factory)
+ {
+ factories_->unbind (url_factory->protocol ());
+ };
+ }
+
+ URL_Base::TURLFactoryMap* URL_Base::factories_ = 0;
+
+ URL_Base::Factory::Factory ()
+ {}
+
+ URL_Base::Factory::~Factory ()
+ {}
+
+ URL_INetBase::URL_INetBase (u_short port)
+ : URL_Base (), port_ (port)
+ {
+ }
+
+ URL_INetBase::~URL_INetBase () {}
+
+ int URL_INetBase::parse_authority (std::istream& is)
+ {
+ ACE::IOS::CString_OStream sos;
+ return this->parse_authority_i (is, sos, 0);
+ }
+
+ int URL_INetBase::parse_authority_i (std::istream& is,
+ std::ostream& os,
+ int lastch)
+ {
+ static const int eof =
+ std::char_traits<ACE::IOS::CString_OStream::char_type>::eof ();
+
+ ACE::IOS::CString_OStream& sos =
+ dynamic_cast<ACE::IOS::CString_OStream&> (os);
+
+ int ch = lastch;
+ if (ch == 0)
+ {
+ // parse host part
+ for (ch = is.get ();
+#if defined (ACE_HAS_IPV6)
+ ch != '[' && ch != '/' && ch != ':' && ch != '@' && ch != '?' && ch != '#' && ch != eof ;
+#else
+ ch != '/' && ch != ':' && ch != '@' && ch != '?' && ch != '#' && ch != eof ;
+#endif
+ ch = is.get ())
+ sos.put (ch);
+ }
+
+#if defined (ACE_HAS_IPV6)
+ if (ch == '[')
+ {
+ sos.clear ();
+ for (ch = is.get (); ch != ']' && ch != eof ;ch = is.get ())
+ sos.put (ch);
+ if (ch != eof)
+ ch = is.get (); // skip ']'
+ if (ch != '/' && ch != ':' && ch != '?' && ch != '#' && ch != eof)
+ {
+ this->set_host (empty_); // invalid URL, clear host field
+ ch = eof; // stop parsing
+ }
+ else
+ {
+ this->set_host (sos.str ());
+ }
+ }
+ else
+ {
+#endif
+ this->set_host (sos.str ());
+#if defined (ACE_HAS_IPV6)
+ }
+#endif
+ sos.clear ();
+
+ if (ch == ':')
+ {
+ u_short port = 0;
+ is >> port; // should stop at '/' or '?' or '#' or eof
+ ch = is.get ();
+ if (ch == '/' || ch == '?' || ch == '#' || ch == eof)
+ this->set_port (port);
+ else
+ this->set_port (0);
+ }
+ else
+ {
+ this->set_port (this->default_port ());
+ }
+
+ return ch;
+ }
+
+ bool URL_INetBase::has_authority ()
+ {
+ return true;
+ }
+
+ bool URL_INetBase::validate ()
+ {
+ return !this->host_.empty () && this->port_>0;
+ }
+
+ ACE_CString URL_INetBase::get_authority () const
+ {
+ ACE::IOS::CString_OStream sos;
+ sos << this->get_host().c_str ();
+ if (this->get_port () != this->default_port ())
+ sos << ':' << this->get_port ();
+ return sos.str ();
+ }
+
+ URL_INetAuthBase::authenticator_map URL_INetAuthBase::authenticators_;
+
+ URL_INetAuthBase::URL_INetAuthBase (u_short port)
+ : URL_INetBase (port)
+ {
+ }
+
+ URL_INetAuthBase::~URL_INetAuthBase () {}
+
+ ACE_CString URL_INetAuthBase::get_authority () const
+ {
+ ACE::IOS::CString_OStream sos;
+ if (!this->get_user_info ().empty ())
+ sos << this->get_user_info ().c_str () << "@";
+ sos << this->get_host().c_str ();
+ if (this->get_port () != this->default_port ())
+ sos << ':' << this->get_port ();
+ return sos.str ();
+ }
+
+ int URL_INetAuthBase::parse_authority (std::istream& is)
+ {
+ static const int eof =
+ std::char_traits<ACE::IOS::CString_OStream::char_type>::eof ();
+
+ ACE::IOS::CString_OStream sos;
+
+ int ch;
+ // parse userinfo (if any)
+ for (ch = is.get ();
+#if defined (ACE_HAS_IPV6)
+ ch != '[' && ch != '/' && ch != ':' && ch != '@' && ch != '?' && ch != '#' && ch != eof ;
+#else
+ ch != '/' && ch != ':' && ch != '@' && ch != '?' && ch != '#' && ch != eof ;
+#endif
+ ch = is.get ())
+ sos.put (ch);
+
+ if (ch == '@')
+ {
+ this->set_user_info (sos.str ());
+ sos.clear ();
+ ch = URL_INetBase::parse_authority_i (is, sos, 0);
+ }
+ else
+ {
+ ch = URL_INetBase::parse_authority_i (is, sos, ch);
+ }
+
+ return ch;
+ }
+
+ bool URL_INetAuthBase::add_authenticator (const ACE_CString& auth_id,
+ AuthenticatorBase* authenticator)
+ {
+ if (URL_INetAuthBase::authenticators_.find (auth_id) == -1)
+ {
+ return URL_INetAuthBase::authenticators_.bind (auth_id,
+ authenticator_ptr (authenticator)) == 0;
+ }
+ return false;
+ }
+
+ bool URL_INetAuthBase::has_authenticator (const ACE_CString& auth_id)
+ {
+ return (URL_INetAuthBase::authenticators_.find (auth_id) == 0);
+ }
+
+ AuthenticatorBase* URL_INetAuthBase::remove_authenticator (const ACE_CString& auth_id)
+ {
+ authenticator_ptr auth;
+ if (URL_INetAuthBase::authenticators_.unbind (auth_id, auth) == 0)
+ {
+ auth.release ();
+ }
+ return 0;
+ }
+
+ bool URL_INetAuthBase::authenticate (AuthenticationBase& authentication)
+ {
+ ACE_GUARD_RETURN (ACE_SYNCH::RECURSIVE_MUTEX,
+ _guard,
+ URL_INetAuthBase::authenticators_.mutex (),
+ false);
+
+ authenticator_map::iterator it = URL_INetAuthBase::authenticators_.begin ();
+ for (; it != URL_INetAuthBase::authenticators_.end ();
+ ++it)
+ {
+ authenticator_ptr auth_ptr = (*it).int_id_;
+
+ // release lock before calling user code
+ if (URL_INetAuthBase::authenticators_.mutex ().release () != 0)
+ return false;
+
+ if (auth_ptr->authenticate (authentication))
+ return true;
+
+ // re-acquire lock
+ if (URL_INetAuthBase::authenticators_.mutex ().acquire () != 0)
+ return false;
+ }
+
+ return false;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/URLBase.h b/ACE/protocols/ace/INet/URLBase.h
new file mode 100644
index 00000000000..1e29efa4c33
--- /dev/null
+++ b/ACE/protocols/ace/INet/URLBase.h
@@ -0,0 +1,259 @@
+// $Id$
+
+/**
+ * @file URLBase.h
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+
+#ifndef ACE_INET_URL_BASE_H
+#define ACE_INET_URL_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+#include "ace/Map_Manager.h"
+#include "ace/Singleton.h"
+#include "ace/Null_Mutex.h"
+#include "ace/Recursive_Thread_Mutex.h"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/INet/INet_Export.h"
+#include "ace/INet/AuthenticationBase.h"
+#include "ace/INet/ClientRequestHandler.h"
+#include <iosfwd>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+ {
+ namespace INet
+ {
+
+ /**
+ * @class ACE_INet_URLStream
+ *
+ * @brief Provides abstracted wrapper class for the resulting
+ * stream of an URL <open> operation.
+ *
+ * Provides proper life cycle management for either factory provided
+ * or user provided request handlers.
+ */
+ class ACE_INET_Export URLStream
+ {
+ public:
+ URLStream (const URLStream& url_stream);
+ ~URLStream ();
+
+ bool operator ! ();
+
+ operator bool ();
+
+ std::istream& operator * ();
+
+ std::istream* operator -> ();
+
+ private:
+ friend class URL_Base;
+
+ URLStream (ClientRequestHandler& rh);
+ URLStream (ClientRequestHandler* rh);
+
+ typedef ACE_Refcounted_Auto_Ptr<ClientRequestHandler,
+ ACE_Null_Mutex> TRequestHandlerRef;
+
+ TRequestHandlerRef request_handler_ref_;
+ ClientRequestHandler* request_handler_;
+ };
+
+ /**
+ * @class ACE_INet_URL_Base
+ *
+ * @brief Base class for URL/URI addresses conforming to RFC3986.
+ *
+ */
+ class ACE_INET_Export URL_Base
+ {
+ public:
+ URL_Base ();
+ virtual ~URL_Base ();
+
+ virtual bool parse (const ACE_CString& url_string);
+
+ void set_path (const ACE_CString& path);
+
+ virtual void set_query (const ACE_CString& query);
+
+ virtual void set_fragment (const ACE_CString& fragment);
+
+ virtual const ACE_CString& get_scheme () const = 0;
+
+ const ACE_CString& get_protocol () const;
+
+ virtual ACE_CString get_authority () const;
+
+ const ACE_CString& get_path () const;
+
+ virtual const ACE_CString& get_query () const;
+
+ virtual const ACE_CString& get_fragment () const;
+
+ virtual URLStream open () const;
+
+ virtual URLStream open (ClientRequestHandler& rh) const;
+
+ virtual ACE_CString to_string () const = 0;
+
+ static URL_Base* create_from_string (const ACE_CString& url_string);
+
+#if defined (ACE_HAS_WCHAR)
+ virtual bool parse (const ACE_WString& url_string);
+
+ virtual ACE_WString to_wstring () const;
+
+ static URL_Base* create_from_wstring (const ACE_WString& url_string);
+#endif
+
+ virtual bool validate ();
+
+ protected:
+ static const ACE_CString empty_;
+
+ bool strip_scheme (ACE_CString& url_string);
+
+ virtual int parse_authority (std::istream& is);
+
+ virtual bool has_authority ();
+
+ virtual ClientRequestHandler* create_default_request_handler () const = 0;
+
+ private:
+ ACE_CString path_;
+
+ public:
+#if (defined(_MSC_VER) || defined(__MINGW32__))
+ class ACE_INET_Export Factory
+#else
+ class Factory
+#endif
+ {
+ public:
+ Factory ();
+ virtual ~Factory ();
+ virtual const ACE_CString& protocol () = 0;
+ virtual URL_Base* create_from_string (const ACE_CString& url_string) = 0;
+ };
+
+ static void register_factory (Factory* url_factory);
+ static void deregister_factory (Factory* url_factory);
+
+ private:
+ typedef ACE_Map_Manager<ACE_CString,
+ Factory*,
+ ACE_SYNCH::MUTEX> TURLFactoryMap;
+ typedef ACE_Singleton<TURLFactoryMap,
+ ACE_SYNCH::NULL_MUTEX> TURLFactorySingleton;
+ static TURLFactoryMap* factories_;
+ };
+
+ /**
+ * @class ACE_INet_URL_INetBase
+ *
+ * @brief Base class for internet protocol based URL/URI
+ * addresses supporting host(name) and port specification.
+ *
+ */
+ class ACE_INET_Export URL_INetBase
+ : public URL_Base
+ {
+ public:
+ URL_INetBase(u_short port);
+ virtual ~URL_INetBase ();
+
+ void set_host (const ACE_CString& host);
+
+ void set_port (u_short port);
+
+ const ACE_CString& get_host () const;
+
+ u_short get_port () const;
+
+ virtual u_short default_port () const = 0;
+
+ virtual ACE_CString get_authority () const;
+
+ virtual bool validate ();
+
+ protected:
+ virtual int parse_authority (std::istream& is);
+
+ virtual bool has_authority ();
+
+ int parse_authority_i (std::istream& is,
+ std::ostream& os,
+ int lastch);
+
+ private:
+ ACE_CString host_;
+ u_short port_;
+ };
+
+
+ /**
+ * @class ACE_INet_URL_INetAuthBase
+ *
+ * @brief Base class for internet protocol based URL/URI
+ * addresses supporting authentication information.
+ *
+ * This implementation does *not* support the specification
+ * of passwords in user_info field of the URL (deprecated as
+ * of RFC3986).
+ */
+ class ACE_INET_Export URL_INetAuthBase
+ : public URL_INetBase
+ {
+ public:
+ URL_INetAuthBase(u_short port);
+ virtual ~URL_INetAuthBase ();
+
+ const ACE_CString& get_user_info () const;
+
+ void set_user_info (const ACE_CString& userinfo);
+
+ virtual ACE_CString get_authority () const;
+
+ protected:
+ virtual int parse_authority (std::istream& is);
+
+ private:
+ ACE_CString userinfo_;
+
+ public:
+ static bool add_authenticator (const ACE_CString& auth_id, AuthenticatorBase* authenticator);
+
+ static bool has_authenticator (const ACE_CString& auth_id);
+
+ static AuthenticatorBase* remove_authenticator (const ACE_CString& auth_id);
+
+ static bool authenticate (AuthenticationBase& authentication);
+
+ private:
+ typedef ACE_Refcounted_Auto_Ptr<AuthenticatorBase,
+ ACE_SYNCH::NULL_MUTEX> authenticator_ptr;
+ typedef ACE_Map_Manager<ACE_CString,
+ authenticator_ptr,
+ ACE_SYNCH::RECURSIVE_MUTEX> authenticator_map;
+
+ static authenticator_map authenticators_;
+ };
+
+ }
+ }
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/INet/URLBase.inl"
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_INET_URL_BASE_H */
diff --git a/ACE/protocols/ace/INet/URLBase.inl b/ACE/protocols/ace/INet/URLBase.inl
new file mode 100644
index 00000000000..c998e47a3f7
--- /dev/null
+++ b/ACE/protocols/ace/INet/URLBase.inl
@@ -0,0 +1,95 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace INet
+ {
+ ACE_INLINE
+ const ACE_CString& URL_Base::get_protocol () const
+ {
+ return this->get_scheme ();
+ }
+
+ ACE_INLINE
+ const ACE_CString& URL_Base::get_path () const
+ {
+ return this->path_;
+ }
+
+ ACE_INLINE
+ void URL_Base::set_path (const ACE_CString& path)
+ {
+ this->path_ = path;
+ }
+
+ ACE_INLINE
+ void URL_Base::set_query (const ACE_CString& /*query*/)
+ {
+ }
+
+ ACE_INLINE
+ void URL_Base::set_fragment (const ACE_CString& /*fragment*/)
+ {
+ }
+
+ ACE_INLINE
+ const ACE_CString& URL_Base::get_query () const
+ {
+ return empty_;
+ }
+
+ ACE_INLINE
+ const ACE_CString& URL_Base::get_fragment () const
+ {
+ return empty_;
+ }
+
+ ACE_INLINE
+ ACE_CString URL_Base::get_authority () const
+ {
+ return empty_;
+ }
+
+ ACE_INLINE
+ const ACE_CString& URL_INetBase::get_host () const
+ {
+ return this->host_;
+ }
+
+ ACE_INLINE
+ u_short URL_INetBase::get_port () const
+ {
+ return this->port_;
+ }
+
+ ACE_INLINE
+ void URL_INetBase::set_host (const ACE_CString& host)
+ {
+ this->host_ = host;
+ }
+
+ ACE_INLINE
+ void URL_INetBase::set_port (u_short port)
+ {
+ this->port_ = port;
+ }
+
+ ACE_INLINE
+ const ACE_CString& URL_INetAuthBase::get_user_info () const
+ {
+ return this->userinfo_;
+ }
+
+ ACE_INLINE
+ void URL_INetAuthBase::set_user_info (const ACE_CString& userinfo)
+ {
+ this->userinfo_ = userinfo;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/protocols/ace/INet/inet.mpc b/ACE/protocols/ace/INet/inet.mpc
new file mode 100644
index 00000000000..9492f8a668f
--- /dev/null
+++ b/ACE/protocols/ace/INet/inet.mpc
@@ -0,0 +1,97 @@
+// -*- MPC -*-
+// $Id$
+
+project(INet) : acelib, ace_output, install {
+ sharedname = ACE_INet
+ dynamicflags += ACE_INET_BUILD_DLL
+ includes += $(ACE_ROOT)/protocols
+ avoids += wince
+ avoids += old_stdstream
+ avoids += exclude_inet
+ avoids += ace_for_tao
+ avoids += corba_e_compact
+ Source_Files {
+ IOS_util.cpp
+ INet_Log.cpp
+ HeaderBase.cpp
+ Request.cpp
+ Response.cpp
+ RequestHandler.cpp
+ ConnectionCache.cpp
+ ClientRequestHandler.cpp
+ HTTP_Status.cpp
+ HTTP_Header.cpp
+ HTTP_Response.cpp
+ HTTP_Request.cpp
+ HTTP_IOStream.cpp
+ HTTP_SessionBase.cpp
+ HTTP_BasicAuthentication.cpp
+ URLBase.cpp
+ AuthenticationBase.cpp
+ HTTP_URL.cpp
+ HTTP_ClientRequestHandler.cpp
+ FTP_Request.cpp
+ FTP_Response.cpp
+ FTP_IOStream.cpp
+ FTP_URL.cpp
+ FTP_ClientRequestHandler.cpp
+ }
+ Template_Files {
+ BidirStreamBuffer.cpp
+ BufferedStreamBuffer.cpp
+ HTTP_Session.cpp
+ HTTP_StreamPolicy.cpp
+ HTTP_StreamPolicyBase.cpp
+ Sock_IOStream.cpp
+ StreamHandler.cpp
+ StreamInterceptor.cpp
+ String_IOStream.cpp
+ FTP_Session.cpp
+ }
+ Header_Files {
+ INet_Export.h
+ }
+ specific {
+ install_dir = ace/INet
+ }
+}
+
+// This project will be generated with and without ssl=1 feature
+// but will only build when the ssl macro != 1 (i.e. ssl off)
+project(HTTP_Simple_exec) : aceexe, inet {
+ exename = http_simple_wget
+ Source_Files {
+ HTTP_Simple_exec.cpp
+ }
+ verbatim(gnuace, circuit) {
+ "ifeq ($(ssl),1)"
+ "override BIN:="
+ "ifdef ARCH"
+ "override ARCH_BIN:="
+ "endif #ARCH"
+ "all: avoid_warning"
+ "endif"
+ }
+
+ verbatim(gnuace, local) {
+ "ifeq ($(ssl),1)"
+ "avoids_enabled_macros += ssl"
+ "endif"
+ }
+}
+
+// This project will only be generated with the ssl=1 feature
+// and will only build when the ssl macro = 1 (i.e. ssl on)
+project(HTTPS_Simple_exec) : aceexe, inet, inetssl {
+ exename = https_simple_wget
+ Source_Files {
+ HTTP_Simple_exec.cpp
+ }
+}
+
+project(FTP_Simple_exec) : aceexe, inet {
+ exename = ftp_simple_wget
+ Source_Files {
+ FTP_Simple_exec.cpp
+ }
+}
diff --git a/ACE/protocols/ace/INet/inet_ssl.mpc b/ACE/protocols/ace/INet/inet_ssl.mpc
new file mode 100644
index 00000000000..5f4ea9989c6
--- /dev/null
+++ b/ACE/protocols/ace/INet/inet_ssl.mpc
@@ -0,0 +1,28 @@
+// -*- MPC -*-
+// $Id$
+
+project(INet_SSL) : acelib, ace_output, install, inet, ssl {
+ sharedname = ACE_INet_SSL
+ dynamicflags += ACE_INET_SSL_BUILD_DLL
+ includes += $(ACE_ROOT)/protocols
+ Source_Files {
+ SSL_X509Cert.cpp
+ SSL_CertificateCallback.cpp
+ SSL_PasswordCallback.cpp
+ SSL_CallbackManager.cpp
+ HTTPS_Context.cpp
+ HTTPS_URL.cpp
+ HTTPS_SessionFactory.cpp
+ SSL_Proxy_Connector.cpp
+ }
+ Template_Files {
+ SSLSock_IOStream.cpp
+ HTTPS_Session.cpp
+ }
+ Header_Files {
+ INet_SSL_Export.h
+ }
+ specific {
+ install_dir = ace/INet
+ }
+}
diff --git a/ACE/protocols/ace/RMCast/Acknowledge.cpp b/ACE/protocols/ace/RMCast/Acknowledge.cpp
index 2423357e92a..a39c1cb0648 100644
--- a/ACE/protocols/ace/RMCast/Acknowledge.cpp
+++ b/ACE/protocols/ace/RMCast/Acknowledge.cpp
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Acknowledge.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "ace/Time_Value.h" // ACE_Time_Value
#include "ace/OS_NS_unistd.h"
@@ -9,12 +8,6 @@
#include "Acknowledge.h"
-/*
-#include <iostream>
-using std::cerr;
-using std::endl;
-*/
-
namespace ACE_RMCast
{
Acknowledge::
@@ -279,7 +272,7 @@ namespace ACE_RMCast
u64 sn (static_cast<SN const*> (m->find (SN::id))->num ());
- Map::ENTRY* e;
+ Map::ENTRY* e = 0;
if (hold_.find (from, e) == -1)
{
diff --git a/ACE/protocols/ace/RMCast/Acknowledge.h b/ACE/protocols/ace/RMCast/Acknowledge.h
index 3d7654b1fec..799ff7e353b 100644
--- a/ACE/protocols/ace/RMCast/Acknowledge.h
+++ b/ACE/protocols/ace/RMCast/Acknowledge.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Acknowledge.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_ACKNOWLEDGE_H
#define ACE_RMCAST_ACKNOWLEDGE_H
diff --git a/ACE/protocols/ace/RMCast/Bits.h b/ACE/protocols/ace/RMCast/Bits.h
index 1b45580647b..79a0bde104e 100644
--- a/ACE/protocols/ace/RMCast/Bits.h
+++ b/ACE/protocols/ace/RMCast/Bits.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Bits.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_BITS_H
#define ACE_RMCAST_BITS_H
@@ -13,13 +12,10 @@
namespace ACE_RMCast
{
typedef ACE_SYNCH_MUTEX Mutex;
+// FUZZ: disable check_for_ACE_Guard
typedef ACE_Guard<Mutex> Lock;
typedef ACE_Condition<Mutex> Condition;
-
- // tmp
- //
- //using std::cerr;
- //using std::endl;
+// FUZZ: enable check_for_ACE_Guard
}
diff --git a/ACE/protocols/ace/RMCast/Flow.cpp b/ACE/protocols/ace/RMCast/Flow.cpp
index c5d9f63a754..1656624a5e5 100644
--- a/ACE/protocols/ace/RMCast/Flow.cpp
+++ b/ACE/protocols/ace/RMCast/Flow.cpp
@@ -1,20 +1,14 @@
-// file : ace/RMCast/Flow.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "Flow.h"
+#include "ace/ACE.h"
#include "ace/OS_NS_unistd.h" // sleep
#include "ace/OS_NS_sys_time.h" // gettimeofday
#include "ace/os_include/os_math.h" // exp
-/*
-#include <iostream>
-using std::cerr;
-using std::endl;
-*/
-
namespace ACE_RMCast
{
Flow::
@@ -57,9 +51,9 @@ namespace ACE_RMCast
}
}
- if (cap_tput_ != 0.0
- && current_tput_ != 0.0
- && current_tput_ > cap_tput_)
+ if (!ACE::is_equal (cap_tput_, 0.0) &&
+ !ACE::is_equal (current_tput_, 0.0) &&
+ current_tput_ > cap_tput_)
{
double dev = (current_tput_ - cap_tput_) / current_tput_;
@@ -118,10 +112,10 @@ namespace ACE_RMCast
nak_time_ = nak_time;
- if (cap_tput_ == 0.0)
+ if (ACE::is_equal (cap_tput_, 0.0))
cap_tput_ = current_tput_;
- if (cap_tput_ != 0.0)
+ if (!ACE::is_equal (cap_tput_, 0.0))
{
cap_tput_ = cap_tput_ - cap_tput_ / 6.0;
diff --git a/ACE/protocols/ace/RMCast/Flow.h b/ACE/protocols/ace/RMCast/Flow.h
index e64d0d438a2..7c8848b8d3d 100644
--- a/ACE/protocols/ace/RMCast/Flow.h
+++ b/ACE/protocols/ace/RMCast/Flow.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Flow.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_FLOW_H
#define ACE_RMCAST_FLOW_H
diff --git a/ACE/protocols/ace/RMCast/Fragment.cpp b/ACE/protocols/ace/RMCast/Fragment.cpp
index 9a483e7cfbe..3bf08f24350 100644
--- a/ACE/protocols/ace/RMCast/Fragment.cpp
+++ b/ACE/protocols/ace/RMCast/Fragment.cpp
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Fragment.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "Fragment.h"
diff --git a/ACE/protocols/ace/RMCast/Fragment.h b/ACE/protocols/ace/RMCast/Fragment.h
index bfaa3044c83..6362c51bfbb 100644
--- a/ACE/protocols/ace/RMCast/Fragment.h
+++ b/ACE/protocols/ace/RMCast/Fragment.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Fragment.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_FRAGMENT_H
#define ACE_RMCAST_FRAGMENT_H
diff --git a/ACE/protocols/ace/RMCast/Link.cpp b/ACE/protocols/ace/RMCast/Link.cpp
index 12e6003d456..e1329ac346a 100644
--- a/ACE/protocols/ace/RMCast/Link.cpp
+++ b/ACE/protocols/ace/RMCast/Link.cpp
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Link.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "ace/Time_Value.h" // ACE_Time_Value
#include "ace/OS_NS_stdio.h"
@@ -188,11 +187,7 @@ namespace ACE_RMCast
{
size_t max_packet_size (params_.max_packet_size ());
- // This is wicked.
- //
- ACE_Auto_Ptr<char> holder (
- reinterpret_cast<char*> (
- operator new (max_packet_size + ACE_CDR::MAX_ALIGNMENT)));
+ ACE_Auto_Array_Ptr<char> holder (new char[max_packet_size + ACE_CDR::MAX_ALIGNMENT]);
char* data = ACE_ptr_align_binary (holder.get (), ACE_CDR::MAX_ALIGNMENT);
diff --git a/ACE/protocols/ace/RMCast/Link.h b/ACE/protocols/ace/RMCast/Link.h
index 6397322556f..35ca7fb2f15 100644
--- a/ACE/protocols/ace/RMCast/Link.h
+++ b/ACE/protocols/ace/RMCast/Link.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Link.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_LINK_H
#define ACE_RMCAST_LINK_H
diff --git a/ACE/protocols/ace/RMCast/Parameters.h b/ACE/protocols/ace/RMCast/Parameters.h
index d254bd00fad..0137979fcf7 100644
--- a/ACE/protocols/ace/RMCast/Parameters.h
+++ b/ACE/protocols/ace/RMCast/Parameters.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Parameters.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_PARAMETERS_H
#define ACE_RMCAST_PARAMETERS_H
diff --git a/ACE/protocols/ace/RMCast/Protocol.cpp b/ACE/protocols/ace/RMCast/Protocol.cpp
index 755872371cb..9ae7804d010 100644
--- a/ACE/protocols/ace/RMCast/Protocol.cpp
+++ b/ACE/protocols/ace/RMCast/Protocol.cpp
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Protocol.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "Protocol.h"
diff --git a/ACE/protocols/ace/RMCast/Protocol.h b/ACE/protocols/ace/RMCast/Protocol.h
index 50090523ad0..e0aa1660b8a 100644
--- a/ACE/protocols/ace/RMCast/Protocol.h
+++ b/ACE/protocols/ace/RMCast/Protocol.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Protocol.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_PROTOCOL_H
#define ACE_RMCAST_PROTOCOL_H
@@ -22,10 +21,6 @@
#include "Bits.h"
-/*
-#include <iostream>
-*/
-
namespace ACE_RMCast
{
// Basic types.
@@ -1024,7 +1019,7 @@ namespace ACE_RMCast
u64
find (Address const& addr) const
{
- u64 sn;
+ u64 sn = 0;
if (map_.find (addr, sn) == -1) return 0;
diff --git a/ACE/protocols/ace/RMCast/RMCast.mpc b/ACE/protocols/ace/RMCast/RMCast.mpc
index de7da3ddda5..67d9309067f 100644
--- a/ACE/protocols/ace/RMCast/RMCast.mpc
+++ b/ACE/protocols/ace/RMCast/RMCast.mpc
@@ -4,7 +4,11 @@
project(RMCast) : acelib, ace_output, install, threads {
avoids = ace_for_tao
sharedname = ACE_RMCast
- dynamicflags = ACE_RMCAST_BUILD_DLL
+ dynamicflags += ACE_RMCAST_BUILD_DLL
+
+ specific {
+ install_dir = ace/RMCast
+ }
Pkgconfig_Files {
ACE_RMCast.pc.in
diff --git a/ACE/protocols/ace/RMCast/Reassemble.cpp b/ACE/protocols/ace/RMCast/Reassemble.cpp
index e5aeab92519..27af0233cb8 100644
--- a/ACE/protocols/ace/RMCast/Reassemble.cpp
+++ b/ACE/protocols/ace/RMCast/Reassemble.cpp
@@ -1,16 +1,9 @@
-// file : ace/RMCast/Reassemble.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "Reassemble.h"
#include "ace/OS_NS_stdlib.h"
-/*
-#include <iostream>
-using std::cerr;
-using std::endl;
-*/
-
namespace ACE_RMCast
{
Reassemble::
@@ -21,7 +14,7 @@ namespace ACE_RMCast
void Reassemble::recv (Message_ptr m)
{
- Map::ENTRY* e;
+ Map::ENTRY* e = 0;
Address from (
static_cast<From const*> (m->find (From::id))->address ());
diff --git a/ACE/protocols/ace/RMCast/Reassemble.h b/ACE/protocols/ace/RMCast/Reassemble.h
index cffa4fdc359..37a12cf8922 100644
--- a/ACE/protocols/ace/RMCast/Reassemble.h
+++ b/ACE/protocols/ace/RMCast/Reassemble.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Reassemble.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_REASSEMBLE_H
#define ACE_RMCAST_REASSEMBLE_H
diff --git a/ACE/protocols/ace/RMCast/Retransmit.cpp b/ACE/protocols/ace/RMCast/Retransmit.cpp
index 6611bb14b52..1a570f337fa 100644
--- a/ACE/protocols/ace/RMCast/Retransmit.cpp
+++ b/ACE/protocols/ace/RMCast/Retransmit.cpp
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Retransmit.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "ace/Time_Value.h" // ACE_Time_Value
#include "ace/OS_NS_stdlib.h" // abort
@@ -8,12 +7,6 @@
#include "Retransmit.h"
-/*
-#include <iostream>
-using std::cerr;
-using std::endl;
-*/
-
namespace ACE_RMCast
{
Retransmit::
diff --git a/ACE/protocols/ace/RMCast/Retransmit.h b/ACE/protocols/ace/RMCast/Retransmit.h
index 0a3a8f72bd7..977f61b4c42 100644
--- a/ACE/protocols/ace/RMCast/Retransmit.h
+++ b/ACE/protocols/ace/RMCast/Retransmit.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Retransmit.h
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#ifndef ACE_RMCAST_RETRANSMIT_H
#define ACE_RMCAST_RETRANSMIT_H
diff --git a/ACE/protocols/ace/RMCast/Simulator.cpp b/ACE/protocols/ace/RMCast/Simulator.cpp
index ec879c865ba..c449821aa95 100644
--- a/ACE/protocols/ace/RMCast/Simulator.cpp
+++ b/ACE/protocols/ace/RMCast/Simulator.cpp
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Simulator.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "ace/OS_NS_time.h"
#include "Simulator.h"
diff --git a/ACE/protocols/ace/RMCast/Simulator.h b/ACE/protocols/ace/RMCast/Simulator.h
index 27b227f488b..0548ae2fa93 100644
--- a/ACE/protocols/ace/RMCast/Simulator.h
+++ b/ACE/protocols/ace/RMCast/Simulator.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Simulator.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_SIMULATOR_H
#define ACE_RMCAST_SIMULATOR_H
diff --git a/ACE/protocols/ace/RMCast/Socket.cpp b/ACE/protocols/ace/RMCast/Socket.cpp
index 51e6d450173..b3bd0b2a01c 100644
--- a/ACE/protocols/ace/RMCast/Socket.cpp
+++ b/ACE/protocols/ace/RMCast/Socket.cpp
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Socket.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "ace/OS_Memory.h"
#include "ace/OS_NS_stdio.h"
diff --git a/ACE/protocols/ace/RMCast/Socket.h b/ACE/protocols/ace/RMCast/Socket.h
index 3468df15d4d..261808afe8c 100644
--- a/ACE/protocols/ace/RMCast/Socket.h
+++ b/ACE/protocols/ace/RMCast/Socket.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Socket.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_SOCKET_H
#define ACE_RMCAST_SOCKET_H
diff --git a/ACE/protocols/ace/RMCast/Stack.cpp b/ACE/protocols/ace/RMCast/Stack.cpp
index 19d592f5c21..68b0d31bcfe 100644
--- a/ACE/protocols/ace/RMCast/Stack.cpp
+++ b/ACE/protocols/ace/RMCast/Stack.cpp
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Stack.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
+// $Id$
#include "Stack.h"
diff --git a/ACE/protocols/ace/RMCast/Stack.h b/ACE/protocols/ace/RMCast/Stack.h
index 322fe0dc501..1637d87a1d4 100644
--- a/ACE/protocols/ace/RMCast/Stack.h
+++ b/ACE/protocols/ace/RMCast/Stack.h
@@ -1,6 +1,5 @@
-// file : ace/RMCast/Stack.h
+// $Id$
// author : Boris Kolpackov <boris@kolpackov.net>
-// cvs-id : $Id$
#ifndef ACE_RMCAST_STACK_H
#define ACE_RMCAST_STACK_H
diff --git a/ACE/protocols/ace/TMCast/FaultDetector.hpp b/ACE/protocols/ace/TMCast/FaultDetector.hpp
index d91540ba6f6..b629cf27078 100644
--- a/ACE/protocols/ace/TMCast/FaultDetector.hpp
+++ b/ACE/protocols/ace/TMCast/FaultDetector.hpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/FaultDetector.hpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#include "Protocol.hpp"
diff --git a/ACE/protocols/ace/TMCast/Group.cpp b/ACE/protocols/ace/TMCast/Group.cpp
index 1165aa34e98..e2d82b3dec5 100644
--- a/ACE/protocols/ace/TMCast/Group.cpp
+++ b/ACE/protocols/ace/TMCast/Group.cpp
@@ -1,17 +1,17 @@
-// file : ACE_TMCast/Group.cpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#include "Group.hpp"
#include <typeinfo>
// OS primitives
-#include <ace/OS.h>
#include <ace/OS_NS_stdlib.h>
#include <ace/Synch.h>
#include <ace/Time_Value.h>
#include <ace/SOCK_Dgram_Mcast.h>
+#include <ace/Condition_T.h>
+#include <ace/OS_NS_sys_time.h>
#include "Messaging.hpp"
@@ -298,7 +298,9 @@ namespace ACE_TMCast
ACE_Thread_Mutex mutex_;
ACE_Condition<ACE_Thread_Mutex> cond_;
+// FUZZ: disable check_for_ACE_Guard
typedef ACE_Guard<ACE_Thread_Mutex> AutoLock;
+// FUZZ: enable check_for_ACE_Guard
char id_[Protocol::MEMBER_ID_LENGTH];
@@ -429,7 +431,7 @@ namespace ACE_TMCast
{
Recv* data = dynamic_cast<Recv*> (m.get ());
- if (size < data->size ())
+ if (size < data->size ())
throw Group::InsufficienSpace ();
ACE_OS::memcpy (msg, data->payload (), data->size ());
@@ -463,7 +465,9 @@ namespace ACE_TMCast
ACE_Condition<ACE_Thread_Mutex> send_cond_;
ACE_Condition<ACE_Thread_Mutex> recv_cond_;
+ // FUZZ: disable check_for_ACE_Guard
typedef ACE_Guard<ACE_Thread_Mutex> AutoLock;
+ // FUZZ: enable check_for_ACE_Guard
bool failed_;
diff --git a/ACE/protocols/ace/TMCast/Group.hpp b/ACE/protocols/ace/TMCast/Group.hpp
index 1ec39ca4f22..55adb735a87 100644
--- a/ACE/protocols/ace/TMCast/Group.hpp
+++ b/ACE/protocols/ace/TMCast/Group.hpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/Group.hpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#ifndef TMCAST_GROUP_HPP
#define TMCAST_GROUP_HPP
diff --git a/ACE/protocols/ace/TMCast/GroupFwd.hpp b/ACE/protocols/ace/TMCast/GroupFwd.hpp
index d224586545e..43da9eef0a6 100644
--- a/ACE/protocols/ace/TMCast/GroupFwd.hpp
+++ b/ACE/protocols/ace/TMCast/GroupFwd.hpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/GroupFwd.hpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#ifndef TMCAST_GROUP_FWD_HPP
#define TMCAST_GROUP_FWD_HPP
diff --git a/ACE/protocols/ace/TMCast/LinkListener.hpp b/ACE/protocols/ace/TMCast/LinkListener.hpp
index 983f7828f3e..c432e2f54f2 100644
--- a/ACE/protocols/ace/TMCast/LinkListener.hpp
+++ b/ACE/protocols/ace/TMCast/LinkListener.hpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/LinkListener.hpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
// OS primitives
#include <ace/OS_NS_string.h>
@@ -15,15 +14,8 @@
namespace ACE_TMCast
{
- //
- //
- //
class LinkFailure : public virtual Message {};
-
- //
- //
- //
class LinkData : public virtual Message
{
public:
@@ -64,9 +56,6 @@ namespace ACE_TMCast
ACE_Refcounted_Auto_Ptr<LinkData, ACE_Null_Mutex>
LinkDataPtr;
- //
- //
- //
class LinkListener
{
private:
@@ -161,7 +150,9 @@ namespace ACE_TMCast
}
private:
+ // FUZZ: disable check_for_ACE_Guard
typedef ACE_Guard<ACE_Thread_Mutex> AutoLock;
+ // FUZZ: enable check_for_ACE_Guard
ACE_hthread_t thread_;
ACE_SOCK_Dgram_Mcast& sock_;
diff --git a/ACE/protocols/ace/TMCast/MTQueue.cpp b/ACE/protocols/ace/TMCast/MTQueue.cpp
index 9f08db5843d..74eef90ae38 100644
--- a/ACE/protocols/ace/TMCast/MTQueue.cpp
+++ b/ACE/protocols/ace/TMCast/MTQueue.cpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/MTQueue.cpp
+// $Id$
// author : Steve Huston <shuston@riverace.com>
-// cvs-id : $Id$
#include "LinkListener.hpp"
#include "MTQueue.hpp"
diff --git a/ACE/protocols/ace/TMCast/MTQueue.hpp b/ACE/protocols/ace/TMCast/MTQueue.hpp
index 2eb128823fe..2905ea0564f 100644
--- a/ACE/protocols/ace/TMCast/MTQueue.hpp
+++ b/ACE/protocols/ace/TMCast/MTQueue.hpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/MTQueue.hpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#ifndef TMCAST_MT_QUEUE_HPP
#define TMCAST_MT_QUEUE_HPP
@@ -9,6 +8,7 @@
#include "ace/Unbounded_Set.h"
#include "ace/Unbounded_Queue.h"
#include "ace/os_include/sys/os_types.h"
+#include "ace/Condition_T.h"
namespace ACE_TMCast
{
diff --git a/ACE/protocols/ace/TMCast/Messaging.hpp b/ACE/protocols/ace/TMCast/Messaging.hpp
index f17dd40b03c..a75191f23f0 100644
--- a/ACE/protocols/ace/TMCast/Messaging.hpp
+++ b/ACE/protocols/ace/TMCast/Messaging.hpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/Messaging.hpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#ifndef TMCAST_MESSAGING_HPP
#define TMCAST_MESSAGING_HPP
diff --git a/ACE/protocols/ace/TMCast/Protocol.cpp b/ACE/protocols/ace/TMCast/Protocol.cpp
index ea4c6b39020..14991207edd 100644
--- a/ACE/protocols/ace/TMCast/Protocol.cpp
+++ b/ACE/protocols/ace/TMCast/Protocol.cpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/Protocol.cpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#include "Protocol.hpp"
diff --git a/ACE/protocols/ace/TMCast/Protocol.hpp b/ACE/protocols/ace/TMCast/Protocol.hpp
index 6cdf374f4f9..91ef5ab4dab 100644
--- a/ACE/protocols/ace/TMCast/Protocol.hpp
+++ b/ACE/protocols/ace/TMCast/Protocol.hpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/Protocol.hpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#ifndef TMCAST_PROTOCOL_HPP
#define TMCAST_PROTOCOL_HPP
@@ -9,9 +8,6 @@ namespace ACE_TMCast
{
namespace Protocol
{
- //
- //
- //
unsigned long const MEMBER_ID_LENGTH = 38;
struct MemberId
@@ -23,13 +19,8 @@ namespace ACE_TMCast
*/
};
- //
- //
- //
typedef unsigned short TransactionId;
-
-
typedef unsigned char TransactionStatus;
TransactionStatus const TS_BEGIN = 1;
@@ -51,9 +42,6 @@ namespace ACE_TMCast
// typedef Transaction TransactionList[TL_LENGTH];
- //
- //
- //
struct MessageHeader
{
unsigned long length;
@@ -67,11 +55,6 @@ namespace ACE_TMCast
//TransactionList transaction_list;
};
-
- //
- //
- //
-
unsigned long const MAX_MESSAGE_SIZE = 768;
unsigned long const
diff --git a/ACE/protocols/ace/TMCast/TMCast.mpc b/ACE/protocols/ace/TMCast/TMCast.mpc
index 5d053de03a5..d3031512e46 100644
--- a/ACE/protocols/ace/TMCast/TMCast.mpc
+++ b/ACE/protocols/ace/TMCast/TMCast.mpc
@@ -1,11 +1,15 @@
// -*- MPC -*-
// $Id$
-project : acelib, ace_output, install, exceptions, threads {
+project : acelib, ace_output, install, threads {
avoids = ace_for_tao
sharedname = ACE_TMCast
dynamicflags += TMCAST_BUILD_DLL
+ specific {
+ install_dir = ace/TMCast
+ }
+
Pkgconfig_Files {
ACE_TMCast.pc.in
}
diff --git a/ACE/protocols/ace/TMCast/TransactionController.hpp b/ACE/protocols/ace/TMCast/TransactionController.hpp
index 0ed5002bdf1..25ddc6b9a14 100644
--- a/ACE/protocols/ace/TMCast/TransactionController.hpp
+++ b/ACE/protocols/ace/TMCast/TransactionController.hpp
@@ -1,6 +1,5 @@
-// file : ACE_TMCast/TransactionController.hpp
+// $Id$
// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdlib.h"
@@ -187,7 +186,7 @@ namespace ACE_TMCast
// transfer payload
size = send_->size ();
- memcpy (payload, send_->payload (), size);
+ ACE_OS::memcpy (payload, send_->payload (), size);
send_ = SendPtr ();
@@ -367,7 +366,9 @@ namespace ACE_TMCast
}
private:
+ // FUZZ: disable check_for_ACE_Guard
typedef ACE_Guard<ACE_Thread_Mutex> AutoLock;
+ // FUZZ: enable check_for_ACE_Guard
bool trace_;
diff --git a/ACE/protocols/examples/RMCast/Send_Msg/Send_Msg.mpc b/ACE/protocols/examples/RMCast/Send_Msg/Send_Msg.mpc
index 981df7ec8a7..629583c8550 100644
--- a/ACE/protocols/examples/RMCast/Send_Msg/Send_Msg.mpc
+++ b/ACE/protocols/examples/RMCast/Send_Msg/Send_Msg.mpc
@@ -1,14 +1,14 @@
// -*- MPC -*-
// $Id$
-project(*Sender) : aceexe, exceptions, rmcast {
+project(*Sender) : aceexe, rmcast {
avoids = ace_for_tao
exename = sender
Source_Files {
Sender.cpp
}
}
-project(*Receiver) : aceexe, exceptions, rmcast {
+project(*Receiver) : aceexe, rmcast {
avoids = ace_for_tao
exename = receiver
Source_Files {
diff --git a/ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp b/ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp
index 5a1ed1674d6..2061e2af364 100644
--- a/ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp
+++ b/ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp
@@ -2,8 +2,8 @@
// author : Boris Kolpackov <boris@kolpackov.net>
// cvs-id : $Id$
-#include "ace/OS.h"
#include "ace/Log_Msg.h"
+#include "ace/OS_NS_unistd.h"
#include "ace/RMCast/Socket.h"
diff --git a/ACE/protocols/tests/HTBP/HTBP_Config.conf b/ACE/protocols/tests/HTBP/HTBP_Config.conf
index 49dfd238ec3..314f84f1751 100644
--- a/ACE/protocols/tests/HTBP/HTBP_Config.conf
+++ b/ACE/protocols/tests/HTBP/HTBP_Config.conf
@@ -1,3 +1,5 @@
+# $Id$
+
[htbp]
proxy_port=3128
proxy_host=rtai.ociweb.com
diff --git a/ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp b/ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp
index 9d4dffe0ee9..a355fe5be25 100644
--- a/ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp
+++ b/ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp
@@ -6,6 +6,7 @@
#include "ace/Log_Msg.h"
#include "ace/Get_Opt.h"
+#include "ace/OS_NS_sys_socket.h"
#include "ace/HTBP/HTBP_Session.h"
#include "ace/HTBP/HTBP_Stream.h"
@@ -46,7 +47,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;
}
@@ -133,7 +134,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 +196,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/Reactor_Tests/inside.conf b/ACE/protocols/tests/HTBP/Reactor_Tests/inside.conf
index a5bcbc14420..0674362435b 100644
--- a/ACE/protocols/tests/HTBP/Reactor_Tests/inside.conf
+++ b/ACE/protocols/tests/HTBP/Reactor_Tests/inside.conf
@@ -1,3 +1,5 @@
+# $Id$
+
[root]
[htbp]
proxy_port=3128
diff --git a/ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl b/ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl
index 13aafef2d43..0ba137a10e1 100755
--- a/ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl
+++ b/ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl
@@ -35,14 +35,14 @@ $target1->DeleteFile ($synchbase);
my $CL = $target2->CreateProcess ("client", " -h $host -p $port");
-$client = $CL->SpawnWaitKill (300);
+$client = $CL->SpawnWaitKill ($target2->ProcessStartWaitInterval() + 285);
if ($client != 0) {
print STDERR "ERROR: client returned $client\n";
$status = 1;
}
-$server = $SV->WaitKill (10);
+$server = $SV->WaitKill ($target1->ProcessStopWaitInterval());
if ($server != 0) {
print STDERR "ERROR: server returned $server\n";
diff --git a/ACE/protocols/tests/HTBP/Reactor_Tests/server.cpp b/ACE/protocols/tests/HTBP/Reactor_Tests/server.cpp
index af9f211c48c..2049c1c42e1 100644
--- a/ACE/protocols/tests/HTBP/Reactor_Tests/server.cpp
+++ b/ACE/protocols/tests/HTBP/Reactor_Tests/server.cpp
@@ -17,6 +17,8 @@
#include "ace/Get_Opt.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_sys_socket.h"
+#include "ace/os_include/os_netdb.h"
unsigned port = 8088;
const ACE_TCHAR *notifier_file = 0;
@@ -46,7 +48,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/ACE/protocols/tests/HTBP/Reactor_Tests/test_config.h b/ACE/protocols/tests/HTBP/Reactor_Tests/test_config.h
index 02b32956691..d2047b4f121 100644
--- a/ACE/protocols/tests/HTBP/Reactor_Tests/test_config.h
+++ b/ACE/protocols/tests/HTBP/Reactor_Tests/test_config.h
@@ -32,7 +32,6 @@
// This first #undef protects against command-line definitions.
#undef ACE_NDEBUG
-#include "ace/OS.h"
#include "ace/streams.h"
#include "ace/Singleton.h"
#include "ace/Synch.h"
diff --git a/ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp b/ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp
index 72c35536f89..12f041c1185 100644
--- a/ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp
+++ b/ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp
@@ -8,6 +8,7 @@
#include "ace/Log_Msg.h"
#include "ace/Get_Opt.h"
+#include "ace/OS_NS_sys_socket.h"
const ssize_t Send_Size = 4*1024;
const size_t Loops = 10;
@@ -45,7 +46,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;
}
@@ -112,7 +113,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/protocols/tests/HTBP/Send_Large_Msg/run_test.pl b/ACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl
index 6b5255794d9..430f3fdf962 100755
--- a/ACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl
+++ b/ACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl
@@ -17,7 +17,7 @@ $synchfile = $target1->LocalFile ("$synchbase");
my $port = $target1->RandomPort ();
my $host = $target1->HostName();
-my $SV = $target1->CreateProcess("server", "-p $port -o $synchfile");
+my $SV = $target1->CreateProcess ("server", "-p $port -o $synchfile");
my $CL = $target2->CreateProcess ("client", " -h $host -p $port");
$target1->DeleteFile ($synchbase);
@@ -34,14 +34,14 @@ if ($target1->WaitForFileTimed ($synchbase,
$target1->DeleteFile ($synchbase);
-$client = $CL->SpawnWaitKill (300);
+$client = $CL->SpawnWaitKill ($target2->ProcessStartWaitInterval() + 285);
if ($client != 0) {
print STDERR "ERROR: client returned $client\n";
$status = 1;
}
-$server = $SV->WaitKill (10);
+$server = $SV->WaitKill ($target1->ProcessStopWaitInterval());
if ($server != 0) {
print STDERR "ERROR: server returned $server\n";
diff --git a/ACE/protocols/tests/HTBP/Send_Large_Msg/server.cpp b/ACE/protocols/tests/HTBP/Send_Large_Msg/server.cpp
index 724a14b2da3..9c8f2eec286 100644
--- a/ACE/protocols/tests/HTBP/Send_Large_Msg/server.cpp
+++ b/ACE/protocols/tests/HTBP/Send_Large_Msg/server.cpp
@@ -10,6 +10,8 @@
#include "ace/SOCK_Acceptor.h"
#include "ace/SOCK_Stream.h"
#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_sys_socket.h"
+#include "ace/os_include/os_netdb.h"
const size_t Send_Size = 4*1024;
const size_t Loops = 10;
@@ -41,7 +43,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;
}
@@ -119,7 +121,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT("(%P|%t) Server: ")
- ACE_TEXT("using streams %d, %d. Got sesssion = %x\n"),
+ ACE_TEXT("using streams %d, %d. Got session = %x\n"),
sock[0].get_handle(),sock[1].get_handle(),session));
ssize_t got = 1;
diff --git a/ACE/protocols/tests/HTBP/Send_Recv_Tests/client.cpp b/ACE/protocols/tests/HTBP/Send_Recv_Tests/client.cpp
index 2ad433e70ea..e0a25c98b51 100644
--- a/ACE/protocols/tests/HTBP/Send_Recv_Tests/client.cpp
+++ b/ACE/protocols/tests/HTBP/Send_Recv_Tests/client.cpp
@@ -1,40 +1,37 @@
-// $Id$
-
-// ===========================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Send_Recv_Test.cpp
-//
-// = DESCRIPTION This is a test of the <ACE_SOCK>'s various send and
-// receive methods, over HTBP. The test forks two processes or spawns
-// two threads (depending upon the platform) and then executes client
-// and server allowing them to connect and exchange data in ways
-// designed to exercise the send and recv functions.
-//
-// Right now, it primarily tests the iov-like send and recv
-// functions, but others should be added to completely cover the
-// possible scenarios.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file client.cpp
+ *
+ * $Id$
+ *
+ * receive methods, over HTBP. The test forks two processes or spawns
+ * two threads (depending upon the platform) and then executes client
+ * and server allowing them to connect and exchange data in ways
+ * designed to exercise the send and recv functions.
+ *
+ * Right now, it primarily tests the iov-like send and recv
+ * functions, but others should be added to completely cover the
+ * possible scenarios.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "ace/HTBP/HTBP_Stream.h"
#include "ace/HTBP/HTBP_Session.h"
#include "ace/HTBP/HTBP_ID_Requestor.h"
#include "ace/HTBP/HTBP_Environment.h"
-#include "ace/OS.h"
#include "ace/Thread.h"
#include "ace/Thread_Manager.h"
#include "ace/SOCK_Connector.h"
#include "ace/SOCK_Acceptor.h"
#include "ace/SOCK_Stream.h"
#include "ace/Get_Opt.h"
+#include "ace/OS_NS_sys_socket.h"
// Change to non-zero if test fails
static int Test_Result = 0;
@@ -76,7 +73,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/ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl b/ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl
index a5175909548..17b9e3f2193 100755
--- a/ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl
+++ b/ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl
@@ -33,14 +33,14 @@ if ($target1->WaitForFileTimed ($synchbase,
}
$target1->DeleteFile ($synchbase);
-$client = $CL->SpawnWaitKill (300);
+$client = $CL->SpawnWaitKill ($target2->ProcessStartWaitInterval() + 285);
if ($client != 0) {
print STDERR "ERROR: client returned $client\n";
$status = 1;
}
-$server = $SV->WaitKill (10);
+$server = $SV->WaitKill ($target1->ProcessStopWaitInterval());
if ($server != 0) {
print STDERR "ERROR: server returned $server\n";
diff --git a/ACE/protocols/tests/HTBP/Send_Recv_Tests/server.cpp b/ACE/protocols/tests/HTBP/Send_Recv_Tests/server.cpp
index aec607eb629..0421c1481ec 100644
--- a/ACE/protocols/tests/HTBP/Send_Recv_Tests/server.cpp
+++ b/ACE/protocols/tests/HTBP/Send_Recv_Tests/server.cpp
@@ -1,34 +1,30 @@
-// $Id$
-
-// ===========================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Send_Recv_Test.cpp
-//
-// = DESCRIPTION This is a test of the <ACE_SOCK>'s various send and
-// receive methods, over HTBP. The test forks two processes or spawns
-// two threads (depending upon the platform) and then executes client
-// and server allowing them to connect and exchange data in ways
-// designed to exercise the send and recv functions.
-//
-// Right now, it primarily tests the iov-like send and recv
-// functions, but others should be added to completely cover the
-// possible scenarios.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file server.cpp
+ *
+ * $Id$
+ *
+ * receive methods, over HTBP. The test forks two processes or spawns
+ * two threads (depending upon the platform) and then executes client
+ * and server allowing them to connect and exchange data in ways
+ * designed to exercise the send and recv functions.
+ *
+ * Right now, it primarily tests the iov-like send and recv
+ * functions, but others should be added to completely cover the
+ * possible scenarios.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "ace/HTBP/HTBP_Stream.h"
#include "ace/HTBP/HTBP_Session.h"
#include "ace/HTBP/HTBP_ID_Requestor.h"
#include "ace/HTBP/HTBP_Environment.h"
-#include "ace/OS.h"
#include "ace/Thread.h"
#include "ace/Thread_Manager.h"
#include "ace/SOCK_Connector.h"
@@ -36,6 +32,8 @@
#include "ace/SOCK_Stream.h"
#include "ace/Get_Opt.h"
#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_sys_socket.h"
+#include "ace/os_include/os_netdb.h"
// Change to non-zero if test fails
static int Test_Result = 0;
@@ -77,7 +75,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/ACE/protocols/tests/HTBP/ping/client.cpp b/ACE/protocols/tests/HTBP/ping/client.cpp
index 481be629208..f0c754075b7 100644
--- a/ACE/protocols/tests/HTBP/ping/client.cpp
+++ b/ACE/protocols/tests/HTBP/ping/client.cpp
@@ -7,6 +7,8 @@
#include "ace/ACE.h"
#include "ace/Log_Msg.h"
#include "ace/Get_Opt.h"
+#include "ace/OS_NS_sys_socket.h"
+#include "ace/os_include/os_netdb.h"
#include "ace/HTBP/HTBP_Session.h"
#include "ace/HTBP/HTBP_Stream.h"
@@ -51,7 +53,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/ACE/protocols/tests/HTBP/ping/run_test.pl b/ACE/protocols/tests/HTBP/ping/run_test.pl
index 7269c8fcbfc..d5592ee3f26 100755
--- a/ACE/protocols/tests/HTBP/ping/run_test.pl
+++ b/ACE/protocols/tests/HTBP/ping/run_test.pl
@@ -35,14 +35,14 @@ if ($target1->WaitForFileTimed ($synchbase,
$target1->DeleteFile ($synchbase);
-$client = $CL->SpawnWaitKill (300);
+$client = $CL->SpawnWaitKill ($target2->ProcessStartWaitInterval() + 285);
if ($client != 0) {
print STDERR "ERROR: client returned $client\n";
$status = 1;
}
-$server = $SV->WaitKill (10);
+$server = $SV->WaitKill ($target1->ProcessStopWaitInterval());
if ($server != 0) {
print STDERR "ERROR: server returned $server\n";
diff --git a/ACE/protocols/tests/HTBP/ping/server.cpp b/ACE/protocols/tests/HTBP/ping/server.cpp
index 7bde988c3cf..7f28c6c342f 100644
--- a/ACE/protocols/tests/HTBP/ping/server.cpp
+++ b/ACE/protocols/tests/HTBP/ping/server.cpp
@@ -14,6 +14,8 @@
#include "ace/SOCK_Stream.h"
#include "ace/Get_Opt.h"
#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_sys_socket.h"
+#include "ace/os_include/os_netdb.h"
unsigned port = 8088;
const ACE_TCHAR *notifier_file = 0;
@@ -41,7 +43,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;
}
@@ -115,7 +117,7 @@ ACE_TMAIN (int argc , ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) Server: ")
- ACE_TEXT ("using streams %d, %d. Got sesssion = %@\n"),
+ ACE_TEXT ("using streams %d, %d. Got session = %@\n"),
sock[0].get_handle(),
sock[1].get_handle(),
session));
diff --git a/ACE/protocols/tests/INet/MT_Get/Main.cpp b/ACE/protocols/tests/INet/MT_Get/Main.cpp
new file mode 100644
index 00000000000..5b6732aee13
--- /dev/null
+++ b/ACE/protocols/tests/INet/MT_Get/Main.cpp
@@ -0,0 +1,310 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/Task.h"
+#include "ace/Containers_T.h"
+#include "ace/Reactor.h"
+#include "ace/INet/HTTP_URL.h"
+#include "ace/INet/HTTP_ClientRequestHandler.h"
+#include "ace/INet/String_IOStream.h"
+#include "ace/Truncate.h"
+#include <iostream>
+
+int n_threads = 3;
+
+#if defined (ACE_HAS_THREADS)
+class Get_Task : public ACE_Task<ACE_MT_SYNCH>
+{
+public:
+ Get_Task (ACE_Thread_Manager *thr_mgr,
+ int n_threads);
+
+ virtual int svc (void);
+
+ const ACE_Array<ACE_CString>& results ();
+
+private:
+ void shutdown ();
+
+ int n_threads_;
+ ACE_Array<ACE_CString> results_;
+ ACE_SYNCH_MUTEX lock_;
+};
+
+Get_Task::Get_Task (ACE_Thread_Manager *thr_mgr,
+ int n_threads)
+ : ACE_Task<ACE_MT_SYNCH> (thr_mgr),
+ n_threads_ (n_threads)
+{
+ // Create worker threads.
+ if (this->activate (THR_NEW_LWP, n_threads_) == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("activate failed")));
+ else
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) started %d threads\n"), n_threads_));
+}
+
+void Get_Task::shutdown ()
+{
+ ACE_GUARD (ACE_SYNCH_MUTEX,
+ guard_,
+ lock_);
+
+ --n_threads_;
+ if (n_threads_ <= 0)
+ {
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) ending event loop\n")));
+ ACE_Reactor::instance ()->end_event_loop ();
+ }
+}
+
+int Get_Task::svc ()
+{
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) task started\n")));
+
+ ACE::HTTP::URL http_url;
+ if (http_url.parse ("http://www.theaceorb.nl"))
+ {
+ ACE::HTTP::ClientRequestHandler rh;
+ ACE::INet::URLStream urlin = http_url.open (rh);
+ if (urlin)
+ {
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) opened URL %C\n"), http_url.to_string ().c_str ()));
+
+ ACE::IOS::CString_OStream sos;
+ sos << urlin->rdbuf ();
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) result downloaded\n")));
+ if (!sos.bad ())
+ {
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ lock_,
+ 0);
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) storing result\n")));
+ results_.size (results_.size () + 1);
+ results_[results_.size ()-1] = sos.str ();
+ }
+ }
+ else
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) failed to open URL %C\n"), http_url.to_string ().c_str ()));
+ shutdown ();
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) failed to parse URL : result = %C\n"),
+ http_url.to_string ().c_str ()));
+ }
+
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) task finished\n")));
+
+ return 0;
+}
+
+const ACE_Array<ACE_CString>& Get_Task::results ()
+{
+ return results_;
+}
+
+class Get_MultiTask : public ACE_Task<ACE_MT_SYNCH>
+{
+public:
+ Get_MultiTask (ACE_Thread_Manager *thr_mgr);
+
+ virtual int svc (void);
+
+ int failures ();
+
+private:
+ const char* get_url ();
+
+ void wait_for_all ();
+
+ void shutdown ();
+
+ int n_threads_;
+ int n_thread_starts_;
+ int n_open_urls_;
+ int n_fails_;
+ ACE_SYNCH_MUTEX lock_;
+ ACE_SYNCH_CONDITION signal_;
+};
+
+const char* urls_[] = {
+ "http://www.theaceorb.nl",
+ "http://www.remedy.nl",
+ "http://www.google.com"
+};
+
+Get_MultiTask::Get_MultiTask (ACE_Thread_Manager *thr_mgr)
+ : ACE_Task<ACE_MT_SYNCH> (thr_mgr),
+ n_threads_ (sizeof (urls_)/sizeof (const char*)),
+ n_thread_starts_ (0),
+ n_open_urls_ (0),
+ n_fails_ (n_threads_),
+ signal_ (lock_)
+{
+ // Create worker threads.
+ if (this->activate (THR_NEW_LWP, n_threads_) == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("activate failed")));
+}
+
+const char* Get_MultiTask::get_url ()
+{
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ lock_,
+ 0);
+
+ const char* url = urls_[n_thread_starts_];
+ ++n_thread_starts_;
+ return url;
+}
+
+void Get_MultiTask::wait_for_all ()
+{
+ ACE_GUARD (ACE_SYNCH_MUTEX,
+ guard_,
+ lock_);
+
+ ++n_open_urls_;
+
+ if (n_open_urls_ == n_threads_)
+ signal_.broadcast (); // signal all threads that all urls are opened
+ else
+ signal_.wait (); // wait for all urls to be opened
+}
+
+void Get_MultiTask::shutdown ()
+{
+ ACE_GUARD (ACE_SYNCH_MUTEX,
+ guard_,
+ lock_);
+
+ --n_threads_;
+ if (n_threads_ <= 0)
+ {
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) ending event loop\n")));
+ ACE_Reactor::instance ()->end_event_loop ();
+ }
+}
+
+int Get_MultiTask::svc ()
+{
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) multitask started\n")));
+
+ ACE::HTTP::URL http_url;
+ const char* url = get_url ();
+
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) parsing URL %C\n"), url));
+
+ if (http_url.parse (url))
+ {
+ ACE::HTTP::ClientRequestHandler rh;
+ http_url.open (rh);
+ if (rh.response_stream ())
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) opened URL %C\n"), http_url.to_string ().c_str ()));
+ else
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) failed to open URL %C\n"), http_url.to_string ().c_str ()));
+ wait_for_all ();
+ if (rh.response_stream ())
+ {
+ ACE::IOS::CString_OStream sos;
+ sos << rh.response_stream ().rdbuf ();
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) result downloaded\n")));
+ if (!sos.bad ())
+ {
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard_,
+ lock_,
+ 0);
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) marking result\n")));
+ --n_fails_;
+ }
+ }
+ shutdown ();
+ }
+
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) task finished\n")));
+
+ return 0;
+}
+
+int Get_MultiTask::failures ()
+{
+ return n_fails_;
+}
+
+#endif
+
+int
+ACE_TMAIN (int, ACE_TCHAR *[])
+{
+#if defined (ACE_HAS_THREADS)
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) MGet_Test started\n")));
+
+ ACE_Reactor* reactor = ACE_Reactor::instance ();
+
+#if 1
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) starting serialized test\n")));
+
+ Get_Task get_task (ACE_Thread_Manager::instance (),
+ n_threads);
+
+ // run event loop until ended by last task thread
+ reactor->run_event_loop ();
+
+ // all threads really ended?
+ ACE_Thread_Manager::instance ()->wait ();
+
+ // All threads should have resulted in the same data...
+ if (get_task.results ().size () != ACE_Utils::truncate_cast<size_t> (n_threads))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%d results found; ")
+ ACE_TEXT ("should be %d\n"),
+ get_task.results ().size (),
+ n_threads));
+ }
+ else
+ {
+ const ACE_Array<ACE_CString>& results = get_task.results ();
+ for (int i=1;
+ i < n_threads;
+ ++i)
+ {
+ if (results[0] != results[i])
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("result %d does not match other results\n"),
+ i));
+ }
+ }
+ }
+#endif
+
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) starting parallelized test\n")));
+
+ reactor->reset_event_loop ();
+
+ Get_MultiTask get_multi_task (ACE_Thread_Manager::instance ());
+
+ // run event loop until ended by last task thread
+ reactor->run_event_loop ();
+
+ // all threads really ended?
+ ACE_Thread_Manager::instance ()->wait ();
+
+ // All threads should have resulted in data...
+ if (get_multi_task.failures () > 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%d failures found"),
+ get_multi_task.failures ()));
+ }
+
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) MGet_Test finished\n")));
+#else
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("threads not supported on this platform\n")));
+#endif /* ACE_HAS_THREADS */
+ return 0;
+}
diff --git a/ACE/protocols/tests/INet/MT_Get/test.mpc b/ACE/protocols/tests/INet/MT_Get/test.mpc
new file mode 100644
index 00000000000..fdf30e0d630
--- /dev/null
+++ b/ACE/protocols/tests/INet/MT_Get/test.mpc
@@ -0,0 +1,9 @@
+// -*- MPC -*-
+// $Id$
+
+project(MT_Get) : aceexe, inet {
+ exename = mt_get
+ Source_Files {
+ Main.cpp
+ }
+}
diff --git a/ACE/protocols/tests/RMCast/RMCast.mpc b/ACE/protocols/tests/RMCast/RMCast.mpc
index 12bd8174c4b..897e1611b71 100644
--- a/ACE/protocols/tests/RMCast/RMCast.mpc
+++ b/ACE/protocols/tests/RMCast/RMCast.mpc
@@ -1,13 +1,13 @@
// -*- MPC -*-
// $Id$
-project(*Sender) : aceexe, exceptions, rmcast {
+project(*Sender) : aceexe, rmcast {
exename = sender
Source_Files {
Sender.cpp
}
}
-project(*Receiver) : aceexe, exceptions, rmcast {
+project(*Receiver) : aceexe, rmcast {
exename = receiver
Source_Files {
Receiver.cpp
diff --git a/ACE/protocols/tests/RMCast/Sender.cpp b/ACE/protocols/tests/RMCast/Sender.cpp
index bbc6dc1b1f7..ecc2e7d8ae5 100644
--- a/ACE/protocols/tests/RMCast/Sender.cpp
+++ b/ACE/protocols/tests/RMCast/Sender.cpp
@@ -2,8 +2,8 @@
// author : Boris Kolpackov <boris@kolpackov.net>
// cvs-id : $Id$
-#include "ace/OS.h"
#include "ace/Log_Msg.h"
+#include "ace/OS_NS_unistd.h"
#include "ace/RMCast/Socket.h"
diff --git a/ACE/protocols/tests/RMCast/run_test.pl b/ACE/protocols/tests/RMCast/run_test.pl
index abee8b0594c..2e9d75142ad 100755
--- a/ACE/protocols/tests/RMCast/run_test.pl
+++ b/ACE/protocols/tests/RMCast/run_test.pl
@@ -24,7 +24,7 @@ sleep ($target1->ProcessStartWaitInterval());
$sender->Spawn ();
-$status = $receiver->WaitKill (40);
+$status = $receiver->WaitKill ($target2->ProcessStopWaitInterval() + 30);
if ($status != 0) {
print STDERR "ERROR: receiver returned $status\n";
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
deleted file mode 100644
index 4d7891bc90b..00000000000
--- a/ACE/rpmbuild/ace-tao-ciao.spec
+++ /dev/null
@@ -1,2688 +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
-
-# TODO
-# Test whether a TAO app with MPC can be build against MPC installed version
-
-# Conditional build
-# Default values are
-# --with rnq (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
-# --with ipv6 (IPv6 support)
-# --with opt (Optimized build)
-# --with zlib (Zlib compressor)
-# --with bzip2 (Bzip2 compressor)
-# --with autoconf (Use autoconf to build)
-# --with fltk (ftlk support)
-# --with tk (tk support)
-# --with xt (xt support)
-# --with fox (fox support)
-# --with qt (qt support)
-
-#
-# Read: If neither macro exists, then add the default definition.
-%{!?_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}}
-%{!?_with_zlib: %{!?_without_zlib: %define _with_zlib --with-zlib}}
-%{!?_with_bzip2: %{!?_without_bzip2: %define _with_bzip2 --with-bzip2}}
-%{!?_with_autoconf: %{!?_without_autoconf: %define _without_autoconf --without-autoconf}}
-%{!?_with_ftlk: %{!?_without_ftlk: %define _without_ftlk --without-ftlk}}
-%{!?_with_tk: %{!?_without_tk: %define _without_tk --without-tk}}
-%{!?_with_xt: %{!?_without_xt: %define _without_xt --without-xt}}
-%{!?_with_fox: %{!?_without_fox: %define _without_fox --without-fox}}
-%{!?_with_qt: %{!?_without_qt: %define _without_qt --without-qt}}
-#
-# Read: It's an error if both or neither required options exist.
-%{?_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}}}
-%{?_with_zlib: %{?_without_zlib: %{error: both _with_zlib and _without_zlib}}}
-%{?_with_bzip2: %{?_without_bzip2: %{error: both _with_bzip2 and _without_bzip2}}}
-%{?_with_autoconf: %{?_without_autoconf: %{error: both _with_autoconf and _without_autoconf}}}
-%{?_with_fltk: %{?_without_fltk: %{error: both _with_fltk and _without_fltk}}}
-%{?_with_tk: %{?_without_tk: %{error: both _with_tk and _without_tk}}}
-%{?_with_xt: %{?_without_xt: %{error: both _with_xt and _without_xt}}}
-%{?_with_fox: %{?_without_fox: %{error: both _with_fox and _without_fox}}}
-%{?_with_qt: %{?_without_qt: %{error: both _with_qt and _without_qt}}}
-
-%{!?skip_make:%define skip_make 0}
-%{!?make_nosrc:%define make_nosrc 0}
-%{!?is_major_ver:%define is_major_ver 0}
-
-%define have_fox 0
-
-%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/C and C++
-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}
-%define _extension .gz
-%endif
-
-%if 0%{?fedora_version}
-%define _extension .gz
-%endif
-
-%if 0%{?rhel_version}
-%define _extension .gz
-%endif
-
-%if 0%{?suse_version}
-%define _extension .gz
-%endif
-
-%if !0%{?suse_version}
-Requires(post): /sbin/install-info
-Requires(preun): /sbin/install-info
-Requires(postun): /sbin/ldconfig
-%else
-PreReq: %install_info_prereq %insserv_prereq %fillup_prereq
-PreReq: pwdutils
-%endif
-
-BuildRequires: openssl-devel
-BuildRequires: gcc-c++
-BuildRequires: libstdc++-devel
-BuildRequires: lsb
-
-%if %{?_with_zlib:1}%{!?_with_zlib:0}
-BuildRequires: zlib-devel
-%endif
-
-%if %{?_with_bzip2:1}%{!?_with_bzip2:0}
-BuildRequires: bzip2
-%endif
-
-%if 0%{?mandriva_version}
-BuildRequires: sendmail
-%endif
-
-BuildRequires: perl
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_fltk:1}%{!?_with_fltk:0}
-BuildRequires: fltk-devel
-%define fltk_pac ace-flreactor
-%endif
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-BuildRequires: tcl-devel
-BuildRequires: tk-devel
-BuildRequires: tk
-%define tk_pac ace-tkreactor
-%define tao_tk_pac tao-tkresource
-%endif
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%define qt_pack ace-qtreactor
-%define tao_qt_pac tao-qtresource
-
-# qt3 has a name change in F9
-%if 0%{?fedora_version} > 8
-%define qtpacname qt3
-%else
-%define qtpacname qt
-%endif
-
-%if 0%{?suse_version}
-%define qtpacname qt3
-%endif
-
-BuildRequires: %{qtpacname}-devel
-%endif
-
-%if %{?_with_fox:1}%{!?_with_fox:0}
-%if 0%{?suse_version} == 1020
-BuildRequires: fox16-devel
-%endif
-%define fox_pac ace_foxreactor
-%endif
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-# 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
-%define xt_pac ace-xtreactor
-%define tao_xt_pac tao-xtresource
-%endif
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%define tao_fl_pac tao-flresource
-%endif
-
-
-%if 0%{?suse_version}
-
-%define ace_packages ace ace-xml ace-gperf ace-kokyu
-%define tao_packages tao tao-utils tao tao-cosnaming tao-cosevent tao-cosnotification tao-costrading tao-rtevent tao-cosconcurrency
-%define all_ace_packages %{?ace_packages} %{?fltk_pac} %{?tk_pac} %{?qt_pac} %{?fox_pac} %{?xt_pac}
-%define all_tao_packages %{?tao_packages} %{?tao_fl_pac} %{?tao_qt_pac} %{?tao_xt_pac} %{?tao_tk_pac}
-
-%define debug_package_requires %{all_ace_packages} %{all_tao_packages}
-%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/C and C++
-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/C and C++
-Requires: ace = %{ACEVER}
-Requires: openssl-devel
-%if !0%{?suse_version}
-Provides: perl(PerlACE::Run_Test) perl(Process) perl(VmsProcess) perl(Win32::Process)
-%endif
-
-%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/C and C++
-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-gperf ----------------
-
-%package -n ace-gperf
-Summary: ACE gperf
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-Requires: ace = %{ACEVER}
-
-%description -n ace-gperf
-
-ACE gperf utility
-
-# ---------------- ace-xml-devel ----------------
-
-%package -n ace-xml-devel
-Summary: Header files and development components for ACE XML
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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/C and C++
-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/C and C++
-Requires: ace-devel = %{ACEVER}
-Requires: ace-kokyu = %{ACEVER}
-
-%description -n ace-kokyu-devel
-
-This package contains the components needed for developing programs
-using Kokyu.
-
-
-# ---------------- ace-foxreactor ----------------
-
-%if %{?_with_fox:1}%{!?_with_fox:0}
-%if 0%{?have_fox} == 1
-%package -n ace-foxreactor
-Summary: ACE_FoxReactor for use with the FOX toolkit
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-Requires: ace = %{ACEVER}
-Requires: fox16
-
-%description -n ace-foxreactor
-
-A Reactor implementation that uses the FOX toolkit for
-event demultiplexing. This will let us integrate the FOX toolkit with
-ACE and/or TAO.
-%endif
-%endif
-
-# ---------------- ace-foxreactor-devel ----------------
-
-%if %{?_with_fox:1}%{!?_with_fox:0}
-%if 0%{?have_fox} == 1
-%package -n ace-foxreactor-devel
-Summary: Header files for development with ACE_FoxReactor
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-Requires: ace-devel = %{ACEVER}
-Requires: ace-foxreactor = %{ACEVER}
-Requires: fox16-devel
-
-%description -n ace-foxreactor-devel
-
-This package contains the components needed for developing programs
-using the ACE_FoxReactor.
-%endif
-%endif
-
-# ---------------- ace-flreactor ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%package -n ace-flreactor
-Summary: ACE_FlReactor for use with the Fast-Light toolkit
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- ace-flreactor-devel ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%package -n ace-flreactor-devel
-Summary: Header files for development with ACE_FlReactor
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- ace-qtreactor ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%package -n ace-qtreactor
-Summary: ACE_QtReactor for use with Qt library
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- ace-qtreactor-devel ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%package -n ace-qtreactor-devel
-Summary: Header files for development with ACE_QtReactor
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- ace-tkreactor ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%package -n ace-tkreactor
-Summary: ACE_TkReactor for use with Tk toolkit
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- ace-tkreactor-devel ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%package -n ace-tkreactor-devel
-Summary: Header files for development with ACE_TkReactor
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- ace-xtreactor ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%package -n ace-xtreactor
-Summary: ACE_XtReactor for use with the X Toolkit
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- ace-xtreactor-devel ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%package -n ace-xtreactor-devel
-Summary: Header files for development with ACE_XtReactor
-Version: %{ACEVER}
-Group: Development/Libraries/C and C++
-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
-
-# ---------------- MPC ----------------
-
-%package -n mpc
-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)
-%endif
-
-%description -n 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/C and C++
-Requires: ace = %{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/C and C++
-Requires: tao = %{TAOVER}
-Requires: ace-devel = %{ACEVER}
-Requires: ace-gperf = %{ACEVER}
-
-%description -n tao-devel
-
-This package contains the components needed for developing programs
-using TAO.
-
-# ---------------- tao-utils ----------------
-
-%package -n tao-utils
-Summary: TAO naming service and IOR utilities
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-Requires: tao = %{TAOVER}
-
-%description -n tao-utils
-
-This package includes programs to query or control a CORBA naming service,
-and to dump an IOR.
-
-The following programs are included:
-* tao-nslist, to list naming context and object bindings
-* tao-nsadd, to create bindings
-* tao-nsdel, to remove bindings
-* tao-catior, to dump the content of an Interoperable Object Reference
-
-# ---------------- tao-cosnaming ----------------
-
-%package -n tao-cosnaming
-Summary: The TAO CORBA Naming Service (CosNaming) and Interoperable Naming Service (INS)
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-Requires: tao = %{TAOVER}
-Requires: logrotate
-
-%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/C and C++
-Requires: tao = %{TAOVER}
-Requires: logrotate
-
-%description -n tao-cosevent
-
-The CosEvent_Service is a COS compliant 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/C and C++
-Requires: tao = %{TAOVER}
-Requires: logrotate
-
-%description -n tao-cosnotification
-
-The Notify_Service is a COS compliant 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/C and C++
-Requires: tao = %{TAOVER}
-Requires: logrotate
-
-%description -n tao-costrading
-
-The Trading_Service is a COS compliant Trading Service.
-
-# ---------------- tao-rtevent ----------------
-
-%package -n tao-rtevent
-Summary: The TAO Real-time Event Service
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-Requires: tao = %{TAOVER}
-Requires: logrotate
-
-%description -n tao-rtevent
-
-The TAO Real-Time Event Service. This is a TAO specific service
-implementation
-
-# ---------------- tao-cosconcurrency ----------------
-
-%package -n tao-cosconcurrency
-Summary: The TAO CORBA Concurrency Service
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-Requires: tao = %{TAOVER}
-Requires: logrotate
-
-%description -n tao-cosconcurrency
-
-The CORBA Concurrency Service. One of the standard CORBA services.
-
-# ---------------- tao-flresource ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%package -n tao-flresource
-Summary: FlResource_Factory for creating FlReactor
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- tao-flresource-devel ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%package -n tao-flresource-devel
-Summary: Header files for development with FlResource_Factory
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- tao-qtresource ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%package -n tao-qtresource
-Summary: QtResource_Factory for creating QtReactor
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- tao-qtresource-devel ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%package -n tao-qtresource-devel
-Summary: Header files for development with QtResource_Factory
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- tao-tkresource ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%package -n tao-tkresource
-Summary: TkResource_Factory for creating TkReactor
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- tao-tkresource-devel ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%package -n tao-tkresource-devel
-Summary: Header files for development with TkResource_Factory
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- tao-xtresource ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%package -n tao-xtresource
-Summary: XtResource_Factory for creating XtReactor
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-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.
-%endif
-
-# ---------------- tao-xtresource-devel ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%package -n tao-xtresource-devel
-Summary: Header files for development with XtResource_Factory
-Version: %{TAOVER}
-Group: Development/Libraries/C and C++
-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
-
-%if %{?_with_autoconf:0}%{!?_with_autoconf:1}
-
-cat > $ACE_ROOT/ace/config.h << EOF
-EOF
-
-# If ipv6 support is indicated insert some lines into the config.h file
-#
-%if %{?_with_ipv6:1}%{!?_with_ipv6:0}
-cat >> $ACE_ROOT/ace/config.h << EOF
-#define ACE_HAS_IPV6
-#define ACE_USES_IPV4_IPV6_MIGRATION
-EOF
-%endif
-
-# If rnq support is indicated insert some lines into the config.h file
-%if %{?_with_rnq:1}%{!?_with_rnq:0}
-cat >> $ACE_ROOT/ace/config.h << EOF
-#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE
-EOF
-%endif
-
-# Include platform include
-cat >> $ACE_ROOT/ace/config.h << EOF
-#include "ace/config-linux.h"
-EOF
-
-# platform_macros.GNU
-%if 0%{?suse_version}
-cat > $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-CCFLAGS += %optflags
-CFLAGS += %optflags
-EOF
-%endif
-
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-ssl = 1
-EOF
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-xt = 1
-ace_xtreactor = 1
-x11 = 1
-tao_xtresource = 1
-EOF
-%endif
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-ace_tkreactor = 1
-tao_tkresource = 1
-tk = 1
-EOF
-%endif
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-fl = 1
-tao_flresource = 1
-ace_flreactor = 1
-EOF
-%endif
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-qt = 1
-gl = 1
-ace_qtreactor = 1
-tao_qtresource = 1
-EOF
-%endif
-
-%if %{?_with_fox:1}%{!?_with_fox:0}
-%if 0%{?have_fox} == 1
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-fox = 1
-ace_foxreactor = 1
-tao_foxresource = 1
-%endif
-%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
-optimize = 0
-EOF
-%else
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-optimize = 1
-EOF
-%endif
-
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-include \$(ACE_ROOT)/include/makeinclude/platform_linux.GNU
-EOF
-
-cat > $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
-ssl=1
-cidl=0
-EOF
-
-%if %{?_with_bzip2:1}%{!?_with_bzip2:0}
-cat >> $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
-bzip2 = 1
-EOF
-%endif
-
-%if %{?_with_zlib:1}%{!?_with_zlib:0}
-cat >> $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
-zlib = 1
-EOF
-%endif
-
-
-# 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_fox:1}%{!?_with_fox:0}
-%if 0%{?have_fox} == 1
-cat >> $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
-fox=1
-EOF
-%endif
-%endif
-
-# Need to regenerate all of the GNUMakefiles ...
-(cd $ACE_ROOT && $ACE_ROOT/bin/mwc.pl -type gnuace TAO/TAO_ACE.mwc)
-
-%endif
-%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
-%if %{?_with_autoconf:1}%{!?_with_autoconf:0}
-autoreconf -fi
-mkdir ../build
-cd ../build
-%if %{?_with_opt:0}%{!?_with_opt:1}
-%define my_optflags %{optflags} -O0
-%else
-%define my_optflags %{optflags}
-%endif
-
-export CXXFLAGS="%{my_optflags}"
-
-../ACE_wrappers/configure --prefix=/usr \
-%if %{?_with_ipv6:1}%{!?_with_ipv6:0}
- --enable-ipv4-ipv6 \
- --enable-ipv6 \
-%endif
-%if %{?_with_rnq:1}%{!?_with_rnq:0}
- --enable-ace-reactor-notification-queue \
-%endif
-%if %{?_with_qt:1}%{!?_with_qt:0}
- --enable-qt-reactor \
-%endif
-%if %{?_with_tk:1}%{!?_with_tk:0}
- --enable-tk-reactor \
-%endif
-%if %{?_with_xt:1}%{!?_with_xt:0}
- --enable-xt-reactor \
-%endif
-%if %{?_with_fl:1}%{!?_with_fl:0}
- --enable-fl-reactor \
-%endif
- --mandir=%{_mandir} \
- --libdir=%{_libdir}
-
-make %{?jobs:-j%jobs}
-%else
-
-MAKECMD="make %{?_smp_mflags}"
-
-# build ACE components
-for ace_comp in \
- ace \
- Kokyu \
- ACEXML \
- apps/gperf \
- protocols;
-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
-%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 %{buildroot}
-
-# make a new build root dir
-mkdir %{buildroot}
-
-# ---------------- Runtime Components ----------------
-
-# install shared libraries
-install -d %{buildroot}%{_libdir}
-
-# ACE + XML libraries
-INSTLIBS=`ls ${ACE_ROOT}/lib/libACE*.so.%{ACEVERSO}`
-install $INSTLIBS %{buildroot}%{_libdir}
-
-# ACE-Kokyu libraries
-INSTLIBS=`ls ${ACE_ROOT}/lib/libKokyu.so.%{ACEVERSO}`
-install $INSTLIBS %{buildroot}%{_libdir}
-
-# TAO libraries
-INSTLIBS=`ls ${ACE_ROOT}/lib/libTAO*.so.%{TAOVERSO}`
-install $INSTLIBS %{buildroot}%{_libdir}
-
-# Create un-versioned symbolic links for libraries
-(cd %{buildroot}%{_libdir} && \
- ls *.so.* | awk 'BEGIN{FS="."}{print "ln -sf " $0 " " $1 "." $2;}' | sh)
-
-# install binaries
-install -d %{buildroot}%{_sbindir}
-
-# Rename the service binaries:
-
-install ${ACE_ROOT}/TAO/orbsvcs/Naming_Service/Naming_Service \
- %{buildroot}%{_sbindir}/tao-cosnaming
-
-install ${ACE_ROOT}/TAO/orbsvcs/CosEvent_Service/CosEvent_Service \
- %{buildroot}%{_sbindir}/tao-cosevent
-
-install ${ACE_ROOT}/TAO/orbsvcs/Notify_Service/Notify_Service \
- %{buildroot}%{_sbindir}/tao-cosnotification
-
-install ${ACE_ROOT}/TAO/orbsvcs/Trading_Service/Trading_Service \
- %{buildroot}%{_sbindir}/tao-costrading
-
-install ${ACE_ROOT}/TAO/orbsvcs/Event_Service/Event_Service \
- %{buildroot}%{_sbindir}/tao-rtevent
-
-install ${ACE_ROOT}/TAO/orbsvcs/Concurrency_Service/Concurrency_Service \
- %{buildroot}%{_sbindir}/tao-cosconcurrency
-
-#Create directories
-for dir in cache log; do
- mkdir -p %{buildroot}%{_localstatedir}/${dir}/tao
-done
-
-# Create data files which will be ghosted.
-touch %{buildroot}%{_localstatedir}/cache/tao/tao-cosnaming.dat
-
-# Create data files which will be ghosted.
-for logfile in cosnaming cosconcurrency cosevent cosnotification costrading rtevent; do
- touch %{buildroot}%{_localstatedir}/log/tao/tao-${logfile}.log
-done
-
-# ---------------- Development Components ----------------
-
-# INSTHDR="cp --preserve=timestamps"
-INSTHDR="install -m 0644 -p"
-
-# install headers
-install -d %{buildroot}%{_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 %{buildroot}%{_includedir}/${i/protocols\/}`
- $INSTHDR $i %{buildroot}%{_includedir}/${i/protocols/}
- echo '%dir %{_includedir}/'`dirname ${i/protocols/}` >> ace-headers.tmp
- echo '%{_includedir}/'${i/protocols/} >> ace-headers.tmp
- ;;
- ace/*)
- mkdir -p `dirname %{buildroot}%{_includedir}/$i`
- $INSTHDR $i %{buildroot}%{_includedir}/$i
- echo '%dir %{_includedir}/'`dirname $i` >> ace-headers.tmp
- echo '%{_includedir}/'$i >> ace-headers.tmp
- ;;
- ACEXML/*)
- mkdir -p `dirname %{buildroot}%{_includedir}/$i`
- $INSTHDR $i %{buildroot}%{_includedir}/$i
- echo '%dir %{_includedir}/'`dirname $i` >> acexml-headers.tmp
- echo '%{_includedir}/'$i >> acexml-headers.tmp
- ;;
- Kokyu/*)
- mkdir -p `dirname %{buildroot}%{_includedir}/$i`
- $INSTHDR $i %{buildroot}%{_includedir}/$i
- echo '%dir %{_includedir}/'`dirname $i` >> kokyu-headers.tmp
- echo '%{_includedir}/'$i >> kokyu-headers.tmp
- ;;
- TAO/tao/*)
- mkdir -p `dirname %{buildroot}%{_includedir}/${i/TAO\/}`
- $INSTHDR $i %{buildroot}%{_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 %{buildroot}%{_includedir}/${i/TAO\/orbsvcs\/}`
- $INSTHDR $i %{buildroot}%{_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 %{buildroot}%{_includedir}/$i`
- # $INSTHDR $i %{buildroot}%{_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 %{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}
-install ${ACE_ROOT}/bin/tao_imr %{buildroot}%{_bindir}
-install ${ACE_ROOT}/bin/tao_ifr %{buildroot}%{_bindir}
-install ${ACE_ROOT}/bin/tao_catior %{buildroot}%{_bindir}/tao_catior
-install ${ACE_ROOT}/bin/tao_nsadd %{buildroot}%{_bindir}/tao_nsadd
-install ${ACE_ROOT}/bin/tao_nsdel %{buildroot}%{_bindir}/tao_nsdel
-install ${ACE_ROOT}/bin/tao_nslist %{buildroot}%{_bindir}/tao_nslist
-
-# ================================================================
-# Config & Options
-# ================================================================
-
-install -d %{buildroot}%{_sysconfdir}
-tar -jxvf ${ACE_ROOT}/rpmbuild/ace-tao-etc.tar.bz2 \
- -C %{buildroot}%{_sysconfdir}
-
-%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/
-%else
-tar -jxvf ${ACE_ROOT}/rpmbuild/ace-tao-init-fedora.tar.bz2 \
- -C %{buildroot}%{_sysconfdir}
-%endif
-
-%if %{defined suse_version}
-pushd %{buildroot}%{_sysconfdir}/init.d
-for f in *; do
- ln -s /etc/init.d/$f %{buildroot}%{_sbindir}/rc${f}
-done
-popd
-%endif
-
-# ================================================================
-# Makefiles
-# ================================================================
-
-install -d %{buildroot}%{_datadir}
-install -d %{buildroot}%{_datadir}/ace
-install -d %{buildroot}%{_datadir}/ace/include
-install -d %{buildroot}%{_datadir}/ace/include/makeinclude
-install -d %{buildroot}%{_datadir}/mpc
-install -d %{buildroot}%{_datadir}/tao
-install -d %{buildroot}%{_datadir}/tao/orbsvcs
-install -d %{buildroot}%{_datadir}/tao/MPC
-
-for mk_macros in \
- all_in_one.GNU \
- component_check.GNU \
- macros.GNU \
- platform_g++_common.GNU \
- platform_linux.GNU \
- platform_linux_common.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 %{buildroot}%{_datadir}/ace/include/makeinclude)
-done
-
-install ${TAO_ROOT}/rules.tao.GNU %{buildroot}%{_datadir}/tao
-
-cp -a ${ACE_ROOT}/MPC/* %{buildroot}%{_datadir}/mpc
-
-install -d %{buildroot}%{_datadir}/ace/bin
-cp -a ${ACE_ROOT}/bin/DependencyGenerator %{buildroot}%{_datadir}/ace/bin
-cp -a ${ACE_ROOT}/bin/MakeProjectCreator %{buildroot}%{_datadir}/ace/bin
-install -d %{buildroot}%{_datadir}/ace/bin/PerlACE
-cp -a ${ACE_ROOT}/bin/PerlACE/* %{buildroot}%{_datadir}/ace/bin/PerlACE
-install ${ACE_ROOT}/bin/mpc.pl %{buildroot}%{_datadir}/ace/bin
-install ${ACE_ROOT}/bin/mwc.pl %{buildroot}%{_datadir}/ace/bin
-install ${ACE_ROOT}/bin/g++dep %{buildroot}%{_datadir}/ace/bin
-install ${ACE_ROOT}/bin/depgen.pl %{buildroot}%{_datadir}/ace/bin
-install ${ACE_ROOT}/bin/generate_export_file.pl %{buildroot}%{_datadir}/ace/bin
-install ${ACE_ROOT}/bin/add_rel_link.sh %{buildroot}%{_datadir}/ace/bin
-install ${ACE_ROOT}/bin/{ACEutils,Uniqueid}.pm %{buildroot}%{_datadir}/ace/bin
-
-ln -sfn %{_includedir}/ace %{buildroot}%{_datadir}/ace
-ln -sfn %{_includedir}/tao %{buildroot}%{_datadir}/tao
-ln -sfn %{_includedir}/orbsvcs %{buildroot}%{_datadir}/tao/orbsvcs
-ln -sfn %{_libdir} %{buildroot}%{_datadir}/ace/lib
-
-cp -a ${TAO_ROOT}/MPC/* %{buildroot}%{_datadir}/tao/MPC
-
-# Set TAO_IDL setting for the user
-cat > %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU.tmp <<EOF
-TAO_IDL = %{_bindir}/tao_idl
-TAO_IDL_DEP = %{_bindir}/tao_idl
-EOF
-cat %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU >> %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU.tmp
-mv %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU.tmp %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU
-
-
-install -d %{buildroot}%{_sysconfdir}/profile.d
-cat > %{buildroot}%{_sysconfdir}/profile.d/mpc.sh <<EOF
-MPC_ROOT=/usr/share/mpc
-export MPC_ROOT
-EOF
-cat > %{buildroot}%{_sysconfdir}/profile.d/ace-devel.sh <<EOF
-ACE_ROOT=/usr/share/ace
-export ACE_ROOT
-EOF
-cat > %{buildroot}%{_sysconfdir}/profile.d/tao-devel.sh <<EOF
-TAO_ROOT=/usr/share/tao
-export TAO_ROOT
-EOF
-
-# convenience symlinks
-ln -sfn %{_datadir}/ace/bin/mpc.pl %{buildroot}%{_bindir}/mpc.pl
-ln -sfn %{_datadir}/ace/bin/mwc.pl %{buildroot}%{_bindir}/mwc.pl
-
-# ================================================================
-# Manuals
-# ================================================================
-install -d %{buildroot}%{_mandir}
-install -d %{buildroot}%{_mandir}/man1
-install ${TAO_ROOT}/TAO_IDL/tao_idl.1 %{buildroot}%{_mandir}/man1
-install ${ACE_ROOT}/apps/gperf/ace_gperf.1 %{buildroot}%{_mandir}/man1
-install -d %{buildroot}%{_infodir}
-install ${ACE_ROOT}/apps/gperf/ace_gperf.info %{buildroot}%{_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 %{buildroot}/%{_libdir} && ls *.so | \
- awk '{ print "%{_libdir}/"$1; }' | \
- sort) > all-so.list
-
-# Make a list of likely svc.conf targets.
-(cd %{buildroot}/%{_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
-cat ace-headers.list ace-nonsvc-so.list > ace-devel-files.list
-
-# ================================================================
-# clean
-# ================================================================
-
-%clean
-rm -rf %{buildroot}
-
-# ================================================================
-# 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/ldconfig
-
-# ---------------- ace-xml ----------------
-
-%post -n ace-xml
-/sbin/ldconfig
-
-# ---------------- ace-gperf ----------------
-
-%post -n ace-gperf
-
-%if %{defined suse_version}
-%install_info --info-dir=%_infodir %_infodir/ace_gperf.info%{_extension}
-%else
-/sbin/install-info %{_infodir}/ace_gperf.info%{_extension} %{_infodir}/dir
-%endif
-
-# ---------------- ace-kokyu ----------------
-
-%post -n ace-kokyu
-/sbin/ldconfig
-
-# ---------------- ace-foxreactor ----------------
-
-%if %{?_with_fox:1}%{!?_with_fox:0}
-%if %{undefined suse_version} || 0%{?suse_version} = 1020
-%post -n ace-foxreactor
-/sbin/ldconfig
-%endif
-%endif
-
-# ---------------- ace-flreactor ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%post -n ace-flreactor
-/sbin/ldconfig
-%endif
-
-# ---------------- ace-qtreactor ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%post -n ace-qtreactor
-/sbin/ldconfig
-%endif
-
-# ---------------- ace-tkreactor ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%post -n ace-tkreactor
-/sbin/ldconfig
-%endif
-
-# ---------------- ace-xtreactor ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%post -n ace-xtreactor
-/sbin/ldconfig
-%endif
-
-# ---------------- tao ----------------
-
-%post -n tao
-/sbin/ldconfig
-
-# ---------------- tao-devel ----------------
-
-%post -n tao-devel
-/sbin/ldconfig
-
-# ---------------- tao-utils ----------------
-
-%post -n tao-utils
-/sbin/ldconfig
-
-# ---------------- tao-cosnaming ----------------
-
-%post -n tao-cosnaming
-%if %{defined suse_version}
-%{fillup_and_insserv tao-cosnaming}
-%else
-/sbin/chkconfig --add tao-cosnaming
-%endif
-
-# ---------------- tao-cosevent ----------------
-
-%post -n tao-cosevent
-
-%if %{defined suse_version}
-%{fillup_and_insserv tao-cosevent}
-%else
-/sbin/chkconfig --add tao-cosevent
-%endif
-
-# ---------------- tao-cosnotification ----------------
-
-%post -n tao-cosnotification
-
-%if %{defined suse_version}
-%{fillup_and_insserv tao-cosnotification}
-%else
-/sbin/chkconfig --add tao-cosnotification
-%endif
-
-# ---------------- tao-costrading ----------------
-
-%post -n tao-costrading
-
-%if %{defined suse_version}
-%{fillup_and_insserv tao-costrading}
-%else
-/sbin/chkconfig --add tao-costrading
-%endif
-
-# ---------------- tao-rtevent ----------------
-
-%post -n tao-rtevent
-
-%if %{defined suse_version}
-%{fillup_and_insserv tao-rtevent}
-%else
-/sbin/chkconfig --add tao-rtevent
-%endif
-
-# ---------------- tao-cosconcurrency ----------------
-
-%post -n tao-cosconcurrency
-
-%if %{defined suse_version}
-%{fillup_and_insserv tao-cosconcurrency}
-%else
-/sbin/chkconfig --add tao-cosconcurrency
-%endif
-
-# ---------------- tao-flresource ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%post -n tao-flresource
-/sbin/ldconfig
-%endif
-
-# ---------------- tao-qtresource ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%post -n tao-qtresource
-/sbin/ldconfig
-%endif
-
-# ---------------- tao-tkresource ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%post -n tao-tkresource
-/sbin/ldconfig
-%endif
-
-# ---------------- tao-xtresource ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%post -n tao-xtresource
-/sbin/ldconfig
-%endif
-
-# ================================================================
-# pre uninstall
-# ================================================================
-
-# ---------------- ace-gperf ----------------
-
-%preun -n ace-gperf
-
-if [ $1 = 0 ]; then
- /sbin/install-info --delete %{_infodir}/ace_gperf.info%{_extension} %{_infodir}/dir
-fi
-
-# ---------------- tao-cosnaming ----------------
-
-%preun -n tao-cosnaming
-%if %{defined suse_version}
-%stop_on_removal tao-cosnaming
-%else
-if [ $1 = 0 ]; then
- /sbin/service tao-cosnaming stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-cosnaming
-fi
-%endif
-
-# ---------------- tao-cosevent ----------------
-
-%preun -n tao-cosevent
-
-%if %{defined suse_version}
-%stop_on_removal tao-cosevent
-%else
-if [ $1 = 0 ]; then
- /sbin/service tao-cosevent stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-cosevent
-fi
-%endif
-
-# ---------------- tao-cosnotification ----------------
-
-%preun -n tao-cosnotification
-
-%if %{defined suse_version}
-%stop_on_removal tao-cosnotification
-%else
-if [ $1 = 0 ]; then
- /sbin/service tao-cosnotification stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-cosnotification
-fi
-%endif
-
-# ---------------- tao-costrading ----------------
-
-%preun -n tao-costrading
-
-%if %{defined suse_version}
-%stop_on_removal tao-costrading
-%else
-if [ $1 = 0 ]; then
- /sbin/service tao-costrading stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-costrading
-fi
-%endif
-
-# ---------------- tao-rtevent ----------------
-
-%preun -n tao-rtevent
-
-%if %{defined suse_version}
-%stop_on_removal tao-rtevent
-%else
-if [ $1 = 0 ]; then
- /sbin/service tao-rtevent stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-rtevent
-fi
-%endif
-
-# ---------------- tao-cosconcurrency ----------------
-
-%preun -n tao-cosconcurrency
-
-%if %{defined suse_version}
-%stop_on_removal tao-cosconcurrency
-%else
-if [ $1 = 0 ]; then
- /sbin/service tao-cosconcurrency stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-cosconcurrency
-fi
-%endif
-
-# ================================================================
-# post uninstall
-# ================================================================
-
-# ---------------- ace ----------------
-
-%postun -n ace
-/sbin/ldconfig
-
-# ---------------- ace-xml ----------------
-
-%postun -n ace-xml
-/sbin/ldconfig
-
-# ---------------- ace-kokyu ----------------
-
-%postun -n ace-kokyu
-/sbin/ldconfig
-
-# ---------------- ace-foxreactor ----------------
-
-%if %{?_with_fox:1}%{!?_with_fox:0}
-%if 0%{?have_fox} == 1
-%postun -n ace-foxreactor
-/sbin/ldconfig
-%endif
-%endif
-
-# ---------------- ace-flreactor ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%postun -n ace-flreactor
-/sbin/ldconfig
-%endif
-
-# ---------------- ace-qtreactor ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%postun -n ace-qtreactor
-/sbin/ldconfig
-%endif
-
-# ---------------- ace-tkreactor ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%postun -n ace-tkreactor
-/sbin/ldconfig
-%endif
-
-# ---------------- ace-xtreactor ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%postun -n ace-xtreactor
-/sbin/ldconfig
-%endif
-
-# ---------------- tao ----------------
-
-%postun -n tao
-/sbin/ldconfig
-
-# ---------------- tao-devel ----------------
-
-%postun -n tao-devel
-/sbin/ldconfig
-
-# ---------------- tao-utils ----------------
-
-%postun -n tao-utils
-/sbin/ldconfig
-
-# ---------------- tao-cosnaming ----------------
-
-%postun -n tao-cosnaming
-
-%if %{defined suse_version}
-%restart_on_update tao-cosnaming
-%insserv_cleanup
-%else
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-cosnaming %{cond_restart} > /dev/null 2>&1
-fi
-%endif
-
-# ---------------- tao-cosevent ----------------
-
-%postun -n tao-cosevent
-
-%if %{defined suse_version}
-%restart_on_update tao-cosevent
-%insserv_cleanup
-%else
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-cosevent %{cond_restart} > /dev/null 2>&1
-fi
-%endif
-
-# ---------------- tao-cosnotification ----------------
-
-%postun -n tao-cosnotification
-
-%if %{defined suse_version}
-%restart_on_update tao-cosnotification
-%insserv_cleanup
-%else
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-cosnotification %{cond_restart} > /dev/null 2>&1
-fi
-%endif
-
-# ---------------- tao-costrading ----------------
-
-%postun -n tao-costrading
-
-%if %{defined suse_version}
-%restart_on_update tao-costrading
-%insserv_cleanup
-%else
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-costrading %{cond_restart} > /dev/null 2>&1
-fi
-%endif
-
-# ---------------- tao-rtevent ----------------
-
-%postun -n tao-rtevent
-
-%if %{defined suse_version}
-%restart_on_update tao-rtevent
-%insserv_cleanup
-%else
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-rtevent %{cond_restart} > /dev/null 2>&1
-fi
-%endif
-
-# ---------------- tao-cosconcurrency ----------------
-
-%postun -n tao-cosconcurrency
-
-%if %{defined suse_version}
-%restart_on_update tao-cosconcurrency
-%insserv_cleanup
-%else
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-cosconcurrency %{cond_restart} > /dev/null 2>&1
-fi
-%endif
-
-# ---------------- tao-flresource ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%postun -n tao-flresource
-/sbin/ldconfig
-%endif
-
-# ---------------- tao-qtresource ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%postun -n tao-qtresource
-/sbin/ldconfig
-%endif
-
-# ---------------- tao-tkresource ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%postun -n tao-tkresource
-/sbin/ldconfig
-%endif
-
-# ---------------- tao-xtresource ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%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_TMCast.so.%{ACEVERSO}
-%{_libdir}/libACE_SSL.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-devel-files.list
-%defattr(-,root,root,-)
-%{_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_TMCast.so
-%{_libdir}/libACE_SSL.so
-%dir %{_datadir}/ace
-%{_datadir}/ace/include
-%{_datadir}/ace/include/makeinclude
-%{_datadir}/ace/bin
-%{_datadir}/ace/ace
-%{_datadir}/ace/lib
-%config %{_sysconfdir}/profile.d/ace-devel.sh
-
-%if %{?_with_fox:1}%{!?_with_fox:0}
-%exclude %{_includedir}/ace/FoxReactor/FoxReactor.h
-%exclude %{_includedir}/ace/FoxReactor/ACE_FoxReactor_export.h
-%endif
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%exclude %{_includedir}/ace/FlReactor/FlReactor.h
-%exclude %{_includedir}/ace/FlReactor/ACE_FlReactor_export.h
-%endif
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%exclude %{_includedir}/ace/QtReactor/QtReactor.h
-%exclude %{_includedir}/ace/QtReactor/ACE_QtReactor_export.h
-%endif
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%exclude %{_includedir}/ace/TkReactor/TkReactor.h
-%exclude %{_includedir}/ace/TkReactor/ACE_TkReactor_export.h
-%endif
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%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-gperf ----------------
-
-%files -n ace-gperf
-%defattr(-,root,root,-)
-%{_bindir}/ace_gperf
-%attr(0644,root,root) %{_mandir}/man1/ace_gperf.1%{_extension}
-%attr(0644,root,root) %{_infodir}/ace_gperf.info%{_extension}
-
-%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-foxreactor ----------------
-
-%if 0%{?have_fox} == 1
-%if %{?_with_fox:1}%{!?_with_fox:0}
-%files -n ace-foxreactor
-%defattr(-,root,root,-)
-%{_libdir}/libACE_FoxReactor.so.%{ACEVERSO}
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-%endif
-# ---------------- ace-flreactor ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl: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 ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl: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 ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt: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 ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt: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 ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk: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 ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk: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 ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt: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 ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt: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
-
-# ---------------- mpc ----------------
-
-%files -n mpc
-%defattr(-,root,root,-)
-%{_datadir}/mpc
-%config %{_sysconfdir}/profile.d/mpc.sh
-%{_bindir}/mpc.pl
-%{_bindir}/mwc.pl
-
-# ---------------- 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,-)
-%{_datadir}/tao
-
-%{_libdir}/libTAO*.so.%{TAOVERSO}
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%exclude %{_libdir}/libTAO_FlResource.so*
-%endif
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%exclude %{_libdir}/libTAO_QtResource.so*
-%endif
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%exclude %{_libdir}/libTAO_TkResource.so*
-%endif
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%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,-)
-%config %{_sysconfdir}/profile.d/tao-devel.sh
-
-%{_bindir}/tao_imr
-%{_bindir}/tao_ifr
-%{_datadir}/tao/MPC
-%{_bindir}/tao_idl
-%attr(0644,root,root) %doc %{_mandir}/man1/tao_idl.1%{_extension}
-%{_datadir}/tao/tao
-%{_datadir}/tao/orbsvcs
-
-# These get missed by the automatic list generator because they
-# contain no immediate files.
-%dir %{_includedir}/orbsvcs/FtRtEvent
-
-%if %{?_with_fl:1}%{!?_with_fl:0}
-%exclude %{_includedir}/tao/FlResource/FlResource_Factory.h
-%exclude %{_includedir}/tao/FlResource/FlResource_Loader.h
-%exclude %{_includedir}/tao/FlResource/TAO_FlResource_Export.h
-%exclude %{_libdir}/libTAO_FlResource.so
-%endif
-%if %{?_with_qt:1}%{!?_with_qt:0}
-%exclude %{_includedir}/tao/QtResource/QtResource_Factory.h
-%exclude %{_includedir}/tao/QtResource/QtResource_Loader.h
-%exclude %{_includedir}/tao/QtResource/TAO_QtResource_Export.h
-%exclude %{_libdir}/libTAO_QtResource.so
-%endif
-%if %{?_with_tk:1}%{!?_with_tk:0}
-%exclude %{_includedir}/tao/TkResource/TkResource_Factory.h
-%exclude %{_includedir}/tao/TkResource/TkResource_Loader.h
-%exclude %{_includedir}/tao/TkResource/TAO_TkResource_Export.h
-%exclude %{_libdir}/libTAO_TkResource.so
-%endif
-%if %{?_with_xt:1}%{!?_with_xt:0}
-%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_XtResource.so
-%endif
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-utils ----------------
-
-%files -n tao-utils
-%defattr(-,root,root,-)
-
-%{_bindir}/tao_catior
-%{_bindir}/tao_nsadd
-%{_bindir}/tao_nsdel
-%{_bindir}/tao_nslist
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-cosnaming ----------------
-
-%files -n tao-cosnaming
-%defattr(-,root,root,-)
-
-%dir %{_sysconfdir}/tao
-
-%{_sbindir}/tao-cosnaming
-
-%if %{defined suse_version}
-%{_sysconfdir}/init.d/tao-cosnaming
-%{_sbindir}/rctao-cosnaming
-%{_localstatedir}/adm/fillup-templates/tao-cosnaming
-%else
-%{_sysconfdir}/rc.d/init.d/tao-cosnaming
-%config(noreplace) %{_sysconfdir}/tao/tao-cosnaming.opt
-%endif
-
-%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,-)
-
-%dir %{_sysconfdir}/tao
-%{_sbindir}/tao-cosevent
-
-%if %{defined suse_version}
-%{_sysconfdir}/init.d/tao-cosevent
-%{_sbindir}/rctao-cosevent
-%{_localstatedir}/adm/fillup-templates/tao-cosevent
-%else
-%{_sysconfdir}/rc.d/init.d/tao-cosevent
-%config(noreplace) %{_sysconfdir}/tao/tao-cosevent.opt
-%endif
-
-%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
-%dir %{_sysconfdir}/tao
-
-%if %{defined suse_version}
-%{_sysconfdir}/init.d/tao-cosnotification
-%{_sbindir}/rctao-cosnotification
-%{_localstatedir}/adm/fillup-templates/tao-cosnotification
-%else
-%{_sysconfdir}/rc.d/init.d/tao-cosnotification
-%config(noreplace) %{_sysconfdir}/tao/tao-cosnotification.opt
-%endif
-
-%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,-)
-
-%dir %{_sysconfdir}/tao
-
-%{_sbindir}/tao-costrading
-
-%if %{defined suse_version}
-%{_sysconfdir}/init.d/tao-costrading
-%{_sbindir}/rctao-costrading
-%{_localstatedir}/adm/fillup-templates/tao-costrading
-%else
-%{_sysconfdir}/rc.d/init.d/tao-costrading
-%config(noreplace) %{_sysconfdir}/tao/tao-costrading.opt
-%endif
-
-%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,-)
-
-%dir %{_sysconfdir}/tao
-%{_sbindir}/tao-rtevent
-
-%if %{defined suse_version}
-%{_sysconfdir}/init.d/tao-rtevent
-%{_sbindir}/rctao-rtevent
-%{_localstatedir}/adm/fillup-templates/tao-rtevent
-%else
-%{_sysconfdir}/rc.d/init.d/tao-rtevent
-%config(noreplace) %{_sysconfdir}/tao/tao-rtevent.opt
-%endif
-
-%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,-)
-
-%dir %{_sysconfdir}/tao
-%{_sbindir}/tao-cosconcurrency
-
-%if %{defined suse_version}
-%{_sysconfdir}/init.d/tao-cosconcurrency
-%{_sbindir}/rctao-cosconcurrency
-%{_localstatedir}/adm/fillup-templates/tao-cosconcurrency
-%else
-%{_sysconfdir}/rc.d/init.d/tao-cosconcurrency
-%config(noreplace) %{_sysconfdir}/tao/tao-cosconcurrency.opt
-%endif
-
-%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 ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl: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 ----------------
-
-%if %{?_with_fl:1}%{!?_with_fl: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 ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt: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 ----------------
-
-%if %{?_with_qt:1}%{!?_with_qt: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 ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk: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 ----------------
-
-%if %{?_with_tk:1}%{!?_with_tk: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 ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt: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 ----------------
-
-%if %{?_with_xt:1}%{!?_with_xt: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
-* Fri Mar 13 2009 Johnny Willemsen <jwillemsen@remedy.nl> - 5.6.8-2
-- Removed specific OS checks
-
-* Fri Aug 22 2008 Johnny Willemsen <jwillemsen@remedy.nl> - 5.6.5-1
-- Initial version. Be aware that this is a subversion snapshot, almost
- 5.6.6
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 100755
index 00000000000..d1d84e8f8a4
--- /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 -ORBDaemon
+ 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 100755
index 00000000000..01d702abe3d
--- /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 -ORBDaemon
+ 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 100755
index 00000000000..2722d7a58ac
--- /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 -ORBDaemon
+ 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 100755
index 00000000000..c933fd8d66d
--- /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 -ORBDaemon
+ 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 100755
index 00000000000..d16146e19c1
--- /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 -ORBDaemon
+ 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 100755
index 00000000000..43d2e038ed7
--- /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 -ORBDaemon
+ 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 100755
index 00000000000..d55c72b0558
--- /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/tao/tao-cosconcurrency
+
+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 -ORBDaemon
+
+ # 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 100755
index 00000000000..fefdf0dad41
--- /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/tao/tao-cosevent
+
+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 -ORBDaemon
+
+ # 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 100755
index 00000000000..90009676334
--- /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/tao/tao-cosnaming
+
+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 -ORBDaemon
+
+ # 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 100755
index 00000000000..57fe9576b5f
--- /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/tao/tao-cosnotification
+
+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 -ORBDaemon $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 100755
index 00000000000..ccb2fee0909
--- /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/tao/tao-costrading
+
+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 -ORBDaemon
+
+ # 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 100755
index 00000000000..b3e7ca7a2cc
--- /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/tao/tao-rtevent
+
+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 -ORBDaemon
+
+ # 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 b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency
new file mode 100755
index 00000000000..3db9ca68639
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency
@@ -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 b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosevent
new file mode 100755
index 00000000000..4920d28382e
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosevent
@@ -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 b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnaming
new file mode 100755
index 00000000000..bf22c1974db
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnaming
@@ -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 b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnotification
new file mode 100755
index 00000000000..3501d02a003
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnotification
@@ -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 b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-costrading
new file mode 100755
index 00000000000..edb136a7564
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-costrading
@@ -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 b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-rtevent
new file mode 100755
index 00000000000..1939fb54500
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-rtevent
@@ -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 b/ACE/rpmbuild/ace-tao-rpmlintrc
new file mode 100644
index 00000000000..0c4de34e6c5
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-rpmlintrc
@@ -0,0 +1,4 @@
+# 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-rpmlintrc.txt b/ACE/rpmbuild/ace-tao-rpmlintrc.txt
deleted file mode 100644
index b9a2cd279c2..00000000000
--- a/ACE/rpmbuild/ace-tao-rpmlintrc.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# 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.spec b/ACE/rpmbuild/ace-tao.spec
new file mode 100644
index 00000000000..cc1cf370757
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao.spec
@@ -0,0 +1,2582 @@
+# Set the version number here.
+%define ACEVER 6.0.3
+%define TAOVER 2.0.3
+%define CIAOVER 1.0.3
+
+# Conditional build
+# Default values are
+# --with rnq (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
+# --with ipv6 (IPv6 support)
+# --with opt (Optimized build)
+# --with zlib (Zlib compressor)
+# --with bzip2 (Bzip2 compressor)
+# --without autoconf (Use MPC to build)
+# --without fltk (No ftlk support)
+# --without tk (No tk support)
+# --without xt (No xt support)
+# --without fox (No fox support)
+# --without qt (No qt support)
+
+#
+# Read: If neither macro exists, then add the default definition.
+%{!?_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}}
+%{!?_with_zlib: %{!?_without_zlib: %define _with_zlib --with-zlib}}
+%{!?_with_bzip2: %{!?_without_bzip2: %define _with_bzip2 --with-bzip2}}
+%{!?_with_ftlk: %{!?_without_ftlk: %define _without_ftlk --without-ftlk}}
+%{!?_with_tk: %{!?_without_tk: %define _without_tk --without-tk}}
+%{!?_with_xt: %{!?_without_xt: %define _without_xt --without-xt}}
+%{!?_with_fox: %{!?_without_fox: %define _without_fox --without-fox}}
+%{!?_with_qt: %{!?_without_qt: %define _without_qt --without-qt}}
+#
+# Read: It's an error if both or neither required options exist.
+%{?_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}}}
+%{?_with_zlib: %{?_without_zlib: %{error: both _with_zlib and _without_zlib}}}
+%{?_with_bzip2: %{?_without_bzip2: %{error: both _with_bzip2 and _without_bzip2}}}
+%{?_with_fltk: %{?_without_fltk: %{error: both _with_fltk and _without_fltk}}}
+%{?_with_tk: %{?_without_tk: %{error: both _with_tk and _without_tk}}}
+%{?_with_xt: %{?_without_xt: %{error: both _with_xt and _without_xt}}}
+%{?_with_fox: %{?_without_fox: %{error: both _with_fox and _without_fox}}}
+%{?_with_qt: %{?_without_qt: %{error: both _with_qt and _without_qt}}}
+
+%{!?skip_make:%define skip_make 0}
+%{!?make_nosrc:%define make_nosrc 0}
+
+%define have_fox 0
+
+%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}
+
+%if 0%{?opensuse_bs}
+Release: <CI_CNT>%{?OPTTAG}%{?dist}
+%else
+Release: 1%{?OPTTAG}%{?dist}
+%endif
+
+Group: Development/Libraries/C and C++
+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.gz
+Source1: ace-tao-rpmlintrc
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+%define _extension .gz
+
+%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version}
+BuildRequires: redhat-rpm-config elfutils sendmail
+%endif
+
+%if !0%{?suse_version}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires(postun): /sbin/ldconfig
+%else
+PreReq: %install_info_prereq %insserv_prereq %fillup_prereq
+PreReq: pwdutils
+%endif
+
+%if 0%{?mdkversion}
+BuildRequires: sendmail
+%endif
+
+BuildRequires: openssl-devel
+BuildRequires: gcc-c++
+BuildRequires: libstdc++-devel
+BuildRequires: lsb
+
+%if %{?_with_zlib:1}%{!?_with_zlib:0}
+BuildRequires: zlib-devel
+%endif
+
+%if %{?_with_bzip2:1}%{!?_with_bzip2:0}
+BuildRequires: bzip2
+%endif
+
+BuildRequires: perl
+
+%if %{?_with_fltk:1}%{!?_with_fltk:0}
+BuildRequires: fltk-devel
+%define fltk_pac ace-flreactor
+%endif
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+BuildRequires: tcl-devel
+BuildRequires: tk-devel
+BuildRequires: tk
+%define tk_pac ace-tkreactor
+%define tao_tk_pac tao-tkresource
+%endif
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%define qt_pack ace-qtreactor
+%define tao_qt_pac tao-qtresource
+
+# qt3 has a name change in F9
+%if 0%{?fedora} > 8
+%define qtpacname qt3
+%else
+%define qtpacname qt
+%endif
+
+%if 0%{?suse_version}
+%define qtpacname qt3
+%endif
+
+BuildRequires: %{qtpacname}-devel
+%endif
+
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%if 0%{?suse_version} == 1020
+BuildRequires: fox16-devel
+%endif
+%define fox_pac ace_foxreactor
+%endif
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%define xt_pac ace-xtreactor
+%define tao_xt_pac tao-xtresource
+%endif
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%define tao_fl_pac tao-flresource
+%endif
+
+%if 0%{?suse_version}
+%define ace_packages ace ace-xml ace-gperf ace-kokyu
+%define tao_packages tao tao-utils tao tao-cosnaming tao-cosevent tao-cosnotification tao-costrading tao-rtevent tao-cosconcurrency
+%define all_ace_packages %{?ace_packages} %{?fltk_pac} %{?tk_pac} %{?qt_pac} %{?fox_pac} %{?xt_pac}
+%define all_tao_packages %{?tao_packages} %{?tao_fl_pac} %{?tao_qt_pac} %{?tao_xt_pac} %{?tao_tk_pac}
+%define debug_package_requires %{all_ace_packages} %{all_tao_packages}
+%endif
+
+%if %make_nosrc
+# Leave out the distro for now
+NoSource: 0
+%endif
+
+%description -n ace-tao
+
+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/C and C++
+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/C and C++
+Requires: ace = %{ACEVER}
+Requires: openssl-devel
+%if !0%{?suse_version}
+Provides: perl(PerlACE::Run_Test) perl(Process) perl(VmsProcess) perl(Win32::Process)
+%endif
+
+%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/C and C++
+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-gperf ----------------
+
+%package -n ace-gperf
+Summary: ACE gperf
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+Requires: ace = %{ACEVER}
+
+%description -n ace-gperf
+
+ACE gperf utility
+
+# ---------------- ace-xml-devel ----------------
+
+%package -n ace-xml-devel
+Summary: Header files and development components for ACE XML
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+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/C and C++
+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/C and C++
+Requires: ace-devel = %{ACEVER}
+Requires: ace-kokyu = %{ACEVER}
+
+%description -n ace-kokyu-devel
+
+This package contains the components needed for developing programs
+using Kokyu.
+
+
+# ---------------- ace-foxreactor ----------------
+
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%if 0%{?have_fox} == 1
+%package -n ace-foxreactor
+Summary: ACE_FoxReactor for use with the FOX toolkit
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+Requires: ace = %{ACEVER}
+Requires: fox16
+
+%description -n ace-foxreactor
+
+A Reactor implementation that uses the FOX toolkit for
+event demultiplexing. This will let us integrate the FOX toolkit with
+ACE and/or TAO.
+%endif
+%endif
+
+# ---------------- ace-foxreactor-devel ----------------
+
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%if 0%{?have_fox} == 1
+%package -n ace-foxreactor-devel
+Summary: Header files for development with ACE_FoxReactor
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+Requires: ace-devel = %{ACEVER}
+Requires: ace-foxreactor = %{ACEVER}
+Requires: fox16-devel
+
+%description -n ace-foxreactor-devel
+
+This package contains the components needed for developing programs
+using the ACE_FoxReactor.
+%endif
+%endif
+
+# ---------------- ace-flreactor ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%package -n ace-flreactor
+Summary: ACE_FlReactor for use with the Fast-Light toolkit
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- ace-flreactor-devel ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%package -n ace-flreactor-devel
+Summary: Header files for development with ACE_FlReactor
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- ace-qtreactor ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%package -n ace-qtreactor
+Summary: ACE_QtReactor for use with Qt library
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+Requires: ace = %{ACEVER}
+Requires: qt4
+
+%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.
+%endif
+
+# ---------------- ace-qtreactor-devel ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%package -n ace-qtreactor-devel
+Summary: Header files for development with ACE_QtReactor
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+Requires: ace-devel = %{ACEVER}
+Requires: ace-qtreactor = %{ACEVER}
+Requires: qt4-devel
+
+%description -n ace-qtreactor-devel
+
+This package contains the components needed for developing programs
+using the ACE_QtReactor.
+%endif
+
+# ---------------- ace-tkreactor ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%package -n ace-tkreactor
+Summary: ACE_TkReactor for use with Tk toolkit
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- ace-tkreactor-devel ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%package -n ace-tkreactor-devel
+Summary: Header files for development with ACE_TkReactor
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- ace-xtreactor ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%package -n ace-xtreactor
+Summary: ACE_XtReactor for use with the X Toolkit
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- ace-xtreactor-devel ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%package -n ace-xtreactor-devel
+Summary: Header files for development with ACE_XtReactor
+Version: %{ACEVER}
+Group: Development/Libraries/C and C++
+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
+
+# ---------------- MPC ----------------
+
+%package -n mpc
+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) perl(WIXProjectCreator)
+%endif
+
+%description -n 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/C and C++
+Requires: ace = %{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/C and C++
+Requires: tao = %{TAOVER}
+Requires: ace-devel = %{ACEVER}
+Requires: ace-gperf = %{ACEVER}
+
+%description -n tao-devel
+
+This package contains the components needed for developing programs
+using TAO.
+
+# ---------------- tao-utils ----------------
+
+%package -n tao-utils
+Summary: TAO naming service and IOR utilities
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+Requires: tao = %{TAOVER}
+
+%description -n tao-utils
+
+This package includes programs to query or control a CORBA naming service,
+and to dump an IOR.
+
+The following programs are included:
+* tao-nslist, to list naming context and object bindings
+* tao-nsadd, to create bindings
+* tao-nsdel, to remove bindings
+* tao-catior, to dump the content of an Interoperable Object Reference
+
+# ---------------- tao-cosnaming ----------------
+
+%package -n tao-cosnaming
+Summary: The TAO CORBA Naming Service (CosNaming) and Interoperable Naming Service (INS)
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+Requires: tao = %{TAOVER}
+Requires: logrotate
+
+%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/C and C++
+Requires: tao = %{TAOVER}
+Requires: logrotate
+
+%description -n tao-cosevent
+
+The CosEvent_Service is a COS compliant 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/C and C++
+Requires: tao = %{TAOVER}
+Requires: logrotate
+
+%description -n tao-cosnotification
+
+The Notify_Service is a COS compliant 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/C and C++
+Requires: tao = %{TAOVER}
+Requires: logrotate
+
+%description -n tao-costrading
+
+The Trading_Service is a COS compliant Trading Service.
+
+# ---------------- tao-rtevent ----------------
+
+%package -n tao-rtevent
+Summary: The TAO Real-time Event Service
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+Requires: tao = %{TAOVER}
+Requires: logrotate
+
+%description -n tao-rtevent
+
+The TAO Real-Time Event Service. This is a TAO specific service
+implementation
+
+# ---------------- tao-cosconcurrency ----------------
+
+%package -n tao-cosconcurrency
+Summary: The TAO CORBA Concurrency Service
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+Requires: tao = %{TAOVER}
+Requires: logrotate
+
+%description -n tao-cosconcurrency
+
+The CORBA Concurrency Service. One of the standard CORBA services.
+
+# ---------------- tao-flresource ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%package -n tao-flresource
+Summary: FlResource_Factory for creating FlReactor
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- tao-flresource-devel ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%package -n tao-flresource-devel
+Summary: Header files for development with FlResource_Factory
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- tao-qtresource ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%package -n tao-qtresource
+Summary: QtResource_Factory for creating QtReactor
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- tao-qtresource-devel ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%package -n tao-qtresource-devel
+Summary: Header files for development with QtResource_Factory
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- tao-tkresource ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%package -n tao-tkresource
+Summary: TkResource_Factory for creating TkReactor
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- tao-tkresource-devel ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%package -n tao-tkresource-devel
+Summary: Header files for development with TkResource_Factory
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- tao-xtresource ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%package -n tao-xtresource
+Summary: XtResource_Factory for creating XtReactor
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+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.
+%endif
+
+# ---------------- tao-xtresource-devel ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%package -n tao-xtresource-devel
+Summary: Header files for development with XtResource_Factory
+Version: %{TAOVER}
+Group: Development/Libraries/C and C++
+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
+
+# ================================================================
+# build
+# ================================================================
+
+%build
+
+export ACE_ROOT=$(pwd)
+export MPC_ROOT=$ACE_ROOT/MPC
+export TAO_ROOT=$ACE_ROOT/TAO
+export CIAO_ROOT=$TAO_ROOT/CIAO
+export DANCE_ROOT=$TAO_ROOT/DAnCE
+export LD_LIBRARY_PATH=$ACE_ROOT/lib
+
+# Dump the g++ versions, in case the g++ version is broken we can
+# easily see this in the build log
+g++ --version
+g++ -dumpversion
+
+%if %skip_make
+
+cd .. && rm -rf ACE_wrappers && ln -s ACE_wrappers-BUILT ACE_wrappers
+
+%else
+
+cat > $ACE_ROOT/ace/config.h << EOF
+EOF
+
+# If ipv6 support is indicated insert some lines into the config.h file
+%if %{?_with_ipv6:1}%{!?_with_ipv6:0}
+cat >> $ACE_ROOT/ace/config.h << EOF
+#define ACE_HAS_IPV6
+#define ACE_USES_IPV4_IPV6_MIGRATION
+EOF
+%endif
+
+# If rnq support is indicated insert some lines into the config.h file
+%if %{?_with_rnq:1}%{!?_with_rnq:0}
+cat >> $ACE_ROOT/ace/config.h << EOF
+#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE
+EOF
+%endif
+
+# Include platform include
+cat >> $ACE_ROOT/ace/config.h << EOF
+#include "ace/config-linux.h"
+EOF
+
+# platform_macros.GNU
+%if 0%{?suse_version}
+cat > $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+CCFLAGS += %optflags
+CFLAGS += %optflags
+EOF
+%endif
+
+cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+ssl = 1
+inline = 0
+EOF
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+xt = 1
+ace_xtreactor = 1
+x11 = 1
+tao_xtresource = 1
+EOF
+%endif
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+ace_tkreactor = 1
+tao_tkresource = 1
+tk = 1
+EOF
+%endif
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+fl = 1
+tao_flresource = 1
+ace_flreactor = 1
+EOF
+%endif
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+qt4 = 1
+gl = 1
+ace_qt4reactor = 1
+tao_qt4resource = 1
+EOF
+%endif
+
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%if 0%{?have_fox} == 1
+cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+fox = 1
+ace_foxreactor = 1
+tao_foxresource = 1
+%endif
+%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
+optimize = 0
+EOF
+%else
+cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+optimize = 1
+EOF
+%endif
+
+cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
+include \$(ACE_ROOT)/include/makeinclude/platform_linux.GNU
+EOF
+
+cat > $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
+ssl=1
+cidl=0
+EOF
+
+%if %{?_with_bzip2:1}%{!?_with_bzip2:0}
+cat >> $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
+bzip2 = 1
+EOF
+%endif
+
+%if %{?_with_zlib:1}%{!?_with_zlib:0}
+cat >> $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
+zlib = 1
+EOF
+%endif
+
+
+# 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.
+
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%if 0%{?have_fox} == 1
+cat >> $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
+fox=1
+EOF
+%endif
+%endif
+
+# Need to regenerate all of the GNUMakefiles ...
+bin/mwc.pl -type gnuace TAO/TAO_ACE.mwc
+
+MAKECMD="make %{?_smp_mflags}"
+
+# build ACE components
+for ace_comp in \
+ ace \
+ Kokyu \
+ ACEXML \
+ apps/gperf \
+ protocols;
+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
+# ================================================================
+
+%define ACEVERSO %{ACEVER}
+%define TAOVERSO %{TAOVER}
+%define CIAOVERSO %{CIAOVER}
+
+%install
+
+export ACE_ROOT=$(pwd)
+export TAO_ROOT=$ACE_ROOT/TAO
+export CIAO_ROOT=$TAO_ROOT/CIAO
+export DANCE_ROOT=$TAO_ROOT/DAnCE
+
+# ---------------- Runtime Components ----------------
+
+# install shared libraries
+install -d %{buildroot}%{_libdir}
+
+# ACE + XML libraries
+INSTLIBS=`ls ${ACE_ROOT}/lib/libACE*.so.%{ACEVERSO}`
+install $INSTLIBS %{buildroot}%{_libdir}
+
+# ACE-Kokyu libraries
+INSTLIBS=`ls ${ACE_ROOT}/lib/libKokyu.so.%{ACEVERSO}`
+install $INSTLIBS %{buildroot}%{_libdir}
+
+# TAO libraries
+INSTLIBS=`ls ${ACE_ROOT}/lib/libTAO*.so.%{TAOVERSO}`
+install $INSTLIBS %{buildroot}%{_libdir}
+
+# Create un-versioned symbolic links for libraries
+(cd %{buildroot}%{_libdir} && \
+ ls *.so.* | awk 'BEGIN{FS="."}{print "ln -sf " $0 " " $1 "." $2;}' | sh)
+
+# install binaries
+install -d %{buildroot}%{_sbindir}
+
+# Rename the service binaries:
+
+install ${ACE_ROOT}/TAO/orbsvcs/Naming_Service/tao_cosnaming \
+ %{buildroot}%{_sbindir}/tao-cosnaming
+
+install ${ACE_ROOT}/TAO/orbsvcs/CosEvent_Service/tao_cosevent \
+ %{buildroot}%{_sbindir}/tao-cosevent
+
+install ${ACE_ROOT}/TAO/orbsvcs/Notify_Service/tao_cosnotification \
+ %{buildroot}%{_sbindir}/tao-cosnotification
+
+install ${ACE_ROOT}/TAO/orbsvcs/Trading_Service/tao_costrading \
+ %{buildroot}%{_sbindir}/tao-costrading
+
+install ${ACE_ROOT}/TAO/orbsvcs/Event_Service/tao_rtevent \
+ %{buildroot}%{_sbindir}/tao-rtevent
+
+install ${ACE_ROOT}/TAO/orbsvcs/Concurrency_Service/tao_cosconcurrency \
+ %{buildroot}%{_sbindir}/tao-cosconcurrency
+
+#Create directories
+for dir in cache log; do
+ mkdir -p %{buildroot}%{_localstatedir}/${dir}/tao
+done
+
+# Create data files which will be ghosted.
+touch %{buildroot}%{_localstatedir}/cache/tao/tao-cosnaming.dat
+
+# Create data files which will be ghosted.
+for logfile in cosnaming cosconcurrency cosevent cosnotification costrading rtevent; do
+ touch %{buildroot}%{_localstatedir}/log/tao/tao-${logfile}.log
+done
+
+# ---------------- Development Components ----------------
+
+# INSTHDR="cp --preserve=timestamps"
+INSTHDR="install -m 0644 -p"
+
+# install headers
+install -d %{buildroot}%{_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
+echo TAO/tao/PortableServer/get_arg.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 %{buildroot}%{_includedir}/${i/protocols\/}`
+ $INSTHDR $i %{buildroot}%{_includedir}/${i/protocols/}
+ echo '%dir %{_includedir}/'`dirname ${i/protocols/}` >> ace-headers.tmp
+ echo '%{_includedir}/'${i/protocols/} >> ace-headers.tmp
+ ;;
+ ace/*)
+ mkdir -p `dirname %{buildroot}%{_includedir}/$i`
+ $INSTHDR $i %{buildroot}%{_includedir}/$i
+ echo '%dir %{_includedir}/'`dirname $i` >> ace-headers.tmp
+ echo '%{_includedir}/'$i >> ace-headers.tmp
+ ;;
+ ACEXML/*)
+ mkdir -p `dirname %{buildroot}%{_includedir}/$i`
+ $INSTHDR $i %{buildroot}%{_includedir}/$i
+ echo '%dir %{_includedir}/'`dirname $i` >> acexml-headers.tmp
+ echo '%{_includedir}/'$i >> acexml-headers.tmp
+ ;;
+ Kokyu/*)
+ mkdir -p `dirname %{buildroot}%{_includedir}/$i`
+ $INSTHDR $i %{buildroot}%{_includedir}/$i
+ echo '%dir %{_includedir}/'`dirname $i` >> kokyu-headers.tmp
+ echo '%{_includedir}/'$i >> kokyu-headers.tmp
+ ;;
+ TAO/tao/*)
+ mkdir -p `dirname %{buildroot}%{_includedir}/${i/TAO\/}`
+ $INSTHDR $i %{buildroot}%{_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 %{buildroot}%{_includedir}/${i/TAO\/orbsvcs\/}`
+ $INSTHDR $i %{buildroot}%{_includedir}/${i/TAO\/orbsvcs\/}
+ echo '%dir %{_includedir}/'`dirname ${i/TAO\/orbsvcs\/}` >> tao-headers.tmp
+ echo '%{_includedir}/'${i/TAO\/orbsvcs\/} >> tao-headers.tmp
+ ;;
+ *)
+ 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 %{buildroot}%{_libdir}
+
+install -d %{buildroot}%{_bindir}
+install ${ACE_ROOT}/bin/ace_gperf %{buildroot}%{_bindir}
+install ${ACE_ROOT}/bin/tao_idl %{buildroot}%{_bindir}
+install ${ACE_ROOT}/bin/tao_imr %{buildroot}%{_bindir}
+install ${ACE_ROOT}/bin/tao_ifr %{buildroot}%{_bindir}
+install ${ACE_ROOT}/bin/tao_catior %{buildroot}%{_bindir}/tao_catior
+install ${ACE_ROOT}/bin/tao_nsadd %{buildroot}%{_bindir}/tao_nsadd
+install ${ACE_ROOT}/bin/tao_nsdel %{buildroot}%{_bindir}/tao_nsdel
+install ${ACE_ROOT}/bin/tao_nslist %{buildroot}%{_bindir}/tao_nslist
+
+# ================================================================
+# Config & Options
+# ================================================================
+
+install -d %{buildroot}%{_sysconfdir}
+mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
+mkdir -p %{buildroot}%{_sysconfdir}/tao
+cp -R ${ACE_ROOT}/rpmbuild/etc/logrotate.d/* %{buildroot}%{_sysconfdir}/logrotate.d/
+cp -R ${ACE_ROOT}/rpmbuild/etc/tao/* %{buildroot}%{_sysconfdir}/tao/
+
+%if 0%{?suse_version}
+mkdir -p %{buildroot}%{_sysconfdir}/init.d
+mkdir -p %{buildroot}%{_localstatedir}/adm
+cp -R ${ACE_ROOT}/rpmbuild/ace-tao-init-suse/init.d/* %{buildroot}%{_sysconfdir}/init.d/
+cp -R ${ACE_ROOT}/rpmbuild/ace-tao-init-suse/tao/* %{buildroot}%{_sysconfdir}/tao/
+%else
+mkdir -p %{buildroot}%{_sysconfdir}/rc.d/init.d
+cp -R ${ACE_ROOT}/rpmbuild/ace-tao-init-fedora/rc.d/init.d/* %{buildroot}%{_sysconfdir}/rc.d/init.d/
+cp -R ${ACE_ROOT}/rpmbuild/ace-tao-init-fedora/tao/* %{buildroot}%{_sysconfdir}/tao/
+%endif
+
+%if 0%{?suse_version}
+pushd %{buildroot}%{_sysconfdir}/init.d
+for f in *; do
+ ln -s /etc/init.d/$f %{buildroot}%{_sbindir}/rc${f}
+done
+popd
+%endif
+
+# ================================================================
+# Makefiles
+# ================================================================
+
+install -d %{buildroot}%{_datadir}
+install -d %{buildroot}%{_datadir}/ace
+install -d %{buildroot}%{_datadir}/ace/include
+install -d %{buildroot}%{_datadir}/ace/include/makeinclude
+install -d %{buildroot}%{_datadir}/mpc
+install -d %{buildroot}%{_datadir}/tao
+install -d %{buildroot}%{_datadir}/tao/orbsvcs
+install -d %{buildroot}%{_datadir}/tao/MPC
+
+for mk_macros in \
+ all_in_one.GNU \
+ component_check.GNU \
+ macros.GNU \
+ platform_g++_common.GNU \
+ platform_linux.GNU \
+ platform_linux_common.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 %{buildroot}%{_datadir}/ace/include/makeinclude)
+done
+
+install ${TAO_ROOT}/rules.tao.GNU %{buildroot}%{_datadir}/tao
+
+cp -a ${ACE_ROOT}/MPC/* %{buildroot}%{_datadir}/mpc
+
+install -d %{buildroot}%{_datadir}/ace/bin
+cp -a ${ACE_ROOT}/bin/DependencyGenerator %{buildroot}%{_datadir}/ace/bin
+cp -a ${ACE_ROOT}/bin/MakeProjectCreator %{buildroot}%{_datadir}/ace/bin
+install -d %{buildroot}%{_datadir}/ace/bin/PerlACE
+cp -a ${ACE_ROOT}/bin/PerlACE/* %{buildroot}%{_datadir}/ace/bin/PerlACE
+install ${ACE_ROOT}/bin/mpc.pl %{buildroot}%{_datadir}/ace/bin
+install ${ACE_ROOT}/bin/mwc.pl %{buildroot}%{_datadir}/ace/bin
+install ${ACE_ROOT}/bin/g++dep %{buildroot}%{_datadir}/ace/bin
+install ${ACE_ROOT}/bin/depgen.pl %{buildroot}%{_datadir}/ace/bin
+install ${ACE_ROOT}/bin/generate_export_file.pl %{buildroot}%{_datadir}/ace/bin
+install ${ACE_ROOT}/bin/add_rel_link.sh %{buildroot}%{_datadir}/ace/bin
+install ${ACE_ROOT}/bin/{ACEutils,Uniqueid}.pm %{buildroot}%{_datadir}/ace/bin
+
+ln -sfn %{_includedir}/ace %{buildroot}%{_datadir}/ace
+ln -sfn %{_includedir}/tao %{buildroot}%{_datadir}/tao
+ln -sfn %{_includedir}/orbsvcs %{buildroot}%{_datadir}/tao/orbsvcs
+ln -sfn %{_libdir} %{buildroot}%{_datadir}/ace/lib
+
+cp -a ${TAO_ROOT}/MPC/* %{buildroot}%{_datadir}/tao/MPC
+
+# Set TAO_IDL setting for the user
+cat > %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU.tmp <<EOF
+TAO_IDL = %{_bindir}/tao_idl
+TAO_IDL_DEP = %{_bindir}/tao_idl
+EOF
+cat %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU >> %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU.tmp
+mv %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU.tmp %{buildroot}%{_datadir}/ace/include/makeinclude/platform_macros.GNU
+
+
+install -d %{buildroot}%{_sysconfdir}/profile.d
+cat > %{buildroot}%{_sysconfdir}/profile.d/mpc.sh <<EOF
+MPC_ROOT=/usr/share/mpc
+export MPC_ROOT
+EOF
+cat > %{buildroot}%{_sysconfdir}/profile.d/ace-devel.sh <<EOF
+ACE_ROOT=/usr/share/ace
+export ACE_ROOT
+EOF
+cat > %{buildroot}%{_sysconfdir}/profile.d/tao-devel.sh <<EOF
+TAO_ROOT=/usr/share/tao
+export TAO_ROOT
+EOF
+
+# convenience symlinks
+ln -sfn %{_datadir}/ace/bin/mpc.pl %{buildroot}%{_bindir}/mpc.pl
+ln -sfn %{_datadir}/ace/bin/mwc.pl %{buildroot}%{_bindir}/mwc.pl
+
+# ================================================================
+# Manuals
+# ================================================================
+install -d %{buildroot}%{_mandir}
+install -d %{buildroot}%{_mandir}/man1
+install ${TAO_ROOT}/TAO_IDL/tao_idl.1 %{buildroot}%{_mandir}/man1
+install ${ACE_ROOT}/apps/gperf/ace_gperf.1 %{buildroot}%{_mandir}/man1
+install -d %{buildroot}%{_infodir}
+install ${ACE_ROOT}/apps/gperf/ace_gperf.info %{buildroot}%{_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 %{buildroot}/%{_libdir} && ls *.so | \
+ awk '{ print "%{_libdir}/"$1; }' | \
+ sort) > all-so.list
+
+# Make a list of likely svc.conf targets.
+(cd %{buildroot}/%{_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
+cat ace-headers.list ace-nonsvc-so.list > ace-devel-files.list
+
+# ================================================================
+# clean
+# ================================================================
+
+%clean
+rm -rf %{buildroot}
+
+# ================================================================
+# 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/ldconfig
+
+# ---------------- ace-xml ----------------
+
+%post -n ace-xml
+/sbin/ldconfig
+
+# ---------------- ace-gperf ----------------
+
+%post -n ace-gperf
+
+%if 0%{?suse_version}
+%install_info --info-dir=%_infodir %_infodir/ace_gperf.info%{_extension}
+%else
+/sbin/install-info %{_infodir}/ace_gperf.info%{_extension} %{_infodir}/dir
+%endif
+
+# ---------------- ace-kokyu ----------------
+
+%post -n ace-kokyu
+/sbin/ldconfig
+
+# ---------------- ace-foxreactor ----------------
+
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%if 0%{!?suse_version} || 0%{?suse_version} == 1020
+%post -n ace-foxreactor
+/sbin/ldconfig
+%endif
+%endif
+
+# ---------------- ace-flreactor ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%post -n ace-flreactor
+/sbin/ldconfig
+%endif
+
+# ---------------- ace-qtreactor ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%post -n ace-qtreactor
+/sbin/ldconfig
+%endif
+
+# ---------------- ace-tkreactor ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%post -n ace-tkreactor
+/sbin/ldconfig
+%endif
+
+# ---------------- ace-xtreactor ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%post -n ace-xtreactor
+/sbin/ldconfig
+%endif
+
+# ---------------- tao ----------------
+
+%post -n tao
+/sbin/ldconfig
+
+# ---------------- tao-devel ----------------
+
+%post -n tao-devel
+/sbin/ldconfig
+
+# ---------------- tao-utils ----------------
+
+%post -n tao-utils
+/sbin/ldconfig
+
+# ---------------- tao-cosnaming ----------------
+
+%post -n tao-cosnaming
+%if 0%{?suse_version}
+%{fillup_and_insserv tao-cosnaming}
+%else
+/sbin/chkconfig --add tao-cosnaming
+%endif
+
+# ---------------- tao-cosevent ----------------
+
+%post -n tao-cosevent
+
+%if 0%{?suse_version}
+%{fillup_and_insserv tao-cosevent}
+%else
+/sbin/chkconfig --add tao-cosevent
+%endif
+
+# ---------------- tao-cosnotification ----------------
+
+%post -n tao-cosnotification
+
+%if 0%{?suse_version}
+%{fillup_and_insserv tao-cosnotification}
+%else
+/sbin/chkconfig --add tao-cosnotification
+%endif
+
+# ---------------- tao-costrading ----------------
+
+%post -n tao-costrading
+
+%if 0%{?suse_version}
+%{fillup_and_insserv tao-costrading}
+%else
+/sbin/chkconfig --add tao-costrading
+%endif
+
+# ---------------- tao-rtevent ----------------
+
+%post -n tao-rtevent
+
+%if 0%{?suse_version}
+%{fillup_and_insserv tao-rtevent}
+%else
+/sbin/chkconfig --add tao-rtevent
+%endif
+
+# ---------------- tao-cosconcurrency ----------------
+
+%post -n tao-cosconcurrency
+
+%if 0%{?suse_version}
+%{fillup_and_insserv tao-cosconcurrency}
+%else
+/sbin/chkconfig --add tao-cosconcurrency
+%endif
+
+# ---------------- tao-flresource ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%post -n tao-flresource
+/sbin/ldconfig
+%endif
+
+# ---------------- tao-qtresource ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%post -n tao-qtresource
+/sbin/ldconfig
+%endif
+
+# ---------------- tao-tkresource ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%post -n tao-tkresource
+/sbin/ldconfig
+%endif
+
+# ---------------- tao-xtresource ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%post -n tao-xtresource
+/sbin/ldconfig
+%endif
+
+# ================================================================
+# pre uninstall
+# ================================================================
+
+# ---------------- ace-gperf ----------------
+
+%preun -n ace-gperf
+
+if [ $1 = 0 ]; then
+ /sbin/install-info --delete %{_infodir}/ace_gperf.info%{_extension} %{_infodir}/dir
+fi
+
+# ---------------- tao-cosnaming ----------------
+
+%preun -n tao-cosnaming
+%if 0%{?suse_version}
+%stop_on_removal tao-cosnaming
+%else
+if [ $1 = 0 ]; then
+ /sbin/service tao-cosnaming stop > /dev/null 2>&1
+ /sbin/chkconfig --del tao-cosnaming
+fi
+%endif
+
+# ---------------- tao-cosevent ----------------
+
+%preun -n tao-cosevent
+
+%if 0%{?suse_version}
+%stop_on_removal tao-cosevent
+%else
+if [ $1 = 0 ]; then
+ /sbin/service tao-cosevent stop > /dev/null 2>&1
+ /sbin/chkconfig --del tao-cosevent
+fi
+%endif
+
+# ---------------- tao-cosnotification ----------------
+
+%preun -n tao-cosnotification
+
+%if 0%{?suse_version}
+%stop_on_removal tao-cosnotification
+%else
+if [ $1 = 0 ]; then
+ /sbin/service tao-cosnotification stop > /dev/null 2>&1
+ /sbin/chkconfig --del tao-cosnotification
+fi
+%endif
+
+# ---------------- tao-costrading ----------------
+
+%preun -n tao-costrading
+
+%if 0%{?suse_version}
+%stop_on_removal tao-costrading
+%else
+if [ $1 = 0 ]; then
+ /sbin/service tao-costrading stop > /dev/null 2>&1
+ /sbin/chkconfig --del tao-costrading
+fi
+%endif
+
+# ---------------- tao-rtevent ----------------
+
+%preun -n tao-rtevent
+
+%if 0%{?suse_version}
+%stop_on_removal tao-rtevent
+%else
+if [ $1 = 0 ]; then
+ /sbin/service tao-rtevent stop > /dev/null 2>&1
+ /sbin/chkconfig --del tao-rtevent
+fi
+%endif
+
+# ---------------- tao-cosconcurrency ----------------
+
+%preun -n tao-cosconcurrency
+
+%if 0%{?suse_version}
+%stop_on_removal tao-cosconcurrency
+%else
+if [ $1 = 0 ]; then
+ /sbin/service tao-cosconcurrency stop > /dev/null 2>&1
+ /sbin/chkconfig --del tao-cosconcurrency
+fi
+%endif
+
+# ================================================================
+# post uninstall
+# ================================================================
+
+# ---------------- ace ----------------
+
+%postun -n ace
+/sbin/ldconfig
+
+# ---------------- ace-xml ----------------
+
+%postun -n ace-xml
+/sbin/ldconfig
+
+# ---------------- ace-kokyu ----------------
+
+%postun -n ace-kokyu
+/sbin/ldconfig
+
+# ---------------- ace-foxreactor ----------------
+
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%if 0%{?have_fox} == 1
+%postun -n ace-foxreactor
+/sbin/ldconfig
+%endif
+%endif
+
+# ---------------- ace-flreactor ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%postun -n ace-flreactor
+/sbin/ldconfig
+%endif
+
+# ---------------- ace-qtreactor ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%postun -n ace-qtreactor
+/sbin/ldconfig
+%endif
+
+# ---------------- ace-tkreactor ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%postun -n ace-tkreactor
+/sbin/ldconfig
+%endif
+
+# ---------------- ace-xtreactor ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%postun -n ace-xtreactor
+/sbin/ldconfig
+%endif
+
+# ---------------- tao ----------------
+
+%postun -n tao
+/sbin/ldconfig
+
+# ---------------- tao-devel ----------------
+
+%postun -n tao-devel
+/sbin/ldconfig
+
+# ---------------- tao-utils ----------------
+
+%postun -n tao-utils
+/sbin/ldconfig
+
+# ---------------- tao-cosnaming ----------------
+
+%postun -n tao-cosnaming
+
+%if 0%{?suse_version}
+%restart_on_update tao-cosnaming
+%insserv_cleanup
+%else
+if [ "$1" -ge "1" ]; then
+ /sbin/service tao-cosnaming %{cond_restart} > /dev/null 2>&1
+fi
+%endif
+
+# ---------------- tao-cosevent ----------------
+
+%postun -n tao-cosevent
+
+%if 0%{?suse_version}
+%restart_on_update tao-cosevent
+%insserv_cleanup
+%else
+if [ "$1" -ge "1" ]; then
+ /sbin/service tao-cosevent %{cond_restart} > /dev/null 2>&1
+fi
+%endif
+
+# ---------------- tao-cosnotification ----------------
+
+%postun -n tao-cosnotification
+
+%if 0%{?suse_version}
+%restart_on_update tao-cosnotification
+%insserv_cleanup
+%else
+if [ "$1" -ge "1" ]; then
+ /sbin/service tao-cosnotification %{cond_restart} > /dev/null 2>&1
+fi
+%endif
+
+# ---------------- tao-costrading ----------------
+
+%postun -n tao-costrading
+
+%if 0%{?suse_version}
+%restart_on_update tao-costrading
+%insserv_cleanup
+%else
+if [ "$1" -ge "1" ]; then
+ /sbin/service tao-costrading %{cond_restart} > /dev/null 2>&1
+fi
+%endif
+
+# ---------------- tao-rtevent ----------------
+
+%postun -n tao-rtevent
+
+%if 0%{?suse_version}
+%restart_on_update tao-rtevent
+%insserv_cleanup
+%else
+if [ "$1" -ge "1" ]; then
+ /sbin/service tao-rtevent %{cond_restart} > /dev/null 2>&1
+fi
+%endif
+
+# ---------------- tao-cosconcurrency ----------------
+
+%postun -n tao-cosconcurrency
+
+%if 0%{?suse_version}
+%restart_on_update tao-cosconcurrency
+%insserv_cleanup
+%else
+if [ "$1" -ge "1" ]; then
+ /sbin/service tao-cosconcurrency %{cond_restart} > /dev/null 2>&1
+fi
+%endif
+
+# ---------------- tao-flresource ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%postun -n tao-flresource
+/sbin/ldconfig
+%endif
+
+# ---------------- tao-qtresource ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%postun -n tao-qtresource
+/sbin/ldconfig
+%endif
+
+# ---------------- tao-tkresource ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%postun -n tao-tkresource
+/sbin/ldconfig
+%endif
+
+# ---------------- tao-xtresource ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%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_TMCast.so.%{ACEVERSO}
+%{_libdir}/libACE_SSL.so.%{ACEVERSO}
+%{_libdir}/libACE_INet.so.%{ACEVERSO}
+%{_libdir}/libACE_INet_SSL.so.%{ACEVERSO}
+
+%doc ACE-INSTALL.html
+%doc AUTHORS
+%doc COPYING
+%doc PROBLEM-REPORT-FORM
+%doc README
+%doc THANKS
+%doc VERSION
+
+# ---------------- ace-devel ----------------
+
+%files -n ace-devel -f ace-devel-files.list
+%defattr(-,root,root,-)
+%{_libdir}/libACE_HTBP.so
+%{_libdir}/libACE_SSL.so
+%dir %{_datadir}/ace
+%{_datadir}/ace/include
+%{_datadir}/ace/bin
+%{_datadir}/ace/ace
+%{_datadir}/ace/lib
+%config %{_sysconfdir}/profile.d/ace-devel.sh
+
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%exclude %{_includedir}/ace/FoxReactor/FoxReactor.h
+%exclude %{_includedir}/ace/FoxReactor/ACE_FoxReactor_export.h
+%endif
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%exclude %{_includedir}/ace/FlReactor/FlReactor.h
+%exclude %{_includedir}/ace/FlReactor/ACE_FlReactor_export.h
+%endif
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%exclude %{_includedir}/ace/QtReactor/QtReactor.h
+%exclude %{_includedir}/ace/QtReactor/ACE_QtReactor_export.h
+%endif
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%exclude %{_includedir}/ace/TkReactor/TkReactor.h
+%exclude %{_includedir}/ace/TkReactor/ACE_TkReactor_export.h
+%endif
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%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-gperf ----------------
+
+%files -n ace-gperf
+%defattr(-,root,root,-)
+%{_bindir}/ace_gperf
+%attr(0644,root,root) %{_mandir}/man1/ace_gperf.1%{_extension}
+%attr(0644,root,root) %{_infodir}/ace_gperf.info%{_extension}
+
+%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-foxreactor ----------------
+
+%if 0%{?have_fox} == 1
+%if %{?_with_fox:1}%{!?_with_fox:0}
+%files -n ace-foxreactor
+%defattr(-,root,root,-)
+%{_libdir}/libACE_FoxReactor.so.%{ACEVERSO}
+
+%doc AUTHORS
+%doc COPYING
+%doc PROBLEM-REPORT-FORM
+%doc README
+%doc VERSION
+
+%endif
+%endif
+# ---------------- ace-flreactor ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl: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 ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl: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 ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt: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 ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt: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 ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk: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 ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk: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 ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt: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 ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt: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
+
+# ---------------- mpc ----------------
+
+%files -n mpc
+%defattr(-,root,root,-)
+%{_datadir}/mpc
+%config %{_sysconfdir}/profile.d/mpc.sh
+%{_bindir}/mpc.pl
+%{_bindir}/mwc.pl
+
+# ---------------- 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,-)
+%{_datadir}/tao
+%exclude %{_datadir}/tao/MPC
+
+%{_libdir}/libTAO*.so.%{TAOVERSO}
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%exclude %{_libdir}/libTAO_FlResource.so*
+%endif
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%exclude %{_libdir}/libTAO_QtResource.so*
+%endif
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%exclude %{_libdir}/libTAO_TkResource.so*
+%endif
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%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 development package.
+
+%files -n tao-devel -f tao-devel-files.list
+%defattr(-,root,root,-)
+%config %{_sysconfdir}/profile.d/tao-devel.sh
+
+%{_bindir}/tao_imr
+%{_bindir}/tao_ifr
+%{_datadir}/tao/MPC
+%{_bindir}/tao_idl
+%attr(0644,root,root) %doc %{_mandir}/man1/tao_idl.1%{_extension}
+%{_datadir}/tao/tao
+%{_datadir}/tao/orbsvcs
+
+# These get missed by the automatic list generator because they
+# contain no immediate files.
+%dir %{_includedir}/orbsvcs/FtRtEvent
+
+%if %{?_with_fl:1}%{!?_with_fl:0}
+%exclude %{_includedir}/tao/FlResource/FlResource_Factory.h
+%exclude %{_includedir}/tao/FlResource/FlResource_Loader.h
+%exclude %{_includedir}/tao/FlResource/TAO_FlResource_Export.h
+%exclude %{_libdir}/libTAO_FlResource.so
+%endif
+%if %{?_with_qt:1}%{!?_with_qt:0}
+%exclude %{_includedir}/tao/QtResource/QtResource_Factory.h
+%exclude %{_includedir}/tao/QtResource/QtResource_Loader.h
+%exclude %{_includedir}/tao/QtResource/TAO_QtResource_Export.h
+%exclude %{_libdir}/libTAO_QtResource.so
+%endif
+%if %{?_with_tk:1}%{!?_with_tk:0}
+%exclude %{_includedir}/tao/TkResource/TkResource_Factory.h
+%exclude %{_includedir}/tao/TkResource/TkResource_Loader.h
+%exclude %{_includedir}/tao/TkResource/TAO_TkResource_Export.h
+%exclude %{_libdir}/libTAO_TkResource.so
+%endif
+%if %{?_with_xt:1}%{!?_with_xt:0}
+%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_XtResource.so
+%endif
+
+%doc TAO/COPYING
+%doc TAO/PROBLEM-REPORT-FORM
+%doc TAO/VERSION
+%doc TAO/README
+
+# ---------------- tao-utils ----------------
+
+%files -n tao-utils
+%defattr(-,root,root,-)
+
+%{_bindir}/tao_catior
+%{_bindir}/tao_nsadd
+%{_bindir}/tao_nsdel
+%{_bindir}/tao_nslist
+
+%doc TAO/COPYING
+%doc TAO/PROBLEM-REPORT-FORM
+%doc TAO/VERSION
+%doc TAO/README
+%doc TAO/utils/catior/README.catior
+%doc TAO/utils/nslist/README.nslist
+
+# ---------------- tao-cosnaming ----------------
+
+%files -n tao-cosnaming
+%defattr(-,root,root,-)
+
+%dir %{_sysconfdir}/tao
+
+%{_sbindir}/tao-cosnaming
+
+%if 0%{?suse_version}
+%{_sysconfdir}/init.d/tao-cosnaming
+%{_sbindir}/rctao-cosnaming
+%{_sysconfdir}/tao/tao-cosnaming
+%else
+%{_sysconfdir}/rc.d/init.d/tao-cosnaming
+%config(noreplace) %{_sysconfdir}/tao/tao-cosnaming.opt
+%endif
+
+%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,-)
+
+%dir %{_sysconfdir}/tao
+%{_sbindir}/tao-cosevent
+
+%if 0%{?suse_version}
+%{_sysconfdir}/init.d/tao-cosevent
+%{_sbindir}/rctao-cosevent
+%{_sysconfdir}/tao/tao-cosevent
+%else
+%{_sysconfdir}/rc.d/init.d/tao-cosevent
+%config(noreplace) %{_sysconfdir}/tao/tao-cosevent.opt
+%endif
+
+%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
+%dir %{_sysconfdir}/tao
+
+%if 0%{?suse_version}
+%{_sysconfdir}/init.d/tao-cosnotification
+%{_sbindir}/rctao-cosnotification
+%{_sysconfdir}/tao/tao-cosnotification
+%else
+%{_sysconfdir}/rc.d/init.d/tao-cosnotification
+%config(noreplace) %{_sysconfdir}/tao/tao-cosnotification.opt
+%endif
+
+%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,-)
+
+%dir %{_sysconfdir}/tao
+
+%{_sbindir}/tao-costrading
+
+%if 0%{?suse_version}
+%{_sysconfdir}/init.d/tao-costrading
+%{_sbindir}/rctao-costrading
+%{_sysconfdir}/tao/tao-costrading
+%else
+%{_sysconfdir}/rc.d/init.d/tao-costrading
+%config(noreplace) %{_sysconfdir}/tao/tao-costrading.opt
+%endif
+
+%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,-)
+
+%dir %{_sysconfdir}/tao
+%{_sbindir}/tao-rtevent
+
+%if 0%{?suse_version}
+%{_sysconfdir}/init.d/tao-rtevent
+%{_sbindir}/rctao-rtevent
+%{_sysconfdir}/tao/tao-rtevent
+%else
+%{_sysconfdir}/rc.d/init.d/tao-rtevent
+%config(noreplace) %{_sysconfdir}/tao/tao-rtevent.opt
+%endif
+
+%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,-)
+
+%dir %{_sysconfdir}/tao
+%{_sbindir}/tao-cosconcurrency
+
+%if 0%{?suse_version}
+%{_sysconfdir}/init.d/tao-cosconcurrency
+%{_sbindir}/rctao-cosconcurrency
+%{_sysconfdir}/tao/tao-cosconcurrency
+%else
+%{_sysconfdir}/rc.d/init.d/tao-cosconcurrency
+%config(noreplace) %{_sysconfdir}/tao/tao-cosconcurrency.opt
+%endif
+
+%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 ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl: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 ----------------
+
+%if %{?_with_fl:1}%{!?_with_fl: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 ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt: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 ----------------
+
+%if %{?_with_qt:1}%{!?_with_qt: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 ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk: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 ----------------
+
+%if %{?_with_tk:1}%{!?_with_tk: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 ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt: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 ----------------
+
+%if %{?_with_xt:1}%{!?_with_xt: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
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/etc/logrotate.d/tao-cosconcurrency b/ACE/rpmbuild/etc/logrotate.d/tao-cosconcurrency
new file mode 100644
index 00000000000..d256e1a8331
--- /dev/null
+++ b/ACE/rpmbuild/etc/logrotate.d/tao-cosconcurrency
@@ -0,0 +1,6 @@
+/var/log/tao/tao-cosconcurrency.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/etc/logrotate.d/tao-cosevent b/ACE/rpmbuild/etc/logrotate.d/tao-cosevent
new file mode 100644
index 00000000000..f49bbd21995
--- /dev/null
+++ b/ACE/rpmbuild/etc/logrotate.d/tao-cosevent
@@ -0,0 +1,6 @@
+/var/log/tao/tao-cosevent.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/etc/logrotate.d/tao-cosnaming b/ACE/rpmbuild/etc/logrotate.d/tao-cosnaming
new file mode 100644
index 00000000000..c9458cd01bb
--- /dev/null
+++ b/ACE/rpmbuild/etc/logrotate.d/tao-cosnaming
@@ -0,0 +1,6 @@
+/var/log/tao/tao-cosnaming.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/etc/logrotate.d/tao-cosnotification b/ACE/rpmbuild/etc/logrotate.d/tao-cosnotification
new file mode 100644
index 00000000000..bccc92eef2c
--- /dev/null
+++ b/ACE/rpmbuild/etc/logrotate.d/tao-cosnotification
@@ -0,0 +1,6 @@
+/var/log/tao/tao-cosnotification.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/etc/logrotate.d/tao-costrading b/ACE/rpmbuild/etc/logrotate.d/tao-costrading
new file mode 100644
index 00000000000..6eb6b78c695
--- /dev/null
+++ b/ACE/rpmbuild/etc/logrotate.d/tao-costrading
@@ -0,0 +1,6 @@
+/var/log/tao/tao-costrading.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/etc/logrotate.d/tao-rtevent b/ACE/rpmbuild/etc/logrotate.d/tao-rtevent
new file mode 100644
index 00000000000..80d2e7b6736
--- /dev/null
+++ b/ACE/rpmbuild/etc/logrotate.d/tao-rtevent
@@ -0,0 +1,6 @@
+/var/log/tao/tao-rtevent.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/etc/tao/tao-cosconcurrency.conf b/ACE/rpmbuild/etc/tao/tao-cosconcurrency.conf
new file mode 100644
index 00000000000..b7821278b3c
--- /dev/null
+++ b/ACE/rpmbuild/etc/tao/tao-cosconcurrency.conf
@@ -0,0 +1,4 @@
+# $Id$
+#
+# Service Configuration for tao-cosconcurrency.
+#
diff --git a/ACE/rpmbuild/etc/tao/tao-cosevent.conf b/ACE/rpmbuild/etc/tao/tao-cosevent.conf
new file mode 100644
index 00000000000..3a6d86a0743
--- /dev/null
+++ b/ACE/rpmbuild/etc/tao/tao-cosevent.conf
@@ -0,0 +1,5 @@
+# $Id$
+
+#
+# Service Configuration for tao-cosevent.
+#
diff --git a/ACE/rpmbuild/etc/tao/tao-cosnaming.conf b/ACE/rpmbuild/etc/tao/tao-cosnaming.conf
new file mode 100644
index 00000000000..ff5ef3c6a7a
--- /dev/null
+++ b/ACE/rpmbuild/etc/tao/tao-cosnaming.conf
@@ -0,0 +1,5 @@
+# $Id$
+
+#
+# Service Configuration for tao-cosnaming.
+#
diff --git a/ACE/rpmbuild/etc/tao/tao-cosnotification.conf b/ACE/rpmbuild/etc/tao/tao-cosnotification.conf
new file mode 100644
index 00000000000..0f4f4329aa2
--- /dev/null
+++ b/ACE/rpmbuild/etc/tao/tao-cosnotification.conf
@@ -0,0 +1,5 @@
+# $Id$
+
+#
+# Service Configuration for tao-cosnotification.
+#
diff --git a/ACE/rpmbuild/etc/tao/tao-costrading.conf b/ACE/rpmbuild/etc/tao/tao-costrading.conf
new file mode 100644
index 00000000000..743203d928e
--- /dev/null
+++ b/ACE/rpmbuild/etc/tao/tao-costrading.conf
@@ -0,0 +1,5 @@
+# $Id$
+
+#
+# Service Configuration for tao-costrading.
+#
diff --git a/ACE/rpmbuild/etc/tao/tao-rtevent.conf b/ACE/rpmbuild/etc/tao/tao-rtevent.conf
new file mode 100644
index 00000000000..5a6c381f562
--- /dev/null
+++ b/ACE/rpmbuild/etc/tao/tao-rtevent.conf
@@ -0,0 +1,5 @@
+# $Id$
+
+#
+# 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/ACE_Init_Test.h b/ACE/tests/ACE_Init_Test.h
index 3916ff61b6f..af27d99905c 100644
--- a/ACE/tests/ACE_Init_Test.h
+++ b/ACE/tests/ACE_Init_Test.h
@@ -1,21 +1,18 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// ACE_Init_Test.h
-//
-// = DESCRIPTION
-// Main header file for the ACE_INIT_TEST application.
-//
-// = AUTHOR
-// Steve Huston <shuston@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ACE_Init_Test.h
+ *
+ * $Id$
+ *
+ * Main header file for the ACE_INIT_TEST application.
+ *
+ *
+ * @author Steve Huston <shuston@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef AFX_ACE_INIT_TEST_H__64FDC9FE_F7F9_11D2_89B6_00A024CC68DB__INCLUDED_
#define AFX_ACE_INIT_TEST_H__64FDC9FE_F7F9_11D2_89B6_00A024CC68DB__INCLUDED_
@@ -30,10 +27,13 @@
#include "ACE_Init_Test_Resource.h" // main symbols
+/**
+ * @class CACE_Init_TestApp
+ *
+ * @brief See ACE_Init_Test.cpp for the implementation of this class
+ */
class CACE_Init_TestApp : public CWinApp
{
- // = TITLE
- // See ACE_Init_Test.cpp for the implementation of this class
public:
CACE_Init_TestApp (void);
@@ -41,8 +41,8 @@ public:
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CACE_Init_TestApp)
public:
+ ///}}AFX_VIRTUAL
virtual BOOL InitInstance();
- //}}AFX_VIRTUAL
// Implementation
diff --git a/ACE/tests/ACE_Init_Test.rc b/ACE/tests/ACE_Init_Test.rc
index 647f04a1ba6..1ca781b69c9 100644
--- a/ACE/tests/ACE_Init_Test.rc
+++ b/ACE/tests/ACE_Init_Test.rc
@@ -1,4 +1,4 @@
-//Microsoft Developer Studio generated resource script.
+// Microsoft Visual C++ generated resource script.
//
#include "ACE_Init_Test_Resource.h"
@@ -7,6 +7,7 @@
//
// Generated from the TEXTINCLUDE 2 resource.
//
+#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
@@ -15,6 +16,10 @@
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
@@ -22,18 +27,18 @@
// TEXTINCLUDE
//
-1 TEXTINCLUDE DISCARDABLE
+1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
-2 TEXTINCLUDE DISCARDABLE
+2 TEXTINCLUDE
BEGIN
- "#include ""afxres.h""\r\n"
+ "#include ""winres.h""\r\n"
"\0"
END
-3 TEXTINCLUDE DISCARDABLE
+3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
@@ -45,7 +50,7 @@ BEGIN
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#endif\r\n"
- "#include ""res\\ACE_Init_Test.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
+ "#include ""ACE_Init_Test.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#endif\0"
END
@@ -59,29 +64,25 @@ END
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
-IDR_MAINFRAME ICON DISCARDABLE "ACE_Init_Test.ico"
+IDR_MAINFRAME ICON "ACE_Init_Test.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
-#ifdef APSTUDIO_INVOKED
IDD_ACE_INIT_TEST_DIALOG DIALOGEX 0, 0, 185, 92
-STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "ACE_Init_Test"
-FONT 8, "MS Sans Serif"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,128,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,128,23,50,14
- LTEXT "This box will auto-dismiss.",IDC_STATIC,13,7,113,
- 8
+ LTEXT "This box will auto-dismiss.",IDC_STATIC,13,7,113,8
END
-#endif // APSTUDIO_INVOKED
-#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
@@ -104,15 +105,13 @@ BEGIN
BEGIN
BLOCK "040904B0"
BEGIN
- VALUE "CompanyName", "\0"
- VALUE "FileDescription", "ACE_Init_Test MFC Application\0"
- VALUE "FileVersion", "1, 0, 0, 1\0"
- VALUE "InternalName", "ACE_Init_Test\0"
- VALUE "LegalCopyright", "Copyright (C) 1999\0"
- VALUE "LegalTrademarks", "\0"
- VALUE "OriginalFilename", "ACE_Init_Test.EXE\0"
- VALUE "ProductName", "ACE_Init_Test Application\0"
- VALUE "ProductVersion", "1, 0, 0, 1\0"
+ VALUE "FileDescription", "ACE_Init_Test MFC Application"
+ VALUE "FileVersion", "1, 0, 0, 1"
+ VALUE "InternalName", "ACE_Init_Test"
+ VALUE "LegalCopyright", "Copyright (C) 1999"
+ VALUE "OriginalFilename", "ACE_Init_Test.EXE"
+ VALUE "ProductName", "ACE_Init_Test Application"
+ VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
@@ -121,7 +120,37 @@ BEGIN
END
END
-#endif // !_MAC
+IDR_VERSION2 VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "FileDescription", "ACE_Init Application"
+ VALUE "FileVersion", "1, 0, 0, 1"
+ VALUE "InternalName", "ACE_Init"
+ VALUE "LegalCopyright", "Copyright (C) 2011"
+ VALUE "OriginalFilename", "ACE_Init.exe"
+ VALUE "ProductName", "ACE_Init Application"
+ VALUE "ProductVersion", "1, 0, 0, 1"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
/////////////////////////////////////////////////////////////////////////////
@@ -130,7 +159,7 @@ END
//
#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE
+GUIDELINES DESIGNINFO
BEGIN
IDD_ACE_INIT_TEST_DIALOG, DIALOG
BEGIN
diff --git a/ACE/tests/ACE_Init_Test_Resource.h b/ACE/tests/ACE_Init_Test_Resource.h
index 102cdab13e3..604c0bc03ff 100644
--- a/ACE/tests/ACE_Init_Test_Resource.h
+++ b/ACE/tests/ACE_Init_Test_Resource.h
@@ -1,17 +1,529 @@
-// $Id$
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ * @file ACE_Init_Test_Resource.h
+ *
+ * $Id$
+ *
+ * Header file for the ACE_INIT_TEST application.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
+
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
-// Used by ACE_INIT_TEST.RC
+// Used by ACE_Init_Test.rc
//
-#define IDR_MAINFRAME 128
+#define ID_SEPARATOR 0
+#define VS_VERSION_INFO 1
+#define AFX_IDC_LISTBOX 100
+#define AFX_IDC_CHANGE 101
#define IDD_ACE_INIT_TEST_DIALOG 102
+#define AFX_IDC_BROWSER 102
+#define IDR_MAINFRAME 128
+#define IDR_VERSION2 129
+#define AFX_IDC_PRINT_DOCNAME 201
+#define AFX_IDC_PRINT_PRINTERNAME 202
+#define AFX_IDC_PRINT_PORTNAME 203
+#define AFX_IDC_PRINT_PAGENUM 204
+#define SUBVERSION_MASK 0x000000FF
+#define _WIN32_IE_IE20 0x0200
+#define _WIN32_IE_IE30 0x0300
+#define _WIN32_IE_IE302 0x0302
+#define ID_MFCLOC_MANIFEST 1000
+#define AFX_IDC_FONTPROP 1000
+#define AFX_IDC_FONTNAMES 1001
+#define AFX_IDC_FONTSTYLES 1002
+#define AFX_IDC_FONTSIZES 1003
+#define AFX_IDC_STRIKEOUT 1004
+#define AFX_IDC_UNDERLINE 1005
+#define AFX_IDC_SAMPLEBOX 1006
+#define _WIN32_WINNT_NT4 0x0400
+#define _WIN32_IE_IE40 0x0400
+#define _WIN32_IE_IE401 0x0401
+#define AFX_IDC_COLOR_BLACK 1100
+#define AFX_IDC_COLOR_WHITE 1101
+#define AFX_IDC_COLOR_RED 1102
+#define AFX_IDC_COLOR_GREEN 1103
+#define AFX_IDC_COLOR_BLUE 1104
+#define AFX_IDC_COLOR_YELLOW 1105
+#define AFX_IDC_COLOR_MAGENTA 1106
+#define AFX_IDC_COLOR_CYAN 1107
+#define AFX_IDC_COLOR_GRAY 1108
+#define AFX_IDC_COLOR_LIGHTGRAY 1109
+#define AFX_IDC_COLOR_DARKRED 1110
+#define AFX_IDC_COLOR_DARKGREEN 1111
+#define AFX_IDC_COLOR_DARKBLUE 1112
+#define AFX_IDC_COLOR_LIGHTBROWN 1113
+#define AFX_IDC_COLOR_DARKMAGENTA 1114
+#define AFX_IDC_COLOR_DARKCYAN 1115
+#define AFX_IDC_COLORPROP 1116
+#define AFX_IDC_SYSTEMCOLORS 1117
+#define AFX_IDC_PROPNAME 1201
+#define AFX_IDC_PICTURE 1202
+#define AFX_IDC_BROWSE 1203
+#define AFX_IDC_CLEAR 1204
+#define _WIN32_WINNT_WIN2K 0x0500
+#define _WIN32_IE_IE50 0x0500
+#define _WIN32_WINNT_WINXP 0x0501
+#define _WIN32_IE_IE501 0x0501
+#define _WIN32_WINNT_WS03 0x0502
+#define _WIN32_IE_IE55 0x0550
+#define _WIN32_WINNT_LONGHORN 0x0600
+#define _WIN32_IE_IE60 0x0600
+#define _WIN32_IE_IE60SP1 0x0601
+#define _WIN32_IE_WS03 0x0602
+#define _WIN32_IE_IE60SP2 0x0603
+#define _WIN32_IE_IE70 0x0700
+#define AFX_IDC_TAB_CONTROL 0x3020
+#define ID_APPLY_NOW 0x3021
+#define ID_WIZBACK 0x3023
+#define ID_WIZNEXT 0x3024
+#define ID_WIZFINISH 0x3025
+#define AFX_IDD_NEWTYPEDLG 30721
+#define AFX_IDD_PRINTDLG 30722
+#define AFX_IDD_PREVIEW_TOOLBAR 30723
+#define AFX_IDD_INSERTOBJECT 30724
+#define AFX_IDD_CHANGEICON 30725
+#define AFX_IDD_CONVERT 30726
+#define AFX_IDD_PASTESPECIAL 30727
+#define AFX_IDD_EDITLINKS 30728
+#define AFX_IDD_FILEBROWSE 30729
+#define AFX_IDD_BUSY 30730
+#define AFX_IDD_OBJECTPROPERTIES 30732
+#define AFX_IDD_CHANGESOURCE 30733
+#define AFX_IDD_EMPTYDIALOG 30734
+#define AFX_IDC_CONTEXTHELP 30977
+#define AFX_IDC_MAGNIFY 30978
+#define AFX_IDC_SMALLARROWS 30979
+#define AFX_IDC_HSPLITBAR 30980
+#define AFX_IDC_VSPLITBAR 30981
+#define AFX_IDC_NODROPCRSR 30982
+#define AFX_IDC_TRACKNWSE 30983
+#define AFX_IDC_TRACKNESW 30984
+#define AFX_IDC_TRACKNS 30985
+#define AFX_IDC_TRACKWE 30986
+#define AFX_IDC_TRACK4WAY 30987
+#define AFX_IDC_MOVE4WAY 30988
+#define AFX_IDB_MINIFRAME_MENU 30994
+#define AFX_IDB_CHECKLISTBOX_95 30996
+#define AFX_IDR_PREVIEW_ACCEL 30997
+#define AFX_IDC_MOUSE_PAN_NW 30998
+#define AFX_IDC_MOUSE_PAN_N 30999
+#define AFX_IDC_MOUSE_PAN_NE 31000
+#define AFX_IDC_MOUSE_PAN_W 31001
+#define AFX_IDC_MOUSE_PAN_HV 31002
+#define AFX_IDC_MOUSE_PAN_E 31003
+#define AFX_IDC_MOUSE_PAN_SW 31004
+#define AFX_IDC_MOUSE_PAN_S 31005
+#define AFX_IDC_MOUSE_PAN_SE 31006
+#define AFX_IDC_MOUSE_PAN_HORZ 31007
+#define AFX_IDC_MOUSE_PAN_VERT 31008
+#define AFX_IDC_MOUSE_ORG_HORZ 31009
+#define AFX_IDC_MOUSE_ORG_VERT 31010
+#define AFX_IDC_MOUSE_ORG_HV 31011
+#define AFX_IDC_MOUSE_MASK 31012
+#define AFX_IDI_STD_MDIFRAME 31233
+#define AFX_IDI_STD_FRAME 31234
+#define AFX_IDD_PROPPAGE_COLOR 32257
+#define AFX_IDD_PROPPAGE_FONT 32258
+#define AFX_IDD_PROPPAGE_PICTURE 32259
+#define AFX_IDB_TRUETYPE 32384
+#define AFX_IDS_APP_TITLE 0xE000
+#define AFX_IDS_IDLEMESSAGE 0xE001
+#define AFX_IDS_HELPMODEMESSAGE 0xE002
+#define AFX_IDS_APP_TITLE_EMBEDDING 0xE003
+#define AFX_IDS_COMPANY_NAME 0xE004
+#define AFX_IDS_OBJ_TITLE_INPLACE 0xE005
+#define ID_FILE_NEW 0xE100
+#define ID_FILE_OPEN 0xE101
+#define ID_FILE_CLOSE 0xE102
+#define ID_FILE_SAVE 0xE103
+#define ID_FILE_SAVE_AS 0xE104
+#define ID_FILE_PAGE_SETUP 0xE105
+#define ID_FILE_PRINT_SETUP 0xE106
+#define ID_FILE_PRINT 0xE107
+#define ID_FILE_PRINT_DIRECT 0xE108
+#define ID_FILE_PRINT_PREVIEW 0xE109
+#define ID_FILE_UPDATE 0xE10A
+#define ID_FILE_SAVE_COPY_AS 0xE10B
+#define ID_FILE_SEND_MAIL 0xE10C
+#define ID_FILE_NEW_FRAME 0xE10D
+#define ID_FILE_MRU_FIRST 0xE110
+#define ID_FILE_MRU_FILE1 0xE110
+#define ID_FILE_MRU_FILE2 0xE111
+#define ID_FILE_MRU_FILE3 0xE112
+#define ID_FILE_MRU_FILE4 0xE113
+#define ID_FILE_MRU_FILE5 0xE114
+#define ID_FILE_MRU_FILE6 0xE115
+#define ID_FILE_MRU_FILE7 0xE116
+#define ID_FILE_MRU_FILE8 0xE117
+#define ID_FILE_MRU_FILE9 0xE118
+#define ID_FILE_MRU_FILE10 0xE119
+#define ID_FILE_MRU_FILE11 0xE11A
+#define ID_FILE_MRU_FILE12 0xE11B
+#define ID_FILE_MRU_FILE13 0xE11C
+#define ID_FILE_MRU_FILE14 0xE11D
+#define ID_FILE_MRU_FILE15 0xE11E
+#define ID_FILE_MRU_FILE16 0xE11F
+#define ID_FILE_MRU_LAST 0xE11F
+#define ID_EDIT_CLEAR 0xE120
+#define ID_EDIT_CLEAR_ALL 0xE121
+#define ID_EDIT_COPY 0xE122
+#define ID_EDIT_CUT 0xE123
+#define ID_EDIT_FIND 0xE124
+#define ID_EDIT_PASTE 0xE125
+#define ID_EDIT_PASTE_LINK 0xE126
+#define ID_EDIT_PASTE_SPECIAL 0xE127
+#define ID_EDIT_REPEAT 0xE128
+#define ID_EDIT_REPLACE 0xE129
+#define ID_EDIT_SELECT_ALL 0xE12A
+#define ID_EDIT_UNDO 0xE12B
+#define ID_EDIT_REDO 0xE12C
+#define ID_WINDOW_NEW 0xE130
+#define ID_WINDOW_ARRANGE 0xE131
+#define ID_WINDOW_CASCADE 0xE132
+#define ID_WINDOW_TILE_HORZ 0xE133
+#define ID_WINDOW_TILE_VERT 0xE134
+#define ID_WINDOW_SPLIT 0xE135
+#define ID_APP_ABOUT 0xE140
+#define ID_APP_EXIT 0xE141
+#define ID_HELP_INDEX 0xE142
+#define ID_HELP_FINDER 0xE143
+#define ID_HELP_USING 0xE144
+#define ID_CONTEXT_HELP 0xE145
+#define ID_HELP 0xE146
+#define ID_DEFAULT_HELP 0xE147
+#define ID_NEXT_PANE 0xE150
+#define ID_PREV_PANE 0xE151
+#define ID_FORMAT_FONT 0xE160
+#define ID_OLE_INSERT_NEW 0xE200
+#define ID_OLE_EDIT_LINKS 0xE201
+#define ID_OLE_EDIT_CONVERT 0xE202
+#define ID_OLE_EDIT_CHANGE_ICON 0xE203
+#define ID_OLE_EDIT_PROPERTIES 0xE204
+#define ID_OLE_VERB_FIRST 0xE210
+#define AFX_ID_PREVIEW_CLOSE 0xE300
+#define AFX_ID_PREVIEW_NUMPAGE 0xE301
+#define AFX_ID_PREVIEW_NEXT 0xE302
+#define AFX_ID_PREVIEW_PREV 0xE303
+#define AFX_ID_PREVIEW_PRINT 0xE304
+#define AFX_ID_PREVIEW_ZOOMIN 0xE305
+#define AFX_ID_PREVIEW_ZOOMOUT 0xE306
+#define ID_INDICATOR_EXT 0xE700
+#define ID_INDICATOR_CAPS 0xE701
+#define ID_INDICATOR_NUM 0xE702
+#define ID_INDICATOR_SCRL 0xE703
+#define ID_INDICATOR_OVR 0xE704
+#define ID_INDICATOR_REC 0xE705
+#define ID_INDICATOR_KANA 0xE706
+#define ID_VIEW_TOOLBAR 0xE800
+#define ID_VIEW_STATUS_BAR 0xE801
+#define ID_VIEW_REBAR 0xE804
+#define ID_VIEW_AUTOARRANGE 0xE805
+#define ID_VIEW_SMALLICON 0xE810
+#define ID_VIEW_LARGEICON 0xE811
+#define ID_VIEW_LIST 0xE812
+#define ID_VIEW_DETAILS 0xE813
+#define ID_VIEW_LINEUP 0xE814
+#define ID_VIEW_BYNAME 0xE815
+#define ID_RECORD_FIRST 0xE900
+#define ID_RECORD_LAST 0xE901
+#define ID_RECORD_NEXT 0xE902
+#define ID_RECORD_PREV 0xE903
+#define AFX_IDS_SCSIZE 0xEF00
+#define AFX_IDS_SCMOVE 0xEF01
+#define AFX_IDS_SCMINIMIZE 0xEF02
+#define AFX_IDS_SCMAXIMIZE 0xEF03
+#define AFX_IDS_SCNEXTWINDOW 0xEF04
+#define AFX_IDS_SCPREVWINDOW 0xEF05
+#define AFX_IDS_SCCLOSE 0xEF06
+#define AFX_IDS_SCRESTORE 0xEF12
+#define AFX_IDS_SCTASKLIST 0xEF13
+#define AFX_IDS_MDICHILD 0xEF1F
+#define AFX_IDS_DESKACCESSORY 0xEFDA
+#define AFX_IDS_OPENFILE 0xF000
+#define AFX_IDS_SAVEFILE 0xF001
+#define AFX_IDS_ALLFILTER 0xF002
+#define AFX_IDS_UNTITLED 0xF003
+#define AFX_IDS_SAVEFILECOPY 0xF004
+#define AFX_IDS_PREVIEW_CLOSE 0xF005
+#define AFX_IDS_UNNAMED_FILE 0xF006
+#define AFX_IDS_HIDE 0xF011
+#define AFX_IDP_NO_ERROR_AVAILABLE 0xF020
+#define AFX_IDS_NOT_SUPPORTED_EXCEPTION 0xF021
+#define AFX_IDS_RESOURCE_EXCEPTION 0xF022
+#define AFX_IDS_MEMORY_EXCEPTION 0xF023
+#define AFX_IDS_USER_EXCEPTION 0xF024
+#define AFX_IDS_INVALID_ARG_EXCEPTION 0xF025
+#define AFX_IDS_PRINTONPORT 0xF040
+#define AFX_IDS_ONEPAGE 0xF041
+#define AFX_IDS_TWOPAGE 0xF042
+#define AFX_IDS_PRINTPAGENUM 0xF043
+#define AFX_IDS_PREVIEWPAGEDESC 0xF044
+#define AFX_IDS_PRINTDEFAULTEXT 0xF045
+#define AFX_IDS_PRINTDEFAULT 0xF046
+#define AFX_IDS_PRINTFILTER 0xF047
+#define AFX_IDS_PRINTCAPTION 0xF048
+#define AFX_IDS_PRINTTOFILE 0xF049
+#define AFX_IDS_OBJECT_MENUITEM 0xF080
+#define AFX_IDS_EDIT_VERB 0xF081
+#define AFX_IDS_ACTIVATE_VERB 0xF082
+#define AFX_IDS_CHANGE_LINK 0xF083
+#define AFX_IDS_AUTO 0xF084
+#define AFX_IDS_MANUAL 0xF085
+#define AFX_IDS_FROZEN 0xF086
+#define AFX_IDS_ALL_FILES 0xF087
+#define AFX_IDS_SAVE_MENU 0xF088
+#define AFX_IDS_UPDATE_MENU 0xF089
+#define AFX_IDS_SAVE_AS_MENU 0xF08A
+#define AFX_IDS_SAVE_COPY_AS_MENU 0xF08B
+#define AFX_IDS_EXIT_MENU 0xF08C
+#define AFX_IDS_UPDATING_ITEMS 0xF08D
+#define AFX_IDS_METAFILE_FORMAT 0xF08E
+#define AFX_IDS_DIB_FORMAT 0xF08F
+#define AFX_IDS_BITMAP_FORMAT 0xF090
+#define AFX_IDS_LINKSOURCE_FORMAT 0xF091
+#define AFX_IDS_EMBED_FORMAT 0xF092
+#define AFX_IDS_PASTELINKEDTYPE 0xF094
+#define AFX_IDS_UNKNOWNTYPE 0xF095
+#define AFX_IDS_RTF_FORMAT 0xF096
+#define AFX_IDS_TEXT_FORMAT 0xF097
+#define AFX_IDS_INVALID_CURRENCY 0xF098
+#define AFX_IDS_INVALID_DATETIME 0xF099
+#define AFX_IDS_INVALID_DATETIMESPAN 0xF09A
+#define AFX_IDP_INVALID_FILENAME 0xF100
+#define AFX_IDP_FAILED_TO_OPEN_DOC 0xF101
+#define AFX_IDP_FAILED_TO_SAVE_DOC 0xF102
+#define AFX_IDP_ASK_TO_SAVE 0xF103
+#define AFX_IDP_FAILED_TO_CREATE_DOC 0xF104
+#define AFX_IDP_FILE_TOO_LARGE 0xF105
+#define AFX_IDP_FAILED_TO_START_PRINT 0xF106
+#define AFX_IDP_FAILED_TO_LAUNCH_HELP 0xF107
+#define AFX_IDP_INTERNAL_FAILURE 0xF108
+#define AFX_IDP_COMMAND_FAILURE 0xF109
+#define AFX_IDP_FAILED_MEMORY_ALLOC 0xF10A
+#define AFX_IDP_UNREG_DONE 0xF10B
+#define AFX_IDP_UNREG_FAILURE 0xF10C
+#define AFX_IDP_DLL_LOAD_FAILED 0xF10D
+#define AFX_IDP_DLL_BAD_VERSION 0xF10E
+#define AFX_IDP_PARSE_INT 0xF110
+#define AFX_IDP_PARSE_REAL 0xF111
+#define AFX_IDP_PARSE_INT_RANGE 0xF112
+#define AFX_IDP_PARSE_REAL_RANGE 0xF113
+#define AFX_IDP_PARSE_STRING_SIZE 0xF114
+#define AFX_IDP_PARSE_RADIO_BUTTON 0xF115
+#define AFX_IDP_PARSE_BYTE 0xF116
+#define AFX_IDP_PARSE_UINT 0xF117
+#define AFX_IDP_PARSE_DATETIME 0xF118
+#define AFX_IDP_PARSE_CURRENCY 0xF119
+#define AFX_IDP_PARSE_GUID 0xF11A
+#define AFX_IDP_PARSE_TIME 0xF11B
+#define AFX_IDP_PARSE_DATE 0xF11C
+#define AFX_IDP_FAILED_INVALID_FORMAT 0xF120
+#define AFX_IDP_FAILED_INVALID_PATH 0xF121
+#define AFX_IDP_FAILED_DISK_FULL 0xF122
+#define AFX_IDP_FAILED_ACCESS_READ 0xF123
+#define AFX_IDP_FAILED_ACCESS_WRITE 0xF124
+#define AFX_IDP_FAILED_IO_ERROR_READ 0xF125
+#define AFX_IDP_FAILED_IO_ERROR_WRITE 0xF126
+#define AFX_IDP_SCRIPT_ERROR 0xF130
+#define AFX_IDP_SCRIPT_DISPATCH_EXCEPTION 0xF131
+#define AFX_IDP_STATIC_OBJECT 0xF180
+#define AFX_IDP_FAILED_TO_CONNECT 0xF181
+#define AFX_IDP_SERVER_BUSY 0xF182
+#define AFX_IDP_BAD_VERB 0xF183
+#define AFX_IDS_NOT_DOCOBJECT 0xF184
+#define AFX_IDP_FAILED_TO_NOTIFY 0xF185
+#define AFX_IDP_FAILED_TO_LAUNCH 0xF186
+#define AFX_IDP_ASK_TO_UPDATE 0xF187
+#define AFX_IDP_FAILED_TO_UPDATE 0xF188
+#define AFX_IDP_FAILED_TO_REGISTER 0xF189
+#define AFX_IDP_FAILED_TO_AUTO_REGISTER 0xF18A
+#define AFX_IDP_FAILED_TO_CONVERT 0xF18B
+#define AFX_IDP_GET_NOT_SUPPORTED 0xF18C
+#define AFX_IDP_SET_NOT_SUPPORTED 0xF18D
+#define AFX_IDP_ASK_TO_DISCARD 0xF18E
+#define AFX_IDP_FAILED_TO_CREATE 0xF18F
+#define AFX_IDP_FAILED_MAPI_LOAD 0xF190
+#define AFX_IDP_INVALID_MAPI_DLL 0xF191
+#define AFX_IDP_FAILED_MAPI_SEND 0xF192
+#define AFX_IDP_FILE_NONE 0xF1A0
+#define AFX_IDP_FILE_GENERIC 0xF1A1
+#define AFX_IDP_FILE_NOT_FOUND 0xF1A2
+#define AFX_IDP_FILE_BAD_PATH 0xF1A3
+#define AFX_IDP_FILE_TOO_MANY_OPEN 0xF1A4
+#define AFX_IDP_FILE_ACCESS_DENIED 0xF1A5
+#define AFX_IDP_FILE_INVALID_FILE 0xF1A6
+#define AFX_IDP_FILE_REMOVE_CURRENT 0xF1A7
+#define AFX_IDP_FILE_DIR_FULL 0xF1A8
+#define AFX_IDP_FILE_BAD_SEEK 0xF1A9
+#define AFX_IDP_FILE_HARD_IO 0xF1AA
+#define AFX_IDP_FILE_SHARING 0xF1AB
+#define AFX_IDP_FILE_LOCKING 0xF1AC
+#define AFX_IDP_FILE_DISKFULL 0xF1AD
+#define AFX_IDP_FILE_EOF 0xF1AE
+#define AFX_IDP_ARCH_NONE 0xF1B0
+#define AFX_IDP_ARCH_GENERIC 0xF1B1
+#define AFX_IDP_ARCH_READONLY 0xF1B2
+#define AFX_IDP_ARCH_ENDOFFILE 0xF1B3
+#define AFX_IDP_ARCH_WRITEONLY 0xF1B4
+#define AFX_IDP_ARCH_BADINDEX 0xF1B5
+#define AFX_IDP_ARCH_BADCLASS 0xF1B6
+#define AFX_IDP_ARCH_BADSCHEMA 0xF1B7
+#define AFX_IDS_OCC_SCALEUNITS_PIXELS 0xF1C0
+#define AFX_IDS_STATUS_FONT 0xF230
+#define AFX_IDS_TOOLTIP_FONT 0xF231
+#define AFX_IDS_UNICODE_FONT 0xF232
+#define AFX_IDS_MINI_FONT 0xF233
+#define AFX_IDP_SQL_CONNECT_FAIL 0xF281
+#define AFX_IDP_SQL_RECORDSET_FORWARD_ONLY 0xF282
+#define AFX_IDP_SQL_EMPTY_COLUMN_LIST 0xF283
+#define AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH 0xF284
+#define AFX_IDP_SQL_ILLEGAL_MODE 0xF285
+#define AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED 0xF286
+#define AFX_IDP_SQL_NO_CURRENT_RECORD 0xF287
+#define AFX_IDP_SQL_NO_ROWS_AFFECTED 0xF288
+#define AFX_IDP_SQL_RECORDSET_READONLY 0xF289
+#define AFX_IDP_SQL_SQL_NO_TOTAL 0xF28A
+#define AFX_IDP_SQL_ODBC_LOAD_FAILED 0xF28B
+#define AFX_IDP_SQL_DYNASET_NOT_SUPPORTED 0xF28C
+#define AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED 0xF28D
+#define AFX_IDP_SQL_API_CONFORMANCE 0xF28E
+#define AFX_IDP_SQL_SQL_CONFORMANCE 0xF28F
+#define AFX_IDP_SQL_NO_DATA_FOUND 0xF290
+#define AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED 0xF291
+#define AFX_IDP_SQL_ODBC_V2_REQUIRED 0xF292
+#define AFX_IDP_SQL_NO_POSITIONED_UPDATES 0xF293
+#define AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED 0xF294
+#define AFX_IDP_SQL_DATA_TRUNCATED 0xF295
+#define AFX_IDP_SQL_ROW_FETCH 0xF296
+#define AFX_IDP_SQL_INCORRECT_ODBC 0xF297
+#define AFX_IDP_SQL_UPDATE_DELETE_FAILED 0xF298
+#define AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED 0xF299
+#define AFX_IDP_SQL_FIELD_NOT_FOUND 0xF29A
+#define AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED 0xF29B
+#define AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED 0xF29C
+#define AFX_IDS_DELETED 0xF29D
+#define AFX_IDP_DAO_ENGINE_INITIALIZATION 0xF2B0
+#define AFX_IDP_DAO_DFX_BIND 0xF2B1
+#define AFX_IDP_DAO_OBJECT_NOT_OPEN 0xF2B2
+#define AFX_IDP_DAO_ROWTOOSHORT 0xF2B3
+#define AFX_IDP_DAO_BADBINDINFO 0xF2B4
+#define AFX_IDP_DAO_COLUMNUNAVAILABLE 0xF2B5
+#define AFX_IDS_HTTP_TITLE 0xF2D1
+#define AFX_IDS_HTTP_NO_TEXT 0xF2D2
+#define AFX_IDS_HTTP_BAD_REQUEST 0xF2D3
+#define AFX_IDS_HTTP_AUTH_REQUIRED 0xF2D4
+#define AFX_IDS_HTTP_FORBIDDEN 0xF2D5
+#define AFX_IDS_HTTP_NOT_FOUND 0xF2D6
+#define AFX_IDS_HTTP_SERVER_ERROR 0xF2D7
+#define AFX_IDS_HTTP_NOT_IMPLEMENTED 0xF2D8
+#define AFX_IDS_CHECKLISTBOX_UNCHECK 0xF2E1
+#define AFX_IDS_CHECKLISTBOX_CHECK 0xF2E2
+#define AFX_IDS_CHECKLISTBOX_MIXED 0xF2E3
+#define AFX_IDS_PROPPAGE_UNKNOWN 0xFE01
+#define AFX_IDS_COLOR_DESKTOP 0xFE04
+#define AFX_IDS_COLOR_APPWORKSPACE 0xFE05
+#define AFX_IDS_COLOR_WNDBACKGND 0xFE06
+#define AFX_IDS_COLOR_WNDTEXT 0xFE07
+#define AFX_IDS_COLOR_MENUBAR 0xFE08
+#define AFX_IDS_COLOR_MENUTEXT 0xFE09
+#define AFX_IDS_COLOR_ACTIVEBAR 0xFE0A
+#define AFX_IDS_COLOR_INACTIVEBAR 0xFE0B
+#define AFX_IDS_COLOR_ACTIVETEXT 0xFE0C
+#define AFX_IDS_COLOR_INACTIVETEXT 0xFE0D
+#define AFX_IDS_COLOR_ACTIVEBORDER 0xFE0E
+#define AFX_IDS_COLOR_INACTIVEBORDER 0xFE0F
+#define AFX_IDS_COLOR_WNDFRAME 0xFE10
+#define AFX_IDS_COLOR_SCROLLBARS 0xFE11
+#define AFX_IDS_COLOR_BTNFACE 0xFE12
+#define AFX_IDS_COLOR_BTNSHADOW 0xFE13
+#define AFX_IDS_COLOR_BTNTEXT 0xFE14
+#define AFX_IDS_COLOR_BTNHIGHLIGHT 0xFE15
+#define AFX_IDS_COLOR_DISABLEDTEXT 0xFE16
+#define AFX_IDS_COLOR_HIGHLIGHT 0xFE17
+#define AFX_IDS_COLOR_HIGHLIGHTTEXT 0xFE18
+#define AFX_IDS_REGULAR 0xFE19
+#define AFX_IDS_BOLD 0xFE1A
+#define AFX_IDS_ITALIC 0xFE1B
+#define AFX_IDS_BOLDITALIC 0xFE1C
+#define AFX_IDS_SAMPLETEXT 0xFE1D
+#define AFX_IDS_DISPLAYSTRING_FONT 0xFE1E
+#define AFX_IDS_DISPLAYSTRING_COLOR 0xFE1F
+#define AFX_IDS_DISPLAYSTRING_PICTURE 0xFE20
+#define AFX_IDS_PICTUREFILTER 0xFE21
+#define AFX_IDS_PICTYPE_UNKNOWN 0xFE22
+#define AFX_IDS_PICTYPE_NONE 0xFE23
+#define AFX_IDS_PICTYPE_BITMAP 0xFE24
+#define AFX_IDS_PICTYPE_METAFILE 0xFE25
+#define AFX_IDS_PICTYPE_ICON 0xFE26
+#define AFX_IDS_COLOR_PPG 0xFE28
+#define AFX_IDS_COLOR_PPG_CAPTION 0xFE29
+#define AFX_IDS_FONT_PPG 0xFE2A
+#define AFX_IDS_FONT_PPG_CAPTION 0xFE2B
+#define AFX_IDS_PICTURE_PPG 0xFE2C
+#define AFX_IDS_PICTURE_PPG_CAPTION 0xFE2D
+#define AFX_IDS_PICTUREBROWSETITLE 0xFE30
+#define AFX_IDS_BORDERSTYLE_0 0xFE31
+#define AFX_IDS_BORDERSTYLE_1 0xFE32
+#define AFX_IDS_VERB_EDIT 0xFE40
+#define AFX_IDS_VERB_PROPERTIES 0xFE41
+#define AFX_IDP_PICTURECANTOPEN 0xFE83
+#define AFX_IDP_PICTURECANTLOAD 0xFE84
+#define AFX_IDP_PICTURETOOLARGE 0xFE85
+#define AFX_IDP_PICTUREREADFAILED 0xFE86
+#define AFX_IDP_E_ILLEGALFUNCTIONCALL 0xFEA0
+#define AFX_IDP_E_OVERFLOW 0xFEA1
+#define AFX_IDP_E_OUTOFMEMORY 0xFEA2
+#define AFX_IDP_E_DIVISIONBYZERO 0xFEA3
+#define AFX_IDP_E_OUTOFSTRINGSPACE 0xFEA4
+#define AFX_IDP_E_OUTOFSTACKSPACE 0xFEA5
+#define AFX_IDP_E_BADFILENAMEORNUMBER 0xFEA6
+#define AFX_IDP_E_FILENOTFOUND 0xFEA7
+#define AFX_IDP_E_BADFILEMODE 0xFEA8
+#define AFX_IDP_E_FILEALREADYOPEN 0xFEA9
+#define AFX_IDP_E_DEVICEIOERROR 0xFEAA
+#define AFX_IDP_E_FILEALREADYEXISTS 0xFEAB
+#define AFX_IDP_E_BADRECORDLENGTH 0xFEAC
+#define AFX_IDP_E_DISKFULL 0xFEAD
+#define AFX_IDP_E_BADRECORDNUMBER 0xFEAE
+#define AFX_IDP_E_BADFILENAME 0xFEAF
+#define AFX_IDP_E_TOOMANYFILES 0xFEB0
+#define AFX_IDP_E_DEVICEUNAVAILABLE 0xFEB1
+#define AFX_IDP_E_PERMISSIONDENIED 0xFEB2
+#define AFX_IDP_E_DISKNOTREADY 0xFEB3
+#define AFX_IDP_E_PATHFILEACCESSERROR 0xFEB4
+#define AFX_IDP_E_PATHNOTFOUND 0xFEB5
+#define AFX_IDP_E_INVALIDPATTERNSTRING 0xFEB6
+#define AFX_IDP_E_INVALIDUSEOFNULL 0xFEB7
+#define AFX_IDP_E_INVALIDFILEFORMAT 0xFEB8
+#define AFX_IDP_E_INVALIDPROPERTYVALUE 0xFEB9
+#define AFX_IDP_E_INVALIDPROPERTYARRAYINDEX 0xFEBA
+#define AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME 0xFEBB
+#define AFX_IDP_E_SETNOTSUPPORTED 0xFEBC
+#define AFX_IDP_E_NEEDPROPERTYARRAYINDEX 0xFEBD
+#define AFX_IDP_E_SETNOTPERMITTED 0xFEBE
+#define AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME 0xFEBF
+#define AFX_IDP_E_GETNOTSUPPORTED 0xFEC0
+#define AFX_IDP_E_PROPERTYNOTFOUND 0xFEC1
+#define AFX_IDP_E_INVALIDCLIPBOARDFORMAT 0xFEC2
+#define AFX_IDP_E_INVALIDPICTURE 0xFEC3
+#define AFX_IDP_E_PRINTERERROR 0xFEC4
+#define AFX_IDP_E_CANTSAVEFILETOTEMP 0xFEC5
+#define AFX_IDP_E_SEARCHTEXTNOTFOUND 0xFEC6
+#define AFX_IDP_E_REPLACEMENTSTOOLONG 0xFEC7
+#define SPVERSION_MASK 0x0000FF00
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
-
-#define _APS_NEXT_RESOURCE_VALUE 129
+#define _APS_NEXT_RESOURCE_VALUE 130
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
diff --git a/ACE/tests/ACE_Init_Test_StdAfx.h b/ACE/tests/ACE_Init_Test_StdAfx.h
index 9aa682148ef..8c121c562dc 100644
--- a/ACE/tests/ACE_Init_Test_StdAfx.h
+++ b/ACE/tests/ACE_Init_Test_StdAfx.h
@@ -1,23 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// ACE_Init_Test_StdAfx.h
-//
-// = DESCRIPTION
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-// = AUTHOR
-// Steve Huston <shuston@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file ACE_Init_Test_StdAfx.h
+ *
+ * $Id$
+ *
+ * stdafx.h : include file for standard system include files,
+ * or project specific include files that are used frequently, but
+ * are changed infrequently
+ *
+ *
+ * @author Steve Huston <shuston@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef AFX_STDAFX_H__64FDCA02_F7F9_11D2_89B6_00A024CC68DB__INCLUDED_
#define AFX_STDAFX_H__64FDCA02_F7F9_11D2_89B6_00A024CC68DB__INCLUDED_
diff --git a/ACE/tests/ACE_Test.cpp b/ACE/tests/ACE_Test.cpp
index ab112053723..2acf685c0d4 100644
--- a/ACE/tests/ACE_Test.cpp
+++ b/ACE/tests/ACE_Test.cpp
@@ -17,8 +17,7 @@
#include "test_config.h"
#include "ace/ACE.h"
-
-ACE_RCSID(tests, ACE_Test, "$Id$")
+#include "ace/OS_NS_stdlib.h"
int
log2_test (void)
diff --git a/ACE/tests/ARGV_Test.cpp b/ACE/tests/ARGV_Test.cpp
index eabb48960df..561a94006f8 100644
--- a/ACE/tests/ARGV_Test.cpp
+++ b/ACE/tests/ARGV_Test.cpp
@@ -21,7 +21,7 @@
#include "ace/Argv_Type_Converter.h"
#include "test_config.h"
-ACE_RCSID (tests, ARGV_Test, "$Id$")
+
static void
consume_arg (int argc, ACE_TCHAR *argv[])
diff --git a/ACE/tests/Aio_Platform_Test.cpp b/ACE/tests/Aio_Platform_Test.cpp
index 22c13223e06..969c3aa6de5 100644
--- a/ACE/tests/Aio_Platform_Test.cpp
+++ b/ACE/tests/Aio_Platform_Test.cpp
@@ -1,28 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = FILENAME
-// aio_platform_test.cpp
-//
-// = DESCRITPTION
-// Testing the platform for POSIX Asynchronous I/O. Basically
-// prints the predefined constants and also checks for their run
-// time values. If this test succeeds further tests at
-// $ACE_ROOT/examples/Reactor/Proactor can be used to test the
-// features further.
-//
-// = AUTHOR
-// Programming for the Real World. Bill O. GallMeister. Modified
-// by Alexander Babu Arulanthu <alex@cs.wustl.edu>
-//
-// =====================================================================
+
+//=============================================================================
+/**
+ * @file Aio_Platform_Test.cpp
+ *
+ * Testing the platform for POSIX Asynchronous I/O. Basically
+ * prints the predefined constants and also checks for their run
+ * time values. If this test succeeds further tests at
+ * $ACE_ROOT/examples/Reactor/Proactor can be used to test the
+ * features further.
+ *
+ * $Id$
+ *
+ * @author Programming for the Real World. Bill O. GallMeister. Modified by Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Aio_Platform_Test, "$Id$")
-
#if defined (_POSIX_ASYNCHRONOUS_IO)
static int do_sysconf (void)
{
diff --git a/ACE/tests/Arg_Shifter_Test.cpp b/ACE/tests/Arg_Shifter_Test.cpp
index d1424337fa6..243d3ac0d3d 100644
--- a/ACE/tests/Arg_Shifter_Test.cpp
+++ b/ACE/tests/Arg_Shifter_Test.cpp
@@ -16,7 +16,7 @@
#include "ace/Arg_Shifter.h"
#include "test_config.h"
-ACE_RCSID(tests, Arg_Shifter_Test, "$Id$")
+
int
run_main (int, ACE_TCHAR *[])
diff --git a/ACE/tests/Array_Map_Test.cpp b/ACE/tests/Array_Map_Test.cpp
index 9f5deeee3bd..42a1b5619ac 100644
--- a/ACE/tests/Array_Map_Test.cpp
+++ b/ACE/tests/Array_Map_Test.cpp
@@ -19,12 +19,6 @@
#include <algorithm>
//#include <map> /* For STL portability testing. */
-
-ACE_RCSID (tests,
- Array_Map_Test,
- "$Id$")
-
-
static char const letters[] =
{ 'A', 'C', 'E', ' ', 'r', 'u', 'l', 'e', 'z', '!' };
@@ -54,7 +48,7 @@ insertion_removal_test (void)
typedef ACE_Array_Map<char, ACE_TString> Map;
Map phonetic[2];
- ACE_ASSERT (phonetic[0] == phonetic[1]); // Sanity check.
+ ACE_TEST_ASSERT (phonetic[0] == phonetic[1]); // Sanity check.
static size_t const phonetic_len =
sizeof (phonetic) / sizeof (phonetic[0]);
@@ -92,7 +86,7 @@ insertion_removal_test (void)
false);
}
- ACE_ASSERT (m->size () == letters_len);
+ ACE_TEST_ASSERT (m->size () == letters_len);
}
// Test equality of identically populated maps.
@@ -111,7 +105,7 @@ insertion_removal_test (void)
false);
}
- ACE_ASSERT (!phonetic[0].is_empty ()); // Sanity check.
+ ACE_TEST_ASSERT (!phonetic[0].is_empty ()); // Sanity check.
Map foo (phonetic[0]); // Copy construction
Map bar = foo; // Assignment
@@ -162,8 +156,8 @@ insertion_removal_test (void)
// Remove two elements from map.
Map::iterator letter_A = A.find ('A');
- ACE_ASSERT (letter_A == A.begin ()); // Should be first map element.
- ACE_ASSERT (A.count ('A') == 1); // Should only be one letter 'A'.
+ ACE_TEST_ASSERT (letter_A == A.begin ()); // Should be first map element.
+ ACE_TEST_ASSERT (A.count ('A') == 1); // Should only be one letter 'A'.
A.erase (letter_A);
if (A.find ('A') != A.end ()
@@ -192,8 +186,8 @@ insertion_removal_test (void)
Map::iterator const first = B.begin () + 2;
Map::iterator const last = first + removed_len;
- ACE_ASSERT (static_cast<Map::size_type> (last - first) < B.size ());
- ACE_ASSERT (last < B.end ());
+ ACE_TEST_ASSERT (static_cast<Map::size_type> (last - first) < B.size ());
+ ACE_TEST_ASSERT (last < B.end ());
Map::value_type removed[removed_len];
size_t rcount = 0;
@@ -234,8 +228,8 @@ index_operator_test (void)
typedef ACE_Array_Map<char, ACE_TString> Map;
Map phonetic;
- ACE_ASSERT (phonetic.size () == 0 && phonetic.is_empty ());
- ACE_ASSERT (phonetic.max_size () > 1);
+ ACE_TEST_ASSERT (phonetic.size () == 0 && phonetic.is_empty ());
+ ACE_TEST_ASSERT (phonetic.max_size () > 1);
// Run the same test twice, clearing the contents of the map between
// the iterations. The goal is to verify that the constant time
@@ -256,7 +250,7 @@ index_operator_test (void)
phonetic[*i] = *word;
}
- ACE_ASSERT (phonetic.size () == letters_len);
+ ACE_TEST_ASSERT (phonetic.size () == letters_len);
typedef Map::const_iterator const_iterator;
@@ -325,12 +319,12 @@ index_operator_test (void)
}
// The size should not have changed.
- ACE_ASSERT (phonetic.size () == letters_len);
+ ACE_TEST_ASSERT (phonetic.size () == letters_len);
// Empty the map of its contents wholesale.
phonetic.clear ();
- ACE_ASSERT (phonetic.size () == 0 && phonetic.is_empty ());
+ ACE_TEST_ASSERT (phonetic.size () == 0 && phonetic.is_empty ());
}
ACE_DEBUG ((LM_DEBUG,
@@ -408,7 +402,7 @@ reference_count_test (void)
RefCounted counted (&ref_count);
- ACE_ASSERT (counted.refcount () == 1);
+ ACE_TEST_ASSERT (counted.refcount () == 1);
{
Map map (CAPACITY); // Preallocate storage for a number of
@@ -417,7 +411,7 @@ reference_count_test (void)
map[ACE_TEXT("One")] = counted;
- ACE_ASSERT (counted.refcount () == 2);
+ ACE_TEST_ASSERT (counted.refcount () == 2);
std::pair<Map::iterator, bool> result;
@@ -429,10 +423,10 @@ reference_count_test (void)
result = map.insert (std::make_pair (ACE_TString (ACE_TEXT ("Two")),
counted));
- ACE_ASSERT (result.second);
+ ACE_TEST_ASSERT (result.second);
}
- ACE_ASSERT (counted.refcount () == 3);
+ ACE_TEST_ASSERT (counted.refcount () == 3);
{
// Enter a new scope block to assure destruction of temporaries
@@ -441,22 +435,22 @@ reference_count_test (void)
result = map.insert (std::make_pair (ACE_TString (ACE_TEXT ("Three")),
counted));
- ACE_ASSERT (result.second);
+ ACE_TEST_ASSERT (result.second);
}
- ACE_ASSERT (counted.refcount () == 4);
+ ACE_TEST_ASSERT (counted.refcount () == 4);
Map::size_type const erased = map.erase (ACE_TEXT ("One"));
- ACE_ASSERT (erased == 1);
- ACE_ASSERT (counted.refcount () == 3);
+ ACE_TEST_ASSERT (erased == 1);
+ ACE_TEST_ASSERT (counted.refcount () == 3);
}
// Map instance no longer contains any references to the "counted"
// object so the reference count should be back to one.
- ACE_ASSERT (counted.refcount () == 1);
+ ACE_TEST_ASSERT (counted.refcount () == 1);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Reference count test passed.\n")));
@@ -471,7 +465,7 @@ run_main (int, ACE_TCHAR *[])
{
ACE_START_TEST (ACE_TEXT ("Array_Map_Test"));
- ACE_ASSERT (::letters_len == ::words_len);
+ ACE_TEST_ASSERT (::letters_len == ::words_len);
bool const success =
::insertion_removal_test ()
diff --git a/ACE/tests/Atomic_Op_Test.cpp b/ACE/tests/Atomic_Op_Test.cpp
index d807b287684..98a30d27cce 100644
--- a/ACE/tests/Atomic_Op_Test.cpp
+++ b/ACE/tests/Atomic_Op_Test.cpp
@@ -1,385 +1,273 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Atomic_Op_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the Atomic Operations Class in ACE.
-// On platforms like Win32, ACE uses template specialization to
-// use native implementations provided by the OS to accelarate
-// these operations.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
-
-ACE_RCSID(tests, Atomic_Op_Test, "$Id$")
+
+//=============================================================================
+/**
+ * @file Atomic_Op_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the Atomic Operations Class in ACE.
+ * On platforms like Win32, ACE uses template specialization to
+ * use native implementations provided by the OS to accelarate
+ * these operations.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
+
+
#include "ace/Atomic_Op.h"
#include "ace/Synch_Traits.h"
+#include "ace/Time_Value.h"
+#include "ace/OS_NS_sys_time.h"
-enum { TEST_ITERATIONS = 1000000 };
-
-int
-run_main (int, ACE_TCHAR *[])
+template <typename TYPE, typename dummy>
+int test (const ACE_TCHAR* type, int iterations)
{
- ACE_START_TEST (ACE_TEXT ("Atomic_Op_Test"));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Measuring %d iterations for %s\n"), iterations, type));
- ACE_Atomic_Op <ACE_SYNCH_MUTEX, long> foo (5);
+ int retval = 0;
+ ACE_Atomic_Op <ACE_SYNCH_MUTEX, TYPE> foo (5);
- ACE_ASSERT (foo == 5);
+ ACE_TEST_ASSERT (foo == 5);
- long result = ++foo;
- ACE_ASSERT (foo == 6);
- ACE_ASSERT (result == 6);
+ TYPE result = ++foo;
+ ACE_TEST_ASSERT (foo == 6);
+ ACE_TEST_ASSERT (result == 6);
result = --foo;
- ACE_ASSERT (foo == 5);
- ACE_ASSERT (result == 5);
+ ACE_TEST_ASSERT (foo == 5);
+ ACE_TEST_ASSERT (result == 5);
result = foo++;
- ACE_ASSERT (foo == 6);
- ACE_ASSERT (result == 5);
+ ACE_TEST_ASSERT (foo == 6);
+ ACE_TEST_ASSERT (result == 5);
result = foo--;
- ACE_ASSERT (foo == 5);
- ACE_ASSERT (result == 6);
+ ACE_TEST_ASSERT (foo == 5);
+ ACE_TEST_ASSERT (result == 6);
result = foo += 10;
- ACE_ASSERT (foo == 15);
- ACE_ASSERT (result == 15);
+ ACE_TEST_ASSERT (foo == 15);
+ ACE_TEST_ASSERT (result == 15);
result = foo -= 10;
- ACE_ASSERT (foo == 5);
- ACE_ASSERT (result == 5);
+ ACE_TEST_ASSERT (foo == 5);
+ ACE_TEST_ASSERT (result == 5);
foo = 7;
- ACE_ASSERT (foo == 7);
+ ACE_TEST_ASSERT (foo == 7);
- ACE_Atomic_Op <ACE_SYNCH_MUTEX, long> foo2 (5);
+ ACE_Atomic_Op <ACE_SYNCH_MUTEX, TYPE> foo2 (5);
foo2 = foo;
- ACE_ASSERT (foo == 7);
- ACE_ASSERT (foo2 == 7);
+ ACE_TEST_ASSERT (foo == 7);
+ ACE_TEST_ASSERT (foo2 == 7);
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <long> assignment %D\n")));
+ ACE_UINT64 usec;
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> assignment %D\n"), type));
+ ACE_Time_Value diff = ACE_OS::gettimeofday ();
int i;
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ for (i = 0; i < iterations; ++i)
{
foo = 1;
foo = 2;
foo = 3;
foo = 4;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <long> assignment %D\n")));
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> assignment %D, took %Q\n"), type, usec));
+
+ foo = 0;
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <long> increment %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> prefix increment %D\n"), type));
+ diff = ACE_OS::gettimeofday ();
+ for (i = 0; i < iterations; ++i)
{
++foo;
++foo;
++foo;
++foo;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <long> increment %D\n")));
-
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <long> decrement %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
- {
- --foo;
- --foo;
- --foo;
- --foo;
- }
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <long> decrement %D\n")));
-
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <long> addition %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
- {
- foo += 5;
- foo += 5;
- foo += 5;
- foo += 5;
- }
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <long> addition %D\n")));
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> prefix increment %D, took %Q\n"), type, usec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <long> subtraction %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ if (foo != iterations * 4)
{
- foo -= 5;
- foo -= 5;
- foo -= 5;
- foo -= 5;
+ ++retval;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Error: Prefix increment failed\n")));
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <long> subtraction %D\n")));
-
- ACE_Atomic_Op <ACE_SYNCH_MUTEX, unsigned long> foo_unsigned (5);
-
- ACE_ASSERT (foo_unsigned == 5);
-
- unsigned long ul_result = ++foo_unsigned;
- ACE_ASSERT (foo_unsigned == 6);
- ACE_ASSERT (ul_result == 6);
- ul_result = --foo_unsigned;
- ACE_ASSERT (foo_unsigned == 5);
- ACE_ASSERT (ul_result == 5);
-
- ul_result = foo_unsigned++;
- ACE_ASSERT (foo_unsigned == 6);
- ACE_ASSERT (ul_result == 5);
-
- ul_result = foo_unsigned--;
- ACE_ASSERT (foo_unsigned == 5);
- ACE_ASSERT (ul_result == 6);
-
- ul_result = foo_unsigned += 10;
- ACE_ASSERT (foo_unsigned == 15);
- ACE_ASSERT (ul_result == 15);
-
- ul_result = foo_unsigned -= 10;
- ACE_ASSERT (foo_unsigned == 5);
- ACE_ASSERT (ul_result == 5);
-
- foo_unsigned = 7;
- ACE_ASSERT (foo_unsigned == 7);
-
- ACE_Atomic_Op <ACE_SYNCH_MUTEX, unsigned long> foo_unsigned2 (5);
- foo_unsigned2 = foo_unsigned;
- ACE_ASSERT (foo_unsigned == 7);
- ACE_ASSERT (foo_unsigned2 == 7);
-
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned long> assignment %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> prefix decrement %D\n"), type));
+ diff = ACE_OS::gettimeofday ();
+ for (i = 0; i < iterations; ++i)
{
- foo_unsigned = 1;
- foo_unsigned = 2;
- foo_unsigned = 3;
- foo_unsigned = 4;
+ foo--;
+ foo--;
+ foo--;
+ foo--;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned long> assignment %D\n")));
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> prefix decrement %D, took %Q\n"), type, usec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned long> increment %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ if (foo != 0)
{
- ++foo_unsigned;
- ++foo_unsigned;
- ++foo_unsigned;
- ++foo_unsigned;
+ ++retval;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Error: Prefix decrement failed\n")));
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned long> increment %D\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned long> decrement %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> postfix increment %D\n"), type));
+ diff = ACE_OS::gettimeofday ();
+ for (i = 0; i < iterations; ++i)
{
- --foo_unsigned;
- --foo_unsigned;
- --foo_unsigned;
- --foo_unsigned;
+ foo++;
+ foo++;
+ foo++;
+ foo++;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned long> decrement %D\n")));
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> postfix increment %D, took %Q\n"), type, usec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned long> addition %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ if (foo != iterations * 4)
{
- foo_unsigned += 5;
- foo_unsigned += 5;
- foo_unsigned += 5;
- foo_unsigned += 5;
+ ++retval;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Error: Postfix increment failed\n")));
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned long> addition %D\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned long> subtraction %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> postfix decrement %D\n"), type));
+ diff = ACE_OS::gettimeofday ();
+ for (i = 0; i < iterations; ++i)
{
- foo_unsigned -= 5;
- foo_unsigned -= 5;
- foo_unsigned -= 5;
- foo_unsigned -= 5;
+ --foo;
+ --foo;
+ --foo;
+ --foo;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned long> subtraction %D\n")));
-
- ACE_Atomic_Op <ACE_SYNCH_MUTEX, int> bar (5);
-
- ACE_ASSERT (bar == 5);
-
- result = ++bar;
- ACE_ASSERT (bar == 6);
- ACE_ASSERT (result == 6);
-
- result = --bar;
- ACE_ASSERT (bar == 5);
- ACE_ASSERT (result == 5);
-
- result = bar++;
- ACE_ASSERT (bar == 6);
- ACE_ASSERT (result == 5);
-
- result = bar--;
- ACE_ASSERT (bar == 5);
- ACE_ASSERT (result == 6);
-
- result = bar += 10;
- ACE_ASSERT (bar == 15);
- ACE_ASSERT (result == 15);
-
- result = bar -= 10;
- ACE_ASSERT (bar == 5);
- ACE_ASSERT (result == 5);
-
- bar = 7L;
- ACE_ASSERT (bar == 7);
-
- ACE_Atomic_Op <ACE_SYNCH_MUTEX, int> bar2 (5L);
- bar2 = bar;
- ACE_ASSERT (bar == 7);
- ACE_ASSERT (bar2 == 7);
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> postfix decrement %D, took %Q\n"), type, usec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <int> assignment %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ if (foo != 0)
{
- bar = 1;
- bar = 2;
- bar = 3;
- bar = 4;
+ ++retval;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Error: Postfix decrement failed\n")));
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <int> assignment %D\n")));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <int> increment %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> addition %D\n"), type));
+ diff = ACE_OS::gettimeofday ();
+ for (i = 0; i < iterations; ++i)
{
- ++bar;
- ++bar;
- ++bar;
- ++bar;
+ foo += 5;
+ foo += 5;
+ foo += 5;
+ foo += 5;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <int> increment %D\n")));
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> addition %D, took %Q\n"), type, usec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <int> decrement %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ if (foo != iterations * 4 * 5)
{
- --bar;
- --bar;
- --bar;
- --bar;
- }
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <int> decrement %D\n")));
+ ++retval;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Error: Addition failed\n")));
+ }
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <int> addition %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> subtraction %D\n"), type));
+ diff = ACE_OS::gettimeofday ();
+ for (i = 0; i < iterations; ++i)
{
- bar += 5;
- bar += 5;
- bar += 5;
- bar += 5;
+ foo -= 5;
+ foo -= 5;
+ foo -= 5;
+ foo -= 5;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <int> addition %D\n")));
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> subtraction %D, took %Q\n"), type, usec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <int> subtraction %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ if (foo != 0)
{
- bar -= 5;
- bar -= 5;
- bar -= 5;
- bar -= 5;
+ ++retval;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Error: Subtraction failed\n")));
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <int> subtraction %D\n")));
-
- ACE_Atomic_Op <ACE_SYNCH_MUTEX, unsigned int> unsigned_bar (5);
- ACE_ASSERT (unsigned_bar == 5);
-
- unsigned int ui_result = ++unsigned_bar;
- ACE_ASSERT (unsigned_bar == 6);
- ACE_ASSERT (ui_result == 6);
-
- ui_result = --unsigned_bar;
- ACE_ASSERT (unsigned_bar == 5);
- ACE_ASSERT (ui_result == 5);
-
- ui_result = unsigned_bar++;
- ACE_ASSERT (unsigned_bar == 6);
- ACE_ASSERT (ui_result == 5);
-
- ui_result = unsigned_bar--;
- ACE_ASSERT (unsigned_bar == 5);
- ACE_ASSERT (ui_result == 6);
-
- ui_result = unsigned_bar += 10;
- ACE_ASSERT (unsigned_bar == 15);
- ACE_ASSERT (ui_result == 15);
-
- ui_result = unsigned_bar -= 10;
- ACE_ASSERT (unsigned_bar == 5);
- ACE_ASSERT (ui_result == 5);
-
- unsigned_bar = 7L;
- ACE_ASSERT (unsigned_bar == 7);
+ return retval;
+}
- ACE_Atomic_Op <ACE_SYNCH_MUTEX, unsigned int> unsigned_bar2 (5L);
- unsigned_bar2 = unsigned_bar;
- ACE_ASSERT (unsigned_bar == 7);
- ACE_ASSERT (unsigned_bar2 == 7);
+template <typename TYPE>
+int test (const ACE_TCHAR* type, int iterations)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Measuring %d iterations for %s\n"), iterations, type));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned int> assignment %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
- {
- unsigned_bar = 1;
- unsigned_bar = 2;
- unsigned_bar = 3;
- unsigned_bar = 4;
- }
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned int> assignment %D\n")));
+ ACE_UINT64 usec;
+ int retval = 0;
+ ACE_Atomic_Op <ACE_SYNCH_MUTEX, TYPE> foo (true);
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned int> increment %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> assignment %D\n"), type));
+ ACE_Time_Value diff = ACE_OS::gettimeofday ();
+ int i;
+ for (i = 0; i < iterations; ++i)
{
- ++unsigned_bar;
- ++unsigned_bar;
- ++unsigned_bar;
- ++unsigned_bar;
+ foo = true;
+ foo = true;
+ foo = true;
+ foo = true;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned int> increment %D\n")));
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> assignment %D, took %Q\n"), type, usec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned int> decrement %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <%s> comparison %D\n"), type));
+ diff = ACE_OS::gettimeofday ();
+ for (i = 0; i < iterations; ++i)
{
- --unsigned_bar;
- --unsigned_bar;
- --unsigned_bar;
- --unsigned_bar;
+ if (foo != true) ++retval;
+ if (foo == false) ++retval;
+ if (foo != true) ++retval;
+ if (foo == false) ++retval;
}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned int> decrement %D\n")));
+ diff = ACE_OS::gettimeofday () - diff;
+ diff.to_usec (usec);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <%s> comparison %D, took %Q\n"), type, usec));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned int> addition %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
- {
- unsigned_bar += 5;
- unsigned_bar += 5;
- unsigned_bar += 5;
- unsigned_bar += 5;
- }
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned int> addition %D\n")));
+ return retval;
+}
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting <unsigned int> subtraction %D\n")));
- for (i = 0; i < TEST_ITERATIONS; ++i)
- {
- unsigned_bar -= 5;
- unsigned_bar -= 5;
- unsigned_bar -= 5;
- unsigned_bar -= 5;
- }
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ending <unsigned int> subtraction %D\n")));
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Atomic_Op_Test"));
+ // Some platforms w/o builtin atomic ops time out the regression tests,
+ // so run fewer iterations there.
+#if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
+ const int ITERATIONS = 1000000;
+#else
+ const int ITERATIONS = 100000;
+#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
+
+ int retval = 0;
+
+ retval += test <int, int> (ACE_TEXT("int"), ITERATIONS);
+ retval += test <long, int> (ACE_TEXT("long"), ITERATIONS);
+ retval += test <unsigned int, int> (ACE_TEXT("unsigned int"), ITERATIONS);
+ retval += test <unsigned long, int> (ACE_TEXT("unsigned long"), ITERATIONS);
+ retval += test <short, int> (ACE_TEXT("short"), ITERATIONS);
+ retval += test <unsigned short, int> (ACE_TEXT("unsigned short"), ITERATIONS);
+ retval += test <bool> (ACE_TEXT("bool"), ITERATIONS);
+#if !defined (ACE_LACKS_LONGLONG_T)
+ retval += test <long long, int> (ACE_TEXT("long long"), ITERATIONS);
+#endif
ACE_END_TEST;
- return 0;
+ return retval;
}
diff --git a/ACE/tests/Auto_Event_Test.cpp b/ACE/tests/Auto_Event_Test.cpp
index bc1f895746a..beeae1d7b4c 100644
--- a/ACE/tests/Auto_Event_Test.cpp
+++ b/ACE/tests/Auto_Event_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Auto_Event Test
-//
-// = DESCRIPTION
-// This test verifies the functionality of the <ACE_Auto_Event>
-// implementation.
-//
-// = AUTHOR
-// Martin Corino <mcorino@remedy.nl>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Auto_Event_Test.cpp
+ *
+ * $Id$
+ *
+ * This test verifies the functionality of the <ACE_Auto_Event>
+ * implementation.
+ *
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Auto_Event.h"
@@ -26,7 +23,7 @@
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Auto_Event_Test, "$Id$")
+
// msec that times are allowed to differ before test fails.
#if defined (ACE_HAS_HI_RES_TIMER) || defined (ACE_HAS_AIX_HI_RES_TIMER) || \
diff --git a/ACE/tests/Auto_IncDec_Test.cpp b/ACE/tests/Auto_IncDec_Test.cpp
index 3308a35445b..2ead05cd008 100644
--- a/ACE/tests/Auto_IncDec_Test.cpp
+++ b/ACE/tests/Auto_IncDec_Test.cpp
@@ -1,29 +1,26 @@
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Auto_IncDec_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the Auto Increment/Decrement Class in
-// ACE.
-//
-// = AUTHOR
-// Edan Ayal <EdanA@cti2.com>
-//
-//============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file Auto_IncDec_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the Auto Increment/Decrement Class in
+ * ACE.
+ *
+ *
+ * @author Edan Ayal <EdanA@cti2.com>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
#include "ace/Auto_IncDec_T.h"
#include "ace/Thread_Manager.h"
#include "ace/Atomic_Op.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Auto_IncDec_Test, "Auto_IncDec_Test.cpp, by Edan Ayal")
+
#if defined (ACE_HAS_THREADS)
@@ -109,7 +106,7 @@ run_main (int, ACE_TCHAR *[])
ACE_Thread_Manager::instance ()->wait ();
- ACE_ASSERT (current_threads_in_first_section.value () == 0
+ ACE_TEST_ASSERT (current_threads_in_first_section.value () == 0
&& current_threads_in_second_section.value () == 0);
ACE_DEBUG ((LM_DEBUG,
@@ -118,21 +115,21 @@ run_main (int, ACE_TCHAR *[])
int counter = 0;
{
ACE_Auto_IncDec<int> Auto_IncDec1 (counter);
- ACE_ASSERT (counter == 1);
+ ACE_TEST_ASSERT (counter == 1);
ACE_Auto_IncDec<int> Auto_IncDec2 (counter);
- ACE_ASSERT (counter == 2);
+ ACE_TEST_ASSERT (counter == 2);
{
- ACE_ASSERT (counter == 2);
+ ACE_TEST_ASSERT (counter == 2);
ACE_Auto_IncDec<int> Auto_IncDec3 (counter);
- ACE_ASSERT (counter == 3);
+ ACE_TEST_ASSERT (counter == 3);
}
- ACE_ASSERT (counter == 2);
+ ACE_TEST_ASSERT (counter == 2);
}
- ACE_ASSERT (counter == 0);
+ ACE_TEST_ASSERT (counter == 0);
#endif /* ACE_HAS_THREADS */
diff --git a/ACE/tests/Barrier_Test.cpp b/ACE/tests/Barrier_Test.cpp
index 9f0bf8ecdd8..ff507d71e9e 100644
--- a/ACE/tests/Barrier_Test.cpp
+++ b/ACE/tests/Barrier_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Barrier_Test.cpp
-//
-// = DESCRIPTION
-// This program illustrates how the ACE barrier synchronization
-// mechanisms work.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Barrier_Test.cpp
+ *
+ * $Id$
+ *
+ * This program illustrates how the ACE barrier synchronization
+ * mechanisms work.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Barrier.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(tests, Barrier_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/tests/Based_Pointer_Test.cpp b/ACE/tests/Based_Pointer_Test.cpp
index 046cb38770f..faf136cfff0 100644
--- a/ACE/tests/Based_Pointer_Test.cpp
+++ b/ACE/tests/Based_Pointer_Test.cpp
@@ -1,25 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Based_Pointer_Test.cpp
-//
-// = DESCRIPTION
-// This test check the Based_Pointer and Based_Pointer_repository classes.
-//
-// = AUTHOR
-// Steve Williams <steve@telxio>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Based_Pointer_Test.cpp
+ *
+ * $Id$
+ *
+ * This test check the Based_Pointer and Based_Pointer_repository classes.
+ *
+ *
+ * @author Steve Williams <steve@telxio>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/DLL.h"
#include "ace/ACE.h"
-#include "ace/OS.h"
#ifdef ACE_HAS_POSITION_INDEPENDENT_POINTERS
#include "ace/Based_Pointer_Repository.h"
#endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS */
@@ -28,10 +24,8 @@
#include "ace/PI_Malloc.h"
#include "ace/Null_Mutex.h"
#include "ace/Based_Pointer_T.h"
-
-ACE_RCSID (tests,
- Based_Pointer_Repository_Test,
- "$Id$")
+#include "ace/SString.h"
+#include "ace/OS_NS_unistd.h"
class Foo
{
@@ -90,16 +84,23 @@ int singleton_test (void)
// Protection against this test being run on platforms not supporting Dlls.
#if defined(ACE_HAS_DYNAMIC_LINKING)
- ACE_DLL dll;
+ ACE_TString dll_file;
+ const char *subdir_env = ACE_OS::getenv ("ACE_EXE_SUB_DIR");
+ if (subdir_env)
+ {
+ dll_file = ACE_TEXT_CHAR_TO_TCHAR (subdir_env);
+ dll_file += ACE_DIRECTORY_SEPARATOR_STR;
+ }
+
+ dll_file += OBJ_PREFIX ACE_TEXT ("Based_Pointer_Test_Lib") OBJ_SUFFIX;
// If DLL causes multiple instances of singleton
// then the ACE_Cleanup object registered
// with the ACE_Object_manager will no longer be valid,
// at exit time if the library is unloaded. Override
// the default close on destruct.
- int retval = dll.open (OBJ_PREFIX
- ACE_TEXT ("Based_Pointer_Test_Lib")
- OBJ_SUFFIX,
+ ACE_DLL dll;
+ int retval = dll.open (dll_file.c_str (),
ACE_DEFAULT_SHLIB_MODE,
0);
@@ -137,7 +138,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/Based_Pointer_Test_Lib.cpp b/ACE/tests/Based_Pointer_Test_Lib.cpp
index e7047b70fa3..24c586be925 100644
--- a/ACE/tests/Based_Pointer_Test_Lib.cpp
+++ b/ACE/tests/Based_Pointer_Test_Lib.cpp
@@ -1,29 +1,22 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Based_Pointer_Test_Lib.cpp
-//
-// = DESCRIPTION
-// This test confirms the function of the Based_Pointer_Repository
-//
-// = AUTHOR
-// Steve Williams <steve@telxio>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Based_Pointer_Test_Lib.cpp
+ *
+ * $Id$
+ *
+ * This test confirms the function of the Based_Pointer_Repository
+ *
+ *
+ * @author Steve Williams <steve@telxio>
+ */
+//=============================================================================
+
#include "ace/ACE.h"
#include "ace/svc_export.h"
#include "ace/Based_Pointer_Repository.h"
-ACE_RCSID (tests,
- Based_Pointer_Repository_DLL_Test,
- "$Id$")
-
#if defined (ACE_OPENVMS)
// with OPENVMS symbol names > 31 cause us trouble with dlsym()
extern "C" ACE_Svc_Export void *
diff --git a/ACE/tests/Basic_Types_Test.cpp b/ACE/tests/Basic_Types_Test.cpp
index 7a864720841..64c5b49ff00 100644
--- a/ACE/tests/Basic_Types_Test.cpp
+++ b/ACE/tests/Basic_Types_Test.cpp
@@ -1,20 +1,16 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Basic_Types_Test.cpp
-//
-// = DESCRIPTION
-// Checks the #defines in ace/Basic_Types.h, and a few other basics.
-//
-// = AUTHOR
-// David L. Levine <levine@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Basic_Types_Test.cpp
+ *
+ * $Id$
+ *
+ * Checks the #defines in ace/Basic_Types.h, and a few other basics.
+ *
+ *
+ * @author David L. Levine <levine@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/config-all.h"
// Don't use the ACE version accessors in class ACE, so that we can
@@ -38,8 +34,6 @@
#include "ace/Basic_Types.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Basic_Types_Test, "$Id$")
-
typedef void* (*a_function_pointer) (void*);
static
@@ -239,31 +233,15 @@ run_main (int, ACE_TCHAR *[])
errors += check (ACE_TEXT ("ACE_SIZEOF_LONG_DOUBLE: %u%s"),
sizeof (long double), ACE_SIZEOF_LONG_DOUBLE);
-// Crays don't have 16-bit quantities, so don't even test for 16-bit values
-#if !defined(_UNICOS)
errors += check (ACE_TEXT ("sizeof (ACE_INT16) is %u%s"),
sizeof (ACE_INT16), 2);
errors += check (ACE_TEXT ("sizeof (ACE_UINT16) is %u%s"),
sizeof (ACE_INT16), 2);
-#else /* ! _UNICOS */
- errors += check (ACE_TEXT ("sizeof (ACE_INT16) is %u%s"),
- sizeof (ACE_INT16), 8);
- errors += check (ACE_TEXT ("sizeof (ACE_UINT16) is %u%s"),
- sizeof (ACE_INT16), 8);
-#endif /* ! _UNICOS */
-// MPP Crays do have 32-bit quantities (short), though vector Crays don't
-#if !defined(_UNICOS) || defined(_CRAYMPP)
errors += check (ACE_TEXT ("sizeof (ACE_INT32) is %u%s"),
sizeof (ACE_INT32), 4);
errors += check (ACE_TEXT ("sizeof (ACE_UINT32) is %u%s"),
sizeof (ACE_INT32), 4);
-#else /* ! _UNICOS */
- errors += check (ACE_TEXT ("sizeof (ACE_INT32) is %u%s"),
- sizeof (ACE_INT32), 8);
- errors += check (ACE_TEXT ("sizeof (ACE_UINT32) is %u%s"),
- sizeof (ACE_INT32), 8);
-#endif /* ! _UNICOS */
errors += check (ACE_TEXT ("sizeof (ACE_UINT64) is %u%s"),
sizeof (ACE_UINT64), 8);
@@ -290,10 +268,19 @@ run_main (int, ACE_TCHAR *[])
++errors;
}
+ ACE_UINT16 test_val = 123;
#if defined (ACE_LITTLE_ENDIAN)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("little endian\n")));
+ if (ACE_HTONS (test_val) == test_val)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Endian test: %d == %d but should be different\n"),
+ ACE_HTONS (test_val), test_val));
#elif defined (ACE_BIG_ENDIAN)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("big endian\n")));
+ if (ACE_HTONS (test_val) != test_val)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Endian test: %d != %d but should be equal\n"),
+ ACE_HTONS (test_val), test_val));
#else
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("assertion failed: no ACE_*_ENDIAN definition!\n")));
diff --git a/ACE/tests/Bound_Ptr_Test.cpp b/ACE/tests/Bound_Ptr_Test.cpp
index d443dac3d39..f306a7eba19 100644
--- a/ACE/tests/Bound_Ptr_Test.cpp
+++ b/ACE/tests/Bound_Ptr_Test.cpp
@@ -21,7 +21,7 @@
#include "ace/Method_Request.h"
#include "Bound_Ptr_Test.h"
-ACE_RCSID (tests, Bound_Ptr_Test, "Bound_Ptr_Test.cpp,v 4.8 2000/04/23 04:43:58 brunsch Exp")
+
// The following Parent and Child classes illustrate how you might use the
// ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr together in cyclic
diff --git a/ACE/tests/Bound_Ptr_Test.h b/ACE/tests/Bound_Ptr_Test.h
index 9b72c7863d1..a45f5557e60 100644
--- a/ACE/tests/Bound_Ptr_Test.h
+++ b/ACE/tests/Bound_Ptr_Test.h
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Bound_Ptr_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// @author Christopher Kohlhoff <chris@kohlhoff.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Bound_Ptr_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author @author Christopher Kohlhoff <chris@kohlhoff.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_BOUND_PTR_TEST_H
#define ACE_TESTS_BOUND_PTR_TEST_H
diff --git a/ACE/tests/Buffer_Stream_Test.cpp b/ACE/tests/Buffer_Stream_Test.cpp
index e1d43be4457..424ca2dff29 100644
--- a/ACE/tests/Buffer_Stream_Test.cpp
+++ b/ACE/tests/Buffer_Stream_Test.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Buffer_Stream_Test.cpp
-//
-// = DESCRIPTION
-// This program illustrates an implementation of the classic
-// "bounded buffer" program using an ASX STREAM containing two
-// Modules. Each ACE_Module contains two Tasks. Each ACE_Task
-// contains a ACE_Message_Queue and a pointer to a
-// ACE_Thread_Manager. Note how the use of these reusable
-// components reduces the reliance on global variables.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Buffer_Stream_Test.cpp
+ *
+ * $Id$
+ *
+ * This program illustrates an implementation of the classic
+ * "bounded buffer" program using an ASX STREAM containing two
+ * Modules. Each ACE_Module contains two Tasks. Each ACE_Task
+ * contains a ACE_Message_Queue and a pointer to a
+ * ACE_Thread_Manager. Note how the use of these reusable
+ * components reduces the reliance on global variables.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Stream.h"
@@ -28,7 +25,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(tests, Buffer_Stream_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -38,48 +35,57 @@ typedef ACE_Stream<ACE_MT_SYNCH> MT_Stream;
typedef ACE_Module<ACE_MT_SYNCH> MT_Module;
typedef ACE_Task<ACE_MT_SYNCH> MT_Task;
+/**
+ * @class Common_Task
+ *
+ * @brief Methods that are common to the Supplier and consumer.
+ */
class Common_Task : public MT_Task
- // = TITLE
- // Methods that are common to the Supplier and consumer.
{
public:
Common_Task (void) {}
//FUZZ: disable check_for_lack_ACE_OS
// = ACE_Task hooks.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int open (void * = 0);
virtual int close (u_long = 0);
- //FUZZ: enable check_for_lack_ACE_OS
};
+/**
+ * @class Supplier
+ *
+ * @brief Define the Supplier interface.
+ */
class Supplier : public Common_Task
-// = TITLE
-// Define the Supplier interface.
{
public:
Supplier (void) {}
+ /// Read data from stdin and pass to consumer.
virtual int svc (void);
- // Read data from stdin and pass to consumer.
};
+/**
+ * @class Consumer
+ *
+ * @brief Define the Consumer interface.
+ */
class Consumer : public Common_Task
- // = TITLE
- // Define the Consumer interface.
{
public:
Consumer (void) {}
+ /// Enqueue the message on the ACE_Message_Queue for subsequent
+ /// handling in the svc() method.
virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- // Enqueue the message on the ACE_Message_Queue for subsequent
- // handling in the svc() method.
+ /// Receive message from Supplier and print to stdout.
virtual int svc (void);
- // Receive message from Supplier and print to stdout.
private:
+ /// Amount of time to wait for a timeout.
ACE_Time_Value timeout_;
- // Amount of time to wait for a timeout.
};
// Spawn off a new thread.
@@ -183,7 +189,7 @@ Consumer::svc (void)
if (length > 0)
{
output = mb->rd_ptr ();
- ACE_ASSERT (*c == output[0]);
+ ACE_TEST_ASSERT (*c == output[0]);
c++;
}
mb->release ();
diff --git a/ACE/tests/Bug_1576_Regression_Test.cpp b/ACE/tests/Bug_1576_Regression_Test.cpp
index e0986fe9fa9..daa633e977f 100644
--- a/ACE/tests/Bug_1576_Regression_Test.cpp
+++ b/ACE/tests/Bug_1576_Regression_Test.cpp
@@ -12,10 +12,6 @@
#include "test_config.h"
#include "ace/DLL.h"
-ACE_RCSID (tests,
- Bug_1576_Regression_Test,
- "$Id$")
-
int
run_main (int, ACE_TCHAR *[])
{
diff --git a/ACE/tests/Bug_1890_Regression_Test.cpp b/ACE/tests/Bug_1890_Regression_Test.cpp
index 3f489c5bad2..98622638223 100644
--- a/ACE/tests/Bug_1890_Regression_Test.cpp
+++ b/ACE/tests/Bug_1890_Regression_Test.cpp
@@ -16,10 +16,7 @@
#include "ace/Event_Handler.h"
#include "ace/Reactor.h"
#include "ace/Select_Reactor.h"
-
-ACE_RCSID (tests,
- Bug_1890_Regression_Test,
- "$Id$")
+#include "ace/Auto_Ptr.h"
int const nhandlers = 3;
@@ -105,8 +102,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_2368_Regression_Test.cpp b/ACE/tests/Bug_2368_Regression_Test.cpp
index 94e11107e7d..3606c24e8f1 100644
--- a/ACE/tests/Bug_2368_Regression_Test.cpp
+++ b/ACE/tests/Bug_2368_Regression_Test.cpp
@@ -15,10 +15,6 @@
#include "ace/Log_Msg.h"
#include "ace/Signal.h"
-ACE_RCSID (tests,
- Bug_2368_Regression_Test,
- "$Id$")
-
static bool handleA_close_called = false;
static bool handleB_close_called = false;
diff --git a/ACE/tests/Bug_2434_Regression_Test.cpp b/ACE/tests/Bug_2434_Regression_Test.cpp
new file mode 100644
index 00000000000..f1bb119e034
--- /dev/null
+++ b/ACE/tests/Bug_2434_Regression_Test.cpp
@@ -0,0 +1,68 @@
+
+//=============================================================================
+/**
+ * @file Bug_2434_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of ACE_Time_Value. No command line arguments
+ * are needed to run the test. It also tests the ACE_U_LongLong class.
+ * Because ACE_U_LongLong is used for ACE_hrtime_t on some platforms,
+ * this seems like a reasonable place to test it.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and David Levine <levine@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+// Note, for this test the config.h file *must* come first!
+#include "ace/config-all.h"
+
+
+
+#include "test_config.h"
+#include "ace/ACE.h"
+#include "ace/Time_Value.h"
+#include "ace/Numeric_Limits.h"
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ int ret = 0;
+
+ ACE_START_TEST (ACE_TEXT ("Bug_2434_Regression_Test"));
+
+ ACE_Time_Value tv1;
+ ACE_Time_Value tv2;
+
+ const time_t max_time_t = ACE_Numeric_Limits<time_t>::max ();
+ const time_t min_time_t = ACE_Numeric_Limits<time_t>::min ();
+
+ // test protection against overflows
+ // ACE_TEST_ASSERT( ACE_Time_Value(max_time_t,ACE_ONE_SECOND_IN_USECS) != ACE_Time_Value(ACE_Numeric_Limits<time_t>::min()) );
+
+ // test saturated result
+ tv1.set (max_time_t - 1, 499999);
+ tv2.set (max_time_t, 999999); // ACE_Time_Value::max_time
+ tv1 *= 10.0;
+ ACE_TEST_ASSERT (tv1 == tv2);
+ tv1.set (max_time_t - 1, 499999);
+ tv2.set (min_time_t, -999999);
+ tv1 *= -10.0;
+ ACE_TEST_ASSERT (tv1 == tv2);
+
+ // test results near limits
+ tv1.set ((max_time_t >> 1), 499999);
+ tv2.set ((-(max_time_t >> 1) << 1), -999998);
+ tv1 *= -2.0;
+ ACE_TEST_ASSERT (tv1 == tv2);
+ tv1.set (max_time_t >> 1, 499999);
+ tv2.set (((max_time_t >> 1) << 1), 999998);
+ tv1 *= 2.0;
+ ACE_TEST_ASSERT (tv1 == tv2);
+
+ ACE_END_TEST;
+
+ return ret;
+}
diff --git a/ACE/tests/Bug_2497_Regression_Test.cpp b/ACE/tests/Bug_2497_Regression_Test.cpp
index d32c96d1660..b0c89442fc2 100644
--- a/ACE/tests/Bug_2497_Regression_Test.cpp
+++ b/ACE/tests/Bug_2497_Regression_Test.cpp
@@ -14,10 +14,6 @@
#include "ace/Task.h"
#include "ace/Stream.h"
-ACE_RCSID (tests,
- Bug_2497_Regression_Test,
- "$Id$")
-
class Test_Task : public ACE_Task<ACE_SYNCH>
{
public:
diff --git a/ACE/tests/Bug_2540_Regression_Test.cpp b/ACE/tests/Bug_2540_Regression_Test.cpp
index 66f1f4f4ddb..bf9aa98ac0f 100644
--- a/ACE/tests/Bug_2540_Regression_Test.cpp
+++ b/ACE/tests/Bug_2540_Regression_Test.cpp
@@ -16,10 +16,7 @@
#include "ace/Event_Handler.h"
#include "ace/Reactor.h"
#include "ace/Select_Reactor.h"
-
-ACE_RCSID (tests,
- Bug_2540_Regression_Test,
- "$Id$")
+#include "ace/Auto_Ptr.h"
int const nhandlers = 3;
@@ -70,7 +67,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 +106,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;
@@ -264,7 +264,7 @@ int Timer::handle_timeout(ACE_Time_Value const &, void const *)
// The first iterations are there just to prime things.
return 0;
}
-
+
if (iteration_ == initial_iterations)
{
// We expect the special_handler() to work normally after this
diff --git a/ACE/tests/Bug_2609_Regression_Test.cpp b/ACE/tests/Bug_2609_Regression_Test.cpp
index 734ba205acd..4b4a1bd4d05 100644
--- a/ACE/tests/Bug_2609_Regression_Test.cpp
+++ b/ACE/tests/Bug_2609_Regression_Test.cpp
@@ -10,11 +10,6 @@
*/
#include "test_config.h"
-
-ACE_RCSID (tests,
- Bug_2609_Regression_Test,
- "$Id$")
-
#include "ace/Svc_Handler.h"
#include "ace/Acceptor.h"
#include "ace/SOCK_Stream.h"
@@ -55,22 +50,24 @@ public:
int open (void* pv)
{
TEST_TRACE ("open");
- g_semaphore.release(); // signal open completed
+ g_semaphore.release (); // signal open completed
+ // super::open() will register_handler for input. The default
+ // handle_input() from ACE_Event_Handler will return -1, triggering
+ // handler removal from the reactor.
return super::open (pv);
}
//FUZZ: enable check_for_lack_ACE_OS
- int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask mask)
+ int handle_close (ACE_HANDLE, ACE_Reactor_Mask)
{
TEST_TRACE ("handle_close");
- super::handle_close (fd, mask);
if (g_handler_deleted)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT("Handler deleted in base class' handle_close()\n")));
- }
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Handler deleted in base handle_close()\n")));
+ }
// signal handle_close() completed
- g_semaphore.release();
+ g_semaphore.release ();
return 0;
}
};
@@ -80,12 +77,15 @@ struct My_Task : public ACE_Task_Base
int svc()
{
TEST_TRACE ("My_Task::svc");
- ACE_Reactor::instance()->owner(ACE_OS::thr_self());
- int rv = ACE_Reactor::instance()->run_reactor_event_loop();
+ ACE_Reactor *r = ACE_Reactor::instance ();
+ r->owner (ACE_OS::thr_self ());
+ int rv = r->run_reactor_event_loop ();
if (rv < 0)
- {
- ACE_ERROR ((LM_ERROR, ACE_TEXT("Cannot run reactor event loop\n")));
- }
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Cannot run %p\n"),
+ ACE_TEXT ("reactor event loop")));
+ }
return 0;
}
};
@@ -95,7 +95,7 @@ struct Timer_Handler : public ACE_Event_Handler
{
int handle_timeout (const ACE_Time_Value&, const void*)
{
- g_semaphore.release(); // signal reactor started
+ g_semaphore.release (); // signal reactor started
return 0;
}
};
@@ -109,40 +109,66 @@ run_main (int, ACE_TCHAR *[])
{
ACE_START_TEST (ACE_TEXT ("Bug_2609_Regression_Test"));
+ int status = 0;
+
#if defined (ACE_HAS_THREADS)
- My_Acceptor acceptor (ACE_INET_Addr(9876));
+ My_Acceptor acceptor;
+ if (-1 == acceptor.open (ACE_sap_any_cast (const ACE_INET_Addr &)))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("acceptor open")),
+ 1);
+ ACE_INET_Addr listen_addr;
+ acceptor.acceptor ().get_local_addr (listen_addr);
+#if defined (ACE_HAS_IPV6)
+ const ACE_TCHAR *me =
+ listen_addr.get_type () == PF_INET ? ACE_LOCALHOST : ACE_IPV6_LOCALHOST;
+#else
+ const ACE_TCHAR *me = ACE_LOCALHOST;
+#endif /* ACE_HAS_IPV6 */
+ ACE_INET_Addr connect_addr (listen_addr.get_port_number (),
+ me,
+ listen_addr.get_type ());
+
Timer_Handler timer_handler;
- ACE_Reactor::instance()->schedule_timer(
- &timer_handler, 0, ACE_Time_Value(0));
+ ACE_Reactor::instance()->schedule_timer (&timer_handler,
+ 0,
+ ACE_Time_Value(0));
My_Task task;
- int activated = task.activate();
+ int activated = task.activate ();
if (activated < 0)
- {
- ACE_ERROR ((LM_ERROR, ACE_TEXT ("Could not activate task\n")));
- }
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("Error activating task")),
+ 1);
+ }
- g_semaphore.acquire();// wait for reactor to start
+ g_semaphore.acquire (); // wait for reactor to start
{
ACE_SOCK_Connector c1;
ACE_SOCK_Stream s1;
- ACE_INET_Addr a1(9876, "localhost");
- if (-1 == c1.connect (s1, a1))
- {
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT("Could not connect\n")), -1);
- }
- g_semaphore.acquire(); // wait for open to complete
- s1.close();
- g_semaphore.acquire(); // wait for handle_close to complete
+ if (-1 == c1.connect (s1, connect_addr))
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT("connect")));
+ status = 1;
+ }
+ else
+ {
+ g_semaphore.acquire (); // wait for open to complete
+ s1.close (); // will trip handle_input()
+ g_semaphore.acquire (); // wait for handle_close to complete
+ }
}
- ACE_Reactor::end_event_loop();
- task.wait();
+ ACE_Reactor::instance ()->end_reactor_event_loop ();
+ task.wait ();
#else
ACE_ERROR ((LM_INFO,
ACE_TEXT ("threads not supported on this platform\n")));
#endif
ACE_END_TEST;
- return 0;
+ return status;
}
diff --git a/ACE/tests/Bug_2610_Regression_Test.cpp b/ACE/tests/Bug_2610_Regression_Test.cpp
index 648e90bf2d2..ad6ff2ad74b 100644
--- a/ACE/tests/Bug_2610_Regression_Test.cpp
+++ b/ACE/tests/Bug_2610_Regression_Test.cpp
@@ -10,11 +10,6 @@
*/
#include "test_config.h"
-
-ACE_RCSID (tests,
- Bug_2610_Regression_Test,
- "$Id$")
-
#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
#include "ace/SOCK_Acceptor.h"
@@ -111,7 +106,8 @@ struct My_Task : public ACE_Task_Base
if (rv < 0)
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT("Cannot run reactor event loop\n")));
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("Cannot run reactor event loop")));
}
return 0;
}
@@ -146,10 +142,23 @@ run_main (int, ACE_TCHAR *[])
if (activated < 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("Could not activate task\n")), -1);
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("Could not activate task")),
+ -1);
}
- ACE_INET_Addr a1(9000, "localhost");
+ // Don't assume addr family of the listener - check and adapt when needed.
+ ACE_INET_Addr listen_addr;
+ acceptor.acceptor ().get_local_addr (listen_addr);
+#if defined (ACE_HAS_IPV6)
+ const ACE_TCHAR *me =
+ listen_addr.get_type () == PF_INET ? ACE_LOCALHOST : ACE_IPV6_LOCALHOST;
+#else
+ const ACE_TCHAR *me = ACE_LOCALHOST;
+#endif /* ACE_HAS_IPV6 */
+ ACE_INET_Addr a1 (listen_addr.get_port_number (),
+ me,
+ listen_addr.get_type ());
ACE_SOCK_Connector c1;
g_semaphore.acquire();// wait for reactor to start
@@ -158,7 +167,10 @@ run_main (int, ACE_TCHAR *[])
ACE_SOCK_Stream s1;
if (-1 == c1.connect (s1, a1))
{
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT("Could not connect\n")), -1);
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("Could not connect")),
+ -1);
}
g_semaphore.acquire(); // wait for accept_svc_handler() to start
}
@@ -167,7 +179,10 @@ run_main (int, ACE_TCHAR *[])
ACE_SOCK_Stream s1;
if (-1 == c1.connect (s1, a1))
{
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT("Could not connect\n")), -1);
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("Could not connect")),
+ -1);
}
g_semaphore.acquire(); // wait for activate_svc_handler to complete
}
@@ -185,8 +200,10 @@ run_main (int, ACE_TCHAR *[])
if (g_svc_handlers_leaked != 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT("Svc_Handler leakage detected, %d objects\n")),
- g_svc_handlers_leaked);
+ ACE_TEXT ("Svc_Handler leakage detected, ")
+ ACE_TEXT ("%d objects remain\n"),
+ g_svc_handlers_leaked),
+ 1);
}
#else
ACE_ERROR ((LM_INFO,
diff --git a/ACE/tests/Bug_2653_Regression_Test.cpp b/ACE/tests/Bug_2653_Regression_Test.cpp
index 6a86198f6f2..2d49c4f535e 100644
--- a/ACE/tests/Bug_2653_Regression_Test.cpp
+++ b/ACE/tests/Bug_2653_Regression_Test.cpp
@@ -1,24 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Bug_2653_Regression_Test.cpp
-//
-// = DESCRIPTION
-// This bug occurs when schedule_wakeup is called for a handle that does
-// not already have an event handler registered. This can happen quite
-// legitimately in multithreaded applications where one thread schedules
-// the wakeup while another thread is handling the closure of the
-// connection and unregistering.
-//
-// = AUTHOR
-// Phil Mesnier <mesnier_p@ociweb.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Bug_2653_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * This bug occurs when schedule_wakeup is called for a handle that does
+ * not already have an event handler registered. This can happen quite
+ * legitimately in multithreaded applications where one thread schedules
+ * the wakeup while another thread is handling the closure of the
+ * connection and unregistering.
+ *
+ *
+ * @author Phil Mesnier <mesnier_p@ociweb.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -29,7 +26,7 @@
#include "ace/Task.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Bug_2653_Regression_Test, "$Id$")
+
static const char *message =
"Hello there! Hope you get this message";
@@ -72,11 +69,9 @@ Handler::Handler (ACE_Reactor &reactor, bool close_other)
: ACE_Event_Handler (&reactor)
{
// Create the pipe.
- bool ok = true;
if (0 != this->other_pipe_.open () || 0 != this->pipe_.open())
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("pipe")));
- ok = false;
}
else
{
@@ -87,7 +82,6 @@ Handler::Handler (ACE_Reactor &reactor, bool close_other)
ACE_Event_Handler::READ_MASK))
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("register")));
- ok = false;
}
if (-1 == this->reactor ()->schedule_wakeup
@@ -95,14 +89,12 @@ Handler::Handler (ACE_Reactor &reactor, bool close_other)
ACE_Event_Handler::WRITE_MASK))
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("Schedule")));
- ok = false;
}
// closing the other pipe sets up the spinner error.
// leaving it open sets up the segv.
if (close_other)
this->other_pipe_.close();
-
}
}
@@ -117,13 +109,13 @@ Handler::handle_output (ACE_HANDLE)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Handler::handle_output\n")));
-#if defined (__OpenBSD__) || defined (ACE_VXWORKS) || defined (__Lynx__)
+#if defined (__OpenBSD__) || defined (ACE_VXWORKS)
// All that we need written has been written, so don't
// call handle_output again.
this->reactor ()->mask_ops (this->pipe_.read_handle (),
ACE_Event_Handler::WRITE_MASK,
ACE_Reactor::CLR_MASK);
-#endif /* __OpenBSD__ || ACE_VXWORKS || __Lynx__ */
+#endif /* __OpenBSD__ || ACE_VXWORKS */
return 0;
}
diff --git a/ACE/tests/Bug_2659_Regression_Test.cpp b/ACE/tests/Bug_2659_Regression_Test.cpp
index 10be56ada27..d5a06913a41 100644
--- a/ACE/tests/Bug_2659_Regression_Test.cpp
+++ b/ACE/tests/Bug_2659_Regression_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Bug_2659_Regression_Test.cpp
-//
-// = DESCRIPTION
-// Reproduces the problems reported in bug 2659:
-// http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2659
-//
-// = AUTHOR
-// Ciju John <johnc at ociweb>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Bug_2659_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * Reproduces the problems reported in bug 2659:
+ * http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2659
+ *
+ *
+ * @author Ciju John <johnc at ociweb>
+ */
+//=============================================================================
+
#include "test_config.h"
diff --git a/ACE/tests/Bug_2740_Regression_Test.cpp b/ACE/tests/Bug_2740_Regression_Test.cpp
new file mode 100644
index 00000000000..29791a95f47
--- /dev/null
+++ b/ACE/tests/Bug_2740_Regression_Test.cpp
@@ -0,0 +1,390 @@
+/**
+ * @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"
+
+#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);
+}
+
+static int
+disable_signal (int sigmin, int sigmax)
+{
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
+ sigset_t signal_set;
+ if (ACE_OS::sigemptyset (&signal_set) == - 1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t):%p\n"),
+ ACE_TEXT ("sigemptyset failed")));
+
+ for (int i = sigmin; i <= sigmax; i++)
+ ACE_OS::sigaddset (&signal_set, i);
+
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
+#else
+ ACE_UNUSED_ARG (sigmin);
+ ACE_UNUSED_ARG (sigmax);
+#endif /* ACE_LACKS_UNIX_SIGNALS */
+
+ return 0;
+}
+
+ACE_THR_FUNC_RETURN
+event_loop(void *arg)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%t: Starting reactor event loop\n")));
+
+ disable_signal (SIGPIPE, SIGPIPE);
+
+ 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
+ disable_signal (SIGPIPE, SIGPIPE);
+
+ 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_2772_Regression_Test.cpp b/ACE/tests/Bug_2772_Regression_Test.cpp
index 45e061ea779..6969d3fc277 100644
--- a/ACE/tests/Bug_2772_Regression_Test.cpp
+++ b/ACE/tests/Bug_2772_Regression_Test.cpp
@@ -18,7 +18,7 @@
#include "ace/Condition_Recursive_Thread_Mutex.h"
#include "ace/Thread.h"
-ACE_RCSID(tests, Bug_2772_Regression_Test, "$Id$")
+
class ThreadTest
{
diff --git a/ACE/tests/Bug_2815_Regression_Test.cpp b/ACE/tests/Bug_2815_Regression_Test.cpp
index d365b4f3d3a..7fd812a0886 100644
--- a/ACE/tests/Bug_2815_Regression_Test.cpp
+++ b/ACE/tests/Bug_2815_Regression_Test.cpp
@@ -30,9 +30,6 @@
#include "ace/TP_Reactor.h"
#include "ace/Select_Reactor.h"
-ACE_RCSID(tests,
- Bug_2815_Regression_Test, "$Id$")
-
class One_Shot_Handler;
/**
diff --git a/ACE/tests/Bug_2820_Regression_Test.cpp b/ACE/tests/Bug_2820_Regression_Test.cpp
index 93a9c1bc45c..17a1036d19b 100644
--- a/ACE/tests/Bug_2820_Regression_Test.cpp
+++ b/ACE/tests/Bug_2820_Regression_Test.cpp
@@ -21,9 +21,6 @@
#include "ace/Reactor.h"
#include "ace/Select_Reactor.h"
-ACE_RCSID(tests,
- Bug_2820_Regression_Test, "$Id$")
-
/**
* @class Simple_Handler
*
diff --git a/ACE/tests/Bug_2975_Regression_Test.cpp b/ACE/tests/Bug_2975_Regression_Test.cpp
index dec427fad9b..379621358c8 100644
--- a/ACE/tests/Bug_2975_Regression_Test.cpp
+++ b/ACE/tests/Bug_2975_Regression_Test.cpp
@@ -10,14 +10,10 @@
*/
#include "ace/ACE.h"
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/Service_Config.h"
#include "ace/ARGV.h"
-ACE_RCSID (tests,
- Bug_2975_Regression_Test,
- "$Id$")
-
int
run_main (int, ACE_TCHAR *argv[])
{
diff --git a/ACE/tests/Bug_2980_Regression_Dll.cpp b/ACE/tests/Bug_2980_Regression_Dll.cpp
index 280f9d87be5..84ac9a1b0e9 100644
--- a/ACE/tests/Bug_2980_Regression_Dll.cpp
+++ b/ACE/tests/Bug_2980_Regression_Dll.cpp
@@ -1,11 +1,9 @@
// $Id$
#include "ace/Init_ACE.h"
-#include "ace/OS.h"
#include "ace/Log_Msg.h"
#include "test_config.h"
-
extern "C"
{
diff --git a/ACE/tests/Bug_2980_Regression_Test.cpp b/ACE/tests/Bug_2980_Regression_Test.cpp
index c8cf34e84fe..50c3b22aabe 100644
--- a/ACE/tests/Bug_2980_Regression_Test.cpp
+++ b/ACE/tests/Bug_2980_Regression_Test.cpp
@@ -4,6 +4,8 @@
#include <iostream>
#include <assert.h>
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
#include "ace/config-lite.h"
@@ -65,7 +67,23 @@ void* loadDll(void*)
PRINTF ("loadDll - entered\n");
#if defined (CAN_RUN_TEST)
- dllHandle = dlopen(DllTestName, RTLD_NOW);
+
+ const char *subdir_env = getenv ("ACE_EXE_SUB_DIR");
+ if (subdir_env)
+ {
+ char *dllFile =
+ (char *) malloc (2 + strlen (subdir_env) + strlen (DllTestName));
+ strcpy (dllFile, subdir_env);
+ strcat (dllFile, "/");
+ strcat (dllFile, DllTestName);
+ dllHandle = dlopen (dllFile, RTLD_NOW);
+ free (dllFile);
+ }
+ else
+ {
+ dllHandle = dlopen (DllTestName, RTLD_NOW);
+ }
+
if (dllHandle == 0)
{
PRINTF ("unable to load library: %s\n", dlerror());
diff --git a/ACE/tests/Bug_3102_Regression_Test.cpp b/ACE/tests/Bug_3102_Regression_Test.cpp
index 5b081469be2..df168cd651c 100644
--- a/ACE/tests/Bug_3102_Regression_Test.cpp
+++ b/ACE/tests/Bug_3102_Regression_Test.cpp
@@ -15,10 +15,6 @@
#include "ace/Guard_T.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID (tests,
- Bug_3102_Regression_Test,
- "$Id$")
-
#if defined (ACE_HAS_THREADS)
void mutexTest(void)
diff --git a/ACE/tests/Bug_3319_Regression_Test.cpp b/ACE/tests/Bug_3319_Regression_Test.cpp
index 4618a66b39b..ea6de0c6322 100644
--- a/ACE/tests/Bug_3319_Regression_Test.cpp
+++ b/ACE/tests/Bug_3319_Regression_Test.cpp
@@ -8,15 +8,11 @@
*/
#include "ace/ACE.h"
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/Service_Config.h"
#include "ace/ARGV.h"
#include "ace/Log_Msg.h"
-ACE_RCSID (tests,
- Bug_3319_Regression_Test,
- "$Id$")
-
int
run_main (int, ACE_TCHAR *[])
{
@@ -27,7 +23,7 @@ run_main (int, ACE_TCHAR *[])
args.add (ACE_TEXT("MyProgram"), true);
int ret = ACE_Service_Config::open(args.argc(), args.argv(),
ACE_DEFAULT_LOGGER_KEY,
- 1, 0, 1);
+ 1, 1, 1);
if (ACE_OS::strcmp (log_msg->program_name (), ACE_TEXT("MyProgram")) != 0)
{
diff --git a/ACE/tests/Bug_3332_Regression_Test.cpp b/ACE/tests/Bug_3332_Regression_Test.cpp
index 0fd489915a7..e6683f9781b 100644
--- a/ACE/tests/Bug_3332_Regression_Test.cpp
+++ b/ACE/tests/Bug_3332_Regression_Test.cpp
@@ -23,7 +23,7 @@
//
// ============================================================================
-#include "test_config.h" /* Include first to enable ACE_ASSERT. */
+#include "test_config.h" /* Include first to enable ACE_TEST_ASSERT. */
#include "ace/RB_Tree.h"
#include "ace/Null_Mutex.h"
@@ -72,7 +72,7 @@ run_main (int, ACE_TCHAR *[])
ACE_DEBUG ((LM_DEBUG, "Validating Tree\n"));
{for (size_t i= 0u; i < sizeof(nodes)/sizeof(Nodes); ++i)
{
- ACE_RB_Tree_Node<char, int> *node;
+ ACE_RB_Tree_Node<char, int> *node = 0;
if (tree.find (nodes[i].key, node))
{
@@ -106,7 +106,7 @@ run_main (int, ACE_TCHAR *[])
}
else
{
- ACE_RB_Tree_Node<char, int> *node;
+ ACE_RB_Tree_Node<char, int> *node = 0;
if (0 == tree.find (nodes[i].key, node))
{
diff --git a/ACE/tests/Bug_3334_Regression_Test.conf b/ACE/tests/Bug_3334_Regression_Test.conf
new file mode 100644
index 00000000000..744559ce001
--- /dev/null
+++ b/ACE/tests/Bug_3334_Regression_Test.conf
@@ -0,0 +1,9 @@
+# $Id$
+
+stream dynamic Svc_Conf_Stream STREAM *Service_Config_Stream_DLL:make_stream() active
+{
+ dynamic Device_Adapter Module *Service_Config_Stream_DLL:make_da()
+ dynamic Event_Analyzer Module *Service_Config_Stream_DLL:make_ea()
+ dynamic Multicast_Router Module *Service_Config_Stream_DLL:make_mr()
+}
+
diff --git a/ACE/tests/Bug_3334_Regression_Test.cpp b/ACE/tests/Bug_3334_Regression_Test.cpp
new file mode 100644
index 00000000000..258c8b0284b
--- /dev/null
+++ b/ACE/tests/Bug_3334_Regression_Test.cpp
@@ -0,0 +1,48 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = DESCRIPTION
+// This test exercises ACE_Service_Config SEGV during shutdown when
+// Modules get double deleted. Once by Stream parent,
+// once by ACE_Service_Repository
+//
+// = AUTHOR
+// Chad Beaulac <chad@objectivesolutions.com>
+//
+// ============================================================================
+
+#include "test_config.h"
+#include "ace/Log_Msg.h"
+#include "ace/Service_Config.h"
+
+
+
+int
+run_main (int, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3334_Regression_Test"));
+
+ ACE_TCHAR *_argv[3] = { argv[0],
+ const_cast<ACE_TCHAR*> (ACE_TEXT ("-f")),
+ const_cast<ACE_TCHAR*>
+ (ACE_TEXT ("Bug_3334_Regression_Test.conf")) };
+ int status = 0;
+ if ((status = ACE_Service_Config::open (3,
+ _argv,
+ ACE_DEFAULT_LOGGER_KEY,
+ true,
+ true /*ignore def svc.conf*/)) == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("open"),
+ 1));
+
+ ACE_Service_Config::fini_svcs ();
+
+ ACE_END_TEST;
+ return status;
+}
diff --git a/ACE/tests/Bug_3432_Regression_Test.cpp b/ACE/tests/Bug_3432_Regression_Test.cpp
index ecfb7189551..047f27b2f06 100644
--- a/ACE/tests/Bug_3432_Regression_Test.cpp
+++ b/ACE/tests/Bug_3432_Regression_Test.cpp
@@ -20,7 +20,7 @@
#include "ace/OS_NS_sys_time.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(tests, Bug_3432_Regression_Test, "$Id$")
+
int
strptime_test (void)
diff --git a/ACE/tests/Bug_3500_Regression_Test.cpp b/ACE/tests/Bug_3500_Regression_Test.cpp
index 968d226180f..ccb285f22c4 100644
--- a/ACE/tests/Bug_3500_Regression_Test.cpp
+++ b/ACE/tests/Bug_3500_Regression_Test.cpp
@@ -11,11 +11,7 @@
#include "ace/OS_NS_sys_mman.h"
#include "ace/SString.h"
-#include "tests/test_config.h"
-
-ACE_RCSID (tests,
- Bug_3500_Regression_Test,
- "$Id$")
+#include "test_config.h"
int
run_main (int, ACE_TCHAR *[])
@@ -24,13 +20,13 @@ run_main (int, ACE_TCHAR *[])
int ret = 0;
-#if defined(ACE_WIN32)
+#if defined(ACE_WIN32) && !defined (ACE_LACKS_MMAP)
ACE_HANDLE handle = ACE_INVALID_HANDLE;
ACE_TString name(ACE_TEXT ("Bug3500"));
void *mmap =
ACE_OS::mmap(0, // addr
- 28, // len
+ 28, // len
PAGE_READWRITE, // prot
MAP_SHARED, // flags
ACE_INVALID_HANDLE, // file_handle
@@ -46,9 +42,11 @@ run_main (int, ACE_TCHAR *[])
#endif
if (0 != ret)
- {
- ACE_ERROR ((LM_ERROR, ACE_TEXT ("ACE_OS::mmap() failed\n")));
- }
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ACE_OS::mmap() %p\n"),
+ ACE_TEXT ("failed")));
+ }
ACE_END_TEST;
diff --git a/ACE/tests/Bug_3505_Regression_Test.cpp b/ACE/tests/Bug_3505_Regression_Test.cpp
index 46b89901b1f..a61b6945b51 100644
--- a/ACE/tests/Bug_3505_Regression_Test.cpp
+++ b/ACE/tests/Bug_3505_Regression_Test.cpp
@@ -16,7 +16,7 @@
#include "ace/Service_Gestalt.h"
#include "test_config.h"
-ACE_RCSID(tests, Bug_3505_Regression_Test, "$Id$")
+
int
run_main (int, ACE_TCHAR *[])
diff --git a/ACE/tests/Bug_3532_Regression_Test.cpp b/ACE/tests/Bug_3532_Regression_Test.cpp
index 0de011c6406..bc119794c6d 100644
--- a/ACE/tests/Bug_3532_Regression_Test.cpp
+++ b/ACE/tests/Bug_3532_Regression_Test.cpp
@@ -12,10 +12,6 @@
#include "test_config.h"
#include "ace/ACE.h"
-ACE_RCSID (tests,
- Bug_3532_Regression_Test,
- "$Id$")
-
int
run_main (int, ACE_TCHAR *[])
{
diff --git a/ACE/tests/Bug_3539_Regression_Test.cpp b/ACE/tests/Bug_3539_Regression_Test.cpp
new file mode 100644
index 00000000000..469a5403de3
--- /dev/null
+++ b/ACE/tests/Bug_3539_Regression_Test.cpp
@@ -0,0 +1,125 @@
+
+//=============================================================================
+/**
+ * @file Bug_3539_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * This test is similar to TSS_Test but it's a bit simpler and it uses
+ * ACE_TSS in a main() thread. It uses TSS_Test_Errno.h.
+ *
+ *
+ * @author Vladimir Zykov <vz@prismtech.com>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
+#include "TSS_Test_Errno.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/TSS_T.h"
+#include "ace/Thread_Manager.h"
+#include "ace/Atomic_Op_T.h"
+
+ACE_Atomic_Op<ACE_SYNCH_MUTEX, int> status;
+
+#if defined (ACE_HAS_THREADS)
+
+struct ObjectWithTSS
+{
+public:
+ ACE_TSS_TYPE (Errno) tss_;
+};
+
+// Static variables.
+int Errno::flags_;
+int Errno::created_;
+int Errno::deleted_;
+ACE_Thread_Mutex *Errno::lock_ = 0;
+
+ACE_THR_FUNC_RETURN
+check_tss (ObjectWithTSS *o)
+{
+ if (0 == o)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Nil object."));
+ status = 1;
+ }
+
+ Errno *e = o->tss_.ts_object (0);
+ if (0 != e)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "TSS should not have any value yet."));
+ status = 2;
+ }
+
+ e = ACE_TSS_GET (&o->tss_, Errno);
+ if (0 == e)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "TSS should now have a value."));
+ status = 3;
+ }
+
+ return 0;
+}
+
+// This worker function is the entry point for each thread.
+ACE_THR_FUNC_RETURN
+worker (void *c)
+{
+ return check_tss (reinterpret_cast<ObjectWithTSS *> (c));
+}
+
+#endif /* ACE_HAS_THREADS */
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3539_Regression_Test"));
+
+#if defined (ACE_HAS_THREADS)
+ Errno::allocate_lock ();
+
+ const u_int threads = ACE_MAX_THREADS;
+
+ {
+ ObjectWithTSS *o = 0;
+ ACE_NEW_RETURN (o, ObjectWithTSS, 1);
+ ACE_Auto_Ptr<ObjectWithTSS> owner (o);
+
+ if (ACE_Thread_Manager::instance ()->spawn_n
+ (threads,
+ ACE_THR_FUNC (worker),
+ o,
+ THR_BOUND) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"), ACE_TEXT ("spawn_n")),
+ 1);
+
+ check_tss (o);
+
+ ACE_Thread_Manager::instance ()->wait ();
+ }
+
+ Errno::deallocate_lock ();
+
+ if (Errno::created () != Errno::deleted ())
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Number created (%d) ")
+ ACE_TEXT ("!= number deleted (%d)\n"),
+ Errno::created (), Errno::deleted ()),
+ 1);
+ }
+
+#else /* ACE_HAS_THREADS */
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("threads are not supported on this platform\n")));
+#endif /* ACE_HAS_THREADS */
+
+ ACE_END_TEST;
+ return status.value ();
+}
diff --git a/ACE/tests/Bug_3541_Regression_Test.cpp b/ACE/tests/Bug_3541_Regression_Test.cpp
index cbd0b28c791..f7626bca55c 100644
--- a/ACE/tests/Bug_3541_Regression_Test.cpp
+++ b/ACE/tests/Bug_3541_Regression_Test.cpp
@@ -14,12 +14,7 @@
#include "ace/Semaphore.h"
#include "ace/OS_NS_errno.h"
#include "ace/SString.h"
-#include "tests/test_config.h"
-
-
-ACE_RCSID (tests,
- Bug_3541_Regression_Test,
- "$Id$")
+#include "test_config.h"
int
run_main (int, ACE_TCHAR *[])
diff --git a/ACE/tests/Bug_3673_Regression_Test.cpp b/ACE/tests/Bug_3673_Regression_Test.cpp
new file mode 100644
index 00000000000..251978627be
--- /dev/null
+++ b/ACE/tests/Bug_3673_Regression_Test.cpp
@@ -0,0 +1,86 @@
+/**
+ * @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"
+
+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"; }
+};
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3673_Regression_Test"));
+ int result = 0;
+
+ 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;
+ }
+
+ ACE_END_TEST;
+
+ return result;
+}
diff --git a/ACE/tests/Bug_3709_Regression_Test.cpp b/ACE/tests/Bug_3709_Regression_Test.cpp
new file mode 100644
index 00000000000..ef4607c2d4e
--- /dev/null
+++ b/ACE/tests/Bug_3709_Regression_Test.cpp
@@ -0,0 +1,50 @@
+/**
+ * @file Bug_3709_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * Reproduces the problems reported in bug 3709
+ * http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=3709
+ */
+
+#include "test_config.h"
+#include "ace/ACE.h"
+#include "ace/OS_NS_stdio.h"
+#include <vector>
+
+using namespace std;
+
+#if defined(_MSC_VER) && _MSC_VER < 1400
+#define MSVC_71_OR_OLDER
+#endif
+
+// clang version 2.9 crashes when trying to compile the test
+// http://llvm.org/bugs/show_bug.cgi?id=9643
+#ifdef __clang__
+#define MSVC_71_OR_OLDER
+#endif
+
+#ifndef MSVC_71_OR_OLDER
+template<template<typename U, typename = std::allocator<U> > class container, typename DT>
+container<DT> initializer(const DT &d)
+{
+ container<DT> t ;
+ t.insert(t.end(), d);
+ return t;
+}
+#endif
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3709_Regression_Test"));
+
+#ifndef MSVC_71_OR_OLDER
+ vector<int> v = initializer<vector>(5);
+ v.clear ();
+#endif
+
+ ACE_END_TEST;
+
+ return 0;
+}
diff --git a/ACE/tests/Bug_3710_Regression_Test.cpp b/ACE/tests/Bug_3710_Regression_Test.cpp
new file mode 100644
index 00000000000..b6ea75ccdaa
--- /dev/null
+++ b/ACE/tests/Bug_3710_Regression_Test.cpp
@@ -0,0 +1,35 @@
+/**
+ * @file Bug_3710_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * Reproduces the problems reported in bug 3710
+ * http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=3710
+ */
+
+#include "test_config.h"
+
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_Memory.h"
+
+
+
+// Main function.
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3710_Regression_Test"));
+
+ ACE_TCHAR out_string[64*1024+1];
+
+ ACE_OS::memset(out_string,ACE_TEXT('@'),sizeof(out_string));
+ //I only use ACE_MAXLOGMSGLEN char .
+ out_string[ACE_MAXLOGMSGLEN] = ACE_TEXT('\0');
+ ACE_DEBUG((LM_ALERT, ACE_TEXT("%s out_string: I love beijing."),out_string));
+
+ ACE_END_TEST;
+ return 0;
+}
+
diff --git a/ACE/tests/Bug_3729_Regression_Test.cpp b/ACE/tests/Bug_3729_Regression_Test.cpp
new file mode 100644
index 00000000000..49f1bfe253c
--- /dev/null
+++ b/ACE/tests/Bug_3729_Regression_Test.cpp
@@ -0,0 +1,59 @@
+
+//=============================================================================
+/**
+ * @file Bug_3729_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ */
+//=============================================================================
+
+
+#include "test_config.h"
+#include "ace/OS_NS_string.h"
+#include "ace/INET_Addr.h"
+#include "ace/Log_Msg.h"
+
+struct Multicast_Address
+{
+ const char *addr_;
+ bool is_multicast_;
+};
+
+int run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3729_Regression_Test"));
+
+ int status = 0; // Innocent until proven guilty
+
+ // Test is_multicast()
+ Multicast_Address mcast_addresses[] =
+ {
+ { "223.0.0.5:23006", false },
+ { "224.0.0.0:23006", true },
+ { "224.0.0.1:23006", true },
+ { "239.255.255.255:23006", true },
+ { "240.0.0.0:23006", false },
+ { "2.0.0.224", false },
+ { 0, false }
+ };
+
+ for (int i = 0; mcast_addresses[i].addr_; ++i)
+ {
+ ACE_INET_Addr addr (mcast_addresses[i].addr_);
+
+ if (addr.is_multicast () != mcast_addresses[i].is_multicast_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ACE_INET_Addr::is_multicast() for ")
+ ACE_TEXT ("\"%C\" incorrectly returned %d\n"),
+ mcast_addresses[i].addr_,
+ (int)addr.is_multicast ()));
+ status = 1;
+ }
+ }
+
+ ACE_END_TEST;
+
+ return status;
+}
diff --git a/ACE/tests/Bug_3744_Regression_Test.cpp b/ACE/tests/Bug_3744_Regression_Test.cpp
new file mode 100644
index 00000000000..c7adc481517
--- /dev/null
+++ b/ACE/tests/Bug_3744_Regression_Test.cpp
@@ -0,0 +1,59 @@
+// $Id$
+
+#include "test_config.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_netdb.h"
+
+#undef THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL
+#define THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL(X) \
+ ((X) \
+ ? static_cast<void>(0) \
+ : ACE_VERSIONED_NAMESPACE_NAME::__ace_assert(__FILE__, __LINE__, ACE_TEXT_CHAR_TO_TCHAR (#X)))
+
+int
+getmacaddress_test (void)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Testing getmacaddress\n")));
+
+#if defined (ACE_LACKS_NETWORKING)
+ return 0;
+#else /* ACE_LACKS_NETWORKING */
+ struct ACE_OS::macaddr_node_t node;
+
+ ACE_OS::memset (&node, 0x0, sizeof (node));
+ int retval = ACE_OS::getmacaddress (&node);
+ if (retval == 0)
+ {
+ if (node.node[0] == 0x0 && node.node[1] == 0x0 && node.node[2] == 0x0 &&
+ node.node[3] == 0x0 && node.node[4] == 0x0 && node.node[5] == 0x0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ACE_OS::getmacaddress() failed to get MAC address\n")));
+ ++retval;
+ }
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ACE_OS::getmacaddress() returned %d, should be 0\n"),
+ retval));
+ }
+ return retval;
+#endif /* ACE_LACKS_NETWORKING */
+}
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3744_Regression_Test"));
+
+ int status = 0;
+ int result;
+
+ if ((result = getmacaddress_test ()) != 0)
+ status = result;
+
+ ACE_END_TEST;
+ return status;
+}
+#undef THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL
diff --git a/ACE/tests/Bug_3758_Regression_Test.cpp b/ACE/tests/Bug_3758_Regression_Test.cpp
new file mode 100644
index 00000000000..c6c1819405a
--- /dev/null
+++ b/ACE/tests/Bug_3758_Regression_Test.cpp
@@ -0,0 +1,110 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = DESCRIPTION
+// This simple test exercises ACE_OS::fileno.
+//
+// = AUTHOR
+// Olli Savia <ops@iki.fi>
+//
+// ============================================================================
+
+#include "test_config.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_unistd.h"
+
+#undef THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL
+#define THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL(X) \
+ ((X) \
+ ? static_cast<void>(0) \
+ : ACE_VERSIONED_NAMESPACE_NAME::__ace_assert(__FILE__, __LINE__, ACE_TEXT_CHAR_TO_TCHAR (#X)))
+
+// Test ACE_OS::fileno()
+int
+fileno_test (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Testing fileno method\n")));
+
+ int test_status = 0;
+
+ ACE_HANDLE fn;
+
+ fn = ACE_OS::fileno (stdin);
+ if (fn == ACE_INVALID_HANDLE)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("fileno(stdin) returned ACE_INVALID_HANDLE.\n")));
+ test_status = -1;
+ }
+ else if (fn != ACE_STDIN)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("stdin test failed.\n")));
+ test_status = -1;
+ }
+
+ fn = ACE_OS::fileno (stdout);
+ if (fn == ACE_INVALID_HANDLE)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("fileno(stdout) returned ACE_INVALID_HANDLE.\n")));
+ test_status = -1;
+ }
+ else
+#if defined (ACE_WIN32)
+ // Check if stdout is not associated with an output stream.
+ // This is not an error.
+ if (fn == reinterpret_cast<ACE_HANDLE>(-2))
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("fileno(stdout) returned -2.\n")));
+ }
+ else
+#endif
+ if (fn != ACE_STDOUT)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("stdout test failed.\n")));
+ test_status = -1;
+ }
+
+ fn = ACE_OS::fileno (stderr);
+ if (fn == ACE_INVALID_HANDLE)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("fileno(stderr) returned ACE_INVALID_HANDLE.\n")));
+ test_status = -1;
+ }
+ else
+#if defined (ACE_WIN32)
+ // Check if stderr is not associated with an output stream.
+ // This is not an error.
+ if (fn == reinterpret_cast<ACE_HANDLE>(-2))
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("fileno(stderr) returned -2.\n")));
+ }
+ else
+#endif
+ if (fn != ACE_STDERR)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("stderr test failed.\n")));
+ test_status = -1;
+ }
+
+ return test_status;
+}
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3758_Regression_Test"));
+
+ int status = 0;
+ int result;
+
+ if ((result = fileno_test ()) != 0)
+ status = -1;
+
+ ACE_END_TEST;
+ return status;
+}
+#undef THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL
diff --git a/ACE/tests/Bug_3878_Regression_Test.cpp b/ACE/tests/Bug_3878_Regression_Test.cpp
new file mode 100644
index 00000000000..1e7ef669cf1
--- /dev/null
+++ b/ACE/tests/Bug_3878_Regression_Test.cpp
@@ -0,0 +1,276 @@
+// $Id$
+
+#include "ace/config-lite.h"
+
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_time.h"
+#include "ace/Task.h"
+#include "ace/Containers.h"
+#include "ace/Synch.h"
+#include "ace/SString.h"
+#include "ace/Method_Request.h"
+#include "ace/Future.h"
+#include "ace/Activation_Queue.h"
+#include "ace/Condition_T.h"
+#include "test_config.h"
+
+#if defined (ACE_HAS_THREADS)
+
+class Worker;
+
+class IManager
+{
+public:
+ virtual ~IManager (void) { }
+
+ virtual int return_to_work (Worker *worker) = 0;
+};
+
+// Listing 2 code/ch16
+class Worker : public ACE_Task<ACE_MT_SYNCH>
+{
+public:
+ Worker (IManager *manager) : manager_(manager) { }
+
+ virtual int svc (void)
+ {
+ ACE_Thread_ID id;
+ thread_id_ = id;
+ while (1)
+ {
+ ACE_Message_Block *mb = 0;
+ if (this->getq (mb) == -1)
+ ACE_ERROR_BREAK
+ ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("getq")));
+ if (mb->msg_type () == ACE_Message_Block::MB_HANGUP)
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("(%t) Shutting down\n")));
+ mb->release ();
+ break;
+ }
+ // Process the message.
+ process_message (mb);
+ // Return to work.
+ this->manager_->return_to_work (this);
+ }
+
+ return 0;
+ }
+
+ const ACE_Thread_ID& thread_id (void)
+ {
+ return thread_id_;
+ }
+
+private:
+ void process_message (ACE_Message_Block *mb)
+ {
+ ACE_TRACE ("Worker::process_message");
+ int msgId;
+ ACE_OS::memcpy (&msgId, mb->rd_ptr (), sizeof(int));
+ mb->release ();
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Started processing message %d\n"),
+ msgId));
+ ACE_OS::sleep (3);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Finished processing message %d\n"),
+ msgId));
+ }
+
+ IManager *manager_;
+ ACE_Thread_ID thread_id_;
+};
+
+// Listing 1 code/ch16
+class Manager: public ACE_Task<ACE_MT_SYNCH>, private IManager
+{
+public:
+ enum {POOL_SIZE = 5, MAX_TIMEOUT = 5};
+
+ Manager ()
+ : shutdown_(0), workers_lock_(), workers_cond_(workers_lock_)
+ {
+ ACE_TRACE ("Manager::Manager");
+ }
+
+ int svc (void)
+ {
+ ACE_TRACE ("Manager::svc");
+
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%t) Manager started\n")));
+
+ // Create pool.
+ create_worker_pool ();
+
+ while (!done ())
+ {
+ ACE_Message_Block *mb = 0;
+ ACE_Time_Value tv ((long)MAX_TIMEOUT);
+ tv += ACE_OS::time (0);
+
+ // Get a message request.
+ if (this->getq (mb, &tv) < 0)
+ {
+ shut_down ();
+ break;
+ }
+
+ // Choose a worker.
+ Worker *worker = 0;
+ {
+ ACE_GUARD_RETURN (ACE_Mutex,
+ worker_mon, this->workers_lock_, -1);
+
+ while (this->workers_.is_empty ())
+ workers_cond_.wait ();
+
+ this->workers_.dequeue_head (worker);
+ }
+
+ // Ask the worker to do the job.
+ worker->putq (mb);
+ }
+
+ return 0;
+ }
+
+ int shut_down (void);
+
+ const ACE_Thread_ID& thread_id (Worker *worker);
+
+ virtual int return_to_work (Worker *worker)
+ {
+ ACE_GUARD_RETURN (ACE_Mutex,
+ worker_mon, this->workers_lock_, -1);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Worker %t returning to work.\n")));
+ this->workers_.enqueue_tail (worker);
+ this->workers_cond_.signal ();
+
+ return 0;
+ }
+
+private:
+ int create_worker_pool (void)
+ {
+ ACE_GUARD_RETURN (ACE_Mutex,
+ worker_mon,
+ this->workers_lock_,
+ -1);
+ for (int i = 0; i < POOL_SIZE; i++)
+ {
+ Worker *worker;
+ ACE_NEW_RETURN (worker, Worker (this), -1);
+ this->workers_.enqueue_tail (worker);
+ worker->activate ();
+ }
+
+ return 0;
+ }
+
+ int done (void);
+
+private:
+ int shutdown_;
+ ACE_Mutex workers_lock_;
+ ACE_Condition<ACE_Mutex> workers_cond_;
+ ACE_Unbounded_Queue<Worker* > workers_;
+};
+// Listing 1
+
+int Manager::done (void)
+{
+ return (shutdown_ == 1);
+}
+
+int
+Manager::shut_down (void)
+{
+ ACE_TRACE ("Manager::shut_down");
+ ACE_Unbounded_Queue<Worker* >::ITERATOR iter =
+ this->workers_.begin ();
+ Worker **worker_ptr = 0;
+ do
+ {
+ iter.next (worker_ptr);
+ Worker *worker = (*worker_ptr);
+ ACE_Thread_ID id = thread_id (worker);
+ char buf [65];
+ id.to_string (buf);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Attempting shutdown of %C\n"),
+ buf));
+
+ // Send the hangup message.
+ ACE_Message_Block *mb = 0;
+ ACE_NEW_RETURN
+ (mb,
+ ACE_Message_Block(0,
+ ACE_Message_Block::MB_HANGUP),
+ -1);
+ worker->putq (mb);
+
+ // Wait for the exit.
+ worker->wait ();
+
+ ACE_TEST_ASSERT (worker->msg_queue ()->is_empty ());
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Worker %C shut down.\n"),
+ buf));
+ delete worker;
+ }
+ while (iter.advance ());
+
+ shutdown_ = 1;
+
+ return 0;
+}
+
+const ACE_Thread_ID&
+Manager::thread_id (Worker *worker)
+{
+ return worker->thread_id ();
+}
+#endif
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3878_Regression_Test"));
+
+#if defined (ACE_HAS_THREADS)
+ Manager tp;
+ tp.activate ();
+
+ // Wait for a moment every time you send a message.
+ ACE_Time_Value tv;
+ tv.msec (100);
+
+ ACE_Message_Block *mb = 0;
+ for (int i = 0; i < 3; i++)
+ {
+ ACE_NEW_RETURN
+ (mb, ACE_Message_Block(sizeof(int)), -1);
+
+ ACE_OS::memcpy (mb->wr_ptr (), &i, sizeof(int));
+
+ ACE_OS::sleep (tv);
+
+ // Add a new work item.
+ tp.putq (mb);
+ }
+
+ ACE_Thread_Manager::instance ()->wait ();
+#else /* ACE_HAS_THREADS */
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("threads are not supported on this platform\n")));
+#endif
+
+ ACE_END_TEST;
+
+ return 0;
+}
+
diff --git a/ACE/tests/Bug_3911_Regression_Test.cpp b/ACE/tests/Bug_3911_Regression_Test.cpp
new file mode 100644
index 00000000000..3f4d48dc36f
--- /dev/null
+++ b/ACE/tests/Bug_3911_Regression_Test.cpp
@@ -0,0 +1,166 @@
+/**
+ * @file Bug_3911_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * Reproduces the problem reported in bug 3911
+ * http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=3911
+ */
+
+#include "test_config.h"
+
+#include <ace/Malloc_T.h>
+#include <ace/Memory_Pool.h>
+#include <ace/Process_Mutex.h>
+#include <ace/Null_Mutex.h>
+#include <ace/PI_Malloc.h>
+
+#define MMAP_FILENAME ACE_TEXT ("shared_memory")
+
+static void
+init_test ()
+{
+ // Cleanup the MMAP file so we won't trip over the leftover mmap
+ // file from the previous crash.
+#if defined (ACE_HAS_WINCE) || defined (ACE_OPENVMS)
+ // WinCE cannot do fixed base, ever.
+ ACE_MMAP_Memory_Pool_Options options
+ (0,
+ ACE_MMAP_Memory_Pool_Options::NEVER_FIXED);
+#else
+ ACE_MMAP_Memory_Pool_Options options (ACE_DEFAULT_BASE_ADDR);
+#endif /* ACE_HAS_WINCE */
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_MMAP_Memory_Pool mmap (MMAP_FILENAME, &options);
+ //FUZZ: enable check_for_lack_ACE_OS
+
+ size_t rbyte = 0;
+ int ft = 0;
+ mmap.init_acquire (1024, rbyte, ft);
+ mmap.release ();
+}
+
+class ShmemMan
+{
+private:
+ // Used to implement the singleton pattern:
+ static ShmemMan* c_instance;
+
+ // The memory pool managing all the shared memory:
+ ACE_Malloc_T<ACE_MMAP_MEMORY_POOL,
+ ACE_Null_Mutex,
+ ACE_PI_Control_Block>* c_memory_pool;
+
+protected:
+ ShmemMan(bool no_crash)
+ {
+ if (no_crash)
+ {
+ ACE_MMAP_Memory_Pool_Options options (ACE_DEFAULT_BASE_ADDR);
+ c_memory_pool = new ACE_Malloc_T<ACE_MMAP_MEMORY_POOL,
+ ACE_Null_Mutex,
+ ACE_PI_Control_Block>(MMAP_FILENAME
+ , ACE_TEXT(""), &options
+ );
+ }
+ else
+ {
+ c_memory_pool = new ACE_Malloc_T<ACE_MMAP_MEMORY_POOL,
+ ACE_Null_Mutex,
+ ACE_PI_Control_Block>(MMAP_FILENAME);
+ }
+ };
+
+public:
+ ~ShmemMan()
+ {
+ c_memory_pool->release();
+ delete c_memory_pool;
+ };
+
+ static ShmemMan* getInstance(bool no_crash)
+ {
+ if (c_instance == 0)
+ {
+ c_instance = new ShmemMan(no_crash);
+ }
+ return c_instance;
+ };
+
+ int clean()
+ {
+ c_memory_pool->release();
+ c_memory_pool->remove();
+
+ return 0;
+ };
+
+ void* getMemoryBlock(const char* block_name, unsigned int block_size)
+ {
+ void* shared = 0;
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("errno = %d. Looking for a Shared Memory block named %C\n"),
+ ACE_OS::last_error(),
+ block_name));
+
+ if (c_memory_pool->find(block_name, shared) == 0)
+ {
+ // An existing block was found, so take that:
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Shared Memory block %C was found."),
+ block_name));
+ }
+ else
+ {
+ // Allocate the memory and bind it to a name:
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Shared Memory block %C was not found. errno = %d. Trying to allocate new block\n"),
+ block_name,
+ ACE_OS::last_error()));
+ shared = c_memory_pool->malloc(block_size);
+ if (shared < 0)
+ {
+ ACE_DEBUG((LM_INFO, ACE_TEXT("New Shared Memory block could not be allocated. errno = %d.\n"),
+ ACE_OS::last_error()));
+ return (void*)(-1);
+ }
+ ACE_DEBUG((LM_INFO, ACE_TEXT("New Shared Memory block was allocated, trying to bind it to the name %C\n"),
+ block_name));
+ if (c_memory_pool->bind(block_name, shared) < 0)
+ {
+ ACE_DEBUG((LM_INFO, ACE_TEXT("New Shared Memory block could not be bound to the name %C. errno = %d.\n"),
+ block_name,
+ ACE_OS::last_error()));
+
+ return (void*)(-1);
+ }
+ }
+
+ return shared;
+ };
+
+};
+
+ShmemMan* ShmemMan::c_instance = 0;
+
+const char* block_name = "block_1";
+
+// Main function.
+int
+run_main (int argc, ACE_TCHAR * argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3911_Regression_Test"));
+
+ init_test ();
+
+ bool no_crash = (argc>1 && argv[1][0]=='1');
+ ShmemMan* smm = ShmemMan::getInstance (no_crash);
+
+ void* buf = smm->getMemoryBlock (block_name, 10 * 4096);
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("allocated shmem block at %@\n"), buf));
+
+ smm->clean ();
+
+ ACE_END_TEST;
+ return 0;
+}
+
diff --git a/ACE/tests/Bug_3912_Regression_Test.conf b/ACE/tests/Bug_3912_Regression_Test.conf
new file mode 100644
index 00000000000..54be0075303
--- /dev/null
+++ b/ACE/tests/Bug_3912_Regression_Test.conf
@@ -0,0 +1,7 @@
+# $Id$
+
+stream dynamic Close_Test_Stream STREAM *Service_Config_Stream_DLL:make_stream() active
+{
+ dynamic Close_Test_Module Module *Service_Config_Stream_DLL:make_close()
+}
+
diff --git a/ACE/tests/Bug_3912_Regression_Test.cpp b/ACE/tests/Bug_3912_Regression_Test.cpp
new file mode 100644
index 00000000000..3a8e3ae1a3e
--- /dev/null
+++ b/ACE/tests/Bug_3912_Regression_Test.cpp
@@ -0,0 +1,146 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = DESCRIPTION
+// This test asserts that close is called on Modules during
+// ACE_Service_Repository shutdown
+//
+// = AUTHOR
+// Chad Beaulac <chad@objectivesolutions.com>
+//
+// ============================================================================
+
+#include "test_config.h"
+
+#include "ace/Log_Msg.h"
+#include "ace/Service_Config.h"
+#include "ace/Service_Repository.h"
+#include "ace/Service_Object.h"
+#include "ace/Service_Types.h"
+#include "ace/Task.h"
+#include "ace/Module.h"
+
+typedef ACE_Task<ACE_SYNCH> MT_Task;
+typedef ACE_Module<ACE_SYNCH> MT_Module;
+
+/**
+ * We use this Task to track if close was called.
+ */
+class Close_Handler : public virtual MT_Task
+{
+public:
+
+ Close_Handler(bool* close_called_arg)
+ : close_called_ (close_called_arg)
+ {
+ }
+
+ virtual int close(u_long );
+
+private:
+ bool* close_called_;
+};
+
+
+int Close_Handler::close(u_long )
+{
+ ACE_DEBUG ((LM_DEBUG,"Close_Handler::close \n"));
+ *close_called_ = true;
+ return 0;
+}
+
+int
+run_test (int argc, ACE_TCHAR *argv[])
+{
+ int status = 0;
+ bool close_called = false;
+ Close_Handler* close_handler = 0;
+ ACE_NEW_RETURN(close_handler, Close_Handler (&close_called), -1);
+
+ status = ACE_Service_Config::open (argc,
+ argv,
+ ACE_DEFAULT_LOGGER_KEY,
+ true,
+ true /*ignore def svc.conf*/);
+ if (status != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("run_test, %p\n")
+ ACE_TEXT ("ACE_Service_Config::open")),
+ status);
+
+ ACE_Service_Repository *asr = ACE_Service_Repository::instance ();
+ const ACE_Service_Type* st = 0;
+ status = asr->find (ACE_TEXT ("Close_Test_Module"), &st);
+ if (status != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("run_test, %p on Close_Test_Module\n")
+ ACE_TEXT ("ACE_Service_Repository::find")),
+ status);
+
+ //
+ // Put our Close_Handler Task into the Module
+ //
+ MT_Module* close_test_module =
+ static_cast <MT_Module *> (st->type()->object ());
+
+ close_test_module->reader (close_handler);
+
+ //
+ // Remove the Module from the Stream.
+ // This is what happens during ACE_Service_Repository::fini
+ // We want to make sure that close is called on Modules and their Tasks
+ // at this time to ensure proper cleanup during the shutdown sequence
+ // by getting the close methods called so user shutdown hooks can fire.
+ //
+
+ const ACE_Module_Type* module_type =
+ static_cast< const ACE_Module_Type*>(st->type ());
+
+ status = asr->find (ACE_TEXT ("Close_Test_Stream"), &st);
+ if (status != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("run_test, %p on Close_Test_Stream\n")
+ ACE_TEXT ("ACE_Service_Repository::find")),
+ status);
+ }
+ const ACE_Stream_Type* close_test_stream =
+ static_cast<const ACE_Stream_Type*> (st->type ());
+
+ ACE_Stream_Type *nc_stream = const_cast<ACE_Stream_Type*>(close_test_stream);
+ ACE_Module_Type *nc_module = const_cast<ACE_Module_Type*>(module_type);
+ nc_stream->remove (nc_module);
+
+ if (!close_called)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("close not called\n")));
+ status++;
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" SUCCESS: close called\n")));
+ }
+ return status;
+}
+
+int
+run_main(int, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3912_Regression_Test"));
+
+ ACE_TCHAR * _argv[3] = {argv[0],
+ const_cast<ACE_TCHAR*> (ACE_TEXT ("-f")),
+ const_cast<ACE_TCHAR*>
+ (ACE_TEXT ("Bug_3912_Regression_Test.conf"))};
+
+ int status = run_test (3,_argv);
+
+ ACE_Service_Config::fini_svcs ();
+
+ ACE_END_TEST;
+ return status;
+}
diff --git a/ACE/tests/Bug_3943_Regression_Test.cpp b/ACE/tests/Bug_3943_Regression_Test.cpp
new file mode 100644
index 00000000000..400d1ea65fa
--- /dev/null
+++ b/ACE/tests/Bug_3943_Regression_Test.cpp
@@ -0,0 +1,1148 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = FILENAME
+// Bug_3943_Regression_Test.cpp
+//
+// = DESCRIPTION
+// When a large buffer is sent to ACE_OS::sendv, using winsock2,
+// ENOBUFS occurs, which indicates that the buffer was too large
+// for WSASend to accept. On other platforms ENOBUFS indicates a
+// situation similar to EWOULDBLOCK, only that the buffer on the
+// send side is completely full. ACE_OS::sendv for winsock2 now
+// tries to divide the buffer and try to send, until data is sent
+// or a different error is received. This test allocates a large
+// iovec array buffer and verifies that a partial send occurs.
+//
+// = AUTHOR
+// Brian Johnson <johnsonb@ociweb.com>,
+//
+// ============================================================================
+
+#include "test_config.h"
+#include "ace/SOCK_Connector.h"
+#include "ace/LOCK_SOCK_Acceptor.h"
+#include "ace/Acceptor.h"
+#include "ace/Handle_Set.h"
+#include "ace/Connector.h"
+#include "ace/OS_NS_sys_select.h"
+#include "ace/OS_NS_sys_wait.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/os_include/os_netdb.h"
+
+
+// The following works around bugs with some operating systems, which
+// don't allow multiple threads/process to call accept() on the same
+// listen-mode port/socket. Also, note that since timed accept is
+// implemented using select(), and we use timed accepts with threads,
+// we need a real lock when using timed accepts even if the OS has
+// thread-safe accept.
+//
+#if defined (ACE_LACKS_FORK)
+# if defined (ACE_HAS_THREADS)
+# include "ace/Thread_Mutex.h"
+ typedef ACE_Thread_Mutex ACCEPTOR_LOCKING;
+# else
+# include "ace/Null_Mutex.h"
+ typedef ACE_Null_Mutex ACCEPTOR_LOCKING;
+# endif /* ACE_HAS_THREADS */
+#else
+# if defined (ACE_HAS_THREAD_SAFE_ACCEPT)
+# include "ace/Null_Mutex.h"
+ typedef ACE_Null_Mutex ACCEPTOR_LOCKING;
+# else
+# include "ace/Process_Mutex.h"
+ typedef ACE_Process_Mutex ACCEPTOR_LOCKING;
+# endif /* ACE_HAS_THREAD_SAFE_ACCEPT */
+#endif /* ACE_LACKS_FORK */
+
+#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
+#define LOCK_SOCK_ACCEPTOR ACE_LOCK_SOCK_Acceptor<ACCEPTOR_LOCKING>
+#else
+#define LOCK_SOCK_ACCEPTOR ACE_LOCK_SOCK_Acceptor<ACCEPTOR_LOCKING>, ACE_INET_Addr
+#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
+
+#define REFCOUNTED_HASH_RECYCLABLE_ADDR ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>
+
+namespace {
+
+ const char FINISHED_CHAR = '%';
+ const char RESTART_CHAR = '&';
+ const char START_CHAR = '0';
+ bool server_complete = false;
+ bool client_complete = false;
+ volatile int expected_num_messages = 0;
+
+ char nextChar(const char current)
+ {
+ if ((current == '9') ||
+ (current == RESTART_CHAR) ||
+ (current == FINISHED_CHAR))
+ return '0';
+
+ return current + 1;
+ }
+
+#if defined (ACE_LACKS_IOVEC)
+ typedef u_long buffer_len;
+#else
+ typedef size_t buffer_len;
+#endif /* ACE_LACKS_IOVEC */
+
+#if defined (ACE_WIN32)
+ int beforeVersion(const DWORD majorVersion,
+ const DWORD minorVersion,
+ const BYTE productType)
+ {
+#if !defined(ACE_HAS_WINCE)
+ OSVERSIONINFOEX versioninfo;
+ versioninfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
+ versioninfo.dwMajorVersion = majorVersion;
+ versioninfo.dwMinorVersion = minorVersion;
+ versioninfo.wProductType = productType;
+
+ ULONGLONG aboveMajorVer6TypeMask = 0;
+ aboveMajorVer6TypeMask =
+ ::VerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER);
+
+ if (::VerifyVersionInfo(&versioninfo, VER_MAJORVERSION,
+ aboveMajorVer6TypeMask) > 0)
+ return 1;
+
+ ACE_OS::set_errno_to_last_error ();
+ if (errno != ERROR_OLD_WIN_VERSION)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) VerifyVersionInfo errno = %d, ")
+ ACE_TEXT ("major version check must have been ")
+ ACE_TEXT ("defined incorrectly.\n"),
+ errno));
+ return -1;
+ }
+
+ ULONGLONG majorV6AboveMinorV1TypeMask = 0;
+ majorV6AboveMinorV1TypeMask =
+ ::VerSetConditionMask(0, VER_MAJORVERSION, VER_EQUAL);
+ majorV6AboveMinorV1TypeMask =
+ ::VerSetConditionMask(majorV6AboveMinorV1TypeMask,
+ VER_MINORVERSION, VER_GREATER);
+
+ if (::VerifyVersionInfo(&versioninfo,
+ VER_MAJORVERSION | VER_MINORVERSION,
+ majorV6AboveMinorV1TypeMask) > 0)
+ return 1;
+
+ ACE_OS::set_errno_to_last_error ();
+ if (errno != ERROR_OLD_WIN_VERSION)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) VerifyVersionInfo errno = %d, ")
+ ACE_TEXT ("minor version check must have been ")
+ ACE_TEXT ("defined incorrectly.\n"),
+ errno));
+ return -1;
+ }
+
+ ULONGLONG majorV6MinorV1NTTypeMask = 0;
+ majorV6MinorV1NTTypeMask =
+ ::VerSetConditionMask(0, VER_MAJORVERSION, VER_EQUAL);
+ majorV6MinorV1NTTypeMask =
+ ::VerSetConditionMask(majorV6MinorV1NTTypeMask,
+ VER_MINORVERSION, VER_EQUAL);
+ majorV6MinorV1NTTypeMask =
+ ::VerSetConditionMask(majorV6MinorV1NTTypeMask,
+ VER_PRODUCT_TYPE, VER_EQUAL);
+
+ if (::VerifyVersionInfo(&versioninfo,
+ VER_MAJORVERSION | VER_MINORVERSION | VER_PRODUCT_TYPE,
+ majorV6MinorV1NTTypeMask) > 0)
+ return 1;
+
+ ACE_OS::set_errno_to_last_error ();
+ if (errno != ERROR_OLD_WIN_VERSION)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) VerifyVersionInfo errno=%d,")
+ ACE_TEXT (" call must have been defined incorrectly.\n"),
+ errno));
+ return -1;
+ }
+
+ return 0;
+#else // defined(ACE_HAS_WINCE)
+ // no version testing of WinCE has been performed
+ ACE_UNUSED_ARG (majorVersion);
+ ACE_UNUSED_ARG (minorVersion);
+ ACE_UNUSED_ARG (productType);
+ return -1;
+#endif /* ACE_HAS_WINCE */
+ }
+#endif /* ACE_WIN32 */
+
+ int processENOBUFS()
+ {
+#if defined (ACE_WIN32) && !defined(ACE_HAS_WINCE)
+ // it has been identified that Windows7 does not have the ENOBUFS issue
+ // but testing has not been performed on Server 2008 or Vista to identify
+ // wether the issue exists or not
+ return beforeVersion(6, 1, VER_NT_WORKSTATION);
+#else // defined(ACE_HAS_WINCE)
+ // currently, no versions of WINCE identified to not have the ENOBUFS error
+ return 0;
+#endif /* ACE_WIN32 && !ACE_HAS_WINCE */
+ }
+
+ struct IovecGuard
+ {
+ IovecGuard(const int count, const int slot, const buffer_len max);
+ ~IovecGuard();
+ char* getBufferAtOffset(const ssize_t offset);
+
+ const int iovcnt_;
+ buffer_len totalBytes_;
+ iovec* iov_;
+ static const int ALL_SLOTS = -1;
+ };
+
+ class Svc_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+ {
+ // = TITLE
+ // This class is the product created by both <ACE_Connector>
+ // and <ACE_Acceptor> objects.
+ //
+ // = DESCRIPTION
+ // This class gets its own header file to work around AIX C++
+ // compiler "features" related to template instantiation... It is
+ // only used by Conn_Test.cpp.
+ public:
+ Svc_Handler (ACE_Thread_Manager * = 0);
+ // Do-nothing constructor.
+
+ virtual int open (void *);
+ // Initialization hook.
+
+ void send_data (void);
+ // Send data to server.
+
+ void recv_data (void);
+ // Recv data from client.
+
+ int close (u_long = 0);
+ // Shutdown the <Svc_Handler>.
+
+ private:
+ enum Direction { READ, WRITE };
+ bool wait_for_completion(Direction direction);
+
+ ssize_t send (IovecGuard& iovec_array,
+ const ACE_TCHAR * const send_desc,
+ bool use_sendv,
+ bool test_message = false);
+
+ ssize_t send (char send_char, const ACE_TCHAR * const send_desc);
+
+ const ACE_Time_Value DEFAULT_TIME_VALUE;
+
+ };
+} // namespace ""
+
+typedef ACE_Oneshot_Acceptor<Svc_Handler,
+ LOCK_SOCK_ACCEPTOR> ACCEPTOR;
+typedef ACE_Connector<Svc_Handler,
+ ACE_SOCK_CONNECTOR> CONNECTOR;
+
+
+IovecGuard::IovecGuard(const int count, const int slot, const buffer_len max)
+ : iovcnt_(count),
+ totalBytes_(0)
+{
+ ACE_NEW (iov_,iovec[iovcnt_]);
+ int i = 0;
+ char expChar = START_CHAR;
+ for ( ; i < iovcnt_; ++i)
+ {
+ iov_[i].iov_len = ((slot == i) || (slot == ALL_SLOTS)) ? max : 10;
+ totalBytes_ += iov_[i].iov_len;
+ }
+ char* totalBuffer;
+ // allocate all iov_bases as one big chunk
+ ACE_NEW (totalBuffer,
+ char[totalBytes_]);
+ for (i = 0; i < iovcnt_; ++i)
+ {
+ iov_[i].iov_base = totalBuffer;
+ totalBuffer += iov_[i].iov_len;
+ for (u_long j = 0; j < static_cast<u_long>(iov_[i].iov_len); ++j)
+ {
+ char *charbase = static_cast<char *>(iov_[i].iov_base);
+ charbase[j] = expChar;
+ expChar = ::nextChar(expChar);
+ }
+ }
+}
+
+IovecGuard::~IovecGuard()
+{
+ // iov_bases are all just part of one big buffer
+ char* totalBuffer = static_cast<char *>(iov_[0].iov_base);
+ delete [] totalBuffer;
+ delete [] iov_;
+}
+
+char*
+IovecGuard::getBufferAtOffset(const ssize_t offset)
+{
+ char * totalBuffer = static_cast<char *>(iov_[0].iov_base);
+ return totalBuffer + offset;
+}
+
+Svc_Handler::Svc_Handler (ACE_Thread_Manager *)
+: DEFAULT_TIME_VALUE (ACE_DEFAULT_TIMEOUT)
+{
+}
+
+int
+Svc_Handler::open (void *)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) opening Svc_Handler %@ with handle %d\n"),
+ this,
+ this->peer ().get_handle ()));
+ // Enable non-blocking I/O.
+ if (this->peer ().enable (ACE_NONBLOCK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("enable")),
+ -1);
+ return 0;
+}
+
+void
+Svc_Handler::send_data (void)
+{
+ bool successful = true;
+ bool win32_test = false;
+ const int testType = processENOBUFS();
+ const ACE_TCHAR *send_desc = ACE_TEXT ("");
+ ssize_t result = 0;
+ if (testType == 0)
+ {
+ buffer_len tryThreshold = 0x7fff;
+ ssize_t thresholdActualSend = -1;
+ const ssize_t MAX =
+ static_cast<ssize_t>(
+ (static_cast<unsigned long long>(1) <<
+ (static_cast<unsigned long long>(sizeof(ssize_t) * 8) -
+ static_cast<unsigned long long>(1))) - 1);
+ const unsigned int startShift = 4;
+ unsigned int shift = startShift;
+ unsigned int trailingMask = 0xffff;
+ while (static_cast<ssize_t>(tryThreshold) < MAX)
+ {
+ IovecGuard all(1, 0, tryThreshold);
+ thresholdActualSend =
+ this->send(all, ACE_TEXT ("identifying threshold"), true, true);
+ if (thresholdActualSend <= static_cast<ssize_t>(tryThreshold)/2 + 1)
+ if (shift <= 1)
+ break;
+ else
+ {
+ // try and identify the threshold more closely
+ shift /= 2;
+ tryThreshold = tryThreshold >> shift;
+ continue;
+ }
+ else if ((shift < startShift) && (shift > 1))
+ // already narrowing in on value
+ shift /= 2;
+
+ tryThreshold = (tryThreshold << shift) | trailingMask;
+ ACE_OS::sleep(0);
+ }
+
+#if defined (ACE_WIN32)
+ win32_test = true;
+ // This test only applies to win32 platforms, on systems with
+ // sane sendv impls, this is not a problem.
+ if (thresholdActualSend != static_cast<ssize_t>(tryThreshold)/2 + 1)
+ {
+ if (static_cast<ssize_t>(tryThreshold) == MAX)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) was not able to identify a point ")
+ ACE_TEXT ("where ACE_OS::sendv does not send a ")
+ ACE_TEXT ("complete buffer so the Bug #3943 ENOBUFS ")
+ ACE_TEXT ("condition does not occur on this ")
+ ACE_TEXT ("platform.\n")));
+ else
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) was not able to identify a point ")
+ ACE_TEXT ("where ACE_OS::sendv sent a partial buffer ")
+ ACE_TEXT ("that was consistent with Bug #3943 ")
+ ACE_TEXT ("ENOBUFS condition logic, so this test ")
+ ACE_TEXT ("probably running into other socket ")
+ ACE_TEXT ("limitations and needs to be redesigned. ")
+ ACE_TEXT ("Stuck sending %d.\n"),
+ thresholdActualSend));
+ close ();
+ return;
+ }
+#endif /* ACE_WIN32 */
+
+ buffer_len overThreshold = tryThreshold;
+ if (ACE::debug())
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) identified a buffer with %d bytes ")
+ ACE_TEXT ("hits the ENOBUFS condition.\n"),
+ overThreshold));
+
+#if !defined (ACE_WIN32) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0))
+
+ {
+ buffer_len underThreshold = (overThreshold + 1) / 2;
+ // verify that if the total buffer is too large that partial is sent
+ IovecGuard all(2, IovecGuard::ALL_SLOTS, underThreshold);
+ send_desc = ACE_TEXT ("2 iovecs combined to be too large");
+ result = this->send(all, send_desc, true);
+ if (win32_test && static_cast<u_long>(result) != underThreshold)
+ {
+ successful = false;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) logic should have sent the ")
+ ACE_TEXT ("complete first iovec, ")
+ ACE_TEXT ("expected %d got %d out of %d\n"),
+ underThreshold, result,all.totalBytes_ ));
+ }
+ }
+
+ {
+ IovecGuard all(2, IovecGuard::ALL_SLOTS, overThreshold);
+ send_desc = ACE_TEXT ("2 iovecs each are too large");
+ result = this->send(all, send_desc, true);
+ if (!(result > 0))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected > 0, got %d\n"),
+ send_desc, result));
+ successful = false;
+ }
+ }
+
+ {
+ IovecGuard small_iov(2, 0, overThreshold);
+ send_desc = ACE_TEXT ("large iovec followed by small iovec");
+ result = this->send(small_iov, send_desc, true);
+ if (!(result > 0))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected > 0, got %d\n"),
+ send_desc, result));
+ successful = false;
+ }
+ }
+
+ {
+ IovecGuard large(4, 2, overThreshold);
+ send_desc = ACE_TEXT ("4 iovecs with third large");
+ result = this->send(large, send_desc, true);
+ if (!(result > 0))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected > 0, got %d\n"),
+ send_desc, result));
+ successful = false;
+ }
+ }
+
+ {
+ // verify that the buffer gets divided till it can send
+ IovecGuard large(6, 5, 2 * overThreshold);
+ send_desc = ACE_TEXT ("6 iovecs with last very large");
+ result = this->send(large, send_desc, true);
+ if (!(result > 0))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected > 0, got %d\n"),
+ send_desc, result));
+ successful = false;
+ }
+
+ }
+
+ {
+ IovecGuard array(1, 0, overThreshold);
+ send_desc = ACE_TEXT ("just one large iovec in array");
+ result = this->send(array, send_desc, true);
+ if (!(result > 0))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected > 0, got %d\n"),
+ send_desc, result));
+ successful = false;
+ }
+ }
+
+ {
+ IovecGuard array(1, 0, 2 * overThreshold);
+ send_desc = ACE_TEXT ("just one very large iovec in array");
+ result = this->send(array, send_desc, true);
+ if (!(result > 0))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected > 0, got %d\n"),
+ send_desc, result));
+ successful = false;
+ }
+ }
+
+#endif /* ACE_HAS_WINSOCK2 && (ACE_HAS_WINSOCK2 != 0) */
+#if !defined (ACE_LACKS_SEND)
+
+ {
+ IovecGuard one(1, 0, overThreshold);
+ send_desc = ACE_TEXT ("large");
+ result = this->send(one, send_desc, false);
+ if (!(result > 0))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected > 0, got %d\n"),
+ send_desc, result));
+ successful = false;
+ }
+ }
+
+ {
+ IovecGuard one(1, 0, 2 * overThreshold);
+ send_desc = ACE_TEXT ("very large");
+ result = send(one, send_desc, false);
+ if (!(result > 0))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected > 0, got %d\n"),
+ send_desc, result));
+ successful = false;
+ }
+ }
+
+#endif /* !ACE_LACKS_SEND */
+ }
+ else if (testType > 0)
+ {
+ // since ENOBUFS condition is expected to not occur on this platform,
+ // send a very large message and verify that ACE_OS::sendv and send
+ // are able to send the whole buffer in one call
+#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
+
+ {
+ IovecGuard small_iov(2, 0, 0x0fffffff);
+ send_desc = ACE_TEXT ("large iovec followed by small iovec");
+ result = this->send(small_iov, send_desc, true, true);
+ if (result < 0 || static_cast<u_long>(result) != small_iov.totalBytes_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected %d, got %d\n"),
+ send_desc, small_iov.totalBytes_, result));
+ successful = false;
+ }
+ }
+
+ {
+ IovecGuard array(1, 0, 0x0fffffff);
+ send_desc = ACE_TEXT ("just one large iovec in array");
+ result = this->send(array, send_desc, true, true);
+ if (result < 0 || (static_cast<u_long>(result) != array.totalBytes_))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected %d, got %d\n"),
+ send_desc, array.totalBytes_, result));
+ successful = false;
+ }
+ }
+
+#endif /* ACE_HAS_WINSOCK2 && (ACE_HAS_WINSOCK2 != 0) */
+#if !defined (ACE_LACKS_SEND)
+
+ {
+ IovecGuard one(1, 0, 0x0fffffff);
+ send_desc = ACE_TEXT ("large");
+ result = this->send(one, send_desc, false, true);
+ if (result < 0 || static_cast<u_long>(result) != one.totalBytes_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %s: expected %d, got %d\n"),
+ send_desc, one.totalBytes_, result));
+ successful = false;
+ }
+ }
+
+#endif /* !ACE_LACKS_SEND */
+ }
+ else // testType < 0
+ // the determination of testType failed, ERROR is already reported
+ successful = false;
+
+ // need to indicate that the message is restarting
+ // this may fail if the server reads the char and closes before
+ // it is done, so let the server report the error if there was one
+ send_desc = ACE_TEXT ("indicating no more messages");
+ this->send(FINISHED_CHAR, send_desc);
+
+ this->wait_for_completion(READ);
+ if (close () == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("close")));
+ return;
+ }
+ client_complete = successful;
+}
+
+ssize_t
+Svc_Handler::send (IovecGuard& iovec_array,
+ const ACE_TCHAR * const send_desc,
+ const bool use_sendv,
+ const bool test_message)
+{
+ ++expected_num_messages;
+ const ACE_TCHAR* const send_func_name =
+ (use_sendv) ? ACE_TEXT ("ACE_OS::sendv") : ACE_TEXT ("ACE_OS::send");
+ if (ACE::debug())
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) send, using %s for %s (%d bytes)\n"),
+ send_func_name, send_desc, iovec_array.totalBytes_));
+
+ if (!use_sendv && (iovec_array.iovcnt_ != 1))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) send, this function is not designed to ")
+ ACE_TEXT ("send an array of iovecs as individuals, %s\n"),
+ send_desc));
+ return -1;
+ }
+
+ if (expected_num_messages > 1)
+ // need to indicate that the message is restarting
+ if (this->send(RESTART_CHAR, send_desc) < 1)
+ return -1;
+
+ ssize_t actual_send_status;
+
+ if (use_sendv)
+ while (((actual_send_status =
+ this->peer ().sendv (iovec_array.iov_,
+ iovec_array.iovcnt_,
+ &DEFAULT_TIME_VALUE)) == -1) &&
+ (errno == EWOULDBLOCK))
+ {
+ }
+ else
+ while (((actual_send_status =
+ this->peer ().send (iovec_array.iov_->iov_base,
+ iovec_array.iov_->iov_len,
+ &DEFAULT_TIME_VALUE)) == -1) &&
+ (errno == EWOULDBLOCK))
+ {
+ }
+
+ if (actual_send_status == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, %s no data sent\n"),
+ send_func_name, send_desc));
+ return -1;
+ }
+ if (actual_send_status == -1)
+ {
+ if (errno == ENOBUFS)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, failed regression test for %s\n"),
+ send_func_name, send_desc));
+ else
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, %s send returned errno=%d\n"),
+ send_func_name, send_desc, errno));
+ return -1;
+ }
+ buffer_len sent_bytes = static_cast<buffer_len>(actual_send_status);
+ if (sent_bytes >= iovec_array.totalBytes_)
+ {
+#if defined (ACE_WIN32)
+ if (!test_message)
+ {
+ // the particular call to send was designed poorly and is not
+ // hitting the ENOBUFS condition
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) expected %s to hit an ENOBUFS ")
+ ACE_TEXT ("condition and divide the buffer in half, ")
+ ACE_TEXT ("till a partial buffer is finally sent, ")
+ ACE_TEXT ("but the whole buffer was sent, so either ")
+ ACE_TEXT ("the call to Svc_Handler::send was designed ")
+ ACE_TEXT ("poorly, or the ENOBUFS condition doesn't ")
+ ACE_TEXT ("occur on this platform.")
+ ACE_TEXT (" See call to beforeVersion.\n"),
+ send_func_name));
+ return -1;
+ }
+ else
+ return sent_bytes;
+#else
+ ACE_UNUSED_ARG (test_message);
+ return sent_bytes;
+#endif /* ACE_WIN32 */
+ }
+
+#if defined (ACE_win32)
+ // the test here only matters for windows, on other platforms there is
+ // no issue, so we skip this test
+
+ // the algorithm subtracts half of the whole, so we round up
+ u_long expectedBytes =
+ (iovec_array.totalBytes_ % 2) + (iovec_array.totalBytes_ / 2);
+ for ( ; sent_bytes < expectedBytes;
+ expectedBytes = (expectedBytes % 2) + (expectedBytes / 2))
+ {
+ }
+ if (sent_bytes != expectedBytes)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, bytes sent are not consistent ")
+ ACE_TEXT ("with the sendv logic, expected %d, got %d\n"),
+ send_func_name, expectedBytes, sent_bytes));
+ return -1;
+ }
+#endif /* ACE_WIN32 */
+
+ buffer_len send_remainder =
+ iovec_array.totalBytes_ - static_cast<buffer_len>(actual_send_status);
+ char* offset = iovec_array.getBufferAtOffset(actual_send_status);
+ ssize_t send_status;
+ while (send_remainder > 0)
+ {
+ const ssize_t sendSize =
+ (send_remainder < 10000) ? send_remainder : 10000;
+ ACE_OS::sleep(0);
+ send_status = this->peer ().send (offset, sendSize, &DEFAULT_TIME_VALUE);
+ if (send_status == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, %s remainder send no data sent\n"),
+ send_func_name));
+ return -1;
+ }
+ if (send_status == -1)
+ {
+ if (errno == EWOULDBLOCK)
+ continue;
+
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, %s remainder send returned ")
+ ACE_TEXT ("errno = %d\n"),
+ send_func_name, send_desc, errno));
+ return -1;
+ }
+ send_remainder -= send_status;
+ offset += send_status;
+ }
+
+ return actual_send_status;
+}
+
+ssize_t
+Svc_Handler::send (char send_char, const ACE_TCHAR * const send_desc)
+{
+ ssize_t send_status;
+ while ((send_status =
+ this->peer ().send (&send_char, 1, &DEFAULT_TIME_VALUE)) < 1)
+ {
+ if (send_status == -1)
+ {
+ if (errno == EWOULDBLOCK)
+ continue;
+
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, %s sending character ")
+ ACE_TEXT ("%c returned errno=%d\n"),
+ ACE_TEXT ("send"), send_desc, send_char, errno));
+ return -1;
+ }
+ if (send_status == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, socket closed prematurely while ")
+ ACE_TEXT ("%s sending character %c\n"),
+ ACE_TEXT ("send"), send_desc, send_char));
+ return -1;
+ }
+ }
+ return send_status;
+}
+
+void
+Svc_Handler::recv_data (void)
+{
+ ACE_SOCK_Stream &new_stream = this->peer ();
+
+ // Read data from client (terminate on error).
+ ACE_UINT64 total_bytes = 0;
+ ACE_UINT64 total_bytes_since_last_message = 0;
+ const int BUFFER_SIZE = 10000;
+ char buffer[BUFFER_SIZE+1];
+ ssize_t r_bytes = 0;
+ bool badData = false;
+ const int EXPECTED_BUFFER_SIZE = BUFFER_SIZE + 9;
+ char expectedBuffer[EXPECTED_BUFFER_SIZE];
+ char expChar = START_CHAR;
+ int i = 0;
+ for ( ; i < EXPECTED_BUFFER_SIZE; ++i)
+ {
+ expectedBuffer[i] = expChar;
+ expChar = ::nextChar(expChar);
+ }
+ expChar = START_CHAR;
+ int messages = 0;
+
+ for (;;)
+ {
+ if (!this->wait_for_completion(READ))
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("select")));
+ else
+ {
+ for ( ;
+ ((r_bytes = new_stream.recv(&buffer[0], BUFFER_SIZE)) > 0);
+ total_bytes += r_bytes)
+ {
+ bool finished = false;
+ const char* const actualBufferEnd = buffer + r_bytes;
+ *(buffer + r_bytes) = 0;
+ const char* partOfBufferEnd = actualBufferEnd;
+ const char* partOfBufferStart = buffer;
+ if (*(actualBufferEnd - 1) == FINISHED_CHAR)
+ {
+ finished = true;
+ ++messages;
+ if (ACE::debug())
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) identified %d messages ")
+ ACE_TEXT ("and it is finished.\n"),
+ messages));
+ }
+ // loop through in case there is more than one message represented
+ while (partOfBufferStart < partOfBufferEnd)
+ {
+ const char* restartLoc =
+ ACE_OS::strchr(partOfBufferStart, RESTART_CHAR);
+ if ((restartLoc > 0) && (restartLoc < partOfBufferEnd))
+ {
+ ++messages;
+ total_bytes_since_last_message = 0;
+ partOfBufferEnd = restartLoc;
+ if (ACE::debug())
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) identified %d ")
+ ACE_TEXT ("messages.\n"),
+ messages));
+ }
+ else if (finished)
+ --partOfBufferEnd;
+ else
+ total_bytes_since_last_message +=
+ partOfBufferEnd - partOfBufferStart;
+
+ if (ACE_OS::memcmp(partOfBufferStart,
+ &(expectedBuffer[expChar - START_CHAR]),
+ partOfBufferEnd - partOfBufferStart) != 0)
+ {
+ badData = true;
+ }
+ const char lastCharOfBuffer =
+ *((partOfBufferEnd < actualBufferEnd) ?
+ partOfBufferEnd : partOfBufferEnd - 1);
+ expChar = ::nextChar(lastCharOfBuffer);
+ // see if there is more data in the buffer
+ partOfBufferStart = partOfBufferEnd + 1;
+ partOfBufferEnd = actualBufferEnd;
+ }
+ // if FINISHED_CHAR was found
+ if (finished)
+ {
+ if (close (1) == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("close")));
+ else if (badData)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) received final char, ")
+ ACE_TEXT ("but did not receive all data\n")));
+ else if (messages != expected_num_messages)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) received final char, ")
+ ACE_TEXT ("but expected %d messages ")
+ ACE_TEXT ("and got %d\n"),
+ expected_num_messages,
+ messages));
+ else
+ server_complete = true;
+
+ return;
+ }
+ }
+
+ if (r_bytes == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, socket closed prematurely\n"),
+ ACE_TEXT ("recv")));
+ break;
+ }
+ else if (r_bytes < 0)
+ {
+ if (errno != EWOULDBLOCK)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p, received %d messages and ")
+ ACE_TEXT ("%Q bytes and %Q bytes since the ")
+ ACE_TEXT ("last message\n"),
+ ACE_TEXT ("recv"), messages,
+ total_bytes, total_bytes_since_last_message));
+ break;
+ }
+ }
+ }
+ }
+}
+
+bool
+Svc_Handler::wait_for_completion(Direction direction)
+{
+ ACE_SOCK_Stream &new_stream = this->peer ();
+
+ ACE_Handle_Set handle_set;
+ handle_set.set_bit (new_stream.get_handle ());
+
+ // Since we're in non-blocking mode we need to use <select> to
+ // avoid busy waiting.
+#if defined (ACE_WIN64)
+ int select_width = 0;
+#else
+ int select_width = int (new_stream.get_handle ()) + 1;
+#endif /* ACE_WIN64 */
+
+ int result =
+ (direction == READ) ?
+ ACE_OS::select (select_width, handle_set, 0, 0, &DEFAULT_TIME_VALUE) :
+ ACE_OS::select (select_width, 0, handle_set, 0, &DEFAULT_TIME_VALUE);
+ return result != -1;
+}
+
+int
+Svc_Handler::close (u_long side)
+{
+ // Only run this protocol if we're the write-side (i.e., "1").
+ if (side == 1 && this->peer ().close () == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("close_writer")));
+ // Trigger the shutdown.
+ return this->handle_close ();
+}
+
+#if defined (ACE_HAS_THREADS)
+
+static void *
+client (void *arg)
+{
+ ACE_INET_Addr *remote_addr = reinterpret_cast<ACE_INET_Addr *> (arg);
+ ACE_INET_Addr server_addr (remote_addr->get_port_number (),
+ ACE_DEFAULT_SERVER_HOST);
+ CONNECTOR connector;
+
+ Svc_Handler *svc_handler = 0;
+ // Run the blocking test.
+ ACE_NEW_RETURN (svc_handler,
+ Svc_Handler,
+ 0);
+
+ // Perform a blocking connect to the server.
+ if (connector.connect (svc_handler,
+ server_addr) == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("connection failed")));
+ else
+ {
+ // Send the data to the server.
+ svc_handler->send_data ();
+
+ }
+ return 0;
+}
+
+// Performs the iterative server activities.
+
+static void *
+server (void *arg)
+{
+ ACCEPTOR *acceptor = (ACCEPTOR *) arg;
+ ACE_INET_Addr cli_addr;
+ ACE_TCHAR peer_host[MAXHOSTNAMELEN];
+ const ACE_Time_Value tv (ACE_DEFAULT_TIMEOUT);
+ ACE_Synch_Options options (ACE_Synch_Options::USE_TIMEOUT, tv);
+
+ Svc_Handler *svc_handler = 0;
+ ACE_NEW_RETURN (svc_handler,
+ Svc_Handler,
+ 0);
+
+ // Keep looping until we timeout on <accept> or fail.
+
+ for (;;)
+ {
+ // Create a new <Svc_Handler> to consume the data.
+
+ int result = acceptor->accept (svc_handler,
+ &cli_addr,
+ options);
+
+ // Timing out is the only way for threads to stop accepting
+ // since we don't have signals.
+
+ if (result == -1)
+ {
+ // svc_handler->close (); The ACE_Onsehot_Acceptor closed it.
+
+ if (errno == ETIMEDOUT)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("accept timed out\n")));
+ return 0;
+ }
+ else
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("accept failed, shutting down")),
+ 0);
+ }
+ // Use this rather than get_host_name() to properly adjust to the
+ // charset width in use.
+ cli_addr.get_host_name (peer_host, MAXHOSTNAMELEN);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) client %s connected from %d\n"),
+ peer_host,
+ cli_addr.get_port_number ()));
+
+ svc_handler->recv_data ();
+ break;
+ }
+
+ return 0;
+}
+
+// Spawn threads and run the client and server.
+
+static
+int
+spawn_threads (ACCEPTOR *acceptor,
+ ACE_INET_Addr *server_addr)
+{
+ int status = 0;
+
+ if (ACE_Thread_Manager::instance ()->spawn_n
+ (
+ 1,
+ (ACE_THR_FUNC) server,
+ (void *) acceptor,
+ THR_NEW_LWP
+ , ACE_DEFAULT_THREAD_PRIORITY
+ , -1
+ , 0
+ ) == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n%a"),
+ ACE_TEXT ("server thread create failed"),
+ 1));
+
+ if (ACE_Thread_Manager::instance ()->spawn
+ ((ACE_THR_FUNC) client,
+ (void *) server_addr,
+ THR_NEW_LWP,
+ 0
+ ) == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n%a"),
+ ACE_TEXT ("client thread create failed"),
+ 1));
+
+ // Wait for the threads to exit.
+ // But, wait for a limited time because sometimes the test hangs on Irix.
+ ACE_Time_Value const max_wait (400 /* seconds */);
+ ACE_Time_Value const wait_time (ACE_OS::gettimeofday () + max_wait);
+ if (ACE_Thread_Manager::instance ()->wait (&wait_time) == -1)
+ {
+ if (errno == ETIME)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("maximum wait time of %d msec exceeded\n"),
+ max_wait.msec ()));
+ else
+ ACE_OS::perror (ACE_TEXT ("ACE_Thread_Manager::wait"));
+
+ status = -1;
+ }
+
+ return status;
+}
+#endif /* ACE_HAS_THREADS */
+//#endif /* ACE_WIN32 */
+
+int
+run_main (int , ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3943_Regression_Test"));
+ int status = 0;
+#if !defined (ACE_WIN32) || ((defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) || !defined (ACE_LACKS_SEND))
+ // Acceptor
+ ACCEPTOR acceptor;
+ ACE_INET_Addr server_addr;
+
+ // Bind acceptor to any port and then find out what the port was.
+ if (acceptor.open (ACE_sap_any_cast (const ACE_INET_Addr &)) == -1
+ || acceptor.acceptor ().get_local_addr (server_addr) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("open")));
+ ACE_ASSERT (0);
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) starting server at port %d\n"),
+ server_addr.get_port_number ()));
+
+#if defined (ACE_HAS_THREADS)
+ if (spawn_threads (&acceptor, &server_addr) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("spawn_threads")),
+ 1);
+#else /* !ACE_HAS_THREADS */
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("(%P|%t) ")
+ ACE_TEXT ("only one thread may be run")
+ ACE_TEXT (" in a process on this platform")));
+#endif /* ACE_HAS_THREADS */
+ }
+
+ if (!client_complete || !server_complete)
+ status = 1;
+
+#endif /* ACE_HAS_WINSOCK2 && (ACE_HAS_WINSOCK2 != 0)) || !ACE_LACKS_SEND */
+
+ ACE_END_TEST;
+ return status;
+}
diff --git a/ACE/tests/Bug_3974_Regression_Test.cpp b/ACE/tests/Bug_3974_Regression_Test.cpp
new file mode 100644
index 00000000000..dcc0605d815
--- /dev/null
+++ b/ACE/tests/Bug_3974_Regression_Test.cpp
@@ -0,0 +1,84 @@
+/**
+ * @file Bug_3974_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * Reproduces the problems reported in bug 3974
+ * http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=3974
+ */
+
+#include "test_config.h"
+
+#include "ace/Dev_Poll_Reactor.h"
+#include "ace/Select_Reactor.h"
+#include "ace/TP_Reactor.h"
+#include "ace/WFMO_Reactor.h"
+#include "ace/OS_NS_errno.h"
+
+bool
+testit (ACE_Reactor_Impl *ri)
+{
+ int ret = 0;
+ ACE_Reactor r (ri);
+ ACE_Time_Value one (1);
+ r.end_reactor_event_loop ();
+ if ((ret = r.handle_events (one)) != -1)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Return value %d should be -1\n"), ret));
+ return false;
+ }
+ if (errno != ESHUTDOWN)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("errno %d should be %d (ESHUTDOWN)\n"),
+ errno, ESHUTDOWN));
+ return false;
+ }
+
+ return true;
+}
+
+// Main function.
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3974_Regression_Test"));
+ int result = 0;
+
+ ACE_Select_Reactor r1;
+ if (!testit (&r1))
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Select_Reactor failed\n")));
+ result = 1;
+ }
+
+ ACE_TP_Reactor r2;
+ if (!testit (&r2))
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("TP_Reactor failed\n")));
+ result = 1;
+ }
+
+#ifdef ACE_WIN32
+ ACE_WFMO_Reactor r3;
+ if (!testit (&r3))
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("WFMO_Reactor failed\n")));
+ result = 1;
+ }
+#endif /* ACE_WIN32 */
+
+#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL)
+ ACE_Dev_Poll_Reactor r4;
+ if (!testit (&r4))
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Dev_Poll_Reactor failed\n")));
+ result = 1;
+ }
+#endif /* ACE_HAS_EVENT_POLL || ACE_HAS_DEV_POLL */
+
+ ACE_END_TEST;
+ return result;
+}
+
diff --git a/ACE/tests/CDR_Array_Test.cpp b/ACE/tests/CDR_Array_Test.cpp
index 835bef0355d..d3690a37b62 100644
--- a/ACE/tests/CDR_Array_Test.cpp
+++ b/ACE/tests/CDR_Array_Test.cpp
@@ -1,25 +1,22 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// CDR_Array_Test.cpp
-//
-// = DESCRIPTION
-// Checks ACE_OutputCDR::write_XX_array.
-// Checks ACE_InputCDR::read_XX_array.
-// Checks operator<< and operator>> for CDR Streams in
-// each of the basic CDR types.
-// Gives a measure of the speed of the ACE CDR streams wrt those
-// operations.
-//
-// = AUTHORS
-// Cristian Ferretti <cristian_ferretti@yahoo.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file CDR_Array_Test.cpp
+ *
+ * $Id$
+ *
+ * Checks ACE_OutputCDR::write_XX_array.
+ * Checks ACE_InputCDR::read_XX_array.
+ * Checks operator<< and operator>> for CDR Streams in
+ * each of the basic CDR types.
+ * Gives a measure of the speed of the ACE CDR streams wrt those
+ * operations.
+ *
+ *
+ * @author Cristian Ferretti <cristian_ferretti@yahoo.com>
+ */
+//=============================================================================
+
// For measuring time, choose your method:
// Define:
@@ -53,7 +50,7 @@
#error "Can't define USE_GETRUSAGE on this platform."
#endif
-ACE_RCSID(tests, CDR_Array_Test, "$Id$")
+
// Default number of elements for check buffer, for each tested CDR type.
// Be aware that time will be affected by the buffer fitting/not fitting
@@ -391,7 +388,7 @@ CDR_Test<T, H>::do_test (int total, int niter, int use_array,
char* toread = 0;
{
- ACE_ASSERT(use_array || total % 4 == 0);
+ ACE_TEST_ASSERT(use_array || total % 4 == 0);
double totalsecs = 0.0;
int n;
@@ -617,7 +614,7 @@ CDR_Test<T, H>::do_test (int total, int niter, int use_array,
tellalign (src);
T cv = CDR_Test<T, H>::checkval (i);
- if (rv != cv)
+ if (!ACE::is_equal (rv, cv))
{
static char rs[32 + 1];
static char cs[32 + 1];
diff --git a/ACE/tests/CDR_File_Test.cpp b/ACE/tests/CDR_File_Test.cpp
index 95352fc903d..12fd23f425b 100644
--- a/ACE/tests/CDR_File_Test.cpp
+++ b/ACE/tests/CDR_File_Test.cpp
@@ -1,22 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// CDR_File_Test.cpp
-//
-// = DESCRIPTION
-// Checks the functionality of the ACE CDR streams used for file
-// I/O.
-//
-// = AUTHORS
-// Giga Giguashvili <gregoryg@ParadigmGeo.com> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file CDR_File_Test.cpp
+ *
+ * $Id$
+ *
+ * Checks the functionality of the ACE CDR streams used for file
+ * I/O.
+ *
+ *
+ * @author Giga Giguashvili <gregoryg@ParadigmGeo.com> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_Memory.h"
@@ -32,38 +28,41 @@
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-ACE_RCSID(tests, CDR_File_Test, "$Id$")
+
#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
+/**
+ * @class CDR_Test
+ *
+ * @brief Simple class that's used to read and write CDR streams.
+ */
class CDR_Test
{
- // = TITLE
- // Simple class that's used to read and write CDR streams.
+ /// Output the state of a <CDR_Test> object to the <ostream>.
friend ostream& operator << (ostream &os, const CDR_Test &t);
- // Output the state of a <CDR_Test> object to the <ostream>.
+ /// Convert the state of this object into an <ACE_OutputCDR>.
friend void operator << (ACE_OutputCDR &os, const CDR_Test &t);
- // Convert the state of this object into an <ACE_OutputCDR>.
+ /// Convert the <ACE_InputCDR> into the state of this object.
friend void operator >> (ACE_InputCDR &is, CDR_Test &);
- // Convert the <ACE_InputCDR> into the state of this object.
public:
+ /// Default constructor.
CDR_Test (void);
- // Default constructor.
+ /// Constructor.
CDR_Test (ACE_CDR::Char o,
ACE_CDR::Short s,
ACE_CDR::Long w,
ACE_CDR::ULongLong lw,
ACE_CDR::Float f,
ACE_CDR::Double d);
- // Constructor.
+ /// Compare <rhs> for equality with <this>.
bool operator == (const CDR_Test &rhs) const;
- // Compare <rhs> for equality with <this>.
private:
ACE_CDR::Char char_;
@@ -185,9 +184,9 @@ CDR_Test::operator == (const CDR_Test &rhs) const
return false;
if (this->word8_ != rhs.word8_)
return false;
- if (this->fpoint_ != rhs.fpoint_)
+ if (!ACE::is_equal (this->fpoint_, rhs.fpoint_))
return false;
- if (this->dprec_ != rhs.dprec_)
+ if (!ACE::is_equal (this->dprec_, rhs.dprec_))
return false;
return true;
}
diff --git a/ACE/tests/CDR_Test.cpp b/ACE/tests/CDR_Test.cpp
index 75b5f24c1d5..f47360fe321 100644
--- a/ACE/tests/CDR_Test.cpp
+++ b/ACE/tests/CDR_Test.cpp
@@ -1,22 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// CDR_Test.cpp
-//
-// = DESCRIPTION
-// Checks the functionality of the ACE CDR streams.
-//
-// = AUTHORS
-// Istvan Buki <istvan.buki@euronet.be> and
-// Jeff Parsons <parsons@cs.wustl.edu> and
-// Carlos O'Ryan <coryan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file CDR_Test.cpp
+ *
+ * $Id$
+ *
+ * Checks the functionality of the ACE CDR streams.
+ *
+ *
+ * @author Istvan Buki <istvan.buki@euronet.be> and Jeff Parsons <parsons@cs.wustl.edu> and Carlos O'Ryan <coryan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Get_Opt.h"
@@ -29,7 +24,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_wchar.h"
-ACE_RCSID(tests, CDR_Test, "$Id$")
+
static int n = 4096;
static int nloops = 100;
@@ -265,13 +260,13 @@ short_stream (void)
ACE_TEXT ("ulong transfer error")),
1);
- if (f1 != f)
+ if (!ACE::is_equal (f1, f))
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("float transfer error")),
1);
- if (d1 != d)
+ if (!ACE::is_equal (d1, d))
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("double transfer error")),
@@ -292,14 +287,14 @@ short_stream (void)
1);
for (i = 0 ; i < 3; i++)
- if (f_array1[i] != f_array[i])
+ if (!ACE::is_equal (f_array1[i], f_array[i]))
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("float array transfer error")),
1);
for (i = 0 ; i < 3; i++)
- if (d_array1[i] != d_array[i])
+ if (!ACE::is_equal (d_array1[i], d_array[i]))
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("double array transfer error")),
@@ -553,15 +548,15 @@ run_main (int argc, ACE_TCHAR *argv[])
}
// Sanity checks.
- ACE_ASSERT (sizeof (ACE_CDR::Boolean) >= 1);
- ACE_ASSERT (sizeof (ACE_CDR::Octet) == 1);
- ACE_ASSERT (sizeof (ACE_CDR::WChar) >= 2);
- ACE_ASSERT (sizeof (ACE_CDR::Short) == 2);
- ACE_ASSERT (sizeof (ACE_CDR::Long) == 4);
- ACE_ASSERT (sizeof (ACE_CDR::LongLong) == 8);
- ACE_ASSERT (sizeof (ACE_CDR::Float) == 4);
- ACE_ASSERT (sizeof (ACE_CDR::Double) == 8);
- ACE_ASSERT (sizeof (ACE_CDR::LongDouble) == 16);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::Boolean) >= 1);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::Octet) == 1);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::WChar) >= 2);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::Short) == 2);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::Long) == 4);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::LongLong) == 8);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::Float) == 4);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::Double) == 8);
+ ACE_TEST_ASSERT (sizeof (ACE_CDR::LongDouble) == 16);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Testing ACE CDR functions - short stream\n\n")));
diff --git a/ACE/tests/Cache_Map_Manager_Test.cpp b/ACE/tests/Cache_Map_Manager_Test.cpp
index 2b0fe6cce52..7953a125251 100644
--- a/ACE/tests/Cache_Map_Manager_Test.cpp
+++ b/ACE/tests/Cache_Map_Manager_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cache_Map_Manager_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_Cache_Map_Manager> and
-// <ACE_Hash_Cache_Map_Manager> that illustrates how to use the
-// forward and reverse iterators, as well as the purging and
-// caching features.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Cache_Map_Manager_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the <ACE_Cache_Map_Manager> and
+ * <ACE_Hash_Cache_Map_Manager> that illustrates how to use the
+ * forward and reverse iterators, as well as the purging and
+ * caching features.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/OS_NS_string.h"
@@ -29,14 +26,13 @@
#include "ace/Map_Manager.h"
#include "ace/Caching_Strategies_T.h"
#include "ace/Functor.h"
-#include "ace/Pair_T.h"
#include "ace/Get_Opt.h"
#include "Cache_Map_Manager_Test.h" // Hash_Key class defined in here
typedef size_t KEY;
typedef size_t VALUE;
typedef int ATTR;
-typedef ACE_Pair<VALUE, ATTR> CACHE_VALUE;
+typedef std::pair<VALUE, ATTR> CACHE_VALUE;
typedef ACE_Equal_To<KEY> COMPARE_KEYS;
typedef ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, Hash_Key, ACE_Equal_To<KEY>, ACE_Null_Mutex>
@@ -144,14 +140,14 @@ run_iterator_cache (MAP_CACHE &cache)
(*iter).first (),
(*iter).second ()));
- ACE_ASSERT ((*iter).first () == (*iter).second ());
+ ACE_TEST_ASSERT ((*iter).first () == (*iter).second ());
++counter;
}
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
ACE_UNUSED_ARG (iterations);
- ACE_ASSERT (counter == iterations);
+ ACE_TEST_ASSERT (counter == iterations);
}
static void
@@ -171,14 +167,14 @@ run_iterator_hash_cache (HASH_MAP_CACHE &cache)
(*iter).first (),
(*iter).second ()));
- ACE_ASSERT ((*iter).first () == (*iter).second ());
+ ACE_TEST_ASSERT ((*iter).first () == (*iter).second ());
++counter;
}
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
ACE_UNUSED_ARG (iterations);
- ACE_ASSERT (counter == iterations);
+ ACE_TEST_ASSERT (counter == iterations);
}
static void
@@ -191,7 +187,7 @@ run_reverse_iterator_cache (MAP_CACHE &cache)
iter != rend;
++iter)
{
- ACE_ASSERT ((*iter).first () == (*iter).second ());
+ ACE_TEST_ASSERT ((*iter).first () == (*iter).second ());
// Debugging info.
if (debug)
@@ -205,7 +201,7 @@ run_reverse_iterator_cache (MAP_CACHE &cache)
if (debug)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
- ACE_ASSERT (counter == 0);
+ ACE_TEST_ASSERT (counter == 0);
}
static void
@@ -218,7 +214,7 @@ run_reverse_iterator_hash_cache (HASH_MAP_CACHE &cache)
iter != rend;
++iter)
{
- ACE_ASSERT ((*iter).first () == (*iter).second ());
+ ACE_TEST_ASSERT ((*iter).first () == (*iter).second ());
// Debugging info.
if (debug)
@@ -232,7 +228,7 @@ run_reverse_iterator_hash_cache (HASH_MAP_CACHE &cache)
if (debug)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
- ACE_ASSERT (counter == 0);
+ ACE_TEST_ASSERT (counter == 0);
}
static void
@@ -243,8 +239,8 @@ find_test_cache (MAP_CACHE &cache)
VALUE j = 0;
int result = cache.find (lookup_array[i], j);
- ACE_ASSERT (result != -1);
- ACE_ASSERT (j == lookup_array[i]);
+ ACE_TEST_ASSERT (result != -1);
+ ACE_TEST_ASSERT (j == lookup_array[i]);
if (debug)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d "), j));
@@ -264,8 +260,8 @@ find_test_hash_cache (HASH_MAP_CACHE &cache)
VALUE j = 0;
int result = cache.find (lookup_array[i], j);
- ACE_ASSERT (result != -1);
- ACE_ASSERT (j == lookup_array[i]);
+ ACE_TEST_ASSERT (result != -1);
+ ACE_TEST_ASSERT (j == lookup_array[i]);
if (debug)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d "), j));
@@ -291,7 +287,7 @@ purge_test_cache (MAP_CACHE &cache)
// Purge from cache.
int result = cache.purge ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_UNUSED_ARG (result);
size_t resultant_size = 0;
@@ -301,7 +297,7 @@ purge_test_cache (MAP_CACHE &cache)
resultant_size = current_map_size - entries_to_remove;
// Make sure the purge took out the appropriate number of entries.
- ACE_ASSERT (cache.current_size () == resultant_size);
+ ACE_TEST_ASSERT (cache.current_size () == resultant_size);
ACE_UNUSED_ARG (resultant_size);
}
@@ -319,7 +315,7 @@ purge_test_hash_cache (HASH_MAP_CACHE &cache)
// Purge from cache.
int result = cache.purge ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_UNUSED_ARG (result);
size_t resultant_size = 0;
@@ -329,7 +325,7 @@ purge_test_hash_cache (HASH_MAP_CACHE &cache)
resultant_size = current_map_size - entries_to_remove;
// Make sure the purge took out the appropriate number of entries.
- ACE_ASSERT (cache.current_size () == resultant_size);
+ ACE_TEST_ASSERT (cache.current_size () == resultant_size);
ACE_UNUSED_ARG (resultant_size);
}
@@ -346,14 +342,14 @@ functionality_test_cache (MAP_CACHING_STRATEGY &caching_strategy)
++i, ++j)
{
int result = cache.bind (i, j);
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_UNUSED_ARG (result);
if (debug)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("keys[%d]=%d value=[%d]=%d\n"),
i, i, j, j));
++counter;
- ACE_ASSERT (cache.current_size () == counter);
+ ACE_TEST_ASSERT (cache.current_size () == counter);
}
ACE_DEBUG ((LM_DEBUG,
@@ -388,7 +384,7 @@ functionality_test_hash_cache (HASH_MAP_CACHING_STRATEGY &caching_strategy)
++i, ++j)
{
int result = cache.bind (i, j);
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_UNUSED_ARG (result);
if (debug)
@@ -396,7 +392,7 @@ functionality_test_hash_cache (HASH_MAP_CACHING_STRATEGY &caching_strategy)
ACE_TEXT ("keys[%d]=%d value=[%d]=%d\n"),
i, i, j, j));
++counter;
- ACE_ASSERT (cache.current_size () == counter);
+ ACE_TEST_ASSERT (cache.current_size () == counter);
}
ACE_DEBUG ((LM_DEBUG,
diff --git a/ACE/tests/Cache_Map_Manager_Test.h b/ACE/tests/Cache_Map_Manager_Test.h
index 6ca91ddf4de..0f95b3cf7d9 100644
--- a/ACE/tests/Cache_Map_Manager_Test.h
+++ b/ACE/tests/Cache_Map_Manager_Test.h
@@ -1,22 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cache_Map_Manager_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Cache_Map_Manager_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef __ACE_CACHE_MAP_MANAGER_TEST_H
#define __ACE_CACHE_MAP_MANAGER_TEST_H
diff --git a/ACE/tests/Cached_Accept_Conn_Test.cpp b/ACE/tests/Cached_Accept_Conn_Test.cpp
index 8b7f5fb4f32..c7a7877db96 100644
--- a/ACE/tests/Cached_Accept_Conn_Test.cpp
+++ b/ACE/tests/Cached_Accept_Conn_Test.cpp
@@ -1,26 +1,23 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cached_Accept_Conn_Test.cpp
-//
-// = DESCRIPTION
-// The test illustrates how the <ACE_Strategy_Connector> works by
-// showing how you can cache connections on the client using
-// different caching strategies. Also how connections can be purged
-// explicitly and implicitly if needed from the connection cache
-// maintained by the connector. The <ACE_Strategy_Acceptor> can also
-// explicitly purge connections from the process CONNECTION CACHE on
-// demand.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Cached_Accept_Conn_Test.cpp
+ *
+ * $Id$
+ *
+ * The test illustrates how the <ACE_Strategy_Connector> works by
+ * showing how you can cache connections on the client using
+ * different caching strategies. Also how connections can be purged
+ * explicitly and implicitly if needed from the connection cache
+ * maintained by the connector. The <ACE_Strategy_Acceptor> can also
+ * explicitly purge connections from the process CONNECTION CACHE on
+ * demand.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef CACHED_ACCEPT_CONNECTION_TEST
#define CACHED_ACCEPT_CONNECTION_TEST
@@ -36,7 +33,7 @@
#pragma warning(disable:4503)
#endif /* _MSC_VER */
-ACE_RCSID(tests, Cached_Accept_Conn_Test, "$Id$")
+
// Note: To keep both sunCC5.0 without debugging symbols and gcc2.7.3
// happy, it was necessary to have the definitions of the methods of
diff --git a/ACE/tests/Cached_Accept_Conn_Test.h b/ACE/tests/Cached_Accept_Conn_Test.h
index 083440ca6c7..c1ca61d74f0 100644
--- a/ACE/tests/Cached_Accept_Conn_Test.h
+++ b/ACE/tests/Cached_Accept_Conn_Test.h
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cache_Accept_Conn_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Cached_Accept_Conn_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_CACHED_ACCEPT_CONN_TEST_H
#define ACE_TESTS_CACHED_ACCEPT_CONN_TEST_H
@@ -49,7 +46,7 @@ public:
};
typedef size_t ATTRIBUTES;
-typedef ACE_Pair<Client_Svc_Handler *, ATTRIBUTES>
+typedef std::pair<Client_Svc_Handler *, ATTRIBUTES>
CACHED_HANDLER;
typedef ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>
ACE_ADDR;
@@ -109,27 +106,31 @@ class Accept_Strategy : public ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTO
{
public:
+ /// Constructor.
Accept_Strategy (CACHED_CONNECT_STRATEGY &caching_connect_strategy);
- // Constructor.
+ /**
+ * Initialize the <peer_acceptor_> with <local_addr>. If the
+ * process runs out of descriptors, the unsed svc_handlers from the
+ * CONNECTION CACHE are removed.
+ */
int open (const ACE_PEER_ACCEPTOR_ADDR &local_addr,
bool restart = false);
- // Initialize the <peer_acceptor_> with <local_addr>. If the
- // process runs out of descriptors, the unsed svc_handlers from the
- // CONNECTION CACHE are removed.
+ /**
+ * The default behavior delegates to the <accept> method of the
+ * PEER_ACCEPTOR. A check is made here for the process running out
+ * of file descriptors. If so, the CONNECTION CACHE is purged of
+ * some idle svc_handlers.
+ */
int accept_svc_handler (SVC_HANDLER *svc_handler);
- // The default behavior delegates to the <accept> method of the
- // PEER_ACCEPTOR. A check is made here for the process running out
- // of file descriptors. If so, the CONNECTION CACHE is purged of
- // some idle svc_handlers.
protected:
typedef ACE_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> ACCEPT_STRATEGY_BASE;
+ /// Handler for removing cached connections.
int out_of_sockets_handler (void);
- // Handler for removing cached connections.
CACHED_CONNECT_STRATEGY &caching_connect_strategy_;
};
diff --git a/ACE/tests/Cached_Allocator_Test.cpp b/ACE/tests/Cached_Allocator_Test.cpp
index 1bd3eef6aaa..bda18427401 100644
--- a/ACE/tests/Cached_Allocator_Test.cpp
+++ b/ACE/tests/Cached_Allocator_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cached_Allocator_Test.cpp
-//
-// = DESCRIPTION
-// Simple test of ACE_Dynamic_Cached_Allocator and ACE_Cached_Allocator.
-//
-// = AUTHOR
-// Jaroslaw Nozderko <jareknz@polbox.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Cached_Allocator_Test.cpp
+ *
+ * $Id$
+ *
+ * Simple test of ACE_Dynamic_Cached_Allocator and ACE_Cached_Allocator.
+ *
+ *
+ * @author Jaroslaw Nozderko <jareknz@polbox.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
#include "ace/Malloc_T.h"
#include "ace/High_Res_Timer.h"
-ACE_RCSID(tests, Cached_Allocator_Test, "$Id$")
+
#include "ace/Synch_Traits.h"
#include "ace/Null_Mutex.h"
diff --git a/ACE/tests/Cached_Conn_Test.cpp b/ACE/tests/Cached_Conn_Test.cpp
index 3c6c553d942..5db585f448b 100644
--- a/ACE/tests/Cached_Conn_Test.cpp
+++ b/ACE/tests/Cached_Conn_Test.cpp
@@ -1,24 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cached_Conn_Test.cpp
-//
-// = DESCRIPTION
-// The test illustrates how the <ACE_Strategy_Connector> works by
-// showing how you can cache connections on the client using
-// different caching strategies. Also how connections can be purged
-// explicitly and implicitly if needed from the connection cache
-// maintained by the connector.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Cached_Conn_Test.cpp
+ *
+ * $Id$
+ *
+ * The test illustrates how the <ACE_Strategy_Connector> works by
+ * showing how you can cache connections on the client using
+ * different caching strategies. Also how connections can be purged
+ * explicitly and implicitly if needed from the connection cache
+ * maintained by the connector.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef CACHED_CONNECT_TEST
#define CACHED_CONNECT_TEST
@@ -44,10 +41,10 @@
#pragma warning(disable:4503)
#endif /* _MSC_VER */
-ACE_RCSID(tests, Cached_Conn_Test, "$Id$")
+
typedef size_t ATTRIBUTES;
-typedef ACE_Pair<Svc_Handler *, ATTRIBUTES>
+typedef std::pair<Svc_Handler *, ATTRIBUTES>
CACHED_HANDLER;
typedef ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>
ACE_ADDR;
@@ -153,8 +150,6 @@ static CACHED_CONNECT_STRATEGY *connect_strategy = 0;
// more iterations to get to the handle limit.
#if defined (ACE_WIN32)
static int iterations = 2000;
-#elif defined (__Lynx__)
-static int iterations = 134;
#else
static int iterations = 200;
#endif /* ACE_WIN32 */
diff --git a/ACE/tests/Cached_Conn_Test.h b/ACE/tests/Cached_Conn_Test.h
index 4e7cfa4673e..939346a0f76 100644
--- a/ACE/tests/Cached_Conn_Test.h
+++ b/ACE/tests/Cached_Conn_Test.h
@@ -1,21 +1,18 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cache_Conn_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Cached_Conn_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_CACHED_CONN_TEST_H
#define ACE_TESTS_CACHED_CONN_TEST_H
diff --git a/ACE/tests/Capabilities_Test.cpp b/ACE/tests/Capabilities_Test.cpp
index bf3231b0ca3..41af5b42817 100644
--- a/ACE/tests/Capabilities_Test.cpp
+++ b/ACE/tests/Capabilities_Test.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Capabilities_Test.cpp
-//
-// = DESCRIPTION
-// This is a test that makes sure the <ACE_Capabililties> class
-// works correctly.
-//
-// = AUTHOR
-// Arturo Montes <mitosys@colomsat.net.co>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Capabilities_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test that makes sure the <ACE_Capabililties> class
+ * works correctly.
+ *
+ *
+ * @author Arturo Montes <mitosys@colomsat.net.co>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_fcntl.h"
#include "ace/OS_NS_unistd.h"
#include "ace/Capabilities.h"
-ACE_RCSID(tests, Capabilities_Test, "$Id$")
+
static const ACE_TCHAR config[] = ACE_TEXT ("Capabilities_Test.cfg");
diff --git a/ACE/tests/Codecs_Test.cpp b/ACE/tests/Codecs_Test.cpp
index bad96176ce2..551dfcf5591 100644
--- a/ACE/tests/Codecs_Test.cpp
+++ b/ACE/tests/Codecs_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Codecs_Test.cpp
-//
-// = DESCRIPTION
-// Checks the functionality of the ACE Codecs class.
-//
-// = AUTHORS
-// Krishnakumar B <kitty@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Codecs_Test.cpp
+ *
+ * $Id$
+ *
+ * Checks the functionality of the ACE Codecs class.
+ *
+ *
+ * @author Krishnakumar B <kitty@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Codecs.h"
#include "ace/Auto_Ptr.h"
#include "ace/ACE.h"
-ACE_RCSID(tests, Codecs_Test, "$Id$")
+
// Don't change the strings thinking that they are typos
diff --git a/ACE/tests/Collection_Test.cpp b/ACE/tests/Collection_Test.cpp
index cf8e124de77..253ec6a07fb 100644
--- a/ACE/tests/Collection_Test.cpp
+++ b/ACE/tests/Collection_Test.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Collection_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the ACE collection classes and its
-// iterators.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Collection_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the ACE collection classes and its
+ * iterators.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
-ACE_RCSID(tests, Collection_Test, "$Id$")
+
#include "ace/Containers.h"
#include "Collection_Test.h"
@@ -147,9 +144,9 @@ run_main (int, ACE_TCHAR *[])
ARRAY array4;
array4 = array2;
- ACE_ASSERT (array1 == array2);
- ACE_ASSERT (array1 == array3);
- ACE_ASSERT (array1 == array4);
+ ACE_TEST_ASSERT (array1 == array2);
+ ACE_TEST_ASSERT (array1 == array3);
+ ACE_TEST_ASSERT (array1 == array4);
{
for (size_t i = 0;
@@ -158,7 +155,7 @@ run_main (int, ACE_TCHAR *[])
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d\n"),
array1[i]));
- ACE_ASSERT (array1[i] == 4);
+ ACE_TEST_ASSERT (array1[i] == 4);
}
}
@@ -170,7 +167,7 @@ run_main (int, ACE_TCHAR *[])
iterator.next (data);
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d\n"),
(*data)));
- ACE_ASSERT (*data == 4);
+ ACE_TEST_ASSERT (*data == 4);
iterator.advance ();
}
}
diff --git a/ACE/tests/Collection_Test.h b/ACE/tests/Collection_Test.h
index 249c9dd281d..4cd9e8731f7 100644
--- a/ACE/tests/Collection_Test.h
+++ b/ACE/tests/Collection_Test.h
@@ -1,23 +1,20 @@
// -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Collection_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Collection_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_COLLECTION_TEST_H
#define ACE_TESTS_COLLECTION_TEST_H
diff --git a/ACE/tests/Compiler_Features_01_Test.cpp b/ACE/tests/Compiler_Features_01_Test.cpp
new file mode 100644
index 00000000000..a47c7a6ef84
--- /dev/null
+++ b/ACE/tests/Compiler_Features_01_Test.cpp
@@ -0,0 +1,65 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * std::list container. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <list>
+
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_01_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // Create a simple list ...
+ typedef std::list<int> collection;
+ collection c;
+
+ // ... insert some elements ...
+ c.push_back(5);
+ c.push_back(4);
+ c.push_back(3);
+ c.push_back(2);
+ c.push_back(1);
+
+ // ... add all the numbers to validate that they are there ...
+ int sum = 0;
+ for(collection::iterator i = c.begin(), end = c.end();
+ i != end;
+ ++i)
+ {
+ sum += *i;
+ }
+
+ // ... remember Euler ...
+ int const expected = 5*(5+1)/2;
+ if (sum != expected)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected %d got %d\n"),
+ expected, sum));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_02_Test.cpp b/ACE/tests/Compiler_Features_02_Test.cpp
new file mode 100644
index 00000000000..d9e68ad1619
--- /dev/null
+++ b/ACE/tests/Compiler_Features_02_Test.cpp
@@ -0,0 +1,83 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * std::map container. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <map>
+
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_02_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // Create a simple list ...
+ typedef std::map<int,int> collection;
+ collection c;
+
+ // ... insert some elements ...
+ c[1] = 5;
+ c[2] = 4;
+ c[3] = 3;
+ c[4] = 2;
+ c.insert(collection::value_type(5, 1));
+
+ // ... inserting twice returns a pair ...
+ std::pair<collection::iterator,bool> r =
+ c.insert(collection::value_type(5, 0));
+
+ // ... the iterator points to the element ...
+ if (r.first->first != 5 || r.first->second != 1)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected to find (5,1) already in map")));
+ }
+
+ // ... and the booleans says that it is already in the map ...
+ if (r.second == true)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected duplicate insert to fail")));
+ }
+
+ // ... add all the numbers to validate that they are there ...
+ int sum = 0;
+ for(collection::iterator i = c.begin(), end = c.end();
+ i != end;
+ ++i)
+ {
+ sum += i->second;
+ }
+
+ // ... remember Euler ...
+ int const expected = 5*(5+1)/2;
+ if (sum != expected)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected %d got %d\n"),
+ expected, sum));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_03_Test.cpp b/ACE/tests/Compiler_Features_03_Test.cpp
new file mode 100644
index 00000000000..b37d068700b
--- /dev/null
+++ b/ACE/tests/Compiler_Features_03_Test.cpp
@@ -0,0 +1,63 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * std::vector container. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <vector>
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_03_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // Create a simple list ...
+ typedef std::vector<int> collection;
+ collection c;
+
+ // ... insert some elements ...
+ c.push_back(5);
+ c.push_back(4);
+ c.push_back(3);
+ c.push_back(2);
+ c.push_back(1);
+
+ // ... add all the numbers to validate that they are there ...
+ int sum = 0;
+ for(collection::iterator i = c.begin(), end = c.end();
+ i != end;
+ ++i)
+ {
+ sum += *i;
+ }
+
+ // ... remember Euler ...
+ int const expected = 5*(5+1)/2;
+ if (sum != expected)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected %d got %d\n"),
+ expected, sum));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_04_Test.cpp b/ACE/tests/Compiler_Features_04_Test.cpp
new file mode 100644
index 00000000000..f09464b3b7b
--- /dev/null
+++ b/ACE/tests/Compiler_Features_04_Test.cpp
@@ -0,0 +1,83 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * std::set container. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <set>
+
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_04_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // Create a simple list ...
+ typedef std::set<int> collection;
+ collection c;
+
+ // ... insert some elements ...
+ c.insert(5);
+ c.insert(4);
+ c.insert(3);
+ c.insert(2);
+ c.insert(1);
+
+ // ... inserting twice returns a pair ...
+ std::pair<collection::iterator,bool> r =
+ c.insert(collection::value_type(5));
+
+ // ... the iterator points to the element ...
+ if (*r.first != 5)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected to find 5 already in set")));
+ }
+
+ // ... and the booleans says that it is already in the set ...
+ if (r.second == true)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected duplicate insert to fail")));
+ }
+
+ // ... add all the numbers to validate that they are there ...
+ int sum = 0;
+ for(collection::iterator i = c.begin(), end = c.end();
+ i != end;
+ ++i)
+ {
+ sum += *i;
+ }
+
+ // ... remember Euler ...
+ int const expected = 5*(5+1)/2;
+ if (sum != expected)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected %d got %d\n"),
+ expected, sum));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_05_Test.cpp b/ACE/tests/Compiler_Features_05_Test.cpp
new file mode 100644
index 00000000000..2e4b44cf067
--- /dev/null
+++ b/ACE/tests/Compiler_Features_05_Test.cpp
@@ -0,0 +1,68 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * std::queue container. The motivation for this test was a discussion
+ * on the development mailing queue, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <queue>
+
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_05_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // Create a simple queue ...
+ typedef std::queue<int> collection;
+ // ... if the previous line compiles, the default template
+ // parameters work. The declaration of queue<> is something like:
+ // template<typename T, typename Sequence = deque<T> >
+ // notice that this is not a template template parameter...
+ collection c;
+
+ // ... insert some elements ...
+ c.push(5);
+ c.push(4);
+ c.push(3);
+ c.push(2);
+ c.push(1);
+
+ // ... add all the numbers to validate that they are there ...
+ int sum = 0;
+ while (! c.empty())
+ {
+ sum += c.front();
+ c.pop();
+ }
+
+ // ... remember Euler ...
+ int const expected = 5*(5+1)/2;
+ if (sum != expected)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected %d got %d\n"),
+ expected, sum));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_06_Test.cpp b/ACE/tests/Compiler_Features_06_Test.cpp
new file mode 100644
index 00000000000..238dad8d9c7
--- /dev/null
+++ b/ACE/tests/Compiler_Features_06_Test.cpp
@@ -0,0 +1,95 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports alternative
+ * sorting functions in the std::set container. The motivation for
+ * this test was a discussion on the development mailing list, and the
+ * documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <set>
+
+// We are going to use std::greater<>, the spec requires us to include this
+// header. Only a few platforms enforce this though...
+#include <functional>
+
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_06_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // Create a simple list ...
+ typedef std::set<int,std::greater<int> > collection;
+ collection c;
+
+ // ... insert some elements ...
+ c.insert(5);
+ c.insert(4);
+ c.insert(3);
+ c.insert(2);
+ c.insert(1);
+
+ // ... inserting twice returns a pair ...
+ std::pair<collection::iterator,bool> r =
+ c.insert(collection::value_type(5));
+
+ // ... the iterator points to the element ...
+ if (*r.first != 5)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected to find 5 already in set")));
+ }
+
+ // ... and the booleans says that it is already in the set ...
+ if (r.second == true)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected duplicate insert to fail")));
+ }
+
+ // ... make sure the first element is the biggest one ...
+ if (5 != *c.begin())
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected largest element (5) at the front")));
+ }
+
+ // ... add all the numbers to validate that they are there ...
+ int sum = 0;
+ for(collection::iterator i = c.begin(), end = c.end();
+ i != end;
+ ++i)
+ {
+ sum += *i;
+ }
+
+ // ... remember Euler ...
+ int const expected = 5*(5+1)/2;
+ if (sum != expected)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected %d got %d\n"),
+ expected, sum));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_07_Test.cpp b/ACE/tests/Compiler_Features_07_Test.cpp
new file mode 100644
index 00000000000..9d185dc9213
--- /dev/null
+++ b/ACE/tests/Compiler_Features_07_Test.cpp
@@ -0,0 +1,83 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * std::set container. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <set>
+#include <string>
+
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_07_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // Create a simple list ...
+ typedef std::set<std::string> collection;
+ collection c;
+
+ // ... insert some elements ...
+ c.insert("5");
+ c.insert("4");
+ c.insert("3");
+ c.insert("2");
+ c.insert(std::string("1"));
+
+ // ... inserting twice returns a pair ...
+ std::pair<collection::iterator,bool> r =
+ c.insert(collection::value_type("5"));
+
+ // ... the iterator points to the element ...
+ if (*r.first != std::string("5"))
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected to find 5 already in set")));
+ }
+
+ // ... and the booleans says that it is already in the set ...
+ if (r.second == true)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected duplicate insert to fail")));
+ }
+
+ // ... find an element and erase it ...
+ collection::iterator i;
+
+ i = c.find(std::string("4"));
+ if (i == c.end())
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR, ACE_TEXT("Element not found")));
+ }
+ else
+ {
+ // ... this demonstrates a standard STL technique, you can
+ // optimize lookups by using the iterators returned in search
+ // functions ...
+ c.erase(i);
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_09_Test.cpp b/ACE/tests/Compiler_Features_09_Test.cpp
new file mode 100644
index 00000000000..a7a92270b19
--- /dev/null
+++ b/ACE/tests/Compiler_Features_09_Test.cpp
@@ -0,0 +1,112 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * std::auto_ptr<> correctly. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <memory>
+
+// For extra challenge, we use the anonymous namespace
+namespace
+{
+/**
+ * @class Base
+ */
+class Base
+{
+public:
+ Base()
+ {
+ constructors++;
+ }
+ Base(Base const & )
+ {
+ constructors++;
+ }
+ ~Base()
+ {
+ destructors++;
+ }
+
+ static int constructors;
+ static int destructors;
+};
+
+int Base::constructors = 0;
+int Base::destructors = 0;
+
+class Derived : public Base
+{
+public:
+ Derived()
+ : Base()
+ {}
+};
+}
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_09_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // ... this works with the ACE version of auto_ptr (well, the
+ // namespace is broken, but you get the idea) ...
+ std::auto_ptr<Base> x(new Base);
+ std::auto_ptr<Derived> y(new Derived);
+
+ // ... with a compliant implementation of std::auto_ptr<> you should be
+ // able to write:
+ // x = y;
+ // but the Solaris compiler was broken as of August, 2009!! So you have
+ // to work around in the following way. This compiler is important
+ // enough for the ACE community, so we have to support this broken
+ // configuration ...
+ x.reset(y.release());
+
+ // ... there should be just one destruction so far ...
+ if (Base::destructors != 1)
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("Destructor count off, expected 1, found %d\n"),
+ Base::destructors));
+ }
+
+ std::auto_ptr<Base> z;
+ z = x;
+ if (Base::destructors != 1)
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("Destructor count off, expected 1, found %d\n"),
+ Base::destructors));
+ }
+ if (x.get())
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("x contents should have been transferred\n")
+ ));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_10_Test.cpp b/ACE/tests/Compiler_Features_10_Test.cpp
new file mode 100644
index 00000000000..eca91ab1554
--- /dev/null
+++ b/ACE/tests/Compiler_Features_10_Test.cpp
@@ -0,0 +1,291 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports exceptions,
+ * in particular, if raising exceptions in constructors work. The
+ * motivation for this test was a discussion on the development
+ * mailing list, and the documentation was captured in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <memory>
+
+// ... using exceptions with C++ also implies using the standard
+// exceptions ...
+#include <stdexcept>
+
+// For extra challenge, we use the anonymous namespace
+namespace
+{
+ int constructors = 0;
+ int destructors = 0;
+ int allocs = 0;
+ int deallocs = 0;
+ bool had_failure = false;
+
+ void check_constructor_count(int expected,
+ char const * filename,
+ int lineno);
+ void check_destructor_count(int expected,
+ char const * filename,
+ int lineno);
+ void check_alloc_count(int expected,
+ char const * filename,
+ int lineno);
+ void reset_counts();
+ void never_reached(char const * filename,
+ int lineno);
+ int status();
+
+ /**
+ * @class Base
+ */
+ class Base
+ {
+ public:
+ Base()
+ {
+ ++constructors;
+ }
+ Base(Base const & )
+ {
+ ++constructors;
+ }
+ ~Base()
+ {
+ ++destructors;
+ }
+
+ void * operator new(size_t n)
+ {
+ ++allocs;
+ return ::operator new(n);
+ }
+ void operator delete(void * x)
+ {
+ ++deallocs;
+ return ::operator delete(x);
+ }
+ };
+
+ /**
+ * @class May_Pop
+ *
+ * Create a class that can raise exceptions in its constructor
+ *
+ */
+ class May_Pop : public Base
+ {
+ public:
+ explicit May_Pop(bool do_raise)
+ // Even if an exception is raised, the base object is fully
+ // constructed and must be fully destructed ...
+ : Base()
+ {
+ if (do_raise)
+ {
+ throw std::runtime_error("requested exception");
+ }
+ // ... if an exception is raised this object is never
+ // initialized and no constructor / destructor calls should take
+ // place ...
+ Base tmp;
+ }
+ };
+
+ /**
+ * @class Aggregate
+ */
+ class Aggregate : public Base
+ {
+ private:
+ May_Pop m1;
+ May_Pop m2;
+ May_Pop m3;
+
+ public:
+ /**
+ * Constructor. Element m1 is fully initialized, its constructors
+ * and destructors should run, m2 is partially initialized, its
+ * destructor never runs, m3 is never initialized, neither its
+ * constructor nor destructor runs.
+ */
+ Aggregate()
+ : Base()
+ , m1(false)
+ , m2(true)
+ , m3(false)
+ {}
+ };
+}
+
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_10_Test"));
+ try
+ {
+ // ... start the test fresh ...
+ reset_counts();
+ // Let's try to build a simple object and destroy it, without any
+ // exceptions raised ...
+ May_Pop m1(false);
+ // ... two instances of the base class should be created ...
+ check_constructor_count(2, __FILE__, __LINE__);
+ // ... but only one instance is destroyed at this point ...
+ check_destructor_count(1, __FILE__, __LINE__);
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Error: Unexpected exception caught\n")));
+ }
+ // ... now both instances are gone ...
+ check_destructor_count(2, __FILE__, __LINE__);
+
+ try
+ {
+ // ... start the test fresh ...
+ reset_counts();
+ // ... now raise an exception ...
+ May_Pop m1(true);
+ never_reached(__FILE__, __LINE__);
+ }
+ catch(...)
+ {
+ // ... only one instance gets created ...
+ check_constructor_count(1, __FILE__, __LINE__);
+ // ... and it is gone ...
+ check_destructor_count(1, __FILE__, __LINE__);
+ }
+
+ try
+ {
+ // ... start the test fresh ...
+ reset_counts();
+ // ... now build a complex object with a failure in the middle ...
+ Aggregate a;
+ never_reached(__FILE__, __LINE__);
+ }
+ catch(...)
+ {
+ // ... check the expectations ...
+ check_constructor_count(4, __FILE__, __LINE__);
+ check_destructor_count(4, __FILE__, __LINE__);
+ }
+
+ try
+ {
+ // ... start the test fresh ...
+ reset_counts();
+ std::auto_ptr<Aggregate> b(new Aggregate);
+ never_reached(__FILE__, __LINE__);
+ }
+ catch(...)
+ {
+ // ... check the expectations ...
+ check_constructor_count(4, __FILE__, __LINE__);
+ check_destructor_count(4, __FILE__, __LINE__);
+ check_alloc_count(1, __FILE__, __LINE__);
+ }
+
+ ACE_END_TEST;
+ return status();
+}
+
+namespace
+{
+
+void
+check_constructor_count(int expected,
+ char const * filename,
+ int lineno)
+{
+ if (constructors == expected)
+ {
+ return;
+ }
+ had_failure = true;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("Expected %d constructor calls, had %d -- (%s:%d)\n"),
+ expected, constructors, filename, lineno));
+}
+
+void
+check_destructor_count(int expected,
+ char const * filename,
+ int lineno)
+{
+ if (destructors == expected)
+ {
+ return;
+ }
+ had_failure = true;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("Expected %d destructor calls, had %d -- (%s:%d)\n"),
+ expected, destructors, filename, lineno));
+}
+
+void
+check_alloc_count(int expected,
+ char const * filename,
+ int lineno)
+{
+ if (allocs == expected && deallocs == expected)
+ {
+ return;
+ }
+ had_failure = true;
+ if (allocs != expected)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("Expected %d alloc calls, had %d -- (%s:%d)\n"),
+ expected, allocs, filename, lineno));
+ }
+ if (deallocs != expected)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("Expected %d dealloc calls, had %d -- (%s:%d)\n"),
+ expected, deallocs, filename, lineno));
+ }
+}
+
+void
+never_reached(char const * filename,
+ int lineno)
+{
+ had_failure = true;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("Code should not have reached (%s:%d)\n"),
+ filename, lineno));
+}
+
+void
+reset_counts()
+{
+ constructors = 0;
+ destructors = 0;
+ allocs = 0;
+ deallocs = 0;
+}
+
+int
+status()
+{
+ if (had_failure)
+ {
+ return 1;
+ }
+ return 0;
+}
+
+}
diff --git a/ACE/tests/Compiler_Features_11_Test.cpp b/ACE/tests/Compiler_Features_11_Test.cpp
new file mode 100644
index 00000000000..22fa5fb716a
--- /dev/null
+++ b/ACE/tests/Compiler_Features_11_Test.cpp
@@ -0,0 +1,66 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * string steams. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// The first part of the test is to compile this line. If the program
+// does not compile the platform is just too broken.
+#include <sstream>
+
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_11_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ // Test creation of a output stream ...
+ std::ostringstream os;
+
+ // ... add some strings and numbers to it ...
+ os << "1" << 2 << 3 << "45";
+
+ // ... verify the right thing comes out ...
+ std::string const expected("12345");
+ if (os.str() != expected)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected %s got %s\n"),
+ expected.c_str(), os.str().c_str()));
+ }
+
+ // ... create an input stream from the result ...
+ std::istringstream is(os.str());
+
+ // ... extract as a number ...
+ int v;
+ is >> v;
+
+ // ... verify the right thing comes out ...
+ if (v != 12345)
+ {
+ status = 1;
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Expected %d got %d\n"),
+ 12345, v));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Compiler_Features_12_Test.cpp b/ACE/tests/Compiler_Features_12_Test.cpp
new file mode 100644
index 00000000000..3ec0826e445
--- /dev/null
+++ b/ACE/tests/Compiler_Features_12_Test.cpp
@@ -0,0 +1,59 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports template
+ * template parameters. The motivation for this test was a discussion
+ * on the development mailing list, and the documentation was captured
+ * in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+
+
+template<typename T>
+struct Pair
+{
+ T x1;
+ T x2;
+};
+
+template<typename T>
+struct Triple
+{
+ T t1;
+ T t2;
+ T t3;
+};
+
+template<typename T, template <typename> class Tuple>
+struct Array
+{
+ Tuple<T> array[5];
+};
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_12_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ Array<int, Pair> pairs;
+ pairs.array[0].x1 = 0;
+ ACE_UNUSED_ARG (pairs);
+
+ Array<int, Triple> triples;
+ triples.array[1].t3 = 0;
+ ACE_UNUSED_ARG (triples);
+
+ ACE_END_TEST;
+ return status;
+}
diff --git a/ACE/tests/Compiler_Features_13_Test.cpp b/ACE/tests/Compiler_Features_13_Test.cpp
new file mode 100644
index 00000000000..f082b855c27
--- /dev/null
+++ b/ACE/tests/Compiler_Features_13_Test.cpp
@@ -0,0 +1,143 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports the
+ * standard cast operators template parameters. The motivation for
+ * this test was a discussion on the development mailing list, and the
+ * documentation was captured in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+#include <stdexcept>
+
+namespace
+{
+ /**
+ * Helper class for test
+ */
+ struct Base
+ {
+ virtual ~Base()
+ {}
+ };
+
+ /**
+ * Helper class for test
+ */
+ struct Derived : public Base
+ {
+ int value;
+ };
+
+ /**
+ * Helper class for test
+ */
+ struct Another : public Base
+ {
+ int x;
+ int y;
+ };
+}
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_13_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ {
+ // Make sure const cast works. Compilation is interesting, the
+ // functionality test here is just to make sure the compiler does
+ // not optimize things away ...
+ int x = 5;
+ int const & y = x;
+ const_cast<int&>(y) = 3;
+
+ if (x != 3)
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("Wrong value after const_cast,")
+ ACE_TEXT(" expected %d, got %d\n"),
+ 3, x));
+ }
+ }
+
+ // Make sure dynamic cast through pointers work ...
+ Derived d;
+ d.value = 24;
+ Base * b1 = &d;
+ Derived * d1 = dynamic_cast<Derived*>(b1);
+ if (d1 == 0)
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("dynamic_cast returns null, expected value\n")));
+ }
+ d1->value = 42;
+ if (d.value != 42)
+ {
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("Wrong value after dynamic_cast, expected %d, got %d\n"),
+ 42, d.value));
+ }
+
+ // Make sure dynamic cast detects invalid casts
+ Another a;
+ Base * b2 = &a;
+ Derived * d2 = dynamic_cast<Derived*>(b2);
+ if (d2 != 0)
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("dynamic_cast should return null\n")));
+ }
+
+ // Make sure dynamic cast raises an exception
+ Base & b3 = a;
+ try
+ {
+ (void) dynamic_cast<Derived&>(b3);
+
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("dynamic_cast should have raised exception\n")));
+ }
+ catch(std::exception const &)
+ {
+ }
+ catch(...)
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("dynamic_cast should have raised std::exception\n")));
+ }
+
+ {
+ // Just test these compile ...
+ double x = 42.0;
+ int y = static_cast<int>(x);
+ void * z = reinterpret_cast<void*>(y);
+
+ if (z == 0)
+ {
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("My hack to make sure the code is not ")
+ ACE_TEXT("optimized away backfired!\n")));
+ }
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
diff --git a/ACE/tests/Compiler_Features_14_Test.cpp b/ACE/tests/Compiler_Features_14_Test.cpp
new file mode 100644
index 00000000000..f8b1f07c61c
--- /dev/null
+++ b/ACE/tests/Compiler_Features_14_Test.cpp
@@ -0,0 +1,112 @@
+// $Id$
+
+/**
+ * @file
+ *
+ * This program checks if the compiler / platform supports partial
+ * template specialization. The motivation for this test was a
+ * discussion on the development mailing list, and the documentation
+ * was captured in:
+ *
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3715
+ *
+ */
+
+#include "test_config.h"
+
+// We are going to test if partial template specializations work by
+// demonstrating a standard technique in generic programming, i.e.,
+// using the specialization to detect if a type is a pointer.
+//
+// My implementation here is not very elegant, I would even say
+// ackward, and should not be taken as representative of good generic
+// programming techniques. I just wanted to through something
+// together.
+//
+
+// First some helper types in the anonymous namespace
+struct true_type {};
+struct false_type {};
+
+// Now a generic function to convert the types to booleans, moving
+// from generic type-based programming to classical value-based
+// programming.
+template<class T>
+bool to_boolean(T const&);
+
+template<>
+bool to_boolean(true_type const &)
+{
+ return true;
+}
+
+template<>
+bool to_boolean(false_type const &)
+{
+ return false;
+}
+
+// Here is the template, by default return false for all types.
+// Notice that this is a type *function*, it takes a type and returns
+// another type.
+template<typename T>
+struct is_pointer_function
+{
+ false_type result;
+};
+
+// Here is the specialization, for a class of types it results
+// something different. Effectively this is an implicit if() test on
+// the types.
+template<typename T>
+struct is_pointer_function<T*>
+{
+ true_type result;
+};
+
+// And here is a helper to convert back to values...
+struct test
+{
+ template<typename T>
+ static bool is_pointer()
+ {
+ is_pointer_function<T> v;
+ return to_boolean(v.result);
+ }
+};
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT("Compiler_Features_14_Test"));
+
+ // As usual, the exit status from the test is 0 on success, 1 on
+ // failure
+ int status = 0;
+
+ if (test::is_pointer<int>())
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("int should not be a pointer\n")));
+ }
+
+ if (! test::is_pointer<int*>())
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("int* should be a pointer\n")));
+ }
+
+ if (test::is_pointer<int&>())
+ {
+ status = 1;
+ ACE_ERROR((LM_ERROR,
+ ACE_TEXT("int& should not be a pointer\n")));
+ }
+
+ ACE_END_TEST;
+ return status;
+}
+
+
diff --git a/ACE/tests/Config_Test.cpp b/ACE/tests/Config_Test.cpp
index b2cfdc760f8..f9b1bcacdd0 100644
--- a/ACE/tests/Config_Test.cpp
+++ b/ACE/tests/Config_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Config_Test.cpp
-//
-// = DESCRIPTION
-// This is a test that makes sure various classes in
-// <ACE_Configuration> work correctly.
-//
-// = AUTHOR
-// Michael Searles <msearles@base16.com>,
-// Chris Hafey <chafey@stentor.com>, and
-// Jerry D. Odenwelder Jr. <jerry.o@mindspring.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Config_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test that makes sure various classes in
+ * <ACE_Configuration> work correctly.
+ *
+ *
+ * @author Michael Searles <msearles@base16.com>
+ * @author Chris Hafey <chafey@stentor.com>
+ * @author and Jerry D. Odenwelder Jr. <jerry.o@mindspring.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "Config_Test.h"
@@ -28,7 +25,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Config_Test, "$Id$")
+
static int
test (ACE_Configuration *config,
@@ -560,7 +557,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"),
@@ -573,8 +570,25 @@ run_tests (void)
// Test Heap version
ACE_Configuration_Heap heap_config;
- if (heap_config.open ())
- return 0;
+ if (heap_config.open () != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Cannot open %p\n"),
+ ACE_TEXT ("local-heap config")),
+ -1);
+ if (heap_config.open () == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Re-open heap allowed; bugzilla 3724\n")),
+ -1);
+ }
+ else if (errno != EBUSY)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Re-open heap expected EBUSY (%d), ")
+ ACE_TEXT ("got %d: bugzilla 3724\n"),
+ EBUSY, ACE_ERRNO_GET),
+ -1);
+ }
{
int result = test_subkey_path (&heap_config);
if (result)
@@ -600,8 +614,37 @@ run_tests (void)
if (pers_config.open (ACE_TEXT ("test.reg")))
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("Cannot open test.reg\n")),
+ ACE_TEXT ("Cannot open %p\n"),
+ ACE_TEXT ("test.reg")),
-1);
+ if (pers_config.open (ACE_TEXT ("test.reg")) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Re-open(mmap) allowed; bugzilla 3724\n")),
+ -1);
+ }
+ else if (errno != EBUSY)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Re-open(mmap) expected EBUSY (%d), ")
+ ACE_TEXT ("got %d: bugzilla 3724\n"),
+ EBUSY, ACE_ERRNO_GET),
+ -1);
+ }
+ if (pers_config.open () == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Re-open(new) allowed; bugzilla 3724\n")),
+ -1);
+ }
+ else if (errno != EBUSY)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Re-open(new) expected EBUSY (%d), ")
+ ACE_TEXT ("got %d: bugzilla 3724\n"),
+ EBUSY, ACE_ERRNO_GET),
+ -1);
+ }
{
int result = test (&pers_config);
@@ -1086,7 +1129,7 @@ iniCompare (ACE_Configuration_Heap& fromFile, ACE_Configuration_Heap& original)
sectionName.c_str (),
0); // do not remove subsections.
- sectionIndex++;
+ ++sectionIndex;
}// end section while loop
@@ -1096,7 +1139,7 @@ iniCompare (ACE_Configuration_Heap& fromFile, ACE_Configuration_Heap& original)
(!original.enumerate_sections (originalRoot,
sectionIndex,
sectionName)))
- sectionIndex++;
+ ++sectionIndex;
rc = sectionIndex == 0;
diff --git a/ACE/tests/Config_Test.h b/ACE/tests/Config_Test.h
index 28fcdbd2d36..8054acd3d6b 100644
--- a/ACE/tests/Config_Test.h
+++ b/ACE/tests/Config_Test.h
@@ -1,22 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// ConfigTest.h
-//
-// = DESCRIPTION
-// This is a test that makes sure the <import_config_as_strings> of
-// <ACE_Configuration_Heap> class works correctly.
-//
-// = AUTHOR
-// Michael Searles <msearles@base16.com> and
-// Jerry D. Odenwelder Jr. <jerry.o@mindspring.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Config_Test.h
+ *
+ * $Id$
+ *
+ * This is a test that makes sure the <import_config_as_strings> of
+ * <ACE_Configuration_Heap> class works correctly.
+ *
+ *
+ * @author Michael Searles <msearles@base16.com> and Jerry D. Odenwelder Jr. <jerry.o@mindspring.com>
+ */
+//=============================================================================
+
#ifndef __CONFIG_TEST_H
#define __CONFIG_TEST_H
diff --git a/ACE/tests/Conn_Test.cpp b/ACE/tests/Conn_Test.cpp
index 6f174583ea9..a245dcd0c25 100644
--- a/ACE/tests/Conn_Test.cpp
+++ b/ACE/tests/Conn_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Conn_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_Acceptor> and <ACE_Connector>
-// classes. The test forks processes or spawns threads (depending
-// upon the platform) and then executes client and server allowing
-// them to connect and exchange data. The test also illustrates
-// how the <ACE_Strategy_Connector> works by showing how you can
-// cache connections on the client.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>,
-// Chris Cleeland <cleeland@cs.wustl.edu>,
-// and Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Conn_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the <ACE_Acceptor> and <ACE_Connector>
+ * classes. The test forks processes or spawns threads (depending
+ * upon the platform) and then executes client and server allowing
+ * them to connect and exchange data. The test also illustrates
+ * how the <ACE_Strategy_Connector> works by showing how you can
+ * cache connections on the client.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author Chris Cleeland <cleeland@cs.wustl.edu>
+ * @author and Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/SOCK_Connector.h"
@@ -41,7 +38,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/os_include/os_netdb.h"
-ACE_RCSID(tests, Conn_Test, "$Id$")
+
static const char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
@@ -76,14 +73,8 @@ static const char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
# endif /* ACE_HAS_THREAD_SAFE_ACCEPT */
#endif /* ACE_LACKS_FORK */
-#if defined (ACE_HAS_TEMPLATE_TYPEDEFS)
-#define LOCK_SOCK_ACCEPTOR ACE_LOCK_SOCK_Acceptor<ACCEPTOR_LOCKING>
-#else
-#define LOCK_SOCK_ACCEPTOR ACE_LOCK_SOCK_Acceptor<ACCEPTOR_LOCKING>, ACE_INET_Addr
-#endif /* ACE_HAS_TEMPLATE_TYPEDEFS */
-
typedef ACE_Oneshot_Acceptor<Svc_Handler,
- LOCK_SOCK_ACCEPTOR>
+ ACE_LOCK_SOCK_Acceptor<ACCEPTOR_LOCKING> >
ACCEPTOR;
typedef ACE_Connector<Svc_Handler,
ACE_SOCK_CONNECTOR>
@@ -189,7 +180,7 @@ Svc_Handler::recv_data (void)
while ((r_bytes = new_stream.recv (&c, 1)) > 0)
{
- ACE_ASSERT (*t == c);
+ ACE_TEST_ASSERT (*t == c);
// We need to guard against cached connections, which
// will send multiple sequences of letters from 'a' ->
@@ -754,7 +745,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("open")));
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
}
else
{
diff --git a/ACE/tests/Conn_Test.h b/ACE/tests/Conn_Test.h
index 38e3cda4cd5..9b9f8c4afd3 100644
--- a/ACE/tests/Conn_Test.h
+++ b/ACE/tests/Conn_Test.h
@@ -1,22 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Conn_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Conn_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/Service_Config.h"
@@ -28,35 +25,37 @@
#include "ace/Svc_Handler.h"
#include "ace/SOCK_Stream.h"
+/**
+ * @class Svc_Handler
+ *
+ * @brief This class is the product created by both <ACE_Connector>
+ * and <ACE_Acceptor> objects.
+ *
+ * This class gets its own header file to work around AIX C++
+ * compiler "features" related to template instantiation... It is
+ * only used by Conn_Test.cpp.
+ */
class Svc_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
{
- // = TITLE
- // This class is the product created by both <ACE_Connector>
- // and <ACE_Acceptor> objects.
- //
- // = DESCRIPTION
- // This class gets its own header file to work around AIX C++
- // compiler "features" related to template instantiation... It is
- // only used by Conn_Test.cpp.
public:
+ /// Do-nothing constructor.
Svc_Handler (ACE_Thread_Manager * = 0);
- // Do-nothing constructor.
+ /// Initialization hook.
virtual int open (void *);
- // Initialization hook.
+ /// Prepare for recycling.
virtual int recycle (void * = 0);
- // Prepare for recycling.
+ /// Send data to server.
void send_data (void);
- // Send data to server.
+ /// Recv data from client.
void recv_data (void);
- // Recv data from client.
+ /// Shutdown the <Svc_Handler>.
int close (u_long = 0);
- // Shutdown the <Svc_Handler>.
+ /// Set <this> to idle.
int idle (u_long flags);
- // Set <this> to idle.
};
diff --git a/ACE/tests/DLL_Test.cpp b/ACE/tests/DLL_Test.cpp
index ccca35e9416..1f652effa73 100644
--- a/ACE/tests/DLL_Test.cpp
+++ b/ACE/tests/DLL_Test.cpp
@@ -1,29 +1,27 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// DLL_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the use of <ACE_DLL> wrapper class.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file DLL_Test.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the use of <ACE_DLL> wrapper class.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/DLL.h"
#include "ace/Auto_Ptr.h"
#include "ace/ACE.h"
#include "ace/DLL_Manager.h"
+#include "ace/SString.h"
#include "DLL_Test.h"
-ACE_RCSID(tests, DLL_Test, "$Id$")
+
#if defined (ACE_LD_DECORATOR_STR)
# define OBJ_SUFFIX ACE_LD_DECORATOR_STR ACE_DLL_SUFFIX
@@ -63,15 +61,25 @@ int handle_test (ACE_DLL &dll)
int basic_test (ACE_DLL &dll)
{
- int retval = dll.open (OBJ_PREFIX
- ACE_TEXT ("DLL_Test_Lib")
- OBJ_SUFFIX);
+
+ ACE_TString dll_file;
+ const char *subdir_env = ACE_OS::getenv ("ACE_EXE_SUB_DIR");
+ if (subdir_env)
+ {
+ dll_file = ACE_TEXT_CHAR_TO_TCHAR (subdir_env);
+ dll_file += ACE_DIRECTORY_SEPARATOR_STR;
+ }
+
+ dll_file += OBJ_PREFIX ACE_TEXT ("DLL_Test_Lib") OBJ_SUFFIX;
+
+ int retval = dll.open (dll_file.c_str());
if (retval != 0)
{
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 +87,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/DLL_Test_Impl.cpp b/ACE/tests/DLL_Test_Impl.cpp
index 3b0f4ff6149..ba02c9ab320 100644
--- a/ACE/tests/DLL_Test_Impl.cpp
+++ b/ACE/tests/DLL_Test_Impl.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// DLL_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the use of <ACE_DLL> wrapper class.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file DLL_Test_Impl.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the use of <ACE_DLL> wrapper class.
+ *
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "DLL_Test_Impl.h"
#include "ace/ACE.h"
@@ -22,10 +19,6 @@
#include "ace/svc_export.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (tests,
- DLL_Test_Impl,
- "$Id$")
-
Hello_Impl::Hello_Impl (void)
{
ACE_DEBUG ((LM_DEBUG, "Hello_Impl::Hello_Impl\n"));
diff --git a/ACE/tests/DLL_Test_Impl.h b/ACE/tests/DLL_Test_Impl.h
index 9ef3fb887a8..433a48de3ac 100644
--- a/ACE/tests/DLL_Test_Impl.h
+++ b/ACE/tests/DLL_Test_Impl.h
@@ -1,17 +1,14 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// DLL_Test_Impl.h
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file DLL_Test_Impl.h
+ *
+ * $Id$
+ *
+ * @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_DLL_TEST_IMPL_H
#define ACE_TESTS_DLL_TEST_IMPL_H
@@ -23,30 +20,32 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class Hello_Impl
+ *
+ * @brief The Hello class in the dynamically linkable library.
+ *
+ * This class is used in this example to show how a library can
+ * be loaded on demand and its methods called on getting the
+ * symbols from the library.
+ */
class Hello_Impl : public Hello
{
- // = TITLE
- // The Hello class in the dynamically linkable library.
- //
- // = DESCRIPTION
- // This class is used in this example to show how a library can
- // be loaded on demand and its methods called on getting the
- // symbols from the library.
public:
+ /// Constructor
Hello_Impl (void);
- // Constructor
+ /// Destructor
~Hello_Impl (void);
- // Destructor
+ /// See the documentation in the base class
void say_next (void);
- // See the documentation in the base class
+ /// Uses ACE::strnew() to allocate the returned string.
ACE_TCHAR *new_info (void);
- // Uses ACE::strnew() to allocate the returned string.
+ /// Uses ACE_OS::malloc() to allocate the returned string.
ACE_TCHAR *malloc_info (void);
- // Uses ACE_OS::malloc() to allocate the returned string.
// Overload the new/delete opertors so the object will be
// created/deleted using the memory allocator associated with the
diff --git a/ACE/tests/DLL_Test_Parent.cpp b/ACE/tests/DLL_Test_Parent.cpp
index 0664f5a7c92..5d2cb741855 100644
--- a/ACE/tests/DLL_Test_Parent.cpp
+++ b/ACE/tests/DLL_Test_Parent.cpp
@@ -3,11 +3,6 @@
#include "DLL_Test_Parent.h"
#include "ace/Log_Msg.h"
-ACE_RCSID (tests,
- DLL_Test_Parent,
- "$Id$")
-
-
Parent::~Parent (void)
{
}
diff --git a/ACE/tests/DLList_Test.cpp b/ACE/tests/DLList_Test.cpp
index 8dc77be3422..bad545ad89a 100644
--- a/ACE/tests/DLList_Test.cpp
+++ b/ACE/tests/DLList_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// DLList_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the use of <ACE_DLList>.
-//
-// = AUTHOR
-// James Hu <jxh@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file DLList_Test.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the use of <ACE_DLList>.
+ *
+ *
+ * @author James Hu <jxh@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Containers.h"
diff --git a/ACE/tests/Date_Time_Test.cpp b/ACE/tests/Date_Time_Test.cpp
index 56c1fc230e6..c24384e2800 100644
--- a/ACE/tests/Date_Time_Test.cpp
+++ b/ACE/tests/Date_Time_Test.cpp
@@ -16,8 +16,6 @@
#include "ace/Date_Time.h"
#include "test_config.h"
-ACE_RCSID(tests, Date_Time_Test, "$Id$")
-
static ACE_Date_Time static_dt; // Making sure it doesn't crash.
int
diff --git a/ACE/tests/Dev_Poll_Reactor_Test.cpp b/ACE/tests/Dev_Poll_Reactor_Test.cpp
index 81dbd1f49f4..5b21a276ba2 100644
--- a/ACE/tests/Dev_Poll_Reactor_Test.cpp
+++ b/ACE/tests/Dev_Poll_Reactor_Test.cpp
@@ -21,11 +21,6 @@
#include "test_config.h"
-ACE_RCSID (tests,
- Dev_Poll_Reactor_Test,
- "$Id$")
-
-
#if defined (ACE_HAS_DEV_POLL) || defined (ACE_HAS_EVENT_POLL)
#include "ace/OS_NS_signal.h"
@@ -102,7 +97,7 @@ Client::Client (void)
int
Client::open (void *)
{
- // ACE_ASSERT (this->reactor () != 0);
+ // ACE_TEST_ASSERT (this->reactor () != 0);
if (this->reactor ()
&& this->reactor ()->register_handler (
@@ -191,7 +186,16 @@ Client::handle_close (ACE_HANDLE handle,
handle,
mask));
- return 0;
+ // There is no point in running reactor after this client is closed.
+ if (this->reactor ()->end_reactor_event_loop () == 0)
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("(%t) Successful client reactor shutdown.\n")));
+ else
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%t) %p\n"),
+ ACE_TEXT ("Failed client reactor shutdown")));
+
+ return SVC_HANDLER::handle_close (handle, mask);
}
// ----------------------------------------------------
@@ -301,11 +305,9 @@ Server::handle_close (ACE_HANDLE handle,
handle,
this->get_handle (),
mask));
-
- return this->peer ().close ();
}
- return 0;
+ return SVC_HANDLER::handle_close (handle, mask);
}
// ----------------------------------------------------
@@ -441,9 +443,46 @@ public:
// ----------------------------------------------------
+static int
+disable_signal (int sigmin, int sigmax)
+{
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
+ sigset_t signal_set;
+ if (ACE_OS::sigemptyset (&signal_set) == - 1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t):%p\n"),
+ ACE_TEXT ("sigemptyset failed")));
+
+ for (int i = sigmin; i <= sigmax; i++)
+ ACE_OS::sigaddset (&signal_set, i);
+
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
+#else
+ ACE_UNUSED_ARG (sigmin);
+ ACE_UNUSED_ARG (sigmax);
+#endif /* ACE_LACKS_UNIX_SIGNALS */
+
+ return 0;
+}
+
+// ----------------------------------------------------
+
ACE_THR_FUNC_RETURN
server_worker (void *p)
{
+ disable_signal (SIGPIPE, SIGPIPE);
+
const unsigned short port = *(static_cast<unsigned short *> (p));
ACE_INET_Addr addr;
@@ -510,11 +549,7 @@ run_main (int, ACE_TCHAR *[])
ACE_START_TEST (ACE_TEXT ("Dev_Poll_Reactor_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);
+ disable_signal (SIGPIPE, SIGPIPE);
ACE_Dev_Poll_Reactor dp_reactor;
dp_reactor.restart (1); // Restart on EINTR
diff --git a/ACE/tests/Dirent_Test.cpp b/ACE/tests/Dirent_Test.cpp
index df756c8d4c2..08bed5fd276 100644
--- a/ACE/tests/Dirent_Test.cpp
+++ b/ACE/tests/Dirent_Test.cpp
@@ -1,51 +1,38 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Dirent_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the opendir and readdir emulation provided by the
-// class ACE_Dirent. It is used to ensure that the emulation code
-// works properly on platforms that don't support this capability
-// natively. As the emulation code is not compiled in other
-// platforms, this test also ensures that there is no impact to
-// platforms that natively support directory scanning operations.
-//
-// = AUTHOR
-// Phil Mesnier <mesnier_p@ociweb.com>,
-// Zvika Ashani <zvika@aspectusvi.com>,
-// Rich Newman <RNewman@directv.com>, and
-// Douglas C. Schmidt <d.schmidt@vanderbilt.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Dirent_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the opendir and readdir emulation provided by the
+ * class ACE_Dirent. It is used to ensure that the emulation code
+ * works properly on platforms that don't support this capability
+ * natively. As the emulation code is not compiled in other
+ * platforms, this test also ensures that there is no impact to
+ * platforms that natively support directory scanning operations.
+ *
+ *
+ * @author Phil Mesnier <mesnier_p@ociweb.com>
+ * @author Zvika Ashani <zvika@aspectusvi.com>
+ * @author Rich Newman <RNewman@directv.com>
+ * @author and Douglas C. Schmidt <d.schmidt@vanderbilt.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Dirent.h"
#include "ace/Dirent_Selector.h"
#include "ace/OS_NS_sys_stat.h"
#include "ace/OS_NS_unistd.h"
-#include "ace/OS_String.h"
#include "ace/SString.h"
-ACE_RCSID (tests,
- Dirent_Test,
- "$Id Dirent_Test.cpp,v 4.10 2003/05/18 19:17:34 dhinton Exp$")
-
-#if (defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600))
-# define TEST_DIR "log"
-# define TEST_ENTRY ".."
+#if defined (ACE_HAS_TCHAR_DIRENT)
+# define TEST_ENTRY ACE_TEXT ("run_test.lst")
#else
-# if defined (ACE_HAS_TCHAR_DIRENT)
-# define TEST_ENTRY ACE_TEXT ("run_test.lst")
-# else
-# define TEST_ENTRY "run_test.lst"
-# endif /* ACE_HAS_TCHAR_DIRENT */
-#endif /* ACE_VXWORKS < 0x600 */
+# define TEST_ENTRY "run_test.lst"
+#endif /* ACE_HAS_TCHAR_DIRENT */
// Directory to scan - we need to figure it out based on environment.
static ACE_TString TestDir;
@@ -180,7 +167,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++)
{
@@ -224,31 +211,13 @@ dirent_count (const ACE_TCHAR *dir_path,
int recursion_level)
{
#if !defined (ACE_LACKS_CHDIR)
-
-# if (defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600))
- // VxWorks only allows full paths (incl. device spec if applicable) to be specified
- ACE_TCHAR full_path[MAXPATHLEN];
- if (ACE_OS::getcwd (full_path, sizeof(full_path)) == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("getcwd: failed\n")),
- -1);
- if ((ACE_OS::strlen (full_path) + 1 + ACE_OS::strlen (dir_path)) >= sizeof(full_path))
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("getcwd: too long\n")),
- -1);
- ACE_OS::strcat (ACE_OS::strcat (full_path, "/"), dir_path);
- if (ACE_OS::chdir (full_path) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("chdir: %p\n"),
- full_path),
- -1);
-# else
if (ACE_OS::chdir (dir_path) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("chdir: %p\n"),
dir_path),
-1);
-# endif
+#else
+ ACE_UNUSED_ARG (dir_path);
#endif /* !ACE_LACKS_CHDIR */
ACE_Dirent dir;
@@ -329,21 +298,12 @@ dirent_count (const ACE_TCHAR *dir_path,
++dir_count;
#if !defined (ACE_LACKS_CHDIR)
-# if (defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600))
- // Move back to parent directory.
- if (ACE_OS::chdir (full_path) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("chdir: %p\n"),
- full_path),
- -1);
-# else
// Move back up a level.
if (ACE_OS::chdir (ACE_TEXT ("..")) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("chdir: %p\n"),
dir_path),
-1);
-# endif
#endif /* !ACE_LACKS_CHDIR */
}
break;
diff --git a/ACE/tests/Dynamic_Priority_Test.cpp b/ACE/tests/Dynamic_Priority_Test.cpp
index e1ec028c631..255bb762097 100644
--- a/ACE/tests/Dynamic_Priority_Test.cpp
+++ b/ACE/tests/Dynamic_Priority_Test.cpp
@@ -1,53 +1,50 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Dynamic_Priority_Test.cpp (based on Priority_Buffer_Test.cpp)
-//
-// = DESCRIPTION
-// This is a test to verify and illustrate the static and dynamic
-// priority mechanisms of the <ACE_Message_Queue> class and the
-// <ACE_Dynamic_Message_Queue> class. As in the
-// <Priority_Buffer_Test>, a producer generates messages and
-// enqueues them, and a consumer dequeues them and checks their
-// ordering.
-//
-// In these tests, every effort is made to ensure that there is
-// plenty of time for the messages to be enqueued and dequeued,
-// with messages that *should* meet their deadlines actually
-// meeting them, while messages that should miss their deadlines
-// are delayed so that they actually miss them. It is, however,
-// remotely possible that this test could yield a false negative:
-// the dynamic queues could work correctly but due to timing
-// variations the test could indicate failure.
-//
-// Three message queues are obtained from the message queue
-// factory, one static, two dynamic (one deadline based, and one
-// laxity based) and the same supplier behavior is used each time:
-// the messages are preallocated and their static information
-// valued, the current time is obtained and deadlines are set, with
-// half of the messages given late deadlines, and the other half of
-// the messages given reachable deadlines. The producer then
-// immediately enqueues all messages.
-//
-// Two separate tests are run, one which verifies messages are
-// correctly ordered my the given queues, and one which generates
-// performance numbers for the various queues under increasing
-// numbers of messages. In the first test, the consumer is passed
-// the filled queue and a string with the expected order in which
-// the messages should dequeue. In the second test, measurements
-// are made as non-intrusive as possible, with no ordering checks.
-//
-// = AUTHOR
-// Chris Gill <cdgill@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "test_config.h" /* Include first to enable ACE_ASSERT. */
+
+//=============================================================================
+/**
+ * @file Dynamic_Priority_Test.cpp (based on Priority_Buffer_Test.cpp)
+ *
+ * $Id$
+ *
+ * This is a test to verify and illustrate the static and dynamic
+ * priority mechanisms of the <ACE_Message_Queue> class and the
+ * <ACE_Dynamic_Message_Queue> class. As in the
+ * <Priority_Buffer_Test>, a producer generates messages and
+ * enqueues them, and a consumer dequeues them and checks their
+ * ordering.
+ *
+ * In these tests, every effort is made to ensure that there is
+ * plenty of time for the messages to be enqueued and dequeued,
+ * with messages that *should* meet their deadlines actually
+ * meeting them, while messages that should miss their deadlines
+ * are delayed so that they actually miss them. It is, however,
+ * remotely possible that this test could yield a false negative:
+ * the dynamic queues could work correctly but due to timing
+ * variations the test could indicate failure.
+ *
+ * Three message queues are obtained from the message queue
+ * factory, one static, two dynamic (one deadline based, and one
+ * laxity based) and the same supplier behavior is used each time:
+ * the messages are preallocated and their static information
+ * valued, the current time is obtained and deadlines are set, with
+ * half of the messages given late deadlines, and the other half of
+ * the messages given reachable deadlines. The producer then
+ * immediately enqueues all messages.
+ *
+ * Two separate tests are run, one which verifies messages are
+ * correctly ordered my the given queues, and one which generates
+ * performance numbers for the various queues under increasing
+ * numbers of messages. In the first test, the consumer is passed
+ * the filled queue and a string with the expected order in which
+ * the messages should dequeue. In the second test, measurements
+ * are made as non-intrusive as possible, with no ordering checks.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "test_config.h" /* Include first to enable ACE_TEST_ASSERT. */
#include "ace/Message_Queue.h"
#include "ace/Thread_Manager.h"
#include "ace/High_Res_Timer.h"
@@ -57,28 +54,31 @@
# include "ace/OS_NS_string.h"
#endif /* VXWORKS */
-ACE_RCSID(tests, Dynamic_Priority_Test, "$Id$")
+
#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
enum Test_Type {BEST, WORST, RANDOM};
+/**
+ * @class ArgStruct
+ *
+ * @brief Structure used to pass arguments to test functions.
+ */
class ArgStruct
{
- // = TITLE
- // Structure used to pass arguments to test functions.
public:
+ /// message queue to test
ACE_Message_Queue<ACE_SYNCH> *queue_;
- // message queue to test
+ /// string of characters to indicate message order
const char *order_string_;
- // string of characters to indicate message order
+ /// array of message blocks to use
ACE_Message_Block **array_;
- // array of message blocks to use
+ /// expected message count
u_int expected_count_;
- // expected message count
};
// Order in which messages are sent.
@@ -137,7 +137,7 @@ static const ACE_Time_Value offset_step (0, 5);
static void *
order_consumer (void *args)
{
- ACE_ASSERT (args != 0);
+ ACE_TEST_ASSERT (args != 0);
ACE_Message_Queue<ACE_SYNCH> *msg_queue =
static_cast<ArgStruct *> (args)->queue_;
@@ -146,8 +146,8 @@ order_consumer (void *args)
u_int expected_count =
static_cast<ArgStruct *> (args)->expected_count_;
- ACE_ASSERT (receipt_order != 0);
- ACE_ASSERT (msg_queue != 0);
+ ACE_TEST_ASSERT (receipt_order != 0);
+ ACE_TEST_ASSERT (msg_queue != 0);
u_int local_count = 0;
@@ -167,11 +167,11 @@ order_consumer (void *args)
local_count++;
- ACE_ASSERT (*expected == *mb->rd_ptr ());
+ ACE_TEST_ASSERT (*expected == *mb->rd_ptr ());
}
- ACE_ASSERT (local_count == ACE_OS::strlen (receipt_order));
- ACE_ASSERT (local_count == expected_count);
+ ACE_TEST_ASSERT (local_count == ACE_OS::strlen (receipt_order));
+ ACE_TEST_ASSERT (local_count == expected_count);
return 0;
}
@@ -183,7 +183,7 @@ order_consumer (void *args)
static void *
order_producer (void *args)
{
- ACE_ASSERT (args != 0);
+ ACE_TEST_ASSERT (args != 0);
ACE_Message_Queue<ACE_SYNCH> *msg_queue =
static_cast<ArgStruct *> (args)->queue_;
@@ -194,8 +194,8 @@ order_producer (void *args)
int expected_count =
static_cast<ArgStruct *> (args)->expected_count_;
- ACE_ASSERT (send_order != 0);
- ACE_ASSERT (block_array != 0);
+ ACE_TEST_ASSERT (send_order != 0);
+ ACE_TEST_ASSERT (block_array != 0);
// Iterate through the send order string and the message block
// array, setting the current message block's read pointer to the
@@ -207,7 +207,7 @@ order_producer (void *args)
{
// point to the current message block
ACE_Message_Block *mb = block_array [local_count];
- ACE_ASSERT (mb != 0);
+ ACE_TEST_ASSERT (mb != 0);
// Set the current send character in the current message block
// at its read pointer position, and adjust the write pointer.
@@ -220,7 +220,7 @@ order_producer (void *args)
break;
}
- ACE_ASSERT (local_count == expected_count);
+ ACE_TEST_ASSERT (local_count == expected_count);
return 0;
}
@@ -233,10 +233,10 @@ run_order_test (ACE_Message_Queue<ACE_SYNCH>* msg_queue,
u_int i;
u_int array_size = ACE_OS::strlen (send_order);
- ACE_ASSERT (msg_queue != 0);
- ACE_ASSERT (send_order != 0);
- ACE_ASSERT (receipt_order != 0);
- ACE_ASSERT (ACE_OS::strlen (send_order) == ACE_OS::strlen (receipt_order));
+ ACE_TEST_ASSERT (msg_queue != 0);
+ ACE_TEST_ASSERT (send_order != 0);
+ ACE_TEST_ASSERT (receipt_order != 0);
+ ACE_TEST_ASSERT (ACE_OS::strlen (send_order) == ACE_OS::strlen (receipt_order));
ArgStruct supplier_args, consumer_args;
@@ -307,7 +307,7 @@ run_order_test (ACE_Message_Queue<ACE_SYNCH>* msg_queue,
break;
// should never reach here, but its better to make sure
default:
- ACE_ASSERT ((4 * i) / array_size < 4);
+ ACE_TEST_ASSERT ((4 * i) / array_size < 4);
break;
}
}
@@ -340,14 +340,14 @@ performance_consumer (void * args)
{
ACE_High_Res_Timer timer;
- ACE_ASSERT (args != 0);
+ ACE_TEST_ASSERT (args != 0);
ACE_Message_Queue<ACE_SYNCH> *msg_queue =
static_cast<ArgStruct *> (args)->queue_;
u_int expected_count =
static_cast<ArgStruct *> (args)->expected_count_;
- ACE_ASSERT (msg_queue != 0);
+ ACE_TEST_ASSERT (msg_queue != 0);
u_int local_count = 0;
ACE_Message_Block *mb = 0;
@@ -371,7 +371,7 @@ performance_consumer (void * args)
tv.msec (),
(ACE_timer_t) tv.msec () / local_count));
- ACE_ASSERT (local_count == expected_count);
+ ACE_TEST_ASSERT (local_count == expected_count);
return 0;
}
@@ -386,7 +386,7 @@ performance_producer (void *args)
{
ACE_High_Res_Timer timer;
- ACE_ASSERT (args != 0);
+ ACE_TEST_ASSERT (args != 0);
ACE_Message_Queue<ACE_SYNCH> *msg_queue =
static_cast<ArgStruct *> (args)->queue_;
@@ -395,8 +395,8 @@ performance_producer (void *args)
int expected_count =
static_cast<ArgStruct *> (args)->expected_count_;
- ACE_ASSERT (send_order != 0);
- ACE_ASSERT (block_array != 0);
+ ACE_TEST_ASSERT (send_order != 0);
+ ACE_TEST_ASSERT (block_array != 0);
// reset, then start timer
timer.reset ();
@@ -411,7 +411,7 @@ performance_producer (void *args)
{
// Point to the current message block.
ACE_Message_Block *mb = block_array [local_count];
- ACE_ASSERT (mb != 0);
+ ACE_TEST_ASSERT (mb != 0);
// Set a character in the current message block at its
// read pointer position, and adjust the write pointer.
@@ -433,7 +433,7 @@ performance_producer (void *args)
tv.msec (),
(ACE_timer_t) tv.msec () / local_count));
- ACE_ASSERT (local_count == expected_count);
+ ACE_TEST_ASSERT (local_count == expected_count);
return 0;
}
@@ -457,16 +457,16 @@ run_performance_test (u_int min_load,
ACE_Message_Queue<ACE_SYNCH> *static_queue =
ACE_Message_Queue_Factory<ACE_SYNCH>::create_static_message_queue (max_queue);
- ACE_ASSERT (static_queue != 0);
+ ACE_TEST_ASSERT (static_queue != 0);
ACE_Message_Queue<ACE_SYNCH> *deadline_queue =
ACE_Message_Queue_Factory<ACE_SYNCH>::create_deadline_message_queue (max_queue);
- ACE_ASSERT (deadline_queue != 0);
+ ACE_TEST_ASSERT (deadline_queue != 0);
ACE_Message_Queue<ACE_SYNCH> *laxity_queue =
ACE_Message_Queue_Factory<ACE_SYNCH>::create_laxity_message_queue (max_queue);
- ACE_ASSERT (laxity_queue != 0);
+ ACE_TEST_ASSERT (laxity_queue != 0);
// Zero out unused struct members.
supplier_args.order_string_ = 0;
@@ -727,7 +727,7 @@ run_main (int, ACE_TCHAR *[])
// Test factory, static message queue.
ACE_Message_Queue<ACE_SYNCH> *test_queue =
ACE_Message_Queue_Factory<ACE_SYNCH>::create_static_message_queue (max_queue);
- ACE_ASSERT (test_queue != 0);
+ ACE_TEST_ASSERT (test_queue != 0);
run_order_test (test_queue,
send_order,
static_receipt_order);
@@ -736,7 +736,7 @@ run_main (int, ACE_TCHAR *[])
// Test factory, dynamic message queue (deadline strategy).
test_queue =
ACE_Message_Queue_Factory<ACE_SYNCH>::create_deadline_message_queue (max_queue);
- ACE_ASSERT (test_queue != 0);
+ ACE_TEST_ASSERT (test_queue != 0);
run_order_test (test_queue,
send_order,
deadline_receipt_order);
@@ -745,7 +745,7 @@ run_main (int, ACE_TCHAR *[])
// Test factory, dynamic message queue (laxity strategy).
test_queue =
ACE_Message_Queue_Factory<ACE_SYNCH>::create_laxity_message_queue (max_queue);
- ACE_ASSERT (test_queue != 0);
+ ACE_TEST_ASSERT (test_queue != 0);
run_order_test (test_queue,
send_order,
laxity_receipt_order);
@@ -756,7 +756,7 @@ run_main (int, ACE_TCHAR *[])
ACE_Message_Queue_Vx *test_queue_vx =
ACE_Message_Queue_Factory<ACE_NULL_SYNCH>::create_Vx_message_queue (vx_max_queue,
vx_msg_size);
- ACE_ASSERT (test_queue_vx != 0);
+ ACE_TEST_ASSERT (test_queue_vx != 0);
// (TBD - does message receipt order test make any sense for Vx Queue ?
// If so, uncomment order test, or if not remove order test, below)
// @@ % levine 22 Jul 1998 % It'd be nice to run the test, but:
diff --git a/ACE/tests/Dynamic_Test.cpp b/ACE/tests/Dynamic_Test.cpp
index 9071c5f57eb..39be9642c61 100644
--- a/ACE/tests/Dynamic_Test.cpp
+++ b/ACE/tests/Dynamic_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Dynamic_Test.cpp
-//
-// = DESCRIPTION
-// This tests the ACE_Dynamic class
-//
-// = AUTHORS
-// Johnny Willemsen <jwillemsen@remedy.nl>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Dynamic_Test.cpp
+ *
+ * $Id$
+ *
+ * This tests the ACE_Dynamic class
+ *
+ *
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
#include "ace/Dynamic.h"
#include "ace/OS_Memory.h"
-ACE_RCSID(tests, Dynamic_Test, "$Id$")
+
class A
{
@@ -56,10 +53,10 @@ A::operator new (size_t n)
if (dynamic_instance == 0)
{
- // If this ACE_ASSERT fails, it may be due to running of out TSS
+ // If this ACE_TEST_ASSERT fails, it may be due to running of out TSS
// keys. Try using ACE_HAS_TSS_EMULATION, or increasing
// ACE_DEFAULT_THREAD_KEYS if already using TSS emulation.
- ACE_ASSERT (dynamic_instance != 0);
+ ACE_TEST_ASSERT (dynamic_instance != 0);
ACE_throw_bad_alloc;
}
@@ -81,10 +78,10 @@ A::operator new (size_t n, const ACE_nothrow_t&) throw()
if (dynamic_instance == 0)
{
- // If this ACE_ASSERT fails, it may be due to running of out TSS
+ // If this ACE_TEST_ASSERT fails, it may be due to running of out TSS
// keys. Try using ACE_HAS_TSS_EMULATION, or increasing
// ACE_DEFAULT_THREAD_KEYS if already using TSS emulation.
- ACE_ASSERT (dynamic_instance != 0);
+ ACE_TEST_ASSERT (dynamic_instance != 0);
return 0;
}
diff --git a/ACE/tests/Enum_Interfaces_Test.cpp b/ACE/tests/Enum_Interfaces_Test.cpp
index 17552f76a12..4fa785126cf 100644
--- a/ACE/tests/Enum_Interfaces_Test.cpp
+++ b/ACE/tests/Enum_Interfaces_Test.cpp
@@ -1,37 +1,34 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Enum_interfaces.cpp
-//
-// = DESCRIPTION
-// This is a simple test of <ACE::get_ip_interfaces>. This call
-// retrieves the IP addresses assigned to the host by
-// interrogating the kernel. Network applications typically
-// assume gethostbyname(uname()) will work, but this is just a
-// convention. It is also problematic if the resolver code
-// (DNS/NIS+...) is misconfigured. This happens more than
-// programmers realize. It is better to find out by asking the
-// kernel for local address assignments. This API is similar to
-// what netstat -ni or ifconfig -a produces on UNIX or ipconfig on
-// Windows NT. In fact, it was by reverse engineering these tools
-// that this api was created.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Enum_Interfaces_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of <ACE::get_ip_interfaces>. This call
+ * retrieves the IP addresses assigned to the host by
+ * interrogating the kernel. Network applications typically
+ * assume gethostbyname(uname()) will work, but this is just a
+ * convention. It is also problematic if the resolver code
+ * (DNS/NIS+...) is misconfigured. This happens more than
+ * programmers realize. It is better to find out by asking the
+ * kernel for local address assignments. This API is similar to
+ * what netstat -ni or ifconfig -a produces on UNIX or ipconfig on
+ * Windows NT. In fact, it was by reverse engineering these tools
+ * that this api was created.
+ *
+ *
+ * @author Michael R. MacFaden <mrm@cisco.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_sys_utsname.h"
#include "ace/INET_Addr.h"
-ACE_RCSID(tests, Enum_Interfaces_Test, "$Id$")
+
int
run_main (int, ACE_TCHAR *[])
diff --git a/ACE/tests/Env_Value_Test.cpp b/ACE/tests/Env_Value_Test.cpp
index 5cb8464b55b..368ec76b83a 100644
--- a/ACE/tests/Env_Value_Test.cpp
+++ b/ACE/tests/Env_Value_Test.cpp
@@ -20,8 +20,6 @@
#include "ace/Process.h"
#include "ace/Env_Value_T.h"
-ACE_RCSID(tests, Env_Value_Test, "$Id$")
-
#define TEST_THIS(type, varname, defval, expval) \
do { \
ACE_Env_Value<type> val (varname, (defval)); \
@@ -39,10 +37,8 @@ int
#if 1 || defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) || defined (ACE_LACKS_FORK)
// ACE_HAS_NONSTATIC_OBJECT_MANAGER only allows main to have two
// arguments. And on platforms that lack fork (), we can't use spawn.
-run_main (int argc, ACE_TCHAR* [])
+run_main (int, ACE_TCHAR* [])
{
- ACE_UNUSED_ARG (argc);
-
// Only Win32 can set wide-char environment strings. So, for all
// others, use char string literals regardless of ACE_USES_WCHAR.
# if defined (ACE_WIN32)
diff --git a/ACE/tests/FIFO_Test.cpp b/ACE/tests/FIFO_Test.cpp
index 8a7f7a64a44..54125ca1b20 100644
--- a/ACE/tests/FIFO_Test.cpp
+++ b/ACE/tests/FIFO_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// FIFO_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of basic ACE_FIFO_* class functionality.
-// The test forks two processes or spawns two threads (depending
-// upon the platform) and then tests various data exchange
-// scenarios.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file FIFO_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of basic ACE_FIFO_* class functionality.
+ * The test forks two processes or spawns two threads (depending
+ * upon the platform) and then tests various data exchange
+ * scenarios.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -32,7 +29,7 @@
#include "ace/Thread.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(tests, SOCK_Test, "$Id$")
+
#if !defined (ACE_LACKS_MKFIFO)
diff --git a/ACE/tests/FlReactor_Test.cpp b/ACE/tests/FlReactor_Test.cpp
index 1bc32627bd2..613cdd8f704 100644
--- a/ACE/tests/FlReactor_Test.cpp
+++ b/ACE/tests/FlReactor_Test.cpp
@@ -1,30 +1,27 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// FlReactor_Test.cpp
-//
-// = DESCRIPTION
-// A simple test that ilustrates the integration of the fast-light
-// toolkit (http://fltk.easysw.org/) with ACE, it uses FL to create
-// an OpenGL window and display a polygon, it uses ACE to open an
-// acceptor. Every time there is a connection the number of polygons
-// is increased, a little widget can be used to change the number of
-// polygons too.
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file FlReactor_Test.cpp
+ *
+ * $Id$
+ *
+ * A simple test that ilustrates the integration of the fast-light
+ * toolkit (http://fltk.easysw.org/) with ACE, it uses FL to create
+ * an OpenGL window and display a polygon, it uses ACE to open an
+ * acceptor. Every time there is a connection the number of polygons
+ * is increased, a little widget can be used to change the number of
+ * polygons too.
+ *
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
-ACE_RCSID(tests, FlReactor_Test, "$Id$")
+
#include "ace/FlReactor/FlReactor.h"
@@ -46,17 +43,17 @@ ACE_RCSID(tests, FlReactor_Test, "$Id$")
class Test_Window : public Fl_Gl_Window
{
public:
+ /// Constructor
Test_Window (int x, int y, int w, int h,
const char * l = 0);
- // Constructor
int sides (void) const;
void sides (int s);
void incr_sides (void);
private:
+ /// from the Fl_Gl_Window...
virtual void draw (void);
- // from the Fl_Gl_Window...
int sides_;
};
@@ -271,8 +268,10 @@ int run_main (int argc, ACE_TCHAR *argv[])
window.show (argc, argv);
tw.show ();
- return Fl::run ();
+ int const retval = Fl::run ();
ACE_END_TEST;
+
+ return retval;
}
diff --git a/ACE/tests/Framework_Component_DLL.cpp b/ACE/tests/Framework_Component_DLL.cpp
index f8e4e34dbf0..e155cf22e74 100644
--- a/ACE/tests/Framework_Component_DLL.cpp
+++ b/ACE/tests/Framework_Component_DLL.cpp
@@ -1,32 +1,25 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Framework_Component_DLL.cpp
-//
-// = DESCRIPTION
-// This is a simple server that can be loaded via the ACE
-// Service Configuration framework and uses the singleton that
-// also lives in this library.
-//
-// = AUTHOR
-// Don Hinton <dhinton@ieee.org>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Framework_Component_DLL.cpp
+ *
+ * $Id$
+ *
+ * This is a simple server that can be loaded via the ACE
+ * Service Configuration framework and uses the singleton that
+ * also lives in this library.
+ *
+ *
+ * @author Don Hinton <dhinton@ieee.org>
+ */
+//=============================================================================
+
#include "Framework_Component_DLL.h"
#include "ace/Service_Config.h"
#include "ace/Service_Object.h"
#include "ace/Framework_Component_T.h"
-ACE_RCSID (tests,
- Framework_Component_DLL,
- "$Id$")
-
ACE_DLL_UNLOAD_POLICY (Framework_Component_DLL, ACE_DLL_UNLOAD_POLICY_LAZY)
Simple_Service::Simple_Service (void)
diff --git a/ACE/tests/Framework_Component_DLL.h b/ACE/tests/Framework_Component_DLL.h
index c9760b33dcb..a0dd585c6fb 100644
--- a/ACE/tests/Framework_Component_DLL.h
+++ b/ACE/tests/Framework_Component_DLL.h
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Framework_Component_DLL.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Don Hinton <dhinton@ieee.org>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Framework_Component_DLL.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Don Hinton <dhinton@ieee.org>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_FRAMEWORK_COMPONENT_DLL_H
#define ACE_TESTS_FRAMEWORK_COMPONENT_DLL_H
diff --git a/ACE/tests/Framework_Component_Test.cpp b/ACE/tests/Framework_Component_Test.cpp
index 58c753c6200..6f44a5c12cc 100644
--- a/ACE/tests/Framework_Component_Test.cpp
+++ b/ACE/tests/Framework_Component_Test.cpp
@@ -18,12 +18,12 @@
//
// ============================================================================
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/Service_Config.h"
#include "ace/ARGV.h"
#include "ace/DLL_Manager.h"
-ACE_RCSID(tests, Framework_Component_Test, "$Id$")
+
// Define a few macros--because they're so much fun, and keep the
// code below a little cleaner...
diff --git a/ACE/tests/Framework_Component_Test.h b/ACE/tests/Framework_Component_Test.h
index d5127477812..ca3f46f3482 100644
--- a/ACE/tests/Framework_Component_Test.h
+++ b/ACE/tests/Framework_Component_Test.h
@@ -1,28 +1,25 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Framework_Component_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Don Hinton <dhinton@ieee.org>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Framework_Component_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Don Hinton <dhinton@ieee.org>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_FRAMEWORK_COMPONENT_TEST_H
#define ACE_TESTS_FRAMEWORK_COMPONENT_TEST_H
#include "ace/Log_Msg.h"
-/// This we will use to test the ACE_Framework_Repository
+/// This we will use to test the ACE_Framework_Repository
class Simple_Service
{
public:
diff --git a/ACE/tests/Future_Set_Test.cpp b/ACE/tests/Future_Set_Test.cpp
index 8f2eb9306ef..954aa33722f 100644
--- a/ACE/tests/Future_Set_Test.cpp
+++ b/ACE/tests/Future_Set_Test.cpp
@@ -1,27 +1,23 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Future_Set_Test.cpp
-//
-// = DESCRIPTION
-// This example tests the ACE Future Set and illustrates an
-// implementation of the Active Object pattern, which is available
-// at <http://www.cs.wustl.edu/~schmidt/Act-Obj.ps.gz>. The
-// Active Object itself is very simple -- it determines if numbers
-// are prime.
-//
-// = AUTHOR
-// Andres Kruse <Andres.Kruse@cern.ch>,
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>,
-// Per Andersson <pera@ipso.se> and
-// Johnny Tucker <jtucker@infoglide.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Future_Set_Test.cpp
+ *
+ * $Id$
+ *
+ * This example tests the ACE Future Set and illustrates an
+ * implementation of the Active Object pattern, which is available
+ * at <http://www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf>. The
+ * Active Object itself is very simple -- it determines if numbers
+ * are prime.
+ *
+ *
+ * @author Andres Kruse <Andres.Kruse@cern.ch>
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author Per Andersson <pera@ipso.se> and Johnny Tucker <jtucker@infoglide.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -36,7 +32,7 @@
#include "ace/Atomic_Op.h"
#include "ace/Null_Mutex.h"
-ACE_RCSID(tests, Future_Set_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -45,35 +41,37 @@ typedef ACE_Atomic_Op<ACE_Thread_Mutex, int> ATOMIC_INT;
// A counter for the tasks..
static ATOMIC_INT task_count (0);
+/**
+ * @class Prime_Scheduler
+ *
+ * @brief Prime number scheduler for the Active Object.
+ *
+ * This class also plays the role of the Proxy and the Servant
+ * in the Active Object pattern. Naturally, these roles could
+ * be split apart from the Prime_Scheduler.
+ */
class Prime_Scheduler : public ACE_Task_Base
{
- // = TITLE
- // Prime number scheduler for the Active Object.
- //
- // = DESCRIPTION
- // This class also plays the role of the Proxy and the Servant
- // in the Active Object pattern. Naturally, these roles could
- // be split apart from the Prime_Scheduler.
friend class Method_Request_work;
friend class Method_Request_name;
friend class Method_Request_end;
public:
// = Initialization and termination methods.
+ /// Constructor.
Prime_Scheduler (const ACE_TCHAR *,
Prime_Scheduler * = 0);
- // Constructor.
//FUZZ: disable check_for_lack_ACE_OS
+ /// Initializer.
virtual int open (void *args = 0);
- // Initializer.
- virtual int shutdown (void);
- // Terminator.
+ /// Terminator.
//FUZZ: enable check_for_lack_ACE_OS
+ virtual int shutdown (void);
+ /// Destructor.
virtual ~Prime_Scheduler (void);
- // Destructor.
// = These methods are part of the Active Object Proxy interface.
ACE_Future<u_long> work (u_long param, int count = 1);
@@ -81,9 +79,9 @@ public:
void end (void);
protected:
+ /// Runs the Prime_Scheduler's event loop, which dequeues
+ /// <Method_Requests> and dispatches them.
virtual int svc (void);
- // Runs the Prime_Scheduler's event loop, which dequeues
- // <Method_Requests> and dispatches them.
// = These are the Servant methods that do the actual work.
u_long work_i (u_long, int);
@@ -96,10 +94,13 @@ private:
Prime_Scheduler *scheduler_;
};
+/**
+ * @class Method_Request_work
+ *
+ * @brief Reification of the <work> method.
+ */
class Method_Request_work : public ACE_Method_Request
{
- // = TITLE
- // Reification of the <work> method.
public:
Method_Request_work (Prime_Scheduler *,
u_long,
@@ -107,21 +108,21 @@ public:
ACE_Future<u_long> &);
virtual ~Method_Request_work (void);
+ /// This is the entry point into the Active Object method.
virtual int call (void);
- // This is the entry point into the Active Object method.
private:
Prime_Scheduler *scheduler_;
+ /// Parameter to the method that's used to determine if a number if
+ /// prime.
u_long param_;
- // Parameter to the method that's used to determine if a number if
- // prime.
+ /// Unused.
int count_;
- // Unused.
+ /// Store the result of the Future.
ACE_Future<u_long> future_result_;
- // Store the result of the Future.
};
Method_Request_work::Method_Request_work (Prime_Scheduler *new_Prime_Scheduler,
@@ -153,17 +154,20 @@ Method_Request_work::call (void)
this->count_));
}
+/**
+ * @class Method_Request_name
+ *
+ * @brief Reification of the <name> method.
+ */
class Method_Request_name : public ACE_Method_Request
{
- // = TITLE
- // Reification of the <name> method.
public:
Method_Request_name (Prime_Scheduler *,
ACE_Future<const ACE_TCHAR*> &);
virtual ~Method_Request_name (void);
+ /// This is the entry point into the Active Object method.
virtual int call (void);
- // This is the entry point into the Active Object method.
private:
Prime_Scheduler *scheduler_;
@@ -193,10 +197,13 @@ Method_Request_name::call (void)
return future_result_.set (scheduler_->name_i ());
}
+/**
+ * @class Method_Request_end
+ *
+ * @brief Reification of the <end> method.
+ */
class Method_Request_end : public ACE_Method_Request
{
- // = TITLE
- // Reification of the <end> method.
public:
Method_Request_end (Prime_Scheduler *new_Prime_Scheduler);
virtual ~Method_Request_end (void);
@@ -383,17 +390,17 @@ run_main (int, ACE_TCHAR *[])
Prime_Scheduler (ACE_TEXT ("andres")),
-1);
int result = andres->open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_NEW_RETURN (peter,
Prime_Scheduler (ACE_TEXT ("peter")),
-1);
result = peter->open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_NEW_RETURN (helmut,
Prime_Scheduler (ACE_TEXT ("helmut")),
-1);
result = helmut->open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
// Matias passes all asynchronous method calls on to Andres...
ACE_NEW_RETURN (matias,
@@ -401,7 +408,7 @@ run_main (int, ACE_TCHAR *[])
andres),
-1);
result = matias->open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_Future<u_long> fresulta;
ACE_Future<u_long> fresultb;
diff --git a/ACE/tests/Future_Test.cpp b/ACE/tests/Future_Test.cpp
index 0470d15c166..5a418583147 100644
--- a/ACE/tests/Future_Test.cpp
+++ b/ACE/tests/Future_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Future_Test.cpp
-//
-// = DESCRIPTION
-// This example tests the ACE Future and illustrates an
-// implementation of the Active Object pattern, which is described
-// in the POSA2 book <www.cs.wustl.edu/~schmidt/POSA/> and in a
-// paper at <www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf>. The
-// Active Object example here is very simple -- it determines if numbers
-// are prime.
-//
-// = AUTHOR
-// Andres Kruse <Andres.Kruse@cern.ch>,
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>,
-// and Per Andersson <pera@ipso.se>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Future_Test.cpp
+ *
+ * $Id$
+ *
+ * This example tests the ACE Future and illustrates an
+ * implementation of the Active Object pattern, which is described
+ * in the POSA2 book <www.cs.wustl.edu/~schmidt/POSA/> and in a
+ * paper at <www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf>. The
+ * Active Object example here is very simple -- it determines if numbers
+ * are prime.
+ *
+ *
+ * @author Andres Kruse <Andres.Kruse@cern.ch>
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author and Per Andersson <pera@ipso.se>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -36,7 +33,7 @@
#include "ace/Atomic_Op.h"
-ACE_RCSID(tests, Future_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -54,35 +51,37 @@ static ATOMIC_INT capsule_count (0);
// A counter for the method requests...
static ATOMIC_INT method_request_count (0);
+/**
+ * @class Prime_Scheduler
+ *
+ * @brief Prime number scheduler for the Active Object.
+ *
+ * This class also plays the role of the Proxy and the Servant
+ * in the Active Object pattern. Naturally, these roles could
+ * be split apart from the Prime_Scheduler.
+ */
class Prime_Scheduler : public ACE_Task_Base
{
- // = TITLE
- // Prime number scheduler for the Active Object.
- //
- // = DESCRIPTION
- // This class also plays the role of the Proxy and the Servant
- // in the Active Object pattern. Naturally, these roles could
- // be split apart from the Prime_Scheduler.
friend class Method_Request_work;
friend class Method_Request_name;
friend class Method_Request_end;
public:
// = Initialization and termination methods.
+ /// Constructor.
Prime_Scheduler (const ACE_TCHAR *,
Prime_Scheduler * = 0);
- // Constructor.
//FUZZ: disable check_for_lack_ACE_OS
+ /// Initializer.
virtual int open (void *args = 0);
- // Initializer.
+ //FUZZ: enable check_for_lack_ACE_OS
+ /// Terminator.
virtual int shutdown (void);
- // Terminator.
- //FUZZ: enable check_for_lack_ACE_OS
+ /// Destructor.
virtual ~Prime_Scheduler (void);
- // Destructor.
// = These methods are part of the Active Object Proxy interface.
ACE_Future<u_long> work (u_long param, int count = 1);
@@ -90,9 +89,9 @@ public:
void end (void);
protected:
+ /// Runs the Prime_Scheduler's event loop, which dequeues
+ /// <Method_Requests> and dispatches them.
virtual int svc (void);
- // Runs the Prime_Scheduler's event loop, which dequeues
- // <Method_Requests> and dispatches them.
// = These are the Servant methods that do the actual work.
u_long work_i (u_long, int);
@@ -105,10 +104,13 @@ private:
Prime_Scheduler *scheduler_;
};
+/**
+ * @class Method_Request_work
+ *
+ * @brief Reification of the <work> method.
+ */
class Method_Request_work : public ACE_Method_Request
{
- // = TITLE
- // Reification of the <work> method.
public:
Method_Request_work (Prime_Scheduler *,
u_long,
@@ -116,21 +118,21 @@ public:
ACE_Future<u_long> &);
virtual ~Method_Request_work (void);
+ /// This is the entry point into the Active Object method.
virtual int call (void);
- // This is the entry point into the Active Object method.
private:
Prime_Scheduler *scheduler_;
+ /// Parameter to the method that's used to determine if a number if
+ /// prime.
u_long param_;
- // Parameter to the method that's used to determine if a number if
- // prime.
+ /// Unused.
int count_;
- // Unused.
+ /// Store the result of the Future.
ACE_Future<u_long> future_result_;
- // Store the result of the Future.
};
Method_Request_work::Method_Request_work (Prime_Scheduler *new_Prime_Scheduler,
@@ -162,17 +164,20 @@ Method_Request_work::call (void)
this->count_));
}
+/**
+ * @class Method_Request_name
+ *
+ * @brief Reification of the <name> method.
+ */
class Method_Request_name : public ACE_Method_Request
{
- // = TITLE
- // Reification of the <name> method.
public:
Method_Request_name (Prime_Scheduler *,
ACE_Future<const ACE_TCHAR*> &);
virtual ~Method_Request_name (void);
+ /// This is the entry point into the Active Object method.
virtual int call (void);
- // This is the entry point into the Active Object method.
private:
Prime_Scheduler *scheduler_;
@@ -202,10 +207,13 @@ Method_Request_name::call (void)
return future_result_.set (scheduler_->name_i ());
}
+/**
+ * @class Method_Request_end
+ *
+ * @brief Reification of the <end> method.
+ */
class Method_Request_end : public ACE_Method_Request
{
- // = TITLE
- // Reification of the <end> method.
public:
Method_Request_end (Prime_Scheduler *new_Prime_Scheduler);
virtual ~Method_Request_end (void);
@@ -386,17 +394,17 @@ run_main (int, ACE_TCHAR *[])
Prime_Scheduler (ACE_TEXT ("andres")),
-1);
int result = andres->open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_NEW_RETURN (peter,
Prime_Scheduler (ACE_TEXT ("peter")),
-1);
result = peter->open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_NEW_RETURN (helmut,
Prime_Scheduler (ACE_TEXT ("helmut")),
-1);
result = helmut->open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
// Matias passes all asynchronous method calls on to Andres...
ACE_NEW_RETURN (matias,
@@ -404,7 +412,7 @@ run_main (int, ACE_TCHAR *[])
andres),
-1);
result = matias->open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
for (int i = 0; i < n_loops; i++)
{
diff --git a/ACE/tests/Get_Opt_Test.cpp b/ACE/tests/Get_Opt_Test.cpp
index 8acabb3a131..c69d3fad1d4 100644
--- a/ACE/tests/Get_Opt_Test.cpp
+++ b/ACE/tests/Get_Opt_Test.cpp
@@ -14,14 +14,14 @@
//
// ============================================================================
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/Get_Opt.h"
#include "ace/ARGV.h"
#include "ace/SString.h"
#include "ace/OS_NS_stdlib.h"
-#include "tests/test_config.h"
+#include "test_config.h"
+
-ACE_RCSID(tests, Get_Opt_Test, "$Id$")
/*
* This is the heart of the test. It sets up the optstring, instantiates
diff --git a/ACE/tests/Handle_Set_Test.cpp b/ACE/tests/Handle_Set_Test.cpp
index 529d269296b..af6c4be30b7 100644
--- a/ACE/tests/Handle_Set_Test.cpp
+++ b/ACE/tests/Handle_Set_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Handle_Set_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the use of ACE_Handle_Set to maintain a
-// set of handles. No command line arguments are needed to run
-// the test.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Handle_Set_Test.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the use of ACE_Handle_Set to maintain a
+ * set of handles. No command line arguments are needed to run
+ * the test.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_stdlib.h"
@@ -24,7 +21,7 @@
#include "ace/Handle_Set.h"
#include "ace/Containers.h"
-ACE_RCSID(tests, Handle_Set_Test, "$Id$")
+
static void
test_duplicates (size_t count)
@@ -60,8 +57,8 @@ test_duplicates (size_t count)
}
}
- ACE_ASSERT (count == sets + clears);
- ACE_ASSERT (handle_set.num_set () + duplicates == sets);
+ ACE_TEST_ASSERT (count == sets + clears);
+ ACE_TEST_ASSERT (handle_set.num_set () + duplicates == sets);
}
// This is the vector of handles to test. These numbers are chosen to
@@ -109,7 +106,7 @@ test_boundaries (void)
(handle = i1 ()) != ACE_INVALID_HANDLE;
)
{
- ACE_ASSERT (0 ==
+ ACE_TEST_ASSERT (0 ==
ACE_TEXT ("this shouldn't get called since ")
ACE_TEXT ("the set is empty!\n"));
}
@@ -149,11 +146,11 @@ test_boundaries (void)
ACE_TEXT ("obtained handle %d\n"),
handle));
int done = set.remove (handle);
- ACE_ASSERT (done == 0);
+ ACE_TEST_ASSERT (done == 0);
count++;
}
- ACE_ASSERT (count == handle_set.num_set ());
+ ACE_TEST_ASSERT (count == handle_set.num_set ());
}
static void
@@ -182,7 +179,7 @@ test_performance (size_t max_handles,
timer.stop ();
- ACE_ASSERT (count == max_handles * max_iterations);
+ ACE_TEST_ASSERT (count == max_handles * max_iterations);
ACE_Profile_Timer::ACE_Elapsed_Time et;
diff --git a/ACE/tests/Hash_Map_Bucket_Iterator_Test.cpp b/ACE/tests/Hash_Map_Bucket_Iterator_Test.cpp
index ab1cae561df..826cb6995cc 100644
--- a/ACE/tests/Hash_Map_Bucket_Iterator_Test.cpp
+++ b/ACE/tests/Hash_Map_Bucket_Iterator_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Hash_Map_Bucket_Iterator_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the <Hash_Map_Bucket_Iterator>.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Hash_Map_Bucket_Iterator_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the <Hash_Map_Bucket_Iterator>.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_stdlib.h"
@@ -24,8 +21,6 @@
#include "ace/Get_Opt.h"
#include "ace/Functor.h"
-ACE_RCSID(tests, Hash_Map_Bucket_Iterator_Test, "$Id$")
-
static ACE_UINT32 iterations = ACE_MAX_ITERATIONS * 10;
static ACE_UINT32 table_size = ACE_MAX_ITERATIONS;
@@ -89,8 +84,7 @@ run_main (int argc, ACE_TCHAR *argv[])
for (i = 0; i < iterations; ++i)
{
int result = map.bind (i, i);
- ACE_ASSERT (result == 0);
- ACE_UNUSED_ARG (result);
+ ACE_TEST_ASSERT (result == 0);
}
for (i = 0; i < table_size; ++i)
@@ -108,7 +102,7 @@ run_main (int argc, ACE_TCHAR *argv[])
{
ACE_DEBUG ((LM_DEBUG, "%d ", (*iterator).int_id_));
ACE_UINT32 key = (*iterator).ext_id_;
- ACE_ASSERT (((key - i) % table_size) == 0);
+ ACE_TEST_ASSERT (((key - i) % table_size) == 0);
}
ACE_DEBUG ((LM_DEBUG, "\n"));
diff --git a/ACE/tests/Hash_Map_Manager_Test.cpp b/ACE/tests/Hash_Map_Manager_Test.cpp
index 9776b7104d3..8f8e2848967 100644
--- a/ACE/tests/Hash_Map_Manager_Test.cpp
+++ b/ACE/tests/Hash_Map_Manager_Test.cpp
@@ -1,24 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Hash_Map_Manager_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the use of <ACE_Hash_Map_Manager> to
-// maintain a hash table using strings. In addition, it also
-// illustrates how the <ACE_Static_Allocator> works in
-// conjunction with the <ACE_Hash_Map_Manager>.
-//
-// = AUTHOR
-// James Hu <jxh@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Hash_Map_Manager_Test.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the use of <ACE_Hash_Map_Manager> to
+ * maintain a hash table using strings. In addition, it also
+ * illustrates how the <ACE_Static_Allocator> works in
+ * conjunction with the <ACE_Hash_Map_Manager>.
+ *
+ *
+ * @author James Hu <jxh@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "STL_algorithm_Test_T.h"
@@ -26,7 +22,7 @@
#include "ace/Malloc_T.h"
#include "ace/Null_Mutex.h"
-ACE_RCSID(tests, Hash_Map_Manager_Test, "$Id$")
+
static const size_t STRING_TABLE_ENTRIES = 3 * 2;
static const size_t MAX_HASH = 6;
@@ -202,7 +198,7 @@ run_test (void)
ACE_TEXT ("bind"),
string_table[i].key_), -1);
- const ACE_TCHAR *entry;
+ const ACE_TCHAR *entry = 0;
// Check the <find> operation.
for (i = 0; string_table[i].key_ != 0; i++)
diff --git a/ACE/tests/Hash_Multi_Map_Manager_Test.cpp b/ACE/tests/Hash_Multi_Map_Manager_Test.cpp
index 03946f8b0d0..913eb2818ca 100644
--- a/ACE/tests/Hash_Multi_Map_Manager_Test.cpp
+++ b/ACE/tests/Hash_Multi_Map_Manager_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Hash_Multi_Map_Manager_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the use of <ACE_Hash_Multi_Map_Manager> to
-// maintain a hash table using strings.
-//
-// = AUTHOR
-// Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Hash_Multi_Map_Manager_Test.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the use of <ACE_Hash_Multi_Map_Manager> to
+ * maintain a hash table using strings.
+ *
+ *
+ * @author Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Hash_Multi_Map_Manager_T.h"
#include "ace/Null_Mutex.h"
-ACE_RCSID(tests, Hash_Multi_Map_Manager_Test, "$Id$")
+
typedef ACE_Hash_Multi_Map_Manager<const ACE_TCHAR *,
const ACE_TCHAR *,
@@ -250,11 +247,11 @@ run_test (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("iterating (%d): %s:\n"),
i,
- entry->ext_id_));
+ entry->key ()));
i++;
- for (HASH_STRING_VALUE_SET_ITERATOR iter (entry->int_id_set_);
- iter != entry->int_id_set_.end ();
+ for (HASH_STRING_VALUE_SET_ITERATOR iter (entry->item ());
+ iter != entry->item ().end ();
iter++)
{
ACE_DEBUG ((LM_DEBUG,
@@ -318,11 +315,11 @@ run_test (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("reverse iterating (%d): %s\n"),
i,
- entry->ext_id_));
+ entry->key ()));
i++;
- for (HASH_STRING_VALUE_SET_ITERATOR iter (entry->int_id_set_);
- iter != entry->int_id_set_.end ();
+ for (HASH_STRING_VALUE_SET_ITERATOR iter (entry->item ());
+ iter != entry->item ().end ();
iter++)
{
ACE_DEBUG ((LM_DEBUG,
@@ -349,11 +346,11 @@ run_test (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("const iterating (%d): %s\n"),
i,
- entry->ext_id_));
+ entry->key ()));
i++;
- for (HASH_STRING_VALUE_SET_ITERATOR iter (entry->int_id_set_);
- iter != entry->int_id_set_.end ();
+ for (HASH_STRING_VALUE_SET_ITERATOR iter (entry->item ());
+ iter != entry->item ().end ();
iter++)
{
ACE_DEBUG ((LM_DEBUG,
diff --git a/ACE/tests/High_Res_Timer_Test.cpp b/ACE/tests/High_Res_Timer_Test.cpp
index 5bfcb7ca573..b2b87708ff2 100644
--- a/ACE/tests/High_Res_Timer_Test.cpp
+++ b/ACE/tests/High_Res_Timer_Test.cpp
@@ -1,19 +1,16 @@
-// $Id$
-//============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// High_Res_Timer_Test.cpp
-//
-// = DESCRIPTION
-// Simple test of ACE_High_Res_Timer.
-//
-// = AUTHOR
-// David L. Levine <levine@cs.wustl.edu>
-//
-//============================================================================
+//=============================================================================
+/**
+ * @file High_Res_Timer_Test.cpp
+ *
+ * $Id$
+ *
+ * Simple test of ACE_High_Res_Timer.
+ *
+ *
+ * @author David L. Levine <levine@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Log_Msg.h"
@@ -22,7 +19,7 @@
#include "ace/Get_Opt.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, High_Res_Timer_Test, "$Id$")
+
static
u_int
@@ -59,12 +56,16 @@ check_micro_nano (ACE_hrtime_t microinterval, ACE_hrtime_t nanointerval)
? (microinterval - nanointerval)
: (nanointerval - microinterval));
if (nanointerval == 0)
- nanointerval = 1; // Prevent divide-by-zero
+ {
+ nanointerval = 1; // Prevent divide-by-zero
+ }
ACE_hrtime_t const promille_difference =
difference * 1000 / nanointerval;
if ((promille_difference < threshold) || (difference < 1500))
- return 0;
+ {
+ return 0;
+ }
else
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("The microseconds * 1000 of %Q ")
@@ -113,16 +114,13 @@ run_main (int argc, ACE_TCHAR *argv[])
u_int iterations = 1;
- //FUZZ: disable check_for_lack_ACE_OS
- ACE_Get_Opt getopt (argc, argv, ACE_TEXT ("i:"));
- for (int c; (c = getopt ()) != -1; )
+ ACE_Get_Opt getoptarg (argc, argv, ACE_TEXT ("i:"));
+ for (int c; (c = getoptarg ()) != -1; )
{
- //FUZZ: enable check_for_lack_ACE_OS
-
switch (c)
{
case 'i':
- iterations = ACE_OS::atoi (getopt.opt_arg ());
+ iterations = ACE_OS::atoi (getoptarg.opt_arg ());
break;
}
}
@@ -135,10 +133,10 @@ run_main (int argc, ACE_TCHAR *argv[])
{
for (u_int j = 0; j < iterations; ++j)
{
- const ACE_Time_Value interval (0, intervals[i]);
+ ACE_Time_Value const interval (0, intervals[i]);
ACE_hrtime_t nanoseconds;
ACE_hrtime_t microseconds;
- const ACE_Time_Value measured = time_interval (interval,
+ ACE_Time_Value const measured = time_interval (interval,
nanoseconds,
microseconds);
time_t const interval_usec =
diff --git a/ACE/tests/INET_Addr_Test.cpp b/ACE/tests/INET_Addr_Test.cpp
index 3ffd482451e..b339a7b2dfa 100644
--- a/ACE/tests/INET_Addr_Test.cpp
+++ b/ACE/tests/INET_Addr_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// INET_Addr_Test.cpp
-//
-// = DESCRIPTION
-// Performs several tests on the ACE_INET_Addr class. It creates several
-// IPv4 and IPv6 addresses and checks that the address formed by the
-// class is valid.
-//
-// = AUTHOR
-// John Aughey (jha@aughey.com)
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file INET_Addr_Test.cpp
+ *
+ * $Id$
+ *
+ * Performs several tests on the ACE_INET_Addr class. It creates several
+ * IPv4 and IPv6 addresses and checks that the address formed by the
+ * class is valid.
+ *
+ *
+ * @author John Aughey (jha@aughey.com)
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -60,11 +57,8 @@ struct Address {
bool loopback;
};
-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"));
int status = 0; // Innocent until proven guilty
@@ -81,6 +75,7 @@ int run_main (int argc, ACE_TCHAR *argv[])
for (int i=0; ipv4_addresses[i] != 0; i++)
{
struct in_addr addrv4;
+ ACE_OS::memset ((void *) &addrv4, 0, sizeof addrv4);
ACE_UINT32 addr32;
ACE_OS::inet_pton (AF_INET, ipv4_addresses[i], &addrv4);
@@ -97,7 +92,7 @@ int run_main (int argc, ACE_TCHAR *argv[])
if (addr.get_ip_address () != ACE_HTONL (addr32))
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Error: %s failed get_ip_address() check\n")
+ ACE_TEXT ("Error: %C failed get_ip_address() check\n")
ACE_TEXT ("0x%x != 0x%x\n"),
ipv4_addresses[i],
addr.get_ip_address (),
@@ -109,8 +104,8 @@ int run_main (int argc, ACE_TCHAR *argv[])
ACE_OS::strcmp (addr.get_host_addr(), ipv4_addresses[i]) != 0)
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%s failed get_host_addr() check\n")
- ACE_TEXT ("%s != %s\n"),
+ ACE_TEXT ("%C failed get_host_addr() check\n")
+ ACE_TEXT ("%C != %C\n"),
ipv4_addresses[i],
addr.get_host_addr (),
ipv4_addresses[i]));
@@ -123,8 +118,8 @@ int run_main (int argc, ACE_TCHAR *argv[])
ACE_OS::strcmp (&hostaddr[0], haddr) != 0)
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%s failed get_host_addr(char* buf,int) check\n")
- ACE_TEXT ("buf ['%s'] != return value ['%s']\n"),
+ ACE_TEXT ("%C failed get_host_addr(char* buf,int) check\n")
+ ACE_TEXT ("buf ['%C'] != return value ['%C']\n"),
ipv4_addresses[i],
&hostaddr[0],
haddr));
@@ -133,8 +128,8 @@ int run_main (int argc, ACE_TCHAR *argv[])
if (ACE_OS::strcmp (&hostaddr[0], ipv4_addresses[i]) != 0)
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%s failed get_host_addr(char*,int) check\n")
- ACE_TEXT ("buf ['%s'] != expected value ['%s']\n"),
+ ACE_TEXT ("%C failed get_host_addr(char*,int) check\n")
+ ACE_TEXT ("buf ['%C'] != expected value ['%C']\n"),
ipv4_addresses[i],
&hostaddr[0],
ipv4_addresses[i]));
@@ -159,8 +154,8 @@ int run_main (int argc, ACE_TCHAR *argv[])
ACE_OS::strcmp (addr.get_host_addr (), ipv4_addresses[i]) != 0)
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%s failed second get_host_addr() check\n")
- ACE_TEXT ("return value ['%s'] != expected value ['%s']\n"),
+ ACE_TEXT ("%C failed second get_host_addr() check\n")
+ ACE_TEXT ("return value ['%C'] != expected value ['%C']\n"),
ipv4_addresses[i],
addr.get_host_addr (),
ipv4_addresses[i]));
@@ -214,14 +209,36 @@ int run_main (int argc, ACE_TCHAR *argv[])
if (0 != ACE_OS::strcmp (addr.get_host_addr (), ipv6_addresses[i]))
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("IPv6 get_host_addr failed: %s != %s\n"),
+ ACE_TEXT ("IPv6 get_host_addr failed: %C != %C\n"),
addr.get_host_addr (),
ipv6_addresses[i]));
status = 1;
}
}
- }
+ const char *ipv6_names[] = {
+ "naboo.dre.vanderbilt.edu",
+ "v6.ipv6-test.com",
+ 0
+ };
+ for (int i=0; ipv6_names[i] != 0; i++)
+ {
+ ACE_INET_Addr addr (80, ipv6_names[i]);
+ status |= check_type_consistency (addr);
+
+ if (0 != ACE_OS::strcmp (addr.get_host_name (), ipv6_names[i]))
+ {
+ ACE_ERROR ((LM_WARNING,
+ ACE_TEXT ("IPv6 name mismatch: %s (%s) != %s\n"),
+ addr.get_host_name (),
+ addr.get_host_addr (),
+ ipv6_names[i]));
+ }
+ }
+ }
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("IPv6 tests done\n")));
+#else
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_HAS_IPV6 not set; no IPv6 tests run\n")));
#endif
struct Address loopback_addresses[] =
@@ -245,7 +262,7 @@ int run_main (int argc, ACE_TCHAR *argv[])
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("ACE_INET_Addr::is_loopback() ")
- ACE_TEXT ("failed to distinguish loopback address. %s\n")
+ ACE_TEXT ("failed to distinguish loopback address. %C\n")
, loopback_addresses[i].name));
status = 1;
}
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/IOStream_Test.cpp b/ACE/tests/IOStream_Test.cpp
index f4275c3ecba..a73d184d5dd 100644
--- a/ACE/tests/IOStream_Test.cpp
+++ b/ACE/tests/IOStream_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// IOStream_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the IOStream class that illustrates
-// how to use iostream operations on almost arbitrary I/O classes.
-//
-// = AUTHOR
-// James CE Johnson <jcej@lads.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file IOStream_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the IOStream class that illustrates
+ * how to use iostream operations on almost arbitrary I/O classes.
+ *
+ *
+ * @author James CE Johnson <jcej@lads.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Thread.h"
@@ -25,7 +22,7 @@
#include "ace/IOStream.h"
#include "ace/OS_NS_sys_wait.h"
-ACE_RCSID (tests, IOStream_Test, "$Id$")
+
#if !defined (ACE_LACKS_ACE_IOSTREAM)
# include "ace/OS_NS_unistd.h"
@@ -250,7 +247,7 @@ client (void *arg = 0)
d));
// Check for proper received values.
- ACE_ASSERT (i == 1 && (f1 >= 0.123420 && f1 <= 0.123422)
+ ACE_TEST_ASSERT (i == 1 && (f1 >= 0.123420 && f1 <= 0.123422)
&& l == 666555444 && (f2 >= 23.44 && f2 <= 23.46)
&& (d >= -47.1e+9 && d <= -45.9e+9));
// Reset the precision to limit ourselves to two significant digits.
@@ -402,7 +399,7 @@ server (void *arg = 0)
d));
// check for proper received values
- ACE_ASSERT (i == -1 && (f1 >= -0.13 && f1 <= -0.11)
+ ACE_TEST_ASSERT (i == -1 && (f1 >= -0.13 && f1 <= -0.11)
&& l == -666555444 && (f2 >= -24.0 && f2 <= -22.0)
&& (d >= 45e+9 && d <= 47e+9));
diff --git a/ACE/tests/Integer_Truncate_Test.cpp b/ACE/tests/Integer_Truncate_Test.cpp
index 97f08a10d03..0a1952c4073 100644
--- a/ACE/tests/Integer_Truncate_Test.cpp
+++ b/ACE/tests/Integer_Truncate_Test.cpp
@@ -35,7 +35,7 @@ sizeof_from_lt_sizeof_to (void)
typedef signed char from_type;
typedef unsigned int to_type;
- ACE_ASSERT (sizeof (from_type) < sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) < sizeof (to_type));
from_type f =
ACE_Numeric_Limits<from_type>::max (); // Should not be truncated.
@@ -55,7 +55,7 @@ sizeof_from_lt_sizeof_to (void)
typedef unsigned char from_type;
typedef signed int to_type;
- ACE_ASSERT (sizeof (from_type) < sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) < sizeof (to_type));
from_type f =
ACE_Numeric_Limits<from_type>::max (); // Should not be truncated.
@@ -75,7 +75,7 @@ sizeof_from_lt_sizeof_to (void)
typedef signed char from_type;
typedef signed int to_type;
- ACE_ASSERT (sizeof (from_type) < sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) < sizeof (to_type));
from_type f1 = -1; // Should not be truncated.
from_type f2 =
@@ -97,7 +97,7 @@ sizeof_from_lt_sizeof_to (void)
typedef unsigned char from_type;
typedef unsigned int to_type;
- ACE_ASSERT (sizeof (from_type) < sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) < sizeof (to_type));
from_type f =
ACE_Numeric_Limits<from_type>::max (); // Should not be truncated.
@@ -117,7 +117,7 @@ sizeof_from_lt_sizeof_to (void)
success
? ACE_TEXT ("PASSED")
: ACE_TEXT ("FAILED")));
-
+
return success;
}
@@ -134,7 +134,7 @@ sizeof_from_eq_sizeof_to (void)
typedef signed int from_type;
typedef unsigned int to_type;
- ACE_ASSERT (sizeof (from_type) == sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) == sizeof (to_type));
from_type f1 = -1; // Should not be truncated.
from_type f2 =
@@ -156,7 +156,7 @@ sizeof_from_eq_sizeof_to (void)
typedef unsigned int from_type;
typedef signed int to_type;
- ACE_ASSERT (sizeof (from_type) == sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) == sizeof (to_type));
from_type f =
ACE_Numeric_Limits<from_type>::max (); // Should be truncated.
@@ -176,7 +176,7 @@ sizeof_from_eq_sizeof_to (void)
typedef signed int from_type;
typedef signed int to_type;
- ACE_ASSERT (sizeof (from_type) == sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) == sizeof (to_type));
from_type f1 = -1; // Should not be truncated.
from_type f2 =
@@ -198,7 +198,7 @@ sizeof_from_eq_sizeof_to (void)
typedef unsigned int from_type;
typedef unsigned int to_type;
- ACE_ASSERT (sizeof (from_type) == sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) == sizeof (to_type));
from_type f =
ACE_Numeric_Limits<from_type>::max (); // Should not be truncated.
@@ -235,7 +235,7 @@ sizeof_from_gt_sizeof_to (void)
typedef signed int from_type;
typedef unsigned char to_type;
- ACE_ASSERT (sizeof (from_type) > sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) > sizeof (to_type));
from_type f =
ACE_Numeric_Limits<from_type>::max (); // Should be truncated.
@@ -255,7 +255,7 @@ sizeof_from_gt_sizeof_to (void)
typedef unsigned int from_type;
typedef signed char to_type;
- ACE_ASSERT (sizeof (from_type) > sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) > sizeof (to_type));
from_type f =
ACE_Numeric_Limits<from_type>::max (); // Should be truncated.
@@ -275,7 +275,7 @@ sizeof_from_gt_sizeof_to (void)
typedef signed int from_type;
typedef signed char to_type;
- ACE_ASSERT (sizeof (from_type) > sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) > sizeof (to_type));
from_type f1 = -1; // Should not be truncated.
from_type f2 =
@@ -297,7 +297,7 @@ sizeof_from_gt_sizeof_to (void)
typedef unsigned int from_type;
typedef unsigned char to_type;
- ACE_ASSERT (sizeof (from_type) > sizeof (to_type));
+ ACE_TEST_ASSERT (sizeof (from_type) > sizeof (to_type));
from_type f =
ACE_Numeric_Limits<from_type>::max (); // Should be truncated.
@@ -353,7 +353,7 @@ int
run_main (int, ACE_TCHAR *[])
{
ACE_START_TEST (ACE_TEXT ("Integer_Truncate_Test"));
-
+
typedef bool (*test_func) ();
static test_func const tests[] =
diff --git a/ACE/tests/Intrusive_Auto_Ptr_Test.cpp b/ACE/tests/Intrusive_Auto_Ptr_Test.cpp
index 73d27c2871c..4be3c25f0ac 100644
--- a/ACE/tests/Intrusive_Auto_Ptr_Test.cpp
+++ b/ACE/tests/Intrusive_Auto_Ptr_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Intrusive_Auto_Ptr_Test
-//
-// = DESCRIPTION
-// This test verifies the functionality of the <ACE_Intrusive_Auto_Ptr>
-// implementation.
-//
-// = AUTHOR
-// Iliyan Jeliazkov <iliyan@ociweb.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Intrusive_Auto_Ptr_Test.cpp
+ *
+ * $Id$
+ *
+ * This test verifies the functionality of the <ACE_Intrusive_Auto_Ptr>
+ * implementation.
+ *
+ *
+ * @author Iliyan Jeliazkov <iliyan@ociweb.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Intrusive_Auto_Ptr.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(tests, Intrusive_Auto_Ptr_Test, "$Id$")
+
class One {
@@ -79,25 +76,25 @@ int run_main (int, ACE_TCHAR *[])
One *theone (new One(0));
{
- ACE_ASSERT (theone->has_refs (0));
- ACE_ASSERT (!One::was_released ());
+ ACE_TEST_ASSERT (theone->has_refs (0));
+ ACE_TEST_ASSERT (!One::was_released ());
ACE_Intrusive_Auto_Ptr<One> ip2(theone);
{
- ACE_ASSERT (theone->has_refs (1));
- ACE_ASSERT (!One::was_released ());
+ ACE_TEST_ASSERT (theone->has_refs (1));
+ ACE_TEST_ASSERT (!One::was_released ());
ACE_Intrusive_Auto_Ptr<One> ip2(theone);
- ACE_ASSERT (theone->has_refs (2));
- ACE_ASSERT (!One::was_released ());
+ ACE_TEST_ASSERT (theone->has_refs (2));
+ ACE_TEST_ASSERT (!One::was_released ());
}
- ACE_ASSERT (theone->has_refs (1));
- ACE_ASSERT (!One::was_released ());
+ ACE_TEST_ASSERT (theone->has_refs (1));
+ ACE_TEST_ASSERT (!One::was_released ());
}
- ACE_ASSERT (One::was_released());
+ ACE_TEST_ASSERT (One::was_released());
ACE_END_TEST;
return 0;
diff --git a/ACE/tests/Lazy_Map_Manager_Test.cpp b/ACE/tests/Lazy_Map_Manager_Test.cpp
index d7434bbada0..ce3d09ecccb 100644
--- a/ACE/tests/Lazy_Map_Manager_Test.cpp
+++ b/ACE/tests/Lazy_Map_Manager_Test.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Lazy_Map_Manager_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the <ACE_Map_Manager> and
-// <ACE_Active_Map_Manager> that illustrates how lazy map managers
-// allow the deletion of entries while iterating over the map.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>,
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Lazy_Map_Manager_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the <ACE_Map_Manager> and
+ * <ACE_Active_Map_Manager> that illustrates how lazy map managers
+ * allow the deletion of entries while iterating over the map.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Map_Manager.h"
#include "ace/Active_Map_Manager.h"
-ACE_RCSID(tests, Map_Manager_Test, "$Id$")
+
// Simple map manager.
typedef ACE_Map_Manager<int, int, ACE_Null_Mutex> LAZY_MAP;
diff --git a/ACE/tests/Log_Msg_Backend_Test.cpp b/ACE/tests/Log_Msg_Backend_Test.cpp
index 4ac933af92e..df15ebf5d76 100644
--- a/ACE/tests/Log_Msg_Backend_Test.cpp
+++ b/ACE/tests/Log_Msg_Backend_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Log_Msg_Backend_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the ACE_Log_Msg class's use of a custom backend,
-// including its initialization and reset as well as logging information
-// through the backend.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Log_Msg_Backend_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the ACE_Log_Msg class's use of a custom backend,
+ * including its initialization and reset as well as logging information
+ * through the backend.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "test_config.h"
@@ -24,7 +21,7 @@
#include "ace/Log_Msg_Backend.h"
#include "ace/Log_Record.h"
-ACE_RCSID(tests, Log_Msg_Backend_Test, "$Id$")
+
class Backend : public ACE_Log_Msg_Backend
{
@@ -33,14 +30,14 @@ public:
: reset_ (false), open_ (false), close_ (false), log_count_ (0) {}
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int open (const ACE_TCHAR *logger_key);
- //FUZZ: enable check_for_lack_ACE_OS
virtual int reset (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int close (void);
- //FUZZ: enable check_for_lack_ACE_OS
virtual ssize_t log (ACE_Log_Record &log_record);
diff --git a/ACE/tests/Log_Msg_Test.cpp b/ACE/tests/Log_Msg_Test.cpp
index 8097b79363e..9601961af85 100644
--- a/ACE/tests/Log_Msg_Test.cpp
+++ b/ACE/tests/Log_Msg_Test.cpp
@@ -1,24 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Log_Msg_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the <ACE_Log_Msg> class in various ways and
-// also illustrates many of the features of the <ACE_Log_Msg> For
-// instance, this program tests the <ACE_Log_Msg> abstraction wrt
-// writing to stderr and to a file. It also tests writing to user
-// defined callback objects.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Log_Msg_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the <ACE_Log_Msg> class in various ways and
+ * also illustrates many of the features of the <ACE_Log_Msg> For
+ * instance, this program tests the <ACE_Log_Msg> abstraction wrt
+ * writing to stderr and to a file. It also tests writing to user
+ * defined callback objects.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
@@ -33,8 +30,10 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
#include "ace/OS_Memory.h"
-
-ACE_RCSID(tests, Log_Msg_Test, "$Id$")
+#include "ace/OS_NS_sys_time.h"
+#include "ace/OS_NS_time.h"
+#include "ace/Time_Value.h"
+#include "ace/Thread.h"
static void
cleanup (void)
@@ -54,21 +53,21 @@ cause_error (void)
class Logger : public ACE_Log_Msg_Callback
{
public:
+ /// Constructor sets whether we're testing "recursive" callback
+ /// logging!
Logger (bool be_recursive = true);
- // Constructor sets whether we're testing "recursive" callback
- // logging!
+ /// Logging callback
void log (ACE_Log_Record &log_record);
- // Logging callback
void verbose (bool be_verbose);
private:
+ /// Flag for testing verbose logging.
bool verbose_logging_;
- // Flag for testing verbose logging.
+ /// Flag for testing recursive callback logging.
bool recursive_;
- // Flag for testing recursive callback logging.
};
void
@@ -241,6 +240,7 @@ test_log_msg_features (const ACE_TCHAR *program)
size_t const index = i++;
big[index] = alphabet[i % j];
}
+ big[ACE_Log_Record::MAXLOGMSGLEN] = ACE_TEXT ('\0');
ACE_DEBUG ((LM_INFO, ACE_TEXT ("This is too big: %s\n"), big));
// Exercise many different combinations of OSTREAM.
@@ -398,7 +398,7 @@ test_ostream (void)
1);
}
-#if !defined (ACE_VXWORKS) && !defined (ACE_HAS_PHARLAP) || (defined(ACE_VXWORKS) && (ACE_VXWORKS > 0x670))
+#if !defined (ACE_VXWORKS) && !defined (ACE_HAS_PHARLAP) || (defined(ACE_VXWORKS) && (ACE_VXWORKS > 0x680))
# define TEST_CAN_UNLINK_IN_ADVANCE
#endif
@@ -476,17 +476,17 @@ class Log_Spec_Verify : public ACE_Log_Msg_Callback
public:
Log_Spec_Verify (bool be_recursive = true) : fail_ (0), tests_ (0), recursive_ (be_recursive) {};
+ /// Logging callback
void log (ACE_Log_Record &log_record);
- // Logging callback
int result ();
private:
+ /// Count how many tests failed.
int fail_;
- // Count how many tests failed.
+ /// Count how many tests we run
int tests_;
- // Count how many tests we run
bool recursive_;
};
@@ -543,6 +543,26 @@ Log_Spec_Verify::log (ACE_Log_Record &log_record)
++this->fail_;
}
}
+ else if (ACE_OS::strncmp (b, ACE_TEXT ("l5:"), 3) == 0)
+ {
+ b += 3;
+ switch (log_record.type())
+ {
+ case (LM_SHUTDOWN): expect = ACE_TEXT("S"); break;
+ case (LM_TRACE): expect = ACE_TEXT("T"); break;
+ case (LM_DEBUG): expect = ACE_TEXT("D"); break;
+ case (LM_INFO): expect = ACE_TEXT("I"); break;
+ case (LM_NOTICE): expect = ACE_TEXT("N"); break;
+ case (LM_WARNING): expect = ACE_TEXT("W"); break;
+ case (LM_STARTUP): expect = ACE_TEXT("U"); break;
+ case (LM_ERROR): expect = ACE_TEXT("E"); break;
+ case (LM_CRITICAL): expect = ACE_TEXT("C"); break;
+ case (LM_ALERT): expect = ACE_TEXT("A"); break;
+ case (LM_EMERGENCY): expect = ACE_TEXT("!"); break;
+ default: expect = ACE_TEXT("?"); break;
+ }
+
+ }
else
{
ACE_ERROR ((LM_ERROR,
@@ -573,9 +593,9 @@ Log_Spec_Verify::result (void)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%d logging specifier tests failed!\n"),
this->fail_));
- if (this->tests_ != 4)
+ if (this->tests_ != 15)
{
- ACE_ERROR ((LM_ERROR, ACE_TEXT ("Exexpected number of %d tests run!\n"),
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Expected number of tests run is %d, not 15!\n"),
this->tests_));
++this->fail_;
}
@@ -604,6 +624,16 @@ test_format_specs (void)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%m %p\n"), nill_string));
errno = ENOENT;
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%m %p\n"), ACE_TEXT("perror")));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%S\n"), SIGINT));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%S\n"), ACE_NSIG));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%D\n")));
+ ACE_Time_Value tv = ACE_OS::gettimeofday ();
+ tv += ACE_Time_Value (25*60*60); // + 25 hours
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%#D\n"), &tv));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%T\n")));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%#T\n"), &tv));
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("thread id %t\n")));
Log_Spec_Verify verifier;
@@ -617,6 +647,31 @@ test_format_specs (void)
ACE_LOG_MSG->log (LM_DEBUG, ACE_TEXT ("l2:%5l"));
ACE_LOG_MSG->log (LM_DEBUG, ACE_TEXT ("l3N1:%0*l,%.7N"), 4);
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("l4:%T")));
+
+ ACE_LOG_MSG->priority_mask (LM_SHUTDOWN |
+ LM_TRACE |
+ LM_DEBUG |
+ LM_INFO |
+ LM_NOTICE |
+ LM_WARNING |
+ LM_STARTUP |
+ LM_ERROR |
+ LM_CRITICAL |
+ LM_ALERT |
+ LM_EMERGENCY,
+ ACE_Log_Msg::PROCESS);
+ ACE_DEBUG ((LM_SHUTDOWN, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_TRACE, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_NOTICE, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_WARNING, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_STARTUP, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_CRITICAL, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_ALERT, ACE_TEXT ("l5:%.1M")));
+ ACE_DEBUG ((LM_EMERGENCY, ACE_TEXT ("l5:%.1M")));
+
ACE_LOG_MSG->msg_ostream (ace_file_stream::instance ()->output_file ());
ACE_LOG_MSG->msg_callback (0);
ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
diff --git a/ACE/tests/Log_Thread_Inheritance_Test.cpp b/ACE/tests/Log_Thread_Inheritance_Test.cpp
index 6d4726102ad..ae630c319c0 100644
--- a/ACE/tests/Log_Thread_Inheritance_Test.cpp
+++ b/ACE/tests/Log_Thread_Inheritance_Test.cpp
@@ -9,8 +9,6 @@
# include <pthread.h>
#endif /* ACE_HAS_PTHREADS */
-ACE_RCSID (tests, Log_Thread_Inheritance_Test, "$Id$")
-
#if !defined (ACE_HAS_THREADS) || defined (ACE_LACKS_IOSTREAM_TOTALLY)
int run_main (int, ACE_TCHAR *[])
{
@@ -25,7 +23,7 @@ struct Inheritor : ACE_Task_Base
{
ACE_DEBUG ((LM_DEBUG, "(%P|%t) - this test might crash ACE if it does not "
"have the fix for the second bug in #3480.\n"));
- return 0;
+ return 0;
}
};
@@ -33,7 +31,7 @@ extern "C"
void* spawn_ace_task (void*)
{
Inheritor inheritor;
-
+
inheritor.activate ();
inheritor.wait ();
@@ -45,10 +43,10 @@ bool test_inherited_attributes ()
// This test verifies ACE_OS_Log_Msg_Attributes correctly initializes
// when an ACE thread is created from a non-ACE thread (i.e. pthreads)
// and is then used for logging.
- //
+ //
// This test will cause occasional SEGVs on failure.
// stallions 2009/02/05
- pthread_t parent;
+ pthread_t parent;
if (pthread_create (&parent, 0, spawn_ace_task, 0) != 0)
{
@@ -118,7 +116,7 @@ int run_main (int, ACE_TCHAR *[])
mt.wait ();
MyThread::childthread_.wait ();
ACE_LOG_MSG->msg_ostream (initial_stream, 0);
-#ifdef ACE_HAS_PTHREADS
+#ifdef ACE_HAS_PTHREADS
if (!test_inherited_attributes ()) return -1;
#endif /* ACE_HAS_PTHREADS */
ACE_DEBUG ((LM_DEBUG, "(%P|%t) - Test passed.\n"));
diff --git a/ACE/tests/Logging_Strategy_Test.cpp b/ACE/tests/Logging_Strategy_Test.cpp
index 31b8b610399..6b3c6a8394d 100644
--- a/ACE/tests/Logging_Strategy_Test.cpp
+++ b/ACE/tests/Logging_Strategy_Test.cpp
@@ -1,36 +1,33 @@
-// $Id$
-
-//==========================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Logging_Strategy_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the <ACE_Logging_Strategy> class in various
-// ways and also illustrates many of the features of the
-// <ACE_Log_Msg>. The test works as follows:
-// -Load the inserted arguments;
-// -Remove existent log_files with the file_name specified by the
-// user;
-// -Generate 1000 messages to create the DEBUG statements to be
-// stored in the files;
-// -Counts the created log_files and if it was specified a maximum
-// number of log_files, compare and verify if they are the same.
-// -Verify the order of the files with the order argument.
-//
-// When Dlls are used, we utilize the dynamic service
-// configuration mechanism to activate the logging strategy. This
-// is not a must though, and you may activate the logging strategy
-// as described in the non-DLL section below under DLL
-// environments as well.
-//
-// = AUTHOR
-// Orlando Ribeiro <oribeiro@inescporto.pt>
-//
-//==========================================================================
+
+//=============================================================================
+/**
+ * @file Logging_Strategy_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the <ACE_Logging_Strategy> class in various
+ * ways and also illustrates many of the features of the
+ * <ACE_Log_Msg>. The test works as follows:
+ * -Load the inserted arguments;
+ * -Remove existent log_files with the file_name specified by the
+ * user;
+ * -Generate 1000 messages to create the DEBUG statements to be
+ * stored in the files;
+ * -Counts the created log_files and if it was specified a maximum
+ * number of log_files, compare and verify if they are the same.
+ * -Verify the order of the files with the order argument.
+ *
+ * When Dlls are used, we utilize the dynamic service
+ * configuration mechanism to activate the logging strategy. This
+ * is not a must though, and you may activate the logging strategy
+ * as described in the non-DLL section below under DLL
+ * environments as well.
+ *
+ *
+ * @author Orlando Ribeiro <oribeiro@inescporto.pt>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_stdio.h"
@@ -52,8 +49,6 @@
#include "ace/Get_Opt.h"
#include "ace/OS_NS_time.h"
-ACE_RCSID(tests, Logging_Strategy_Test, "$Id$")
-
// Considering UNIX OS to be default. On Win32 platforms, the symbols
// are got form the .exe as one cant have .exe and .dll for the same
// .cpp. Also, on Win32 platforms one cant use the .obj to obtain
diff --git a/ACE/tests/MEM_Stream_Test.cpp b/ACE/tests/MEM_Stream_Test.cpp
index fd351234404..66d13ae085e 100644
--- a/ACE/tests/MEM_Stream_Test.cpp
+++ b/ACE/tests/MEM_Stream_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MEM_Stream_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_MEM_Acceptor> and
-// <ACE_MEM_Connector> classes.
-//
-// = AUTHOR
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MEM_Stream_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the <ACE_MEM_Acceptor> and
+ * <ACE_MEM_Connector> classes.
+ *
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_stdio.h"
@@ -32,7 +29,7 @@
#include "ace/Singleton.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(tests, MEM_Stream_Test, "$Id$")
+
#if (defined (ACE_HAS_THREADS) || defined (ACE_HAS_PROCESS_SPAWN)) && \
(ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
@@ -186,9 +183,9 @@ run_client (u_short port,
ACE_TCHAR buf[MAXPATHLEN];
- for (ssize_t cntr = 0; cntr < NUMBER_OF_ITERATIONS; cntr ++)
+ for (size_t cntr = 0; cntr < NUMBER_OF_ITERATIONS; cntr ++)
{
- ACE_OS::sprintf (buf, ACE_TEXT ("Iteration ")ACE_SSIZE_T_FORMAT_SPECIFIER,
+ ACE_OS::sprintf (buf, ACE_TEXT ("Iteration ")ACE_SIZE_T_FORMAT_SPECIFIER,
cntr);
ssize_t slen = (ACE_OS::strlen (buf) + 1) * sizeof (ACE_TCHAR);
diff --git a/ACE/tests/MEM_Stream_Test.h b/ACE/tests/MEM_Stream_Test.h
index b9ed6924463..d7fa1df3d8b 100644
--- a/ACE/tests/MEM_Stream_Test.h
+++ b/ACE/tests/MEM_Stream_Test.h
@@ -1,23 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MEM_Stream_Test.h
-//
-// = DESCRIPTION
-// This file has the class definitions needed for template generation in
-// MEM_Stream_Test.cpp. They have to be in a separate file so AIX xlC can
-// find them at auto-instantiate time.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MEM_Stream_Test.h
+ *
+ * $Id$
+ *
+ * This file has the class definitions needed for template generation in
+ * MEM_Stream_Test.cpp. They have to be in a separate file so AIX xlC can
+ * find them at auto-instantiate time.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_MEM_STREAM_TEST_H
#define ACE_TESTS_MEM_STREAM_TEST_H
@@ -33,18 +30,21 @@
#if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
+/**
+ * @class Echo_Handler
+ *
+ * @brief Simple class for reading in the data and then sending it back
+ */
class Echo_Handler : public ACE_Svc_Handler<ACE_MEM_STREAM, ACE_SYNCH>
{
- // = TITLE
- // Simple class for reading in the data and then sending it back
public:
+ /// The Svc_Handler callbacks.
Echo_Handler (ACE_Thread_Manager *thr_mgr = 0);
virtual int open (void *);
static void reset_handler (void);
virtual int handle_input (ACE_HANDLE h);
virtual int handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask close_mask);
- // The Svc_Handler callbacks.
virtual int svc (void);
private:
diff --git a/ACE/tests/MM_Shared_Memory_Test.cpp b/ACE/tests/MM_Shared_Memory_Test.cpp
index 54798362eb5..c320d8a6a96 100644
--- a/ACE/tests/MM_Shared_Memory_Test.cpp
+++ b/ACE/tests/MM_Shared_Memory_Test.cpp
@@ -1,25 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Shared_Memory_MM_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of <ACE_Shared_Memory_MM>. The test
-// forks two processes or spawns two threads (depending upon the
-// platform) and then executes child and parent allowing them to
-// exchange data using shared memory. No user input is required as
-// far as command line arguments are concerned.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>
-// and Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MM_Shared_Memory_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of <ACE_Shared_Memory_MM>. The test
+ * forks two processes or spawns two threads (depending upon the
+ * platform) and then executes child and parent allowing them to
+ * exchange data using shared memory. No user input is required as
+ * far as command line arguments are concerned.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Shared_Memory_MM.h"
@@ -30,7 +26,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, MM_Shared_Memory_Test, "$Id$")
+
#if !defined (ACE_LACKS_MMAP)
@@ -42,12 +38,15 @@ static ACE_TCHAR *shm_key;
#include "ace/Thread_Semaphore.h"
typedef ACE_Thread_Semaphore SYNCHRONIZER;
#elif defined (ACE_HAS_POSIX_SEM) && defined(ACE_HAS_SYSV_IPC)
+/**
+ * @class SYNCHRONIZER
+ *
+ * @brief If the platform has native cross-process POSIX semaphores, we
+ * must *force* this test to use the System V Semaphores in order
+ * to get the right semantics.
+ */
class SYNCHRONIZER : public ACE_SV_Semaphore_Simple
{
- // = TITLE
- // If the platform has native cross-process POSIX semaphores, we
- // must *force* this test to use the System V Semaphores in order
- // to get the right semantics.
public:
SYNCHRONIZER (int initial_value)
: ACE_SV_Semaphore_Simple ((const char *) 0,
@@ -69,21 +68,21 @@ child (void * = 0)
// Wait for the parent to be initialized.
result = synchronizer->acquire ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
const char *t = ACE_ALPHABET;
ACE_Shared_Memory_MM shm_child;
result = shm_child.open (shm_key);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
char *shm = (char *) shm_child.malloc ();
- ACE_ASSERT (shm != 0);
+ ACE_TEST_ASSERT (shm != 0);
for (char *s = shm; *s != '\0'; s++)
{
- ACE_ASSERT (*t == s[0]);
+ ACE_TEST_ASSERT (*t == s[0]);
t++;
}
@@ -100,11 +99,11 @@ parent (void * = 0)
ACE_Shared_Memory_MM shm_parent;
result = shm_parent.open (shm_key, SHMSZ);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
char *shm = (char *) shm_parent.malloc ();
- ACE_ASSERT (shm != 0);
+ ACE_TEST_ASSERT (shm != 0);
char *s = shm;
@@ -115,7 +114,7 @@ parent (void * = 0)
// Allow the child to proceed.
result = synchronizer->release ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
// Perform a "busy wait" until the child sets the character to '*'.
while (*shm != '*')
@@ -123,7 +122,7 @@ parent (void * = 0)
ACE_TEXT ("(%P) spinning in parent!\n")));
result = shm_parent.remove ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_OS::unlink (shm_key);
return 0;
diff --git a/ACE/tests/MT_NonBlocking_Connect_Test.cpp b/ACE/tests/MT_NonBlocking_Connect_Test.cpp
new file mode 100644
index 00000000000..4c046e2fd65
--- /dev/null
+++ b/ACE/tests/MT_NonBlocking_Connect_Test.cpp
@@ -0,0 +1,402 @@
+
+//=============================================================================
+/**
+ * @file MT_NonBlocking_Connect_Test.cpp
+ *
+ * $Id$
+ *
+ *
+ * This test makes non-blocking connects from multiple threads. Things are
+ * complicated by the fact that after the connection is attempted reactor's
+ * handle_events() is called and this leads to possible connection
+ * completion in the other thread. This is similar to what TAO does for
+ * oneway with SYNC_NONE sync scope policy.
+ * The following reactors are tested: Select, TP, WFMO, and Dev Poll
+ * (if enabled).
+ *
+ *
+ * @author Vladimir Zykov <vladimir.zykov@prismtech.com>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
+#include "ace/Reactor.h"
+#include "ace/Select_Reactor.h"
+#include "ace/TP_Reactor.h"
+#include "ace/WFMO_Reactor.h"
+#include "ace/Dev_Poll_Reactor.h"
+#include "ace/Svc_Handler.h"
+#include "ace/SOCK_Stream.h"
+#include "ace/Get_Opt.h"
+#include "ace/Task.h"
+#include "ace/Connector.h"
+#include "ace/SOCK_Connector.h"
+#include "ace/Thread_Mutex.h"
+
+#if defined (ACE_HAS_THREADS)
+
+static int test_select_reactor = 1;
+static int test_tp_reactor = 1;
+static int test_wfmo_reactor = 1;
+static int test_dev_poll_reactor = 1;
+static int number_of_threads = 10;
+static int debug = 0;
+static int result = 0;
+
+static const ACE_TCHAR* hosts[] = {
+ ACE_TEXT ("www.russiantvguide.com:80"),
+ ACE_TEXT ("news.bbc.co.uk:80"),
+ ACE_TEXT ("www.cnn.com:80"),
+ ACE_TEXT ("www.waca.com.au:80"),
+ ACE_TEXT ("www.uganda.co.ug:80"),
+ ACE_TEXT ("www.cs.wustl.edu:80"),
+ ACE_TEXT ("www.dre.vanderbilt.edu:80"),
+ ACE_TEXT ("www.dhm.gov.np:80"),
+ ACE_TEXT ("www.msn.com:80"),
+ ACE_TEXT ("www.presidencymaldives.gov.mv:80")
+};
+
+class Svc_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+{
+public:
+ Svc_Handler (void)
+ {
+ ACE_TEST_ASSERT (0);
+ }
+
+ Svc_Handler (ACE_Thread_Manager *);
+
+ int open (void *);
+
+ int close (u_long flags);
+
+ bool connected_;
+};
+
+Svc_Handler::Svc_Handler (ACE_Thread_Manager *)
+ : connected_ (false)
+{
+ this->reference_counting_policy ().value (
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+}
+
+int
+Svc_Handler::open (void *)
+{
+ this->connected_ = true;
+ return 0;
+}
+
+int
+Svc_Handler::close (u_long)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "%t close connection on handle %d.\n",
+ this->get_handle ()));
+ return 0;
+}
+
+template<class SVC_HANDLER>
+class Concurrency_Strategy :
+ public ACE_Concurrency_Strategy<SVC_HANDLER>
+{
+public:
+ virtual int activate_svc_handler (SVC_HANDLER *svc_handler, void *arg);
+};
+
+template<class SVC_HANDLER> int
+Concurrency_Strategy<SVC_HANDLER>::
+ activate_svc_handler (SVC_HANDLER *svc_handler, void *arg)
+{
+ // Every fourth connection fails.
+ static long count = 0;
+ if (++count % 4 == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "%t connection on handle %d has artificially failed.\n",
+ svc_handler->get_handle ()));
+ return -1;
+ }
+ else
+ {
+ return ACE_Concurrency_Strategy<SVC_HANDLER>::activate_svc_handler (
+ svc_handler, arg);
+ }
+}
+
+typedef ACE_Creation_Strategy<Svc_Handler> CREATION_STRATEGY;
+typedef ACE_Connect_Strategy<Svc_Handler,
+ ACE_SOCK_CONNECTOR> CONNECT_STRATEGY;
+typedef Concurrency_Strategy<Svc_Handler> CONCURRENCY_STRATEGY;
+typedef ACE_Strategy_Connector<Svc_Handler,
+ ACE_SOCK_CONNECTOR> BASE_CONNECTOR;
+
+class Connect_Thread : public ACE_Task_Base
+{
+public:
+ Connect_Thread (ACE_Thread_Manager &thread_manager,
+ ACE_Reactor &reactor,
+ ACE_Thread_Mutex &reactor_lock)
+ : ACE_Task_Base (&thread_manager)
+ , reactor_ (reactor)
+ , reactor_lock_ (reactor_lock)
+ , threads_ (number_of_threads)
+ {
+ // Open the connector.
+ this->base_connector_.open (&this->reactor_,
+ &this->cns_, &this->cts_, &this->cys_);
+ }
+
+ int svc (void);
+
+private:
+ ACE_Reactor &reactor_;
+ ACE_Thread_Mutex &reactor_lock_;
+
+ CREATION_STRATEGY cns_;
+ CONNECT_STRATEGY cts_;
+ CONCURRENCY_STRATEGY cys_;
+ BASE_CONNECTOR base_connector_;
+
+ ACE_Atomic_Op<ACE_Thread_Mutex, long> threads_;
+};
+
+int
+Connect_Thread::svc (void)
+{
+ size_t const nr_names = sizeof hosts / sizeof (char *);
+ ACE_INET_Addr *addresses = new ACE_INET_Addr[nr_names];
+
+ for (size_t i = 0; i < nr_names; ++i)
+ {
+ if (addresses[i].set (hosts[i]) != 0)
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("%p\n"),
+ hosts[i]));
+ }
+ }
+
+ ACE_INET_Addr local_addr;
+ ACE_Synch_Options synch_options (ACE_Synch_Options::USE_REACTOR);
+
+ for (size_t i = 0; i < nr_names; ++i)
+ {
+ ACE_INET_Addr &remote_addr = addresses[i];
+
+ ACE_DEBUG ((LM_DEBUG,
+ "%t connecting to %s...\n",
+ hosts[i]));
+
+ // Create a new handler. It's what begin_connection() in TAO does.
+ Svc_Handler *svc_handler = 0;
+ result = this->base_connector_.connect (svc_handler,
+ remote_addr,
+ synch_options,
+ local_addr);
+ ACE_Event_Handler_var release_guard (svc_handler);
+
+ // Complete connection. It's what complete_connection() in TAO does.
+ // Not exactly but for the test it's enough.
+ int run_for_wfmo = 5;
+ while (this->reactor_.work_pending () && run_for_wfmo)
+ {
+ ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon,
+ this->reactor_lock_, -1);
+
+ if (this->reactor_.work_pending () && run_for_wfmo)
+ {
+ --run_for_wfmo;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "%t waiting for connection to %s...\n",
+ hosts[i]));
+
+ this->reactor_.owner (ACE_Thread::self ());
+
+ this->reactor_.handle_events ();
+ }
+ }
+
+ if (svc_handler->connected_)
+ {
+ this->reactor_.register_handler (svc_handler,
+ ACE_Event_Handler::READ_MASK);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "%t connection for %s completed on handle %d.\n",
+ hosts[i],
+ svc_handler->get_handle ()));
+ // We are connected successfully. Close the connection.
+ this->reactor_.remove_handler (svc_handler->get_handle (),
+ ACE_Event_Handler::ALL_EVENTS_MASK |
+ ACE_Event_Handler::DONT_CALL);
+ }
+ else
+ {
+ // Connection didn't succeed. svc_handler will be deleted when
+ // we go out of the scope of this loop.
+ ACE_DEBUG ((LM_DEBUG,
+ "%t connection for %s did not complete.\n",
+ hosts[i]));
+ }
+ }
+
+ if (--this->threads_ == 0)
+ {
+ // Close the connector.
+ this->base_connector_.close ();
+ }
+
+ delete[] addresses;
+
+ return 0;
+}
+
+void
+test (ACE_Reactor_Impl *reactor_impl)
+{
+ ACE_Reactor reactor (reactor_impl, true);
+
+ ACE_Thread_Mutex reactor_lock;
+ ACE_Thread_Manager thread_manager;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Starting %d connection threads...\n",
+ number_of_threads));
+
+ Connect_Thread connect_thread (thread_manager, reactor, reactor_lock);
+ result = connect_thread.activate (THR_NEW_LWP|THR_JOINABLE,
+ number_of_threads);
+ ACE_TEST_ASSERT (result == 0);
+
+ // Wait for threads to exit.
+ result = thread_manager.wait ();
+ ACE_TEST_ASSERT (result == 0);
+}
+
+static int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("a:b:c:d:f:g:k:lm:n:o:uz:"));
+
+ int cc;
+ while ((cc = get_opt ()) != -1)
+ {
+ switch (cc)
+ {
+ case 'a':
+ test_select_reactor = ACE_OS::atoi (get_opt.opt_arg ());
+ break;
+ case 'b':
+ test_tp_reactor = ACE_OS::atoi (get_opt.opt_arg ());
+ break;
+ case 'c':
+ test_wfmo_reactor = ACE_OS::atoi (get_opt.opt_arg ());
+ break;
+ case 'd':
+ test_dev_poll_reactor = ACE_OS::atoi (get_opt.opt_arg ());
+ break;
+ case 'f':
+ number_of_threads = ACE_OS::atoi (get_opt.opt_arg ());
+ break;
+ case 'z':
+ debug = ACE_OS::atoi (get_opt.opt_arg ());
+ break;
+ case 'u':
+ default:
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("\nusage: %s \n\n")
+ ACE_TEXT ("\t[-a test Select Reactor] (defaults to %d)\n")
+ ACE_TEXT ("\t[-b test TP Reactor] (defaults to %d)\n")
+ ACE_TEXT ("\t[-c test WFMO Reactor] (defaults to %d)\n")
+ ACE_TEXT ("\t[-d test Dev Poll Reactor] (defaults to %d)\n")
+ ACE_TEXT ("\t[-f number of threads] (defaults to %d)\n")
+ ACE_TEXT ("\t[-z debug] (defaults to %d)\n")
+ ACE_TEXT ("\n"),
+ argv[0],
+ test_select_reactor,
+ test_tp_reactor,
+ test_wfmo_reactor,
+ test_dev_poll_reactor,
+ number_of_threads,
+ debug));
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+int
+run_main (int argc, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("MT_NonBlocking_Connect_Test"));
+
+ // Validate options.
+ result = parse_args (argc, argv);
+ if (result != 0)
+ return result;
+
+ if (test_select_reactor)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\n\n(%t) Testing Select Reactor....\n\n")));
+
+ test (new ACE_Select_Reactor);
+ }
+
+ if (test_tp_reactor)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\n\n(%t) Testing TP Reactor....\n\n")));
+
+ test (new ACE_TP_Reactor);
+ }
+
+#if defined (ACE_HAS_EVENT_POLL)
+
+ if (test_dev_poll_reactor)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\n\n(%t) Testing Dev Poll Reactor....\n\n")));
+
+ test (new ACE_Dev_Poll_Reactor);
+ }
+
+#endif
+
+#if defined (ACE_WIN32)
+
+ if (test_wfmo_reactor)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\n\n(%t) Testing WFMO Reactor....\n\n")));
+
+ test (new ACE_WFMO_Reactor);
+ }
+
+#endif /* ACE_WIN32 */
+
+ ACE_END_TEST;
+
+ return result;
+}
+
+#else /* ACE_HAS_THREADS */
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("MT_NonBlocking_Connect_Test"));
+
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("threads not supported on this platform\n")));
+
+ ACE_END_TEST;
+
+ return 0;
+}
+
+#endif /* ACE_HAS_THREADS */
diff --git a/ACE/tests/MT_Reactor_Timer_Test.cpp b/ACE/tests/MT_Reactor_Timer_Test.cpp
index 5a714be719b..01fc16210c4 100644
--- a/ACE/tests/MT_Reactor_Timer_Test.cpp
+++ b/ACE/tests/MT_Reactor_Timer_Test.cpp
@@ -1,30 +1,27 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MT_Reactor_Timer_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that illustrates the timer mechanism of
-// the reactor scheduling timers, handling expired timers and
-// cancelling scheduled timers from multiple threads. No command
-// line arguments are needed to run the test.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MT_Reactor_Timer_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that illustrates the timer mechanism of
+ * the reactor scheduling timers, handling expired timers and
+ * cancelling scheduled timers from multiple threads. No command
+ * line arguments are needed to run the test.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "MT_Reactor_Timer_Test.h"
#include "ace/ACE.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, MT_Reactor_Timer_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -74,16 +71,16 @@ Time_Handler::setup (void)
int
Time_Handler::verify_results (void)
{
- ACE_ASSERT (this->timer_id_[0] == Time_Handler::TIMER_FIRED);
- ACE_ASSERT (this->timer_id_[1] == Time_Handler::TIMER_FIRED);
- ACE_ASSERT (this->timer_id_[2] == Time_Handler::TIMER_CANCELLED);
- ACE_ASSERT (this->timer_id_[3] == Time_Handler::TIMER_FIRED);
- ACE_ASSERT (this->timer_id_[4] == Time_Handler::TIMER_CANCELLED);
- ACE_ASSERT (this->timer_id_[5] == Time_Handler::TIMER_FIRED);
- ACE_ASSERT (this->timer_id_[6] == Time_Handler::TIMER_FIRED);
+ ACE_TEST_ASSERT (this->timer_id_[0] == Time_Handler::TIMER_FIRED);
+ ACE_TEST_ASSERT (this->timer_id_[1] == Time_Handler::TIMER_FIRED);
+ ACE_TEST_ASSERT (this->timer_id_[2] == Time_Handler::TIMER_CANCELLED);
+ ACE_TEST_ASSERT (this->timer_id_[3] == Time_Handler::TIMER_FIRED);
+ ACE_TEST_ASSERT (this->timer_id_[4] == Time_Handler::TIMER_CANCELLED);
+ ACE_TEST_ASSERT (this->timer_id_[5] == Time_Handler::TIMER_FIRED);
+ ACE_TEST_ASSERT (this->timer_id_[6] == Time_Handler::TIMER_FIRED);
for (int i = 7; i < Time_Handler::TIMER_SLOTS; i++)
- ACE_ASSERT (this->timer_id_[i] == Time_Handler::TIMER_NOTSET);
+ ACE_TEST_ASSERT (this->timer_id_[i] == Time_Handler::TIMER_NOTSET);
return 0;
}
@@ -93,7 +90,7 @@ Time_Handler::svc (void)
{
ACE_Reactor *r = ACE_Reactor::instance ();
- ACE_ASSERT (r->cancel_timer (this->timer_id_[2]) == 1);
+ ACE_TEST_ASSERT (r->cancel_timer (this->timer_id_[2]) == 1);
this->timer_id_[2] = Time_Handler::TIMER_CANCELLED;
this->timer_id_[1] = r->schedule_timer(this,
@@ -114,7 +111,7 @@ Time_Handler::svc (void)
(const void *)6,
ACE_Time_Value (12));
- ACE_ASSERT (r->cancel_timer (this->timer_id_[4]) == 1);
+ ACE_TEST_ASSERT (r->cancel_timer (this->timer_id_[4]) == 1);
this->timer_id_[4] = Time_Handler::TIMER_CANCELLED;
return 0;
@@ -134,10 +131,10 @@ Time_Handler::handle_timeout (const ACE_Time_Value &tv,
time_tag,
this->timer_id_[time_tag]));
- ACE_ASSERT (time_tag > this->prev_timer_);
- ACE_ASSERT (this->timer_id_[time_tag] != Time_Handler::TIMER_NOTSET);
- ACE_ASSERT (this->timer_id_[time_tag] != Time_Handler::TIMER_CANCELLED);
- ACE_ASSERT (this->timer_id_[time_tag] != Time_Handler::TIMER_FIRED);
+ ACE_TEST_ASSERT (time_tag > this->prev_timer_);
+ ACE_TEST_ASSERT (this->timer_id_[time_tag] != Time_Handler::TIMER_NOTSET);
+ ACE_TEST_ASSERT (this->timer_id_[time_tag] != Time_Handler::TIMER_CANCELLED);
+ ACE_TEST_ASSERT (this->timer_id_[time_tag] != Time_Handler::TIMER_FIRED);
this->timer_id_[time_tag] = Time_Handler::TIMER_FIRED;
this->prev_timer_ = time_tag;
@@ -187,7 +184,7 @@ Dispatch_Count_Handler::handle_close (ACE_HANDLE h,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("%T (%t): handle_close\n")));
- ACE_ASSERT (h == this->pipe_.read_handle ()
+ ACE_TEST_ASSERT (h == this->pipe_.read_handle ()
&& m == ACE_Event_Handler::READ_MASK);
return 0;
@@ -198,7 +195,7 @@ Dispatch_Count_Handler::handle_input (ACE_HANDLE h)
{
char c;
- ACE_ASSERT (this->input_seen_ == 0);
+ ACE_TEST_ASSERT (this->input_seen_ == 0);
this->input_seen_ = 1;
if (ACE::recv (h, &c, 1) != 1)
@@ -207,7 +204,7 @@ Dispatch_Count_Handler::handle_input (ACE_HANDLE h)
ACE_TEXT ("recv")),
-1);
- ACE_ASSERT (c == 'z');
+ ACE_TEST_ASSERT (c == 'z');
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("%T (%t): handle_input\n")));
// Trigger the <handle_close> hook.
@@ -219,7 +216,7 @@ Dispatch_Count_Handler::handle_exception (ACE_HANDLE h)
{
ACE_UNUSED_ARG (h);
- ACE_ASSERT (this->notify_seen_ == 0);
+ ACE_TEST_ASSERT (this->notify_seen_ == 0);
this->notify_seen_ = 1;
ACE_DEBUG ((LM_DEBUG,
@@ -312,7 +309,7 @@ run_main (int, ACE_TCHAR *[])
break;
// Make sure there were no errors.
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
events += result;
}
@@ -347,8 +344,8 @@ run_main (int, ACE_TCHAR *[])
other_thread.activate (THR_NEW_LWP | THR_JOINABLE);
status = ACE_Reactor::instance()->run_reactor_event_loop (time_limit);
// Should have returned only because the time limit is up...
- ACE_ASSERT (status != -1);
- ACE_ASSERT (time_limit.sec () == 0);
+ ACE_TEST_ASSERT (status != -1);
+ ACE_TEST_ASSERT (time_limit.sec () == 0);
status = other_thread.wait ();
if (status == -1)
@@ -356,8 +353,8 @@ run_main (int, ACE_TCHAR *[])
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p, errno is %d\n"),
"wait ()",
- errno));
- ACE_ASSERT (status != -1);
+ ACE_ERRNO_GET));
+ ACE_TEST_ASSERT (status != -1);
}
status = other_thread.verify_results ();
diff --git a/ACE/tests/MT_Reactor_Timer_Test.h b/ACE/tests/MT_Reactor_Timer_Test.h
index d3dce675ed4..21603efa84c 100644
--- a/ACE/tests/MT_Reactor_Timer_Test.h
+++ b/ACE/tests/MT_Reactor_Timer_Test.h
@@ -1,22 +1,19 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MT_Reactor_Timer_Test.h
-//
-// = DESCRIPTION
-// This file contains class definitions needed for template
-// instantiation in the MT_Reactor_Timer_Test.cpp file.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MT_Reactor_Timer_Test.h
+ *
+ * $Id$
+ *
+ * This file contains class definitions needed for template
+ * instantiation in the MT_Reactor_Timer_Test.cpp file.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_MT_REACTOR_TIMER_TEST_H
#define ACE_TESTS_MT_REACTOR_TIMER_TEST_H
@@ -30,11 +27,14 @@
#include "ace/Task.h"
#include "ace/Pipe.h"
+/**
+ * @class Time_Handler
+ *
+ * @brief Test out the multi-threading features of the Reactor's timer
+ * mechanism.
+ */
class Time_Handler : public ACE_Task<ACE_SYNCH>
{
- // = TITLE
- // Test out the multi-threading features of the Reactor's timer
- // mechanism.
public:
Time_Handler (void);
@@ -42,8 +42,8 @@ public:
int verify_results(void);
+ /// Run by a daemon thread to handle deferred processing.
virtual int svc (void);
- // Run by a daemon thread to handle deferred processing.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg);
@@ -54,12 +54,14 @@ private:
TIMER_SLOTS = 10
};
+ /**
+ * The timer_id_ array holds timer IDs. They also have some other values
+ * that are specific to this test:
+ * -1 the timer has not been set
+ * -2 the timer was set, but has been cancelled
+ * -3 the timer was set, and it already fired
+ */
long timer_id_[TIMER_SLOTS];
- // The timer_id_ array holds timer IDs. They also have some other values
- // that are specific to this test:
- // -1 the timer has not been set
- // -2 the timer was set, but has been cancelled
- // -3 the timer was set, and it already fired
enum { TIMER_NOTSET = -1, TIMER_CANCELLED = -2, TIMER_FIRED = -3 };
long prev_timer_;
@@ -70,34 +72,37 @@ private:
};
+/**
+ * @class Dispatch_Count_Handler
+ *
+ * @brief A simple test to ensure that the Reactor counts the number of
+ * dispatches correctly.
+ */
class Dispatch_Count_Handler : public ACE_Event_Handler
{
- // = TITLE
- // A simple test to ensure that the Reactor counts the number of
- // dispatches correctly.
public:
Dispatch_Count_Handler (void);
+ /// Clean up resources from the Reactor.
int handle_close (ACE_HANDLE h,
ACE_Reactor_Mask m);
- // Clean up resources from the Reactor.
+ /// Keep track of the number of timeouts.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg);
- // Keep track of the number of timeouts.
+ /// Keep track of the number of I/O events.
virtual int handle_input (ACE_HANDLE);
- // Keep track of the number of I/O events.
+ /// Keep track of the number of notifies.
virtual int handle_exception (ACE_HANDLE);
- // Keep track of the number of notifies.
+ /// Verify that the expected events did happen.
int verify_results (void);
- // Verify that the expected events did happen.
private:
+ /// Provide something to trigger I/O.
ACE_Pipe pipe_;
- // Provide something to trigger I/O.
int input_seen_;
int notify_seen_;
diff --git a/ACE/tests/MT_Reactor_Upcall_Test.cpp b/ACE/tests/MT_Reactor_Upcall_Test.cpp
index e446707dbdc..f299dad742d 100644
--- a/ACE/tests/MT_Reactor_Upcall_Test.cpp
+++ b/ACE/tests/MT_Reactor_Upcall_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MT_Reactor_Upcall_Test.cpp
-//
-// = DESCRIPTION
-// This is a test that shows how to handle upcalls from the
-// TP_Reactor and the WFMO_Reactor when the event loop is being run
-// by multiple threads.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MT_Reactor_Upcall_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test that shows how to handle upcalls from the
+ * TP_Reactor and the WFMO_Reactor when the event loop is being run
+ * by multiple threads.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -30,7 +27,7 @@
#include "ace/Get_Opt.h"
#include "ace/ACE.h"
-ACE_RCSID(tests, MT_Reactor_Upcall_Test, "$Id$")
+
int number_of_event_loop_threads = 3;
int number_of_messages = 10;
@@ -352,6 +349,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_Reference_Counted_Event_Handler_Test.cpp b/ACE/tests/MT_Reference_Counted_Event_Handler_Test.cpp
index 3cc4b712184..1288adb2916 100644
--- a/ACE/tests/MT_Reference_Counted_Event_Handler_Test.cpp
+++ b/ACE/tests/MT_Reference_Counted_Event_Handler_Test.cpp
@@ -1,31 +1,28 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MT_Reference_Counted_Event_Handler_Test.cpp
-//
-// = DESCRIPTION
-//
-// This test tries to represents what happens in the ORB wrt to
-// event handlers, reactors, timer queues, threads, and connection
-// caches, minus the other complexities. The following reactors
-// are tested: Select, TP, WFMO, and Dev Poll (if enabled).
-//
-// The test checks proper use and shutting down of client-side
-// event handlers when it is used by invocation threads and/or
-// event loop threads. Server-side event handlers are either
-// threaded or reactive. A purger thread is introduced to check the
-// connection recycling and cache purging. Nested upcalls are also
-// tested.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MT_Reference_Counted_Event_Handler_Test.cpp
+ *
+ * $Id$
+ *
+ *
+ * This test tries to represents what happens in the ORB wrt to
+ * event handlers, reactors, timer queues, threads, and connection
+ * caches, minus the other complexities. The following reactors
+ * are tested: Select, TP, WFMO, and Dev Poll (if enabled).
+ *
+ * The test checks proper use and shutting down of client-side
+ * event handlers when it is used by invocation threads and/or
+ * event loop threads. Server-side event handlers are either
+ * threaded or reactive. A purger thread is introduced to check the
+ * connection recycling and cache purging. Nested upcalls are also
+ * tested.
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Reactor.h"
@@ -43,7 +40,7 @@
#include "ace/OS_NS_sys_socket.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, MT_Reference_Counted_Event_Handler_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -108,6 +105,39 @@ static int test_configs[][5] =
// { 1, 1, 1, 1, 1, }, // No need for nested upcalls without event loop being used by the receiver.
};
+static int
+disable_signal (int sigmin, int sigmax)
+{
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
+ sigset_t signal_set;
+ if (ACE_OS::sigemptyset (&signal_set) == - 1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t):%p\n"),
+ ACE_TEXT ("sigemptyset failed")));
+
+ for (int i = sigmin; i <= sigmax; i++)
+ ACE_OS::sigaddset (&signal_set, i);
+
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
+#else
+ ACE_UNUSED_ARG (sigmin);
+ ACE_UNUSED_ARG (sigmax);
+#endif /* ACE_LACKS_UNIX_SIGNALS */
+
+ return 0;
+}
+
/* Replication of the ACE_Pipe class. Only difference is that this
class always uses two sockets to create the pipe, even on platforms
that support pipes. */
@@ -119,8 +149,8 @@ public:
Pipe (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
int open (void);
- //FUZZ: enable check_for_lack_ACE_OS
ACE_HANDLE read_handle (void) const;
@@ -214,8 +244,8 @@ public:
ssize_t send_message (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
void close (void);
- //FUZZ: enable check_for_lack_ACE_OS
ACE_HANDLE handle_;
@@ -361,8 +391,8 @@ public:
int svc (void);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
int close (u_long flags);
- //FUZZ: enable check_for_lack_ACE_OS
int handle_input (ACE_HANDLE);
@@ -421,6 +451,8 @@ Receiver::svc (void)
ACE_TEXT("(%t) Receiver::svc commencing, handle = %d\n"),
this->handle_));
+ disable_signal (SIGPIPE, SIGPIPE);
+
while (result != -1)
{
result =
@@ -522,10 +554,10 @@ public:
int nested_upcalls);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
int connect (ACE_HANDLE &client_handle,
ACE_HANDLE &server_handle,
int run_receiver_thread);
- //FUZZ: enable check_for_lack_ACE_OS
ACE_Thread_Manager &thread_manager_;
@@ -569,7 +601,7 @@ Connector::connect (ACE_HANDLE &client_handle,
ACE_OS::sleep (pipe_retry_timeout);
}
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_UNUSED_ARG (result);
Receiver *receiver =
@@ -593,7 +625,7 @@ Connector::connect (ACE_HANDLE &client_handle,
ACE_Event_Handler_var safe_receiver (receiver);
}
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_UNUSED_ARG (result);
client_handle =
@@ -643,7 +675,7 @@ Connection_Cache::add_connection (Sender *sender)
// Make sure that the state of the connection cache is as
// expected. <sender> should not be already in the cache.
- ACE_ASSERT (this->find (sender) == -1);
+ ACE_TEST_ASSERT (this->find (sender) == -1);
int empty_index =
this->find (0);
@@ -798,7 +830,7 @@ Invocation_Thread::create_connection (void)
connector.connect (client_handle,
server_handle,
this->run_receiver_thread_);
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_UNUSED_ARG (result);
// Create a new sender.
@@ -830,7 +862,7 @@ Invocation_Thread::create_connection (void)
sender,
ACE_Event_Handler::READ_MASK);
#if 0
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_UNUSED_ARG (result);
#else
if (result != 0)
@@ -848,6 +880,8 @@ Invocation_Thread::svc (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT("(%t) Invocation_Thread::svc commencing\n")));
+ disable_signal (SIGPIPE, SIGPIPE);
+
for (int message_counter = 1;; ++message_counter)
{
// Get a connection from the cache.
@@ -865,7 +899,7 @@ Invocation_Thread::svc (void)
// connection has been created.
int result =
this->new_connection_event_.signal ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_UNUSED_ARG (result);
++connection_counter;
@@ -983,13 +1017,15 @@ Close_Socket_Thread::svc (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT("(%t) Close_Socket_Thread::svc commencing\n")));
+ disable_signal (SIGPIPE, SIGPIPE);
+
for (; !this->reactor_.reactor_event_loop_done ();)
{
// Wait for the new connection to be established.
int result =
this->new_connection_event_.wait (&timeout,
0);
- ACE_ASSERT (result == 0 ||
+ ACE_TEST_ASSERT (result == 0 ||
(result == -1 && errno == ETIME));
if (result == -1 &&
@@ -1061,6 +1097,8 @@ Event_Loop_Thread::svc (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT("(%t) Event_Loop_Thread::svc commencing\n")));
+ disable_signal (SIGPIPE, SIGPIPE);
+
while (!this->reactor_.reactor_event_loop_done ())
{
this->reactor_.handle_events ();
@@ -1102,6 +1140,8 @@ Purger_Thread::svc (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT("(%t) Purger_Thread::svc commencing\n")));
+ disable_signal (SIGPIPE, SIGPIPE);
+
for (; !this->reactor_.reactor_event_loop_done ();)
{
// Get a connection from the cache.
@@ -1172,7 +1212,7 @@ testing (ACE_Reactor *reactor,
result =
invocation_thread.activate ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
// Create the thread for closing the server socket.
Close_Socket_Thread close_socket_thread (thread_manager,
@@ -1182,7 +1222,7 @@ testing (ACE_Reactor *reactor,
run_receiver_thread);
result =
close_socket_thread.activate ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
global_event_loop_thread_variable = 0;
@@ -1196,7 +1236,7 @@ testing (ACE_Reactor *reactor,
result =
event_loop_thread.activate ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
}
// Create a thread to run the purger.
@@ -1207,12 +1247,12 @@ testing (ACE_Reactor *reactor,
{
result =
purger_thread.activate ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
}
// Wait for threads to exit.
result = thread_manager.wait ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
// Set the global variable to zero again because the
// event_loop_thread exists on the stack and now
@@ -1384,17 +1424,7 @@ run_main (int argc, ACE_TCHAR *argv[])
if (result != 0)
return result;
-#if defined (SIGPIPE) && !defined (ACE_LACKS_UNIX_SIGNALS)
- // There's really no way to deal with this in a portable manner, so
- // we just have to suck it up and get preprocessor conditional and
- // ugly.
- //
- // Impractical to have each call to the ORB protect against the
- // implementation artifact of potential writes to dead connections,
- // as it'd be way expensive. Do it here; who cares about SIGPIPE in
- // these kinds of applications, anyway?
- (void) ACE_OS::signal (SIGPIPE, (ACE_SignalHandler) SIG_IGN);
-#endif /* SIGPIPE */
+ disable_signal (SIGPIPE, SIGPIPE);
int ignore_nested_upcalls = 1;
int perform_nested_upcalls = 0;
diff --git a/ACE/tests/MT_Reference_Counted_Notify_Test.cpp b/ACE/tests/MT_Reference_Counted_Notify_Test.cpp
index 713e81d6a5e..b79a017ed30 100644
--- a/ACE/tests/MT_Reference_Counted_Notify_Test.cpp
+++ b/ACE/tests/MT_Reference_Counted_Notify_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MT_Reference_Counted_Notify_Test.cpp
-//
-// = DESCRIPTION
-// This test is used to check reference counting of the event
-// handlers when it interacts with the reactor notification
-// mechanism.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MT_Reference_Counted_Notify_Test.cpp
+ *
+ * $Id$
+ *
+ * This test is used to check reference counting of the event
+ * handlers when it interacts with the reactor notification
+ * mechanism.
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_unistd.h"
@@ -28,8 +25,6 @@
#include "ace/Task.h"
#include "ace/Get_Opt.h"
-ACE_RCSID(tests, MT_Reference_Counted_Notify_Test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
static int test_select_reactor = 1;
@@ -242,7 +237,7 @@ notify (ACE_Reactor &reactor,
int result =
event_loop_thread.activate ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
for (int i = 0;
i < iterations;
@@ -253,7 +248,7 @@ notify (ACE_Reactor &reactor,
result = reactor.notify (event_handler,
ACE_Event_Handler::READ_MASK);
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
}
thread_manager.wait ();
diff --git a/ACE/tests/MT_SOCK_Test.cpp b/ACE/tests/MT_SOCK_Test.cpp
index 2b2b72b77b2..aa8cd57f14b 100644
--- a/ACE/tests/MT_SOCK_Test.cpp
+++ b/ACE/tests/MT_SOCK_Test.cpp
@@ -1,30 +1,26 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MT_SOCK_Test.cpp
-//
-// = DESCRIPTION
-// This is a multi-threaded torture test of the
-// <ACE_SOCK_Acceptor> and <ACE_SOCK_Connector> classes. The test
-// forks 30 processes or spawns 30 threads (depending upon the
-// platform) and then executes client and server allowing them to
-// connect and exchange data. Note that most of the connections
-// will fail since we're overrunning the size of the listen queue
-// for the acceptor-mode socket.
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MT_SOCK_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a multi-threaded torture test of the
+ * <ACE_SOCK_Acceptor> and <ACE_SOCK_Connector> classes. The test
+ * forks 30 processes or spawns 30 threads (depending upon the
+ * platform) and then executes client and server allowing them to
+ * connect and exchange data. Note that most of the connections
+ * will fail since we're overrunning the size of the listen queue
+ * for the acceptor-mode socket.
+ *
+ *
+ * @author Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
-#include "ace/OS_NS_sys_select.h"
#include "ace/OS_NS_sys_wait.h"
#include "ace/OS_NS_unistd.h"
#include "ace/Thread.h"
@@ -34,8 +30,6 @@
#include "ace/Handle_Set.h"
#include "ace/Time_Value.h"
-ACE_RCSID(tests, MT_SOCK_Test, "$Id$")
-
static const char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
// Normally the test will have BACKLOG < NUM_CLIENTS to force some
@@ -115,7 +109,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();
@@ -168,7 +162,6 @@ server (void *arg)
// calls...
ACE_SOCK_Stream new_stream;
ACE_INET_Addr cli_addr;
- ACE_Handle_Set handle_set;
const ACE_Time_Value def_timeout (ACE_DEFAULT_TIMEOUT);
ACE_Time_Value tv (def_timeout);
@@ -185,42 +178,34 @@ server (void *arg)
{
char buf[BUFSIZ];
- handle_set.reset ();
- handle_set.set_bit (peer_acceptor->get_handle ());
-
ACE_DEBUG((LM_DEBUG, "(%P|%t) server: Waiting for connection...\n"));
- int select_width;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (peer_acceptor->get_handle ()) + 1;
-# endif /* ACE_WIN64 */
- int result = ACE_OS::select (select_width, handle_set, 0, 0, &tv);
- ACE_ASSERT (tv == def_timeout);
+ int result = ACE::handle_read_ready (peer_acceptor->get_handle (), &tv);
+ ACE_TEST_ASSERT (tv == def_timeout);
if (result == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%P|%t) %p\n"),
- ACE_TEXT ("server: select acceptor")),
- 0);
- else if (result == 0)
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) server: Test finished.\n")));
- // The meaning of the backlog parameter for listen() varies by
- // platform. For some reason lost to history, the specified value
- // is typically backlog * 1.5, backlog * 1.5 + 1, or event taken
- // literally as on Windows. We'll accept any number less than
- // backlog * 2 as valid.
- if (num_clients_connected >= BACKLOG * 2)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("(%P|%t) server: Incorrect # client ")
- ACE_TEXT ("connections. Expected:%d-%d Actual:%d\n"),
- BACKLOG, BACKLOG * 2, num_clients_connected));
- return 0;
+ if (errno == ETIME)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) server: Test finished.\n")));
+ // The meaning of the backlog parameter for listen() varies by
+ // platform. For some reason lost to history, the specified value
+ // is typically backlog * 1.5, backlog * 1.5 + 1, or event taken
+ // literally as on Windows. We'll accept any number less than
+ // backlog * 2 as valid.
+ if (num_clients_connected > BACKLOG * 2)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) server: Incorrect # client ")
+ ACE_TEXT ("connections. Expected:%d-%d Actual:%d\n"),
+ BACKLOG, BACKLOG * 2, num_clients_connected));
+ return 0;
+ }
+
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("server: handle_read_ready acceptor")),
+ 0);
}
// Create a new ACE_SOCK_Stream endpoint (note automatic restart
@@ -244,36 +229,23 @@ server (void *arg)
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("server: enable non blocking i/o")),
0);
- handle_set.reset ();
- handle_set.set_bit (new_stream.get_handle ());
-
// Read data from client (terminate on error).
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) server: Waiting for data...\n")));
for (ssize_t r_bytes; ;)
{
- int select_width;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (new_stream.get_handle ()) + 1;
-# endif /* ACE_WIN64 */
- if (ACE_OS::select (select_width,
- handle_set,
- 0, 0, 0) == -1)
+ if (ACE::handle_read_ready (new_stream.get_handle (), 0) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
- ACE_TEXT ("select")),
+ ACE_TEXT ("stream handle_read_ready")),
0);
ACE_DEBUG ((LM_DEBUG, "(%P|%t) server: Receiving data...\n"));
while ((r_bytes = new_stream.recv (buf, 1)) > 0)
{
- ACE_ASSERT (*t == buf[0]);
+ ACE_TEST_ASSERT (*t == buf[0]);
t++;
}
diff --git a/ACE/tests/Main.cpp b/ACE/tests/Main.cpp
index 44b92128394..241e8b54bec 100644
--- a/ACE/tests/Main.cpp
+++ b/ACE/tests/Main.cpp
@@ -1,21 +1,18 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Main.cpp
-//
-// = DESCRIPTION
-// This is a wrapper for the test programs. It obviates the test cpp's
-// from having to always include OS.h.
-//
-// = AUTHOR
-// Don Hinton <dhinton@dresystems.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Main.cpp
+ *
+ * $Id$
+ *
+ * This is a wrapper for the test programs. It obviates the test cpp's
+ * from having to always include OS.h.
+ *
+ *
+ * @author Don Hinton <dhinton@dresystems.com>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#if defined (ACE_HAS_WINCE)
diff --git a/ACE/tests/Makefile.am b/ACE/tests/Makefile.am
index 737f93582d7..d7e41648e32 100644
--- a/ACE/tests/Makefile.am
+++ b/ACE/tests/Makefile.am
@@ -643,6 +643,266 @@ Collection_Test_LDADD = \
libTest_Output.la \
$(ACE_BUILDDIR)/ace/libACE.la
+## Makefile.Compiler_Features_01_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_01_Test
+
+Compiler_Features_01_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_01_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_01_Test.cpp
+
+Compiler_Features_01_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_02_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_02_Test
+
+Compiler_Features_02_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_02_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_02_Test.cpp
+
+Compiler_Features_02_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_03_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_03_Test
+
+Compiler_Features_03_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_03_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_03_Test.cpp
+
+Compiler_Features_03_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_04_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_04_Test
+
+Compiler_Features_04_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_04_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_04_Test.cpp
+
+Compiler_Features_04_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_05_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_05_Test
+
+Compiler_Features_05_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_05_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_05_Test.cpp
+
+Compiler_Features_05_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_06_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_06_Test
+
+Compiler_Features_06_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_06_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_06_Test.cpp
+
+Compiler_Features_06_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_07_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_07_Test
+
+Compiler_Features_07_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_07_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_07_Test.cpp
+
+Compiler_Features_07_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_09_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_09_Test
+
+Compiler_Features_09_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_09_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_09_Test.cpp
+
+Compiler_Features_09_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_10_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_10_Test
+
+Compiler_Features_10_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_10_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_10_Test.cpp
+
+Compiler_Features_10_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_11_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_11_Test
+
+Compiler_Features_11_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_11_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_11_Test.cpp
+
+Compiler_Features_11_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_12_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_12_Test
+
+Compiler_Features_12_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_12_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_12_Test.cpp
+
+Compiler_Features_12_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_13_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_13_Test
+
+Compiler_Features_13_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_13_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_13_Test.cpp
+
+Compiler_Features_13_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
+## Makefile.Compiler_Features_14_Test.am
+
+if !BUILD_ACE_FOR_TAO
+
+noinst_PROGRAMS += Compiler_Features_14_Test
+
+Compiler_Features_14_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Compiler_Features_14_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Compiler_Features_14_Test.cpp
+
+Compiler_Features_14_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
+endif !BUILD_ACE_FOR_TAO
+
## Makefile.Config_Test.am
if !BUILD_ACE_FOR_TAO
@@ -2220,6 +2480,20 @@ Reactor_Exceptions_Test_LDADD = \
libTest_Output.la \
$(ACE_BUILDDIR)/ace/libACE.la
+noinst_PROGRAMS += Reactor_Fairness_Test
+
+Reactor_Fairness_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Reactor_Fairness_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Reactor_Fairness_Test.cpp
+
+Reactor_Fairness_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
## Makefile.Reactor_Notification_Queue_Test.am
noinst_PROGRAMS += Reactor_Notification_Queue_Test
@@ -2896,6 +3170,22 @@ Task_Test_LDADD = \
libTest_Output.la \
$(ACE_BUILDDIR)/ace/libACE.la
+## Makefile.Thread_Attrs_Test.am
+
+noinst_PROGRAMS += Thread_Attrs_Test
+
+Thread_Attrs_Test_CPPFLAGS = \
+ -I$(ACE_ROOT) \
+ -I$(ACE_BUILDDIR)
+
+Thread_Attrs_Test_SOURCES = \
+ $(ACE_ROOT)/tests/Main.cpp \
+ Thread_Attrs_Test.cpp
+
+Thread_Attrs_Test_LDADD = \
+ libTest_Output.la \
+ $(ACE_BUILDDIR)/ace/libACE.la
+
## Makefile.Thread_Manager_Test.am
noinst_PROGRAMS += Thread_Manager_Test
diff --git a/ACE/tests/Malloc_Test.cpp b/ACE/tests/Malloc_Test.cpp
index 1e26005590c..e0ddce1d2e6 100644
--- a/ACE/tests/Malloc_Test.cpp
+++ b/ACE/tests/Malloc_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Malloc_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the position-independent <ACE_Malloc> memory
-// manager using the <ACE_MMAP_Memory_Pool> and <ACE_Process_Mutex>.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Malloc_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the position-independent <ACE_Malloc> memory
+ * manager using the <ACE_MMAP_Memory_Pool> and <ACE_Process_Mutex>.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "Malloc_Test.h"
@@ -30,7 +27,7 @@
#include "ace/Time_Value.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Malloc_Test, "Malloc_Test.cpp,v 4.22 1999/12/13 22:24:42 nanbor Exp")
+
#if defined (ACE_HAS_PROCESS_SPAWN)
@@ -100,6 +97,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);
@@ -114,7 +112,7 @@ myallocator (const void *base_addr = 0)
MALLOC *ptr = new MALLOC (MMAP_FILENAME,
MUTEX_NAME,
&options);
- ACE_AUTO_PTR_RESET(static_allocator, ptr, MALLOC);
+ ACE_auto_ptr_reset (static_allocator, ptr);
}
return static_allocator.get ();
}
@@ -126,6 +124,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);
@@ -201,8 +200,8 @@ initialize (MALLOC *allocator)
long long_cont_1 = *lt->bpl_;
long long_cont_2 = lt->bpl_[3];
- ACE_ASSERT (long_cont_1 == 1000);
- ACE_ASSERT (long_cont_2 == 1003);
+ ACE_TEST_ASSERT (long_cont_1 == 1000);
+ ACE_TEST_ASSERT (long_cont_2 == 1003);
ACE_ALLOCATOR_RETURN (ptr,
allocator->malloc (sizeof (Long_Test)),
@@ -221,8 +220,8 @@ initialize (MALLOC *allocator)
long long_cont_3 = *lt->bpl_;
long long_cont_4 = lt->bpl_[4];
- ACE_ASSERT (long_cont_3 == 2000);
- ACE_ASSERT (long_cont_4 == 2004);
+ ACE_TEST_ASSERT (long_cont_3 == 2000);
+ ACE_TEST_ASSERT (long_cont_4 == 2004);
return data2;
}
@@ -234,7 +233,7 @@ print (const char *process_name,
for (Test_Data *t = data; t != 0; t = t->next_)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("<<<< (%P) %s\ni1_ = %d, i2_ = %d, i3_ = %d, d1_ = %f\n"),
+ ACE_TEXT ("<<<< (%P) %C\ni1_ = %d, i2_ = %d, i3_ = %d, d1_ = %f\n"),
process_name,
t->i1_,
t->i2_,
@@ -278,7 +277,7 @@ parent (Test_Data *data)
myalloc->free (small_buf[cntr]);
#endif /* ACE_TEST_REMAP_ON_FAULT */
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
return 0;
}
@@ -367,7 +366,7 @@ run_main (int argc, ACE_TCHAR *argv[])
MALLOC *myalloc = myallocator (PARENT_BASE_ADDR);
Test_Data *data = initialize (myalloc);
- ACE_ASSERT (data != 0);
+ ACE_TEST_ASSERT (data != 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P) PARENT allocator at = %@, ")
@@ -376,7 +375,7 @@ run_main (int argc, ACE_TCHAR *argv[])
data));
myalloc->dump ();
int result = myalloc->bind ("foo", data);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_Process p;
pid_t pid = p.spawn (options);
@@ -393,7 +392,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("wait")), 1);
- ACE_ASSERT (myalloc->ref_counter () == 1);
+ ACE_TEST_ASSERT (myalloc->ref_counter () == 1);
myalloc->remove ();
ACE_END_TEST;
return 0;
@@ -406,7 +405,7 @@ run_main (int argc, ACE_TCHAR *argv[])
void *data = 0;
MALLOC *myalloc = myallocator (CHILD_BASE_ADDR);
int result = myalloc->find ("foo", data);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P) CHILD allocator at = %@, ")
diff --git a/ACE/tests/Malloc_Test.h b/ACE/tests/Malloc_Test.h
index 8fda7368ee4..45982889163 100644
--- a/ACE/tests/Malloc_Test.h
+++ b/ACE/tests/Malloc_Test.h
@@ -1,22 +1,18 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Malloc_Test.h
-//
-// = DESCRIPTION
-// This class gets its own header file to work around AIX C++
-// compiler "features" related to template instantiation... It is
-// only used by Malloc_Test.cpp.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
+//=============================================================================
+/**
+ * @file Malloc_Test.h
+ *
+ * $Id$
+ *
+ * This class gets its own header file to work around AIX C++
+ * compiler "features" related to template instantiation... It is
+ * only used by Malloc_Test.cpp.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
-// ============================================================================
#ifndef ACE_TESTS_MALLOC_TEST_H
#define ACE_TESTS_MALLOC_TEST_H
diff --git a/ACE/tests/Manual_Event_Test.cpp b/ACE/tests/Manual_Event_Test.cpp
index 773b4282d87..7d736f69282 100644
--- a/ACE/tests/Manual_Event_Test.cpp
+++ b/ACE/tests/Manual_Event_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Manual_Event Test
-//
-// = DESCRIPTION
-// This test verifies the functionality of the <ACE_Manual_Event>
-// implementation.
-//
-// = AUTHOR
-// Martin Corino <mcorino@remedy.nl>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Manual_Event_Test.cpp
+ *
+ * $Id$
+ *
+ * This test verifies the functionality of the <ACE_Manual_Event>
+ * implementation.
+ *
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Manual_Event.h"
@@ -27,7 +24,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(tests, Manual_Event_Test, "$Id$")
+
// msec that times are allowed to differ before test fails.
#if defined (ACE_HAS_HI_RES_TIMER) || defined (ACE_HAS_AIX_HI_RES_TIMER) || \
diff --git a/ACE/tests/Map_Manager_Test.cpp b/ACE/tests/Map_Manager_Test.cpp
index c220e285a06..f06e966a89a 100644
--- a/ACE/tests/Map_Manager_Test.cpp
+++ b/ACE/tests/Map_Manager_Test.cpp
@@ -1,24 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Map_Manager_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the <ACE_Map_Manager> and
-// <ACE_Hash_Map_Manager> that illustrates how to use the forward
-// and reverse iterators.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>,
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>, and
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Map_Manager_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the <ACE_Map_Manager> and
+ * <ACE_Hash_Map_Manager> that illustrates how to use the forward
+ * and reverse iterators.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author and Kirthika Parameswaran <kirthika@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Map_Manager.h"
@@ -27,9 +24,6 @@
#include "ace/Profile_Timer.h"
#include "ace/Hash_Cache_Map_Manager_T.h"
#include "ace/Caching_Strategies_T.h"
-#include "ace/Pair_T.h"
-
-ACE_RCSID(tests, Map_Manager_Test, "$Id$")
typedef ACE_Null_Mutex MUTEX;
typedef ACE_UINT32 TYPE;
@@ -59,11 +53,11 @@ typedef ACE_Hash_Map_Entry <TYPE, TYPE>
typedef ACE_Active_Map_Manager <TYPE>
ACTIVE_MAP_MANAGER;
-typedef ACE_Hash_Map_Manager_Ex<TYPE, ACE_Pair<TYPE, int>, HASH_KEY, COMPARE_KEYS, MUTEX>
+typedef ACE_Hash_Map_Manager_Ex<TYPE, std::pair<TYPE, int>, HASH_KEY, COMPARE_KEYS, MUTEX>
CACHE_MAP_IMPL;
-typedef ACE_Hash_Map_Iterator_Ex<TYPE, ACE_Pair<TYPE, int>, HASH_KEY, COMPARE_KEYS, MUTEX>
+typedef ACE_Hash_Map_Iterator_Ex<TYPE, std::pair<TYPE, int>, HASH_KEY, COMPARE_KEYS, MUTEX>
CACHE_ITER_IMPL;
-typedef ACE_Hash_Map_Reverse_Iterator_Ex<TYPE, ACE_Pair<TYPE, int>, HASH_KEY, COMPARE_KEYS, MUTEX>
+typedef ACE_Hash_Map_Reverse_Iterator_Ex<TYPE, std::pair<TYPE, int>, HASH_KEY, COMPARE_KEYS, MUTEX>
CACHE_REV_ITER_IMPL;
typedef int ATTR;
typedef ACE_Null_Cleanup_Strategy<TYPE, TYPE, CACHE_MAP_IMPL>
@@ -77,7 +71,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 +84,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 +107,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 +130,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 +153,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 +176,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 +184,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 +212,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 +235,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 +258,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 +281,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 +304,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 +312,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 +339,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 +371,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 +396,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 +430,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 +453,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 +474,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 +496,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 +517,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 +539,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 +560,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 +582,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 +603,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 +635,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 +658,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 +679,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 +701,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 +722,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 +744,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 +765,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 +787,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 +808,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 +846,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 +897,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 +906,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 +920,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/Map_Test.cpp b/ACE/tests/Map_Test.cpp
index fb08b5ae034..9bcd7ad25f4 100644
--- a/ACE/tests/Map_Test.cpp
+++ b/ACE/tests/Map_Test.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Map_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the <ACE_Map> and illustrates how to
-// use the forward and reverse iterators.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Map_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the <ACE_Map> and illustrates how to
+ * use the forward and reverse iterators.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "Map_Test.h"
#include "ace/Map_T.h"
#include "ace/Profile_Timer.h"
-ACE_RCSID(tests, Map_Test, "$Id$")
+
#undef THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL
#define THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL(X) \
diff --git a/ACE/tests/Map_Test.h b/ACE/tests/Map_Test.h
index c881a3f7645..39b4db9b682 100644
--- a/ACE/tests/Map_Test.h
+++ b/ACE/tests/Map_Test.h
@@ -1,23 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Map_Test.h
-//
-// = DESCRIPTION
-// This file has the class definitions needed for template generation in
-// Map_Test.cpp. They have to be in a separate file so AIX xlC can
-// find them at auto-instantiate time.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Map_Test.h
+ *
+ * $Id$
+ *
+ * This file has the class definitions needed for template generation in
+ * Map_Test.cpp. They have to be in a separate file so AIX xlC can
+ * find them at auto-instantiate time.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_MAP_TEST_H
#define ACE_TESTS_MAP_TEST_H
@@ -34,13 +31,15 @@
// Key data type.
typedef ACE_Array<char> KEY;
+/**
+ * @class Key_Generator
+ *
+ * @brief Defines a key generator.
+ *
+ * This class is used in adapters of maps that do not produce keys.
+ */
class Key_Generator
{
- // = TITLE
- // Defines a key generator.
- //
- // = DESCRIPTION
- // This class is used in adapters of maps that do not produce keys.
public:
Key_Generator (void)
diff --git a/ACE/tests/Max_Default_Port_Test.cpp b/ACE/tests/Max_Default_Port_Test.cpp
index 3c9f30cbf91..bf1e530bd75 100644
--- a/ACE/tests/Max_Default_Port_Test.cpp
+++ b/ACE/tests/Max_Default_Port_Test.cpp
@@ -1,30 +1,27 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Max_Default_Port_Test.cpp
-//
-// = DESCRIPTION
-// This is a test for ACE_MAX_DEFAULT_PORT value. The test tests the
-// highest value of the port number at which an event handler can be
-// registered and a Connector can be connected to.
-//
-// Some weird behaviour has been reported on Windows NT (sp 3) when
-// the port number exceeds 65279 resulting ACE_MAX_DEFAULT_PORT to set
-// to zero on that platform.
-//
-// In this test, the event handler is started at the port value
-// USHRT_MAX and decremented for 'ports_to_test' port values and tested
-// if the highest port number used agrees with ACE_MAX_DEFAULT_PORT value.
-//
-//
-// = AUTHOR
-// Chanaka Liyanaarachchi <chanaka@ociweb.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Max_Default_Port_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test for ACE_MAX_DEFAULT_PORT value. The test tests the
+ * highest value of the port number at which an event handler can be
+ * registered and a Connector can be connected to.
+ *
+ * Some weird behaviour has been reported on Windows NT (sp 3) when
+ * the port number exceeds 65279 resulting ACE_MAX_DEFAULT_PORT to set
+ * to zero on that platform.
+ *
+ * In this test, the event handler is started at the port value
+ * USHRT_MAX and decremented for 'ports_to_test' port values and tested
+ * if the highest port number used agrees with ACE_MAX_DEFAULT_PORT value.
+ *
+ *
+ *
+ * @author Chanaka Liyanaarachchi <chanaka@ociweb.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Reactor.h"
diff --git a/ACE/tests/Max_Default_Port_Test.h b/ACE/tests/Max_Default_Port_Test.h
index 78969cf05e1..f61748531bc 100644
--- a/ACE/tests/Max_Default_Port_Test.h
+++ b/ACE/tests/Max_Default_Port_Test.h
@@ -1,19 +1,16 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Max_Default_Port_Test.h
-//
-// = DESCRIPTION
-// This is a test to verify ACE_MAX_DEFAULT_PORT is correct.
-//
-// = AUTHOR
-// Chanaka Liyanaarachchi <chanaka@ociweb.com>
-//
-// ===========================================================================
+//=============================================================================
+/**
+ * @file Max_Default_Port_Test.h
+ *
+ * $Id$
+ *
+ * This is a test to verify ACE_MAX_DEFAULT_PORT is correct.
+ *
+ *
+ * @author Chanaka Liyanaarachchi <chanaka@ociweb.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_MAX_DEFAULT_PORT_TEST
@@ -24,10 +21,13 @@
#include "ace/SOCK_Stream.h"
#include "ace/INET_Addr.h"
+/**
+ * @class My_Accept_Handler
+ = Title
+ * A simple event handler
+ */
class My_Accept_Handler : public ACE_Event_Handler
{
- // = Title
- // A simple event handler
public:
My_Accept_Handler (ACE_INET_Addr &addr);
@@ -39,8 +39,8 @@ public:
int handle_input (ACE_HANDLE handle);
+ /// Returns the port the event handler is listening at.
u_short port ();
- // Returns the port the event handler is listening at.
private:
ACE_SOCK_Acceptor peer_acceptor_;
diff --git a/ACE/tests/Mem_Map_Test.cpp b/ACE/tests/Mem_Map_Test.cpp
index 207f5a1eb15..d47d3845ac6 100644
--- a/ACE/tests/Mem_Map_Test.cpp
+++ b/ACE/tests/Mem_Map_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Mem_Map_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the use of ACE_Mem_Map to reverse a
-// file. The test first creates a dummy file for testing, then
-// reverses the file and then reverses it again to get back the
-// original file.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Mem_Map_Test.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the use of ACE_Mem_Map to reverse a
+ * file. The test first creates a dummy file for testing, then
+ * reverses the file and then reverses it again to get back the
+ * original file.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Mem_Map.h"
@@ -27,7 +24,7 @@
#include "ace/OS_NS_fcntl.h"
#include "ace/OS_Memory.h"
-ACE_RCSID(tests, Mem_Map_Test, "Mem_Map_Test.cpp,v 4.36 2003/11/01 11:15:25 dhinton Exp")
+
#if !defined (ACE_LACKS_MMAP)
@@ -71,7 +68,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 +105,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 +119,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 +138,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 +184,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 +206,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 +221,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 +240,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);
@@ -261,7 +258,7 @@ run_main (int, ACE_TCHAR *[])
// Now do a memcmp -- the orig file and the second temporary file
// should be identical.
- ACE_ASSERT (ACE_OS::memcmp (temp_mmap2.addr (),
+ ACE_TEST_ASSERT (ACE_OS::memcmp (temp_mmap2.addr (),
mmap.addr (),
mmap.size ()) == 0);
diff --git a/ACE/tests/Memcpy_Test.cpp b/ACE/tests/Memcpy_Test.cpp
index 46fb2c381e5..d2dd7501777 100644
--- a/ACE/tests/Memcpy_Test.cpp
+++ b/ACE/tests/Memcpy_Test.cpp
@@ -9,7 +9,7 @@
* This test compares the performance of ACE_OS::memcpy with
* that of smemcpy which unrolls the memcpy loop upto size = 16.
* This test is also run via autoconf and if smemcpy is faster,
- * ACE_HAS_MEMCPY_LOOP_UNROLL flag is set.
+ * ACE_HAS_MEMCPY_LOOP_UNROLL flag is set.
*
*/
//=============================================================================
@@ -53,7 +53,7 @@ testit (int type)
char buffer[16];
size_t size = 16;
- switch (type)
+ switch (type)
{
case 0: smemcpy ((void*)buffer, (void*)" THIS IS A TEST", size); break;
case 1: ACE_OS::memcpy ((void*)buffer, (void*)" THIS IS A TEST", size); break;
@@ -71,11 +71,11 @@ run_main (int, ACE_TCHAR *[])
//ACE_Time_Value start, now;
struct timeval start, now;
- for (int i = ITERATIONS; i > 0; --i)
+ for (int i = ITERATIONS; i > 0; --i)
testit (0);
start = ACE_High_Res_Timer::gettimeofday_hr ();
- for (int j = ITERATIONS; j > 0; --j)
+ for (int j = ITERATIONS; j > 0; --j)
testit (0);
now = ACE_High_Res_Timer::gettimeofday_hr ();
@@ -87,7 +87,7 @@ run_main (int, ACE_TCHAR *[])
fast / ITERATIONS));
start = ACE_High_Res_Timer::gettimeofday_hr ();
- for (int k = ITERATIONS; k > 0; --k)
+ for (int k = ITERATIONS; k > 0; --k)
testit (1);
now = ACE_High_Res_Timer::gettimeofday_hr ();
diff --git a/ACE/tests/Message_Block_Test.cpp b/ACE/tests/Message_Block_Test.cpp
index fa14d46ab2f..b551ecf2e64 100644
--- a/ACE/tests/Message_Block_Test.cpp
+++ b/ACE/tests/Message_Block_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Message_Block_Test.cpp
-//
-// = DESCRIPTION
-// This test program is a torture test that illustrates how
-// <ACE_Message_Block> reference counting works in multi-threaded
-// code.
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@cs.wustl.edu> and Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Message_Block_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program is a torture test that illustrates how
+ * <ACE_Message_Block> reference counting works in multi-threaded
+ * code.
+ *
+ *
+ * @author Doug Schmidt <schmidt@cs.wustl.edu> and Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_stdio.h"
@@ -26,10 +23,6 @@
#include "ace/Profile_Timer.h"
#include "ace/Free_List.h"
-ACE_RCSID (tests,
- Message_Block_Test,
- "$Id$")
-
// Number of memory allocation strategies used in this test.
static const int ACE_ALLOC_STRATEGY_NO = 2;
@@ -54,21 +47,21 @@ static ACE_Lock_Adapter<ACE_SYNCH_MUTEX> lock_adapter_;
class Worker_Task : public ACE_Task<ACE_MT_SYNCH>
{
public:
+ /// Activate the task.
Worker_Task (void);
- // Activate the task.
+ /// Iterate <n_iterations> time printing off a message and "waiting"
+ /// for all other threads to complete this iteration.
virtual int svc (void);
- // Iterate <n_iterations> time printing off a message and "waiting"
- // for all other threads to complete this iteration.
+ /// Allows the producer to pass messages to the <Message_Block>.
virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- // Allows the producer to pass messages to the <Message_Block>.
private:
//FUZZ: disable check_for_lack_ACE_OS
+ /// Close hook.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int close (u_long);
- // Close hook.
- //FUZZ: enable check_for_lack_ACE_OS
};
int
@@ -208,11 +201,11 @@ Worker_Task::svc (void)
}
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) in iteration %d, length = %d, prio = %d, text = \"%*s\"\n"),
+ ACE_TEXT ("(%t) in iteration %d, length = %B, prio = %d, text = \"%*s\"\n"),
count,
length,
mb->msg_priority (),
- length - 2, // remove the trailing "\n\0"
+ (int)(length - 2), // remove the trailing "\n\0"
mb->rd_ptr ()));
}
@@ -223,7 +216,7 @@ Worker_Task::svc (void)
{
//FUZZ: disable check_for_NULL
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) in iteration %d, queue len = %d, got NULL message, exiting\n"),
+ ACE_TEXT ("(%t) in iteration %d, queue len = %B, got NULL message, exiting\n"),
count, this->msg_queue ()->message_count ()));
//FUZZ: enable check_for_NULL
break;
@@ -248,7 +241,7 @@ static int
produce (Worker_Task &worker_task,
ACE_Allocator *alloc_strategy)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
int status;
// Send <n_iteration> messages through the pipeline.
diff --git a/ACE/tests/Message_Queue_Notifications_Test.cpp b/ACE/tests/Message_Queue_Notifications_Test.cpp
index 75a3abbfcbb..c39286d498c 100644
--- a/ACE/tests/Message_Queue_Notifications_Test.cpp
+++ b/ACE/tests/Message_Queue_Notifications_Test.cpp
@@ -1,38 +1,35 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Message_Queue_Notification_Test.cpp
-//
-// = DESCRIPTION
-// There are two tests that test 2 different notification
-// mechanisms in Message Queue.
-//
-// The first test illustrates the notification mechanisms in
-// Message_Queue and its integration with Reactor.
-//
-// Note the following things about this part of the test:
-//
-// 1. Multiple threads are not required.
-// 2. You do not have to explicitly notify the Reactor
-// 3. This code will work the same with any Reactor Implementation
-// 4. handle_input, handle_exception, handle_output are the only
-// callbacks supported by this mechanism
-// 5. The notification mechanism need not notify the Reactor. You can
-// write your own strategy classes that can do whatever application
-// specific behavior you want.
-//
-// The second test also makes sure the high/low water mark
-// signaling mechanism works flawlessly.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu> and Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Message_Queue_Notifications_Test.cpp
+ *
+ * $Id$
+ *
+ * There are two tests that test 2 different notification
+ * mechanisms in Message Queue.
+ *
+ * The first test illustrates the notification mechanisms in
+ * Message_Queue and its integration with Reactor.
+ *
+ * Note the following things about this part of the test:
+ *
+ * 1. Multiple threads are not required.
+ * 2. You do not have to explicitly notify the Reactor
+ * 3. This code will work the same with any Reactor Implementation
+ * 4. handle_input, handle_exception, handle_output are the only
+ * callbacks supported by this mechanism
+ * 5. The notification mechanism need not notify the Reactor. You can
+ * write your own strategy classes that can do whatever application
+ * specific behavior you want.
+ *
+ * The second test also makes sure the high/low water mark
+ * signaling mechanism works flawlessly.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> and Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Reactor.h"
@@ -46,7 +43,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Message_Queue_Notifications_Test, "$Id$")
+
static int iterations = 10;
@@ -56,14 +53,17 @@ static const size_t default_high_water_mark = 20;
static const size_t default_low_water_mark = 10;
static const int watermark_iterations = 2 * default_high_water_mark;
+/**
+ * @class Message_Handler
+ *
+ * @brief This class implements a notification strategy for the Reactor.
+ */
class Message_Handler : public ACE_Task<ACE_NULL_SYNCH>
{
- // = TITLE
- // This class implements a notification strategy for the Reactor.
public:
// = Initialization and termination.
+ /// Constructor.
Message_Handler (ACE_Reactor &reactor);
- // Constructor.
// = Demuxing hooks.
virtual int handle_input (ACE_HANDLE);
@@ -77,11 +77,14 @@ private:
ACE_Reactor_Notification_Strategy notification_strategy_;
};
+/**
+ * @class Watermark_Test
+ *
+ * @brief This class test the correct functioning of build-in flow
+ * control machanism in ACE_Task.
+ */
class Watermark_Test : public ACE_Task<ACE_SYNCH>
{
- // = TITLE
- // This class test the correct functioning of build-in flow
- // control machanism in ACE_Task.
public:
Watermark_Test (void);
@@ -155,7 +158,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 +183,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")));
@@ -231,7 +234,7 @@ Watermark_Test::producer (void)
// has dropped under the lwm.
this->put_message ();
- ACE_ASSERT (this->msg_queue ()-> message_bytes () <= this->lwm_ + this->len_);
+ ACE_TEST_ASSERT (this->msg_queue ()-> message_bytes () <= this->lwm_ + this->len_);
this->print_producer_debug_message ();
@@ -265,7 +268,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 +291,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..c55f4211381 100644
--- a/ACE/tests/Message_Queue_Test.cpp
+++ b/ACE/tests/Message_Queue_Test.cpp
@@ -1,31 +1,28 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Message_Queue_Test.cpp
-//
-// = DESCRIPTION
-// This is:
-// 0) a test that ensures key ACE_Message_Queue features are
-// working properly, including timeouts and priorities
-// 1) a simple test of the ACE_Message_Queue that illustrates how to
-// use the forward and reverse iterators
-// 2) a simple performance measurement test for both single-threaded
-// (null synch), thread-safe ACE_Message_Queues, and
-// ACE_Message_Queue_Vx, which wraps VxWorks message queues
-// 3) a test/usage example of ACE_Message_Queue_Vx
-// 4) a test of the message counting in a message queue under load.
-//
-// = AUTHORS
-// Irfan Pyarali <irfan@cs.wustl.edu>,
-// David L. Levine <levine@cs.wustl.edu>, and
-// Douglas C. Schmidt <schmidt@vanderbilt.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Message_Queue_Test.cpp
+ *
+ * $Id$
+ *
+ * This is:
+ * 0) a test that ensures key ACE_Message_Queue features are
+ * working properly, including timeouts and priorities
+ * 1) a simple test of the ACE_Message_Queue that illustrates how to
+ * use the forward and reverse iterators
+ * 2) a simple performance measurement test for both single-threaded
+ * (null synch), thread-safe ACE_Message_Queues, and
+ * ACE_Message_Queue_Vx, which wraps VxWorks message queues
+ * 3) a test/usage example of ACE_Message_Queue_Vx
+ * 4) a test of the message counting in a message queue under load.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ * @author David L. Levine <levine@cs.wustl.edu>
+ * @author and Douglas C. Schmidt <schmidt@vanderbilt.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Atomic_Op.h"
@@ -43,7 +40,7 @@
#include "ace/OS_NS_sys_time.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Message_Queue_Test, "$Id$")
+
const ACE_TCHAR usage[] = ACE_TEXT ("usage: Message_Queue_Test <number of messages>\n");
@@ -51,6 +48,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";
@@ -118,13 +120,13 @@ Counting_Test_Producer::svc (void)
// correct.
// Also, to be sure there's not just 1 producer and 1 consumer pinging
// back and forth, make the producers randomly delay between blocks.
- ACE_OS::srand ((u_int)ACE_Thread::self ());
+ ACE_OS::srand (static_cast<unsigned int> (ACE_OS::time ()));
int multiple = ACE_OS::rand () % 10;
int delay_ms = (ACE_OS::rand () % 10) / 2;
// 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 +138,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)
@@ -208,13 +210,14 @@ Counting_Test_Consumer::svc (void)
// a calculated number of blocks then stop; the test checker will determine
// if the number consumed plus the number remaining is correct for the
// number produced.
- ACE_OS::srand ((u_int)ACE_Thread::self ());
- int multiple = ACE_OS::rand () % 10;
- int delay_ms = ACE_OS::rand () % 10;
+ unsigned int seed = static_cast<unsigned int> (ACE_OS::time ());
+
+ int multiple = ACE_OS::rand_r (&seed) % 10;
+ int delay_ms = ACE_OS::rand_r (&seed) % 10;
// 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 +316,6 @@ counting_test (void)
#endif /* ACE_HAS_THREADS */
-#if !defined (VXWORKS)
static int
iterator_test (void)
{
@@ -322,13 +324,9 @@ iterator_test (void)
// Use queue size from of 32 Kb (more if using wide-char), instead of the
// default of 16 Kb (defined by ACE_Message_Queue_Base::DEFAULT_HWM),
// so that the test runs on machines with 8Kb pagesizes.
-#if !defined(_UNICOS)
+
// QUEUE queue (32 * 1024 * sizeof (ACE_TCHAR));
QUEUE queue (sizeof(buffer));
-#else
- // this works on the Cray, where BUFSIZ is defined as 32Kb
- QUEUE queue (ITERATIONS * BUFSIZ - 1);
-#endif
int i;
@@ -338,7 +336,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 +408,6 @@ iterator_test (void)
return 0;
}
-#endif /* ! VXWORKS */
#if defined (ACE_HAS_THREADS)
@@ -522,7 +519,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 +536,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 +556,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 +573,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 +606,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 +630,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 +647,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 +658,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 +715,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 +732,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 +862,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 +883,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 +915,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 +937,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 +963,7 @@ run_main (int argc, ACE_TCHAR *argv[])
delete timer;
timer = 0;
-
+
ACE_END_TEST;
return status;
diff --git a/ACE/tests/Message_Queue_Test_Ex.cpp b/ACE/tests/Message_Queue_Test_Ex.cpp
index d13faea21a0..0dc5a19f6e7 100644
--- a/ACE/tests/Message_Queue_Test_Ex.cpp
+++ b/ACE/tests/Message_Queue_Test_Ex.cpp
@@ -1,28 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Message_Queue_Test_Ex.cpp
-//
-// = DESCRIPTION
-// This is:
-// 1. A simple test of the ACE_Message_Queue_Ex that executes
-// a performance measurement test for both single-threaded
-// (null synch) and thread-safe ACE_Message_Queue_Ex
-// instantiations.
-// 2. An example of using a user-defined class to parameterize
-// ACE_Message_Queue_Ex.
-//
-// = AUTHORS
-// Michael Vitlo <mvitalo@sprynet.com>, copied the code from:
-// Irfan Pyarali <irfan@cs.wustl.edu> and
-// David L. Levine <levine@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Message_Queue_Test_Ex.cpp
+ *
+ * $Id$
+ *
+ * This is:
+ * 1. A simple test of the ACE_Message_Queue_Ex that executes
+ * a performance measurement test for both single-threaded
+ * (null synch) and thread-safe ACE_Message_Queue_Ex
+ * instantiations.
+ * 2. An example of using a user-defined class to parameterize
+ * ACE_Message_Queue_Ex.
+ *
+ *
+ * @author Michael Vitlo <mvitalo@sprynet.com>
+ * @author copied the code from: Irfan Pyarali <irfan@cs.wustl.edu> and David L. Levine <levine@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Thread_Manager.h"
@@ -70,26 +66,25 @@ print_message (const ACE_TCHAR *message)
#if defined (ACE_HAS_THREADS)
typedef ACE_Message_Queue_Ex<User_Class, ACE_MT_SYNCH> SYNCH_QUEUE;
+/**
+ * Container for data passed to sender and receiver in
+ * performance test.
+ *
+ * For use in multithreaded performance test.
+ */
struct Queue_Wrapper
{
- // = TITLE
- // Container for data passed to sender and receiver in
- // performance test.
- //
- // = DESCRIPTION
- // For use in multithreaded performance test.
-
+ /// The message queue.
SYNCH_QUEUE *q_;
- // The message queue.
+ /// Pointer to messages blocks for sender to send to reciever.
User_Class **send_block_;
- // Pointer to messages blocks for sender to send to reciever.
+ /// Default constructor.
Queue_Wrapper (void)
: q_ (0), send_block_ (0)
{
}
- // Default constructor.
};
struct MQ_Ex_N_Tester_Wrapper
diff --git a/ACE/tests/Missing_Svc_Conf_Test.cpp b/ACE/tests/Missing_Svc_Conf_Test.cpp
new file mode 100644
index 00000000000..a9ca9bf7dc9
--- /dev/null
+++ b/ACE/tests/Missing_Svc_Conf_Test.cpp
@@ -0,0 +1,87 @@
+
+//=============================================================================
+/**
+ * @file Missing_Svc_Conf_Test.cpp
+ *
+ * $Id$
+ *
+ * A test to ensure that service_config::open() returns -1 if it is
+ * fully defaulted, but no default svc.conf file exists. The first
+ * test verifies that open returns -1 with errno ENOENT. A second
+ * test ensures that service_config::open() returns 0 when any
+ * explicit directive is supplied by the command line, regardless
+ * of the existence of default svc.conf.
+ *
+ * Presently there is no svc.conf file in the tests directory and
+ * this test relies on that. It is assumed that this will stay
+ * true, since adding a default svc.conf file in this directory my
+ * impact other tests.
+ *
+ *
+ * @author Phil Mesnier <mesnier_p@ociweb.com>
+ */
+//=============================================================================
+
+
+#include "ace/Service_Config.h"
+#include "ace/OS_NS_fcntl.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/Logging_Strategy.h"
+
+#include "test_config.h"
+
+int
+run_main (int, ACE_TCHAR *[] )
+{
+ ACE_START_TEST (ACE_TEXT ("Missing_Svc_Conf_Test"));
+
+ ACE_HANDLE h = ACE_OS::open (ACE_DEFAULT_SVC_CONF,O_RDONLY);
+ if (h != ACE_INVALID_HANDLE)
+ {
+ ACE_ERROR ((LM_ERROR,ACE_TEXT("svc.conf exists, test unable to run\n")));
+ ACE_OS::close(h);
+ return -1;
+ }
+
+ int argc = 1;
+ ACE_TCHAR *argv[] = {const_cast<ACE_TCHAR *>(ACE_TEXT("nosvc")),0,0,0 };
+ int failcount = 0;
+ int result = ACE_Service_Config::open(argc, argv);
+ if (result != -1 || errno != ENOENT)
+ {
+ ++failcount;
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("ERROR: did not get expected ENOENT, %p\n"),
+ ACE_TEXT("ACE_Service_Config::open")));
+ }
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Success: defaulted Service_Config::open ")
+ ACE_TEXT("with missing file got expected ENOENT\n")));
+
+ result = ACE_Service_Config::close();
+ if (result != 0)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%p\n"),
+ ACE_TEXT("Service_Config::close")));
+
+ argc = 3;
+ argv[1] = const_cast<ACE_TCHAR *>(ACE_TEXT("-S"));
+ argv[2] = const_cast<ACE_TCHAR *>(ACE_TEXT("dynamic Logger Service_Object *ACE:_make_ACE_Logging_Strategy() \"\""));
+
+ result = ACE_Service_Config::open(argc, argv);
+ if (result != 0)
+ {
+ ++failcount;
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("ERROR: missing svc.conf with ")
+ ACE_TEXT("command line directive, %p\n"),
+ ACE_TEXT("ACE_Service_Config::open")));
+ }
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Success: Service_Config::open with command line ")
+ ACE_TEXT("directive ignored missing svc.conf\n")));
+
+ ACE_END_TEST;
+ return failcount;
+}
diff --git a/ACE/tests/Multicast_Test.cpp b/ACE/tests/Multicast_Test.cpp
index 251f2eb655d..997748cbe7c 100644
--- a/ACE/tests/Multicast_Test.cpp
+++ b/ACE/tests/Multicast_Test.cpp
@@ -33,7 +33,7 @@
//
// ============================================================================
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/Get_Opt.h"
#include "ace/Vector_T.h"
#include "ace/SOCK_Dgram_Mcast.h"
@@ -49,7 +49,7 @@
#include "ace/Signal.h"
#include "ace/Min_Max.h"
-ACE_RCSID(tests, Multicast_Test, "$Id$")
+
#if defined (ACE_HAS_IP_MULTICAST) && defined (ACE_HAS_THREADS)
@@ -448,11 +448,19 @@ public:
= ACE_SOCK_Dgram_Mcast::DEFOPTS);
virtual ~MCT_Event_Handler (void);
+#if defined (__linux__)
+ int join (const ACE_INET_Addr &mcast_addr,
+ int reuse_addr = 1,
+ const ACE_TCHAR *net_if = ACE_TEXT ("lo"));
+ int leave (const ACE_INET_Addr &mcast_addr,
+ const ACE_TCHAR *net_if = ACE_TEXT ("lo"));
+#else
int join (const ACE_INET_Addr &mcast_addr,
int reuse_addr = 1,
const ACE_TCHAR *net_if = 0);
int leave (const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if = 0);
+#endif
// = Event Handler hooks.
virtual int handle_input (ACE_HANDLE handle);
@@ -506,8 +514,8 @@ MCT_Event_Handler::mcast (void)
int
MCT_Event_Handler::find (const char *buf)
{
- size_t size = this->address_vec_.size ();
- size_t i;
+ size_t const size = this->address_vec_.size ();
+ size_t i = 0;
for (i = 0; i < size; ++i)
{
if (ACE_OS::strcasecmp (buf, this->address_vec_[i]->c_str ()) == 0)
@@ -548,7 +556,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;
@@ -672,7 +680,7 @@ MCT_Task::~MCT_Task (void)
int
MCT_Task::open (void *)
{
- MCT_Event_Handler *handler;
+ MCT_Event_Handler *handler = 0;
ACE_INET_Addr addr = this->config_.group_start ();
int groups = this->config_.groups ();
@@ -779,7 +787,9 @@ int producer (MCT_Config &config)
ACE_DEBUG ((LM_INFO, ACE_TEXT ("Starting producer...\n")));
ACE_SOCK_Dgram socket (ACE_sap_any_cast (ACE_INET_Addr &), PF_INET);
//FUZZ: enable check_for_lack_ACE_OS
-
+#if defined (__linux__)
+ socket.set_nic (ACE_TEXT("lo"));
+#endif
// Note that is is IPv4 specific and needs to be changed once
//
if (config.ttl () > 1)
diff --git a/ACE/tests/Multicast_Test_IPV6.cpp b/ACE/tests/Multicast_Test_IPV6.cpp
index 854d1713cad..f5b862ccfbb 100644
--- a/ACE/tests/Multicast_Test_IPV6.cpp
+++ b/ACE/tests/Multicast_Test_IPV6.cpp
@@ -34,7 +34,7 @@
// ============================================================================
//FUZZ: enable check_for_lack_ACE_OS
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/Get_Opt.h"
#include "ace/Vector_T.h"
#include "ace/SOCK_Dgram_Mcast.h"
@@ -560,7 +560,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/Multihomed_INET_Addr_Test.cpp b/ACE/tests/Multihomed_INET_Addr_Test.cpp
index 8c89f1fe7db..100bc588bb3 100644
--- a/ACE/tests/Multihomed_INET_Addr_Test.cpp
+++ b/ACE/tests/Multihomed_INET_Addr_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Multihomed_INET_Addr_Test.cpp
-//
-// = DESCRIPTION
-// Performs several tests on the Multihomed_ACE_INET_Addr class.
-// It creates several IPv4 addresses and checks that the
-// address formed by the class is valid.
-//
-// = AUTHOR
-// Edward Mulholland (emulholl@atl.lmco.com)
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Multihomed_INET_Addr_Test.cpp
+ *
+ * $Id$
+ *
+ * Performs several tests on the Multihomed_ACE_INET_Addr class.
+ * It creates several IPv4 addresses and checks that the
+ * address formed by the class is valid.
+ *
+ *
+ * @author Edward Mulholland (emulholl@atl.lmco.com)
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -24,11 +21,8 @@
#include "ace/Log_Msg.h"
#include "ace/OS_NS_arpa_inet.h"
-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 ("Multihomed_INET_Addr_Test"));
int status = 0; // Innocent until proven guilty
@@ -62,6 +56,7 @@ int run_main (int argc, ACE_TCHAR *argv[])
{
struct in_addr addrv4;
+ ACE_OS::memset ((void *) &addrv4, 0, sizeof addrv4);
ACE_OS::inet_pton (AF_INET, primary_dotted_decimal, &addrv4);
ACE_OS::memcpy (&primary_addr32, &addrv4, sizeof (primary_addr32));
primary_addr32 = ACE_NTOHL(primary_addr32);
@@ -69,6 +64,7 @@ int run_main (int argc, ACE_TCHAR *argv[])
for (i = 0; i < num_secondaries; ++i) {
struct in_addr addrv4;
+ ACE_OS::memset ((void *) &addrv4, 0, sizeof addrv4);
ACE_OS::inet_pton (AF_INET, secondary_dotted_decimals[i], &addrv4);
ACE_OS::memcpy (&secondary_addr32[i], &addrv4, sizeof (primary_addr32));
secondary_addr32[i] = ACE_NTOHL(secondary_addr32[i]);
@@ -466,5 +462,4 @@ int run_main (int argc, ACE_TCHAR *argv[])
ACE_END_TEST;
return status;
-
}
diff --git a/ACE/tests/Multihomed_INET_Addr_Test_IPV6.cpp b/ACE/tests/Multihomed_INET_Addr_Test_IPV6.cpp
index 1607dd81fb2..6047bb0c019 100644
--- a/ACE/tests/Multihomed_INET_Addr_Test_IPV6.cpp
+++ b/ACE/tests/Multihomed_INET_Addr_Test_IPV6.cpp
@@ -1,25 +1,18 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Multihomed_INET_Addr_Test.cpp
-//
-// = DESCRIPTION
-// Performs several tests on the Multihomed_ACE_INET_Addr class.
-// It creates several IPv6 addresses and checks that the
-// address formed by the class is valid.
-//
-// = AUTHOR
-// Edward Mulholland (emulholl@atl.lmco.com)
-// Brian Buesker (bbuesker@qualcomm.com) - Added testing of
-// ACE_Multihomed_INET_Addr class
-// using IPv6 addresses based on
-// Multihomed_INET_Addr_Test.
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Multihomed_INET_Addr_Test_IPV6.cpp
+ *
+ * $Id$
+ *
+ * Performs several tests on the Multihomed_ACE_INET_Addr class.
+ * It creates several IPv6 addresses and checks that the
+ * address formed by the class is valid.
+ *
+ *
+ * @author Edward Mulholland (emulholl@atl.lmco.com) Brian Buesker (bbuesker@qualcomm.com) - Added testing of ACE_Multihomed_INET_Addr class using IPv6 addresses based on Multihomed_INET_Addr_Test.
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
diff --git a/ACE/tests/NDDS_Timer_Test.cpp b/ACE/tests/NDDS_Timer_Test.cpp
new file mode 100644
index 00000000000..7e11daa3ed7
--- /dev/null
+++ b/ACE/tests/NDDS_Timer_Test.cpp
@@ -0,0 +1,179 @@
+//=============================================================================
+/**
+ * @file NDDS_Timer_Test.cpp
+ *
+ * $Id$
+ *
+ * Simple test of NDDS_Timer. Copied from NDDS_Timer_Test.
+ *
+ *
+ * @author Marcel Smit <msmit@remedy.nl>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
+#include "ace/Log_Msg.h"
+#include "ace/Sched_Params.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_unistd.h"
+
+#include <ndds/ndds_cpp.h>
+#include <ndds/clock/clock_highResolution.h>
+
+static
+u_int
+check (const time_t interval, const time_t measured)
+{
+ time_t const threshold = 25 /* percent */;
+
+ time_t const difference =
+ interval > measured ? interval - measured : measured - interval;
+
+ time_t const percentage_difference = difference * 100 / interval;
+
+ if (percentage_difference < threshold)
+ return 0;
+ else
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("The measured time of %Q differs from ")
+ ACE_TEXT ("the interval of %Q by %Q percent.\n"),
+ measured,
+ interval,
+ percentage_difference),
+ 1);
+}
+
+// Does a sanity check of the microseconds vs nanoseconds. They're supposed
+// to represent the same interval.
+static u_int
+check_micro_nano (unsigned long long microinterval, unsigned long long nanointerval)
+{
+ unsigned long long const threshold = 8 /* promille */;
+
+ microinterval *= 1000u;
+ unsigned long long const difference = (microinterval > nanointerval
+ ? (microinterval - nanointerval)
+ : (nanointerval - microinterval));
+ if (nanointerval == 0)
+ {
+ nanointerval = 1; // Prevent divide-by-zero
+ }
+ unsigned long long const promille_difference =
+ difference * 1000 / nanointerval;
+
+ if ((promille_difference < threshold) || (difference < 1500))
+ {
+ return 0;
+ }
+ else
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("The microseconds * 1000 of %Q ")
+ ACE_TEXT ("differs from the nanoseconds of %Q ")
+ ACE_TEXT (" by %Q promille\n"),
+ microinterval,
+ nanointerval,
+ promille_difference),
+ 1);
+}
+
+static
+void
+time_interval (RTIClock *timer,
+ const ACE_Time_Value & interval,
+ RTINtpTime& duration)
+{
+ struct RTINtpTime start_time;
+ struct RTINtpTime finish_time;
+
+ RTINtpTime_setZero(&start_time);
+ RTINtpTime_setZero(&finish_time);
+
+ // Initialize
+ timer->reset(timer);
+
+ // Run the test
+ timer->getTime(timer, &start_time);
+ ACE_OS::sleep (interval);
+ timer->getTime(timer, &finish_time);
+
+ // Measure.
+ RTINtpTime_subtract(duration, finish_time, start_time);
+}
+
+
+static u_int const intervals[] =
+ {0, 1, 10, 100, 1000, 10000, 100000, 1000000, 4000000}; /*usec*/
+
+int
+run_main (int argc, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("NDDS_Timer_Test"));
+
+ RTIClock *timer = RTIHighResolutionClock_new();
+
+ u_int errors = 0;
+
+ u_int iterations = 1;
+
+ ACE_Get_Opt getoptarg (argc, argv, ACE_TEXT ("i:"));
+ for (int c; (c = getoptarg ()) != -1; )
+ {
+ switch (c)
+ {
+ case 'i':
+ iterations = ACE_OS::atoi (getoptarg.opt_arg ());
+ break;
+ }
+ }
+
+ // We don't check for errors if the interval is shorter than this
+ // value because the OS has a finite resolution anyway.
+ static u_int const TIMER_RESOLUTION = 10000;
+
+ for (u_int i = 0; i < sizeof intervals / sizeof (u_int); ++i)
+ {
+ for (u_int j = 0; j < iterations; ++j)
+ {
+ ACE_Time_Value const interval (0, intervals[i]);
+
+ RTINtpTime duration;
+ time_interval (timer, interval, duration);
+
+ unsigned long long microseconds, nanoseconds;
+ int sec;
+ RTINtpTime_unpackToMicrosec (sec, microseconds, duration);
+ RTINtpTime_unpackToNanosec (sec, nanoseconds, duration);
+
+ time_t const interval_usec =
+ interval.sec () * ACE_ONE_SECOND_IN_USECS + interval.usec ();
+ time_t const measured_usec =
+ sec * ACE_ONE_SECOND_IN_USECS + microseconds;
+
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("interval: %: usec, measured: %: usec %s\n"),
+ interval_usec,
+ measured_usec,
+ (intervals[i] <= TIMER_RESOLUTION
+ ? ACE_TEXT (" (interval and measured may differ)")
+ : ACE_TEXT (""))));
+
+ if (intervals[i] > TIMER_RESOLUTION)
+ {
+ errors += check (interval.sec () * ACE_ONE_SECOND_IN_USECS
+ + interval.usec (),
+ sec * ACE_ONE_SECOND_IN_USECS + microseconds);
+ // Don't check for error for intervals below 10 msec.
+ }
+ errors += check_micro_nano (microseconds, nanoseconds);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("NDDS_Timer usec: %Q, nsec: %Q\n"),
+ microseconds,
+ nanoseconds));
+ }
+ }
+
+ ACE_END_TEST;
+ return errors == 0 ? 0 : 1;
+}
diff --git a/ACE/tests/Naming_Test.cpp b/ACE/tests/Naming_Test.cpp
index f4f624a8c63..4981b875c73 100644
--- a/ACE/tests/Naming_Test.cpp
+++ b/ACE/tests/Naming_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Naming_Test.cpp
-//
-// = DESCRIPTION
-// This is a test to illustrate the Naming Services. The test
-// does binds, rebinds, finds, and unbinds on name bindings using
-// the local naming context.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Naming_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test to illustrate the Naming Services. The test
+ * does binds, rebinds, finds, and unbinds on name bindings using
+ * the local naming context.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "randomize.h"
@@ -28,7 +25,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Naming_Test, "$Id$")
+
static char name[BUFSIZ];
static char value[BUFSIZ];
@@ -76,7 +73,7 @@ test_bind (ACE_Naming_Context &ns_context)
ACE_OS::sprintf (type, "%s%d", "type", array [i]);
int bind_result = ns_context.bind (w_name, w_value, type);
- ACE_ASSERT (bind_result != -1);
+ ACE_TEST_ASSERT (bind_result != -1);
}
}
@@ -92,7 +89,7 @@ test_find_failure (ACE_Naming_Context &ns_context)
for (size_t i = 0; i < ACE_NS_MAX_ENTRIES; i++)
{
int resolve = ns_context.resolve (w_name, w_value, l_type);
- ACE_ASSERT (resolve == -1);
+ ACE_TEST_ASSERT (resolve == -1);
}
}
@@ -115,7 +112,7 @@ test_rebind (ACE_Naming_Context &ns_context)
ACE_OS::sprintf (type, "%s%d", "type", -array[i]);
int rebind = ns_context.rebind (w_name, w_value, type);
- ACE_ASSERT (rebind != -1);
+ ACE_TEST_ASSERT (rebind != -1);
}
}
@@ -133,7 +130,7 @@ test_unbind (ACE_Naming_Context &ns_context)
ACE_OS::sprintf (name, "%s%d", "name", array[i]);
ACE_NS_WString w_name (name);
int unbind = ns_context.unbind (w_name);
- ACE_ASSERT (unbind != -1);
+ ACE_TEST_ASSERT (unbind != -1);
}
}
@@ -179,7 +176,7 @@ test_find (ACE_Naming_Context &ns_context, int sign, int result)
if (l_value)
{
- ACE_ASSERT (w_value == val);
+ ACE_TEST_ASSERT (w_value == val);
if (ns_context.name_options ()->debug ())
{
if (type_out)
@@ -193,7 +190,7 @@ test_find (ACE_Naming_Context &ns_context, int sign, int result)
if (type_out)
{
- ACE_ASSERT (ACE_OS::strcmp (type_out, temp_type) == 0);
+ ACE_TEST_ASSERT (ACE_OS::strcmp (type_out, temp_type) == 0);
delete[] type_out;
}
}
diff --git a/ACE/tests/Network_Adapters_Test.cpp b/ACE/tests/Network_Adapters_Test.cpp
index d1488160643..4d5aea82d7b 100644
--- a/ACE/tests/Network_Adapters_Test.cpp
+++ b/ACE/tests/Network_Adapters_Test.cpp
@@ -1,21 +1,16 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Network_Adapters_Test.cpp
-//
-// = DESCRIPTION
-// Tests the ICMP-echo support in ACE.
-//
-// = AUTHOR
-// Robert S. Iakobashvili <coroberti@gmail.com> <coroberti@walla.co.il>
-// Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Network_Adapters_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests the ICMP-echo support in ACE.
+ *
+ *
+ * @author Robert S. Iakobashvili <coroberti@gmail.com> <coroberti@walla.co.il> Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com>
+ */
+//=============================================================================
+
// We need this to be able to check for ACE_HAS_ICMP_SUPPORT
#include "ace/config-all.h"
@@ -36,10 +31,6 @@
#include "Network_Adapters_Test.h"
-ACE_RCSID (tests,
- Network_Adapters_Test,
- "$Id$")
-
/**
* There are two major uses of the functionality:
*
@@ -71,7 +62,7 @@ ACE_RCSID (tests,
*
* -p IPv4 addresses of the remote CEs, which we are going to check
* (purpose 2), or they are 3rd points for the purpose 1,
- * e.g. “-p 192.168.5.120: 192.168.5.122: 192.168.5.125
+ * e.g. -p 192.168.5.120: 192.168.5.122: 192.168.5.125
*
* -w milliseconds to wait for echo-reply, on lan 100-200 msec, on
* WAN may be 2000-5000 msec, for GPRS may reach 10000 - 20000
@@ -564,25 +555,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..f5c8e9121ed 100644
--- a/ACE/tests/Network_Adapters_Test.h
+++ b/ACE/tests/Network_Adapters_Test.h
@@ -1,23 +1,18 @@
// -*- C++ -*-
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Network_Adapters_Test.h
-//
-// = DESCRIPTION
-// Definitions for Network_Adapters_Test.cpp.
-//
-// = AUTHOR
-// Robert S. Iakobashvili <roberti@go-WLAN.com> <coroberti@walla.co.il>
-// Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com> made aceing
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Network_Adapters_Test.h
+ *
+ * $Id$
+ *
+ * Definitions for Network_Adapters_Test.cpp.
+ *
+ *
+ * @author Robert S. Iakobashvili <roberti@go-WLAN.com> <coroberti@walla.co.il> Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com> made aceing
+ */
+//=============================================================================
+
#ifndef ACE_NETWORK_ADAPTERS_TEST_H
#define ACE_NETWORK_ADAPTERS_TEST_H
@@ -171,7 +166,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..f32fdefb405 100644
--- a/ACE/tests/New_Fail_Test.cpp
+++ b/ACE/tests/New_Fail_Test.cpp
@@ -1,34 +1,31 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// New_Fail_Test.cpp
-//
-// = DESCRIPTION
-// Checks to be sure that a failed ACE_NEW[_RETURN | _NORETURN] doesn't end
-// up throwing an exception up to the caller.
-//
-// Note that this test doesn't get a real attempt on platforms which:
-// 1. Are known to throw exceptions when 'new' runs out of resources,
-// 2. Are built with exceptions disabled.
-// In these cases, the test puts a message in the log noting that a failed
-// new will throw an exception, and trust that the user accepts that risk.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file New_Fail_Test.cpp
+ *
+ * $Id$
+ *
+ * Checks to be sure that a failed ACE_NEW[_RETURN | _NORETURN] doesn't end
+ * up throwing an exception up to the caller.
+ *
+ * Note that this test doesn't get a real attempt on platforms which:
+ * 1. Are known to throw exceptions when 'new' runs out of resources,
+ * 2. Are built with exceptions disabled.
+ * In these cases, the test puts a message in the log noting that a failed
+ * new will throw an exception, and trust that the user accepts that risk.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Log_Msg.h"
#include "ace/OS_Memory.h"
#include "ace/CORBA_macros.h"
-ACE_RCSID(tests, New_Fail_Test, "$Id$")
+
#if (!defined (__SUNPRO_CC) && !defined (__GNUG__)) || \
defined (ACE_HAS_EXCEPTIONS)
@@ -117,7 +114,7 @@ run_main (int, ACE_TCHAR *[])
}
else
{
- ACE_ASSERT (blocks[i] == 0);
+ ACE_TEST_ASSERT (blocks[i] == 0);
if (errno == ENOMEM)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("ACE_NEW failed properly at block %d\n"),
@@ -128,7 +125,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
@@ -152,7 +149,7 @@ run_main (int, ACE_TCHAR *[])
}
else
{
- ACE_ASSERT (blocks[i] == 0);
+ ACE_TEST_ASSERT (blocks[i] == 0);
if (errno == ENOMEM)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("ACE_NEW_RETURN failed properly at block %d\n"),
@@ -163,7 +160,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--];
@@ -185,7 +182,7 @@ run_main (int, ACE_TCHAR *[])
}
else
{
- ACE_ASSERT (blocks[i] == 0);
+ ACE_TEST_ASSERT (blocks[i] == 0);
if (errno == ENOMEM)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("ACE_NEW_NORETURN failed properly at block %d\n"),
@@ -196,7 +193,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/NonBlocking_Conn_Test.cpp b/ACE/tests/NonBlocking_Conn_Test.cpp
index 80e25c63cfb..fff840fc029 100644
--- a/ACE/tests/NonBlocking_Conn_Test.cpp
+++ b/ACE/tests/NonBlocking_Conn_Test.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// NonBlocking_Conn_Test.cpp
-//
-// = DESCRIPTION
-// This test checks for the proper working of the following:
-// - blocking connections
-// - blocking connections with timeouts
-// - non-blocking connections
-// - non-blocking connections without waiting for completions
-// - non-blocking connections with timeouts
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file NonBlocking_Conn_Test.cpp
+ *
+ * $Id$
+ *
+ * This test checks for the proper working of the following:
+ * - blocking connections
+ * - blocking connections with timeouts
+ * - non-blocking connections
+ * - non-blocking connections without waiting for completions
+ * - non-blocking connections with timeouts
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "NonBlocking_Conn_Test.h"
@@ -30,14 +27,22 @@
#include "ace/WFMO_Reactor.h"
#include "ace/Get_Opt.h"
-static int test_select_reactor = 1;
-static int test_tp_reactor = 1;
-static int test_wfmo_reactor = 1;
+static bool test_select_reactor = true;
+static bool test_tp_reactor = true;
+static bool test_wfmo_reactor = true;
+static int result = 0;
-Svc_Handler::Svc_Handler (void)
+Svc_Handler::Svc_Handler (bool is_ref_counted)
: status_ (0),
- completion_counter_ (0)
+ completion_counter_ (0),
+ is_ref_counted_ (is_ref_counted)
{
+ if (this->is_ref_counted_)
+ {
+ // Enable reference counting on the event handler.
+ this->reference_counting_policy ().value (
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+ }
}
void
@@ -51,30 +56,44 @@ Svc_Handler::connection_status (Connection_Status &status,
int
Svc_Handler::open (void *)
{
- *this->status_ = SUCCEEDED;
+ *this->status_ = Svc_Handler::Conn_SUCCEEDED;
(*this->completion_counter_)++;
+ ACE_TCHAR buf[BUFSIZ];
+ ACE_INET_Addr raddr;
+ this->peer ().get_remote_addr (raddr);
+ raddr.addr_to_string (buf, sizeof buf);
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Connection to %s is opened\n"),
+ buf));
+
return 0;
}
int
-Svc_Handler::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
+Svc_Handler::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask mask)
{
- *this->status_ = FAILED;
+ *this->status_ = Svc_Handler::Conn_FAILED;
(*this->completion_counter_)++;
- return ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::handle_close (handle,
- mask);
+ // Only if there is no reference counting can call parent's
+ // handle_close() as it does plain 'delete this'.
+ if (!this->is_ref_counted_)
+ {
+ typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> super;
+
+ return super::handle_close (handle, mask);
+ }
+
+ return 0;
}
-typedef ACE_Connector<Svc_Handler,
- ACE_SOCK_CONNECTOR>
- CONNECTOR;
+typedef ACE_Connector<Svc_Handler, ACE_SOCK_CONNECTOR> CONNECTOR;
static const char* hosts[] = {
"www.russiantvguide.com:80",
- "www.pakarmy.gov.pk:80",
+ "news.bbc.co.uk:80",
"www.cnn.com:80",
"www.waca.com.au:80",
"www.uganda.co.ug:80",
@@ -82,15 +101,17 @@ static const char* hosts[] = {
"www.dre.vanderbilt.edu:80",
"www.dhm.gov.np:80",
"www.msn.com:80",
- "www.presidencymaldives.gov.mv:80" };
+ "www.presidencymaldives.gov.mv:80"
+};
static int number_of_connections = 0;
+static bool with_ref_counting = false;
void
test_connect (ACE_Reactor &reactor,
ACE_INET_Addr *addresses,
ACE_Synch_Options &synch_options,
- int complete_nonblocking_connections)
+ Svc_Handler::Completion_Status complete_nonblocking_connections)
{
CONNECTOR connector (&reactor);
@@ -106,7 +127,7 @@ test_connect (ACE_Reactor &reactor,
for (i = 0; i < number_of_connections; ++i)
{
svc_handlers[i] =
- new Svc_Handler;
+ new Svc_Handler (with_ref_counting);
svc_handlers[i]->connection_status (connection_status[i],
completion_counter);
@@ -119,9 +140,9 @@ test_connect (ACE_Reactor &reactor,
synch_options);
if (!synch_options[ACE_Synch_Options::USE_REACTOR])
- ACE_ASSERT (completion_counter == number_of_connections);
+ ACE_TEST_ASSERT (completion_counter == number_of_connections);
- if (complete_nonblocking_connections)
+ if (complete_nonblocking_connections != Svc_Handler::Comp_NO)
{
while (completion_counter != number_of_connections)
{
@@ -139,12 +160,18 @@ test_connect (ACE_Reactor &reactor,
1);
ACE_DEBUG ((LM_DEBUG,
- "Connection to %s %s\n",
+ ACE_TEXT ("Connection to %s %s\n"),
buffer,
- connection_status[i] == Svc_Handler::SUCCEEDED ?
- "succeeded" : "failed"));
+ connection_status[i] == Svc_Handler::Conn_SUCCEEDED ?
+ ACE_TEXT("succeeded") : ACE_TEXT("failed")));
+
+ ACE_Event_Handler_var release_guard;
+ if (with_ref_counting)
+ {
+ release_guard.reset (svc_handlers[i]);
+ }
- if (connection_status[i] == Svc_Handler::SUCCEEDED)
+ if (connection_status[i] == Svc_Handler::Conn_SUCCEEDED)
{
svc_handlers[i]->close ();
}
@@ -157,11 +184,11 @@ test_connect (ACE_Reactor &reactor,
void
test (ACE_Reactor_Impl *impl)
{
- size_t nr_names = sizeof hosts / sizeof (char *);
- ACE_INET_Addr *addresses =
- new ACE_INET_Addr[nr_names];
+ size_t const nr_names = sizeof hosts / sizeof (char *);
+ ACE_INET_Addr *addresses = new ACE_INET_Addr[nr_names];
+ number_of_connections = 0;
- for (size_t i = 0, number_of_connections = 0; i < nr_names; ++i)
+ for (size_t i = 0; i < nr_names; ++i)
{
if (addresses[number_of_connections].set (hosts[i]) == 0)
++number_of_connections;
@@ -171,65 +198,60 @@ test (ACE_Reactor_Impl *impl)
ACE_TEXT_CHAR_TO_TCHAR (hosts[i])));
}
- ACE_Reactor reactor (impl,
- 1);
-
- int complete_nonblocking_connections = 1;
- int dont_wait_for_nonblocking_connections = 0;
- int ignored = 99;
+ ACE_Reactor reactor (impl, 1);
ACE_Synch_Options blocking_connect =
ACE_Synch_Options::defaults;
ACE_DEBUG ((LM_DEBUG,
- "\nBlocking connections...\n\n"));
+ "Blocking connections...\n"));
test_connect (reactor,
addresses,
blocking_connect,
- ignored);
+ Svc_Handler::Comp_IGNORE);
blocking_connect.set (ACE_Synch_Options::USE_TIMEOUT,
ACE_Time_Value (0, 50 * 1000));
ACE_DEBUG ((LM_DEBUG,
- "\nBlocking connections (with timeouts)...\n\n"));
+ "Blocking connections (with timeouts)...\n"));
test_connect (reactor,
addresses,
blocking_connect,
- ignored);
+ Svc_Handler::Comp_IGNORE);
ACE_Synch_Options nonblocking_connect
(ACE_Synch_Options::USE_REACTOR);
ACE_DEBUG ((LM_DEBUG,
- "\nNon-blocking connections...\n\n"));
+ "Non-blocking connections...\n"));
test_connect (reactor,
addresses,
nonblocking_connect,
- complete_nonblocking_connections);
+ Svc_Handler::Comp_YES);
ACE_DEBUG ((LM_DEBUG,
- "\nNon-blocking connections (without waiting for completions)...\n\n"));
+ "Non-blocking connections (without waiting for completions)...\n"));
test_connect (reactor,
addresses,
nonblocking_connect,
- dont_wait_for_nonblocking_connections);
+ Svc_Handler::Comp_NO);
nonblocking_connect.set (ACE_Synch_Options::USE_REACTOR |
ACE_Synch_Options::USE_TIMEOUT,
ACE_Time_Value (0, 500 * 1000));
ACE_DEBUG ((LM_DEBUG,
- "\nNon-blocking connections (with timeouts)...\n\n"));
+ "Non-blocking connections (with timeouts)...\n"));
test_connect (reactor,
addresses,
nonblocking_connect,
- complete_nonblocking_connections);
+ Svc_Handler::Comp_YES);
delete[] addresses;
}
@@ -279,24 +301,37 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_START_TEST (ACE_TEXT ("NonBlocking_Conn_Test"));
// Validate options.
- int result =
- parse_args (argc, argv);
+ result = parse_args (argc, argv);
if (result != 0)
return result;
if (test_select_reactor)
{
ACE_DEBUG ((LM_DEBUG,
- "\n\nTesting Select Reactor....\n\n"));
+ "Testing Select Reactor....\n"));
+
+ with_ref_counting = false;
+ test (new ACE_Select_Reactor);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Testing Select Reactor (ref counted)....\n"));
+ with_ref_counting = true;
test (new ACE_Select_Reactor);
}
if (test_tp_reactor)
{
ACE_DEBUG ((LM_DEBUG,
- "\n\nTesting TP Reactor....\n\n"));
+ "Testing TP Reactor....\n"));
+ with_ref_counting = false;
+ test (new ACE_TP_Reactor);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Testing TP Reactor (ref counted)....\n"));
+
+ with_ref_counting = true;
test (new ACE_TP_Reactor);
}
@@ -305,8 +340,15 @@ run_main (int argc, ACE_TCHAR *argv[])
if (test_wfmo_reactor)
{
ACE_DEBUG ((LM_DEBUG,
- "\n\nTesting WFMO Reactor....\n\n"));
+ "Testing WFMO Reactor....\n"));
+ with_ref_counting = false;
+ test (new ACE_WFMO_Reactor);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Testing WFMO Reactor (ref counted)....\n"));
+
+ with_ref_counting = true;
test (new ACE_WFMO_Reactor);
}
@@ -314,6 +356,5 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_END_TEST;
- return 0;
+ return result;
}
-
diff --git a/ACE/tests/NonBlocking_Conn_Test.h b/ACE/tests/NonBlocking_Conn_Test.h
index 77746238226..505bccc3ad6 100644
--- a/ACE/tests/NonBlocking_Conn_Test.h
+++ b/ACE/tests/NonBlocking_Conn_Test.h
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// NonBlocking_Conn_Test.cpp
-//
-// = DESCRIPTION
-// This test checks for the proper working of the following:
-// - blocking connections
-// - blocking connections with timeouts
-// - non-blocking connections
-// - non-blocking connections without waiting for completions
-// - non-blocking connections with timeouts
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file NonBlocking_Conn_Test.h
+ *
+ * $Id$
+ *
+ * This test checks for the proper working of the following:
+ * - blocking connections
+ * - blocking connections with timeouts
+ * - non-blocking connections
+ * - non-blocking connections without waiting for completions
+ * - non-blocking connections with timeouts
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
#ifndef NONBLOCKING_CONN_TEST_H
#define NONBLOCKING_CONN_TEST_H
@@ -33,11 +30,18 @@ public:
enum Connection_Status
{
- SUCCEEDED,
- FAILED
+ Conn_SUCCEEDED,
+ Conn_FAILED
+ };
+
+ enum Completion_Status
+ {
+ Comp_YES,
+ Comp_NO,
+ Comp_IGNORE
};
- Svc_Handler (void);
+ Svc_Handler (bool is_ref_counted = false);
void connection_status (Connection_Status &status,
int &completion_counter);
@@ -49,6 +53,7 @@ public:
Connection_Status *status_;
int *completion_counter_;
+ bool is_ref_counted_;
};
#endif /* NONBLOCKING_CONN_TEST_H */
diff --git a/ACE/tests/Notification_Queue_Unit_Test.cpp b/ACE/tests/Notification_Queue_Unit_Test.cpp
index 98d19f61fef..6b7372b965f 100644
--- a/ACE/tests/Notification_Queue_Unit_Test.cpp
+++ b/ACE/tests/Notification_Queue_Unit_Test.cpp
@@ -12,9 +12,6 @@
#include "test_config.h"
#include "ace/Notification_Queue.h"
-ACE_RCSID(tests,
- Notification_Queue_Unit_Test, "$Id$")
-
#define TEST_LIST \
ACTION(null_test) \
ACTION(pop_returns_element_pushed) \
diff --git a/ACE/tests/Notify_Performance_Test.cpp b/ACE/tests/Notify_Performance_Test.cpp
index 673bb7bee46..ced0ca0d9a4 100644
--- a/ACE/tests/Notify_Performance_Test.cpp
+++ b/ACE/tests/Notify_Performance_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Notify_Performance_Test.cpp
-//
-// = DESCRIPTION
-// This test is used to time the notification mechanisms of the
-// ACE_Reactors. Both the WFMO_Reactor and Select_Reactor can be
-// tested. The notify() mechanism can also be tested with or
-// without data.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Notify_Performance_Test.cpp
+ *
+ * $Id$
+ *
+ * This test is used to time the notification mechanisms of the
+ * ACE_Reactors. Both the WFMO_Reactor and Select_Reactor can be
+ * tested. The notify() mechanism can also be tested with or
+ * without data.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Profile_Timer.h"
@@ -30,7 +27,7 @@
#include "ace/Auto_Ptr.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(tests, Notify_Performance_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -56,8 +53,8 @@ static int opt_pass_notify_data = 0;
class Handler : public ACE_Event_Handler
{
public:
+ /// The Handler callbacks.
virtual int handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE);
- // The Handler callbacks.
};
int
diff --git a/ACE/tests/OS_Test.cpp b/ACE/tests/OS_Test.cpp
index 632685a96bc..1e664fac7ff 100644
--- a/ACE/tests/OS_Test.cpp
+++ b/ACE/tests/OS_Test.cpp
@@ -14,6 +14,11 @@
// ============================================================================
#include "test_config.h"
+#include "ace/ACE.h"
+//FUZZ: disable check_for_include_OS_h
+#include "ace/OS.h"
+//FUZZ: enable check_for_include_OS_h
+
#include "ace/OS_NS_math.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_strings.h"
@@ -25,8 +30,9 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_ctype.h"
+#include "ace/OS_NS_netdb.h"
+
-ACE_RCSID(tests, OS_Test, "$Id$")
#undef THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL
#define THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL(X) \
@@ -34,16 +40,13 @@ ACE_RCSID(tests, OS_Test, "$Id$")
? static_cast<void>(0) \
: ACE_VERSIONED_NAMESPACE_NAME::__ace_assert(__FILE__, __LINE__, ACE_TEXT_CHAR_TO_TCHAR (#X)))
-// Simple helper to avoid comparing floating point values with ==
-template <typename T> bool is_equal (const T& a, const T& b)
-{
- return !((a < b) || (a > b));
-}
-
// Test ACE_OS::access() to be sure a file's existence is correctly noted.
int
access_test (void)
{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Testing access method\n")));
+
int test_status = 0;
int status = ACE_OS::access (ACE_TEXT ("missing_file.txt"), F_OK);
@@ -67,7 +70,7 @@ access_test (void)
int
rename_test (void)
{
-#if defined (ACE_LACKS_RENAME) || defined (ACE_VXWORKS)
+#if defined (ACE_VXWORKS)
// On VxWorks only some filesystem drivers support rename
// and as we do not know which is used, skip the test here
ACE_ERROR_RETURN ((LM_INFO,
@@ -174,7 +177,7 @@ rename_test (void)
}
return result;
-#endif /* ACE_LACKS_RENAME */
+#endif /* ACE_VXWORKS */
}
//
@@ -645,6 +648,41 @@ snprintf_test (void)
}
static int
+getpwnam_r_test (void)
+{
+ int result = 0;
+
+#if !defined (ACE_LACKS_PWD_FUNCTIONS)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Testing getpwnam_r\n")));
+
+ struct passwd pwd;
+ struct passwd *pwd_ptr;
+ char buf[1024];
+
+ const char* login = getlogin ();
+ if (login == 0)
+ login = "root";
+
+ if (ACE_OS::getpwnam_r (login,
+ &pwd,
+ buf,
+ sizeof (buf),
+ &pwd_ptr) != 0)
+ {
+ result = 1;
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("getpwnam_r() failed\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" User '%s' has uid=%d and gid=%d\n"),
+ pwd_ptr->pw_name, pwd_ptr->pw_uid, pwd_ptr->pw_gid));
+ }
+#endif
+
+ return result;
+}
+
+static int
ctime_r_test (void)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Testing ctime_r\n")));
@@ -906,6 +944,34 @@ string_convert_test (void)
#endif /* ACE_HAS_WCHAR */
}
+// Test ACE_OS::strsignal()
+int
+strsignal_test (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Testing strsignal method\n")));
+
+ int test_status = 0;
+
+ const char* result = 0;
+
+ for (int i=-1; i < (ACE_NSIG + 1); ++i)
+ {
+ result = ACE_OS::strsignal (i);
+ if (result == 0)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("strsignal returned null\n")));
+ test_status = 1;
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" Sig #%d: %C\n"), i, result));
+ }
+ }
+
+ return test_status;
+}
+
// Test the methods for getting cpu info
int
cpu_info_test (void)
@@ -1106,6 +1172,60 @@ ace_ctype_test (void)
}
int
+ceilf_test (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Testing ceilf method\n")));
+
+ float values[] = {-2.5, -1.5, 1.5, 2.5};
+ float results[] = {-2.0, -1.0, 2.0, 3.0};
+ float result = 0.0;
+ int error_count = 0;
+
+ for (size_t i = 0 ; i < sizeof (values) / sizeof (float) ; i++)
+ {
+ result = ACE_OS::ceil (values [i]);
+ if (ACE::is_inequal(result, results[i]))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ceilf error: input %.1F, output %1F, expected %1F\n"),
+ values [i],
+ result,
+ results [i]));
+ ++error_count;
+ }
+ }
+
+ return error_count;
+}
+
+int
+floorf_test (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Testing floorf method\n")));
+
+ float values[] = {-2.5, -1.5, 1.5, 2.5};
+ float results[] = {-3.0, -2.0, 1.0, 2.0};
+ float result = 0.0;
+ int error_count = 0;
+
+ for (size_t i = 0 ; i < sizeof (values) / sizeof (float) ; i++)
+ {
+ result = ACE_OS::floor (values [i]);
+ if (ACE::is_inequal(result, results[i]))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("floorf error: input %.1F, output %1F, expected %1F\n"),
+ values [i], result, results [i]));
+ ++error_count;
+ }
+ }
+
+ return error_count;
+}
+
+int
ceil_test (void)
{
ACE_DEBUG ((LM_DEBUG,
@@ -1119,10 +1239,14 @@ ceil_test (void)
for (size_t i = 0 ; i < sizeof (values) / sizeof (double) ; i++)
{
result = ACE_OS::ceil (values [i]);
- if (!is_equal(result, results[i]))
+ if (ACE::is_inequal(result, results[i]))
{
- ACE_ERROR ((LM_ERROR, ACE_TEXT ("ceil error: input %.1F, output %1F, expected %1F\n"), values [i], result, results [i]));
- error_count++;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ceil error: input %.1F, output %1F, expected %1F\n"),
+ values [i],
+ result,
+ results [i]));
+ ++error_count;
}
}
@@ -1143,10 +1267,68 @@ floor_test (void)
for (size_t i = 0 ; i < sizeof (values) / sizeof (double) ; i++)
{
result = ACE_OS::floor (values [i]);
- if (!is_equal(result, results[i]))
+ if (ACE::is_inequal(result, results[i]))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("floor error: input %.1F, output %1F, expected %1F\n"),
+ values [i],
+ result,
+ results [i]));
+ ++error_count;
+ }
+ }
+
+ return error_count;
+}
+
+int
+ceill_test (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Testing ceill method\n")));
+
+ long double values[] = {-2.5, -1.5, 1.5, 2.5};
+ long double results[] = {-2.0, -1.0, 2.0, 3.0};
+ long double result = 0.0;
+ int error_count = 0;
+
+ for (size_t i = 0 ; i < sizeof (values) / sizeof (long double) ; i++)
+ {
+ result = ACE_OS::ceil (values [i]);
+ if (ACE::is_inequal(result, results[i]))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ceil error: input %.1F, output %1F, expected %1F\n"),
+ values [i],
+ result,
+ results [i]));
+ ++error_count;
+ }
+ }
+
+ return error_count;
+}
+
+int
+floorl_test (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Testing floorl method\n")));
+
+ long double values[] = {-2.5, -1.5, 1.5, 2.5};
+ long double results[] = {-3.0, -2.0, 1.0, 2.0};
+ long double result = 0.0;
+ int error_count = 0;
+
+ for (size_t i = 0 ; i < sizeof (values) / sizeof (long double) ; i++)
+ {
+ result = ACE_OS::floor (values [i]);
+ if (ACE::is_inequal(result, results[i]))
{
- ACE_ERROR ((LM_ERROR, ACE_TEXT ("floor error: input %.1F, output %1F, expected %1F\n"), values [i], result, results [i]));
- error_count++;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("floor error: input %.1F, output %1F, expected %1F\n"),
+ values [i], result, results [i]));
+ ++error_count;
}
}
@@ -1160,7 +1342,7 @@ log2_test (void)
ACE_TEXT ("Testing log2 method\n")));
double values[] = {1.0, 2.0, 4.0, 8.0, 1048576.0};
- int results[] = {0, 1, 2, 3, 20};
+ int const results[] = {0, 1, 2, 3, 20};
int result = 0;
int error_count = 0;
@@ -1170,7 +1352,7 @@ log2_test (void)
if (result != results [i])
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("Log2 error: input %.1F, output %d, expected %d\n"), values [i], result, results [i]));
- error_count++;
+ ++error_count;
}
}
@@ -1199,24 +1381,42 @@ run_main (int, ACE_TCHAR *[])
status = result;
#endif /* !ACE_LACKS_VSNPRINTF || ACE_HAS_TRIO */
+ if ((result = getpwnam_r_test ()) != 0)
+ status = result;
+
if ((result = ctime_r_test ()) != 0)
status = result;
if ((result = string_strsncpy_test ()) != 0)
status = result;
+ if ((result = strsignal_test ()) != 0)
+ status = result;
+
if ((result = cpu_info_test ()) != 0)
status = result;
if ((result = pagesize_test ()) != 0)
status = result;
+ if ((result = ceilf_test ()) != 0)
+ status = result;
+
+ if ((result = floorf_test ()) != 0)
+ status = result;
+
if ((result = ceil_test ()) != 0)
status = result;
if ((result = floor_test ()) != 0)
status = result;
+ if ((result = ceill_test ()) != 0)
+ status = result;
+
+ if ((result = floorl_test ()) != 0)
+ status = result;
+
if ((result = log2_test ()) != 0)
status = result;
diff --git a/ACE/tests/Object_Manager_Flipping_Test.cpp b/ACE/tests/Object_Manager_Flipping_Test.cpp
index 876fafe790c..78bb5f91d18 100644
--- a/ACE/tests/Object_Manager_Flipping_Test.cpp
+++ b/ACE/tests/Object_Manager_Flipping_Test.cpp
@@ -1,26 +1,23 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Object_Manager_Flipping_Test.cpp
-//
-// = DESCRIPTION
-
-// Tests the basic function of the ACE_Service_Config in scenarios
-// where the ACE_Object_Manager is being
-// flipped. i.e. ACE::init/ACE::fini() are called in sequence
-// (which can occur with loading DLLs). More specifically we test
-// that the OM correctly controlls the lifecycle of the default SC
-// instance, which is pointed to by a TSS pointer.
-//
-// = AUTHOR
-// Iliyan Jeliazkov <iliyan@ociweb.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Object_Manager_Flipping_Test.cpp
+ *
+ * $Id$
+ *
+
+ * Tests the basic function of the ACE_Service_Config in scenarios
+ * where the ACE_Object_Manager is being
+ * flipped. i.e. ACE::init/ACE::fini() are called in sequence
+ * (which can occur with loading DLLs). More specifically we test
+ * that the OM correctly controlls the lifecycle of the default SC
+ * instance, which is pointed to by a TSS pointer.
+ *
+ *
+ * @author Iliyan Jeliazkov <iliyan@ociweb.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Object_Manager.h"
@@ -29,7 +26,7 @@
#include "ace/Service_Config.h"
#include "ace/Intrusive_Auto_Ptr.h"
-ACE_RCSID(tests, Object_Manager_Flipping_Test, "$Id$")
+
static u_int *ip;
@@ -81,14 +78,14 @@ int run_main (int, ACE_TCHAR *[])
// Obtain a SC instance which will be later used to compare with others.
p1 = ACE_Service_Config::instance ();
- // ACE_ASSERT uses Log_Msg::instance() and needs to be done only
+ // ACE_TEST_ASSERT uses Log_Msg::instance() and needs to be done only
// after ACE_START_TEST
// Additional ACE::init() should not have changed the context
- ACE_ASSERT (p0 == p1);
+ ACE_TEST_ASSERT (p0 == p1);
// It should appear open
- ACE_ASSERT (!p0->is_opened ());
+ ACE_TEST_ASSERT (!p0->is_opened ());
ACE_END_TEST;
@@ -106,7 +103,7 @@ int run_main (int, ACE_TCHAR *[])
if (ACE_Service_Config::instance ()->is_opened ())
++errors;
- // Not using ACE_ASSERT because ACE is not initialized yet.
+ // Not using ACE_TEST_ASSERT because ACE is not initialized yet.
{
ACE::init();
@@ -114,10 +111,10 @@ int run_main (int, ACE_TCHAR *[])
ACE_Intrusive_Auto_Ptr<ACE_Service_Gestalt> p2 (ACE_Service_Config::instance ());
- // ACE_ASSERT uses Log_Msg::instance() and needs to be done only
+ // ACE_TEST_ASSERT uses Log_Msg::instance() and needs to be done only
// after ACE_START_TEST
// An attempt to dereference should be fine.
- ACE_ASSERT (!p2->is_opened ());
+ ACE_TEST_ASSERT (!p2->is_opened ());
ACE_END_TEST;
ACE::fini(); // Flipped twice
diff --git a/ACE/tests/Object_Manager_Test.cpp b/ACE/tests/Object_Manager_Test.cpp
index 79cd94c8ccd..65e033e64e1 100644
--- a/ACE/tests/Object_Manager_Test.cpp
+++ b/ACE/tests/Object_Manager_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Object_Manager_Test.cpp
-//
-// = DESCRIPTION
-// Tests the basic functions of the ACE_Object_Manager.
-//
-// = AUTHOR
-// David L. Levine <levine@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Object_Manager_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests the basic functions of the ACE_Object_Manager.
+ *
+ *
+ * @author David L. Levine <levine@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Object_Manager.h"
#include "ace/OS_Memory.h"
#include "ace/ACE.h"
-ACE_RCSID(tests, Object_Manager_Test, "$Id$")
+
static u_int *ip;
diff --git a/ACE/tests/Obstack_Test.cpp b/ACE/tests/Obstack_Test.cpp
index e6539f32b3f..ee10ff8e86a 100644
--- a/ACE/tests/Obstack_Test.cpp
+++ b/ACE/tests/Obstack_Test.cpp
@@ -1,27 +1,23 @@
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Obtack_Test.cpp
-//
-// = DESCRIPTION
-// Checks the functionality of ACE_Obstack<T>
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Obstack_Test.cpp
+ *
+ * $Id$
+ *
+ * Checks the functionality of ACE_Obstack<T>
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
#include "ace/Obstack.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(tests, Obstack_Test, "$Id$")
+
int run_main (int, ACE_TCHAR *[])
diff --git a/ACE/tests/OrdMultiSet_Test.cpp b/ACE/tests/OrdMultiSet_Test.cpp
index 279fd8c5aef..e67728c3164 100644
--- a/ACE/tests/OrdMultiSet_Test.cpp
+++ b/ACE/tests/OrdMultiSet_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// OrdMultiSet_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the <ACE_Ordered_MultiSet> and
-// <ACE_Ordered_MultiSet_Iterator> class templates, instantiating
-// them with type int. No command line arguments are needed to run
-// the test.
-//
-// = AUTHOR
-// Chris Gill <cdgill@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file OrdMultiSet_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the <ACE_Ordered_MultiSet> and
+ * <ACE_Ordered_MultiSet_Iterator> class templates, instantiating
+ * them with type int. No command line arguments are needed to run
+ * the test.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu>
+ */
+//=============================================================================
+
// Note, for this test the config.h file *must* come first!
#include "ace/config-all.h"
@@ -25,7 +22,7 @@
#include "test_config.h"
#include "ace/Containers.h"
-ACE_RCSID(tests, OrdMultiSet_Test, "$Id$")
+
int
run_main (int, ACE_TCHAR *[])
diff --git a/ACE/tests/Pipe_Test.cpp b/ACE/tests/Pipe_Test.cpp
index a3d2175a009..1863eaa5776 100644
--- a/ACE/tests/Pipe_Test.cpp
+++ b/ACE/tests/Pipe_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Pipe_Test.cpp
-//
-// = DESCRIPTION
-// Tests the construction of multiple pipes in a process.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Pipe_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests the construction of multiple pipes in a process.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Pipe.h"
@@ -25,8 +22,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Pipe_Test, "$Id$")
-
// Indicates whether we should close the pipe or not.
static int close_pipe = 1;
@@ -82,10 +77,10 @@ open_pipe (ACE_Pipe &pipe,
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("opening %C\n"), name));
int result = pipe.open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
result = pipe.read_handle () != ACE_INVALID_HANDLE
&& pipe.write_handle () != ACE_INVALID_HANDLE;
- ACE_ASSERT (result == 1);
+ ACE_TEST_ASSERT (result == 1);
if (close_pipe)
pipe.close ();
diff --git a/ACE/tests/Priority_Buffer_Test.cpp b/ACE/tests/Priority_Buffer_Test.cpp
index 074ffce90e7..c92e7a51fec 100644
--- a/ACE/tests/Priority_Buffer_Test.cpp
+++ b/ACE/tests/Priority_Buffer_Test.cpp
@@ -1,30 +1,26 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Priority_Buffer_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test to illustrate the priority mechanism of
-// <ACE_Message_Queue>s. The producer uses an <ACE_Message_Queue>
-// to enqueue a bunch of messages with different priorities which
-// are then dequeued by the consumer.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Priority_Buffer_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test to illustrate the priority mechanism of
+ * <ACE_Message_Queue>s. The producer uses an <ACE_Message_Queue>
+ * to enqueue a bunch of messages with different priorities which
+ * are then dequeued by the consumer.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Message_Queue.h"
#include "ace/Thread_Manager.h"
-ACE_RCSID(tests, Priority_Buffer_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -73,8 +69,8 @@ consumer (void *args)
{
// This isn't a "shutdown" message, so process it
// "normally."
- ACE_ASSERT (c == *mb->rd_ptr ());
- ACE_ASSERT (mb->msg_priority () < cur_priority);
+ ACE_TEST_ASSERT (c == *mb->rd_ptr ());
+ ACE_TEST_ASSERT (mb->msg_priority () < cur_priority);
cur_priority = mb->msg_priority ();
}
@@ -88,7 +84,7 @@ consumer (void *args)
break;
}
- ACE_ASSERT (local_count == message_count);
+ ACE_TEST_ASSERT (local_count == message_count);
return 0;
}
diff --git a/ACE/tests/Priority_Reactor_Test.cpp b/ACE/tests/Priority_Reactor_Test.cpp
index 463b43a22e7..cb758134e7f 100644
--- a/ACE/tests/Priority_Reactor_Test.cpp
+++ b/ACE/tests/Priority_Reactor_Test.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Priority_Reactor_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_Priority_Reactor>. The test forks
-// two processes (for a total of three processes) which connect to
-// the main process and The clients send data to a connector,
-// interestingly enough the acceptor will give more priority to
-// the second connection, which should run always before the first
-// one.
-//
-// The test itself is interesting, it shows how to write very
-// simple <ACE_Svc_Handler>, <ACE_Connectors> and <ACE_Acceptors>.
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Priority_Reactor_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the <ACE_Priority_Reactor>. The test forks
+ * two processes (for a total of three processes) which connect to
+ * the main process and The clients send data to a connector,
+ * interestingly enough the acceptor will give more priority to
+ * the second connection, which should run always before the first
+ * one.
+ *
+ * The test itself is interesting, it shows how to write very
+ * simple <ACE_Svc_Handler>, <ACE_Connectors> and <ACE_Acceptors>.
+ *
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Get_Opt.h"
@@ -37,7 +34,7 @@
#include "ace/OS_NS_sys_wait.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Priority_Reactor_Test, "$Id$")
+
static const char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
diff --git a/ACE/tests/Priority_Reactor_Test.h b/ACE/tests/Priority_Reactor_Test.h
index fdf17865448..4436822c496 100644
--- a/ACE/tests/Priority_Reactor_Test.h
+++ b/ACE/tests/Priority_Reactor_Test.h
@@ -1,22 +1,19 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Priority_Reactor_Test.h
-//
-// = DESCRIPTION
-// This class gets its own header file to work around AIX C++
-// compiler "features" related to template instantiation... It is
-// only used by Priority_Reactor_Test.cpp.
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Priority_Reactor_Test.h
+ *
+ * $Id$
+ *
+ * This class gets its own header file to work around AIX C++
+ * compiler "features" related to template instantiation... It is
+ * only used by Priority_Reactor_Test.cpp.
+ *
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_PRIORITY_REACTOR_TEST_H
#define ACE_TESTS_PRIORITY_REACTOR_TEST_H
@@ -30,43 +27,47 @@
#include "ace/SOCK_Stream.h"
#include "ace/Svc_Handler.h"
+/**
+ * @class Read_Handler
+ *
+ * @brief A Svc_Handler with a priority twist.
+ *
+ * This Svc_Handler receives the data sent by the childs or writer
+ * threads; each one sets it own priority to a new level, in a
+ * cyclic manner. The main point is test and exercise the
+ * priority dispatching features of ACE_Priority_Reactor.
+ */
class Read_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH>
- // = TITLE
- // A Svc_Handler with a priority twist.
- //
- // = DESCRIPTION
- // This Svc_Handler receives the data sent by the childs or writer
- // threads; each one sets it own priority to a new level, in a
- // cyclic manner. The main point is test and exercise the
- // priority dispatching features of ACE_Priority_Reactor.
{
public:
+ /// Set the number of children or writer threads we will be running,
+ /// when they are all gone we terminate the reactor loop.
static void set_countdown (int nchildren);
- // Set the number of children or writer threads we will be running,
- // when they are all gone we terminate the reactor loop.
+ /// Get the number of children we are still waiting for.
static int get_countdown (void);
- // Get the number of children we are still waiting for.
+ /// The Svc_Handler callbacks.
virtual int open (void *);
virtual int handle_input (ACE_HANDLE h);
- // The Svc_Handler callbacks.
private:
+ /// How many writers are we waiting for.
static int waiting_;
- // How many writers are we waiting for.
+ /// How many readers have started.
static int started_;
- // How many readers have started.
};
+/**
+ * @class Write_Handler
+ *
+ * @brief A simple writer.
+ *
+ * This Svc_Handler simply connects to a server and sends some
+ * output to it. Its purpose is to feed the test.
+ */
class Write_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH>
- // = TITLE
- // A simple writer.
- //
- // = DESCRIPTION
- // This Svc_Handler simply connects to a server and sends some
- // output to it. Its purpose is to feed the test.
{
public:
virtual int open (void *);
diff --git a/ACE/tests/Priority_Task_Test.cpp b/ACE/tests/Priority_Task_Test.cpp
index 45f9f41e6ae..99b028e35f5 100644
--- a/ACE/tests/Priority_Task_Test.cpp
+++ b/ACE/tests/Priority_Task_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Priority_Task_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test to illustrate the priority mechanism of
-// ACE Tasks. The test requires no options, but the -d option
-// enables LM_DEBUG output.
-//
-// = AUTHOR
-// Carlos O'Ryan <coryan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Priority_Task_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test to illustrate the priority mechanism of
+ * ACE Tasks. The test requires no options, but the -d option
+ * enables LM_DEBUG output.
+ *
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Task.h"
@@ -24,36 +21,38 @@
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID(tests, Priority_Task_Test, "$Id$")
-
static const ACE_TCHAR *usage = ACE_TEXT ("usage: %s [-d]\n");
#if defined (ACE_HAS_THREADS)
+/**
+ * @class Priority_Task
+ *
+ * @brief A simple Task that runs itself a different priorities.
+ *
+ * This task uses the void* argument on open to run the svc()
+ * method at a different priority. The point is execise the thread
+ * priority features of ACE.
+ */
class Priority_Task : public ACE_Task<ACE_MT_SYNCH>
{
- // = TITLE
- // A simple Task that runs itself a different priorities.
- //
- // = DESCRIPTION
- // This task uses the void* argument on open to run the svc()
- // method at a different priority. The point is execise the thread
- // priority features of ACE.
public:
+ /// The constructor
Priority_Task (void);
- // The constructor
//FUZZ: disable check_for_lack_ACE_OS
+ /**
+ * Receives the priority and run svc() on a separate thread at that
+ * priority.
+ *FUZZ: enable check_for_lack_ACE_OS
+ */
int open (void *);
- // Receives the priority and run svc() on a separate thread at that
- // priority.
- //FUZZ: enable check_for_lack_ACE_OS
+ /// Runs on a separate thread an checks the priority.
int svc (void);
- // Runs on a separate thread an checks the priority.
+ /// Returns 1 if priority was set properly, 0 otherwise.
int succeeded (void) { return error_ == 0; }
- // Returns 1 if priority was set properly, 0 otherwise.
private:
int priority_;
@@ -102,7 +101,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/Proactor_Scatter_Gather_Test.cpp b/ACE/tests/Proactor_Scatter_Gather_Test.cpp
index 8c4d5543bfa..24ed7f5d075 100644
--- a/ACE/tests/Proactor_Scatter_Gather_Test.cpp
+++ b/ACE/tests/Proactor_Scatter_Gather_Test.cpp
@@ -103,7 +103,7 @@ static int allocate_chunks_chain (ACE_Message_Block *&head_mb,
}
else
{
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
return -1;
}
}
@@ -375,7 +375,7 @@ Receiver::Receiver (Acceptor * acceptor, int index)
Receiver::writer_ = new Writer;
if (!Receiver::writer_)
{
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
return;
}
}
@@ -401,7 +401,7 @@ Receiver::~Receiver (void)
if (this->partial_chunk_)
{
- ACE_ASSERT (0); // should not be getting here
+ ACE_TEST_ASSERT (0); // should not be getting here
this->partial_chunk_->release ();
}
}
@@ -449,7 +449,7 @@ Receiver::initiate_read_stream (void)
ACE_Message_Block *head_mb = 0;
if (-1 == allocate_chunks_chain (head_mb, number_of_new_chunks))
{
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
return -1;
}
@@ -504,7 +504,7 @@ Receiver::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
// On disconnect (error or 0 transferred), transfer whatever we have.
// at this stage there should not be anything there
- ACE_ASSERT (!this->partial_chunk_);
+ ACE_TEST_ASSERT (!this->partial_chunk_);
// first, remove the empty chunks
remove_empty_chunks (mb);
@@ -557,7 +557,7 @@ Receiver::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
if (!result.error ())
this->initiate_read_stream ();
else
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
}
}
else if (mb && !Receiver::writer_)
@@ -775,7 +775,7 @@ Writer::initiate_write_file (void)
// in the queues (1 to 2 chunks together), so let's force the merge size to 1.
if (0 == merge_size)
{
- ACE_ASSERT (1 == odd_count && 1 >= even_count);
+ ACE_TEST_ASSERT (1 == odd_count && 1 >= even_count);
merge_size = 1;
}
@@ -871,7 +871,7 @@ Writer::handle_write_file (const ACE_Asynch_Write_File::Result &result)
if (0 == this->receiver_count_ &&
0 == this->io_count_)
{
- ACE_ASSERT (0 == this->odd_chain_ && 0 == this->even_chain_);
+ ACE_TEST_ASSERT (0 == this->odd_chain_ && 0 == this->even_chain_);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Writer::handle_write_file")
@@ -1155,7 +1155,7 @@ Sender::open (ACE_HANDLE handle, ACE_Message_Block &)
int
Sender::initiate_read_file (void)
{
- ACE_ASSERT (0 == this->file_offset_ % chunk_size);
+ ACE_TEST_ASSERT (0 == this->file_offset_ % chunk_size);
static const size_t file_size = ACE_OS::filesize (input_file);
@@ -1169,14 +1169,14 @@ Sender::initiate_read_file (void)
if (!relevant_number_of_chunks)
{
- ACE_ASSERT (0); // Just 2 C it coming
+ ACE_TEST_ASSERT (0); // Just 2 C it coming
return 0;
}
ACE_Message_Block *head_mb = 0;
if (-1 == allocate_chunks_chain (head_mb, relevant_number_of_chunks))
{
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
return -1;
}
@@ -1292,9 +1292,9 @@ Sender::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
if (result.error () == 0 && result.bytes_transferred () != 0)
// verify sent all
- ACE_ASSERT (0 == mb->total_length ());
+ ACE_TEST_ASSERT (0 == mb->total_length ());
else
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
free_chunks_chain (mb);
@@ -1395,7 +1395,7 @@ run_main (int argc, ACE_TCHAR *argv[])
// Simplify, initial read with zero size
if (-1 == acceptor.open (addr, 0, 1))
{
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
return -1;
}
}
@@ -1404,7 +1404,7 @@ run_main (int argc, ACE_TCHAR *argv[])
{
if (-1 == connector.open (1, ACE_Proactor::instance ()))
{
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
return -1;
}
@@ -1414,7 +1414,7 @@ run_main (int argc, ACE_TCHAR *argv[])
connector.set_address (addr);
if (-1 == connector.connect (addr))
{
- ACE_ASSERT (0);
+ ACE_TEST_ASSERT (0);
return -1;
}
}
diff --git a/ACE/tests/Proactor_Test.cpp b/ACE/tests/Proactor_Test.cpp
index 861def76e50..2c0620a72c7 100644
--- a/ACE/tests/Proactor_Test.cpp
+++ b/ACE/tests/Proactor_Test.cpp
@@ -16,10 +16,6 @@
#include "test_config.h"
-ACE_RCSID (tests,
- Proactor_Test,
- "$Id$")
-
#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS))
// This only works on Win32 platforms and on Unix platforms
// supporting POSIX aio calls.
@@ -122,8 +118,7 @@ public:
static int
disable_signal (int sigmin, int sigmax)
{
-#ifndef ACE_WIN32
-
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
sigset_t signal_set;
if (ACE_OS::sigemptyset (&signal_set) == - 1)
ACE_ERROR ((LM_ERROR,
@@ -133,17 +128,24 @@ disable_signal (int sigmin, int sigmax)
for (int i = sigmin; i <= sigmax; i++)
ACE_OS::sigaddset (&signal_set, i);
- // Put the <signal_set>.
- if (ACE_OS::pthread_sigmask (SIG_BLOCK, &signal_set, 0) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Error: (%P|%t):%p\n"),
- ACE_TEXT ("pthread_sigmask failed")));
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
#else
ACE_UNUSED_ARG (sigmin);
ACE_UNUSED_ARG (sigmax);
-#endif /* ACE_WIN32 */
+#endif /* ACE_LACKS_UNIX_SIGNALS */
- return 1;
+ return 0;
}
@@ -203,7 +205,7 @@ MyTask::create_proactor (ProactorType type_proactor, size_t max_op)
this->lock_,
-1);
- ACE_ASSERT (this->proactor_ == 0);
+ ACE_TEST_ASSERT (this->proactor_ == 0);
#if defined (ACE_WIN32)
@@ -348,6 +350,7 @@ MyTask::svc (void)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) MyTask started\n")));
disable_signal (ACE_SIGRTMIN, ACE_SIGRTMAX);
+ disable_signal (SIGPIPE, SIGPIPE);
// signal that we are ready
sem_.release (1);
@@ -945,7 +948,7 @@ Server::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
else
mb.release ();
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1041,7 +1044,7 @@ Server::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
this->initiate_read_stream ();
}
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1588,7 +1591,7 @@ Client::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
this->initiate_read_stream ();
}
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1705,7 +1708,7 @@ Client::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
this->initiate_write_stream ();
}
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
diff --git a/ACE/tests/Proactor_Test.h b/ACE/tests/Proactor_Test.h
index f23389f73e2..4306b82937c 100644
--- a/ACE/tests/Proactor_Test.h
+++ b/ACE/tests/Proactor_Test.h
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Proactor_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// @author Alexander Libman <alibman@baltimore.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Proactor_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author @author Alexander Libman <alibman@baltimore.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_PROACTOR_TEST_H
#define ACE_TESTS_PROACTOR_TEST_H
@@ -49,13 +46,13 @@ public:
void cancel ();
protected:
+ //// This is called when asynchronous <read> operation from the
+ //// socket completes.
/**
* @name AIO callback handling
*
* These methods are called by the framework
*/
- /// This is called when asynchronous <read> operation from the
- /// socket completes.
virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
/// This is called when an asynchronous <write> to the socket
@@ -108,11 +105,11 @@ public:
virtual void addresses (const ACE_INET_Addr& peer,
const ACE_INET_Addr& local);
+ /// This is called when asynchronous reads from the socket complete
virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
- // This is called when asynchronous reads from the socket complete
+ /// This is called when asynchronous writes from the socket complete
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This is called when asynchronous writes from the socket complete
void cancel (void);
diff --git a/ACE/tests/Proactor_Test_IPV6.cpp b/ACE/tests/Proactor_Test_IPV6.cpp
index f1cc290b93a..c6de6ef20aa 100644
--- a/ACE/tests/Proactor_Test_IPV6.cpp
+++ b/ACE/tests/Proactor_Test_IPV6.cpp
@@ -16,10 +16,6 @@
#include "test_config.h"
-ACE_RCSID (tests,
- Proactor_Test,
- "$Id$")
-
#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS))
// This only works on Win32 platforms and on Unix platforms
// supporting POSIX aio calls.
@@ -122,8 +118,7 @@ public:
static int
disable_signal (int sigmin, int sigmax)
{
-#ifndef ACE_WIN32
-
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
sigset_t signal_set;
if (ACE_OS::sigemptyset (&signal_set) == - 1)
ACE_ERROR ((LM_ERROR,
@@ -133,17 +128,24 @@ disable_signal (int sigmin, int sigmax)
for (int i = sigmin; i <= sigmax; i++)
ACE_OS::sigaddset (&signal_set, i);
- // Put the <signal_set>.
- if (ACE_OS::pthread_sigmask (SIG_BLOCK, &signal_set, 0) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Error: (%P|%t):%p\n"),
- ACE_TEXT ("pthread_sigmask failed")));
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
#else
ACE_UNUSED_ARG (sigmin);
ACE_UNUSED_ARG (sigmax);
-#endif /* ACE_WIN32 */
+#endif /* ACE_LACKS_UNIX_SIGNALS */
- return 1;
+ return 0;
}
@@ -203,7 +205,7 @@ MyTask::create_proactor (ProactorType type_proactor, size_t max_op)
this->lock_,
-1);
- ACE_ASSERT (this->proactor_ == 0);
+ ACE_TEST_ASSERT (this->proactor_ == 0);
#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
@@ -348,6 +350,7 @@ MyTask::svc (void)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) MyTask started\n")));
disable_signal (ACE_SIGRTMIN, ACE_SIGRTMAX);
+ disable_signal (SIGPIPE, SIGPIPE);
// signal that we are ready
sem_.release (1);
@@ -945,7 +948,7 @@ Server::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
else
mb.release ();
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1041,7 +1044,7 @@ Server::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
this->initiate_read_stream ();
}
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1627,7 +1630,7 @@ Client::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
this->initiate_read_stream ();
}
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1744,7 +1747,7 @@ Client::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
this->initiate_write_stream ();
}
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
diff --git a/ACE/tests/Proactor_Timer_Test.cpp b/ACE/tests/Proactor_Timer_Test.cpp
index 7d81bcb5ef1..d27601bb3ce 100644
--- a/ACE/tests/Proactor_Timer_Test.cpp
+++ b/ACE/tests/Proactor_Timer_Test.cpp
@@ -1,32 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Proctor_Timer_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that illustrates the timer mechanism of
-// the <ACE_Proactor>. Scheduling timers, handling expired timers and
-// cancelling scheduled timers are all exercised in this test.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>,
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>, and
-// Miljenko Norsic <Miljenko.Norsic@etk.ericsson.se>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Proactor_Timer_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that illustrates the timer mechanism of
+ * the <ACE_Proactor>. Scheduling timers, handling expired timers and
+ * cancelling scheduled timers are all exercised in this test.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author and Miljenko Norsic <Miljenko.Norsic@etk.ericsson.se>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Trace.h"
-ACE_RCSID (tests,
- Proactor_Timer_Test,
- "$Id$")
-
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
// This only works on Win32 platforms and on Unix platforms
// supporting POSIX aio calls.
@@ -44,21 +37,21 @@ static int odd = 0;
class Time_Handler : public ACE_Handler
{
public:
+ /// Default constructor
Time_Handler ();
- // Default constructor
+ /// Handle the timeout.
virtual void handle_time_out (const ACE_Time_Value &tv, const void *arg);
- // Handle the timeout.
+ /// Return our timer id.
long timer_id (void) const;
- // Return our timer id.
+ /// Set our timer id;
void timer_id (long);
- // Set our timer id;
private:
+ /// Stores the id of this timer.
long timer_id_;
- // Stores the id of this timer.
};
/*
diff --git a/ACE/tests/Proactor_UDP_Test.cpp b/ACE/tests/Proactor_UDP_Test.cpp
index 857860eefa3..6662d28eeb4 100644
--- a/ACE/tests/Proactor_UDP_Test.cpp
+++ b/ACE/tests/Proactor_UDP_Test.cpp
@@ -15,10 +15,6 @@
#include "test_config.h"
-ACE_RCSID (tests,
- Proactor_UDP_Test,
- "$Id$")
-
#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS))
// This only works on Win32 platforms and on Unix platforms
// supporting POSIX aio calls.
@@ -113,13 +109,11 @@ public:
virtual ~LogLocker () { ACE_LOG_MSG->release (); }
};
-
// Function to remove signals from the signal mask.
static int
disable_signal (int sigmin, int sigmax)
{
-#ifndef ACE_WIN32
-
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
sigset_t signal_set;
if (ACE_OS::sigemptyset (&signal_set) == - 1)
ACE_ERROR ((LM_ERROR,
@@ -129,20 +123,26 @@ disable_signal (int sigmin, int sigmax)
for (int i = sigmin; i <= sigmax; i++)
ACE_OS::sigaddset (&signal_set, i);
- // Put the <signal_set>.
- if (ACE_OS::pthread_sigmask (SIG_BLOCK, &signal_set, 0) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Error: (%P|%t):%p\n"),
- ACE_TEXT ("pthread_sigmask failed")));
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
#else
ACE_UNUSED_ARG (sigmin);
ACE_UNUSED_ARG (sigmax);
-#endif /* ACE_WIN32 */
+#endif /* ACE_LACKS_UNIX_SIGNALS */
- return 1;
+ return 0;
}
-
// *************************************************************
// MyTask is ACE_Task resposible for :
// 1. creation and deletion of
@@ -199,7 +199,7 @@ MyTask::create_proactor (ProactorType type_proactor, size_t max_op)
this->lock_,
-1);
- ACE_ASSERT (this->proactor_ == 0);
+ ACE_TEST_ASSERT (this->proactor_ == 0);
#if defined (ACE_WIN32)
@@ -344,6 +344,7 @@ MyTask::svc (void)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) MyTask started\n")));
disable_signal (ACE_SIGRTMIN, ACE_SIGRTMAX);
+ disable_signal (SIGPIPE, SIGPIPE);
// signal that we are ready
sem_.release (1);
@@ -742,7 +743,8 @@ struct Session_Data
{
ACE_INT32 direction_; // 0 == Start, 1 == Ack
ACE_INT32 addr_; // Network byte order, must be IPv4
- ACE_INT16 port_; // UDP port, network byte order
+ ACE_UINT16 port_; // UDP port, network byte order
+ Session_Data() { ACE_OS::memset (this, 0, sizeof(*this)); }
};
// Master is the server-side receiver of session establishment requests.
@@ -814,8 +816,6 @@ Master::~Master (void)
void
Master::handle_read_dgram (const ACE_Asynch_Read_Dgram::Result &result)
{
- bool restart_recv = true;
-
// We should only receive Start datagrams with valid addresses to reply to.
if (result.success ())
{
@@ -884,7 +884,6 @@ Master::handle_read_dgram (const ACE_Asynch_Read_Dgram::Result &result)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("All expected sessions are up\n")));
- restart_recv = false;
}
}
else
@@ -1204,7 +1203,7 @@ Server::handle_read_dgram (const ACE_Asynch_Read_Dgram::Result &result)
else
mb->release ();
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1300,7 +1299,7 @@ Server::handle_write_dgram (const ACE_Asynch_Write_Dgram::Result &result)
this->initiate_read ();
}
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1335,6 +1334,7 @@ Connector::Connector (TestData *tester)
int
Connector::start (const ACE_INET_Addr& addr, int num)
{
+ ACE_OS::sleep(3); // Let Master get going
if (num > MAX_CLIENTS)
num = MAX_CLIENTS;
@@ -1847,7 +1847,7 @@ Client::handle_write_dgram (const ACE_Asynch_Write_Dgram::Result &result)
this->initiate_read ();
}
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
@@ -1974,7 +1974,7 @@ Client::handle_read_dgram (const ACE_Asynch_Read_Dgram::Result &result)
}
mb->release ();
- this->io_count_--;
+ --this->io_count_;
if (this->io_count_ > 0)
return;
}
diff --git a/ACE/tests/Process_Env_Test.cpp b/ACE/tests/Process_Env_Test.cpp
index 4b0ea673768..116f800ad5e 100644
--- a/ACE/tests/Process_Env_Test.cpp
+++ b/ACE/tests/Process_Env_Test.cpp
@@ -1,30 +1,23 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Process_Env_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the limits of the Windows CreateProcess
-// environment buffer.
-//
-// = AUTHOR
-// Chad Elliott <elliott_c@ociweb.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Process_Env_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the limits of the Windows CreateProcess
+ * environment buffer.
+ *
+ *
+ * @author Chad Elliott <elliott_c@ociweb.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Process.h"
#include "ace/SString.h"
-ACE_RCSID(tests,
- Process_Env_Test,
- "$Id$")
-
typedef void (*setenvfn_t) (const ACE_TCHAR *name, const ACE_TCHAR *value,
void *ctx);
diff --git a/ACE/tests/Process_Manager_Test.cpp b/ACE/tests/Process_Manager_Test.cpp
index 339daa3d8eb..49554a66ba3 100644
--- a/ACE/tests/Process_Manager_Test.cpp
+++ b/ACE/tests/Process_Manager_Test.cpp
@@ -1,29 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Process_Manager_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the various methods provided by
-// <ACE_Process_Manager>. It illustrates both the explicit <wait>
-// functions and the Reactor-style auto-reaping. There's an
-// Exit_Handler class that can print out (in Debug mode) when a
-// child has been reaped.
-//
-// The child processes spawned are simply this program itself, with
-// an integer argument specifying how long to "process" (actually,
-// the child just sleeps for the specified length of time).
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu> and
-// Dave Madden <dhm@mersenne.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Process_Manager_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the various methods provided by
+ * <ACE_Process_Manager>. It illustrates both the explicit <wait>
+ * functions and the Reactor-style auto-reaping. There's an
+ * Exit_Handler class that can print out (in Debug mode) when a
+ * child has been reaped.
+ *
+ * The child processes spawned are simply this program itself, with
+ * an integer argument specifying how long to "process" (actually,
+ * the child just sleeps for the specified length of time).
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> and Dave Madden <dhm@mersenne.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/SString.h"
@@ -37,7 +33,7 @@
#include "ace/Thread.h"
#include "ace/Reactor.h"
-ACE_RCSID(tests, Process_Manager_Test, "Process_Manager_Test.cpp,v 4.11 1999/09/02 04:36:30 schmidt Exp")
+
static u_int debug_test = 0;
#if defined (ACE_HAS_WIN32_PRIORITY_CLASS)
@@ -86,7 +82,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 +138,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)
@@ -172,12 +177,12 @@ public:
sleep_time_ (sleep_time) { }
// FUZZ: disable check_for_lack_ACE_OS
+ /// FUZZ: enable check_for_lack_ACE_OS
int open (void*)
- // FUZZ: enable check_for_lack_ACE_OS
{
char tmp[10];
order += ACE_OS::itoa (sleep_time_, tmp, 10);
- running_tasks++;
+ ++running_tasks;
activate ();
return 0;
}
@@ -213,10 +218,10 @@ public:
}
// FUZZ: disable check_for_lack_ACE_OS
+ /// FUZZ: enable check_for_lack_ACE_OS
int close (u_long)
- // FUZZ: enable check_for_lack_ACE_OS
{
- running_tasks--;
+ --running_tasks;
return 0;
}
@@ -296,11 +301,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 +538,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 +563,7 @@ run_main (int argc, ACE_TCHAR *argv[])
order.c_str ()));
test_status = 1;
}
+#endif /* ACE_HAS_THREADS */
#if !defined (ACE_OPENVMS)
// --------------------------------------------------
@@ -583,7 +590,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/Process_Manual_Event_Test.cpp b/ACE/tests/Process_Manual_Event_Test.cpp
index 85be15358fb..389fc91aa8c 100644
--- a/ACE/tests/Process_Manual_Event_Test.cpp
+++ b/ACE/tests/Process_Manual_Event_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Process_Manual_Event_Test.cpp
-//
-// = DESCRIPTION
-// This test verifies the functionality of the <ACE_Manual_Event>
-// process-shared implementation.
-//
-// = AUTHOR
-// Martin Corino <mcorino@remedy.nl>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Process_Manual_Event_Test.cpp
+ *
+ * $Id$
+ *
+ * This test verifies the functionality of the <ACE_Manual_Event>
+ * process-shared implementation.
+ *
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Process.h"
@@ -80,7 +77,7 @@ acquire_release (void)
ACE_Manual_Event event_pong (0, USYNC_PROCESS, event_pong_name);
// Make sure the constructor succeeded
- ACE_ASSERT (ACE_LOG_MSG->op_status () == 0);
+ ACE_TEST_ASSERT (ACE_LOG_MSG->op_status () == 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P) Begin ping-pong\n")));
@@ -239,7 +236,7 @@ const ACE_TCHAR *cmdline_format = ACE_TEXT (".") ACE_DIRECTORY_SEPARATOR_STR ACE
ACE_exitcode child_status;
// Wait for the child processes we created to exit.
int wait_result = child.wait (&child_status);
- ACE_ASSERT (wait_result != -1);
+ ACE_TEST_ASSERT (wait_result != -1);
if (child_status == 0)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Child %d finished ok\n"),
diff --git a/ACE/tests/Process_Mutex_Test.cpp b/ACE/tests/Process_Mutex_Test.cpp
index cb235cf904c..46273817eed 100644
--- a/ACE/tests/Process_Mutex_Test.cpp
+++ b/ACE/tests/Process_Mutex_Test.cpp
@@ -1,19 +1,16 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Process_Mutex_Test.cpp
-//
-// = DESCRIPTION
-// Tests an <ACE_Process_Mutex> shared between multiple child processes.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Process_Mutex_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests an <ACE_Process_Mutex> shared between multiple child processes.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Mutex.h"
@@ -26,7 +23,7 @@
#include "ace/OS_NS_fcntl.h"
#include "ace/os_include/os_dirent.h"
-ACE_RCSID(tests, Process_Mutex_Test, "$Id$")
+
static int release_mutex = 1;
static int child_process = 0;
@@ -79,7 +76,7 @@ acquire_release (void)
ACE_Process_Mutex mutex (mutex_name);
// Make sure the constructor succeeded
- ACE_ASSERT (ACE_LOG_MSG->op_status () == 0);
+ ACE_TEST_ASSERT (ACE_LOG_MSG->op_status () == 0);
// To see if we really are the only holder of the mutex below,
// we'll try to create a file with exclusive access. If the file
@@ -90,7 +87,7 @@ acquire_release (void)
// Grab the lock
int mutex_acq = mutex.acquire ();
- ACE_ASSERT (mutex_acq == 0);
+ ACE_TEST_ASSERT (mutex_acq == 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P) Mutex acquired %s\n"),
@@ -99,7 +96,7 @@ acquire_release (void)
ACE_HANDLE checker_handle = ACE_OS::open (mutex_check, O_CREAT | O_EXCL);
if (checker_handle == ACE_INVALID_HANDLE)
{
- ACE_ASSERT (errno != EEXIST);
+ ACE_TEST_ASSERT (errno != EEXIST);
ACE_DEBUG ((LM_WARNING, ACE_TEXT ("(%P): %p\n"),
ACE_TEXT ("checker file open")));
}
@@ -122,7 +119,7 @@ acquire_release (void)
ACE_TEXT ("(%P) Releasing the mutex %s\n"),
mutex_name));
int mutex_release = mutex.release ();
- ACE_ASSERT (mutex_release == 0);
+ ACE_TEST_ASSERT (mutex_release == 0);
}
}
@@ -200,7 +197,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_exitcode child_status;
// Wait for the child processes we created to exit.
int wait_result = children[i].wait (&child_status);
- ACE_ASSERT (wait_result != -1);
+ ACE_TEST_ASSERT (wait_result != -1);
if (child_status == 0)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Child %d finished ok\n"),
diff --git a/ACE/tests/Process_Semaphore_Test.cpp b/ACE/tests/Process_Semaphore_Test.cpp
index af08108ad75..42053baa5fd 100644
--- a/ACE/tests/Process_Semaphore_Test.cpp
+++ b/ACE/tests/Process_Semaphore_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Process_Semaphore_Test.cpp
-//
-// = DESCRIPTION
-// Tests an ACE Semaphore shared between multiple child processes.
-//
-// = AUTHOR
-// Martin Corino <mcorino@remedy.nl>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Process_Semaphore_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests an ACE Semaphore shared between multiple child processes.
+ *
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Mutex.h"
@@ -33,8 +30,10 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
#include "ace/os_include/os_dirent.h"
+#include "ace/OS_NS_stdlib.h"
+#include "ace/SString.h"
+
-ACE_RCSID(tests, Process_Semaphore_Test, "Process_Semaphore_Test.cpp,v 4.42 2003/12/26 21:59:35 shuston Exp")
#if !defined (ACE_LACKS_FORK)
static int iterations = 10;
@@ -88,7 +87,7 @@ acquire_release (void)
#endif
// Make sure the constructor succeeded
- ACE_ASSERT (ACE_LOG_MSG->op_status () == 0);
+ ACE_TEST_ASSERT (ACE_LOG_MSG->op_status () == 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P) Begin ping-pong\n")));
@@ -119,7 +118,7 @@ acquire_release (void)
wait.sec (wait.sec () + 3); // timeout in 3 secs
if (sema_pong.acquire (wait))
- ACE_ASSERT(errno == ETIME);
+ ACE_TEST_ASSERT(errno == ETIME);
else
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("(%P) Acquired pong without release()\n")));
@@ -154,7 +153,7 @@ acquire_release (void)
if (sema_ping.acquire (wait))
{
- ACE_ASSERT(errno == ETIME);
+ ACE_TEST_ASSERT(errno == ETIME);
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("(%P) Acquiring pong timed out\n")));
}
@@ -189,11 +188,20 @@ run_main (int argc, ACE_TCHAR *argv[])
{
ACE_START_TEST (ACE_TEXT ("Process_Semaphore_Test"));
+ ACE_TString exe_sub_dir;
+ const char *subdir_env = ACE_OS::getenv ("ACE_EXE_SUB_DIR");
+ if (subdir_env)
+ {
+ exe_sub_dir = ACE_TEXT_CHAR_TO_TCHAR (subdir_env);
+ exe_sub_dir += ACE_DIRECTORY_SEPARATOR_STR;
+ }
+
ACE_Process_Options options;
options.command_line (ACE_TEXT (".") ACE_DIRECTORY_SEPARATOR_STR
- ACE_TEXT ("Process_Semaphore_Test")
+ ACE_TEXT ("%sProcess_Semaphore_Test")
ACE_PLATFORM_EXE_SUFFIX
ACE_TEXT (" -c -i %d"),
+ exe_sub_dir.c_str(),
iterations);
// Spawn a child process that will contend for the
@@ -202,7 +210,7 @@ run_main (int argc, ACE_TCHAR *argv[])
// Spawn the child process.
int result = child.spawn (options);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Parent spawned child process with pid = %d.\n"),
child.getpid ()));
@@ -212,7 +220,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_exitcode child_status;
// Wait for the child processes we created to exit.
- ACE_ASSERT (child.wait (&child_status) != -1);
+ ACE_TEST_ASSERT (child.wait (&child_status) != -1);
if (child_status == 0)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Child %d finished ok\n"),
diff --git a/ACE/tests/Process_Strategy_Test.cpp b/ACE/tests/Process_Strategy_Test.cpp
index 92a22214c74..61cd3619933 100644
--- a/ACE/tests/Process_Strategy_Test.cpp
+++ b/ACE/tests/Process_Strategy_Test.cpp
@@ -1,41 +1,37 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Process_Strategy_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_Strategy_Acceptor> and
-// <ACE_File_Lock> classes. The <ACE_Strategy_Acceptor> uses
-// either the <ACE_Process_Strategy> (which forks a
-// process-per-connection and runs as a concurrent server
-// process), the <ACE_Thread_Strategy> (which spawns a
-// thread-per-connection and runs as a concurrent server thread),
-// or <ACE_Reactive_Strategy> (which register the <Svc_Handler>
-// with the <Reactor> and runs in the main thread of control as an
-// iterative server). This server queries and increments a
-// "counting value" in a file.
-//
-// This test program can be run in the following ways:
-//
-// # Run the server "reactively" (i.e., iteratively)
-// % Process_Strategy_Test -c REACTIVE
-//
-// # Run the server in multi-threads.
-// % Process_Strategy_Test -c THREAD
-//
-// # Run the server in multi-processes
-// % Process_Strategy_Test -c PROCESS
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-// and Kevin Boyle <kboyle@sanwafp.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Process_Strategy_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the <ACE_Strategy_Acceptor> and
+ * <ACE_File_Lock> classes. The <ACE_Strategy_Acceptor> uses
+ * either the <ACE_Process_Strategy> (which forks a
+ * process-per-connection and runs as a concurrent server
+ * process), the <ACE_Thread_Strategy> (which spawns a
+ * thread-per-connection and runs as a concurrent server thread),
+ * or <ACE_Reactive_Strategy> (which register the <Svc_Handler>
+ * with the <Reactor> and runs in the main thread of control as an
+ * iterative server). This server queries and increments a
+ * "counting value" in a file.
+ *
+ * This test program can be run in the following ways:
+ *
+ * # Run the server "reactively" (i.e., iteratively)
+ * % Process_Strategy_Test -c REACTIVE
+ *
+ * # Run the server in multi-threads.
+ * % Process_Strategy_Test -c THREAD
+ *
+ * # Run the server in multi-processes
+ * % Process_Strategy_Test -c PROCESS
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> and Kevin Boyle <kboyle@sanwafp.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -55,7 +51,7 @@
// Counting_Service and Options in here
#include "Process_Strategy_Test.h"
-ACE_RCSID(tests, Process_Strategy_Test, "$Id$")
+
// This test does not function properly when fork() is used on HP-UX
#if defined(__hpux)
@@ -85,7 +81,7 @@ static void
connection_completed (void)
{
// Increment connection counter.
- connections++;
+ ++connections;
// If all connections have been serviced.
if (connections == ACE_MAX_ITERATIONS + 1)
@@ -249,7 +245,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
-1);
break;
#else
- ACE_ASSERT ("PROCESS invalid on this platform" == 0);
+ ACE_TEST_ASSERT ("PROCESS invalid on this platform" == 0);
#endif /* !defined (ACE_LACKS_FORK) */
case Options::THREAD:
#if defined (ACE_HAS_THREADS)
@@ -261,7 +257,7 @@ Options::parse_args (int argc, ACE_TCHAR *argv[])
-1);
break;
#else
- ACE_ASSERT (!"THREAD invalid on this platform");
+ ACE_TEST_ASSERT (!"THREAD invalid on this platform");
#endif /* !ACE_HAS_THREADS */
case Options::REACTIVE:
// Settle for the purely Reactive strategy.
@@ -441,8 +437,18 @@ int
Counting_Service::handle_close (ACE_HANDLE,
ACE_Reactor_Mask)
{
- // Done with another connection.
- connection_completed ();
+ // Count completed connections here only when the test is not in
+ // "process-per-connection" mode. In general, this should not be
+ // done here. Proper place for this is activate_svc_handler() but
+ // since only "process-per-connection" hooks into that function in
+ // other modes it's done here. The later creates a problem in
+ // "process-per-connection" mode since it calculates the same
+ // connection twice and as a result it cannot finalize gracefully.
+ if (OPTIONS::instance ()->concurrency_type () != Options::PROCESS)
+ {
+ // Done with another connection.
+ connection_completed ();
+ }
// Call down to base class
return ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::handle_close ();
@@ -581,7 +587,7 @@ client (void *arg)
ACE_TEXT ("(%P|%t) count = %d\n"),
count));
// Make sure that the count is correct.
- if (count != ACE_MAX_ITERATIONS)
+ if (count != ACE_MAX_ITERATIONS)
{
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Error: Count invalid, has %d expected %d\n"),
diff --git a/ACE/tests/Process_Strategy_Test.h b/ACE/tests/Process_Strategy_Test.h
index 9278e37404a..52365621ea0 100644
--- a/ACE/tests/Process_Strategy_Test.h
+++ b/ACE/tests/Process_Strategy_Test.h
@@ -1,20 +1,20 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-// = FILENAME
-// Process_Strategy_Test.h
-//
-// = DESCRIPTION
-// This file contains the definition of Counting_Service and
-// Options. Some compilers need it in a .h file for template
-// instantiation (such as AIX C Set ++).
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@cs.wustl.edu> and
-// Kevin Boyle <kboyle@sanwafp.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Process_Strategy_Test.h
+ *
+ * $Id$
+ *
+ * This file contains the definition of Counting_Service and
+ * Options. Some compilers need it in a .h file for template
+ * instantiation (such as AIX C Set ++).
+ *
+ *
+ * @author Doug Schmidt <schmidt@cs.wustl.edu> and Kevin Boyle <kboyle@sanwafp.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_PROCESS_STRATEGY_TEST_H
#define ACE_TESTS_PROCESS_STRATEGY_TEST_H
@@ -30,44 +30,46 @@
#include "ace/Svc_Handler.h"
#include "ace/Strategies_T.h"
+/**
+ * @class Counting_Service
+ *
+ * @brief Reads and increments the count in a shared file.
+ *
+ * Objects of this class execute in a separate process as a
+ * result of the <ACE_Strategy_Acceptor> and
+ * <ACE_Process_Strategy>.
+ */
class Counting_Service : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- // = TITLE
- // Reads and increments the count in a shared file.
- //
- // = DESCRIPTION
- // Objects of this class execute in a separate process as a
- // result of the <ACE_Strategy_Acceptor> and
- // <ACE_Process_Strategy>.
{
public:
+ /// Constructor.
Counting_Service (ACE_Thread_Manager * = 0);
- // Constructor.
+ /// Hook that is used to initialize the service (called by the
+ /// <ACE_Strategy_Acceptor::handle_input> Template Method).
virtual int open (void *v);
- // Hook that is used to initialize the service (called by the
- // <ACE_Strategy_Acceptor::handle_input> Template Method).
protected:
// = Methods invoked via "pointer to method" table entry.
+ /// Handle the THREAD case.
virtual int svc (void);
- // Handle the THREAD case.
// = Operations corresponding to requests from the client.
+ /// Execute the read operation on the file.
int read (void);
- // Execute the read operation on the file.
+ /// Execute the increment operation on the file.
int inc (void);
- // Execute the increment operation on the file.
// = Hooks called by <Reactor> and <Strategy_Acceptor>.
+ /// Hook called by the <Reactor> when data arrives from the client.
virtual int handle_input (ACE_HANDLE p = ACE_INVALID_HANDLE);
- // Hook called by the <Reactor> when data arrives from the client.
+ /// Closing down
virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Closing down
};
class Process_Strategy : public ACE_Process_Strategy<Counting_Service>
@@ -89,19 +91,22 @@ public:
void *arg = 0);
};
+/**
+ * @class Options
+ *
+ * @brief Maintains the options for this program.
+ */
class Options : public ACE_Event_Handler
- // = TITLE
- // Maintains the options for this program.
{
public:
+ /// Constructor.
Options (void);
- // Constructor.
+ /// Destructor.
~Options (void);
- // Destructor.
+ /// Read command-line arguments and initialize options.
int parse_args (int argc, ACE_TCHAR *argv[]);
- // Read command-line arguments and initialize options.
enum Concurrency_Type
{
@@ -114,28 +119,28 @@ public:
Concurrency_Type concurrency_type (void);
void concurrency_type (Concurrency_Type);
+ /// Returns the file lock.
ACE_File_Lock &file_lock (void);
- // Returns the file lock.
+ /// Returns the filename that we're using as the lock.
const ACE_TCHAR *filename (void);
- // Returns the filename that we're using as the lock.
+ /// Returns the concurrency strategy.
ACE_Concurrency_Strategy <Counting_Service> *concurrency_strategy (void);
- // Returns the concurrency strategy.
private:
+ /// Concurrency strategy that we're running.
Concurrency_Type concurrency_type_;
- // Concurrency strategy that we're running.
+ /// Lock for the counting file.
ACE_File_Lock file_lock_;
- // Lock for the counting file.
+ /// Activation strategy that either forks a new process or spawns a
+ /// new thread for each client connection.
ACE_Concurrency_Strategy<Counting_Service> *concurrency_strategy_;
- // Activation strategy that either forks a new process or spawns a
- // new thread for each client connection.
+ /// Name of the counting file.
ACE_TCHAR filename_[MAXPATHLEN + 1];
- // Name of the counting file.
};
#endif /* ACE_TESTS_PROCESS_STRATEGY_TEST_H */
diff --git a/ACE/tests/Process_Test.cpp b/ACE/tests/Process_Test.cpp
index 11c2e22a40e..69b68b98eb5 100644
--- a/ACE/tests/Process_Test.cpp
+++ b/ACE/tests/Process_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Process_Test.cpp
-//
-// = DESCRIPTION
-// Tests ACE_Process file handle inheritance for UNIX-like systems
-//
-// = AUTHOR
-// Christian Fromme <kaner@strace.org>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Process_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests ACE_Process file handle inheritance for UNIX-like systems
+ *
+ *
+ * @author Christian Fromme <kaner@strace.org>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Process.h"
@@ -24,8 +21,9 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Dirent.h"
#include "ace/SString.h"
+#include "ace/OS_NS_stdlib.h"
+
-ACE_RCSID(tests, Process_Test, "Process_Test.cpp,v 4.11 1999/09/02 04:36:30 schmidt Exp")
// This will only work on Linux. Even UNIX-ish with /proc filesys lacks the
// 'self' level and link to the opened file name.
@@ -43,33 +41,33 @@ check_temp_file (const ACE_TString &tmpfilename)
ACE_OS::memset (&entr, 0, sizeof (entr));
// Loop through /proc/self/fs/
- if (entr.open (ACE_TEXT_CHAR_TO_TCHAR(proc_self_fd)) == -1)
+ if (entr.open (ACE_TEXT_CHAR_TO_TCHAR(proc_self_fd)) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Could not open dir %C\n"),
proc_self_fd),
-1);
- while ((dir = entr.read ()))
+ while ((dir = entr.read ()))
{
ACE_CString fullp = proc_self_fd;
#if defined (ACE_HAS_TCHAR_DIRENT)
fullp += ACE_TEXT_ALWAYS_CHAR(dir->d_name);
#else
fullp += dir->d_name;
-#endif
+#endif
- if ((ACE_OS::lstat (fullp.c_str (), &stat)) == -1)
+ if ((ACE_OS::lstat (fullp.c_str (), &stat)) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Stat failed for %C\n"),
fullp.c_str ()),
-1);
- if (S_ISLNK (stat.st_mode))
+ if (S_ISLNK (stat.st_mode))
{
ssize_t size = 0;
- if ((size= ACE_OS::readlink (fullp.c_str (),
- filename,
- MAXPATHLEN + 1)) == -1)
+ if ((size= ACE_OS::readlink (fullp.c_str (),
+ filename,
+ MAXPATHLEN + 1)) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Readlink failed for %C\n"),
fullp.c_str ()),
@@ -91,25 +89,34 @@ run_parent (bool inherit_files)
// Create tempfile. This will be tested for inheritance.
ACE_TCHAR tempfile[MAXPATHLEN + 1];
- if (ACE::get_temp_dir (tempfile, MAXPATHLEN - sizeof (t)) == -1)
+ if (ACE::get_temp_dir (tempfile, MAXPATHLEN - sizeof (t)) == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("Could not get temp dir\n")));
ACE_OS::strcat (tempfile, t);
ACE_HANDLE file_handle = ACE_OS::mkstemp (tempfile);
- if (file_handle == ACE_INVALID_HANDLE)
+ if (file_handle == ACE_INVALID_HANDLE)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("Could not get temp filename\n")));
// Build child options
+ ACE_TString exe_sub_dir;
+ const char *subdir_env = ACE_OS::getenv ("ACE_EXE_SUB_DIR");
+ if (subdir_env)
+ {
+ exe_sub_dir = ACE_TEXT_CHAR_TO_TCHAR (subdir_env);
+ exe_sub_dir += ACE_DIRECTORY_SEPARATOR_STR;
+ }
+
ACE_Process_Options options;
options.command_line (ACE_TEXT (".") ACE_DIRECTORY_SEPARATOR_STR
- ACE_TEXT ("Process_Test")
+ ACE_TEXT ("%sProcess_Test")
ACE_PLATFORM_EXE_SUFFIX
ACE_TEXT (" -c -h %d -f %s"),
+ exe_sub_dir.c_str(),
(int)inherit_files,
tempfile);
options.handle_inheritance (inherit_files); /* ! */
-
+
// Spawn child
ACE_Process child;
@@ -125,7 +132,7 @@ run_parent (bool inherit_files)
result = child.wait (&child_status);
if (result == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("Could NOT wait on child process\n")));
- else if (child_status == 0)
+ else if (child_status == 0)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Child %d finished ok\n"),
child.getpid ()));
@@ -162,7 +169,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_Get_Opt getopt (argc, argv, ACE_TEXT ("ch:f:"));
- while ((c = getopt ()) != -1)
+ while ((c = getopt ()) != -1)
switch ((char) c)
{
case 'c':
@@ -182,10 +189,10 @@ run_main (int argc, ACE_TCHAR *argv[])
break;
}
- if (ischild)
+ if (ischild)
{
ACE_TCHAR lognm[MAXPATHLEN];
- int mypid (ACE_OS::getpid ());
+ int const mypid (ACE_OS::getpid ());
ACE_OS::sprintf(lognm, ACE_TEXT ("Process_Test-child-%d"), mypid);
ACE_START_TEST (lognm);
@@ -196,15 +203,16 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Could not retrieve open files\n")),
-1);
- else if (result == handle_inherit)
+ else if (result == handle_inherit)
result = 0;
- else
+ else
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Handle inheritance test failed\n")));
+ ACE_TEXT ("Handle inheritance test failed with ")
+ ACE_TEXT ("%d, expected %d\n"), result, handle_inherit));
ACE_END_LOG;
return result;
}
- else
+ else
{
ACE_START_TEST (ACE_TEXT ("Process_Test"));
@@ -215,7 +223,7 @@ run_main (int argc, ACE_TCHAR *argv[])
run_parent (false);
ACE_END_TEST;
- }
+ }
#endif /* ! ACE_LACKS_FORK */
return 0;
diff --git a/ACE/tests/QtReactor_Test.cpp b/ACE/tests/QtReactor_Test.cpp
index 95b116dc598..0f6cdb1f629 100644
--- a/ACE/tests/QtReactor_Test.cpp
+++ b/ACE/tests/QtReactor_Test.cpp
@@ -1,53 +1,46 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// QtReactor_Test.cpp
-//
-// = DESCRIPTION
-// Simple test of QtReactor. Test is intended to verify if QtReactor
-// correctly cooperates with Qt event loop in typical application. Test
-// creates a number of timers which send datagrams. These datagrams are
-// expected by datagram_handlers registered in reactor. Test asynchronously
-// establishes also a number of loopback tcp connections using ACE_Acceptors
-// and ACE_Connectors. Socket activities are handled asynchronously to ensure
-// that reactor does not lose events in traffic transmission. Moreover, test
-// registers and removes handlers frequently to cover register/remove_handler
-// method of QtReactor which are known (10/07/2004) to be buggy.
-//
-// Classes:
-// QTestApplication - main qt application running event loop for a
-// finite time
-// Dgram_Handler - responsible for sending and receiving datagrams as
-// well as handling timeouts. Datagrams are sent in
-// handle_timeout method.
-// TCPConnectionHandler - connection handler responsible for sending and
-// receiving data using tcp streams.
-// TCPAcceptorHandler - acceptor responsible for acceptance and
-// registration of connections in HandlersRegister
-// class.
-// HandlersRegister - register of event_handlers, responsible also for
-// the analysis of test results.
-//
-// = AUTHOR
-// Marek Brudka <mbrudka@elka.pw.edu.pl>
-//
-// ============================================================================
-#include "test_config.h"
+//=============================================================================
+/**
+ * @file QtReactor_Test.cpp
+ *
+ * $Id$
+ *
+ * Simple test of QtReactor. Test is intended to verify if QtReactor
+ * correctly cooperates with Qt event loop in typical application. Test
+ * creates a number of timers which send datagrams. These datagrams are
+ * expected by datagram_handlers registered in reactor. Test asynchronously
+ * establishes also a number of loopback tcp connections using ACE_Acceptors
+ * and ACE_Connectors. Socket activities are handled asynchronously to ensure
+ * that reactor does not lose events in traffic transmission. Moreover, test
+ * registers and removes handlers frequently to cover register/remove_handler
+ * method of QtReactor which are known (10/07/2004) to be buggy.
+ *
+ * Classes:
+ * QTestApplication - main qt application running event loop for a
+ * finite time
+ * Dgram_Handler - responsible for sending and receiving datagrams as
+ * well as handling timeouts. Datagrams are sent in
+ * handle_timeout method.
+ * TCPConnectionHandler - connection handler responsible for sending and
+ * receiving data using tcp streams.
+ * TCPAcceptorHandler - acceptor responsible for acceptance and
+ * registration of connections in HandlersRegister
+ * class.
+ * HandlersRegister - register of event_handlers, responsible also for
+ * the analysis of test results.
+ *
+ *
+ * @author Marek Brudka <mbrudka@elka.pw.edu.pl>
+ */
+//=============================================================================
-ACE_RCSID (tests,
- QtReactor_Test,
- "$Id$")
+
+#include "test_config.h"
#include <assert.h>
-#include <qapplication.h>
-#include <qtimer.h>
+#include <QtGui/qapplication.h>
+#include <QtCore/qtimer.h>
#include "ace/OS_NS_time.h"
#include "ace/Time_Value.h"
@@ -83,7 +76,10 @@ void QTestApplication::exec (int msec)
{
finishTimer_.stop ();
if (0 < msec )
- finishTimer_.start (msec, TRUE);
+ {
+ finishTimer_.setSingleShot (TRUE);
+ finishTimer_.start (msec);
+ }
inherited::exec ();
}
@@ -169,8 +165,8 @@ public:
virtual int handle_close (ACE_HANDLE handle,ACE_Reactor_Mask close_mask);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int open (void * = 0);
- //FUZZ: enable check_for_lack_ACE_OS
int scheduleSend (ACE_Message_Block *);
int sendBuffers ();
diff --git a/ACE/tests/QtReactor_Test.h b/ACE/tests/QtReactor_Test.h
index 6996ad274b1..43ec4df3107 100644
--- a/ACE/tests/QtReactor_Test.h
+++ b/ACE/tests/QtReactor_Test.h
@@ -3,8 +3,8 @@
#ifndef QTREACTOR_TEST_H
#define QTREACTOR_TEST_H
-#include <qapplication.h>
-#include <qtimer.h>
+#include <QtGui/qapplication.h>
+#include <QtCore/qtimer.h>
class QTestApplication: public QApplication
{
diff --git a/ACE/tests/RB_Tree_Test.cpp b/ACE/tests/RB_Tree_Test.cpp
index 1b3658d72b1..2e752a50e5b 100644
--- a/ACE/tests/RB_Tree_Test.cpp
+++ b/ACE/tests/RB_Tree_Test.cpp
@@ -1,39 +1,36 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// RB_Tree_Test.cpp
-//
-// = DESCRIPTION
-// This is a test to verify and illustrate the use of the
-// <ACE_RB_Tree ACE_RB_Tree_Iterator> and
-// <ACE_RB_Tree_Reverse_Iterator> classes. Two different key and
-// item types are used in order to demonstrate specialization of
-// the <ACE_Less_Than> comparison function object template: int
-// (for which the native < operator is sufficient), and const char
-// * (for which < operator semantics must be replaced by strcmp
-// semantics). An RB tree for each of the four possible type
-// parameter permutations over int and const char * is constructed
-// and filled in, and the resulting order is checked via an
-// iterator over each.
-//
-// = AUTHOR
-// Chris Gill <cdgill@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "test_config.h" /* Include first to enable ACE_ASSERT. */
+
+//=============================================================================
+/**
+ * @file RB_Tree_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test to verify and illustrate the use of the
+ * <ACE_RB_Tree ACE_RB_Tree_Iterator> and
+ * <ACE_RB_Tree_Reverse_Iterator> classes. Two different key and
+ * item types are used in order to demonstrate specialization of
+ * the <ACE_Less_Than> comparison function object template: int
+ * (for which the native < operator is sufficient), and const char
+ * * (for which < operator semantics must be replaced by strcmp
+ * semantics). An RB tree for each of the four possible type
+ * parameter permutations over int and const char * is constructed
+ * and filled in, and the resulting order is checked via an
+ * iterator over each.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "test_config.h" /* Include first to enable ACE_TEST_ASSERT. */
#include "ace/RB_Tree.h"
#include "ace/SString.h"
#include "ace/Null_Mutex.h"
#include "RB_Tree_Test.h"
-ACE_RCSID(tests, RB_Tree_Test, "$Id$")
+
// Type definitions for the four distinct parameterizations of the
// test.
diff --git a/ACE/tests/RB_Tree_Test.h b/ACE/tests/RB_Tree_Test.h
index 4f20674a17f..5f005e46e6c 100644
--- a/ACE/tests/RB_Tree_Test.h
+++ b/ACE/tests/RB_Tree_Test.h
@@ -1,33 +1,32 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// RB_Tree_Test.cpp
-//
-// = DESCRIPTION
-// Header file for a test to verify and illustrate the use of the
-// ACE_RB_Tree ACE_RB_Tree_Iterator, and
-// ACE_RB_Tree_Reverse_Iterator classes.
-// iterator over each.
-//
-// = AUTHOR
-// Chris Gill <cdgill@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file RB_Tree_Test.h
+ *
+ * $Id$
+ *
+ * Header file for a test to verify and illustrate the use of the
+ * ACE_RB_Tree ACE_RB_Tree_Iterator, and
+ * ACE_RB_Tree_Reverse_Iterator classes.
+ * iterator over each.
+ *
+ *
+ * @author Chris Gill <cdgill@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+/**
+ * @class ACE_RB_Tree_Test
+ *
+ * @brief Implements a templatized test class for the RB_Tree ADT and its
+ * iterators.
+ *
+ */
template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
class ACE_RB_Tree_Test
{
- // = TITLE
- // Implements a templatized test class for the RB_Tree ADT and its
- // iterators.
- //
- // = DESCRIPTION
// To run the test class on a particular type instantiation of the
// RB_Tree, simply instantiate the test class template with the
@@ -44,69 +43,69 @@ public:
// = Initialization and termination methods.
+ /// Constructor.
ACE_RB_Tree_Test (int entry_count,
EXT_ID key_array [],
INT_ID item_array [],
int order_index []);
- // Constructor.
+ /// Destructor.
~ACE_RB_Tree_Test (void);
- // Destructor.
+ /// Run the individual interface and iteration tests in order.
void run_test (void);
- // Run the individual interface and iteration tests in order.
private:
+ /// Tests stable and deprecated insertion interfaces.
void test_tree_insertion (void);
- // Tests stable and deprecated insertion interfaces.
+ /// Tests forward and reverse iteration after insertion in both
+ /// trees.
void test_post_insertion_iteration (void);
- // Tests forward and reverse iteration after insertion in both
- // trees.
+ ///Tests forward and reverse partial iteration
void test_partial_iteration(void);
- //Tests forward and reverse partial iteration
+ /// Tests stable and deprecated deletion interfaces.
void test_tree_deletion (void);
- // Tests stable and deprecated deletion interfaces.
+ /// Tests forward and reverse iteration after deletions in both
+ /// trees.
void test_post_deletion_iteration (void);
- // Tests forward and reverse iteration after deletions in both
- // trees.
+ /// Tree for testing stable interface.
TREE stable_tree_;
- // Tree for testing stable interface.
+ /// Forward iterator for tree for testing stable interface.
ITERATOR stable_fwd_iter_;
- // Forward iterator for tree for testing stable interface.
ITERATOR part_fwd_iter_;
REVERSE_ITERATOR part_rev_iter_;
+ /// Forward iterator for tree for testing stable interface.
REVERSE_ITERATOR stable_rev_iter_;
- // Forward iterator for tree for testing stable interface.
+ /// Tree for testing deprecated interface.
TREE deprecated_tree_;
- // Tree for testing deprecated interface.
+ /// Forward iterator for tree for testing deprecated interface.
ITERATOR deprecated_fwd_iter_;
- // Forward iterator for tree for testing deprecated interface.
+ /// Forward iterator for tree for testing deprecated interface.
REVERSE_ITERATOR deprecated_rev_iter_;
- // Forward iterator for tree for testing deprecated interface.
+ /// Number of entries in the key, item, and index arrays.
int entry_count_;
- // Number of entries in the key, item, and index arrays.
+ /// Array of EXT_IDs (keys) with which to test.
EXT_ID *key_array_;
- // Array of EXT_IDs (keys) with which to test.
+ /// Array of INT_IDs (items) with which to test.
INT_ID *item_array_;
- // Array of INT_IDs (items) with which to test.
+ /// Order of indices in the key and item arrays.
int *order_index_;
- // Order of indices in the key and item arrays.
};
diff --git a/ACE/tests/RW_Process_Mutex_Test.cpp b/ACE/tests/RW_Process_Mutex_Test.cpp
index a657b97358f..743af11191f 100644
--- a/ACE/tests/RW_Process_Mutex_Test.cpp
+++ b/ACE/tests/RW_Process_Mutex_Test.cpp
@@ -1,19 +1,16 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// RW_Process_Mutex_Test.cpp
-//
-// = DESCRIPTION
-// Tests an <ACE_RW_Process_Mutex> shared between multiple child processes.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file RW_Process_Mutex_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests an <ACE_RW_Process_Mutex> shared between multiple child processes.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Process.h"
@@ -27,7 +24,7 @@
#include "ace/OS_NS_sys_time.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, RW_Process_Mutex_Test, "$Id$")
+
// The parent process is number -1. Writer is 0; Readers are 1-3.
static int child_nr = -1;
diff --git a/ACE/tests/Reactor_Dispatch_Order_Test.cpp b/ACE/tests/Reactor_Dispatch_Order_Test.cpp
index eb6e9595b68..648c5d48765 100644
--- a/ACE/tests/Reactor_Dispatch_Order_Test.cpp
+++ b/ACE/tests/Reactor_Dispatch_Order_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Dispatch_Order_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that checks the order of dispatching of
-// ACE Reactors. Order should be: timeout, output, and then input.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactor_Dispatch_Order_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that checks the order of dispatching of
+ * ACE Reactors. Order should be: timeout, output, and then input.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -26,7 +23,7 @@
#include "ace/Pipe.h"
#include "ace/ACE.h"
-ACE_RCSID(tests, Reactor_Dispatch_Order_Test, "$Id$")
+
static const char *message =
"Hello there! Hope you get this message";
@@ -78,7 +75,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;
@@ -124,13 +121,13 @@ Handler::handle_output (ACE_HANDLE)
else
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Handler::handle_output\n")));
-#if defined (__OpenBSD__) || defined (ACE_VXWORKS) || defined (__Lynx__)
+#if defined (__OpenBSD__) || defined (ACE_VXWORKS)
// All that we need written has been written, so don't
// call handle_output again.
this->reactor ()->mask_ops (this->pipe_.read_handle (),
ACE_Event_Handler::WRITE_MASK,
ACE_Reactor::CLR_MASK);
-#endif /* __OpenBSD__ || ACE_VXWORKS || __Lynx__ */
+#endif /* __OpenBSD__ || ACE_VXWORKS */
return 0;
}
diff --git a/ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp b/ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp
index f852d3c2ffe..29e3103d5d1 100644
--- a/ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp
+++ b/ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Dispatch_Order_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that checks the order of dispatching of
-// ACE Reactors. Order should be: timeout, output, and then input.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactor_Dispatch_Order_Test_Dev_Poll.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that checks the order of dispatching of
+ * ACE Reactors. Order should be: timeout, output, and then input.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -26,7 +23,7 @@
#include "ace/Pipe.h"
#include "ace/ACE.h"
-ACE_RCSID(tests, Reactor_Dispatch_Order_Test, "$Id$")
+
#if defined (ACE_HAS_DEV_POLL) || defined (ACE_HAS_EVENT_POLL)
@@ -80,7 +77,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 +123,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_Exceptions_Test.cpp b/ACE/tests/Reactor_Exceptions_Test.cpp
index eda68c3630e..d020ea2d61d 100644
--- a/ACE/tests/Reactor_Exceptions_Test.cpp
+++ b/ACE/tests/Reactor_Exceptions_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Exceptions_Test.cpp
-//
-// = DESCRIPTION
-// This is a test that makes sure the <ACE_Reactor> works
-// correctly in the face of C++ exceptions and threads.
-//
-// = AUTHOR
-// Luca Priorelli <lucapri@mbox.vol.it> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactor_Exceptions_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test that makes sure the <ACE_Reactor> works
+ * correctly in the face of C++ exceptions and threads.
+ *
+ *
+ * @author Luca Priorelli <lucapri@mbox.vol.it> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Reactor.h"
@@ -24,9 +21,7 @@
#include "ace/Thread_Manager.h"
#include "ace/Select_Reactor.h"
-ACE_RCSID(tests, Reactor_Exceptions_Test, "$Id$")
-#if defined (ACE_HAS_EXCEPTIONS)
// Just need a simple exception class.
class Except {};
@@ -129,14 +124,11 @@ worker (void)
}
#endif /* ACE_HAS_THREADS */
-#endif /* ACE_HAS_EXCEPTIONS */
-
int
run_main (int argc, ACE_TCHAR *argv[])
{
ACE_START_TEST (ACE_TEXT ("Reactor_Exceptions_Test"));
-#if defined (ACE_HAS_EXCEPTIONS)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Starting tracing\n")));
@@ -186,12 +178,6 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT (" (%t) exiting main\n")));
-#else
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
- ACE_ERROR ((LM_INFO,
- ACE_TEXT ("C++ exception support not enabled on this platform\n")));
-#endif /* ACE_HAS_EXCEPTIONS */
ACE_END_TEST;
return 0;
diff --git a/ACE/tests/Reactor_Fairness_Test.cpp b/ACE/tests/Reactor_Fairness_Test.cpp
new file mode 100644
index 00000000000..62fb7035b62
--- /dev/null
+++ b/ACE/tests/Reactor_Fairness_Test.cpp
@@ -0,0 +1,406 @@
+
+//=============================================================================
+/**
+ * @file Reactor_Fairness_Test.cpp
+ *
+ * $Id$
+ *
+ * This test is used to time the dispatching mechanisms of the
+ * <ACE_Reactor>s. Both the <ACE_WFMO_Reactor> and
+ * <ACE_Select_Reactor> can be tested.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
+#include "Reactor_Fairness_Test.h"
+#include "ace/Get_Opt.h"
+#include "ace/SOCK_Connector.h"
+#include "ace/SOCK_Acceptor.h"
+#include "ace/Acceptor.h"
+#include "ace/Reactor.h"
+#include "ace/Dev_Poll_Reactor.h"
+#include "ace/WFMO_Reactor.h"
+#include "ace/Select_Reactor.h"
+#include "ace/TP_Reactor.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/Numeric_Limits.h"
+#include "ace/Signal.h"
+#include "ace/Atomic_Op.h"
+#include "ace/Thread_Mutex.h"
+
+
+
+#if defined (ACE_HAS_THREADS)
+
+namespace {
+
+ const char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
+
+ // Number of connections to run
+ int opt_nconnections = 5;
+
+ // How many seconds to run the test on each reactor
+ int opt_secs = 30;
+
+ // How many thread to run in the reactor loop
+ int opt_reactor_threads = 3;
+
+ // Extra debug messages
+ int opt_debug = 0;
+
+ ACE_Atomic_Op<ACE_Thread_Mutex, int> reactor_thread_nr = 0;
+
+ // Class to collect and report on data handling for each test pass.
+ struct Result_Set {
+ int nr_conns;
+ typedef ACE_Array_Map<ACE_HANDLE, unsigned int> report_map;
+ report_map reports;
+
+ void reset (int n_connections) // Reset for next run
+ {
+ reports.clear ();
+ nr_conns = n_connections;
+ }
+
+ void report (ACE_HANDLE h, unsigned int chunks)
+ {
+ std::pair<ACE_HANDLE, unsigned int> newval (h, chunks);
+ reports.insert (newval);
+ }
+
+ // Return 1 if this looks like a failure wrt fairness.
+ int analyze_reports (void)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Results (%d entries):\n"),
+ reports.size()));
+ unsigned int max_chunks = 0;
+ unsigned int min_chunks = ACE_Numeric_Limits<unsigned int>::max();
+ for (report_map::iterator iter = reports.begin();
+ iter != reports.end ();
+ ++iter)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" handle %d: %u\n"),
+ (*iter).first, (*iter).second));
+ if ((*iter).second > max_chunks)
+ max_chunks = (*iter).second;
+ if ((*iter).second < min_chunks)
+ min_chunks = (*iter).second;
+ }
+ if ((max_chunks - min_chunks) > max_chunks / 10)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Too much unfairness (max %u, min %u)\n"),
+ max_chunks,
+ min_chunks),
+ 1);
+ return 0;
+ }
+ };
+ Result_Set results;
+}
+
+// Handle incoming data
+int
+Read_Handler::handle_input (ACE_HANDLE h)
+{
+ char buf[BUFSIZ];
+ ssize_t result = this->peer ().recv (buf, ACE_OS::strlen(ACE_ALPHABET));
+ if (opt_debug)
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT ("(%t) Read_Handler::handle_input h %d, result %b\n"),
+ h, result));
+ if (result > 0)
+ {
+ if (opt_debug)
+ {
+ buf[result] = 0;
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Read_Handler::handle_input: h %d: %C\n"),
+ h,
+ buf));
+ }
+ ++this->chunks_in;
+ }
+ else if (result < 0)
+ {
+ if (errno == EWOULDBLOCK)
+ return 0;
+ else
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("handle_input: h %d: %p (errno: %d)\n"),
+ h, ACE_TEXT ("recv"), ACE_ERRNO_GET));
+
+ // This will cause handle_close to get called.
+ return -1;
+ }
+ }
+ else // result == 0
+ {
+ if (opt_debug)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Handle %d closing\n"), h));
+ // This will cause handle_close to get called.
+ return -1;
+ }
+
+ return 0;
+}
+
+// Handle connection shutdown.
+
+int
+Read_Handler::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask /*close_mask*/)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Read_Handler handle %d close; %u chunks\n"),
+ handle, chunks_in));
+ results.report (handle, this->chunks_in);
+
+ // Shutdown
+ this->destroy ();
+ return 0;
+}
+
+// Pump data as fast as possible to all the sockets.
+ACE_THR_FUNC_RETURN
+sender (void *arg)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) running sender\n")));
+
+ // Ensure an error, not a signal, on broken pipe.
+ ACE_Sig_Action no_sigpipe ((ACE_SignalHandler) SIG_IGN);
+ ACE_Sig_Action original_action;
+ no_sigpipe.register_action (SIGPIPE, &original_action);
+
+ ACE_INET_Addr *connection_addr =
+ reinterpret_cast<ACE_INET_Addr *> (arg);
+
+ int i;
+
+ // Automagic memory cleanup.
+ ACE_SOCK_Stream *temp_socks = 0;
+ ACE_NEW_RETURN (temp_socks,
+ ACE_SOCK_Stream [opt_nconnections],
+ 0);
+ ACE_Auto_Basic_Array_Ptr <ACE_SOCK_Stream> socks (temp_socks);
+
+ // Connection all <opt_nconnections> connections before sending data.
+ ACE_SOCK_Connector c;
+ for (i = 0; i < opt_nconnections; i++)
+ {
+ if (c.connect (socks[i], *connection_addr) == -1)
+ {
+ if (errno != ECONNREFUSED || i == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%t) conn %d %p\n"),
+ ACE_TEXT ("connect")));
+ while (--i >= 0)
+ socks[i].close ();
+ break;
+ }
+ }
+ socks[i].enable (ACE_NONBLOCK);
+ }
+ if (i < opt_nconnections)
+ return 0;
+
+ // Keep blasting data on all possible connections until this thread
+ // is canceled. If we manage to overrun the receiver on all sockets,
+ // sleep a bit for the receivers to catch up.
+ ACE_thread_t me = ACE_Thread::self ();
+ ACE_Thread_Manager *tm = ACE_Thread_Manager::instance ();
+ size_t send_cnt = ACE_OS::strlen (ACE_ALPHABET);
+ bool fail = false;
+ while (!tm->testcancel (me) && !fail)
+ {
+ bool sent_something = false;
+ for (i = 0; i < opt_nconnections; i++)
+ {
+ ssize_t cnt = socks[i].send (ACE_ALPHABET, send_cnt);
+ if (opt_debug)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) h %d sent %b\n"),
+ socks[i].get_handle(),
+ cnt));
+ if (cnt > 0)
+ {
+ sent_something = true;
+ continue;
+ }
+ if (errno == EWOULDBLOCK)
+ continue;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%t) %p; giving up\n"),
+ ACE_TEXT ("sender")));
+ fail = true;
+ break;
+ }
+ if (!fail && !sent_something)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) Full sockets... pausing...\n")));
+ ACE_OS::sleep (1);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Resuming sending.\n")));
+ }
+ }
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Done sending.\n")));
+ for (i = 0; i < opt_nconnections; i++)
+ socks[i].close ();
+ return 0;
+}
+
+ACE_THR_FUNC_RETURN
+reactor_loop (void *p)
+{
+ ACE_Reactor *r = reinterpret_cast<ACE_Reactor *> (p);
+ int me = reactor_thread_nr++;
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Reactor loop %d starting...\n"), me));
+ if (me == 0)
+ r->owner (ACE_Thread::self ());
+ if (r->run_reactor_event_loop () == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t) %p\n"), ACE_TEXT ("reactor")));
+ else
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) reactor thread %d ending\n"), me));
+ return 0;
+}
+
+void
+run (ACE_Reactor_Impl &ri, const ACE_TCHAR *what, bool tp = true)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Starting test with %s\n"), what));
+
+ ACE_Reactor r (&ri);
+ ACE_Thread_Manager *tm = ACE_Thread_Manager::instance ();
+ ACE_Acceptor<Read_Handler, ACE_SOCK_ACCEPTOR> acceptor;
+
+ // Bind acceptor to any port and then find out what the port was.
+ ACE_INET_Addr server_addr;
+ ACE_INET_Addr local_addr (ACE_sap_any_cast (const ACE_INET_Addr &));
+ if (acceptor.open (local_addr, &r) == -1
+ || acceptor.acceptor ().get_local_addr (server_addr) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%t) %p\n"),
+ ACE_TEXT ("acceptor open")));
+ return;
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) starting server at port %d\n"),
+ server_addr.get_port_number ()));
+
+ reactor_thread_nr = 0; // Reset for new set
+ if (-1 == tm->spawn_n (tp ? opt_reactor_threads : 1, reactor_loop, &r))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("reactor thread spawn")));
+ acceptor.close();
+ return;
+ }
+
+ ACE_INET_Addr connection_addr (server_addr.get_port_number (),
+ ACE_DEFAULT_SERVER_HOST);
+
+ int sender_grp = tm->spawn (sender, &connection_addr);
+ if (-1 == sender_grp)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("sender spawn")));
+ }
+ else
+ {
+ ACE_OS::sleep (opt_secs);
+ tm->cancel_grp (sender_grp);
+ }
+ r.end_reactor_event_loop ();
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) waiting for the test threads...\n")));
+ tm->wait ();
+}
+
+int
+run_main (int argc, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("Reactor_Fairness_Test"));
+
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_Get_Opt getopt (argc, argv, ACE_TEXT ("c:s:t:d"), 1);
+ for (int c; (c = getopt ()) != -1; )
+ //FUZZ: enble check_for_lack_ACE_OS
+ switch (c)
+ {
+ case 'c':
+ opt_nconnections = ACE_OS::atoi (getopt.opt_arg ());
+ break;
+ case 's':
+ opt_secs = ACE_OS::atoi (getopt.opt_arg ());
+ break;
+ case 't':
+ opt_reactor_threads = ACE_OS::atoi (getopt.opt_arg ());
+ break;
+ case 'd':
+ opt_debug = 1;
+ break;
+ }
+
+ // Run the test once for each reactor type available.
+ int fails = 0;
+ results.reset (opt_nconnections);
+ {
+ ACE_Select_Reactor r;
+ run (r, ACE_TEXT ("Select Reactor"), false); // No thread pool
+ }
+ fails += results.analyze_reports ();
+
+ results.reset (opt_nconnections);
+ {
+ ACE_TP_Reactor r;
+ run (r, ACE_TEXT ("TP Reactor"));
+ }
+ fails += results.analyze_reports ();
+
+#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL)
+ results.reset (opt_nconnections);
+ {
+ ACE_Dev_Poll_Reactor r;
+ run (r, ACE_TEXT ("Dev_Poll Reactor"));
+ }
+ fails += results.analyze_reports ();
+#endif /* ACE_HAS_EVENT_POLL || ACE_HAS_DEV_POLL */
+
+#if defined (ACE_WIN32)
+ results.reset (opt_nconnections);
+ {
+ ACE_WFMO_Reactor r;
+ run (r, ACE_TEXT ("WFMO Reactor"));
+ }
+ fails += results.analyze_reports ();
+#endif /* ACE_WIN32 */
+
+ ACE_END_TEST;
+ return fails;
+}
+
+#else
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Reactor_Fairness_Test"));
+
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("threads not supported on this platform\n")));
+
+ ACE_END_TEST;
+ return 0;
+}
+#endif /* ACE_HAS_THREADS */
diff --git a/ACE/tests/Reactor_Fairness_Test.h b/ACE/tests/Reactor_Fairness_Test.h
new file mode 100644
index 00000000000..589947cef17
--- /dev/null
+++ b/ACE/tests/Reactor_Fairness_Test.h
@@ -0,0 +1,49 @@
+
+//=============================================================================
+/**
+ * @file Reactor_Fairness_Test.h
+ *
+ * $Id$
+ *
+ * This file includes template class definitions for the
+ * Reactor_Fairness_Test.cpp program. This class gets its own
+ * header file to work around AIX C++ compiler "features" related
+ * to template instantiation...
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
+
+#ifndef ACE_TESTS_REACTOR_FAIRNESS_TEST_H
+#define ACE_TESTS_REACTOR_FAIRNESS_TEST_H
+
+#include "ace/SOCK_Stream.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Svc_Handler.h"
+
+/**
+ * @class Read_Handler
+ *
+ * @brief Simple class for reading in the data
+ */
+class Read_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+{
+public:
+ Read_Handler () : chunks_in (0) {}
+
+ /// The Svc_Handler callbacks.
+ virtual int handle_input (ACE_HANDLE h);
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+private:
+ unsigned int chunks_in;
+};
+
+#endif /* ACE_TESTS_REACTOR_FAIRNESS_TEST_H */
diff --git a/ACE/tests/Reactor_Notification_Queue_Test.cpp b/ACE/tests/Reactor_Notification_Queue_Test.cpp
index 7e22474d3b3..c080701194f 100644
--- a/ACE/tests/Reactor_Notification_Queue_Test.cpp
+++ b/ACE/tests/Reactor_Notification_Queue_Test.cpp
@@ -23,9 +23,6 @@
#include "ace/Select_Reactor.h"
#include "ace/WFMO_Reactor.h"
-ACE_RCSID(tests,
- Reactor_Notification_Queue_Test, "$Id$")
-
class Event_Handler : public ACE_Event_Handler
{
public:
diff --git a/ACE/tests/Reactor_Notify_Test.cpp b/ACE/tests/Reactor_Notify_Test.cpp
index 15adcd8eab6..128a2c61a43 100644
--- a/ACE/tests/Reactor_Notify_Test.cpp
+++ b/ACE/tests/Reactor_Notify_Test.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Notify_Test.cpp
-//
-// = DESCRIPTION
-// This is a test that illustrates how the <ACE_Reactor>'s
-// <notify> method works under various <max_notify_iterations>
-// settings. It also tests that the <disable_notify_pipe> option
-// works correctly. Moreover, if the $ACE_ROOT/ace/config.h file
-// has the ACE_HAS_REACTOR_NOTIFICATION_QUEUE option enabled this
-// test will also exercise this feature.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactor_Notify_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test that illustrates how the <ACE_Reactor>'s
+ * <notify> method works under various <max_notify_iterations>
+ * settings. It also tests that the <disable_notify_pipe> option
+ * works correctly. Moreover, if the $ACE_ROOT/ace/config.h file
+ * has the ACE_HAS_REACTOR_NOTIFICATION_QUEUE option enabled this
+ * test will also exercise this feature.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_unistd.h"
@@ -31,7 +28,7 @@
#include "ace/Select_Reactor.h"
#include "ace/Thread_Semaphore.h"
-ACE_RCSID(tests, Reactor_Notify_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -48,8 +45,8 @@ public:
~Quiet_Notify_Tester (void) { this->wait (); }
//FUZZ: disable check_for_lack_ACE_OS
+ /// Start the reactor event thread.
virtual int open (void * = 0);
- // Start the reactor event thread.
// Run the reactor event loop.
virtual int svc (void);
@@ -117,58 +114,64 @@ run_quiet_notify_test (void)
class Supplier_Task : public ACE_Task<ACE_MT_SYNCH>
{
public:
+ /// Constructor.
Supplier_Task (int disable_notify_pipe,
const ACE_Time_Value &tv);
- // Constructor.
+ /// Destructor.
~Supplier_Task (void);
- // Destructor.
//FUZZ: disable check_for_lack_ACE_OS
+ /// Make this an Active Object.
virtual int open (void * = 0);
- // Make this an Active Object.
+ /// Close down the supplier.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int close (u_long);
- // Close down the supplier.
- //FUZZ: enable check_for_lack_ACE_OS
+ /// Generates events and sends them to the <Reactor>'s <notify>
+ /// method.
virtual int svc (void);
- // Generates events and sends them to the <Reactor>'s <notify>
- // method.
+ /// Releases the <waiter_> semaphore when called by the <Reactor>'s
+ /// notify handler.
virtual int handle_exception (ACE_HANDLE);
- // Releases the <waiter_> semaphore when called by the <Reactor>'s
- // notify handler.
+ /**
+ * Called every time through the main <ACE_Reactor> event loop to
+ * illustrate the difference between "limited" and "unlimited"
+ * notification.
+ */
virtual int handle_output (ACE_HANDLE);
- // Called every time through the main <ACE_Reactor> event loop to
- // illustrate the difference between "limited" and "unlimited"
- // notification.
+ /// Release the <waiter_>.
void release (void);
- // Release the <waiter_>.
private:
+ /// Perform the notifications.
int perform_notifications (int notifications);
- // Perform the notifications.
+ /// Used to hand-shake between the <Supplier_Task> and the
+ /// <Reactor>'s notify mechanism.
ACE_Thread_Semaphore waiter_;
- // Used to hand-shake between the <Supplier_Task> and the
- // <Reactor>'s notify mechanism.
+ /**
+ * We use this pipe just to get a handle that is always "active,"
+ * i.e., the <ACE_Reactor> will always dispatch its <handle_output>
+ * method.
+ */
ACE_Pipe pipe_;
- // We use this pipe just to get a handle that is always "active,"
- // i.e., the <ACE_Reactor> will always dispatch its <handle_output>
- // method.
+ /// Keeps track of whether the notification pipe in the <ACE_Reactor>
+ /// has been diabled or not.
int disable_notify_pipe_;
- // Keeps track of whether the notification pipe in the <ACE_Reactor>
- // has been diabled or not.
+ /**
+ * Keeps track of whether we're running with a <LONG_TIMEOUT>, which
+ * is used for the ACE_HAS_REACTOR_NOTIFICATION_QUEUE portion of
+ * this test.
+ */
int long_timeout_;
- // Keeps track of whether we're running with a <LONG_TIMEOUT>, which
- // is used for the ACE_HAS_REACTOR_NOTIFICATION_QUEUE portion of
- // this test.
};
void
@@ -192,7 +195,7 @@ Supplier_Task::open (void *)
int result;
result = this->pipe_.open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
// Register the pipe's write handle with the <Reactor> for writing.
// This should mean that it's always "active."
@@ -202,12 +205,12 @@ Supplier_Task::open (void *)
(this->pipe_.write_handle (),
this,
ACE_Event_Handler::WRITE_MASK);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
// Make this an Active Object.
result = this->activate (THR_BOUND | THR_DETACHED);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
return 0;
}
@@ -224,7 +227,7 @@ Supplier_Task::close (u_long)
result = ACE_Reactor::instance ()->remove_handler
(this->pipe_.write_handle (),
ACE_Event_Handler::WRITE_MASK);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
else
{
@@ -233,7 +236,7 @@ Supplier_Task::close (u_long)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%t) waiting to be shutdown by main thread\n")));
result = this->waiter_.acquire ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
return 0;
}
@@ -256,7 +259,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
}
@@ -278,7 +281,7 @@ Supplier_Task::perform_notifications (int notifications)
ACE_TEXT ("(%t) %p\n"),
ACE_TEXT ("notify")));
else
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
// Wait for our <handle_exception> method to release the
@@ -287,7 +290,7 @@ Supplier_Task::perform_notifications (int notifications)
&& this->disable_notify_pipe_ == 0)
{
result = this->waiter_.acquire ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
}
@@ -321,7 +324,7 @@ Supplier_Task::svc (void)
int
Supplier_Task::handle_exception (ACE_HANDLE handle)
{
- ACE_ASSERT (handle == ACE_INVALID_HANDLE);
+ ACE_TEST_ASSERT (handle == ACE_INVALID_HANDLE);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%t) handle_exception\n")));
@@ -332,7 +335,7 @@ Supplier_Task::handle_exception (ACE_HANDLE handle)
int
Supplier_Task::handle_output (ACE_HANDLE handle)
{
- ACE_ASSERT (handle == this->pipe_.write_handle ());
+ ACE_TEST_ASSERT (handle == this->pipe_.write_handle ());
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%t) handle_output\n")));
@@ -371,17 +374,17 @@ run_test (int disable_notify_pipe,
// Set the Singleton Reactor.
ACE_Reactor *orig_reactor = ACE_Reactor::instance (reactor);
- ACE_ASSERT (ACE_LOG_MSG->op_status () != -1);
- ACE_ASSERT (ACE_Reactor::instance () == reactor);
+ ACE_TEST_ASSERT (ACE_LOG_MSG->op_status () != -1);
+ ACE_TEST_ASSERT (ACE_Reactor::instance () == reactor);
Supplier_Task task (disable_notify_pipe,
tv);
- ACE_ASSERT (ACE_LOG_MSG->op_status () != -1);
+ ACE_TEST_ASSERT (ACE_LOG_MSG->op_status () != -1);
int result;
result = task.open ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
if (tv.sec () == LONG_TIMEOUT)
// Sleep for a while so that the <ACE_Reactor>'s notification
@@ -439,13 +442,16 @@ run_test (int disable_notify_pipe,
#endif /* ACE_HAS_THREADS */
+/**
+ * @class Purged_Notify
+ *
+ * @brief <run_notify_purge_test> tests the reactor's
+ * purge_pending_notifications function. It does 2 notifications,
+ * and explicitly cancels one, and deletes the other's event
+ * handler, which should cause it to be cancelled as well.
+ */
class Purged_Notify : public ACE_Event_Handler
{
- // = TITLE
- // <run_notify_purge_test> tests the reactor's
- // purge_pending_notifications function. It does 2 notifications,
- // and explicitly cancels one, and deletes the other's event
- // handler, which should cause it to be cancelled as well.
virtual int handle_exception (ACE_HANDLE = ACE_INVALID_HANDLE)
{
diff --git a/ACE/tests/Reactor_Performance_Test.cpp b/ACE/tests/Reactor_Performance_Test.cpp
index 215fef181f3..47148b56cf6 100644
--- a/ACE/tests/Reactor_Performance_Test.cpp
+++ b/ACE/tests/Reactor_Performance_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Performance_Test.cpp
-//
-// = DESCRIPTION
-// This test is used to time the dispatching mechanisms of the
-// <ACE_Reactor>s. Both the <ACE_WFMO_Reactor> and
-// <ACE_Select_Reactor> can be tested.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactor_Performance_Test.cpp
+ *
+ * $Id$
+ *
+ * This test is used to time the dispatching mechanisms of the
+ * <ACE_Reactor>s. Both the <ACE_WFMO_Reactor> and
+ * <ACE_Select_Reactor> can be tested.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "Reactor_Performance_Test.h"
@@ -31,7 +28,7 @@
#include "ace/Select_Reactor.h"
#include "ace/Auto_Ptr.h"
-ACE_RCSID(tests, Reactor_Performance_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -108,7 +105,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;
@@ -360,7 +357,8 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_INET_Addr server_addr;
// Bind acceptor to any port and then find out what the port was.
- if (acceptor.open (ACE_sap_any_cast (const ACE_INET_Addr &)) == -1
+ ACE_INET_Addr local_addr (ACE_sap_any_cast (const ACE_INET_Addr &));
+ if (acceptor.open (local_addr) == -1
|| acceptor.acceptor ().get_local_addr (server_addr) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("(%t) %p\n"),
diff --git a/ACE/tests/Reactor_Performance_Test.h b/ACE/tests/Reactor_Performance_Test.h
index bde943c2951..139752c9090 100644
--- a/ACE/tests/Reactor_Performance_Test.h
+++ b/ACE/tests/Reactor_Performance_Test.h
@@ -1,24 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Performance_Test.h
-//
-// = DESCRIPTION
-// This file includes template class definitions for the
-// Reactor_Performance_Test.cpp program. This class gets its own
-// header file to work around AIX C++ compiler "features" related
-// to template instantiation...
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu> and
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactor_Performance_Test.h
+ *
+ * $Id$
+ *
+ * This file includes template class definitions for the
+ * Reactor_Performance_Test.cpp program. This class gets its own
+ * header file to work around AIX C++ compiler "features" related
+ * to template instantiation...
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> and Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_REACTOR_PERFORMANCE_TEST_H
#define ACE_TESTS_REACTOR_PERFORMANCE_TEST_H
@@ -31,29 +27,35 @@
#include "ace/Svc_Handler.h"
+/**
+ * @class Read_Handler
+ *
+ * @brief Simple class for reading in the data
+ */
class Read_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH>
{
- // = TITLE
- // Simple class for reading in the data
public:
static void set_countdown (int nconnections);
+ /// The Svc_Handler callbacks.
virtual int open (void *);
virtual int handle_input (ACE_HANDLE h);
virtual int handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask close_mask);
- // The Svc_Handler callbacks.
private:
+ /// How many connections are we waiting for.
static int waiting_;
- // How many connections are we waiting for.
};
+/**
+ * @class Write_Handler
+ *
+ * @brief This Svc_Handler simply connects to a server and sends some
+ * output to it. Its purpose is to feed the test.
+ */
class Write_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH>
{
- // = TITLE
- // This Svc_Handler simply connects to a server and sends some
- // output to it. Its purpose is to feed the test.
public:
virtual int open (void *);
virtual int send_data (void);
diff --git a/ACE/tests/Reactor_Registration_Test.cpp b/ACE/tests/Reactor_Registration_Test.cpp
index 2e3aaf08cb9..98ffede2e91 100644
--- a/ACE/tests/Reactor_Registration_Test.cpp
+++ b/ACE/tests/Reactor_Registration_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Registration_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of registering handlers with the Reactor.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file Reactor_Registration_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of registering handlers with the Reactor.
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
#include "ace/Pipe.h"
#include "ace/Reactor.h"
#include "ace/Select_Reactor.h"
@@ -24,8 +21,6 @@
#include "ace/WFMO_Reactor.h"
#include "ace/ACE.h"
-ACE_RCSID(tests, Reactor_Registration_Test, "$Id$")
-
static const char message[] = "abcdefghijklmnopqrstuvwxyz";
static const size_t message_size = 26;
static int iteration = 1;
diff --git a/ACE/tests/Reactor_Timer_Test.cpp b/ACE/tests/Reactor_Timer_Test.cpp
index cc34c5b1b70..f376b51c069 100644
--- a/ACE/tests/Reactor_Timer_Test.cpp
+++ b/ACE/tests/Reactor_Timer_Test.cpp
@@ -1,24 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Timer_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that illustrates the timer mechanism of
-// the reactor. Scheduling timers, resetting timer intervals,
-// handling expired timers and cancelling scheduled timers are
-// all exercised in this test.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt
-// <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactor_Timer_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that illustrates the timer mechanism of
+ * the reactor. Scheduling timers, resetting timer intervals,
+ * handling expired timers and cancelling scheduled timers are
+ * all exercised in this test.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Timer_Queue.h"
@@ -28,7 +24,7 @@
#include "ace/Recursive_Thread_Mutex.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(tests, Reactor_Timer_Test, "$Id$")
+
static int done = 0;
static int the_count = 0;
@@ -37,26 +33,26 @@ static int odd = 0;
class Time_Handler : public ACE_Event_Handler
{
public:
+ /// Default constructor
Time_Handler ();
- // Default constructor
+ /// Handle the timeout.
virtual int handle_timeout (const ACE_Time_Value &tv,
const void *arg);
- // Handle the timeout.
+ /// Called when <Time_Handler> is removed.
virtual int handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask close_mask);
- // Called when <Time_Handler> is removed.
+ /// Return our timer id.
long timer_id (void) const;
- // Return our timer id.
+ /// Set our timer id;
void timer_id (long);
- // Set our timer id;
private:
+ /// Stores the id of this timer.
long timer_id_;
- // Stores the id of this timer.
};
Time_Handler::Time_Handler ()
@@ -84,7 +80,7 @@ Time_Handler::handle_timeout (const ACE_Time_Value &tv,
{
long current_count = static_cast<long> (reinterpret_cast<size_t> (arg));
if (current_count >= 0)
- ACE_ASSERT (current_count == the_count);
+ ACE_TEST_ASSERT (current_count == the_count);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("[%x] Timer id %d with count #%d|%d timed out at %d!\n"),
@@ -140,7 +136,7 @@ test_registering_all_handlers (void)
ACE_Reactor::instance ()->schedule_timer (&rt[i],
(const void *) i,
ACE_Time_Value (2 * i + 1));
- ACE_ASSERT (t_id[i] != -1);
+ ACE_TEST_ASSERT (t_id[i] != -1);
rt[i].timer_id (t_id[i]);
}
@@ -166,7 +162,7 @@ test_registering_one_handler (void)
ACE_Reactor::instance ()->schedule_timer (&rt[0],
(const void *) i,
ACE_Time_Value (2 * i + 1));
- ACE_ASSERT (t_id[i] != -1);
+ ACE_TEST_ASSERT (t_id[i] != -1);
}
while (!done)
@@ -191,7 +187,7 @@ test_canceling_odd_timers (void)
t_id[i] = ACE_Reactor::instance ()->schedule_timer (&rt[i],
(const void *) i,
ACE_Time_Value (2 * i + 1));
- ACE_ASSERT (t_id[i] != -1);
+ ACE_TEST_ASSERT (t_id[i] != -1);
rt[i].timer_id (t_id[i]);
}
@@ -231,7 +227,7 @@ test_resetting_timer_intervals (void)
// Start off by making this an interval timer.
ACE_Time_Value (1));
- ACE_ASSERT (t_id != -1);
+ ACE_TEST_ASSERT (t_id != -1);
rt.timer_id (t_id);
while (!done)
diff --git a/ACE/tests/Reactors_Test.cpp b/ACE/tests/Reactors_Test.cpp
index 1d79e8a0c53..fc3bb3e3be5 100644
--- a/ACE/tests/Reactors_Test.cpp
+++ b/ACE/tests/Reactors_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactors_Test.cpp
-//
-// = DESCRIPTION
-// This is a test that performs a torture test of multiple
-// <ACE_Reactors> and <ACE_Tasks> in the same process.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>,
-// Detlef Becker <Detlef.Becker@med.siemens.de>, and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reactors_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test that performs a torture test of multiple
+ * <ACE_Reactors> and <ACE_Tasks> in the same process.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ * @author Detlef Becker <Detlef.Becker@med.siemens.de>
+ * @author and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Task.h"
@@ -25,7 +22,7 @@
#include "ace/Atomic_Op.h"
#include "ace/Recursive_Thread_Mutex.h"
-ACE_RCSID(tests, Reactors_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -33,9 +30,12 @@ ACE_Thread_Manager *thr_mgr;
static const int MAX_TASKS = 20;
+/**
+ * @class Test_Task
+ *
+ * @brief Exercise the tasks.
+ */
class Test_Task : public ACE_Task<ACE_MT_SYNCH>
- // = TITLE
- // Exercise the tasks.
{
public:
// = Initialization and termination methods.
@@ -44,21 +44,21 @@ public:
//FUZZ: disable check_for_lack_ACE_OS
// = Task hooks.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int open (void *args = 0);
virtual int close (u_long flags = 0);
virtual int svc (void);
- //FUZZ: enable check_for_lack_ACE_OS
// = Event Handler hooks.
virtual int handle_input (ACE_HANDLE handle);
virtual int handle_close (ACE_HANDLE fd,
ACE_Reactor_Mask close_mask);
private:
+ /// Number of iterations handled.
size_t handled_;
- // Number of iterations handled.
+ /// Number of tasks running.
static int task_count_;
- // Number of tasks running.
};
// Static data member initialization.
@@ -90,7 +90,7 @@ Test_Task::~Test_Task (void)
ACE_TEXT ("(%t) TT- Test_Task::task_count_ = %d\n"),
Test_Task::task_count_));
- ACE_ASSERT (Test_Task::task_count_ == 0);
+ ACE_TEST_ASSERT (Test_Task::task_count_ == 0);
}
int
@@ -111,7 +111,7 @@ Test_Task::close (u_long)
ACE_TEXT ("(%t) close Test_Task::task_count_ = %d\n"),
Test_Task::task_count_));
- ACE_ASSERT (Test_Task::task_count_ >= 0);
+ ACE_TEST_ASSERT (Test_Task::task_count_ >= 0);
return 0;
}
@@ -208,12 +208,12 @@ run_main (int, ACE_TCHAR *[])
ACE_START_TEST (ACE_TEXT ("Reactors_Test"));
#if defined (ACE_HAS_THREADS)
- ACE_ASSERT (ACE_LOG_MSG->op_status () != -1);
+ ACE_TEST_ASSERT (ACE_LOG_MSG->op_status () != -1);
thr_mgr = ACE_Thread_Manager::instance ();
ACE_Reactor reactor;
- ACE_ASSERT (ACE_LOG_MSG->op_status () != -1);
+ ACE_TEST_ASSERT (ACE_LOG_MSG->op_status () != -1);
Test_Task tt1[MAX_TASKS];
Test_Task tt2[MAX_TASKS];
diff --git a/ACE/tests/Reader_Writer_Test.cpp b/ACE/tests/Reader_Writer_Test.cpp
index d268bed118f..a96495ade53 100644
--- a/ACE/tests/Reader_Writer_Test.cpp
+++ b/ACE/tests/Reader_Writer_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reader_Writer_Test.cpp
-//
-// = DESCRIPTION
-// This test program verifies the functionality of the ACE_OS
-// implementation of readers/writer locks on Win32 and Posix
-// pthreads.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Doug C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reader_Writer_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program verifies the functionality of the ACE_OS
+ * implementation of readers/writer locks on Win32 and Posix
+ * pthreads.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Doug C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Thread.h"
@@ -28,7 +25,7 @@
#include "ace/RW_Thread_Mutex.h"
#include "ace/Time_Value.h"
-ACE_RCSID(tests, Reader_Writer_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -113,7 +110,7 @@ reader (void *)
for (size_t iterations = 1; iterations <= n_iterations; iterations++)
{
ACE_OS::sleep (pause);
- ACE_Read_Guard<ACE_RW_Thread_Mutex> g (rw_mutex);
+ ACE_READ_GUARD_RETURN (ACE_RW_Thread_Mutex, g, rw_mutex, 0);
// int n = ++current_readers;
// ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" (%t) I'm reader number %d\n"), n));
@@ -213,7 +210,7 @@ writer (void *)
{
ACE_OS::sleep (pause);
- ACE_Write_Guard<ACE_RW_Thread_Mutex> g (rw_mutex);
+ ACE_WRITE_GUARD_RETURN (ACE_RW_Thread_Mutex, g, rw_mutex, 0);
++current_writers;
diff --git a/ACE/tests/Recursive_Condition_Bug_Test.cpp b/ACE/tests/Recursive_Condition_Bug_Test.cpp
index 26478456bd4..e896e813856 100644
--- a/ACE/tests/Recursive_Condition_Bug_Test.cpp
+++ b/ACE/tests/Recursive_Condition_Bug_Test.cpp
@@ -1,26 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Recursive_Condition_Bug_Test.cpp
-//
-// = DESCRIPTION
-// This test program validates the functionality of the
-// ACE_Condition<ACE_Recursive_Thread_Mutex> template
-// specialization when combined with the
-// ACE_Thread_Timer_Queue_Adapter on Win32 and Posix pthreads.
-// It was added to test for bugs with the ACE_OS recursive
-// condition implementation.
-//
-// = AUTHOR
-// Leonid Kvetnyi <leonidk@nice.com> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Recursive_Condition_Bug_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program validates the functionality of the
+ * ACE_Condition<ACE_Recursive_Thread_Mutex> template
+ * specialization when combined with the
+ * ACE_Thread_Timer_Queue_Adapter on Win32 and Posix pthreads.
+ * It was added to test for bugs with the ACE_OS recursive
+ * condition implementation.
+ *
+ *
+ * @author Leonid Kvetnyi <leonidk@nice.com> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_sys_time.h"
@@ -30,10 +26,6 @@
#include "ace/Timer_Queue_Adapters.h"
#include "ace/Condition_Recursive_Thread_Mutex.h"
-ACE_RCSID (tests,
- Recursive_Condition_Bug_Test,
- "$Id$")
-
#if defined (ACE_HAS_THREADS)
// Number of iterations for the performance tests.
diff --git a/ACE/tests/Recursive_Condition_Test.cpp b/ACE/tests/Recursive_Condition_Test.cpp
index 6786b478681..4e61aadffd7 100644
--- a/ACE/tests/Recursive_Condition_Test.cpp
+++ b/ACE/tests/Recursive_Condition_Test.cpp
@@ -1,24 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Recursive_Condition_Test.cpp
-//
-// = DESCRIPTION
-// This test program validates the functionality of the
-// ACE_Condition<ACE_Recursive_Thread_Mutex> template
-// specialization when combined with the
-// ACE_Thread_Timer_Queue_Adapter on Win32 and Posix pthreads.
-//
-// = AUTHOR
-// Stephen Howard <stephen.e.howard@lmco.com> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Recursive_Condition_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program validates the functionality of the
+ * ACE_Condition<ACE_Recursive_Thread_Mutex> template
+ * specialization.
+ *
+ *
+ * @author Stephen Howard <stephen.e.howard@lmco.com> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_unistd.h"
@@ -29,7 +24,7 @@
#include "ace/Timer_Heap.h"
#include "ace/Timer_Queue_Adapters.h"
-ACE_RCSID(tests, Recursive_Condition_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -68,8 +63,9 @@ private:
// These are for the basic functionality tests.
ACE_SYNCH_RECURSIVE_MUTEX mutex_;
-ACE_SYNCH_RECURSIVE_CONDITION condition_(mutex_);
-// Test driver sets this to non-zero before spawning and to zero for waiter.
+ACE_Condition<ACE_SYNCH_RECURSIVE_MUTEX> condition_ (mutex_);
+// Test driver sets this to non-zero before spawning and to zero for
+// waiter.
int protected_int = 0;
static ACE_THR_FUNC_RETURN
@@ -247,7 +243,6 @@ run_main (int, ACE_TCHAR *[])
ACE_START_TEST (ACE_TEXT ("Recursive_Condition_Test"));
#if defined (ACE_HAS_THREADS)
-
int status = 0;
/* Test 1 - Simple test */
diff --git a/ACE/tests/Recursive_Mutex_Test.cpp b/ACE/tests/Recursive_Mutex_Test.cpp
index fafe771551a..2c5c2ddfdbf 100644
--- a/ACE/tests/Recursive_Mutex_Test.cpp
+++ b/ACE/tests/Recursive_Mutex_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Recursive_Mutex_Test.cpp
-//
-// = DESCRIPTION
-// This test program verifies the functionality of the ACE_OS
-// implementation of recursive mutexes on Win32 and Posix
-// pthreads.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Recursive_Mutex_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program verifies the functionality of the ACE_OS
+ * implementation of recursive mutexes on Win32 and Posix
+ * pthreads.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Get_Opt.h"
@@ -26,7 +23,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Recursive_Thread_Mutex.h"
-ACE_RCSID(tests, Recursive_Mutex_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -54,7 +51,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,
@@ -75,7 +74,7 @@ test_recursion_depth (int nesting_level,
}
#endif /* !ACE_HAS_WTHREADS */
int result = rm->acquire ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
#if !defined (ACE_HAS_WTHREADS)
if (nesting_level_supported
&& (nesting_level + 1) != rm->get_nesting_level ())
@@ -94,7 +93,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 ())
{
@@ -104,7 +103,7 @@ test_recursion_depth (int nesting_level,
}
#endif /* !ACE_HAS_WTHREADS */
result = rm->release ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
#if !defined (ACE_HAS_WTHREADS)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) = released, nesting = %d, thread id = %u\n"),
@@ -184,7 +183,7 @@ test_timed_wait (int nesting_level,
else
{
result = rm->release ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
}
// Now try the standard mutex.
@@ -193,7 +192,7 @@ test_timed_wait (int nesting_level,
ACE_TEXT ("(%P|%t) = trying to acquire on iteration %d\n"),
i));
result = rm->acquire ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) = acquired on iteration %d\n"),
i));
@@ -204,18 +203,19 @@ test_timed_wait (int nesting_level,
ACE_OS::sleep (ACE_OS::rand () % 2);
result = rm->release ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) = released on iteration %d\n"),
i));
+ // FUZZ: disable check_for_ACE_Guard
// Basic ACE_Guard usage - automatically acquire the mutex on
// guard construction and automatically release it on
// destruction.
{
// Construct an ACE_Guard to implicitly acquire the mutex.
ACE_Guard<ACE_TEST_MUTEX> guard (*rm);
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
// Perform some operation which might exit the current scope
// prematurely, e.g. by returning or throwing an exception.
@@ -230,7 +230,7 @@ test_timed_wait (int nesting_level,
{
// Construct an ACE_Guard to implicitly acquire the mutex.
ACE_Guard<ACE_TEST_MUTEX> guard (*rm);
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
// Perform some operation which might exit the current scope
// prematurely, e.g. by returning or throwing an exception.
@@ -238,7 +238,7 @@ test_timed_wait (int nesting_level,
// Release the mutex since we no longer need it.
guard.release ();
- ACE_ASSERT (guard.locked () == 0);
+ ACE_TEST_ASSERT (guard.locked () == 0);
// Do something else which does not require the mutex to be locked.
// ...
@@ -255,7 +255,7 @@ test_timed_wait (int nesting_level,
{
// Construct an ACE_Guard to implicitly acquire the mutex.
ACE_Guard<ACE_TEST_MUTEX> guard (*rm);
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
// Perform some operation which might exit the current scope
// prematurely, e.g. by returning or throwing an exception.
@@ -264,13 +264,13 @@ test_timed_wait (int nesting_level,
// Relinquish ownership of the mutex lock. Someone else must
// now release it.
guard.disown ();
- ACE_ASSERT (guard.locked () == 0);
+ ACE_TEST_ASSERT (guard.locked () == 0);
// ACE_Guard object's destructor will not release the mutex.
- }
+ }
// We are now responsible for releasing the mutex.
result = rm->release ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
// Construct an ACE_Guard without automatically acquiring the lock.
{
@@ -279,13 +279,13 @@ test_timed_wait (int nesting_level,
// lock. The third parameter tells the guard that the mutex
// has not been locked.
ACE_Guard<ACE_TEST_MUTEX> guard (*rm, 0, 0);
- ACE_ASSERT (guard.locked () == 0);
+ ACE_TEST_ASSERT (guard.locked () == 0);
// Conditionally acquire the mutex.
if (i % 2 == 0)
{
guard.acquire ();
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
}
// Perform some operation that might exit the current scope
@@ -307,7 +307,7 @@ test_timed_wait (int nesting_level,
// existing lock. The third parameter tells the guard that
// the mutex has already been locked.
ACE_Guard<ACE_TEST_MUTEX> guard (*rm, 0, 1);
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
// Perform some operation which might exit the current scope
// prematurely, e.g. by returning or throwing an exception.
@@ -316,6 +316,7 @@ test_timed_wait (int nesting_level,
// ACE_Guard object is destroyed when exiting scope and guard
// destructor automatically releases mutex.
}
+ // FUZZ: enable check_for_ACE_Guard
}
return;
@@ -364,7 +365,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_Auto_Ptr_Test.cpp b/ACE/tests/Refcounted_Auto_Ptr_Test.cpp
index 855d71b94d0..2e7225d9c12 100644
--- a/ACE/tests/Refcounted_Auto_Ptr_Test.cpp
+++ b/ACE/tests/Refcounted_Auto_Ptr_Test.cpp
@@ -26,10 +26,6 @@
#include "ace/Refcounted_Auto_Ptr.h"
#include "Refcounted_Auto_Ptr_Test.h"
-ACE_RCSID (tests,
- Refcounted_Auto_Ptr_Test,
- "$Id$")
-
ACE_Atomic_Op<ACE_SYNCH_MUTEX, unsigned int> Printer::current_instance_ (0);
ACE_Atomic_Op<ACE_SYNCH_MUTEX, long> Printer::instance_count_ (0);
@@ -294,7 +290,7 @@ static int n_loops = 10;
// methods. See Bugzilla #1925 for history.
typedef ACE_Refcounted_Auto_Ptr <Printer, ACE_Null_Mutex> Printer_Ptr;
-
+
static bool expect (const ACE_TCHAR *name,
const Printer_Ptr &ptr,
bool expect_null,
@@ -304,7 +300,7 @@ static bool expect (const ACE_TCHAR *name,
if (ptr.null () != expect_null)
{
if (expect_null)
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Expecting: %s null:: ")
ACE_TEXT ("Actual: Printer: %u; Count %d\n"),
name,
diff --git a/ACE/tests/Refcounted_Auto_Ptr_Test.h b/ACE/tests/Refcounted_Auto_Ptr_Test.h
index 745b7239c3d..f3fac1bd796 100644
--- a/ACE/tests/Refcounted_Auto_Ptr_Test.h
+++ b/ACE/tests/Refcounted_Auto_Ptr_Test.h
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Refcounted_Auto_Ptr_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Refcounted_Auto_Ptr_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_REFCOUNTED_AUTO_PTR_TEST_H
#define ACE_TESTS_REFCOUNTED_AUTO_PTR_TEST_H
diff --git a/ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp b/ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp
index d6005b67c36..c88ffd41a43 100644
--- a/ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp
+++ b/ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Refcounted_Event_Handler_Test_DevPoll.cpp
-//
-// = DESCRIPTION
-// This is a simple test that checks the order of dispatching of
-// ACE Reactors. Order should be: timeout, output, and then input.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Refcounted_Event_Handler_Test_DevPoll.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that checks the order of dispatching of
+ * ACE Reactors. Order should be: timeout, output, and then input.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -26,7 +23,7 @@
#include "ace/Pipe.h"
#include "ace/ACE.h"
-ACE_RCSID(tests, Refcounted_Event_Handler_Test_DevPoll, "$Id$")
+
#if defined (ACE_HAS_DEV_POLL) || defined (ACE_HAS_EVENT_POLL)
@@ -80,7 +77,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 +123,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/Reference_Counted_Event_Handler_Test.cpp b/ACE/tests/Reference_Counted_Event_Handler_Test.cpp
index 43bddbfa1e7..1529aed0f08 100644
--- a/ACE/tests/Reference_Counted_Event_Handler_Test.cpp
+++ b/ACE/tests/Reference_Counted_Event_Handler_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reference_Counted_Event_Handler_Test.cpp
-//
-// = DESCRIPTION
-// This test is used to check reference counting of the Event
-// Handler when it interacts with the Reactor.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reference_Counted_Event_Handler_Test.cpp
+ *
+ * $Id$
+ *
+ * This test is used to check reference counting of the Event
+ * Handler when it interacts with the Reactor.
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Reactor.h"
@@ -26,8 +23,6 @@
#include "ace/Get_Opt.h"
#include "ace/ACE.h"
-ACE_RCSID(tests, Reference_Counted_Event_Handler_Test, "$Id$")
-
static const char message[] = "abcdefghijklmnopqrstuvwxyz";
static const int message_size = 26;
static int test_select_reactor = 1;
@@ -897,7 +892,6 @@ void
closed_in_upcall_event_handler (ACE_Reactor *reactor)
{
int events = 0;
- int handle_events_result = 0;
if (test_io)
{
@@ -928,8 +922,9 @@ closed_in_upcall_event_handler (ACE_Reactor *reactor)
while (events > 0)
{
- handle_events_result =
+ int handle_events_result =
reactor->handle_events ();
+ ACE_UNUSED_ARG (handle_events_result);
}
}
@@ -1101,7 +1096,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_UNUSED_ARG (test);
}
-#endif /* ACE_HAS_DEV_POOL || ACE_HAS_EVENT_POLL */
+#endif /* ACE_HAS_DEV_POLL || ACE_HAS_EVENT_POLL */
ACE_END_TEST;
diff --git a/ACE/tests/Reverse_Lock_Test.cpp b/ACE/tests/Reverse_Lock_Test.cpp
index 5ee08dafbee..cc0e676640c 100644
--- a/ACE/tests/Reverse_Lock_Test.cpp
+++ b/ACE/tests/Reverse_Lock_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reverse_Lock_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test to illustrate the functionality of
-// ACE_Reverse_Lock. The test acquires and releases mutexes. No
-// command line arguments are needed to run the test.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Reverse_Lock_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test to illustrate the functionality of
+ * ACE_Reverse_Lock. The test acquires and releases mutexes. No
+ * command line arguments are needed to run the test.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Synch_Traits.h"
@@ -24,7 +21,7 @@
#include "ace/Guard_T.h"
#include "ace/Reverse_Lock_T.h"
-ACE_RCSID(tests, Reverse_Lock_Test, "$Id$")
+
typedef ACE_Reverse_Lock<ACE_SYNCH_MUTEX> REVERSE_MUTEX;
diff --git a/ACE/tests/SOCK_Connector_Test.cpp b/ACE/tests/SOCK_Connector_Test.cpp
index 4bced6df444..7a3793fa0c3 100644
--- a/ACE/tests/SOCK_Connector_Test.cpp
+++ b/ACE/tests/SOCK_Connector_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ==========================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SOCK_Connector_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of ACE_SOCK_Connector, focusing on failure cases more
-// than on success cases.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ==========================================================================
+
+//=============================================================================
+/**
+ * @file SOCK_Connector_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of ACE_SOCK_Connector, focusing on failure cases more
+ * than on success cases.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -26,7 +23,7 @@
#include "ace/OS_NS_sys_utsname.h"
#include "ace/OS_NS_netdb.h"
-ACE_RCSID(tests, SOCK_Connector_Test, "$Id$")
+
// Host candidate list
struct Host_Candidate
@@ -209,7 +206,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 +266,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 +283,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/SOCK_Dgram_Bcast_Test.cpp b/ACE/tests/SOCK_Dgram_Bcast_Test.cpp
index 19c3eaac8ab..30f64e3e8ed 100644
--- a/ACE/tests/SOCK_Dgram_Bcast_Test.cpp
+++ b/ACE/tests/SOCK_Dgram_Bcast_Test.cpp
@@ -1,26 +1,23 @@
-// $Id$
-// ===========================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SOCK_Dgram_Bcast_Test.cpp
-//
-// = DESCRIPTION
-// This simple broadcast test is intended to check if ACE is capable
-// of sending and receiving broadcasts. In single host environment most
-// errors related to invalid broadcast initialization will not manifest
-// themself, because usually broadcast on localhost interface works
-// correctly. For this reason one should run also this test on two distinct
-// hosts in single LAN.
-// Tests that a call to open with an any address binds to the any address
-// for the protocol passed in.
-//
-// = AUTHOR
-// Marek Brudka (mbrudka@elka.pw.edu.pl)
-//
-// ==========================================================================
+//=============================================================================
+/**
+ * @file SOCK_Dgram_Bcast_Test.cpp
+ *
+ * $Id$
+ *
+ * This simple broadcast test is intended to check if ACE is capable
+ * of sending and receiving broadcasts. In single host environment most
+ * errors related to invalid broadcast initialization will not manifest
+ * themself, because usually broadcast on localhost interface works
+ * correctly. For this reason one should run also this test on two distinct
+ * hosts in single LAN.
+ * Tests that a call to open with an any address binds to the any address
+ * for the protocol passed in.
+ *
+ *
+ * @author Marek Brudka (mbrudka@elka.pw.edu.pl)
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
diff --git a/ACE/tests/SOCK_Dgram_Test.cpp b/ACE/tests/SOCK_Dgram_Test.cpp
index 1447eb5283c..7b4399484c9 100644
--- a/ACE/tests/SOCK_Dgram_Test.cpp
+++ b/ACE/tests/SOCK_Dgram_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-// ===========================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SOCK_Dgram.cpp
-//
-// = DESCRIPTION
-// Tests that a call to open with an any address binds to the any address
-// for the protocol passed in.
-//
-// This test uses the same test setup as SOCK_Test.
-//
-// = AUTHOR
-// Brian Buesker (bbuesker@qualcomm.com)
-//
-// ==========================================================================
+//=============================================================================
+/**
+ * @file SOCK_Dgram_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests that a call to open with an any address binds to the any address
+ * for the protocol passed in.
+ *
+ * This test uses the same test setup as SOCK_Test.
+ *
+ *
+ * @author Brian Buesker (bbuesker@qualcomm.com)
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
diff --git a/ACE/tests/SOCK_Netlink_Test.cpp b/ACE/tests/SOCK_Netlink_Test.cpp
index 67283ab407e..90f3e2073e6 100644
--- a/ACE/tests/SOCK_Netlink_Test.cpp
+++ b/ACE/tests/SOCK_Netlink_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-// ====================================================================//
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SOCK_Netlink_Test.cpp
-//
-// = DESCRIPTION
-// Tests adding of a secondary IP-address, using linux netlink
-// sockets.
-//
-// = AUTHOR
-//
-// Robert Iakobashvili, coroberti@gmail.com
-//
-// ====================================================================//
+//=============================================================================
+/**
+ * @file SOCK_Netlink_Test.cpp
+ *
+ * $Id$
+ *
+ * Tests adding of a secondary IP-address, using linux netlink
+ * sockets.
+ *
+ *
+ * @author Robert Iakobashvili
+ * @author coroberti@gmail.com
+ */
+//=============================================================================
+
#include "test_config.h"
@@ -214,10 +211,10 @@ public:
//FUZZ: disable check_for_lack_ACE_OS
// Initialization. Schedules a timer to run start the business.
//
+ ///FUZZ: enable check_for_lack_ACE_OS
int open (ACE_Reactor *const reactor,
char* const ip_slash_mask,
const char *const if_name);
- //FUZZ: enable check_for_lack_ACE_OS
// Returns reference to netlink socket. Necessary for reactor.
virtual ACE_HANDLE get_handle (void) const;
@@ -272,8 +269,8 @@ protected:
// other cleanup jobs
virtual int close ();
+ ///FUZZ: enable check_for_lack_ACE_OS
ACE_SOCK_Netlink& socket ();
- //FUZZ: enable check_for_lack_ACE_OS
private:
diff --git a/ACE/tests/SOCK_SEQPACK_SCTP_Test.cpp b/ACE/tests/SOCK_SEQPACK_SCTP_Test.cpp
index 895d2d374d5..34f67dec660 100644
--- a/ACE/tests/SOCK_SEQPACK_SCTP_Test.cpp
+++ b/ACE/tests/SOCK_SEQPACK_SCTP_Test.cpp
@@ -340,11 +340,8 @@ do_test(void)
return 0;
}
-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 ("SOCK_SEQPACK_SCTP_Test"));
//
diff --git a/ACE/tests/SOCK_Send_Recv_Test.cpp b/ACE/tests/SOCK_Send_Recv_Test.cpp
index 04b76a2e859..b3dc1145f60 100644
--- a/ACE/tests/SOCK_Send_Recv_Test.cpp
+++ b/ACE/tests/SOCK_Send_Recv_Test.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ===========================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SOCK_Send_Recv_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_SOCK>'s various send and receive
-// methods. The test forks two processes or spawns two threads
-// (depending upon the platform) and then executes client and
-// server allowing them to connect and exchange data in ways
-// designed to exercise the send and recv functions.
-//
-// Right now, it primarily tests the iov-like send and recv
-// functions, but others should be added to completely cover the
-// possible scenarios.
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file SOCK_Send_Recv_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the <ACE_SOCK>'s various send and receive
+ * methods. The test forks two processes or spawns two threads
+ * (depending upon the platform) and then executes client and
+ * server allowing them to connect and exchange data in ways
+ * designed to exercise the send and recv functions.
+ *
+ * Right now, it primarily tests the iov-like send and recv
+ * functions, but others should be added to completely cover the
+ * possible scenarios.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_sys_wait.h"
@@ -34,7 +31,7 @@
#include "ace/SOCK_Acceptor.h"
#include "ace/SOCK_Stream.h"
-ACE_RCSID(tests, SOCK_Send_Recv_Test, "$Id$")
+
// Change to non-zero if test fails
static int Test_Result = 0;
diff --git a/ACE/tests/SOCK_Send_Recv_Test_IPV6.cpp b/ACE/tests/SOCK_Send_Recv_Test_IPV6.cpp
index 8a207aa19e5..b47fd383240 100644
--- a/ACE/tests/SOCK_Send_Recv_Test_IPV6.cpp
+++ b/ACE/tests/SOCK_Send_Recv_Test_IPV6.cpp
@@ -119,7 +119,7 @@ client (void *arg)
Test_Result = 1;
}
else
- ACE_ASSERT (len == 255);
+ ACE_TEST_ASSERT (len == 255);
//******************* TEST 2 ******************************
//
@@ -140,7 +140,7 @@ client (void *arg)
ACE_TEXT ("(%P|%t) %p; len is %d, but should be 255!\n"),
len));
}
- ACE_ASSERT (len == 255);
+ ACE_TEST_ASSERT (len == 255);
for (i = 0; i < 255; i++)
if (buffer2[i] != buffer[i])
@@ -161,7 +161,7 @@ client (void *arg)
ssize_t sent;
char buff[Test3_Send_Size];
- ACE_ASSERT (cli_stream.enable (ACE_NONBLOCK) != -1);
+ ACE_TEST_ASSERT (cli_stream.enable (ACE_NONBLOCK) != -1);
for (i = 0; i < Test3_Loops; ++i)
{
errno = 0;
@@ -237,7 +237,7 @@ server (void *arg)
Test_Result = 1;
}
- ACE_ASSERT (len == 255);
+ ACE_TEST_ASSERT (len == 255);
for (i = 0; i < 255; i++)
if (buffer[i] != i)
{
@@ -260,7 +260,7 @@ server (void *arg)
189,
&buffer[231],
24);
- ACE_ASSERT (len == 255);
+ ACE_TEST_ASSERT (len == 255);
//******************* TEST 3 ******************************
//
diff --git a/ACE/tests/SOCK_Test.cpp b/ACE/tests/SOCK_Test.cpp
index 34000f53eee..4345aa7113c 100644
--- a/ACE/tests/SOCK_Test.cpp
+++ b/ACE/tests/SOCK_Test.cpp
@@ -1,28 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SOCK_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_SOCK_Acceptor> and
-// <ACE_SOCK_Connector> classes. The test forks two processes or
-// spawns two threads (depending upon the platform) and then
-// executes client and server allowing them to connect and
-// exchange data.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file SOCK_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test of the <ACE_SOCK_Acceptor> and
+ * <ACE_SOCK_Connector> classes. The test forks two processes or
+ * spawns two threads (depending upon the platform) and then
+ * executes client and server allowing them to connect and
+ * exchange data.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_unistd.h"
-#include "ace/OS_NS_sys_select.h"
#include "ace/OS_NS_sys_wait.h"
#include "ace/Thread.h"
#include "ace/Time_Value.h"
@@ -31,7 +27,7 @@
#include "ace/SOCK_Acceptor.h"
#include "ace/Handle_Set.h"
-ACE_RCSID(tests, SOCK_Test, "$Id$")
+
static const char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
@@ -69,6 +65,17 @@ client (void *arg)
if (cli_stream.disable (ACE_NONBLOCK) == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) %p\n"), ACE_TEXT ("disable")));
+ // Test Bug 3606
+ const ACE_Time_Value def_timeout (ACE_DEFAULT_TIMEOUT);
+ ACE_Time_Value tv (def_timeout);
+ int result = ACE::handle_ready (cli_stream.get_handle (), &tv,
+ 1, // read_ready
+ 1, // write_ready
+ 0);
+ // we expect the handle to be at leat write_ready since it is freshly connected.
+ if (result == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(%P|%t) %p\n"), ACE_TEXT ("ACE::handle_ready")), 0);
+
// Send data to server (correctly handles "incomplete writes").
for (const char *c = ACE_ALPHABET; *c != '\0'; c++)
@@ -104,36 +111,18 @@ server (void *arg)
// calls...
ACE_SOCK_Stream new_stream;
ACE_INET_Addr cli_addr;
- ACE_Handle_Set handle_set;
const ACE_Time_Value def_timeout (ACE_DEFAULT_TIMEOUT);
ACE_Time_Value tv (def_timeout);
char buf[BUFSIZ];
const char *t = ACE_ALPHABET;
- handle_set.reset ();
- handle_set.set_bit (peer_acceptor->get_handle ());
-
- int select_width;
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (peer_acceptor->get_handle ()) + 1;
-# endif /* ACE_WIN64 */
- int result = ACE_OS::select (select_width,
- handle_set,
- 0, 0, &tv);
- ACE_ASSERT (tv == def_timeout);
+ int result = ACE::handle_read_ready (peer_acceptor->get_handle (), &tv);
+
+ ACE_TEST_ASSERT (tv == def_timeout);
if (result == -1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(%P|%t) %p\n"), ACE_TEXT ("select")), 0);
- else if (result == 0)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) select timed out, shutting down\n")));
- return 0;
- }
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(%P|%t) %p\n"), ACE_TEXT ("handle_read_ready")), 0);
// Create a new ACE_SOCK_Stream endpoint (note automatic restart
// if errno == EINTR).
@@ -147,28 +136,15 @@ server (void *arg)
if (new_stream.enable (ACE_NONBLOCK) == -1)
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(%P|%t) %p\n"), ACE_TEXT ("enable")), 0);
- handle_set.reset ();
- handle_set.set_bit (new_stream.get_handle ());
-
// Read data from client (terminate on error).
- int select_width;
for (ssize_t r_bytes; ;)
{
-# if defined (ACE_WIN64)
- // This arg is ignored on Windows and causes pointer truncation
- // warnings on 64-bit compiles.
- select_width = 0;
-# else
- select_width = int (new_stream.get_handle ()) + 1;
-# endif /* ACE_WIN64 */
- if (ACE_OS::select (select_width,
- handle_set,
- 0, 0, 0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(%P|%t) %p\n"), ACE_TEXT ("select")), 0);
+ if (ACE::handle_read_ready (new_stream.get_handle (), 0) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(%P|%t) %p\n"), ACE_TEXT ("handle_read_ready")), 0);
while ((r_bytes = new_stream.recv (buf, 1)) > 0)
{
- ACE_ASSERT (*t == buf[0]);
+ ACE_TEST_ASSERT (*t == buf[0]);
t++;
}
diff --git a/ACE/tests/SOCK_Test_IPv6.cpp b/ACE/tests/SOCK_Test_IPv6.cpp
index 4da69395d6d..86e9f765a85 100644
--- a/ACE/tests/SOCK_Test_IPv6.cpp
+++ b/ACE/tests/SOCK_Test_IPv6.cpp
@@ -126,7 +126,7 @@ server (void *arg)
int result = ACE_OS::select (select_width,
handle_set,
0, 0, &tv);
- ACE_ASSERT (tv == def_timeout);
+ ACE_TEST_ASSERT (tv == def_timeout);
if (result == -1)
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(%P|%t) %p\n"), ACE_TEXT ("select")), 0);
@@ -169,7 +169,7 @@ server (void *arg)
while ((r_bytes = new_stream.recv (buf, 1)) > 0)
{
- ACE_ASSERT (*t == buf[0]);
+ ACE_TEST_ASSERT (*t == buf[0]);
t++;
}
diff --git a/ACE/tests/SPIPE_Test.cpp b/ACE/tests/SPIPE_Test.cpp
index c3b1ae2dd8f..7e1e591435b 100644
--- a/ACE/tests/SPIPE_Test.cpp
+++ b/ACE/tests/SPIPE_Test.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SPIPE_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of Named Pipes that uses
-// ACE_SPIPE_Acceptor and ACE_SPIPE_Connector classes. The test
-// forks two processes or spawns two threads (depending upon the
-// platform) and then executes the client and server allowing
-// them to use the named pipe to exchange data. No user input is
-// required as far as command line arguments are concerned.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file SPIPE_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of Named Pipes that uses
+ * ACE_SPIPE_Acceptor and ACE_SPIPE_Connector classes. The test
+ * forks two processes or spawns two threads (depending upon the
+ * platform) and then executes the client and server allowing
+ * them to use the named pipe to exchange data. No user input is
+ * required as far as command line arguments are concerned.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Thread.h"
@@ -30,7 +27,7 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, SPIPE_Test, "SPIPE_Test.cpp,v 4.36 2002/03/06 21:48:03 nanbor Exp")
+
#if defined (ACE_HAS_STREAM_PIPES) || defined (ACE_HAS_WIN32_NAMED_PIPES)
# define TEST_HAS_STREAM_PIPES
@@ -125,7 +122,7 @@ server (void *)
while (new_stream.recv (buf, 1) > 0)
{
- ACE_ASSERT (*t == buf[0]);
+ ACE_TEST_ASSERT (*t == buf[0]);
t++;
}
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("End of connection. Closing handle\n")));
@@ -158,7 +155,7 @@ server (void *)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), ACE_TEXT ("recv"), 1));
break;
}
- ACE_ASSERT (*t == buf[0]);
+ ACE_TEST_ASSERT (*t == buf[0]);
}
// Wait for the client to stream in the buffer one byte at a time.
@@ -170,7 +167,7 @@ server (void *)
if (new_stream.recv (buf, sizeof(buf)) != (ssize_t) ACE_OS::strlen (ACE_ALPHABET))
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), ACE_TEXT ("recv"), 1));
else
- ACE_ASSERT(ACE_OS::memcmp(ACE_ALPHABET, buf, ACE_OS::strlen (ACE_ALPHABET)) == 0);
+ ACE_TEST_ASSERT(ACE_OS::memcmp(ACE_ALPHABET, buf, ACE_OS::strlen (ACE_ALPHABET)) == 0);
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("End of connection. Closing handle\n")));
new_stream.close ();
diff --git a/ACE/tests/SSL/Bug_2912_Regression_Test.cpp b/ACE/tests/SSL/Bug_2912_Regression_Test.cpp
index 0f25b43308b..233af9d2139 100644
--- a/ACE/tests/SSL/Bug_2912_Regression_Test.cpp
+++ b/ACE/tests/SSL/Bug_2912_Regression_Test.cpp
@@ -28,18 +28,14 @@
*/
#include "ace/ACE.h"
-#include "tests/test_config.h"
+#include "../test_config.h"
#include "ace/SSL/SSL_Asynch_Stream.h"
#include "ace/Proactor.h"
#include "ace/Task.h"
-#include "ace/OS.h"
#include "ace/Asynch_Acceptor.h"
#include "ace/Asynch_Connector.h"
#include "ace/Manual_Event.h"
-
-ACE_RCSID (tests,
- Bug_2912_Regression_Test,
- "$Id$")
+#include "ace/OS_NS_unistd.h"
/* Linux kernels can't hack multiple outstanding I/O, which this
test requires */
@@ -54,6 +50,39 @@ ACE_RCSID (tests,
#define DATA "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define DATA_SIZE ACE_OS::strlen(DATA)
+// Function to remove signals from the signal mask.
+static int
+disable_signal (int sigmin, int sigmax)
+{
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
+ sigset_t signal_set;
+ if (ACE_OS::sigemptyset (&signal_set) == - 1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t):%p\n"),
+ ACE_TEXT ("sigemptyset failed")));
+
+ for (int i = sigmin; i <= sigmax; i++)
+ ACE_OS::sigaddset (&signal_set, i);
+
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
+#else
+ ACE_UNUSED_ARG (sigmin);
+ ACE_UNUSED_ARG (sigmax);
+#endif /* ACE_LACKS_UNIX_SIGNALS */
+
+ return 0;
+}
/**
* Client's proactor
@@ -79,6 +108,9 @@ typedef ACE_Singleton<Client_Proactor_Task, ACE_SYNCH_RECURSIVE_MUTEX>
int
Client_Proactor_Task::svc (void)
{
+ // Keep RT signals on POSIX from killing us.
+ disable_signal (ACE_SIGRTMIN, ACE_SIGRTMAX);
+
CLIENT_PROACTOR->proactor_reset_event_loop ();
CLIENT_PROACTOR->proactor_run_event_loop ();
return 0;
@@ -106,6 +138,9 @@ typedef ACE_Singleton<Server_Proactor_Task, ACE_SYNCH_RECURSIVE_MUTEX>
int
Server_Proactor_Task::svc (void)
{
+ // Keep RT signals on POSIX from killing us.
+ disable_signal (ACE_SIGRTMIN, ACE_SIGRTMAX);
+
SERVER_PROACTOR->proactor_reset_event_loop ();
SERVER_PROACTOR->proactor_run_event_loop ();
return 0;
@@ -189,35 +224,6 @@ init_ssl (void)
}
-// Function to remove signals from the signal mask.
-static int
-disable_signal (int sigmin, int sigmax)
-{
-#ifndef ACE_WIN32
-
- sigset_t signal_set;
- if (ACE_OS::sigemptyset (&signal_set) == - 1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Error: (%P|%t):%p\n"),
- ACE_TEXT ("sigemptyset failed")));
-
- for (int i = sigmin; i <= sigmax; i++)
- ACE_OS::sigaddset (&signal_set, i);
-
- // Put the <signal_set>.
- if (ACE_OS::pthread_sigmask (SIG_BLOCK, &signal_set, 0) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Error: (%P|%t):%p\n"),
- ACE_TEXT ("pthread_sigmask failed")));
-#else
- ACE_UNUSED_ARG (sigmin);
- ACE_UNUSED_ARG (sigmax);
-#endif /* ACE_WIN32 */
-
- return 1;
-}
-
-
/**
* Server's ACE_Service_Handler
*/
@@ -251,7 +257,7 @@ public:
int write (ACE_Message_Block &mb, size_t bytes_to_write);
//FUZZ: enable check_for_lack_ACE_OS
-
+
int safe_to_delete (void) const;
private:
@@ -286,7 +292,7 @@ Server_Service_Handler::~Server_Service_Handler (void)
void
Server_Service_Handler::open (ACE_HANDLE h, ACE_Message_Block&)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
if (this->ssl_stream_.open (*this, h, 0, this->proactor ()) != 0)
{
@@ -312,7 +318,7 @@ void
Server_Service_Handler::handle_read_stream(
const ACE_Asynch_Read_Stream::Result &result)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->pending_reads_--;
@@ -379,7 +385,7 @@ void
Server_Service_Handler::handle_write_stream (
const ACE_Asynch_Write_Stream::Result &result)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->pending_writes_--;
@@ -418,7 +424,7 @@ Server_Service_Handler::handle_write_stream (
void
Server_Service_Handler::handle_wakeup (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->handle_wakeup_received_ = 1;
}
@@ -426,7 +432,7 @@ Server_Service_Handler::handle_wakeup (void)
void
Server_Service_Handler::cancel_and_close (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->closing_ = 1;
this->ssl_stream_.cancel ();
@@ -436,9 +442,9 @@ Server_Service_Handler::cancel_and_close (void)
int
Server_Service_Handler::read_data (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_NORETURN(mb, ACE_Message_Block (DATA_SIZE));
int ret = this->read (*mb, DATA_SIZE);
@@ -456,9 +462,9 @@ Server_Service_Handler::read_data (void)
int
Server_Service_Handler::write_data (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_NORETURN(mb, ACE_Message_Block (DATA_SIZE));
ACE_OS::memcpy (mb->wr_ptr (), DATA, DATA_SIZE);
mb->wr_ptr (DATA_SIZE);
@@ -478,7 +484,7 @@ Server_Service_Handler::write_data (void)
int
Server_Service_Handler::read (ACE_Message_Block &mb, size_t bytes_to_read)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
int ret;
if ((ret = this->ssl_stream_.read (mb, bytes_to_read)) < 0)
@@ -496,7 +502,7 @@ Server_Service_Handler::read (ACE_Message_Block &mb, size_t bytes_to_read)
int
Server_Service_Handler::write (ACE_Message_Block &mb, size_t bytes_to_write)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
int ret;
if ((ret = this->ssl_stream_.write (mb, bytes_to_write)) < 0)
@@ -514,7 +520,7 @@ Server_Service_Handler::write (ACE_Message_Block &mb, size_t bytes_to_write)
int
Server_Service_Handler::safe_to_delete (void) const
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
return 0 == this->pending_writes_ &&
0 == this->pending_reads_ &&
@@ -571,7 +577,7 @@ Acceptor::~Acceptor (void)
int
Acceptor::cancel (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
this->cancel_flag_ = 1;
this->reissue_accept (0);
@@ -591,14 +597,14 @@ Acceptor::cancel (void)
int
Acceptor::safe_to_delete (void) const
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
return (this->cancel_flag_ != 0 && this->accept_cnt_ == 0) ? 1 : 0;
}
void
Acceptor::prepare_for_connection (Server_Service_Handler *service_handler)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->service_handler_ = service_handler;
}
@@ -606,7 +612,7 @@ int
Acceptor::validate_connection (const ACE_Asynch_Accept::Result& result,
const ACE_INET_Addr & /*remote*/, const ACE_INET_Addr& /*local*/)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
if (0 != this->service_handler_ && result.success ())
{
@@ -621,7 +627,7 @@ Acceptor::validate_connection (const ACE_Asynch_Accept::Result& result,
Server_Service_Handler*
Acceptor::make_handler (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, 0);
ACE_ASSERT (0 != this->service_handler_);
Server_Service_Handler *service_handler = this->service_handler_;
@@ -632,7 +638,7 @@ Acceptor::make_handler (void)
int
Acceptor::accept (size_t bytes_to_read, const void *act)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
if (this->cancel_flag_!= 0)
return -1;
@@ -649,7 +655,7 @@ Acceptor::accept (size_t bytes_to_read, const void *act)
void
Acceptor::handle_accept (const ACE_Asynch_Accept::Result &result)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->ACE_Asynch_Acceptor<Server_Service_Handler>::handle_accept (result);
@@ -737,7 +743,7 @@ Client_Service_Handler::~Client_Service_Handler (void)
void
Client_Service_Handler::open (ACE_HANDLE h, ACE_Message_Block&)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
if (this->ssl_stream_.open (*this, h, 0, this->proactor ()) != 0)
{
@@ -748,7 +754,7 @@ Client_Service_Handler::open (ACE_HANDLE h, ACE_Message_Block&)
}
else
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_NORETURN(mb, ACE_Message_Block (DATA_SIZE));
if (this->read_data () < 0 || this->write_data () < 0)
@@ -762,7 +768,7 @@ void
Client_Service_Handler::handle_read_stream (
const ACE_Asynch_Read_Stream::Result &result)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->pending_reads_--;
@@ -840,7 +846,7 @@ void
Client_Service_Handler::handle_write_stream (
const ACE_Asynch_Write_Stream::Result &result)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->pending_writes_--;
@@ -879,7 +885,7 @@ Client_Service_Handler::handle_write_stream (
void
Client_Service_Handler::handle_wakeup (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->handle_wakeup_received_ = 1;
}
@@ -887,7 +893,7 @@ Client_Service_Handler::handle_wakeup (void)
void
Client_Service_Handler::cancel_and_close (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->closing_ = 1;
this->ssl_stream_.cancel ();
@@ -897,9 +903,9 @@ Client_Service_Handler::cancel_and_close (void)
int
Client_Service_Handler::read_data (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_NORETURN(mb, ACE_Message_Block (DATA_SIZE));
int ret = this->read (*mb, DATA_SIZE);
@@ -917,9 +923,9 @@ Client_Service_Handler::read_data (void)
int
Client_Service_Handler::write_data (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_NORETURN (mb, ACE_Message_Block (DATA_SIZE));
ACE_OS::memcpy (mb->wr_ptr (), DATA, DATA_SIZE);
mb->wr_ptr (DATA_SIZE);
@@ -939,7 +945,7 @@ Client_Service_Handler::write_data (void)
int
Client_Service_Handler::read (ACE_Message_Block &mb, size_t bytes_to_read)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
int ret;
if ((ret = this->ssl_stream_.read (mb, bytes_to_read)) < 0)
@@ -957,7 +963,7 @@ Client_Service_Handler::read (ACE_Message_Block &mb, size_t bytes_to_read)
int
Client_Service_Handler::write (ACE_Message_Block &mb, size_t bytes_to_write)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
int ret;
if ((ret = this->ssl_stream_.write (mb, bytes_to_write)) < 0)
@@ -975,7 +981,7 @@ Client_Service_Handler::write (ACE_Message_Block &mb, size_t bytes_to_write)
int
Client_Service_Handler::safe_to_delete (void) const
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
return 0 == this->pending_writes_ &&
0 == this->pending_reads_ &&
@@ -1054,7 +1060,7 @@ int
Connector::connect (const ACE_INET_Addr &remote_sap,
const ACE_INET_Addr &local_sap, int reuse_addr, const void *act)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
this->connecting_ = 1;
@@ -1066,7 +1072,7 @@ int
Connector::validate_connection (const ACE_Asynch_Connect::Result& result,
const ACE_INET_Addr &remote, const ACE_INET_Addr& local)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
ACE_UNUSED_ARG (result);
ACE_UNUSED_ARG (remote);
@@ -1087,7 +1093,7 @@ Connector::validate_connection (const ACE_Asynch_Connect::Result& result,
void
Connector::handle_connect (const ACE_Asynch_Connect::Result &result)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->ACE_Asynch_Connector<Client_Service_Handler>::handle_connect (result);
@@ -1097,7 +1103,7 @@ Connector::handle_connect (const ACE_Asynch_Connect::Result &result)
Client_Service_Handler*
Connector::make_handler (void)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, 0);
ACE_ASSERT(0 != this->service_handler_);
Client_Service_Handler *service_handler = this->service_handler_;
@@ -1108,7 +1114,7 @@ Connector::make_handler (void)
int
Connector::safe_to_delete (void) const
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_, -1);
return 0 == this->connecting_;
}
@@ -1116,7 +1122,7 @@ Connector::safe_to_delete (void) const
void
Connector::prepare_for_connection (Client_Service_Handler *service_handler)
{
- ACE_Guard<ACE_SYNCH_RECURSIVE_MUTEX> guard (this->mtx_);
+ ACE_GUARD (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->mtx_);
this->service_handler_ = service_handler;
}
diff --git a/ACE/tests/SSL/Main.cpp b/ACE/tests/SSL/Main.cpp
index 44b92128394..241e8b54bec 100644
--- a/ACE/tests/SSL/Main.cpp
+++ b/ACE/tests/SSL/Main.cpp
@@ -1,21 +1,18 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Main.cpp
-//
-// = DESCRIPTION
-// This is a wrapper for the test programs. It obviates the test cpp's
-// from having to always include OS.h.
-//
-// = AUTHOR
-// Don Hinton <dhinton@dresystems.com>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file Main.cpp
+ *
+ * $Id$
+ *
+ * This is a wrapper for the test programs. It obviates the test cpp's
+ * from having to always include OS.h.
+ *
+ *
+ * @author Don Hinton <dhinton@dresystems.com>
+ */
+//=============================================================================
+
#include "ace/OS_main.h"
#if defined (ACE_HAS_WINCE)
diff --git a/ACE/tests/SSL/SSL_Asynch_Stream_Test.cpp b/ACE/tests/SSL/SSL_Asynch_Stream_Test.cpp
index 1ee2239fb80..31130e590d4 100644
--- a/ACE/tests/SSL/SSL_Asynch_Stream_Test.cpp
+++ b/ACE/tests/SSL/SSL_Asynch_Stream_Test.cpp
@@ -1,35 +1,32 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests/SSL
-//
-// = FILENAME
-// SSL_Asynch_Stream_Test.cpp
-//
-// = DESCRIPTION
-// This program is a functionality test of ACE_SSL_Asynch_Stream.
-// It demonstrates one proper use case of ACE_SSL_Asynch_Stream in the
-// Proactor framework and validates its basic functionality.
-//
-// Usage: SSL_Asynch_Stream_Test [-r <hostname:port#>]
-// [-t <num threads>] [-d <delay>]
-// [-i <client conn attempt#>] [-n <client request# per conn>]
-//
-// Default value:
-// <hostname:port#>: ACE_DEFAULT_SERVER_HOST:ACE_DEFAULT_PORT
-// <num threads>: ACE_MAX_THREADS
-// <client conn attempt#>: ACE_MAX_ITERATIONS
-// <client req# per conn>: 20
-// <delay>: 0 usec
-//
-// = AUTHOR
-// Steve Huston <shuston@riverace.com>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file SSL_Asynch_Stream_Test.cpp
+ *
+ * $Id$
+ *
+ * This program is a functionality test of ACE_SSL_Asynch_Stream.
+ * It demonstrates one proper use case of ACE_SSL_Asynch_Stream in the
+ * Proactor framework and validates its basic functionality.
+ *
+ * Usage: SSL_Asynch_Stream_Test [-r <hostname:port#>]
+ * [-t <num threads>] [-d <delay>]
+ * [-i <client conn attempt#>] [-n <client request# per conn>]
+ *
+ * Default value:
+ * <hostname:port#>: ACE_DEFAULT_SERVER_HOST:ACE_DEFAULT_PORT
+ * <num threads>: ACE_MAX_THREADS
+ * <client conn attempt#>: ACE_MAX_ITERATIONS
+ * <client req# per conn>: 20
+ * <delay>: 0 usec
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
+
+#include "../test_config.h"
#include "ace/Default_Constants.h"
#include "ace/OS_NS_signal.h"
#include "ace/OS_NS_string.h"
@@ -44,7 +41,7 @@
#include "ace/SSL/SSL_SOCK_Acceptor.h"
#include "ace/SSL/SSL_SOCK_Stream.h"
-ACE_RCSID(tests, SSL_Asynch_Stream_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS) && ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS)))
// This only works on Win32 platforms and on Unix platforms
@@ -123,18 +120,11 @@ static const ACE_TCHAR *rendezvous = \
// Total number of proactor threads.
static size_t num_threads = ACE_MAX_THREADS;
-#if defined (CHORUS) // Add platforms that can't handle too many
- // connection simultaneously here.
-#define ACE_LOAD_FACTOR /2
-#else
-#define ACE_LOAD_FACTOR
-#endif
-
// Number of client connections to attempt.
-static size_t cli_conn_no = ACE_MAX_ITERATIONS ACE_LOAD_FACTOR;
+static size_t cli_conn_no = ACE_MAX_ITERATIONS;
// Number of requests each client connection sends.
-static size_t cli_req_no = ACE_MAX_THREADS ACE_LOAD_FACTOR;
+static size_t cli_req_no = ACE_MAX_THREADS;
// Delay before a thread sending the next request (in msec.)
static int req_delay = 0;
@@ -146,8 +136,7 @@ static const char *test_string = "SSL_Asynch_Stream_Test!";
static int
disable_signal (int sigmin, int sigmax)
{
-#ifndef ACE_WIN32
-
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
sigset_t signal_set;
if (ACE_OS::sigemptyset (&signal_set) == - 1)
ACE_ERROR ((LM_ERROR,
@@ -157,17 +146,24 @@ disable_signal (int sigmin, int sigmax)
for (int i = sigmin; i <= sigmax; i++)
ACE_OS::sigaddset (&signal_set, i);
- // Put the <signal_set>.
- if (ACE_OS::pthread_sigmask (SIG_BLOCK, &signal_set, 0) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Error: (%P|%t):%p\n"),
- ACE_TEXT ("pthread_sigmask failed")));
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
#else
ACE_UNUSED_ARG (sigmin);
ACE_UNUSED_ARG (sigmax);
-#endif /* ACE_WIN32 */
+#endif /* ACE_LACKS_UNIX_SIGNALS */
- return 1;
+ return 0;
}
static void
@@ -451,6 +447,9 @@ proactor_loop (void *)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Start handling events.\n")));
+ disable_signal (ACE_SIGRTMIN, ACE_SIGRTMAX);
+ disable_signal (SIGPIPE, SIGPIPE);
+
int result =
ACE_Proactor::instance ()->proactor_run_event_loop ();
if (result == -1)
@@ -471,6 +470,9 @@ start_clients (void *)
ACE_INET_Addr addr (rendezvous);
ACE_SSL_SOCK_Connector connect;
+ disable_signal (ACE_SIGRTMIN, ACE_SIGRTMAX);
+ disable_signal (SIGPIPE, SIGPIPE);
+
for (size_t i = 0 ; i < cli_conn_no; i++)
{
ACE_SSL_SOCK_Stream stream;
diff --git a/ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp b/ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp
index bf108d1b10a..67acc430b42 100644
--- a/ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp
+++ b/ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp
@@ -1,46 +1,42 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests/SSL
-//
-// = FILENAME
-// Thread_Pool_Reactor_Test.cpp
-//
-// = DESCRIPTION
-// This program is a torture test of threaded SSL usage. It
-// is based on the tests/Thread_Pool_Reactor_Test and adds
-// SSL stuff submitted by Robert Handl <robert.handl@ehpt.com>.
-// It starts by spawning several server threads waiting to handle
-// events. Several other client threads are spawned right after
-// to initiate connections to server threads. Each connection
-// adds a new Svc_Handler into the TP_Reactor and sends out
-// several "requests" to the server thread. After the connection
-// is closed, the Svc_Handler is removed from the TP_Reactor.
-// Each message is treated as a separate request by the server so
-// two consecutive requests might be serviced by two different
-// threads.
-//
-// Usage: Thread_Pool_Reactor_Test_SSL [-r <hostname:port#>]
-// [-s <server thr#>] [-c <client thr#>] [-d <delay>]
-// [-i <client conn attempt#>] [-n <client request# per conn>]
-//
-// Default value:
-// <hostname:port#>: ACE_DEFAULT_RENDEZVOUS
-// <server thr#>: ACE_MAX_THREADS
-// <client thr#>: ACE_MAX_ITERATIONS
-// <client conn attempt#>: ACE_MAX_ITERATIONS
-// <client req# per conn>: ACE_MAX_THREADS
-// <delay>: 50 usec
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu> and
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file Thread_Pool_Reactor_SSL_Test.cpp
+ *
+ * $Id$
+ *
+ * This program is a torture test of threaded SSL usage. It
+ * is based on the tests/Thread_Pool_Reactor_Test and adds
+ * SSL stuff submitted by Robert Handl <robert.handl@ehpt.com>.
+ * It starts by spawning several server threads waiting to handle
+ * events. Several other client threads are spawned right after
+ * to initiate connections to server threads. Each connection
+ * adds a new Svc_Handler into the TP_Reactor and sends out
+ * several "requests" to the server thread. After the connection
+ * is closed, the Svc_Handler is removed from the TP_Reactor.
+ * Each message is treated as a separate request by the server so
+ * two consecutive requests might be serviced by two different
+ * threads.
+ *
+ * Usage: Thread_Pool_Reactor_Test_SSL [-r <hostname:port#>]
+ * [-s <server thr#>] [-c <client thr#>] [-d <delay>]
+ * [-i <client conn attempt#>] [-n <client request# per conn>]
+ *
+ * Default value:
+ * <hostname:port#>: ACE_DEFAULT_RENDEZVOUS
+ * <server thr#>: ACE_MAX_THREADS
+ * <client thr#>: ACE_MAX_ITERATIONS
+ * <client conn attempt#>: ACE_MAX_ITERATIONS
+ * <client req# per conn>: ACE_MAX_THREADS
+ * <delay>: 50 usec
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> and Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "../test_config.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
#include "ace/Get_Opt.h"
@@ -50,12 +46,12 @@
#include "ace/SSL/SSL_SOCK_Connector.h"
#include "ace/SSL/SSL_SOCK_Acceptor.h"
-ACE_RCSID(tests, Atomic_Op_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
#include "Thread_Pool_Reactor_SSL_Test.h"
-typedef ACE_Strategy_Acceptor <Request_Handler, ACE_SSL_SOCK_ACCEPTOR>
+typedef ACE_Strategy_Acceptor <Request_Handler, ACE_SSL_SOCK_Acceptor>
ACCEPTOR;
// Accepting end point. This is actually "localhost:10010", but some
@@ -66,21 +62,14 @@ static const ACE_TCHAR *rendezvous = ACE_TEXT ("127.0.0.1:10010");
// Total number of server threads.
static size_t svr_thrno = ACE_MAX_THREADS;
-#if defined (CHORUS) // Add platforms that can't handle too many
- // connection simultaneously here.
-#define ACE_LOAD_FACTOR /2
-#else
-#define ACE_LOAD_FACTOR
-#endif
-
// Total number of client threads.
-static size_t cli_thrno = ACE_MAX_THREADS ACE_LOAD_FACTOR;
+static size_t cli_thrno = ACE_MAX_THREADS;
// Total connection attemps of a client thread.
-static size_t cli_conn_no = ACE_MAX_ITERATIONS ACE_LOAD_FACTOR;
+static size_t cli_conn_no = ACE_MAX_ITERATIONS;
// Total requests a client thread sends.
-static size_t cli_req_no = ACE_MAX_THREADS ACE_LOAD_FACTOR;
+static size_t cli_req_no = ACE_MAX_THREADS;
// Delay before a thread sending the next request (in msec.)
static int req_delay = 50;
@@ -128,7 +117,7 @@ parse_arg (int argc, ACE_TCHAR *argv[])
}
Request_Handler::Request_Handler (ACE_Thread_Manager *thr_mgr)
- : ACE_Svc_Handler<ACE_SSL_SOCK_STREAM, ACE_MT_SYNCH> (thr_mgr),
+ : ACE_Svc_Handler<ACE_SSL_SOCK_Stream, ACE_MT_SYNCH> (thr_mgr),
nr_msgs_rcvd_(0)
{
// Make sure we use TP_Reactor with this class (that's the whole
diff --git a/ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.h b/ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.h
index fca5a7f8432..521879fb26c 100644
--- a/ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.h
+++ b/ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.h
@@ -1,23 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests/SSL
-//
-// = FILENAME
-// Thread_Pool_Reactor_Test_SSL.h
-//
-// = DESCRIPTION
-// This class gets its own header file to work around AIX C++
-// compiler "features" related to template instantiation... It is
-// only used by Thread_Pool_Reactor_Test_SSL.cpp.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Pool_Reactor_SSL_Test.h
+ *
+ * $Id$
+ *
+ * This class gets its own header file to work around AIX C++
+ * compiler "features" related to template instantiation... It is
+ * only used by Thread_Pool_Reactor_Test_SSL.cpp.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_THREAD_POOL_REACTOR_TEST_SSL_H
#define ACE_TESTS_THREAD_POOL_REACTOR_TEST_SSL_H
@@ -30,14 +26,14 @@
#include "ace/Svc_Handler.h"
-class Request_Handler : public ACE_Svc_Handler<ACE_SSL_SOCK_STREAM,
+class Request_Handler : public ACE_Svc_Handler<ACE_SSL_SOCK_Stream,
ACE_MT_SYNCH>
{
// = TITLE
// This class is the Svc_Handler used by <Acceptor>.
public:
+ /// The default constructor makes sure the right reactor is used.
Request_Handler (ACE_Thread_Manager *tm = 0);
- // The default constructor makes sure the right reactor is used.
protected:
virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE);
diff --git a/ACE/tests/SString_Test.cpp b/ACE/tests/SString_Test.cpp
index 31eebbc5ad9..ac48df4d12b 100644
--- a/ACE/tests/SString_Test.cpp
+++ b/ACE/tests/SString_Test.cpp
@@ -1,29 +1,26 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SString_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that illustrates the use of ACE_CString
-// and ACE_WString. No command line arguments are needed to run
-// the test.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file SString_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that illustrates the use of ACE_CString
+ * and ACE_WString. No command line arguments are needed to run
+ * the test.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
#include "ace/Auto_Ptr.h"
#include "ace/SString.h"
-ACE_RCSID(tests, SString_Test, "$Id$")
+
static int testConcatenation() {
#ifdef ACE_HAS_WCHAR
@@ -66,6 +63,101 @@ static int testConcatenation() {
return 0;
}
+int testIterator()
+{
+ ACE_CString s1 ("Hello, World");
+
+ // Use the advance () method to count number of characters.
+ size_t count = 0;
+ for (ACE_CString::ITERATOR iter (s1); !iter.done (); iter.advance ())
+ ++ count;
+
+ if (count != s1.length ())
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("advance () failed")),
+ 1);
+
+ // Use the prefix operator to count number of characters.
+ count = 0;
+ for (ACE_CString::ITERATOR iter (s1); !iter.done (); ++ iter)
+ ++ count;
+
+ if (count != s1.length ())
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("++ operator failed")),
+ 1);
+
+ count = 0;
+
+ for (ACE_CString::iterator iter = s1.begin (), iter_end = s1.end ();
+ iter != iter_end; iter ++)
+ {
+ ++ count;
+ }
+
+ if (count != s1.length ())
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("end () failed")),
+ 1);
+
+ ACE_CString::iterator iter1 (s1);
+
+ if (*iter1 != s1[0])
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("dereference operator failed")),
+ 1);
+
+ return 0;
+}
+
+int testConstIterator()
+{
+ const ACE_CString s1 ("Hello, World");
+
+ // Use the advance () method to count number of characters.
+ size_t count = 0;
+ for (ACE_CString::CONST_ITERATOR iter (s1); !iter.done (); iter.advance ())
+ ++ count;
+
+ if (count != s1.length ())
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("advance () failed")),
+ 1);
+
+ // Use the prefix operator to count number of characters.
+ count = 0;
+ for (ACE_CString::CONST_ITERATOR iter (s1); !iter.done (); ++ iter)
+ ++ count;
+
+ if (count != s1.length ())
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("++ operator failed")),
+ 1);
+
+ count = 0;
+
+ for (ACE_CString::const_iterator iter = s1.begin (), iter_end = s1.end ();
+ iter != iter_end; iter ++)
+ {
+ ++ count;
+ }
+
+ if (count != s1.length ())
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("end () failed")),
+ 1);
+
+ ACE_CString::const_iterator iter1 (s1);
+
+ if (*iter1 != s1[0])
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("dereference operator failed")),
+ 1);
+
+ return 0;
+}
+
+
int
run_main (int, ACE_TCHAR *[])
{
@@ -338,7 +430,9 @@ run_main (int, ACE_TCHAR *[])
ACE_Allocator::instance ()->free (const_cast<char *> (tmp.rep ()));
}
- int err = testConcatenation();
+ int err = testConcatenation ();
+ err += testIterator ();
+ err += testConstIterator ();
ACE_END_TEST;
return err;
diff --git a/ACE/tests/SV_Shared_Memory_Test.cpp b/ACE/tests/SV_Shared_Memory_Test.cpp
index 8fd73b158e6..bc505d1f57e 100644
--- a/ACE/tests/SV_Shared_Memory_Test.cpp
+++ b/ACE/tests/SV_Shared_Memory_Test.cpp
@@ -1,26 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// SV_Shared_Memory_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of <ACE_SV_Shared_Memory> and
-// <ACE_Malloc> using the <ACE_Shared_Memory_Pool>. The test
-// forks two processes and then executes client and server
-// allowing them to exchange data using shared memory. No user
-// input is required as far as command line arguments are
-// concerned.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>
-// and Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file SV_Shared_Memory_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of <ACE_SV_Shared_Memory> and
+ * <ACE_Malloc> using the <ACE_Shared_Memory_Pool>. The test
+ * forks two processes and then executes client and server
+ * allowing them to exchange data using shared memory. No user
+ * input is required as far as command line arguments are
+ * concerned.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Malloc_T.h"
@@ -30,7 +26,7 @@
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, SV_Shared_Memory_Test, "$Id$")
+
#if defined (ACE_HAS_SYSV_IPC) && !defined(ACE_LACKS_SYSV_SHMEM)
@@ -69,19 +65,19 @@ parent (char *shm)
int result;
result = parent_mutex->release ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
result = parent_synch->acquire ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
result = myallocator ().remove ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
result = parent_mutex->remove ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
result = parent_synch->remove ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
return 0;
}
@@ -98,7 +94,7 @@ child (char *shm)
result = mutex.open (SEM_KEY_1,
ACE_SV_Semaphore_Complex::ACE_CREATE,
0);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
ACE_SV_Semaphore_Complex synch;
// This semaphore is initially created with a count of 0, i.e., it
@@ -106,7 +102,7 @@ child (char *shm)
result = synch.open (SEM_KEY_2,
ACE_SV_Semaphore_Complex::ACE_CREATE,
0);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
// Perform "busy waiting" here until we acquire the semaphore. This
// isn't really a good design -- it's just to illustrate that you
@@ -120,14 +116,14 @@ child (char *shm)
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P) child mutex.tryacquire")));
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
for (int i = 0; i < SHMSZ; i++)
- ACE_ASSERT (SHMDATA[i] == shm[i]);
+ ACE_TEST_ASSERT (SHMDATA[i] == shm[i]);
result = synch.release ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
return 0;
}
@@ -166,14 +162,14 @@ run_main (int, ACE_TCHAR *[])
int result = parent_mutex->open (SEM_KEY_1,
ACE_SV_Semaphore_Complex::ACE_CREATE,
0);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
// This semaphore is initially created with a count of 0, i.e., it
// is "locked."
result = parent_synch->open (SEM_KEY_2,
ACE_SV_Semaphore_Complex::ACE_CREATE,
0);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
switch (ACE_OS::fork (ACE_TEXT ("SV_Shared_Memory_Test.cpp")))
{
diff --git a/ACE/tests/Semaphore_Test.cpp b/ACE/tests/Semaphore_Test.cpp
index 75fe98f848e..08376b42734 100644
--- a/ACE/tests/Semaphore_Test.cpp
+++ b/ACE/tests/Semaphore_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Semaphore Test
-//
-// = DESCRIPTION
-// This test verifies the functionality of the <ACE_Thread_Semaphore>
-// implementation.
-//
-// = AUTHOR
-// Darrell Brunsch <brunsch@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Semaphore_Test.cpp
+ *
+ * $Id$
+ *
+ * This test verifies the functionality of the <ACE_Thread_Semaphore>
+ * implementation.
+ *
+ *
+ * @author Darrell Brunsch <brunsch@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Thread_Semaphore.h"
@@ -26,7 +23,7 @@
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Semaphore_Test, "$Id$")
+
// msec that times are allowed to differ before test fails.
#if defined (ACE_HAS_HI_RES_TIMER) || defined (ACE_HAS_AIX_HI_RES_TIMER) || \
diff --git a/ACE/tests/Service_Config_DLL.cpp b/ACE/tests/Service_Config_DLL.cpp
index c3d4be87e69..2d5ca2dd34a 100644
--- a/ACE/tests/Service_Config_DLL.cpp
+++ b/ACE/tests/Service_Config_DLL.cpp
@@ -20,10 +20,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
-ACE_RCSID (tests,
- Service_Config_DLL,
- "$Id$")
-
static ACE_THR_FUNC_RETURN
invoke_service_config (void *arg)
{
diff --git a/ACE/tests/Service_Config_Stream_DLL.cpp b/ACE/tests/Service_Config_Stream_DLL.cpp
new file mode 100644
index 00000000000..7dc8b541fce
--- /dev/null
+++ b/ACE/tests/Service_Config_Stream_DLL.cpp
@@ -0,0 +1,147 @@
+// $Id$
+
+#include "Service_Config_Stream_DLL.h"
+#include "ace/Service_Repository.h"
+#include "ace/Service_Types.h"
+
+
+
+int
+Test_Task::open (void *)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("opening %s\n"),
+ this->name () ? this->name () : ACE_TEXT ("task")));
+ return 0;
+}
+
+int
+Test_Task::close (u_long)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("closing %s\n"),
+ this->name () ? this->name () : ACE_TEXT ("task")));
+ return 0;
+}
+
+int
+Test_Task::init (int, ACE_TCHAR *[])
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("initializing %s\n"),
+ this->name () ? this->name () : ACE_TEXT ("task")));
+
+ return 0;
+}
+
+int
+Test_Task::fini (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("finalizing %s\n"),
+ this->name () ? this->name () : ACE_TEXT ("task")));
+ return 0;
+}
+
+// Factories used to control configuration.
+
+ACE_FACTORY_DECLARE (Service_Config_Stream_DLL, Test_Task)
+ACE_FACTORY_DEFINE (Service_Config_Stream_DLL, Test_Task)
+
+// Dynamically linked functions used to control configuration.
+
+extern "C" Service_Config_Stream_DLL_Export MT_Stream *make_stream (void);
+extern "C" Service_Config_Stream_DLL_Export MT_Module *make_da (void);
+extern "C" Service_Config_Stream_DLL_Export MT_Module *make_ea (void);
+extern "C" Service_Config_Stream_DLL_Export MT_Module *make_mr (void);
+extern "C" Service_Config_Stream_DLL_Export MT_Module *make_close (void);
+
+MT_Stream *
+make_stream (void)
+{
+ return new MT_Stream;
+}
+
+MT_Module *
+make_da (void)
+{
+ return new MT_Module (ACE_TEXT ("Device_Adapter"),
+ new Test_Task, new Test_Task);
+}
+
+MT_Module *
+make_ea (void)
+{
+ return new MT_Module (ACE_TEXT ("Event_Analyzer"),
+ new Test_Task, new Test_Task);
+}
+
+MT_Module *
+make_mr (void)
+{
+ return new MT_Module (ACE_TEXT ("Multicast_Router"),
+ new Test_Task, new Test_Task);
+}
+
+MT_Module *
+make_close (void)
+{
+ return new MT_Module (ACE_TEXT ("Close_Test_Module"),
+ new Test_Task, new Test_Task);
+}
+
+
+// Task to verify the order and operation of the stream assembly
+// Command line args give the stream name (to look it up) and the names
+// of the tasks that should be there, from head to tail.
+
+ACE_FACTORY_DECLARE (Service_Config_Stream_DLL, Stream_Order_Test)
+ACE_FACTORY_DEFINE (Service_Config_Stream_DLL, Stream_Order_Test)
+
+int
+Stream_Order_Test::init (int argc, ACE_TCHAR *argv[])
+{
+ if (argc < 1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Stream_Order_Test needs at least 1 arg\n")),
+ -1);
+ const ACE_Service_Type *st = 0;
+ if (ACE_Service_Repository::instance ()->find (argv[0], &st, false) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("Cannot find %s\n"), argv[0]), -1);
+ const ACE_Service_Type_Impl *st_impl = st->type ();
+ MT_Stream *str = reinterpret_cast<MT_Stream *>(st_impl->object ());
+ MT_Module *m = 0;
+ if (-1 == str->top (m))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Cannot get module %p\n"),
+ ACE_TEXT ("top")),
+ -1);
+ // Walk down the stream and compare module names. Note we start from the
+ // top, i.e., the last module pushed.
+ bool error = false;
+ for (int i = 1; i < argc; ++i)
+ {
+ if (m == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Ran out of modules at layer %d\n"),
+ i));
+ continue;
+ }
+ if (ACE_OS::strcmp (argv[i], m->name ()) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Layer %d: expected module %s, found %s\n"),
+ i,
+ argv[i], m->name ()));
+ error = true;
+ }
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Layer %d: found module %s, correct\n"),
+ i,
+ m->name ()));
+ m = m->next ();
+ }
+ return error ? -1 : 0;
+}
diff --git a/ACE/tests/Service_Config_Stream_DLL.h b/ACE/tests/Service_Config_Stream_DLL.h
new file mode 100644
index 00000000000..417ddb30894
--- /dev/null
+++ b/ACE/tests/Service_Config_Stream_DLL.h
@@ -0,0 +1,44 @@
+// $Id$
+
+#ifndef SERVICE_CONFIG_STREAM_DLL_H
+#define SERVICE_CONFIG_STREAM_DLL_H
+
+#include /**/ "ace/pre.h"
+
+#include "Service_Config_Stream_DLL_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Task.h"
+#include "ace/Stream.h"
+#include "ace/Module.h"
+
+typedef ACE_Task<ACE_SYNCH> MT_Task;
+typedef ACE_Stream<ACE_SYNCH> MT_Stream;
+typedef ACE_Module<ACE_SYNCH> MT_Module;
+
+class Service_Config_Stream_DLL_Export Test_Task : public MT_Task
+{
+public:
+ //FUZZ: disable check_for_lack_ACE_OS
+ virtual int open (void *);
+ virtual int close (u_long);
+ //FUZZ: enable check_for_lack_ACE_OS
+
+ virtual int init (int, ACE_TCHAR *[]);
+ virtual int fini (void);
+};
+
+// Task to verify the order and operation of the stream assembly
+// Command line args give the stream name (to look it up) and the names
+// of the tasks that should be there, from head to tail.
+class Service_Config_Stream_DLL_Export Stream_Order_Test : public MT_Task
+{
+public:
+ virtual int init (int, ACE_TCHAR *[]);
+};
+
+#include /**/ "ace/post.h"
+#endif /* SERVICE_CONFIG_STREAM_DLL_H */
diff --git a/ACE/tests/Service_Config_Stream_DLL_Export.h b/ACE/tests/Service_Config_Stream_DLL_Export.h
new file mode 100644
index 00000000000..9ef0f6caad6
--- /dev/null
+++ b/ACE/tests/Service_Config_Stream_DLL_Export.h
@@ -0,0 +1,38 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl
+// ------------------------------
+#ifndef SERVICE_CONFIG_STREAM_DLL_EXPORT_H
+#define SERVICE_CONFIG_STREAM_DLL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (SERVICE_CONFIG_STREAM_DLL_HAS_DLL)
+# define SERVICE_CONFIG_STREAM_DLL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ! SERVICE_CONFIG_STREAM_DLL_HAS_DLL */
+
+#if !defined (SERVICE_CONFIG_STREAM_DLL_HAS_DLL)
+# define SERVICE_CONFIG_STREAM_DLL_HAS_DLL 1
+#endif /* ! TEST_HAS_DLL */
+
+#if defined (SERVICE_CONFIG_STREAM_DLL_HAS_DLL) && (SERVICE_CONFIG_STREAM_DLL_HAS_DLL == 1)
+# if defined (SERVICE_CONFIG_STREAM_DLL_BUILD_DLL)
+# define Service_Config_Stream_DLL_Export ACE_Proper_Export_Flag
+# define TEST_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define TEST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SERVICE_CONFIG_STREAM_DLL_BUILD_DLL */
+# define Service_Config_Stream_DLL_Export ACE_Proper_Import_Flag
+# define TEST_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define TEST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SERVICE_CONFIG_STREAM_DLL_BUILD_DLL */
+#else /* SERVICE_CONFIG_STREAM_DLL_HAS_DLL == 1 */
+# define Service_Config_Stream_DLL_Export
+# define TEST_SINGLETON_DECLARATION(T)
+# define TEST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SERVICE_CONFIG_STREAM_DLL_HAS_DLL == 1 */
+
+#endif /* SERVICE_CONFIG_STREAM_DLL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/ACE/tests/Service_Config_Stream_Test.conf b/ACE/tests/Service_Config_Stream_Test.conf
new file mode 100644
index 00000000000..5a4b0f6d235
--- /dev/null
+++ b/ACE/tests/Service_Config_Stream_Test.conf
@@ -0,0 +1,27 @@
+# $Id$
+
+stream dynamic Svc_Conf_Stream STREAM *Service_Config_Stream_DLL:make_stream() active
+{
+ dynamic Device_Adapter Module *Service_Config_Stream_DLL:make_da()
+# static Decrypter
+ dynamic Event_Analyzer Module *Service_Config_Stream_DLL:make_ea()
+ dynamic Multicast_Router Module *Service_Config_Stream_DLL:make_mr()
+}
+
+#dynamic Stream_Order_Test Service_Object *Service_Config_Stream_DLL:_make_Stream_Order_Test() "Svc_Conf_Stream Multicast_Router Event_Analyzer Decrypter Device_Adapter"
+dynamic Stream_Order_Test Service_Object *Service_Config_Stream_DLL:_make_Stream_Order_Test() "Svc_Conf_Stream Multicast_Router Event_Analyzer Device_Adapter"
+
+stream Svc_Conf_Stream
+{
+ remove Device_Adapter
+ remove Event_Analyzer
+ remove Multicast_Router
+}
+#stream Svc_Conf_Stream
+#{
+# remove Decrypter
+#}
+
+remove Svc_Conf_Stream
+remove Stream_Order_Test
+
diff --git a/ACE/tests/Service_Config_Stream_Test.cpp b/ACE/tests/Service_Config_Stream_Test.cpp
new file mode 100644
index 00000000000..c83882189c8
--- /dev/null
+++ b/ACE/tests/Service_Config_Stream_Test.cpp
@@ -0,0 +1,128 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = DESCRIPTION
+// This test exercises ACE_Service_Config assembling a stream.
+//
+// = AUTHOR
+// Steve Huston <shuston@riverace.com>
+//
+// ============================================================================
+
+#include "test_config.h"
+#include "ace/Log_Msg.h"
+#include "ace/Module.h"
+#include "ace/Service_Config.h"
+#include "ace/Task.h"
+
+
+
+/*
+ * The Decrypter service is static and is configured into a stream
+ * dynamically.
+ *
+ * NOTE! This code is here, and it will trip up while being loaded. If
+ * "static Decrypter" is inserted into the .conf file's module list, this
+ * test will barf. This is arguably a weird test, but I don't know any
+ * reason it should not work; however, this behavior has never been tested
+ * and may not have ever worked... but if someone is feeling ambitious,
+ * please go ahead and make this work. I'm out of time and energy.
+ * -Steve Huston
+ */
+class Static_Task : public ACE_Task<ACE_SYNCH>
+{
+public:
+ int open (void *)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("opening %s\n"),
+ this->name () ? this->name () : ACE_TEXT ("Static_Task")));
+ return 0;
+ }
+
+ int close (u_long)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("closing %s\n"),
+ this->name () ? this->name () : ACE_TEXT ("Static_Task")));
+ return 0;
+ }
+
+ int init (int, ACE_TCHAR *[])
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("initializing %s\n"),
+ this->name () ? this->name () : ACE_TEXT ("Static_Task")));
+ return 0;
+ }
+
+ int fini (void)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("finalizing %s\n"),
+ this->name () ? this->name () : ACE_TEXT ("Static_Task")));
+ return 0;
+ }
+};
+
+class Decrypter : public ACE_Service_Object, public ACE_Module<ACE_SYNCH>
+{
+public:
+ Decrypter ()
+ : ACE_Module<ACE_SYNCH> (ACE_TEXT ("Decrypter"),
+ &writer_, &reader_,
+ 0,
+ M_DELETE_NONE) // Tasks are members; don't delete
+ {}
+
+private:
+ Static_Task writer_;
+ Static_Task reader_;
+};
+
+ACE_FACTORY_DEFINE (ACE_Local_Service, Decrypter)
+ACE_STATIC_SVC_DEFINE (Decrypter_Descriptor,
+ ACE_TEXT ("Decrypter"),
+ ACE_MODULE_T,
+ &ACE_SVC_NAME (Decrypter),
+ (ACE_Service_Type::DELETE_THIS |
+ ACE_Service_Type::DELETE_OBJ),
+ 1)
+ACE_STATIC_SVC_REQUIRE (Decrypter_Descriptor)
+
+
+int
+run_main (int, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("Service_Config_Stream_Test"));
+
+ ACE_STATIC_SVC_REGISTER (Decrypter);
+
+ // If you want to try the static module in the stream test (comments at
+ // the top of this file) it needs the -y in the argv list which enables
+ // static services. Otherwise it's not really needed. Same with the
+ // 'false' 4th arg to open() below - it allows static services.
+ ACE_TCHAR *_argv[5] = { argv[0],
+ const_cast<ACE_TCHAR*> (ACE_TEXT ("-d")),
+ const_cast<ACE_TCHAR*> (ACE_TEXT ("-y")),
+ const_cast<ACE_TCHAR*> (ACE_TEXT ("-f")),
+ const_cast<ACE_TCHAR*>
+ (ACE_TEXT ("Service_Config_Stream_Test.conf")) };
+ int status;
+ if ((status = ACE_Service_Config::open (5,
+ _argv,
+ ACE_DEFAULT_LOGGER_KEY,
+ false,
+ true /*ignore def svc.conf*/)) == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("open"),
+ 1));
+
+ ACE_END_TEST;
+ return status;
+}
diff --git a/ACE/tests/Service_Config_Test.UTF-16.conf b/ACE/tests/Service_Config_Test.UTF-16.conf
index fee216c95f9..428389a5670 100644
--- a/ACE/tests/Service_Config_Test.UTF-16.conf
+++ b/ACE/tests/Service_Config_Test.UTF-16.conf
Binary files differ
diff --git a/ACE/tests/Service_Config_Test.WCHAR_T.conf b/ACE/tests/Service_Config_Test.WCHAR_T.conf
index 81f6e1fe4d6..77a8ac2d116 100644
--- a/ACE/tests/Service_Config_Test.WCHAR_T.conf
+++ b/ACE/tests/Service_Config_Test.WCHAR_T.conf
Binary files differ
diff --git a/ACE/tests/Service_Config_Test.conf b/ACE/tests/Service_Config_Test.conf
index 34d51068365..bf0a028e5b1 100644
--- a/ACE/tests/Service_Config_Test.conf
+++ b/ACE/tests/Service_Config_Test.conf
@@ -1,3 +1,5 @@
+## $Id$
+
# Dynamically loading each of the Service Objects below causes a
# number of threads to be spawned, each one invoking the Service
# Configurator (e.g. ACE_Service_Config::process_directive(). If the
diff --git a/ACE/tests/Service_Config_Test.conf.xml b/ACE/tests/Service_Config_Test.conf.xml
index f3273f0cb93..3b18637e308 100644
--- a/ACE/tests/Service_Config_Test.conf.xml
+++ b/ACE/tests/Service_Config_Test.conf.xml
@@ -1,3 +1,4 @@
+<!-- $Id$ -->
<?xml version='1.0'?>
<!-- Converted from Service_Config_Test.conf by svcconf-convert.pl -->
<ACE_Svc_Conf>
diff --git a/ACE/tests/Service_Config_Test.cpp b/ACE/tests/Service_Config_Test.cpp
index 10f02350d29..95d7fba70fa 100644
--- a/ACE/tests/Service_Config_Test.cpp
+++ b/ACE/tests/Service_Config_Test.cpp
@@ -28,10 +28,6 @@
#include "ace/Thread_Manager.h"
#include "ace/ARGV.h"
-ACE_RCSID (tests,
- Service_Config_Test,
- "$Id$")
-
static const u_int VARIETIES = 3;
static u_int error = 0;
@@ -328,6 +324,55 @@ testLoadingServiceConfFile (int argc, ACE_TCHAR *argv[])
}
+// Loading and unloading the ACE logger service should not smash singletons.
+void
+testUnloadingACELoggingStrategy (int, ACE_TCHAR *[])
+{
+ static const ACE_TCHAR *load_logger =
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
+ ACE_TEXT ("dynamic Logger Service_Object * ")
+ ACE_TEXT (" ACE:_make_ACE_Logging_Strategy() \"\"")
+#else
+ ACE_TEXT ("<dynamic id=\"Logger\" type=\"Service_Object\">")
+ ACE_TEXT (" <initializer init=\"_make_ACE_Logging_Strategy\" ")
+ ACE_TEXT (" path=\"ACE\" params=\"\"/>")
+ ACE_TEXT ("</dynamic>")
+#endif /* (ACE_USES_CLASSIC_SVC_CONF == 1) */
+ ;
+
+ static const ACE_TCHAR *unload_logger =
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
+ ACE_TEXT ("remove Logger")
+#else
+ ACE_TEXT ("<remove id=\"Logger\" />");
+#endif /* (ACE_USES_CLASSIC_SVC_CONF == 1) */
+ ;
+
+ ACE_Reactor *r1 = ACE_Reactor::instance();
+
+ // Ensure no errors are logged while searching for a valid ACE lib name;
+ // these skew the scoreboard results.
+ u_long mask = ACE_LOG_MSG->priority_mask (ACE_Log_Msg::PROCESS);
+ ACE_LOG_MSG->priority_mask (mask & ~LM_ERROR, ACE_Log_Msg::PROCESS);
+ ACE_DEBUG ((LM_DEBUG, "Was %x, now %x\n", mask, mask & ~LM_ERROR));
+ int error_count = ACE_Service_Config::process_directive (load_logger);
+ ACE_LOG_MSG->priority_mask (mask);
+ if (error_count != 0)
+ {
+ ++error;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Load ACE Logger should have returned 0; ")
+ ACE_TEXT ("returned %d instead\n"),
+ error_count));
+ }
+ ACE_Service_Config::process_directive (unload_logger);
+
+ ACE_Reactor *r2 = ACE_Reactor::instance ();
+ if (r1 != r2)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Reactor before %@, after %@\n"), r1, r2));
+}
+
+
// @brief The size of a repository is unlimited and can be exceeded
void
testLimits (int , ACE_TCHAR *[])
@@ -525,7 +570,7 @@ testOrderlyInstantiation (int , ACE_TCHAR *[])
// To do this, we need a native thread entry and, thus, it needs special care
// for each platform type. Feel free to add more platforms as needed here and
// in main() where the test is called.
-#if defined (ACE_HAS_WTHREADS) || defined (ACE_HAS_PTHREADS_STD)
+#if defined (ACE_HAS_WTHREADS) || defined (ACE_HAS_PTHREADS)
# if defined (ACE_HAS_WTHREADS)
extern "C" unsigned int __stdcall
# else
@@ -619,7 +664,7 @@ testNonACEThread ()
WaitForSingleObject (thr_h, INFINITE);
CloseHandle (thr_h);
}
-#elif defined (ACE_HAS_PTHREADS_STD)
+#elif defined (ACE_HAS_PTHREADS)
pthread_t thr_id;
int status = pthread_create (&thr_id, 0, nonacethreadentry, &log_msg_attrs);
if (status != 0)
@@ -654,7 +699,7 @@ testNonACEThread ()
}
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Non-ACE thread lookup test completed\n")));
}
-#endif /* ACE_HAS_WTHREADS || ACE_HAS_PTHREADS_STD */
+#endif /* ACE_HAS_WTHREADS || ACE_HAS_PTHREADS */
int
run_main (int argc, ACE_TCHAR *argv[])
@@ -665,9 +710,10 @@ run_main (int argc, ACE_TCHAR *argv[])
testFailedServiceInit (argc, argv);
testLoadingServiceConfFile (argc, argv);
testLoadingServiceConfFileAndProcessNo (argc, argv);
+ testUnloadingACELoggingStrategy (argc, argv);
testLimits (argc, argv);
testrepository (argc, argv);
-#if defined (ACE_HAS_WTHREADS) || defined (ACE_HAS_PTHREADS_STD)
+#if defined (ACE_HAS_WTHREADS) || defined (ACE_HAS_PTHREADS)
testNonACEThread();
#endif
diff --git a/ACE/tests/Sig_Handlers_Test.cpp b/ACE/tests/Sig_Handlers_Test.cpp
index eabe92895bb..ed6224f2e98 100644
--- a/ACE/tests/Sig_Handlers_Test.cpp
+++ b/ACE/tests/Sig_Handlers_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Sig_Handlers_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple program that tests whether the ACE_Sig_Handlers
-// class works properly. To run this test, start the application
-// and then type ^C. If everything is working properly the test
-// will shutdown gracefully.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@dre.vanderbilt.edu> and Andreas Drescher <ace at anticat dot ch>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Sig_Handlers_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple program that tests whether the ACE_Sig_Handlers
+ * class works properly. To run this test, start the application
+ * and then type ^C. If everything is working properly the test
+ * will shutdown gracefully.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@dre.vanderbilt.edu> and Andreas Drescher <ace at anticat dot ch>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Reactor.h"
@@ -28,7 +25,7 @@
#include "ace/Assert.h"
#include "ace/SString.h"
-ACE_RCSID(tests, Reactor_Timer_Test, "$Id$")
+
class Test_SIGINT_Handler : public ACE_Event_Handler
{
@@ -46,12 +43,12 @@ public:
~Test_SIGINT_Handler()
{
- ACE_ASSERT (Test_SIGINT_Handler::handle_signal_count_ == Test_SIGINT_Handler::registration_count_);
+ ACE_TEST_ASSERT (Test_SIGINT_Handler::handle_signal_count_ == Test_SIGINT_Handler::registration_count_);
}
virtual int handle_signal (int signal, siginfo_t *, ucontext_t *)
{
- ACE_ASSERT (signal == SIGINT);
+ ACE_TEST_ASSERT (signal == SIGINT);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT("Main::Test_SIGINT_Handler (%u) - %s\n"),
this,
@@ -85,7 +82,7 @@ public:
virtual int handle_signal (int signal, siginfo_t *, ucontext_t *)
{
- ACE_ASSERT (signal == SIGINT);
+ ACE_TEST_ASSERT (signal == SIGINT);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT("Main::Test_SIGINT_Shutdown_Handler (%u)\n"),
this));
diff --git a/ACE/tests/Signal_Test.cpp b/ACE/tests/Signal_Test.cpp
index 74251025f0a..175aa9b004b 100644
--- a/ACE/tests/Signal_Test.cpp
+++ b/ACE/tests/Signal_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Signal_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the signal handling capabilities of ACE on
-// various OS platforms that support sending signals between
-// processes.
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Signal_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the signal handling capabilities of ACE on
+ * various OS platforms that support sending signals between
+ * processes.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Thread_Manager.h"
@@ -28,8 +25,10 @@
#include "ace/OS_NS_signal.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_stdlib.h"
+#include "ace/SString.h"
+
-ACE_RCSID(tests, Signal_Test, "$Id$")
#if !defined (ACE_LACKS_UNIX_SIGNALS)
@@ -102,7 +101,7 @@ handle_signal (int signum)
#endif
int const result = ACE_OS::kill (child_pid,
SIGTERM);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
return -1;
}
@@ -234,7 +233,7 @@ worker_child (void *arg)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("kill")));
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
}
}
@@ -248,7 +247,7 @@ worker_child (void *arg)
// We need to do this to dislodge the signal handling thread if
// it hasn't shut down on its own accord yet.
int const result = ACE_OS::kill (ACE_OS::getpid (), SIGINT);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
}
ACE_DEBUG ((LM_DEBUG,
@@ -277,7 +276,7 @@ worker_parent (void *arg)
// so we need to indicate that it's the child.
const ACE_TCHAR *t = ACE_TEXT (".")
ACE_DIRECTORY_SEPARATOR_STR
- ACE_TEXT ("Signal_Test")
+ ACE_TEXT ("%sSignal_Test")
ACE_PLATFORM_EXE_SUFFIX
ACE_TEXT (" -c");
l_argv[0] = const_cast <ACE_TCHAR *> (t);
@@ -287,7 +286,15 @@ worker_parent (void *arg)
ACE_ARGV argv (l_argv);
// Generate a command-line!
- options.command_line (argv.buf ());
+ ACE_TString exe_sub_dir;
+ const char *subdir_env = ACE_OS::getenv ("ACE_EXE_SUB_DIR");
+ if (subdir_env)
+ {
+ exe_sub_dir = ACE_TEXT_CHAR_TO_TCHAR (subdir_env);
+ exe_sub_dir += ACE_DIRECTORY_SEPARATOR_STR;
+ }
+
+ options.command_line (argv.buf (), exe_sub_dir.c_str ());
ACE_Process pm;
child_pid = pm.spawn (options);
@@ -352,7 +359,7 @@ run_test (ACE_THR_FUNC worker,
(worker,
reinterpret_cast <void *> (handle_signals_synchronously),
THR_DETACHED);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
if (handle_signals_in_separate_thread)
{
@@ -363,7 +370,7 @@ run_test (ACE_THR_FUNC worker,
(synchronous_signal_handler,
0,
THR_DETACHED);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
else
{
@@ -372,7 +379,7 @@ run_test (ACE_THR_FUNC worker,
// Wait for the thread(s) to finish.
result = ACE_Thread_Manager::instance ()->wait ();
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
else
#else
@@ -473,6 +480,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 +495,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/Sigset_Ops_Test.cpp b/ACE/tests/Sigset_Ops_Test.cpp
index df2eb5bb2ef..83b9f4b244d 100644
--- a/ACE/tests/Sigset_Ops_Test.cpp
+++ b/ACE/tests/Sigset_Ops_Test.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Sigset_Ops_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the correctness of following functions.
-// sigfillset(), sigemptyset(), sigaddset(), sigdelset(),
-// sigismember().
-//
-// = AUTHOR
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Sigset_Ops_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the correctness of following functions.
+ * sigfillset(), sigemptyset(), sigaddset(), sigdelset(),
+ * sigismember().
+ *
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_signal.h"
#include "ace/OS_NS_errno.h"
-ACE_RCSID(tests, Sigset_Ops_Test, "$Id$")
+
void
siglistset (sigset_t x, int *sigset, int can_miss = 0)
@@ -48,7 +45,7 @@ siglistset (sigset_t x, int *sigset, int can_miss = 0)
i));
result = 1;
}
- ACE_ASSERT ((sigset [i] ? result > 0 : result <= 0)) ;
+ ACE_TEST_ASSERT ((sigset [i] ? result > 0 : result <= 0)) ;
}
if (empty)
@@ -140,7 +137,7 @@ run_main (int, ACE_TCHAR *[])
// that fall into this catagory, please let me know. Thanks.
ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Now testing invalid sigset. If your platform gets a \nsegmentation fault, then it doesn't check the error properly.\n"))) ;
- ACE_ASSERT (ACE_OS::sigfillset (0) < 0 && ACE_OS::last_error () == EFAULT) ;
+ ACE_TEST_ASSERT (ACE_OS::sigfillset (0) < 0 && ACE_OS::last_error () == EFAULT) ;
*/
ACE_END_TEST;
diff --git a/ACE/tests/Simple_Message_Block_Test.cpp b/ACE/tests/Simple_Message_Block_Test.cpp
index 6a7eb841240..7c917410e38 100644
--- a/ACE/tests/Simple_Message_Block_Test.cpp
+++ b/ACE/tests/Simple_Message_Block_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Simple_Message_Block_Test.cpp
-//
-// = DESCRIPTION
-// This test program is a torture test that illustrates how
-// ACE_Message_Block reference counting works, how and when locks
-// are used, how memory is managed, and how continuation chains
-// of message blocks are made. Ideally used with purify :-)
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Simple_Message_Block_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program is a torture test that illustrates how
+ * ACE_Message_Block reference counting works, how and when locks
+ * are used, how memory is managed, and how continuation chains
+ * of message blocks are made. Ideally used with purify :-)
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Message_Block.h"
@@ -26,7 +23,7 @@
#include "ace/OS_NS_string.h"
#include "ace/Thread_Mutex.h"
-ACE_RCSID(tests, Simple_Message_Block_Test, "$Id$")
+
int
run_main (int, ACE_TCHAR *[])
@@ -40,7 +37,7 @@ run_main (int, ACE_TCHAR *[])
{
// Checks normal heap deletes.
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block, -1);
mb->release ();
@@ -79,7 +76,7 @@ run_main (int, ACE_TCHAR *[])
{
// Checks normal heap deletes.
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block, -1);
mb->locking_strategy (lock);
mb->release ();
diff --git a/ACE/tests/Singleton_Test.cpp b/ACE/tests/Singleton_Test.cpp
index 03d2ec9bdd8..49265ac06ee 100644
--- a/ACE/tests/Singleton_Test.cpp
+++ b/ACE/tests/Singleton_Test.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Singleton_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of ACE Singleton
-//
-// = AUTHOR
-// Johnny Willemsen <jwillemsen@remedy.nl>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file Singleton_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of ACE Singleton
+ *
+ *
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
#include "ace/Singleton.h"
-ACE_RCSID(tests, Singleton_Test, "$Id$")
+
int
run_main (int, ACE_TCHAR *[])
diff --git a/ACE/tests/Stack_Trace_Test.cpp b/ACE/tests/Stack_Trace_Test.cpp
index 9823d432178..ac636cfc22d 100644
--- a/ACE/tests/Stack_Trace_Test.cpp
+++ b/ACE/tests/Stack_Trace_Test.cpp
@@ -17,7 +17,7 @@
#include "ace/OS_NS_string.h"
#include "test_config.h"
-ACE_RCSID(tests, Stack_Trace_Test, "$Id$")
+
/*
* Ultra-basic test of stack trace.
diff --git a/ACE/tests/Svc_Handler_Test.cpp b/ACE/tests/Svc_Handler_Test.cpp
index 23dba078c8e..7c7358c3e45 100644
--- a/ACE/tests/Svc_Handler_Test.cpp
+++ b/ACE/tests/Svc_Handler_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Svc_Handler_Test.cpp
-//
-// = DESCRIPTION
-// This tests illustrates the "buffering" strategy of the
-// <ACE_Buffered_Svc_Handler>. This test also illustrates how the
-// <ACE_FILE_IO> classes work.
-//
-// = AUTHORS
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Svc_Handler_Test.cpp
+ *
+ * $Id$
+ *
+ * This tests illustrates the "buffering" strategy of the
+ * <ACE_Buffered_Svc_Handler>. This test also illustrates how the
+ * <ACE_FILE_IO> classes work.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_string.h"
@@ -26,9 +23,7 @@
#include "ace/Svc_Handler.h"
#include "ace/Synch_Traits.h"
-ACE_RCSID(tests, Svc_Handler_Test, "$Id$")
-
-typedef ACE_Buffered_Svc_Handler <ACE_FILE_STREAM, ACE_NULL_SYNCH> SVC_HANDLER;
+typedef ACE_Buffered_Svc_Handler <ACE_FILE_IO, ACE_NULL_SYNCH> SVC_HANDLER;
static void
run_test (SVC_HANDLER &svc_handler,
diff --git a/ACE/tests/TP_Reactor_Test.cpp b/ACE/tests/TP_Reactor_Test.cpp
index d0dff09d194..1dcb7f5612e 100644
--- a/ACE/tests/TP_Reactor_Test.cpp
+++ b/ACE/tests/TP_Reactor_Test.cpp
@@ -1,52 +1,50 @@
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TPReactor_test.cpp
-//
-// = DESCRIPTION
-// This program illustrates how the <ACE_TP_Reactor> can be used to
-// implement an application that does various operations.
-// usage: TP_Reactor_Test
-// -n number threads in the TP_Reactor thread pool
-// -d duplex mode 1 (full-duplex) vs. 0 (half-duplex)
-// -p port to listen(Server)/connect(Client)
-// -h host to connect (Client mode)
-// -s number of sender's instances ( Client mode)
-// -b run client and server (both modes ) at the same time
-// -v log level
-// 0 - log all messages
-// 1 - log only errors and unusual cases
-// -i time to run in seconds
-// -u show this message
-//
-// The main differences between Thread_Pool_Reactor_Test.cpp and
-// this test are:
-//
-// 1. Thread_Pool_Reactor_Test.cpp tests only handle_input()
-// events on the server, whereas this one tests both handle_input() and
-// handle_output() on both server and client, i.e., the receiver
-// and sender are completely event-driven.
-//
-// 2. The receiver and sender in this test can work in full duplex
-// mode, i.e., input and ouput events are processed independently.
-// Half-duplex mode (request-reply) is also supported.
-//
-// This test is therefore a bit more stressful than the
-// Thread_Pool_Reactor.cpp for the ACE_TP_Reactor since same
-// thread pool is shared between client and server.
-//
-// This test is a "twin" of the Proactor_Test.cpp, so it can help for
-// developers to provide independent of Reactor/Proactor solutions.
-//
-// = AUTHOR
-// Alexander Libman <alibman@ihug.com.au>,<alexl@rumblgroup.com>
-//
-//============================================================================
+
+//=============================================================================
+/**
+ * @file TP_Reactor_Test.cpp
+ *
+ * $Id$
+ *
+ * This program illustrates how the <ACE_TP_Reactor> can be used to
+ * implement an application that does various operations.
+ * usage: TP_Reactor_Test
+ * -n number threads in the TP_Reactor thread pool
+ * -d duplex mode 1 (full-duplex) vs. 0 (half-duplex)
+ * -p port to listen(Server)/connect(Client)
+ * -h host to connect (Client mode)
+ * -s number of sender's instances ( Client mode)
+ * -b run client and server (both modes ) at the same time
+ * -v log level
+ * 0 - log all messages
+ * 1 - log only errors and unusual cases
+ * -i time to run in seconds
+ * -u show this message
+ *
+ * The main differences between Thread_Pool_Reactor_Test.cpp and
+ * this test are:
+ *
+ * 1. Thread_Pool_Reactor_Test.cpp tests only handle_input()
+ * events on the server, whereas this one tests both handle_input() and
+ * handle_output() on both server and client, i.e., the receiver
+ * and sender are completely event-driven.
+ *
+ * 2. The receiver and sender in this test can work in full duplex
+ * mode, i.e., input and ouput events are processed independently.
+ * Half-duplex mode (request-reply) is also supported.
+ *
+ * This test is therefore a bit more stressful than the
+ * Thread_Pool_Reactor.cpp for the ACE_TP_Reactor since same
+ * thread pool is shared between client and server.
+ *
+ * This test is a "twin" of the Proactor_Test.cpp, so it can help for
+ * developers to provide independent of Reactor/Proactor solutions.
+ *
+ *
+ * @author Alexander Libman <alibman@ihug.com.au>
+ * @author <alexl@rumblgroup.com>
+ */
+//=============================================================================
+
#include "test_config.h"
@@ -67,7 +65,7 @@
#include "ace/Synch_Traits.h"
#include "ace/Thread_Semaphore.h"
-ACE_RCSID(TPReactor, TPReactor_Test, "TPReactor_Test.cpp,v 1.27 2000/03/07 17:15:56 schmidt Exp")
+
// Some debug helper functions
static int disable_signal (int sigmin, int sigmax);
@@ -158,7 +156,7 @@ MyTask::create_reactor (void)
this->lock_,
-1);
- ACE_ASSERT (this->my_reactor_ == 0);
+ ACE_TEST_ASSERT (this->my_reactor_ == 0);
ACE_TP_Reactor * pImpl = 0;
@@ -248,6 +246,8 @@ MyTask::svc (void)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" (%t) MyTask started\n")));
+ disable_signal (SIGPIPE, SIGPIPE);
+
// signal that we are ready
sem_.release (1);
@@ -268,7 +268,7 @@ Acceptor::Acceptor (void)
total_w_ (0),
total_r_ (0)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, this->mutex_);
for (size_t i = 0; i < MAX_RECEIVERS; ++i)
this->list_receivers_[i] =0;
@@ -286,7 +286,7 @@ Acceptor::stop (void)
// this method can be called only after reactor event loop id done
// in all threads
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, this->mutex_);
for (size_t i = 0; i < MAX_RECEIVERS; ++i)
{
@@ -298,7 +298,7 @@ Acceptor::stop (void)
void
Acceptor::on_new_receiver (Receiver &rcvr)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, this->mutex_);
this->sessions_++;
this->list_receivers_[rcvr.index_] = & rcvr;
ACE_DEBUG ((LM_DEBUG,
@@ -309,7 +309,7 @@ Acceptor::on_new_receiver (Receiver &rcvr)
void
Acceptor::on_delete_receiver (Receiver &rcvr)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, this->mutex_);
this->sessions_--;
@@ -357,7 +357,7 @@ Acceptor::start (const ACE_INET_Addr &addr)
int
Acceptor::make_svc_handler (Receiver *&sh)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, this->mutex_, -1);
if (sessions_ >= MAX_RECEIVERS)
return -1;
@@ -421,7 +421,7 @@ Receiver::check_destroy (void)
int
Receiver::open (void *)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, this->mutex_, -1);
ACE_Reactor *TPReactor = ACE_Reactor::instance ();
@@ -479,7 +479,7 @@ Receiver::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
int
Receiver::handle_input (ACE_HANDLE h)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, this->mutex_, -1);
ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
@@ -562,7 +562,7 @@ Receiver::handle_input (ACE_HANDLE h)
int
Receiver::handle_output (ACE_HANDLE h)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, this->mutex_, -1);
ACE_Time_Value tv = ACE_Time_Value::zero;
ACE_Message_Block *mb = 0;
@@ -627,7 +627,7 @@ Connector::Connector (void)
total_w_ (0),
total_r_ (0)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, this->mutex_);
for (size_t i = 0; i < MAX_SENDERS; ++i)
this->list_senders_[i] = 0;
@@ -646,7 +646,7 @@ Connector::stop ()
// after reactor event loop id done
// in all threads
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, this->mutex_);
for (size_t i = 0; i < MAX_SENDERS; ++i)
{
@@ -658,7 +658,7 @@ Connector::stop ()
void
Connector::on_new_sender (Sender & sndr)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, this->mutex_);
this->sessions_++;
this->list_senders_[sndr.index_] = &sndr;
ACE_DEBUG ((LM_DEBUG,
@@ -669,7 +669,7 @@ Connector::on_new_sender (Sender & sndr)
void
Connector::on_delete_sender (Sender & sndr)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD (ACE_Recursive_Thread_Mutex, locker, this->mutex_);
this->sessions_--;
this->total_snd_ += sndr.get_total_snd();
@@ -733,7 +733,7 @@ Connector::start (const ACE_INET_Addr & addr, int num)
int
Connector::make_svc_handler (Sender * & sh)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (this->mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, this->mutex_, -1);
if (sessions_ >= MAX_SENDERS)
return -1;
@@ -764,7 +764,7 @@ Sender::Sender (Connector* connector, size_t index)
if (connector_ != 0)
connector_->on_new_sender (*this);
- ACE_OS::sprintf (send_buf_ ,data);
+ ACE_OS::sprintf (send_buf_, "%s", data);
}
@@ -799,7 +799,7 @@ Sender::check_destroy (void)
int Sender::open (void *)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, this->mutex_, -1);
ACE_Reactor * TPReactor = ACE_Reactor::instance ();
@@ -892,7 +892,7 @@ Sender::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
int
Sender::handle_input (ACE_HANDLE h)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, this->mutex_, -1);
ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
@@ -959,7 +959,7 @@ Sender::handle_input (ACE_HANDLE h)
int
Sender::handle_output (ACE_HANDLE h)
{
- ACE_Guard<ACE_Recursive_Thread_Mutex> locker (mutex_);
+ ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, locker, this->mutex_, -1);
ACE_Time_Value tv = ACE_Time_Value::zero;
ACE_Message_Block *mb = 0;
@@ -1118,7 +1118,7 @@ parse_args (int argc, ACE_TCHAR *argv[])
static int
disable_signal (int sigmin, int sigmax)
{
-#if defined (ACE_HAS_PTHREADS_STD) && !defined (ACE_LACKS_PTHREAD_SIGMASK)
+#if !defined (ACE_LACKS_UNIX_SIGNALS)
sigset_t signal_set;
if (ACE_OS::sigemptyset (&signal_set) == - 1)
ACE_ERROR ((LM_ERROR,
@@ -1128,17 +1128,24 @@ disable_signal (int sigmin, int sigmax)
for (int i = sigmin; i <= sigmax; i++)
ACE_OS::sigaddset (&signal_set, i);
- // Put the <signal_set>.
- if (ACE_OS::pthread_sigmask (SIG_BLOCK, &signal_set, 0) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT("Error: (%P | %t):%p\n"),
- ACE_TEXT("pthread_sigmask failed")));
+ // Put the <signal_set>.
+# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
+ // In multi-threaded application this is not POSIX compliant
+ // but let's leave it just in case.
+ if (ACE_OS::sigprocmask (SIG_BLOCK, &signal_set, 0) != 0)
+# else
+ if (ACE_OS::thr_sigsetmask (SIG_BLOCK, &signal_set, 0) != 0)
+# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: (%P|%t): %p\n"),
+ ACE_TEXT ("SIG_BLOCK failed")),
+ -1);
#else
ACE_UNUSED_ARG(sigmin);
ACE_UNUSED_ARG(sigmax);
-#endif /* ACE_HAS_PTHREADS_STD && !ACE_LACKS_PTHREAD_SIGMASK */
+#endif /* ACE_LACKS_UNIX_SIGNALS */
- return 1;
+ return 0;
}
#endif /* ACE_HAS_THREADS */
@@ -1152,7 +1159,7 @@ run_main (int argc, ACE_TCHAR *argv[])
if (::parse_args (argc, argv) == -1)
return -1;
- ::disable_signal (SIGPIPE, SIGPIPE);
+ disable_signal (SIGPIPE, SIGPIPE);
MyTask task1;
Acceptor acceptor;
diff --git a/ACE/tests/TP_Reactor_Test.h b/ACE/tests/TP_Reactor_Test.h
index 1955608b034..99eebc087b7 100644
--- a/ACE/tests/TP_Reactor_Test.h
+++ b/ACE/tests/TP_Reactor_Test.h
@@ -1,21 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TP_Reactor_Test.h
-//
-// = DESCRIPTION
-// Define class needed for generating templates. IBM C++ requires this to
-// be in its own file for auto template instantiation.
-//
-// = AUTHOR
-// Alexander Libman <alibman@ihug.com.au>,<alexl@rumblgroup.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file TP_Reactor_Test.h
+ *
+ * $Id$
+ *
+ * Define class needed for generating templates. IBM C++ requires this to
+ * be in its own file for auto template instantiation.
+ *
+ *
+ * @author Alexander Libman <alibman@ihug.com.au>
+ * @author <alexl@rumblgroup.com>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_TP_REACTOR_TEST_H
#define ACE_TESTS_TP_REACTOR_TEST_H
diff --git a/ACE/tests/TSS_Static_Test.cpp b/ACE/tests/TSS_Static_Test.cpp
index 40e0b6d9e57..fb6dd369bf2 100644
--- a/ACE/tests/TSS_Static_Test.cpp
+++ b/ACE/tests/TSS_Static_Test.cpp
@@ -1,27 +1,27 @@
-// $Id$
-
-// ============================================================================
-//
-// = FILENAME
-// TSS_Static_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the interaction between TSS and thread keys
-// created during static construction. VxWorks static construction
-// is quite broken. This test is designed to test changes to work
-// around a bug in the VxWorks loader that constructs static objects
-// multiple times. It sounds hard to believe, but I've seen it!
-//
-// = AUTHOR
-// Chad Elliott <elliott_c@ociweb.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file TSS_Static_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the interaction between TSS and thread keys
+ * created during static construction. VxWorks static construction
+ * is quite broken. This test is designed to test changes to work
+ * around a bug in the VxWorks loader that constructs static objects
+ * multiple times. It sounds hard to believe, but I've seen it!
+ *
+ *
+ * @author Chad Elliott <elliott_c@ociweb.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/ACE.h"
#include "ace/Thread.h"
-ACE_RCSID(tests, TSS_Static_Test, "$Id$")
+
#if defined (ACE_HAS_TSS_EMULATION)
diff --git a/ACE/tests/TSS_Test.cpp b/ACE/tests/TSS_Test.cpp
index 8ee832ba9cd..850720f38a2 100644
--- a/ACE/tests/TSS_Test.cpp
+++ b/ACE/tests/TSS_Test.cpp
@@ -1,24 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TSS_Test.cpp
-//
-// = DESCRIPTION
-// This program tests thread specific storage of data. The ACE_TSS
-// wrapper transparently ensures that the objects of this class
-// will be placed in thread-specific storage. All calls on
-// ACE_TSS::operator->() are delegated to the appropriate method
-// in the Errno class.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file TSS_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests thread specific storage of data. The ACE_TSS
+ * wrapper transparently ensures that the objects of this class
+ * will be placed in thread-specific storage. All calls on
+ * ACE_TSS::operator->() are delegated to the appropriate method
+ * in the Errno class.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Doug Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/OS_NS_unistd.h"
@@ -28,7 +25,7 @@
#include "ace/Signal.h"
#include "TSS_Test_Errno.h"
-ACE_RCSID(tests, TSS_Test, "$Id$")
+
static u_int errors = 0;
@@ -163,12 +160,12 @@ worker (void *c)
{
// Use the guard to serialize access
ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, output_lock, 0));
- ACE_ASSERT ((*tss_error)->flags () == ITERATIONS);
+ ACE_TEST_ASSERT ((*tss_error)->flags () == ITERATIONS);
}
// Demonstrate use of ACE_TSS_Type_Adapter to wrap built-in
// types when used with ACE_TSS. See DESCRIPTION of template
- // class ACE_TSS_Type_Adapter in ace/Synch_T.h for what this
+ // class ACE_TSS_Type_Adapter for what this
// should look like. Unfortunately, some compilers have trouble
// with the implicit type conversions. Others have problems with
// the *explicit* type conversions.
diff --git a/ACE/tests/TSS_Test_Errno.h b/ACE/tests/TSS_Test_Errno.h
index 7d822a7099b..38deffc3fe3 100644
--- a/ACE/tests/TSS_Test_Errno.h
+++ b/ACE/tests/TSS_Test_Errno.h
@@ -1,33 +1,35 @@
/* -*- C++ -*- */
-// $Id$
-// ============================================================================
-//
-// = FILENAME
-// TSS_Test_Errno.h
-//
-// = DESCRIPTION
-// This file contains the definition of Errno. Some compilers need
-// it in a .h file for template instantiation (such as AIX C Set
-// ++).
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+//=============================================================================
+/**
+ * @file TSS_Test_Errno.h
+ *
+ * $Id$
+ *
+ * This file contains the definition of Errno. Some compilers need
+ * it in a .h file for template instantiation (such as AIX C Set
+ * ++).
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "ace/Guard_T.h"
#include "ace/Thread_Mutex.h"
+/**
+ * @class Errno
+ *
+ * @brief Define a simple Errno abstraction
+ *
+ * This class gets its own header file to work around AIX C++
+ * compiler "features" related to template instantiation... It is
+ * only used by TSS_Test.cpp.
+ */
class Errno
{
- // = TITLE
- // Define a simple Errno abstraction
- //
- // = DESCRIPTION
- // This class gets its own header file to work around AIX C++
- // compiler "features" related to template instantiation... It is
- // only used by TSS_Test.cpp.
public:
Errno()
{
diff --git a/ACE/tests/Task_Ex_Test.cpp b/ACE/tests/Task_Ex_Test.cpp
index 232e9b23c4e..2ddfb6634dc 100644
--- a/ACE/tests/Task_Ex_Test.cpp
+++ b/ACE/tests/Task_Ex_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Task_Ex_Test.cpp
-//
-// = DESCRIPTION
-// This test program illustrates the ACE_Task_Ex class which has the ACE_Message_Queue_Ex
-// that has the capability to hold user-defined messages instead of ACE_Message_Block
-//
-//
-// = AUTHOR
-// Kobi Cohen-Arazi <kobi-co@barak-online.net>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Task_Ex_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program illustrates the ACE_Task_Ex class which has the ACE_Message_Queue_Ex
+ * that has the capability to hold user-defined messages instead of ACE_Message_Block
+ *
+ *
+ *
+ * @author Kobi Cohen-Arazi <kobi-co@barak-online.net>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "Task_Ex_Test.h"
@@ -24,7 +21,7 @@
#include "ace/Log_Msg.h"
#include "ace/Auto_Ptr.h"
-ACE_RCSID(tests, Task_Test_Ex, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -46,8 +43,8 @@ class Consumer : public ACE_Task_Ex<ACE_MT_SYNCH, User_Defined_Msg>
public:
//FUZZ: disable check_for_lack_ACE_OS
/// activate/spawn the threads.
+ ///FUZZ: enable check_for_lack_ACE_OS
int open (void*);
- //FUZZ: enable check_for_lack_ACE_OS
/// svc thread entry point
virtual int svc (void);
@@ -73,7 +70,7 @@ int Consumer::svc ()
User_Defined_Msg* pMsg=0;
while(this->getq (pMsg)!=-1)
{
- ACE_ASSERT (pMsg!=0);
+ ACE_TEST_ASSERT (pMsg!=0);
auto_ptr<User_Defined_Msg> pAuto(pMsg);
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("Consumer::svc got msg id=%d\n"),
@@ -93,7 +90,7 @@ int Consumer::svc ()
ACE_THR_FUNC_RETURN producer (void *arg)
{
Consumer* c = static_cast<Consumer*> (arg);
- ACE_ASSERT(c!=0);
+ ACE_TEST_ASSERT(c!=0);
if (c==0)
{
ACE_ERROR((LM_ERROR,
diff --git a/ACE/tests/Task_Test.cpp b/ACE/tests/Task_Test.cpp
index 24bb021e1bd..2c64fe4624e 100644
--- a/ACE/tests/Task_Test.cpp
+++ b/ACE/tests/Task_Test.cpp
@@ -1,30 +1,26 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Task_Test.cpp
-//
-// = DESCRIPTION
-// This test program illustrates how the ACE barrier
-// synchronization mechanisms work in conjunction with the
-// <ACE_Task> and the <ACE_Thread_Manager>. This also illustrates
-// how the <ACE_Thread_Hook> mechanism works.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Task_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program illustrates how the ACE barrier
+ * synchronization mechanisms work in conjunction with the
+ * <ACE_Task> and the <ACE_Thread_Manager>. This also illustrates
+ * how the <ACE_Thread_Hook> mechanism works.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Task.h"
#include "ace/Thread_Hook.h"
-ACE_RCSID(tests, Task_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
#include "ace/Atomic_Op.h"
@@ -49,20 +45,20 @@ public:
int n_iterations);
//FUZZ: disable check_for_lack_ACE_OS
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int close (u_long flags = 0);
- //FUZZ: enable check_for_lack_ACE_OS
+ /// Iterate <n_iterations> time printing off a message and "waiting"
+ /// for all other threads to complete this iteration.
virtual int svc (void);
- // Iterate <n_iterations> time printing off a message and "waiting"
- // for all other threads to complete this iteration.
private:
+ /// Reference to the tester barrier. This controls each iteration of
+ /// the tester function running in every thread.
ACE_Barrier barrier_;
- // Reference to the tester barrier. This controls each iteration of
- // the tester function running in every thread.
+ /// Number of iterations to run.
int n_iterations_;
- // Number of iterations to run.
};
ACE_THR_FUNC_RETURN
diff --git a/ACE/tests/Test_Output.cpp b/ACE/tests/Test_Output.cpp
index 5ee03690dd7..60ce6ae3abe 100644
--- a/ACE/tests/Test_Output.cpp
+++ b/ACE/tests/Test_Output.cpp
@@ -16,7 +16,7 @@
*/
// ============================================================================
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_sys_stat.h"
@@ -132,7 +132,7 @@ ACE_Test_Output::set_output (const ACE_TCHAR *filename, int append)
#else /* ! ACE_VXWORKS */
// This doesn't seem to work on VxWorks if the directory doesn't
// exist: it creates a plain file instead of a directory. If the
- // directory does exist, it causes a wierd console error message
+ // directory does exist, it causes a weird console error message
// about "cat: input error on standard input: Is a directory". So,
// VxWorks users must create the directory manually.
ACE_OS::mkdir (ACE_LOG_DIRECTORY_FOR_MKDIR);
diff --git a/ACE/tests/Thread_Attrs_Test.cpp b/ACE/tests/Thread_Attrs_Test.cpp
new file mode 100644
index 00000000000..270401efdc7
--- /dev/null
+++ b/ACE/tests/Thread_Attrs_Test.cpp
@@ -0,0 +1,296 @@
+
+//=============================================================================
+/**
+ * @file Thread_Attrs_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program ensures that attributes set on a thread via the
+ * ACE_Task/ACE_Thread_Manager are honored.
+ *
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
+#include "ace/Task.h"
+
+
+
+#if defined (ACE_HAS_THREADS)
+
+namespace
+{
+ // Change this to 'true' if you want lots of debugging messages in the log
+ const bool PRINT_DEBUG_MSGS = true;
+}
+
+class Cancel_Check : public ACE_Task<ACE_MT_SYNCH>
+{
+public:
+ // Create a checker with the state, type requested.
+ Cancel_Check (bool enable, bool async);
+
+ //FUZZ: disable check_for_lack_ACE_OS
+ // Spawn the thread
+ virtual int open (void * = 0);
+ //FUZZ: enable check_for_lack_ACE_OS
+
+ // Check the cancel settings against what is expected then exit.
+ virtual int svc (void);
+
+ /// Returns true iff settings match what was requested.
+ bool operator! ();
+
+private:
+ bool enable_req_;
+ bool async_req_;
+ bool failed_;
+};
+
+bool
+Cancel_Check::operator!()
+{
+ return this->failed_;
+}
+
+Cancel_Check::Cancel_Check (bool enable, bool async)
+ : enable_req_ (enable), async_req_(async), failed_ (false)
+{
+}
+
+int
+Cancel_Check::svc (void)
+{
+#if defined (ACE_HAS_PTHREADS)
+ int state;
+ pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &state);
+ if (state == PTHREAD_CANCEL_ENABLE && !this->enable_req_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Cancel found enabled, should not be\n")));
+ this->failed_ = true;
+ }
+ else if (state == PTHREAD_CANCEL_DISABLE && this->enable_req_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Cancel found disabled, should not be\n")));
+ this->failed_ = true;
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Cancel found %s; ok\n"),
+ state == PTHREAD_CANCEL_ENABLE ? ACE_TEXT ("enabled") :
+ ACE_TEXT ("disabled")));
+ }
+
+ int type;
+ pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &type);
+ if (type == PTHREAD_CANCEL_ASYNCHRONOUS && !this->async_req_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Cancel type async, should not be\n")));
+ this->failed_ = true;
+ }
+ else if (type == PTHREAD_CANCEL_DEFERRED && this->async_req_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Cancel type deferred, should not be\n")));
+ this->failed_ = true;
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Cancel type %s; ok\n"),
+ type == PTHREAD_CANCEL_DEFERRED ? ACE_TEXT ("deferred") :
+ ACE_TEXT ("asynchronous")));
+ }
+
+#endif
+ return 0;
+}
+
+int
+Cancel_Check::open (void *)
+{
+ long flags = THR_NEW_LWP | THR_JOINABLE;
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Flags before cancels: 0x%x\n"), flags));
+ flags |= (this->enable_req_ ? THR_CANCEL_ENABLE : THR_CANCEL_DISABLE);
+ flags |= (this->async_req_ ? THR_CANCEL_ASYNCHRONOUS : THR_CANCEL_DEFERRED);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Flags after cancels: 0x%x\n"), flags));
+ if (this->activate (flags) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("Cancel_Check activate failed")),
+ -1);
+ return 0;
+}
+
+
+/**
+ * @class Stack_Size_Check
+ *
+ * @brief Defines a task that verifies its stack size.
+ */
+class Stack_Size_Check : public ACE_Task<ACE_MT_SYNCH>
+{
+
+public:
+ /// Create the thread with specified stack size
+ Stack_Size_Check (size_t stack_size);
+
+ //FUZZ: disable check_for_lack_ACE_OS
+ /// Spawn the thread
+ virtual int open (void * = 0);
+ //FUZZ: enable check_for_lack_ACE_OS
+
+ /// Check the stack size against what is expected then exit.
+ virtual int svc (void);
+
+ /// Returns true iff failed_ == false.
+ bool operator! ();
+
+private:
+ size_t stack_size_;
+
+ /// Flag indicating the test failed.
+ bool failed_;
+};
+
+bool
+Stack_Size_Check::operator!()
+{
+ return this->failed_;
+}
+
+Stack_Size_Check::Stack_Size_Check (size_t stack_size)
+ : stack_size_ (stack_size), failed_ (false)
+{
+}
+
+int
+Stack_Size_Check::svc (void)
+{
+ size_t my_size = 0;
+
+#ifdef __USE_GNU
+ pthread_attr_t my_attrs;
+ pthread_getattr_np (pthread_self (), &my_attrs);
+ pthread_attr_getstacksize (&my_attrs, &my_size);
+ pthread_attr_destroy (&my_attrs);
+#else
+ // No known way to do this yet... feel free to fill this in.
+ my_size = this->stack_size_;
+#endif /* __USE_GNU */
+
+ // The Posix docs say that the size set for the threads stack will be the
+ // *minimum* size allocated (the actual size may be bigger because of
+ // a) pagesize rounding, b) guardsize addition) so we can really only
+ // check if we have gotten *at least* what we asked for.
+ if (my_size < this->stack_size_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%t: My stack size attr %B; expected %B\n"),
+ my_size, this->stack_size_));
+ this->failed_ = true;
+ }
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%t: My stack size attr %B; correct.\n"),
+ my_size));
+ return 0;
+}
+
+int
+Stack_Size_Check::open (void *)
+{
+ if (this->activate (THR_NEW_LWP | THR_JOINABLE,
+ 1,
+ 0,
+ ACE_DEFAULT_THREAD_PRIORITY,
+ -1,
+ 0,
+ 0,
+ 0,
+ &stack_size_) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("Stack_Size_Check activate failed")),
+ -1);
+
+ return 0;
+}
+
+#endif /* ACE_HAS_THREADS */
+
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Thread_Attrs_Test"));
+
+ int status = 0;
+#if defined (ACE_HAS_THREADS)
+ Stack_Size_Check size_checker (40*1024);
+ status = size_checker.open(0);
+ if (status == 0)
+ {
+ if (size_checker.wait () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("size_checker %p\n"),
+ ACE_TEXT ("wait")),
+ 1);
+ if (!size_checker)
+ status = 1;
+ }
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Cancel flags sanity check:\n")
+ ACE_TEXT (" THR_CANCEL_ENABLE: 0x%x\n")
+ ACE_TEXT (" THR_CANCEL_DISABLE: 0x%x\n")
+ ACE_TEXT (" THR_CANCEL_DEFERRED: 0x%x\n")
+ ACE_TEXT (" THR_CANCEL_ASYNCHRONOUS: 0x%x\n"),
+ THR_CANCEL_ENABLE,
+ THR_CANCEL_DISABLE,
+ THR_CANCEL_DEFERRED,
+ THR_CANCEL_ASYNCHRONOUS));
+ // Cancel check args: enable (yes/no), async/deferred
+ Cancel_Check check1 (true, true);
+ Cancel_Check check2 (true, false);
+ Cancel_Check check3 (false, true);
+ Cancel_Check check4 (false, false);
+ if (check1.open(0) == 0)
+ {
+ check1.wait ();
+ if (!check1)
+ status = 1;
+
+ check2.open (0);
+ check2.wait ();
+ if (!check2)
+ status = 1;
+
+ check3.open (0);
+ check3.wait ();
+ if (!check3)
+ status = 1;
+
+ check4.open (0);
+ check4.wait ();
+ if (!check4)
+ status = 1;
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("Cancel_Check open")));
+ status = 1;
+ }
+#else
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("threads not supported on this platform\n")));
+#endif /* ACE_HAS_THREADS */
+ ACE_END_TEST;
+ return status;
+}
diff --git a/ACE/tests/Thread_Creation_Threshold_Test.cpp b/ACE/tests/Thread_Creation_Threshold_Test.cpp
index d18183c7ac4..c7b2ddd0dc7 100644
--- a/ACE/tests/Thread_Creation_Threshold_Test.cpp
+++ b/ACE/tests/Thread_Creation_Threshold_Test.cpp
@@ -1,32 +1,29 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Thread_Creation_Threshold_Test.cpp
-//
-// = DESCRIPTION
-// This test program stresses how many threads can be
-// consecutively (not simultaneously) created on a platform.
-// Rather than testing exhaustively, it establishes a
-// semi-arbitrary upper limit (MAX_THREAD)of threads. The limit
-// is only partly arbitrary because it was chosen as a value that
-// exceeded an observed upper limit on the values that Solaris 9
-// will accept as arguments to thr_concurrency(), used by
-// ACE_OS::thr_create(THR_NEW_LWP).
-//
-// = AUTHOR
-// Chris Cleeland <cleeland@ociweb.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Creation_Threshold_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program stresses how many threads can be
+ * consecutively (not simultaneously) created on a platform.
+ * Rather than testing exhaustively, it establishes a
+ * semi-arbitrary upper limit (MAX_THREAD)of threads. The limit
+ * is only partly arbitrary because it was chosen as a value that
+ * exceeded an observed upper limit on the values that Solaris 9
+ * will accept as arguments to thr_concurrency(), used by
+ * ACE_OS::thr_create(THR_NEW_LWP).
+ *
+ *
+ * @author Chris Cleeland <cleeland@ociweb.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Task.h"
-ACE_RCSID(tests, Thread_Pool_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
#include "ace/Lock_Adapter_T.h"
@@ -49,53 +46,56 @@ namespace
const bool PRINT_DEBUG_MSGS = true;
}
+/**
+ * @class Thread_Pool
+ *
+ * @brief Defines a thread pool abstraction based on the <ACE_Task>.
+ */
class Thread_Pool : public ACE_Task<ACE_MT_SYNCH>
{
- // = TITLE
- // Defines a thread pool abstraction based on the <ACE_Task>.
public:
+ /// Create the thread pool containing <n_threads>.
Thread_Pool (int n_threads);
- // Create the thread pool containing <n_threads>.
+ /// Destructor...
~Thread_Pool (void);
- // Destructor...
+ /// Iterate <n_iterations> time printing off a message and "waiting"
+ /// for all other threads to complete this iteration.
virtual int svc (void);
- // Iterate <n_iterations> time printing off a message and "waiting"
- // for all other threads to complete this iteration.
+ /// Start the threads in the pool.
void start();
- // Start the threads in the pool.
unsigned long total_threads()
{
return this->total_activated_threads_.value();
}
+ /// Number of threads to spawn.
int n_threads_;
- // Number of threads to spawn.
+ /// Returns true iff failed_ == false.
bool operator! ();
- // Returns true iff failed_ == false.
private:
//FUZZ: disable check_for_lack_ACE_OS
+ /// Spawn the threads in the pool.
virtual int open (void * = 0);
- // Spawn the threads in the pool.
+ /// Close hook.
+ ///FUZZ: enable check_for_lack_ACE_OS
virtual int close (u_long);
- // Close hook.
- //FUZZ: enable check_for_lack_ACE_OS
+ /// Total number of threads activated through this thread pool ever.
ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> total_activated_threads_;
- // Total number of threads activated through this thread pool ever.
+ /// Flag set only in worker threads to indicate whether they should print
+ /// debug messages.
bool doprint_;
- // Flag set only in worker threads to indicate whether they should print
- // debug messages.
+ /// Flag indicating that start() failed.
bool failed_;
- // Flag indicating that start() failed.
};
bool
diff --git a/ACE/tests/Thread_Manager_Test.cpp b/ACE/tests/Thread_Manager_Test.cpp
index b3dc548455b..038add75f0a 100644
--- a/ACE/tests/Thread_Manager_Test.cpp
+++ b/ACE/tests/Thread_Manager_Test.cpp
@@ -1,24 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Thread_Manager_Test.cpp
-//
-// = DESCRIPTION
-// This program tests the group management mechanisms provided by
-// the <ACE_Thread_Manager>, including the group signal handling,
-// group suspension and resumption, and cooperative thread
-// cancellation mechanisms.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt
-// <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Manager_Test.cpp
+ *
+ * $Id$
+ *
+ * This program tests the group management mechanisms provided by
+ * the <ACE_Thread_Manager>, including the group signal handling,
+ * group suspension and resumption, and cooperative thread
+ * cancellation mechanisms.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Thread_Manager.h"
@@ -27,7 +23,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_sys_time.h"
-ACE_RCSID(tests, Thread_Manager_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
#include "ace/Barrier.h"
@@ -331,7 +327,7 @@ run_main (int, ACE_TCHAR *[])
#endif /* ACE_HAS_VXTHREADS */
);
- ACE_ASSERT (grp_id != -1);
+ ACE_TEST_ASSERT (grp_id != -1);
thread_start->wait ();
// Wait for 1 second and then suspend every thread in the group.
@@ -402,17 +398,12 @@ run_main (int, ACE_TCHAR *[])
thr_mgr->kill_grp (grp_id,
SIGINT);
#elif !defined (ACE_HAS_PTHREADS_DRAFT4) && !defined(ACE_LACKS_PTHREAD_KILL)
-#if defined (CHORUS)
- ACE_ASSERT (thr_mgr->kill_grp (grp_id,
- SIGTHREADKILL) != -1);
-#else
- ACE_ASSERT (thr_mgr->kill_grp (grp_id,
+ ACE_TEST_ASSERT (thr_mgr->kill_grp (grp_id,
SIGINT) != -1);
-#endif /* CHORUS */
#else
if (thr_mgr->kill_grp (grp_id,
SIGINT) == -1)
- ACE_ASSERT (errno == ENOTSUP);
+ ACE_TEST_ASSERT (errno == ENOTSUP);
#endif /* ACE_HAS_WTHREADS */
// Wait and then cancel all the threads.
@@ -421,7 +412,7 @@ run_main (int, ACE_TCHAR *[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%t) cancelling group\n")));
- ACE_ASSERT (thr_mgr->cancel_grp (grp_id) != -1);
+ ACE_TEST_ASSERT (thr_mgr->cancel_grp (grp_id) != -1);
// Perform a barrier wait until all the threads have shut down.
// But, wait for a limited time, just in case.
diff --git a/ACE/tests/Thread_Mutex_Test.cpp b/ACE/tests/Thread_Mutex_Test.cpp
index 048aa855a6a..e6b80dc79ab 100644
--- a/ACE/tests/Thread_Mutex_Test.cpp
+++ b/ACE/tests/Thread_Mutex_Test.cpp
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Thread_Mutex_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the functionality of the
-// ACE_Thread_Mutex. The test acquires and releases mutexes. No
-// command line arguments are needed to run the test.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Mutex_Test.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the functionality of the
+ * ACE_Thread_Mutex. The test acquires and releases mutexes. No
+ * command line arguments are needed to run the test.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Thread_Manager.h"
@@ -24,7 +21,7 @@
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Thread_Mutex_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -101,7 +98,7 @@ test (void *args)
else
{
result = mutex->release ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
}
// Now try the standard mutex.
@@ -110,7 +107,7 @@ test (void *args)
ACE_TEXT ("(%P|%t) = trying to acquire on iteration %d\n"),
i));
result = mutex->acquire ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) = acquired on iteration %d\n"),
i));
@@ -121,18 +118,19 @@ test (void *args)
ACE_OS::sleep (ACE_OS::rand () % 2);
result = mutex->release ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) = released on iteration %d\n"),
i));
+ // FUZZ: disable check_for_ACE_Guard
// Basic ACE_Guard usage - automatically acquire the mutex on
// guard construction and automatically release it on
// destruction.
{
// Construct an ACE_Guard to implicitly acquire the mutex.
ACE_Guard<ACE_TEST_MUTEX> guard (*mutex);
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
// Perform some operation which might exit the current scope
// prematurely, e.g. by returning or throwing an exception.
@@ -147,7 +145,7 @@ test (void *args)
{
// Construct an ACE_Guard to implicitly acquire the mutex.
ACE_Guard<ACE_TEST_MUTEX> guard (*mutex);
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
// Perform some operation which might exit the current scope
// prematurely, e.g. by returning or throwing an exception.
@@ -155,7 +153,7 @@ test (void *args)
// Release the mutex since we no longer need it.
guard.release ();
- ACE_ASSERT (guard.locked () == 0);
+ ACE_TEST_ASSERT (guard.locked () == 0);
// Do something else which does not require the mutex to be locked.
// ...
@@ -172,7 +170,7 @@ test (void *args)
{
// Construct an ACE_Guard to implicitly acquire the mutex.
ACE_Guard<ACE_TEST_MUTEX> guard (*mutex);
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
// Perform some operation which might exit the current scope
// prematurely, e.g. by returning or throwing an exception.
@@ -181,13 +179,13 @@ test (void *args)
// Relinquish ownership of the mutex lock. Someone else must
// now release it.
guard.disown ();
- ACE_ASSERT (guard.locked () == 0);
+ ACE_TEST_ASSERT (guard.locked () == 0);
// ACE_Guard object's destructor will not release the mutex.
}
// We are now responsible for releasing the mutex.
result = mutex->release ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
// Construct an ACE_Guard without automatically acquiring the lock.
{
@@ -196,13 +194,13 @@ test (void *args)
// lock. The third parameter tells the guard that the mutex
// has not been locked.
ACE_Guard<ACE_TEST_MUTEX> guard (*mutex, 0, 0);
- ACE_ASSERT (guard.locked () == 0);
+ ACE_TEST_ASSERT (guard.locked () == 0);
// Conditionally acquire the mutex.
if (i % 2 == 0)
{
guard.acquire ();
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
}
// Perform some operation that might exit the current scope
@@ -224,7 +222,7 @@ test (void *args)
// existing lock. The third parameter tells the guard that
// the mutex has already been locked.
ACE_Guard<ACE_TEST_MUTEX> guard (*mutex, 0, 1);
- ACE_ASSERT (guard.locked () != 0);
+ ACE_TEST_ASSERT (guard.locked () != 0);
// Perform some operation which might exit the current scope
// prematurely, e.g. by returning or throwing an exception.
@@ -233,6 +231,7 @@ test (void *args)
// ACE_Guard object is destroyed when exiting scope and guard
// destructor automatically releases mutex.
}
+ // FUZZ: enable check_for_ACE_Guard
}
return 0;
diff --git a/ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp b/ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp
index a2cbb5569d7..b82be95041a 100644
--- a/ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp
+++ b/ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp
@@ -1,40 +1,37 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Thread_Pool_Reactor_Resume_Test.cpp
-//
-// = DESCRIPTION
-// This program is an additional torture test of thread pool
-// reactors. This test is based on Thread_Pool_Reactor_Test.cpp
-// in $ACE_ROOT/tests. This test differs from the other one
-// slightly. The TP reactor is instantiated with the
-// with a value of 1 for the <resume_flag> argument. The server
-// threads during the handle_input call resumes the handle that
-// would have been suspended by the reactor.
-//
-// Usage: Thread_Pool_Reactor_Test [-r <hostname:port#>]
-// [-s <server thr#>] [-c <client thr#>] [-d <delay>]
-// [-i <client conn attempt#>] [-n <client request# per conn>]
-//
-// Default value:
-// <hostname:port#>: ACE_DEFAULT_RENDEZVOUS
-// <server thr#>: ACE_MAX_THREADS
-// <client thr#>: ACE_MAX_ITERATIONS
-// <client conn attempt#>: ACE_MAX_ITERATIONS
-// <client req# per conn>: ACE_MAX_THREADS
-// <delay>: 50 usec
-//
-// = AUTHOR
-// Balachandran Natarajan <bala@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file Thread_Pool_Reactor_Resume_Test.cpp
+ *
+ * $Id$
+ *
+ * This program is an additional torture test of thread pool
+ * reactors. This test is based on Thread_Pool_Reactor_Test.cpp
+ * in $ACE_ROOT/tests. This test differs from the other one
+ * slightly. The TP reactor is instantiated with the
+ * with a value of 1 for the <resume_flag> argument. The server
+ * threads during the handle_input call resumes the handle that
+ * would have been suspended by the reactor.
+ *
+ * Usage: Thread_Pool_Reactor_Test [-r <hostname:port#>]
+ * [-s <server thr#>] [-c <client thr#>] [-d <delay>]
+ * [-i <client conn attempt#>] [-n <client request# per conn>]
+ *
+ * Default value:
+ * <hostname:port#>: ACE_DEFAULT_RENDEZVOUS
+ * <server thr#>: ACE_MAX_THREADS
+ * <client thr#>: ACE_MAX_ITERATIONS
+ * <client conn attempt#>: ACE_MAX_ITERATIONS
+ * <client req# per conn>: ACE_MAX_THREADS
+ * <delay>: 50 usec
+ *
+ *
+ * @author Balachandran Natarajan <bala@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
#include "ace/Get_Opt.h"
@@ -44,11 +41,11 @@
#include "ace/Thread_Manager.h"
#include "ace/TP_Reactor.h"
-ACE_RCSID(tests, Atomic_Op_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
-#include "tests/Thread_Pool_Reactor_Resume_Test.h"
+#include "Thread_Pool_Reactor_Resume_Test.h"
typedef ACE_Strategy_Acceptor <Request_Handler, ACE_SOCK_ACCEPTOR> ACCEPTOR;
// Accepting end point. This is actually "localhost:10010", but some
@@ -63,7 +60,7 @@ static size_t svr_thrno = ACE_MAX_THREADS;
// Default network parameters (MAX_BINDS and system buffers) are too small
// for full test on some platforms; add platforms that can't handle too many
// connection simultaneously here.
-#if defined (CHORUS) || defined (ACE_VXWORKS) || defined (ACE_HAS_PHARLAP)
+#if defined (ACE_VXWORKS) || defined (ACE_HAS_PHARLAP)
#define ACE_LOAD_FACTOR /2
#else
#define ACE_LOAD_FACTOR
@@ -196,8 +193,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));
@@ -310,7 +307,7 @@ worker (void *)
int grp = ACE_Thread_Manager::instance ()->spawn_n (cli_thrno,
&cli_worker,
buf);
- ACE_ASSERT (grp != -1);
+ ACE_TEST_ASSERT (grp != -1);
ACE_Thread_Manager::instance ()->wait_grp (grp);
diff --git a/ACE/tests/Thread_Pool_Reactor_Resume_Test.h b/ACE/tests/Thread_Pool_Reactor_Resume_Test.h
index f3f18a5c712..4d7696603c4 100644
--- a/ACE/tests/Thread_Pool_Reactor_Resume_Test.h
+++ b/ACE/tests/Thread_Pool_Reactor_Resume_Test.h
@@ -1,23 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Thread_Pool_Reactor_Test.h
-//
-// = DESCRIPTION
-// This class gets its own header file to work around AIX C++
-// compiler "features" related to template instantiation... It is
-// only used by Thread_Pool_Reactor_Test.cpp.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Pool_Reactor_Resume_Test.h
+ *
+ * $Id$
+ *
+ * This class gets its own header file to work around AIX C++
+ * compiler "features" related to template instantiation... It is
+ * only used by Thread_Pool_Reactor_Test.cpp.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_THREAD_POOL_REACTOR_RESUME_TEST_H
#define ACE_TESTS_THREAD_POOL_REACTOR_RESUME_TEST_H
@@ -30,10 +26,13 @@
#include "ace/Svc_Handler.h"
+/**
+ * @class Request_Handler
+ *
+ * @brief This class is the Svc_Handler used by <Acceptor>.
+ */
class Request_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>
{
- // = TITLE
- // This class is the Svc_Handler used by <Acceptor>.
public:
/// The default constructor makes sure the right reactor is used.
diff --git a/ACE/tests/Thread_Pool_Reactor_Test.cpp b/ACE/tests/Thread_Pool_Reactor_Test.cpp
index 61febd32f80..acc2781c317 100644
--- a/ACE/tests/Thread_Pool_Reactor_Test.cpp
+++ b/ACE/tests/Thread_Pool_Reactor_Test.cpp
@@ -1,44 +1,40 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Thread_Pool_Reactor_Test.cpp
-//
-// = DESCRIPTION
-// This program is a torture test of thread pool reactors. It
-// starts by spawning several server threads waiting to handle
-// events. Several other client threads are spawned right after
-// to initiate connections to server threads. Each connection
-// adds a new Svc_Handler into the TP_Reactor and sends out
-// several "requests" to the server thread. After the connection
-// is closed, the Svc_Handler is removed from the TP_Reactor.
-// Each message is treated as a separate request by the server so
-// two consecutive requests might be serviced by two different
-// threads.
-//
-// Usage: Thread_Pool_Reactor_Test [-r <hostname:port#>]
-// [-s <server thr#>] [-c <client thr#>] [-d <delay>]
-// [-i <client conn attempt#>] [-n <client request# per conn>]
-//
-// Default value:
-// <hostname:port#>: ACE_DEFAULT_RENDEZVOUS
-// <server thr#>: ACE_MAX_THREADS
-// <client thr#>: ACE_MAX_ITERATIONS
-// <client conn attempt#>: ACE_MAX_ITERATIONS
-// <client req# per conn>: ACE_MAX_THREADS
-// <delay>: 50 usec
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu> and
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file Thread_Pool_Reactor_Test.cpp
+ *
+ * $Id$
+ *
+ * This program is a torture test of thread pool reactors. It
+ * starts by spawning several server threads waiting to handle
+ * events. Several other client threads are spawned right after
+ * to initiate connections to server threads. Each connection
+ * adds a new Svc_Handler into the TP_Reactor and sends out
+ * several "requests" to the server thread. After the connection
+ * is closed, the Svc_Handler is removed from the TP_Reactor.
+ * Each message is treated as a separate request by the server so
+ * two consecutive requests might be serviced by two different
+ * threads.
+ *
+ * Usage: Thread_Pool_Reactor_Test [-r <hostname:port#>]
+ * [-s <server thr#>] [-c <client thr#>] [-d <delay>]
+ * [-i <client conn attempt#>] [-n <client request# per conn>]
+ *
+ * Default value:
+ * <hostname:port#>: ACE_DEFAULT_RENDEZVOUS
+ * <server thr#>: ACE_MAX_THREADS
+ * <client thr#>: ACE_MAX_ITERATIONS
+ * <client conn attempt#>: ACE_MAX_ITERATIONS
+ * <client req# per conn>: ACE_MAX_THREADS
+ * <delay>: 50 usec
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> and Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
#include "ace/Get_Opt.h"
@@ -48,11 +44,11 @@
#include "ace/Thread_Manager.h"
#include "ace/TP_Reactor.h"
-ACE_RCSID(tests, Atomic_Op_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
-#include "tests/Thread_Pool_Reactor_Test.h"
+#include "Thread_Pool_Reactor_Test.h"
typedef ACE_Strategy_Acceptor <Request_Handler, ACE_SOCK_ACCEPTOR> ACCEPTOR;
// Accepting end point. This is actually "localhost:10010", but some
@@ -268,7 +264,7 @@ worker (void *)
int grp = ACE_Thread_Manager::instance ()->spawn_n (cli_thrno,
&cli_worker,
buf);
- ACE_ASSERT (grp != -1);
+ ACE_TEST_ASSERT (grp != -1);
ACE_Thread_Manager::instance ()->wait_grp (grp);
diff --git a/ACE/tests/Thread_Pool_Reactor_Test.h b/ACE/tests/Thread_Pool_Reactor_Test.h
index 0dfeab64528..f9bbe258c5f 100644
--- a/ACE/tests/Thread_Pool_Reactor_Test.h
+++ b/ACE/tests/Thread_Pool_Reactor_Test.h
@@ -1,23 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Thread_Pool_Reactor_Test.h
-//
-// = DESCRIPTION
-// This class gets its own header file to work around AIX C++
-// compiler "features" related to template instantiation... It is
-// only used by Thread_Pool_Reactor_Test.cpp.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Pool_Reactor_Test.h
+ *
+ * $Id$
+ *
+ * This class gets its own header file to work around AIX C++
+ * compiler "features" related to template instantiation... It is
+ * only used by Thread_Pool_Reactor_Test.cpp.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu> Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_THREAD_POOL_REACTOR_TEST_H
#define ACE_TESTS_THREAD_POOL_REACTOR_TEST_H
@@ -30,13 +26,16 @@
#include "ace/Svc_Handler.h"
+/**
+ * @class Request_Handler
+ *
+ * @brief This class is the Svc_Handler used by <Acceptor>.
+ */
class Request_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>
{
- // = TITLE
- // This class is the Svc_Handler used by <Acceptor>.
public:
+ /// The default constructor makes sure the right reactor is used.
Request_Handler (ACE_Thread_Manager *tm = 0);
- // The default constructor makes sure the right reactor is used.
protected:
virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE);
diff --git a/ACE/tests/Thread_Pool_Test.cpp b/ACE/tests/Thread_Pool_Test.cpp
index 6c124e494cd..becb44b8938 100644
--- a/ACE/tests/Thread_Pool_Test.cpp
+++ b/ACE/tests/Thread_Pool_Test.cpp
@@ -1,34 +1,29 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Thread_Pool_Test.cpp
-//
-// = DESCRIPTION
-// This test program illustrates how the <ACE_Task>
-// synchronization mechanisms work in conjunction with the
-// <ACE_Thread_Manager>. If the <manual> flag is set input comes
-// from stdin until the user enters a return -- otherwise, the
-// input is generated automatically. All worker threads shutdown
-// when (1) they receive a message block of length 0 or (2) the
-// queue is deactivated.
-//
-// = AUTHOR
-// Karlheinz Dorn <Karlheinz.Dorn@med.siemens.de>,
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>, and
-// Prashant Jain <pjain@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Thread_Pool_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program illustrates how the <ACE_Task>
+ * synchronization mechanisms work in conjunction with the
+ * <ACE_Thread_Manager>. If the <manual> flag is set input comes
+ * from stdin until the user enters a return -- otherwise, the
+ * input is generated automatically. All worker threads shutdown
+ * when (1) they receive a message block of length 0 or (2) the
+ * queue is deactivated.
+ *
+ *
+ * @author Karlheinz Dorn <Karlheinz.Dorn@med.siemens.de>
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author and Prashant Jain <pjain@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Task.h"
-ACE_RCSID(tests, Thread_Pool_Test, "$Id$")
-
#if defined (ACE_HAS_THREADS)
#include "ace/Lock_Adapter_T.h"
#include "ace/OS_NS_stdio.h"
@@ -41,51 +36,58 @@ static size_t n_iterations = 100;
// Controls whether the input is generated "manually" or automatically.
static int manual = 0;
+/**
+ * @class Thread_Pool
+ *
+ * @brief Defines a thread pool abstraction based on the <ACE_Task>.
+ */
class Thread_Pool : public ACE_Task<ACE_MT_SYNCH>
{
- // = TITLE
- // Defines a thread pool abstraction based on the <ACE_Task>.
public:
+ /// Create the thread pool containing <n_threads>.
Thread_Pool (int n_threads);
- // Create the thread pool containing <n_threads>.
+ /// Destructor...
~Thread_Pool (void);
- // Destructor...
+ /**
+ * Activate the task's thread pool, produce the messages that are
+ * consumed by the threads in the thread pool, and demonstate how to
+ * shutdown using the <ACE_Message_Queue::deactivate> method.
+ */
int test_queue_deactivation_shutdown (void);
- // Activate the task's thread pool, produce the messages that are
- // consumed by the threads in the thread pool, and demonstate how to
- // shutdown using the <ACE_Message_Queue::deactivate> method.
+ /**
+ * Activate the task's thread pool, produce the messages that are,
+ * produce the messages that are consumed by the threads in the
+ * thread pool, and demonstrate how to shutdown by enqueueing
+ * "empty" messages into the queue.
+ */
int test_empty_message_shutdown (void);
- // Activate the task's thread pool, produce the messages that are,
- // produce the messages that are consumed by the threads in the
- // thread pool, and demonstrate how to shutdown by enqueueing
- // "empty" messages into the queue.
+ /// Iterate <n_iterations> time printing off a message and "waiting"
+ /// for all other threads to complete this iteration.
virtual int svc (void);
- // Iterate <n_iterations> time printing off a message and "waiting"
- // for all other threads to complete this iteration.
+ /// Allows the producer to pass messages to the <Thread_Pool>.
virtual int put (ACE_Message_Block *mb,
ACE_Time_Value *tv = 0);
- // Allows the producer to pass messages to the <Thread_Pool>.
private:
//FUZZ: disable check_for_lack_ACE_OS
+ /// Spawn the threads in the pool.
virtual int open (void * = 0);
- // Spawn the threads in the pool.
+ //FUZZ: enable check_for_lack_ACE_OS
+ /// Close hook.
virtual int close (u_long);
- // Close hook.
- //FUZZ: enable check_for_lack_ACE_OS
+ /// Serialize access to <ACE_Message_Block> reference count, which
+ /// will be decremented by multiple threads.
ACE_Lock_Adapter<ACE_Thread_Mutex> lock_adapter_;
- // Serialize access to <ACE_Message_Block> reference count, which
- // will be decremented by multiple threads.
+ /// Number of threads to spawn.
int n_threads_;
- // Number of threads to spawn.
};
Thread_Pool::~Thread_Pool (void)
@@ -129,7 +131,7 @@ Thread_Pool::svc (void)
int result = this->getq (mb);
- ACE_ASSERT (result != -1 || errno == ESHUTDOWN);
+ ACE_TEST_ASSERT (result != -1 || errno == ESHUTDOWN);
if (result == -1 && errno == ESHUTDOWN)
{
diff --git a/ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp b/ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp
new file mode 100644
index 00000000000..a364b027ba5
--- /dev/null
+++ b/ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp
@@ -0,0 +1,307 @@
+// $Id$
+
+/**
+ * @file Thread_Timer_Queue_Adapter_Test.cpp
+ *
+ * @author Alon Diamant <diamant.alon@gmail.com>
+ *
+ * This test verifies the functionality of the ACE_Timer_Queue_Thread_Adapter.
+ * It also shows the usage of custom event handlers.
+ *
+ */
+//=============================================================================
+
+#include "ace/Timer_Wheel.h"
+#include "ace/Timer_Queue_Adapters.h"
+#include "test_config.h"
+
+#if defined (ACE_HAS_THREADS)
+
+/// ICustomEventHandler
+///
+/// Used to demonstrate the usage of custom event handlers. This is called by the
+/// timer queue thread adapter.
+class ICustomEventHandler
+{
+ public:
+
+ /// Default constructor.
+ ///
+ /// @return
+ ICustomEventHandler()
+ {
+ }
+
+ /// Default destructor.
+ ///
+ /// @return
+ virtual ~ICustomEventHandler()
+ {
+ }
+
+ /// Main functor method.
+ ///
+ /// @return int
+ /// @param p_vParameter
+ virtual int operator() (void* p_vParameter) = 0;
+};
+
+/// CCustomEventHandlerUpcall
+///
+/// Implements the Upcall interface used by the ACE_Timer_Queue, specifically for the
+/// ICustomEventHandler interface.
+class CCustomEventHandlerUpcall
+{
+ public:
+
+ typedef ACE_Timer_Queue_T<ICustomEventHandler*,
+ CCustomEventHandlerUpcall,
+ ACE_Null_Mutex> TTimerQueue;
+
+ /// Default constructor
+ CCustomEventHandlerUpcall()
+ {
+ }
+
+ /// Destructor.
+ ~CCustomEventHandlerUpcall()
+ {
+ }
+
+ /// This method is called when the timer expires.
+ int timeout (TTimerQueue&,
+ ICustomEventHandler* p_Handler,
+ const void* p_vParameter,
+ int /*recurring_timer*/,
+ const ACE_Time_Value& /*cur_time*/)
+ {
+ ACE_TRACE("timeout");
+
+ return (*p_Handler)(const_cast<void*> (p_vParameter));
+ }
+
+ /// This method is called when a timer is registered.
+ int registration(TTimerQueue&, ICustomEventHandler*, const void*) { return 0; }
+
+ /// This method is called before the timer expires.
+ int preinvoke(TTimerQueue&, ICustomEventHandler*, const void*,
+ int, const ACE_Time_Value&, const void*&) { return 0; }
+
+ /// This method is called after the timer expires.
+ int postinvoke(TTimerQueue&, ICustomEventHandler*, const void*,
+ int, const ACE_Time_Value&, const void*) { return 0; }
+
+ /// This method is called when a handler is canceled
+ int cancel_type(TTimerQueue&, ICustomEventHandler*, int, int&) { return 0; }
+
+ /// This method is called when a timer is canceled
+ int cancel_timer(TTimerQueue&, ICustomEventHandler* p_Handler, int, int)
+ {
+ ACE_TRACE("cancel_timer");
+ delete p_Handler;
+ return 0;
+ }
+
+ /// This method is called when the timer queue is destroyed and
+ /// the timer is still contained in it
+ int deletion(TTimerQueue&, ICustomEventHandler* p_Handler, const void*)
+ {
+ ACE_TRACE("deletion");
+ delete p_Handler;
+ return 0;
+ }
+};
+
+/// ICustomEventHandler
+///
+/// Used to demonstrate the usage of custom event handlers. This is called by the
+/// timer queue thread adapter.
+class CTestEventHandler : public ICustomEventHandler
+{
+ public:
+
+ /// Default constructor.
+ ///
+ /// @return
+ CTestEventHandler(long* p_iCallCount)
+ : m_p_iCallCount(p_iCallCount)
+ {
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("%I(%t) Initializing test event handler.\n")));
+ }
+
+ /// Default destructor.
+ ///
+ /// @return
+ virtual ~CTestEventHandler()
+ {
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("%I(%t) Destroying test event handler.\n")));
+ }
+
+ /// Main functor method.
+ ///
+ /// @return int
+ /// @param p_vParameter
+ virtual int operator() (void* p_vParameter)
+ {
+ long iParameter = (long) p_vParameter;
+
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT("%I(%t) Incrementing test event handler call count by %d.\n"),
+ iParameter));
+
+ m_Mutex.acquire();
+ *m_p_iCallCount += iParameter;
+ m_Mutex.release();
+
+ // Success
+ return 0;
+ }
+
+ private:
+
+ long* m_p_iCallCount;
+ ACE_Thread_Mutex m_Mutex;
+};
+
+// Used for the actual timer queue thread adapter
+typedef ACE_Timer_Wheel_T <ICustomEventHandler*,
+ CCustomEventHandlerUpcall,
+ ACE_Null_Mutex> TTimerWheel;
+typedef ACE_Timer_Wheel_Iterator_T <ICustomEventHandler*,
+ CCustomEventHandlerUpcall,
+ ACE_Null_Mutex> TTimerWheelIterator;
+typedef ACE_Thread_Timer_Queue_Adapter<TTimerWheel,
+ ICustomEventHandler*> TTimerWheelThreadAdapter;
+
+#endif /* ACE_HAS_THREADS */
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Thread_Timer_Queue_Adapter_Test"));
+
+#if defined (ACE_HAS_THREADS)
+
+ // Start the thread adapter
+ TTimerWheelThreadAdapter TimerWheelThreadAdapter;
+ TimerWheelThreadAdapter.activate();
+
+ // Single timer
+ {
+ // Create a test event handler
+ long iCallCount = 0;
+ CTestEventHandler* p_TestEventHandler = 0;
+ ACE_NEW_RETURN(p_TestEventHandler, CTestEventHandler(&iCallCount), -1);
+
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT("%I(%t) Scheduling timer...\n")));
+
+ TimerWheelThreadAdapter.schedule(p_TestEventHandler,
+ (void*) 1,
+ ACE_OS::gettimeofday() + ACE_Time_Value(1, 0));
+
+ ACE_OS::sleep(ACE_Time_Value(1, 100 * 1000));
+ ACE_TEST_ASSERT(iCallCount == 1);
+
+ delete p_TestEventHandler;
+
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("%I(%t) Success in Single timer test.\n")));
+ }
+
+ // Single timer with cancellation
+ {
+ // Create a test event handler
+ long iCallCount = 0;
+ CTestEventHandler* p_TestEventHandler = 0;
+ ACE_NEW_RETURN(p_TestEventHandler, CTestEventHandler(&iCallCount), -1);
+
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT("%I(%t) Scheduling timer...\n")));
+
+ long lTimerHandle =
+ TimerWheelThreadAdapter.schedule(p_TestEventHandler,
+ (void*) 1,
+ ACE_OS::gettimeofday() + ACE_Time_Value(1, 0));
+
+ // Cancel the repeating timer
+ TimerWheelThreadAdapter.cancel(lTimerHandle);
+
+ ACE_OS::sleep(ACE_Time_Value(1, 100 * 1000));
+
+ ACE_TEST_ASSERT(iCallCount == 0);
+
+ // Test event handler was deleted by the timer.
+
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("%I(%t) Success in Single timer with cancellation test.\n")));
+ }
+
+ // Repeating timer with cancellation
+ {
+ // Create a test event handler
+ long iCallCount = 0;
+ CTestEventHandler* p_TestEventHandler = 0;
+ ACE_NEW_RETURN(p_TestEventHandler, CTestEventHandler(&iCallCount), -1);
+
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT("%I(%t) Scheduling timer...\n")));
+
+ long lTimerHandle =
+ TimerWheelThreadAdapter.schedule
+ (p_TestEventHandler,
+ (void*) 1,
+ ACE_OS::gettimeofday() + ACE_Time_Value(1, 0),
+ ACE_Time_Value(1, 0));
+
+ ACE_OS::sleep(ACE_Time_Value(3, 500 * 1000));
+ ACE_TEST_ASSERT(iCallCount == 3);
+
+ // Cancel the repeating timer
+ TimerWheelThreadAdapter.cancel(lTimerHandle);
+
+ ACE_TEST_ASSERT(iCallCount == 3);
+
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT("%I(%t) Success in Repeating timer with cancellation test.\n")));
+ }
+
+ // Multiple timers
+ {
+ // Create a test event handler
+ long iCallCount = 0;
+ CTestEventHandler* p_TestEventHandler = 0;
+ ACE_NEW_RETURN(p_TestEventHandler, CTestEventHandler(&iCallCount), -1);
+
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT("%I(%t) Scheduling timer...\n")));
+
+ TimerWheelThreadAdapter.schedule
+ (p_TestEventHandler,
+ (void*) 1,
+ ACE_OS::gettimeofday() + ACE_Time_Value(1, 0));
+
+ TimerWheelThreadAdapter.schedule
+ (p_TestEventHandler,
+ (void*) 1,
+ ACE_OS::gettimeofday() + ACE_Time_Value(1, 0));
+
+ TimerWheelThreadAdapter.schedule
+ (p_TestEventHandler,
+ (void*) 1,
+ ACE_OS::gettimeofday() + ACE_Time_Value(2, 0));
+
+ ACE_OS::sleep(ACE_Time_Value(3, 0));
+ ACE_TEST_ASSERT(iCallCount == 3);
+
+ delete p_TestEventHandler;
+
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("%I(%t) Success in Multiple timers test.\n")));
+ }
+
+#else
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("threads not supported on this platform\n")));
+#endif /* ACE_HAS_THREADS */
+ ACE_END_TEST;
+
+ return 0;
+}
diff --git a/ACE/tests/Time_Service_Test.cpp b/ACE/tests/Time_Service_Test.cpp
index faaaf4a5501..b63acac5dd6 100644
--- a/ACE/tests/Time_Service_Test.cpp
+++ b/ACE/tests/Time_Service_Test.cpp
@@ -1,25 +1,22 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Time_Service_Test
-//
-// = DESCRIPTION
-// This example tests the Time Service server and clerk
-// components. The test forks and execs two processes to run both
-// the clerk and the time server. The clerk and the server
-// communicate for a short duration after which the main process
-// kills both the processes. No command line arguments are needed
-// to run the test.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Time_Service_Test.cpp
+ *
+ * $Id$
+ *
+ * This example tests the Time Service server and clerk
+ * components. The test forks and execs two processes to run both
+ * the clerk and the time server. The clerk and the server
+ * communicate for a short duration after which the main process
+ * kills both the processes. No command line arguments are needed
+ * to run the test.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Process.h"
@@ -27,8 +24,6 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Time_Service_Test, "$Id$")
-
#define APPLICATION \
ACE_TEXT ("..") ACE_DIRECTORY_SEPARATOR_STR \
ACE_TEXT ("netsvcs") ACE_DIRECTORY_SEPARATOR_STR \
diff --git a/ACE/tests/Time_Value_Test.cpp b/ACE/tests/Time_Value_Test.cpp
index 008089d473c..b8da6088b74 100644
--- a/ACE/tests/Time_Value_Test.cpp
+++ b/ACE/tests/Time_Value_Test.cpp
@@ -1,35 +1,32 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Time_Value_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of ACE_Time_Value. No command line arguments
-// are needed to run the test. It also tests the ACE_U_LongLong class.
-// Because ACE_U_LongLong is used for ACE_hrtime_t on some platforms,
-// this seems like a reasonable place to test it.
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu> and David Levine <levine@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Time_Value_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of ACE_Time_Value. No command line arguments
+ * are needed to run the test. It also tests the ACE_U_LongLong class.
+ * Because ACE_U_LongLong is used for ACE_hrtime_t on some platforms,
+ * this seems like a reasonable place to test it.
+ *
+ *
+ * @author Prashant Jain <pjain@cs.wustl.edu> and David Levine <levine@cs.wustl.edu>
+ */
+//=============================================================================
// Note, for this test the config.h file *must* come first!
#include "ace/config-all.h"
-ACE_RCSID(tests, Time_Value_Test, "$Id$")
-
#include "test_config.h"
#include "ace/ACE.h"
#include "ace/Time_Value.h"
#include "ace/Numeric_Limits.h"
+#ifdef ACE_HAS_CPP98_IOSTREAMS
+#include <sstream>
+#endif
int
run_main (int, ACE_TCHAR *[])
@@ -52,71 +49,53 @@ run_main (int, ACE_TCHAR *[])
// actually warn about it without the case.
ACE_Time_Value tv8 (static_cast <long> (2.5));
+ ACE_Time_Value first;
+ ACE_Time_Value last(ACE_Time_Value::max_time);
+ first = last;
+ ACE_TEST_ASSERT (first == last);
+
// Test assignment operator, tv9 and tv6 must be the same after this
ACE_Time_Value tv9;
tv9 = tv6;
- ACE_ASSERT (tv1 == ACE_Time_Value (0));
- ACE_ASSERT (tv2 < tv3);
- ACE_ASSERT (tv2 <= tv2);
- ACE_ASSERT (tv2 >= tv4);
- ACE_ASSERT (tv5 >= tv6);
- ACE_ASSERT (tv2 == ACE_Time_Value (1, 1000000));
- ACE_ASSERT (tv5 == tv4);
- ACE_ASSERT (tv2 == tv4);
- ACE_ASSERT (tv1 != tv2);
- ACE_ASSERT (tv6 == tv1);
- ACE_ASSERT (tv5 == tv7);
- ACE_ASSERT (tv7 == tv8); // That's right! See above . . .
- ACE_ASSERT (tv9 == tv6);
+ ACE_TEST_ASSERT (tv1 == ACE_Time_Value (0));
+ ACE_TEST_ASSERT (tv2 < tv3);
+ ACE_TEST_ASSERT (tv2 <= tv2);
+ ACE_TEST_ASSERT (tv2 >= tv4);
+ ACE_TEST_ASSERT (tv5 >= tv6);
+ ACE_TEST_ASSERT (tv2 == ACE_Time_Value (1, 1000000));
+ ACE_TEST_ASSERT (tv5 == tv4);
+ ACE_TEST_ASSERT (tv2 == tv4);
+ ACE_TEST_ASSERT (tv1 != tv2);
+ ACE_TEST_ASSERT (tv6 == tv1);
+ ACE_TEST_ASSERT (tv5 == tv7);
+ ACE_TEST_ASSERT (tv7 == tv8); // That's right! See above . . .
+ ACE_TEST_ASSERT (tv9 == tv6);
ACE_Time_Value tv10 (1);
- ACE_ASSERT (tv10.sec() == 1);
+ ACE_TEST_ASSERT (tv10.sec() == 1);
// test multiplication by double
// test simple multiplication
tv1.set (1, 1);
tv2.set (2, 2);
tv1 *= 2.0;
- ACE_ASSERT (tv1 == tv2);
+ ACE_TEST_ASSERT (tv1 == tv2);
tv1.set (1, 1);
tv2.set (static_cast<time_t> (-2), static_cast<suseconds_t> (-2));
tv1 *= -2.0;
- ACE_ASSERT (tv1 == tv2);
+ ACE_TEST_ASSERT (tv1 == tv2);
// test usec shift
tv1.set (1, 999999);
tv2.set (19, 999990);
tv1 *= 10.0;
- ACE_ASSERT ( tv1 == tv2);
+ ACE_TEST_ASSERT ( tv1 == tv2);
tv1.set (1, 999999);
tv2.set (static_cast<time_t> (-19), -999990);
tv1 *= -10.0;
- ACE_ASSERT (tv1 == tv2);
-
- const time_t max_time_t = ACE_Numeric_Limits<time_t>::max ();
- const time_t min_time_t = ACE_Numeric_Limits<time_t>::min ();
-
- // test results near limits
- tv1.set ((max_time_t >> 1), 499999);
- tv2.set ((-(max_time_t >> 1) << 1), -999998);
- tv1 *= -2.0;
- ACE_ASSERT (tv1 == tv2);
- tv1.set (max_time_t >> 1, 499999);
- tv2.set (((max_time_t >> 1) << 1), 999998);
- tv1 *= 2.0;
- ACE_ASSERT (tv1 == tv2);
-
- // test saturated result
- tv1.set (max_time_t - 1, 499999);
- tv2.set (max_time_t, 999999); // ACE_Time_Value::max_time
- tv1 *= 10.0;
- ACE_ASSERT (tv1 == tv2);
- tv1.set (max_time_t - 1, 499999);
- tv2.set (min_time_t, -999999);
- tv1 *= -10.0;
- ACE_ASSERT (tv1 == tv2);
+ ACE_TEST_ASSERT (tv1 == tv2);
// Test correct msec() convert; also checks for compile error reported in
// Bugzilla 3336.
@@ -127,7 +106,13 @@ run_main (int, ACE_TCHAR *[])
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("msec test failed: %Q should be 42555\n"),
ms));
- const ACE_Time_Value msec_test2 (42, 555000);
+ ms = 0;
+ ms = msec_test.get_msec ();
+ if (ms != 42555)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("get_msec test failed: %Q should be 42555\n"),
+ ms));
+ ACE_Time_Value const msec_test2 (42, 555000);
ms = 0;
msec_test2.msec (ms);
if (ms != 42555)
@@ -135,6 +120,40 @@ run_main (int, ACE_TCHAR *[])
ACE_TEXT ("msec const test failed: %Q should be 42555\n"),
ms));
+ // Test setting from ACE_UINT64
+ ms = 42555;
+ ACE_Time_Value msec_test3;
+ msec_test3.set_msec (ms);
+ if (msec_test3.sec () != 42)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("set_msec test failed: %d secs should be 42\n"),
+ msec_test3.sec ()));
+ if (msec_test3.usec () != 555000)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("set_msec test failed: %d usecs should be 555000\n"),
+ msec_test3.usec ()));
+
+#ifdef ACE_HAS_CPP98_IOSTREAMS
+ std::ostringstream ost;
+ ost << ACE_Time_Value(1);
+ ACE_TEST_ASSERT( ost.str() == "1" );
+ ost.str("");
+ ost << ACE_Time_Value(1,1);
+ ACE_TEST_ASSERT( ost.str() == "1.000001" );
+ ost.str("");
+ ost << ACE_Time_Value(static_cast<time_t>(-1),-1);
+ ACE_TEST_ASSERT( ost.str() == "-1.000001" );
+ ost.str("");
+ ost << ACE_Time_Value(0,1);
+ ACE_TEST_ASSERT( ost.str() == "0.000001" );
+ ost.str("");
+ ost << ACE_Time_Value(0,-1);
+ ACE_TEST_ASSERT( ost.str() == "-0.000001" );
+ ost.str("");
+ ost << ACE_Time_Value();
+ ACE_TEST_ASSERT( ost.str() == "0" );
+#endif
+
ACE_END_TEST;
return ret;
diff --git a/ACE/tests/Timeprobe_Test.cpp b/ACE/tests/Timeprobe_Test.cpp
index 2935aca22bd..42b5e7811f9 100644
--- a/ACE/tests/Timeprobe_Test.cpp
+++ b/ACE/tests/Timeprobe_Test.cpp
@@ -1,26 +1,23 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Timeprobe_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of ACE Timeprobes.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Timeprobe_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of ACE Timeprobes.
+ *
+ *
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
+ */
+//=============================================================================
+
//#define ACE_ENABLE_TIMEPROBES
//#define ACE_MT_TIMEPROBES
//#define ACE_TSS_TIMEPROBES
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/Singleton.h"
#include "ace/Synch_Traits.h"
#include "ace/Recursive_Thread_Mutex.h"
@@ -28,7 +25,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Timeprobe.h"
-ACE_RCSID(tests, Timeprobe_Test, "$Id$")
+
#if defined (ACE_ENABLE_TIMEPROBES)
diff --git a/ACE/tests/Timer_Cancellation_Test.cpp b/ACE/tests/Timer_Cancellation_Test.cpp
index 0db3da521ae..838a55fdd85 100644
--- a/ACE/tests/Timer_Cancellation_Test.cpp
+++ b/ACE/tests/Timer_Cancellation_Test.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Timer_Cancellation_Test.cpp
-//
-// = DESCRIPTION
-// A test to ensure the timer cancellation works correctly.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file Timer_Cancellation_Test.cpp
+ *
+ * $Id$
+ *
+ * A test to ensure the timer cancellation works correctly.
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
#include "ace/OS_NS_unistd.h"
#include "ace/Reactor.h"
#include "ace/TP_Reactor.h"
#include "ace/Task.h"
-ACE_RCSID(tests, Timer_Cancellation_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/tests/Timer_Queue_Reference_Counting_Test.cpp b/ACE/tests/Timer_Queue_Reference_Counting_Test.cpp
index d0dcafff858..400a8711b1c 100644
--- a/ACE/tests/Timer_Queue_Reference_Counting_Test.cpp
+++ b/ACE/tests/Timer_Queue_Reference_Counting_Test.cpp
@@ -1,21 +1,18 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Timer_Queue_Reference_Counting_Test.cpp
-//
-// = DESCRIPTION
-// This test is used to check reference counting of the Event
-// Handler when it interacts with Timer Queues.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Timer_Queue_Reference_Counting_Test.cpp
+ *
+ * $Id$
+ *
+ * This test is used to check reference counting of the Event
+ * Handler when it interacts with Timer Queues.
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Get_Opt.h"
@@ -29,7 +26,7 @@
#include "ace/Null_Mutex.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Timer_Queue_Reference_Counting_Test, "$Id$")
+
static int debug = 0;
static const char *one_second_timeout = "one second timeout";
@@ -87,7 +84,7 @@ Reference_Counted_Event_Handler::~Reference_Counted_Event_Handler (void)
this->reference_count_.value ()));
if (this->expected_number_of_handle_close_calls_ != -1)
- ACE_ASSERT (this->number_of_handle_close_calls_ ==
+ ACE_TEST_ASSERT (this->number_of_handle_close_calls_ ==
this->expected_number_of_handle_close_calls_);
}
@@ -157,7 +154,7 @@ cancellation (ACE_Timer_Queue &timer_queue,
one_second_timeout,
ACE_Time_Value (1) + timer_queue.gettimeofday (),
ACE_Time_Value (1));
- ACE_ASSERT (first_timer_id != -1);
+ ACE_TEST_ASSERT (first_timer_id != -1);
}
else
{
@@ -165,7 +162,7 @@ cancellation (ACE_Timer_Queue &timer_queue,
timer_queue.schedule (handler,
one_second_timeout,
ACE_Time_Value (1) + timer_queue.gettimeofday ());
- ACE_ASSERT (first_timer_id != -1);
+ ACE_TEST_ASSERT (first_timer_id != -1);
}
if (second_timer)
@@ -175,7 +172,7 @@ cancellation (ACE_Timer_Queue &timer_queue,
two_second_timeout,
ACE_Time_Value (2) + timer_queue.gettimeofday (),
ACE_Time_Value (2));
- ACE_ASSERT (second_timer_id != -1);
+ ACE_TEST_ASSERT (second_timer_id != -1);
}
if (cancel_handler)
@@ -185,9 +182,9 @@ cancellation (ACE_Timer_Queue &timer_queue,
dont_call_handle_close);
if (second_timer)
- ACE_ASSERT (result == 2);
+ ACE_TEST_ASSERT (result == 2);
else
- ACE_ASSERT (result == 1);
+ ACE_TEST_ASSERT (result == 1);
}
else
{
@@ -195,7 +192,7 @@ cancellation (ACE_Timer_Queue &timer_queue,
timer_queue.cancel (first_timer_id,
0,
dont_call_handle_close);
- ACE_ASSERT (result == 1);
+ ACE_TEST_ASSERT (result == 1);
if (second_timer)
{
@@ -203,7 +200,7 @@ cancellation (ACE_Timer_Queue &timer_queue,
timer_queue.cancel (second_timer_id,
0,
dont_call_handle_close);
- ACE_ASSERT (result == 1);
+ ACE_TEST_ASSERT (result == 1);
}
}
}
@@ -317,13 +314,13 @@ expire (ACE_Timer_Queue &timer_queue,
one_second_timeout,
ACE_Time_Value (1) + timer_queue.gettimeofday (),
ACE_Time_Value (1));
- ACE_ASSERT (timer_id != -1);
+ ACE_TEST_ASSERT (timer_id != -1);
result =
timer_queue.schedule (handler,
two_second_timeout,
ACE_Time_Value (2) + timer_queue.gettimeofday ());
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
events += 4;
@@ -334,7 +331,7 @@ expire (ACE_Timer_Queue &timer_queue,
result =
expire_function (timer_queue);
- ACE_ASSERT (result >= 0);
+ ACE_TEST_ASSERT (result >= 0);
i += result;
}
@@ -453,13 +450,13 @@ simple (ACE_Timer_Queue &timer_queue)
one_second_timeout,
ACE_Time_Value (1) + timer_queue.gettimeofday (),
ACE_Time_Value (1));
- ACE_ASSERT (timer_id != -1);
+ ACE_TEST_ASSERT (timer_id != -1);
result =
timer_queue.cancel (timer_id,
0,
0);
- ACE_ASSERT (result == 1);
+ ACE_TEST_ASSERT (result == 1);
}
{
@@ -471,7 +468,7 @@ simple (ACE_Timer_Queue &timer_queue)
one_second_timeout,
ACE_Time_Value (1) + timer_queue.gettimeofday (),
ACE_Time_Value (1));
- ACE_ASSERT (timer_id != -1);
+ ACE_TEST_ASSERT (timer_id != -1);
events += 3;
}
@@ -483,7 +480,7 @@ simple (ACE_Timer_Queue &timer_queue)
result =
timer_queue.expire ();
- ACE_ASSERT (result >= 0);
+ ACE_TEST_ASSERT (result >= 0);
i += result;
}
diff --git a/ACE/tests/Timer_Queue_Test.cpp b/ACE/tests/Timer_Queue_Test.cpp
index f6a76ee3465..209ea014356 100644
--- a/ACE/tests/Timer_Queue_Test.cpp
+++ b/ACE/tests/Timer_Queue_Test.cpp
@@ -1,27 +1,24 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Timer_Queue_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of <ACE_Timer_Queue> and four of its
-// subclasses (<ACE_Timer_List>, <ACE_Timer_Heap>,
-// <ACE_Timer_Wheel>, and <ACE_Timer_Hash>). The test sets up a
-// bunch of timers and then adds them to a timer queue. The
-// functionality of the timer queue is then tested. No command
-// line arguments are needed to run the test.
-//
-// = AUTHORS
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>,
-// Prashant Jain <pjain@cs.wustl.edu>, and
-// Darrell Brunsch <brunsch@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Timer_Queue_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of <ACE_Timer_Queue> and four of its
+ * subclasses (<ACE_Timer_List>, <ACE_Timer_Heap>,
+ * <ACE_Timer_Wheel>, and <ACE_Timer_Hash>). The test sets up a
+ * bunch of timers and then adds them to a timer queue. The
+ * functionality of the timer queue is then tested. No command
+ * line arguments are needed to run the test.
+ *
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author Prashant Jain <pjain@cs.wustl.edu>
+ * @author and Darrell Brunsch <brunsch@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "randomize.h"
@@ -37,7 +34,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Containers_T.h"
-ACE_RCSID(tests, Timer_Queue_Test, "$Id$")
+
// Number of iterations for the performance tests. Some platforms
@@ -64,7 +61,7 @@ public:
virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask mask)
{
- ACE_ASSERT (mask == ACE_Event_Handler::TIMER_MASK);
+ ACE_TEST_ASSERT (mask == ACE_Event_Handler::TIMER_MASK);
this->close_count_++;
return 0;
}
@@ -73,7 +70,7 @@ public:
const void *arg)
{
int *act = (int *) arg;
- ACE_ASSERT (*act == 42 || *act == 007);
+ ACE_TEST_ASSERT (*act == 42 || *act == 007);
int result = 0;
if (*act == 007)
@@ -83,17 +80,67 @@ public:
return result;
}
+ /// Keeps track of the number of times that <handle_close> is called.
int close_count_;
- // Keeps track of the number of times that <handle_close> is called.
};
+
+struct Interval_Handler : public ACE_Event_Handler
+{
+ Interval_Handler (void) : trip_count_ (0) { }
+
+ virtual int handle_timeout (const ACE_Time_Value & , const void *)
+ {
+ ++trip_count_;
+ return 0;
+ }
+
+ unsigned trip_count_; // number of times handle_timeout has been tripped.
+};
+
+static void
+test_interval_timer (ACE_Timer_Queue *tq)
+{
+ /*
+ The strategy:
+
+ Set up a timer to fire on a 50ms interval.
+ */
+ Interval_Handler ih;
+ ACE_Time_Value interval (0, 50 * 1000 /* number of usec in millisecond */);
+ const unsigned NUM_INTERVAL_FIRINGS = 50;
+ ACE_Time_Value loop_stop_time =
+ tq->gettimeofday () + (NUM_INTERVAL_FIRINGS * interval);
+ const unsigned EXPECTED_TRIP_COUNT =
+ NUM_INTERVAL_FIRINGS + 1 /* for the first immediate firing */;
+
+ long id = tq->schedule (&ih, 0 /* no act */, ACE_Time_Value::zero, interval);
+ ACE_TEST_ASSERT (id != -1);
+
+ do
+ {
+ tq->expire ();
+ }
+ while (tq->gettimeofday () < loop_stop_time);
+
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT("after interval loop, timer fired %d ")
+ ACE_TEXT("times out of %d expected: %s\n"),
+ ih.trip_count_, EXPECTED_TRIP_COUNT,
+ ih.trip_count_ == EXPECTED_TRIP_COUNT
+ ? ACE_TEXT ("success") : ACE_TEXT ("FAIL")
+ ));
+
+ tq->cancel (id);
+}
+
static void
test_functionality (ACE_Timer_Queue *tq)
{
Example_Handler eh;
- ACE_ASSERT (tq->is_empty () != 0);
- ACE_ASSERT (ACE_Time_Value::zero == ACE_Time_Value (0));
+ ACE_TEST_ASSERT (tq->is_empty () != 0);
+ ACE_TEST_ASSERT (ACE_Time_Value::zero == ACE_Time_Value (0));
long timer_id;
long timer_id2;
@@ -110,68 +157,68 @@ test_functionality (ACE_Timer_Queue *tq)
timer_id2 = tq->schedule (&eh, timer_act, tq->gettimeofday ());
long result = tq->earliest_time () == earliest_time;
- ACE_ASSERT (result != 0);
+ ACE_TEST_ASSERT (result != 0);
tq->cancel (timer_id, &timer_act);
delete (int *) timer_act;
tq->cancel (timer_id2, &timer_act);
delete (int *) timer_act;
- ACE_ASSERT (tq->is_empty () == 1);
- ACE_ASSERT (eh.close_count_ == 0);
+ ACE_TEST_ASSERT (tq->is_empty () == 1);
+ ACE_TEST_ASSERT (eh.close_count_ == 0);
ACE_NEW (timer_act, int (1));
timer_id = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (timer_id != -1);
- ACE_ASSERT (tq->is_empty () == 0); //==
+ ACE_TEST_ASSERT (timer_id != -1);
+ ACE_TEST_ASSERT (tq->is_empty () == 0); //==
ACE_NEW (timer_act, int (42));
result = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (result != -1);
- ACE_ASSERT (tq->is_empty () == 0); //==
+ ACE_TEST_ASSERT (result != -1);
+ ACE_TEST_ASSERT (tq->is_empty () == 0); //==
ACE_NEW (timer_act, int (42));
result = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (result != -1);
- ACE_ASSERT (tq->is_empty () == 0); //==
+ ACE_TEST_ASSERT (result != -1);
+ ACE_TEST_ASSERT (tq->is_empty () == 0); //==
// The following method will trigger a call to <handle_close>.
- ACE_ASSERT (eh.close_count_ == 0);
+ ACE_TEST_ASSERT (eh.close_count_ == 0);
result = tq->cancel (timer_id, &timer_act, 0);
- ACE_ASSERT (result == 1);
+ ACE_TEST_ASSERT (result == 1);
delete (int *) timer_act;
- ACE_ASSERT (tq->is_empty () == 0);
- ACE_ASSERT (eh.close_count_ == 1);
+ ACE_TEST_ASSERT (tq->is_empty () == 0);
+ ACE_TEST_ASSERT (eh.close_count_ == 1);
result = tq->expire ();
- ACE_ASSERT (result == 2);
+ ACE_TEST_ASSERT (result == 2);
ACE_NEW (timer_act, int (007));
result = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
const void *timer_act1 = 0;
ACE_NEW (timer_act1, int (42));
result = tq->schedule (&eh,
timer_act1,
tq->gettimeofday () + ACE_Time_Value (100));
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
const void *timer_act2 = 0;
ACE_NEW (timer_act2, int (42));
result = tq->schedule (&eh,
timer_act2,
tq->gettimeofday () + ACE_Time_Value (100));
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
// The following will trigger a call to <handle_close> when it
// cancels the second timer. This happens because the first timer
@@ -179,13 +226,13 @@ test_functionality (ACE_Timer_Queue *tq)
// -1. Since -1 is returned, all timers that use <eh> will be
// cancelled (and <handle_close> will only be called on the first
// timer that is cancelled).
- ACE_ASSERT (eh.close_count_ == 1);
+ ACE_TEST_ASSERT (eh.close_count_ == 1);
result = tq->expire ();
- ACE_ASSERT (result == 1);
- ACE_ASSERT (eh.close_count_ == 2);
+ ACE_TEST_ASSERT (result == 1);
+ ACE_TEST_ASSERT (eh.close_count_ == 2);
- ACE_ASSERT (tq->is_empty () != 0);
+ ACE_TEST_ASSERT (tq->is_empty () != 0);
delete (int *) timer_act2;
delete (int *) timer_act1;
@@ -193,71 +240,71 @@ test_functionality (ACE_Timer_Queue *tq)
timer_id = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (timer_id != -1);
+ ACE_TEST_ASSERT (timer_id != -1);
ACE_NEW (timer_act, int (4));
timer_id2 = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (timer_id2 != -1);
+ ACE_TEST_ASSERT (timer_id2 != -1);
// The following method will trigger a call to <handle_close>.
- ACE_ASSERT (eh.close_count_ == 2);
+ ACE_TEST_ASSERT (eh.close_count_ == 2);
result = tq->cancel (timer_id, &timer_act);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
delete (int *) timer_act;
result = tq->cancel (timer_id2, &timer_act);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
delete (int *) timer_act;
- ACE_ASSERT (eh.close_count_ == 2); // Only one call to handle_close() even though two timers
- ACE_ASSERT (tq->is_empty () != 0);
+ ACE_TEST_ASSERT (eh.close_count_ == 2); // Only one call to handle_close() even though two timers
+ ACE_TEST_ASSERT (tq->is_empty () != 0);
result = tq->expire ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
// This tests to make sure that <handle_close> is called when there
// is only one timer of the type in the queue
- ACE_ASSERT (eh.close_count_ == 2);
+ ACE_TEST_ASSERT (eh.close_count_ == 2);
ACE_NEW (timer_act, int (007));
result = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
result = tq->expire ();
- ACE_ASSERT (result == 1);
- ACE_ASSERT (eh.close_count_ == 3);
+ ACE_TEST_ASSERT (result == 1);
+ ACE_TEST_ASSERT (eh.close_count_ == 3);
ACE_NEW (timer_act, int (6));
timer_id = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (timer_id != -1);
+ ACE_TEST_ASSERT (timer_id != -1);
ACE_NEW (timer_act, int (7));
timer_id2 = tq->schedule (&eh,
timer_act,
tq->gettimeofday ());
- ACE_ASSERT (timer_id2 != -1);
+ ACE_TEST_ASSERT (timer_id2 != -1);
- ACE_ASSERT (eh.close_count_ == 3);
+ ACE_TEST_ASSERT (eh.close_count_ == 3);
result = tq->cancel (timer_id, &timer_act);
- ACE_ASSERT (result == 1);
- ACE_ASSERT (eh.close_count_ == 3);
+ ACE_TEST_ASSERT (result == 1);
+ ACE_TEST_ASSERT (eh.close_count_ == 3);
delete (int *) timer_act;
result = tq->cancel (timer_id2, &timer_act);
- ACE_ASSERT (result == 1);
- ACE_ASSERT (eh.close_count_ == 3);
+ ACE_TEST_ASSERT (result == 1);
+ ACE_TEST_ASSERT (eh.close_count_ == 3);
delete (int *) timer_act;
result = tq->expire ();
- ACE_ASSERT (result == 0);
- ACE_ASSERT (eh.close_count_ == 3);
+ ACE_TEST_ASSERT (result == 0);
+ ACE_TEST_ASSERT (eh.close_count_ == 3);
}
static void
@@ -269,8 +316,8 @@ test_performance (ACE_Timer_Queue *tq,
int i;
const void *timer_act = 0;
- ACE_ASSERT (tq->is_empty () != 0);
- ACE_ASSERT (ACE_Time_Value::zero == ACE_Time_Value (0));
+ ACE_TEST_ASSERT (tq->is_empty () != 0);
+ ACE_TEST_ASSERT (ACE_Time_Value::zero == ACE_Time_Value (0));
// Test the amount of time required to schedule all the timers.
@@ -291,10 +338,10 @@ test_performance (ACE_Timer_Queue *tq,
timer_ids[i] = tq->schedule (&eh,
timer_act,
times[i]);
- ACE_ASSERT (timer_ids[i] != -1);
+ ACE_TEST_ASSERT (timer_ids[i] != -1);
}
- ACE_ASSERT (tq->is_empty () == 0);
+ ACE_TEST_ASSERT (tq->is_empty () == 0);
timer.stop ();
@@ -324,7 +371,7 @@ test_performance (ACE_Timer_Queue *tq,
timer.stop ();
- ACE_ASSERT (tq->is_empty () != 0);
+ ACE_TEST_ASSERT (tq->is_empty () != 0);
timer.elapsed_time (et);
@@ -347,17 +394,17 @@ test_performance (ACE_Timer_Queue *tq,
{
ACE_NEW (timer_act, int (42));
long result = tq->schedule (&eh, timer_act, times[i]);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
}
- ACE_ASSERT (tq->is_empty () == 0);
+ ACE_TEST_ASSERT (tq->is_empty () == 0);
// Expire all the timers.
tq->expire (last_time + ACE_Time_Value(1));
timer.stop ();
- ACE_ASSERT (tq->is_empty () != 0);
+ ACE_TEST_ASSERT (tq->is_empty () != 0);
timer.elapsed_time (et);
@@ -373,7 +420,7 @@ test_performance (ACE_Timer_Queue *tq,
randomize (times,
max_iterations,
- static_cast<ACE_RANDR_TYPE> (ACE_OS::time (0L)));
+ static_cast<unsigned int> (ACE_OS::time (0L)));
// Test the amount of time required to randomly cancel all the
// timers.
@@ -384,10 +431,10 @@ test_performance (ACE_Timer_Queue *tq,
timer_ids[i] = tq->schedule (&eh,
timer_act,
times[i]);
- ACE_ASSERT (timer_ids[i] != -1);
+ ACE_TEST_ASSERT (timer_ids[i] != -1);
}
- ACE_ASSERT (tq->is_empty () == 0);
+ ACE_TEST_ASSERT (tq->is_empty () == 0);
timer.start ();
@@ -397,7 +444,7 @@ test_performance (ACE_Timer_Queue *tq,
delete (int *) timer_act;
}
- ACE_ASSERT (tq->is_empty () != 0);
+ ACE_TEST_ASSERT (tq->is_empty () != 0);
timer.stop ();
@@ -426,12 +473,12 @@ test_performance (ACE_Timer_Queue *tq,
timer_ids[i] = tq->schedule (&eh,
timer_act,
times[i]);
- ACE_ASSERT (timer_ids[i] != -1);
+ ACE_TEST_ASSERT (timer_ids[i] != -1);
}
timer.stop ();
- ACE_ASSERT (tq->is_empty () == 0);
+ ACE_TEST_ASSERT (tq->is_empty () == 0);
timer.elapsed_time (et);
@@ -453,7 +500,7 @@ test_performance (ACE_Timer_Queue *tq,
tq->expire (last_time + ACE_Time_Value(1));
- ACE_ASSERT (tq->is_empty ());
+ ACE_TEST_ASSERT (tq->is_empty ());
timer.stop ();
@@ -531,13 +578,15 @@ test_unique_timer_heap_ids (void)
return;
}
+/**
+ * @class Timer_Queue_Stack
+ *
+ * @brief Keeps track of the <Timer_Queue>s that we're going to test.
+ *
+ * This data structure is organized as a stack to make it easy to implement.
+ */
class Timer_Queue_Stack
{
- // = TITLE
- // Keeps track of the <Timer_Queue>s that we're going to test.
- //
- // = DESCRIPTION
- // This data structure is organized as a stack to make it easy to implement.
public:
// = Initialization method
Timer_Queue_Stack (ACE_Timer_Queue *queue,
@@ -549,14 +598,14 @@ public:
{}
// "Push" a new <queue> on the stack of <queue>s.
+ /// Pointer to the subclass of <ACE_Timer_Queue> that we're testing.
ACE_Timer_Queue *queue_;
- // Pointer to the subclass of <ACE_Timer_Queue> that we're testing.
+ /// Name of the Queue that we're testing.
const ACE_TCHAR *name_;
- // Name of the Queue that we're testing.
+ /// Pointer to the next <Timer_Queue>.
Timer_Queue_Stack *next_;
- // Pointer to the next <Timer_Queue>.
};
int
@@ -646,6 +695,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("**** starting test of %s\n"),
tq_ptr->name_));
+ test_interval_timer (tq_ptr->queue_);
test_functionality (tq_ptr->queue_);
test_performance (tq_ptr->queue_,
tq_ptr->name_);
diff --git a/ACE/tests/TkReactor_Test.cpp b/ACE/tests/TkReactor_Test.cpp
index 2b7a7634ae8..52a75ca8eb6 100644
--- a/ACE/tests/TkReactor_Test.cpp
+++ b/ACE/tests/TkReactor_Test.cpp
@@ -1,32 +1,27 @@
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TkReactor_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that illustrates the possibility to integrate
-// ACE to the Tk Main Loop. This program uses ACE_TkReactor class to
-// schedule three additional event sources:
-// 1. Events from button "Stop Test" (registed with Tk_CreateEventHandler)
-// 2. Events from button "Press Me" (registed with Tk_CreateEventHandler)
-// 3. Events from X timer (registed with Tk_CreateTimerHandler)
-// 4. Events from ACE timer (registed with ACE_TkReactor::schedule_timer)
-// 5. Events from the TCP/IP channel using ACE_Acceptor
-// No command line arguments are needed to run the test.
-//
-// = AUTHOR
-// Nagarajan Surendran <naga@cs.wustl.edu>
-//
-// ============================================================================
-#include "test_config.h"
+//=============================================================================
+/**
+ * @file TkReactor_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that illustrates the possibility to integrate
+ * ACE to the Tk Main Loop. This program uses ACE_TkReactor class to
+ * schedule three additional event sources:
+ * 1. Events from button "Stop Test" (registed with Tk_CreateEventHandler)
+ * 2. Events from button "Press Me" (registed with Tk_CreateEventHandler)
+ * 3. Events from X timer (registed with Tk_CreateTimerHandler)
+ * 4. Events from ACE timer (registed with ACE_TkReactor::schedule_timer)
+ * 5. Events from the TCP/IP channel using ACE_Acceptor
+ * No command line arguments are needed to run the test.
+ *
+ *
+ * @author Nagarajan Surendran <naga@cs.wustl.edu>
+ */
+//=============================================================================
+
-ACE_RCSID (tests,
- TkReactor_Test,
- "$Id$")
+#include "test_config.h"
#include "ace/Event_Handler.h"
#include "ace/Acceptor.h"
diff --git a/ACE/tests/Token_Strategy_Test.cpp b/ACE/tests/Token_Strategy_Test.cpp
index 5bfb46364cc..8990db04589 100644
--- a/ACE/tests/Token_Strategy_Test.cpp
+++ b/ACE/tests/Token_Strategy_Test.cpp
@@ -15,7 +15,7 @@
//
// ============================================================================
-#include "tests/test_config.h"
+#include "test_config.h"
#include "ace/Token.h"
#include "ace/Task.h"
#include "ace/Atomic_Op.h"
@@ -25,7 +25,7 @@
#include "ace/ACE.h"
#include "ace/Barrier.h"
-ACE_RCSID(tests, Token_Strategy_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/tests/Tokens_Test.cpp b/ACE/tests/Tokens_Test.cpp
index 434b0b6c477..8b8b3f7c3a4 100644
--- a/ACE/tests/Tokens_Test.cpp
+++ b/ACE/tests/Tokens_Test.cpp
@@ -1,29 +1,26 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Tokens_Test.cpp
-//
-// = DESCRIPTION
-// This application tests the ACE Token library including local
-// and remote readers/writer and mutex locks, and token
-// collections. This is accomplished with the ACE Token Invariant
-// utilities that allow and application to check that
-// readers/writer and mutex lock invariants are always satisfied.
-// Throughout this test, ACE_ASSERTs are used in conjunction with
-// Token Invariant operations, so that errors are reported using
-// the ACE tests convention. This application performs a local
-// test and then fork_execs a token server and performs the same
-// test remotely.
-//
-// = AUTHOR
-// Tim Harrison <harrison@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Tokens_Test.cpp
+ *
+ * $Id$
+ *
+ * This application tests the ACE Token library including local
+ * and remote readers/writer and mutex locks, and token
+ * collections. This is accomplished with the ACE Token Invariant
+ * utilities that allow and application to check that
+ * readers/writer and mutex lock invariants are always satisfied.
+ * Throughout this test, ACE_TEST_ASSERTs are used in conjunction with
+ * Token Invariant operations, so that errors are reported using
+ * the ACE tests convention. This application performs a local
+ * test and then fork_execs a token server and performs the same
+ * test remotely.
+ *
+ *
+ * @author Tim Harrison <harrison@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Process.h"
@@ -36,7 +33,7 @@
#include "ace/Barrier.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, Tokens_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_TOKENS_LIBRARY)
@@ -88,7 +85,7 @@ run_thread (void *vp)
return (void *) -1;
}
- ACE_ASSERT ((TOKEN_INVARIANTS::instance ()->acquired (tp->token1_) == 1) ||
+ ACE_TEST_ASSERT ((TOKEN_INVARIANTS::instance ()->acquired (tp->token1_) == 1) ||
(TOKEN_INVARIANTS::instance ()->acquired (tp->token2_) == 1));
ACE_DEBUG ((LM_DEBUG,
@@ -111,7 +108,7 @@ run_thread (void *vp)
return (void *) -1;
}
- ACE_ASSERT (TOKEN_INVARIANTS::instance ()->acquired (tp->token1_) == 1 ||
+ ACE_TEST_ASSERT (TOKEN_INVARIANTS::instance ()->acquired (tp->token1_) == 1 ||
TOKEN_INVARIANTS::instance ()->acquired (tp->token2_) == 1);
ACE_DEBUG ((LM_DEBUG,
@@ -235,7 +232,7 @@ run_main (int, ACE_TCHAR *[])
int status = ACE_OS::access (token_exe, F_OK);
if (status == -1)
- ACE_ERROR ((LM_ERROR,
+ ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
token_exe));
else
diff --git a/ACE/tests/UNIXclerk.conf b/ACE/tests/UNIXclerk.conf
index 6ea52b0b52b..e49a9916c3d 100644
--- a/ACE/tests/UNIXclerk.conf
+++ b/ACE/tests/UNIXclerk.conf
@@ -1,3 +1,5 @@
+## $Id$
+
# Note: hostname and port number need to be concatenated separated by ":"
dynamic Logging_Strategy Service_Object * ACE:_make_ACE_Logging_Strategy() "-s log/Time_Service_Test_Clerk.log -f OSTREAM"
dynamic Time_Server_Test Service_Object * netsvcs:_make_ACE_TS_Clerk_Processor () "-h localhost:10222 -t 4"
diff --git a/ACE/tests/UNIXserver.conf b/ACE/tests/UNIXserver.conf
index 5dcfa378156..b823f2b99c8 100644
--- a/ACE/tests/UNIXserver.conf
+++ b/ACE/tests/UNIXserver.conf
@@ -1,3 +1,5 @@
+## $Id$
+
# These are the services that can be linked into ACE.
# You can replace the hardcoded "-p xxxxx" with "-p
# $PORT" if you set your PORT environment variable.
diff --git a/ACE/tests/UNIXtokens.conf b/ACE/tests/UNIXtokens.conf
index d15155dc60d..2a2d6c92b73 100644
--- a/ACE/tests/UNIXtokens.conf
+++ b/ACE/tests/UNIXtokens.conf
@@ -1,3 +1,5 @@
+## $Id$
+
# Solaris version
dynamic Logging_Strategy Service_Object * ACE:_make_ACE_Logging_Strategy() "-s log/Tokens_Test_Server.log -f OSTREAM"
diff --git a/ACE/tests/UPIPE_SAP_Test.cpp b/ACE/tests/UPIPE_SAP_Test.cpp
index 296d746fbb6..f40b533059a 100644
--- a/ACE/tests/UPIPE_SAP_Test.cpp
+++ b/ACE/tests/UPIPE_SAP_Test.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// UPIPE_SAP_Test.cpp
-//
-// = DESCRIPTION
-// This is a test that uses <ACE_UPIPE_SAP> and <ACE_Thread> for
-// intra-process communication.
-//
-// = AUTHOR
-// Gerhard Lenzer <Gerhard.Lenzer@med.siemens.de>,
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>, and
-// Prashant Jain <pjain@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file UPIPE_SAP_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a test that uses <ACE_UPIPE_SAP> and <ACE_Thread> for
+ * intra-process communication.
+ *
+ *
+ * @author Gerhard Lenzer <Gerhard.Lenzer@med.siemens.de>
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author and Prashant Jain <pjain@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/Stream.h"
@@ -25,7 +22,7 @@
#include "ace/UPIPE_Connector.h"
#include "ace/OS_NS_unistd.h"
-ACE_RCSID(tests, UPIPE_SAP_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS) && \
(defined (ACE_HAS_STREAM_PIPES) || defined (ACE_HAS_WIN32_NAMED_PIPES))
@@ -48,7 +45,7 @@ connector (void *)
if (con.connect (c_stream, addr) == -1)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) connector ACE_UPIPE_Connector failed\n")));
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb, ACE_Message_Block (sizeof ("hello thanks") * sizeof (char)), 0);
@@ -60,7 +57,7 @@ connector (void *)
if (c_stream.recv (mb) == -1)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) error connector recv\n")));
- ACE_ASSERT (ACE_OS::strcmp (mb->rd_ptr (), "thanks") == 0);
+ ACE_TEST_ASSERT (ACE_OS::strcmp (mb->rd_ptr (), "thanks") == 0);
// Free up the memory block.
mb->release ();
@@ -88,7 +85,7 @@ connector (void *)
conbuf[i] = '\0';
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) conbuf = %s\n"), conbuf));
- ACE_ASSERT (ACE_OS::strcmp (conbuf, "this is the acceptor response!") == 0);
+ ACE_TEST_ASSERT (ACE_OS::strcmp (conbuf, "this is the acceptor response!") == 0);
c_stream.close ();
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) exiting thread\n")));
@@ -110,7 +107,7 @@ acceptor (void *args)
if (s_stream.recv (mb) == -1)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) acceptor recv failed\n")));
- ACE_ASSERT (ACE_OS::strcmp (mb->rd_ptr (), "hello") == 0);
+ ACE_TEST_ASSERT (ACE_OS::strcmp (mb->rd_ptr (), "hello") == 0);
mb->wr_ptr (mb->rd_ptr ());
mb->copy ("thanks");
@@ -124,7 +121,7 @@ acceptor (void *args)
if (s_stream.recv (s_buf, sizeof (s_buf)) == -1)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) acceptor recv failed\n")));
else
- ACE_ASSERT (ACE_OS::strcmp (s_buf,
+ ACE_TEST_ASSERT (ACE_OS::strcmp (s_buf,
"This string is sent by connector as a buffer") == 0);
const char svr_response[] = "this is the acceptor response!";
diff --git a/ACE/tests/UUID_Test.cpp b/ACE/tests/UUID_Test.cpp
index 7f8cf15bc74..3ef3eaffa85 100644
--- a/ACE/tests/UUID_Test.cpp
+++ b/ACE/tests/UUID_Test.cpp
@@ -1,20 +1,17 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// UUID_Test.cpp
-//
-// = DESCRIPTION
-// Test the ACE UUID class which generates unique id's
-//
-// = AUTHOR
-// Andrew T. Finnel <andrew@activesol.net> and
-// Yamuna Krishnmaurthy <yamuna@oomworks.com>
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file UUID_Test.cpp
+ *
+ * $Id$
+ *
+ * Test the ACE UUID class which generates unique id's
+ *
+ *
+ * @author Andrew T. Finnel <andrew@activesol.net> and Yamuna Krishnmaurthy <yamuna@oomworks.com>
+ */
+//=============================================================================
+
#include "test_config.h"
#include "ace/UUID.h"
@@ -23,19 +20,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 +32,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 +131,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/Unbounded_Set_Test.cpp b/ACE/tests/Unbounded_Set_Test.cpp
index 6bfffd50c11..960a4dd0ef5 100644
--- a/ACE/tests/Unbounded_Set_Test.cpp
+++ b/ACE/tests/Unbounded_Set_Test.cpp
@@ -1,29 +1,26 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Unbounded_Set_Test.cpp
-//
-// = DESCRIPTION
-// This test illustrates the use of ACE_Unbounded_Set.
-// No command line arguments are needed to run the test.
-//
-// = AUTHOR
-// Rudolf Weber <rfweber@tesionmail.de>,
-// ace/tests integration <Oliver.Kellogg@sysde.eads.net>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Unbounded_Set_Test.cpp
+ *
+ * $Id$
+ *
+ * This test illustrates the use of ACE_Unbounded_Set.
+ * No command line arguments are needed to run the test.
+ *
+ *
+ * @author Rudolf Weber <rfweber@tesionmail.de>
+ * @author ace/tests integration <Oliver.Kellogg@sysde.eads.net>
+ */
+//=============================================================================
+
#include "test_config.h"
#include <ace/Unbounded_Set.h>
#include <ace/Auto_Ptr.h>
#include <ace/SString.h>
-ACE_RCSID(tests, Unbounded_Set_Test, "$Id$")
+
struct MyNode
{
diff --git a/ACE/tests/Unload_libACE.cpp b/ACE/tests/Unload_libACE.cpp
index c13ee8039a3..83d43ec8640 100644
--- a/ACE/tests/Unload_libACE.cpp
+++ b/ACE/tests/Unload_libACE.cpp
@@ -1,23 +1,20 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Unload_libACE.cpp
-//
-// = DESCRIPTION
-// This is a simple test of library unloading that uses
-// an application which has _not_ been linked with libACE
-// but uses dlopen() to dynamically load libACE
-// and then uses dlclose() to unload it.
-//
-// = AUTHORS
-// David Smith <dts@prismtech.com> and Don Sharp <Donald.Sharp@prismtech.com>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Unload_libACE.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of library unloading that uses
+ * an application which has _not_ been linked with libACE
+ * but uses dlopen() to dynamically load libACE
+ * and then uses dlclose() to unload it.
+ *
+ *
+ * @author David Smith <dts@prismtech.com> and Don Sharp <Donald.Sharp@prismtech.com>
+ */
+//=============================================================================
+
//FUZZ: disable check_for_lack_ACE_OS
//FUZZ: disable check_for_improper_main_declaration
@@ -153,7 +150,14 @@ main (int, char **)
char buf[BUFSIZ];
strcpy (buf, ace_root);
- strcat (buf, "/lib/lib");
+ strcat (buf, "/lib/");
+ const char *subdir_env = getenv ("ACE_EXE_SUB_DIR");
+ if (subdir_env)
+ {
+ strcat (buf, subdir_env);
+ strcat (buf, "/");
+ }
+ strcat (buf, "lib");
#if defined (ACE_LIB_NAME)
strcat (buf, ACE_LIB_NAME);
#else
diff --git a/ACE/tests/Upgradable_RW_Test.cpp b/ACE/tests/Upgradable_RW_Test.cpp
index 9c8279fbc5b..83f1b38bf16 100644
--- a/ACE/tests/Upgradable_RW_Test.cpp
+++ b/ACE/tests/Upgradable_RW_Test.cpp
@@ -1,30 +1,27 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Upgradable_RW_Test.cpp
-//
-// = DESCRIPTION
-// This test program verifies the functionality of the ACE_OS
-// implementation of readers/writer locks on Win32 and Posix
-// pthreads. Use the RW_Mutex define switch to use
-// readers/writer mutexes or regular mutexes.
-//
-// = AUTHOR
-// Michael Kircher <mk1@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Upgradable_RW_Test.cpp
+ *
+ * $Id$
+ *
+ * This test program verifies the functionality of the ACE_OS
+ * implementation of readers/writer locks on Win32 and Posix
+ * pthreads. Use the RW_Mutex define switch to use
+ * readers/writer mutexes or regular mutexes.
+ *
+ *
+ * @author Michael Kircher <mk1@cs.wustl.edu>
+ */
+//=============================================================================
+
#include "Upgradable_RW_Test.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_sys_time.h"
#include "ace/Atomic_Op.h"
-ACE_RCSID(tests, Upgradable_RW_Test, "$Id$")
+
#if defined (ACE_HAS_THREADS)
@@ -173,9 +170,9 @@ Reader_Task::svc (void)
{
#if defined (RW_MUTEX)
- ACE_Read_Guard<ACE_RW_Thread_Mutex> g (rw_mutex);
+ ACE_READ_GUARD_RETURN (ACE_RW_Thread_Mutex, g, rw_mutex, 1);
#else
- ACE_Guard<ACE_Thread_Mutex> g (mutex);
+ ACE_GUARD_RETURN (ACE_Thread_Mutex, g, mutex, 1);
#endif /* RW_MUTEX */
find_last ();
#if defined (RW_MUTEX)
@@ -198,9 +195,9 @@ Reader_Task::svc (void)
|| !use_try_upgrade) // we did not try at all
{
#if defined (RW_MUTEX)
- ACE_Write_Guard<ACE_RW_Thread_Mutex> g (rw_mutex);
+ ACE_WRITE_GUARD (ACE_RW_Thread_Mutex, g, rw_mutex, 1);
#else
- ACE_Guard<ACE_Thread_Mutex> g (mutex);
+ ACE_GUARD_RETURN (ACE_Thread_Mutex, g, mutex, 1);
#endif /* RW_MUTEX */
not_upgraded++;
@@ -245,9 +242,9 @@ Writer_Task::svc (void)
ACE_Thread::yield ();
#if defined (RW_MUTEX)
- ACE_Write_Guard<ACE_RW_Thread_Mutex> g (rw_mutex);
+ ACE_WRITE_GUARD (ACE_RW_Thread_Mutex, g, rw_mutex, 0);
#else
- ACE_Guard<ACE_Thread_Mutex> g (mutex);
+ ACE_GUARD_RETURN (ACE_Thread_Mutex, g, mutex, 0);
#endif /* RW_MUTEX */
find_last ();
@@ -267,7 +264,7 @@ Writer_Task::svc (void)
void
Time_Calculation::report_time (ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time)
{
- ACE_Guard<ACE_Thread_Mutex> g (mutex_);
+ ACE_GUARD (ACE_Thread_Mutex, g, mutex_);
this->times_.real_time += elapsed_time.real_time;
this->times_.user_time += elapsed_time.user_time;
@@ -294,7 +291,7 @@ Time_Calculation ::print_stats (void)
double tmp = 0.0;
- if (elapsed_time.real_time != 0.0)
+ if (!ACE::is_equal (elapsed_time.real_time, 0.0))
tmp = 1000 / elapsed_time.real_time;
ACE_DEBUG ((LM_DEBUG,
diff --git a/ACE/tests/Upgradable_RW_Test.h b/ACE/tests/Upgradable_RW_Test.h
index 41c6c0dba1e..d9f79c313bf 100644
--- a/ACE/tests/Upgradable_RW_Test.h
+++ b/ACE/tests/Upgradable_RW_Test.h
@@ -1,22 +1,19 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Upgradable_RW_Test.h
-//
-// = DESCRIPTION
-// This class gets its own header file to work around AIX C++
-// compiler "features" related to template instantiation... It is
-// only used by Upgradable_RW_Test.cpp.
-//
-// = AUTHOR
-// Michael Kircher <mk1@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Upgradable_RW_Test.h
+ *
+ * $Id$
+ *
+ * This class gets its own header file to work around AIX C++
+ * compiler "features" related to template instantiation... It is
+ * only used by Upgradable_RW_Test.cpp.
+ *
+ *
+ * @author Michael Kircher <mk1@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_TESTS_UPGRADABLE_RW_TEST_H
#define ACE_TESTS_UPGRADABLE_RW_TEST_H
@@ -37,10 +34,13 @@
class Element;
+ /**
+ * @class Element
+ *
+ * @brief The members for the double linked list.
+ */
class Element
{
- // = TITLE
- // The members for the double linked list.
friend class ACE_Double_Linked_List<Element>;
friend class ACE_Double_Linked_List_Iterator_Base<Element>;
friend class ACE_Double_Linked_List_Iterator<Element>;
@@ -69,10 +69,13 @@ private:
typedef ACE_Double_Linked_List<Element> Linked_List;
+/**
+ * @class Time_Calculation
+ *
+ * @brief class to do time calculations thread safe
+ */
class Time_Calculation
{
- // = TITLE
- // class to do time calculations thread safe
public:
Time_Calculation (void)
: reported_times_ (0)
@@ -82,26 +85,29 @@ public:
times_.system_time = 0;
}
+ /// take the time of the thread and add it to
void report_time (ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time);
- // take the time of the thread and add it to
void print_stats (void);
private:
+ /// add the times incrementally
ACE_Profile_Timer::ACE_Elapsed_Time times_;
- // add the times incrementally
+ /// protect the time
ACE_SYNCH_MUTEX mutex_;
- // protect the time
+ /// count how many threads gave me the elapsed_time
unsigned int reported_times_;
- // count how many threads gave me the elapsed_time
};
+/**
+ * @class Reader_Task
+ *
+ * @brief A Task for readers
+ */
class Reader_Task : public ACE_Task_Base
{
- // = TITLE
- // A Task for readers
public:
Reader_Task (Time_Calculation &time_Calculation,
ACE_Barrier &barrier)
@@ -113,18 +119,21 @@ public:
virtual int svc (void);
private:
+ /// keep a reference to the time calculation class
Time_Calculation &time_Calculation_;
- // keep a reference to the time calculation class
+ /// keep this reference for the barrier, in order
+ /// to allow a "nice" start
ACE_Barrier &barrier_;
- // keep this reference for the barrier, in order
- // to allow a "nice" start
};
+/**
+ * @class Writer_Task
+ *
+ * @brief A Task for wirters.
+ */
class Writer_Task : public ACE_Task_Base
{
- // = TITLE
- // A Task for wirters.
public:
Writer_Task (Time_Calculation &time_Calculation,
ACE_Barrier &barrier)
@@ -136,12 +145,12 @@ public:
virtual int svc (void);
private:
+ /// keep a reference to the time calculation class
Time_Calculation &time_Calculation_;
- // keep a reference to the time calculation class
+ /// keep this reference for the barrier, in order
+ /// to allow a "nice" start
ACE_Barrier &barrier_;
- // keep this reference for the barrier, in order
- // to allow a "nice" start
};
#endif /* ACE_TESTS_UPGRADABLE_RW_TEST_H */
diff --git a/ACE/tests/Vector_Test.cpp b/ACE/tests/Vector_Test.cpp
index ecfae68116b..581202129d7 100644
--- a/ACE/tests/Vector_Test.cpp
+++ b/ACE/tests/Vector_Test.cpp
@@ -1,25 +1,21 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Vector_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the ACE_Vector class and its iterators.
-//
-// = AUTHOR
-// Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com> and
-// Karl-Heinz Wind <wind@itq.de>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file Vector_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the ACE_Vector class and its iterators.
+ *
+ *
+ * @author Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com> and Karl-Heinz Wind <wind@itq.de>
+ */
+//=============================================================================
+
#include "test_config.h"
-ACE_RCSID(tests, Vector_Test, "$Id$")
+
#include "ace/Vector_T.h"
@@ -44,13 +40,13 @@ int run_main (int, ACE_TCHAR *[])
for (i = 0; i < TOP; ++i)
vector.push_back (i);
- ACE_ASSERT (vector.size () == TOP);
+ ACE_TEST_ASSERT (vector.size () == TOP);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Size: %d\n"),
vector.size ()));
for (i = 0; i < TOP; ++i)
- ACE_ASSERT (vector[i] == i);
+ ACE_TEST_ASSERT (vector[i] == i);
// Test to be sure the iterator gets the correct count and entries.
ITERATOR iter (vector);
@@ -74,14 +70,14 @@ int run_main (int, ACE_TCHAR *[])
for (i = 0; i < (TOP - LEFT); ++i)
vector.pop_back ();
- ACE_ASSERT (vector.size () == LEFT);
+ ACE_TEST_ASSERT (vector.size () == LEFT);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Size: %d\n"),
vector.size ()));
for (i = 0; i < LEFT; ++i)
{
- ACE_ASSERT (vector[i] == i);
+ ACE_TEST_ASSERT (vector[i] == i);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("vector[%d]:%d\n"),
i, vector[i]));
@@ -97,11 +93,11 @@ int run_main (int, ACE_TCHAR *[])
// second argument of the resize() call.
if (i < LEFT)
{
- ACE_ASSERT (vector[i] == i);
+ ACE_TEST_ASSERT (vector[i] == i);
}
else
{
- ACE_ASSERT (vector[i] == 0);
+ ACE_TEST_ASSERT (vector[i] == 0);
}
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("vector[%d]:%d\n"),
@@ -109,7 +105,7 @@ int run_main (int, ACE_TCHAR *[])
}
vector.clear ();
- ACE_ASSERT (vector.size () == 0);
+ ACE_TEST_ASSERT (vector.size () == 0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Size: %d\n"),
vector.size ()));
@@ -141,9 +137,9 @@ int run_main (int, ACE_TCHAR *[])
vector2.push_back (FILLER2);
// now we check the result
- ACE_ASSERT (vector2[0] == FILLER1);
+ ACE_TEST_ASSERT (vector2[0] == FILLER1);
for (i = 0; i < boundary; ++i)
- ACE_ASSERT (vector2[i+1] == FILLER2);
+ ACE_TEST_ASSERT (vector2[i+1] == FILLER2);
VECTOR v1;
VECTOR v2;
diff --git a/ACE/tests/WFMO_Reactor_Test.cpp b/ACE/tests/WFMO_Reactor_Test.cpp
index 2caf3a0e766..e72d57b6300 100644
--- a/ACE/tests/WFMO_Reactor_Test.cpp
+++ b/ACE/tests/WFMO_Reactor_Test.cpp
@@ -1,28 +1,25 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// WFMO_Reactor_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test of the WFMO_Reactor. It makes sure that
-// removals and suspensions work correctly.
-//
-// = AUTHOR
-// Irfan Pyarali <irfan@oomworks.com>
-//
-// ============================================================================
-
-#include "tests/test_config.h"
+
+//=============================================================================
+/**
+ * @file WFMO_Reactor_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test of the WFMO_Reactor. It makes sure that
+ * removals and suspensions work correctly.
+ *
+ *
+ * @author Irfan Pyarali <irfan@oomworks.com>
+ */
+//=============================================================================
+
+
+#include "test_config.h"
#include "ace/Reactor.h"
#include "ace/WFMO_Reactor.h"
#include "ace/Pipe.h"
-ACE_RCSID(tests, WFMO_Reactor_Test, "$Id$")
+
#if defined (ACE_WIN32)
@@ -55,18 +52,18 @@ Event_Handler::Event_Handler (ACE_Reactor &reactor)
int result =
this->pipe_.open ();
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
ACE_UNUSED_ARG (result);
this->reactor ()->register_handler (this->pipe_.read_handle (),
this,
ACE_Event_Handler::READ_MASK);
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
this->reactor ()->register_handler (this->pipe_.write_handle (),
this,
ACE_Event_Handler::READ_MASK);
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
}
Event_Handler::~Event_Handler (void)
@@ -104,7 +101,7 @@ test (void)
ACE_Time_Value timeout (0, 500 * 1000);
result = reactor.run_reactor_event_loop (timeout);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
for (i = 0; i < number_of_handlers; ++i)
{
@@ -112,14 +109,14 @@ test (void)
continue;
result = reactor.suspend_handler (event_handlers[i]->pipe_.read_handle ());
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
result = reactor.suspend_handler (event_handlers[i]->pipe_.write_handle ());
- ACE_ASSERT (result == 0);
+ ACE_TEST_ASSERT (result == 0);
}
result = reactor.run_reactor_event_loop (timeout);
- ACE_ASSERT (result != -1);
+ ACE_TEST_ASSERT (result != -1);
delete[] safe_event_handlers;
delete[] event_handlers;
@@ -132,7 +129,7 @@ run_main (int, ACE_TCHAR *[])
test ();
- ACE_ASSERT (number_of_closes == number_of_handlers);
+ ACE_TEST_ASSERT (number_of_closes == number_of_handlers);
ACE_END_TEST;
diff --git a/ACE/tests/Wild_Match_Test.cpp b/ACE/tests/Wild_Match_Test.cpp
index d88996d8c74..5e4e7424455 100644
--- a/ACE/tests/Wild_Match_Test.cpp
+++ b/ACE/tests/Wild_Match_Test.cpp
@@ -3,8 +3,6 @@
#include "ace/ACE.h"
#include "test_config.h"
-ACE_RCSID (tests, Wild_Match_Test, "$Id$")
-
bool match (const char *str, const char *pat, bool cs = true, bool cc = false)
{
bool result = ACE::wild_match (str, pat, cs, cc);
diff --git a/ACE/tests/Win32clerk.conf b/ACE/tests/Win32clerk.conf
index 470f9b31b34..21ec551f993 100644
--- a/ACE/tests/Win32clerk.conf
+++ b/ACE/tests/Win32clerk.conf
@@ -1,3 +1,5 @@
+## $Id$
+
# Note: hostname and port number need to be concatenated separated by ":"
dynamic Logging_Strategy Service_Object * ACE:_make_ACE_Logging_Strategy() "-s c:\temp\log\Time_Client.log -f OSTREAM"
dynamic Time_Server_Test Service_Object * netsvcs:_make_ACE_TS_Clerk_Processor () "-h localhost:10222 -t 4"
diff --git a/ACE/tests/Win32server.conf b/ACE/tests/Win32server.conf
index 94a3b3906ec..77db3d3142f 100644
--- a/ACE/tests/Win32server.conf
+++ b/ACE/tests/Win32server.conf
@@ -1,3 +1,5 @@
+## $Id$
+
# These are the services that can be linked into ACE.
# Note that you can replace the hardcoded "../lib/libnetsvcs.so" with
# a relative path if you set your LD search path correctly -- ACE will
diff --git a/ACE/tests/Win32tokens.conf b/ACE/tests/Win32tokens.conf
index e31eb04fc4d..fd0560dc4c1 100644
--- a/ACE/tests/Win32tokens.conf
+++ b/ACE/tests/Win32tokens.conf
@@ -1,3 +1,5 @@
+## $Id$
+
# NT version
#
dynamic Logging_Strategy Service_Object * ACE:_make_ACE_Logging_Strategy() "-s c:\temp\log\Tokens_Test_Server.log -f OSTREAM"
diff --git a/ACE/tests/XtAthenaReactor_Test.cpp b/ACE/tests/XtAthenaReactor_Test.cpp
index 8a3245574b5..977fd32480f 100644
--- a/ACE/tests/XtAthenaReactor_Test.cpp
+++ b/ACE/tests/XtAthenaReactor_Test.cpp
@@ -1,37 +1,29 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// XtReactor_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that illustrates the possibility to integrate
-// ACE to the X Main Loop. This program uses ACE_XtReactor class to
-// schedule three additional event sources:
-// 1. Events from button "Stop Test" (registed with XtAddCallback)
-// 2. Events from button "Press Me" (registed with XtAddCallback)
-// 3. Events from X timer (registed with XtAppAddTimeOut)
-// 4. Events from ACE timer (registed with ACE_XtReactor::schedule_timer)
-// 5. Events from the TCP/IP channel using ACE_Acceptor
-// No command line arguments are needed to run the test.
-// Programs needs Athena Widgets to be compiled and run.
-//
-// = AUTHOR
-// Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch>
-//
-// ============================================================================
-#include "test_config.h"
+//=============================================================================
+/**
+ * @file XtAthenaReactor_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that illustrates the possibility to integrate
+ * ACE to the X Main Loop. This program uses ACE_XtReactor class to
+ * schedule three additional event sources:
+ * 1. Events from button "Stop Test" (registed with XtAddCallback)
+ * 2. Events from button "Press Me" (registed with XtAddCallback)
+ * 3. Events from X timer (registed with XtAppAddTimeOut)
+ * 4. Events from ACE timer (registed with ACE_XtReactor::schedule_timer)
+ * 5. Events from the TCP/IP channel using ACE_Acceptor
+ * No command line arguments are needed to run the test.
+ * Programs needs Athena Widgets to be compiled and run.
+ *
+ *
+ * @author Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch>
+ */
+//=============================================================================
-ACE_RCSID (tests,
- XtAthenaReactor_Test,
- "$Id$")
+#include "test_config.h"
#include "ace/XtReactor/XtReactor.h"
#include "ace/Event_Handler.h"
#include "ace/Acceptor.h"
diff --git a/ACE/tests/XtMotifReactor_Test.cpp b/ACE/tests/XtMotifReactor_Test.cpp
index 37be8a2a07b..d168b74f19a 100644
--- a/ACE/tests/XtMotifReactor_Test.cpp
+++ b/ACE/tests/XtMotifReactor_Test.cpp
@@ -1,36 +1,30 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// XtReactor_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that illustrates the possibility to integrate
-// ACE to the X Main Loop. This program uses ACE_XtReactor class to
-// schedule three additional event sources:
-// 1. Events from button "Stop Test" (registed with XtAddCallback)
-// 2. Events from button "Press Me" (registed with XtAddCallback)
-// 3. Events from X timer (registed with XtAppAddTimeOut)
-// 4. Events from ACE timer (registed with ACE_XtReactor::schedule_timer)
-// 5. Events from the TCP/IP channel using ACE_Acceptor
-// No command line arguments are needed to run the test.
-// The program needs Motif or lestiff to be compiled and run.
-//
-// = AUTHOR
-// Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file XtMotifReactor_Test.cpp
+ *
+ * $Id$
+ *
+ * This is a simple test that illustrates the possibility to integrate
+ * ACE to the X Main Loop. This program uses ACE_XtReactor class to
+ * schedule three additional event sources:
+ * 1. Events from button "Stop Test" (registed with XtAddCallback)
+ * 2. Events from button "Press Me" (registed with XtAddCallback)
+ * 3. Events from X timer (registed with XtAppAddTimeOut)
+ * 4. Events from ACE timer (registed with ACE_XtReactor::schedule_timer)
+ * 5. Events from the TCP/IP channel using ACE_Acceptor
+ * No command line arguments are needed to run the test.
+ * The program needs Motif or lestiff to be compiled and run.
+ *
+ *
+ * @author Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch>
+ */
+//=============================================================================
+
#include "test_config.h"
-ACE_RCSID (tests,
- XtMotifReactor_Test,
- "$Id$")
#include "ace/XtReactor/XtReactor.h"
#include "ace/Event_Handler.h"
#include "ace/Acceptor.h"
diff --git a/ACE/tests/non_mpc_makefile/Bug_3708_Regression.pl b/ACE/tests/non_mpc_makefile/Bug_3708_Regression.pl
new file mode 100755
index 00000000000..afb17fa5aec
--- /dev/null
+++ b/ACE/tests/non_mpc_makefile/Bug_3708_Regression.pl
@@ -0,0 +1,21 @@
+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";
+
+# This test can't run on Win32
+exit if ($^O eq 'MSWin32');
+
+# This test can't be run if "make" is not in the path or if it resolves to
+# a non-GNU version of make.
+
+exit unless (`make --version` =~ /^GNU Make/);
+
+print "Running non_mpc_makefile test:\n";
+system "make -f CustomMakefile";
+print "ERROR: libfoo.a not made\n" unless -r 'libfoo.a';
+system "make -f CustomMakefile realclean";
diff --git a/ACE/tests/non_mpc_makefile/CustomMakefile b/ACE/tests/non_mpc_makefile/CustomMakefile
new file mode 100644
index 00000000000..0024b298e25
--- /dev/null
+++ b/ACE/tests/non_mpc_makefile/CustomMakefile
@@ -0,0 +1,9 @@
+static_libs_only=1
+LIB = libfoo.a
+LSRC = foo.cpp
+include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(ACE_ROOT)/include/makeinclude/macros.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
diff --git a/ACE/tests/non_mpc_makefile/foo.cpp b/ACE/tests/non_mpc_makefile/foo.cpp
new file mode 100644
index 00000000000..3f54e3d098d
--- /dev/null
+++ b/ACE/tests/non_mpc_makefile/foo.cpp
@@ -0,0 +1,6 @@
+// $Id$
+
+int foo()
+{
+ return 42;
+}
diff --git a/ACE/tests/randomize.h b/ACE/tests/randomize.h
index 5a6b5ff3fcb..a3eff0f722c 100644
--- a/ACE/tests/randomize.h
+++ b/ACE/tests/randomize.h
@@ -54,7 +54,7 @@ namespace
{
public:
- randomize_element (T * array, size_t size, ACE_RANDR_TYPE seed)
+ randomize_element (T * array, size_t size, unsigned int seed)
: array_ (array)
, coefficient_ (static_cast<double> (size) / (RAND_MAX + 1.0f))
, seed_ (seed)
@@ -66,7 +66,7 @@ namespace
{
size_t const index =
static_cast<size_t> (
- this->coefficient_ * ACE_OS::rand_r (this->seed_));
+ this->coefficient_ * ACE_OS::rand_r (&this->seed_));
// Swap rather than assign so that we don't lose the original
// value.
@@ -78,11 +78,11 @@ namespace
// The array.
T * const array_;
- // Factor out the constant coefficient.
+ // Factor out the constant coefficient.
double const coefficient_;
// Random number generator seed value.
- ACE_RANDR_TYPE seed_;
+ unsigned int seed_;
};
@@ -109,12 +109,12 @@ namespace
ACE_Time_Value times[NUM_TIMES] = { ... };
randomize (times,
NUM_TIMES,
- static_cast<ACE_RANDR_TYPE> (ACE_OS::time (0L)));
+ static_cast<unsigned int> (ACE_OS::time (0L)));
\endverbatim
*/
template<typename T>
void
- randomize (T * array, size_t size, ACE_RANDR_TYPE seed = 0)
+ randomize (T * array, size_t size, unsigned int seed = 0)
{
// Randomize all elements of the array.
std::for_each (array,
diff --git a/ACE/tests/run_test.lst b/ACE/tests/run_test.lst
index 5e729f7ac02..7278cde02c4 100644
--- a/ACE/tests/run_test.lst
+++ b/ACE/tests/run_test.lst
@@ -1,3 +1,4 @@
+
# $Id$
#
# This is the list of tests that need to be run by run_test.pl.
@@ -32,23 +33,38 @@ Buffer_Stream_Test
Bug_1576_Regression_Test
Bug_1890_Regression_Test
Bug_2368_Regression_Test: ALL !DISABLED
+Bug_2434_Regression_Test
Bug_2497_Regression_Test
Bug_2540_Regression_Test
-#Bug_2609_Regression_Test: !ST !ACE_FOR_TAO
-#Bug_2610_Regression_Test: !ST !ACE_FOR_TAO
+Bug_2609_Regression_Test: !ST !ACE_FOR_TAO
+Bug_2610_Regression_Test: !ST !ACE_FOR_TAO !FIXED_BUGS_ONLY
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
Bug_2980_Regression_Test: !STATIC !Win32 !VxWorks !WCHAR
Bug_3102_Regression_Test
Bug_3319_Regression_Test
+Bug_3334_Regression_Test: !STATIC
Bug_3432_Regression_Test
Bug_3500_Regression_Test
+Bug_3505_Regression_Test
Bug_3532_Regression_Test
+Bug_3539_Regression_Test
Bug_3541_Regression_Test
-Bug_3505_Regression_Test
+Bug_3673_Regression_Test
+Bug_3709_Regression_Test: !LabVIEW_RT
+Bug_3710_Regression_Test
+Bug_3729_Regression_Test:
+Bug_3744_Regression_Test: !FIXED_BUGS_ONLY
+Bug_3758_Regression_Test: !FIXED_BUGS_ONLY
+Bug_3878_Regression_Test
+Bug_3911_Regression_Test: !FIXED_BUGS_ONLY !ACE_FOR_TAO
+Bug_3912_Regression_Test: !STATIC
+Bug_3943_Regression_Test: !ACE_FOR_TAO
+Bug_3974_Regression_Test
CDR_Array_Test: !ACE_FOR_TAO
CDR_File_Test: !ACE_FOR_TAO
CDR_Test
@@ -59,16 +75,28 @@ Cached_Conn_Test: !ACE_FOR_TAO !LabVIEW_RT
Capabilities_Test: !ACE_FOR_TAO
Codecs_Test: !NO_CODECS !ACE_FOR_TAO
Collection_Test
+Compiler_Features_01_Test
+Compiler_Features_02_Test
+Compiler_Features_03_Test
+Compiler_Features_04_Test
+Compiler_Features_05_Test
+Compiler_Features_06_Test
+Compiler_Features_07_Test
+Compiler_Features_09_Test
+Compiler_Features_11_Test
+Compiler_Features_12_Test
+Compiler_Features_13_Test
+Compiler_Features_14_Test
Config_Test: !LynxOS !VxWorks !ACE_FOR_TAO
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
-Enum_Interfaces_Test: !LynxOS !NO_NETWORK
+Enum_Interfaces_Test: !NO_NETWORK
Env_Value_Test: !WinCE !LabVIEW_RT
FIFO_Test: !ACE_FOR_TAO
Framework_Component_Test: !STATIC !nsk
@@ -80,6 +108,7 @@ Hash_Map_Bucket_Iterator_Test
Hash_Map_Manager_Test
Hash_Multi_Map_Manager_Test
High_Res_Timer_Test: !ACE_FOR_TAO
+NDDS_Timer_Test: NDDS
INET_Addr_Test: !NO_NETWORK
IOStream_Test
Integer_Truncate_Test
@@ -90,8 +119,9 @@ Log_Msg_Backend_Test: !ACE_FOR_TAO
Log_Thread_Inheritance_Test: !ST
Logging_Strategy_Test: !LynxOS !STATIC !ST
Manual_Event_Test
-MEM_Stream_Test: !VxWorks !nsk !ACE_FOR_TAO !PHARLAP !QNX
+MEM_Stream_Test: !VxWorks !nsk !ACE_FOR_TAO !PHARLAP !QNX !LynxOS
MM_Shared_Memory_Test: !Unicos !VxWorks !nsk !ACE_FOR_TAO
+MT_NonBlocking_Connect_Test: !ST
MT_Reactor_Timer_Test
MT_Reactor_Upcall_Test: !nsk
MT_Reference_Counted_Event_Handler_Test: !OpenVMS_IA64Crash
@@ -110,7 +140,7 @@ Message_Queue_Test_Ex: !ACE_FOR_TAO
Multicast_Test: !ST !NO_MCAST !nsk !LynxOS !LabVIEW_RT
Multihomed_INET_Addr_Test: !ACE_FOR_TAO
Naming_Test: !NO_OTHER !LynxOS !Unicos !VxWorks !nsk !ACE_FOR_TAO !PHARLAP
-Network_Adapters_Test: !LynxOS !ACE_FOR_TAO
+Network_Adapters_Test: !ACE_FOR_TAO
New_Fail_Test: ALL !DISABLED
NonBlocking_Conn_Test
Notification_Queue_Unit_Test
@@ -120,7 +150,7 @@ Object_Manager_Test
Object_Manager_Flipping_Test
Obstack_Test
OrdMultiSet_Test
-Pipe_Test: !PHARLAP
+Pipe_Test: !PHARLAP !VxWorks
Priority_Buffer_Test
Priority_Reactor_Test: !ACE_FOR_TAO
Priority_Task_Test: !Unicos
@@ -129,7 +159,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 +167,15 @@ 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_Fairness_Test: !FIXED_BUGS_ONLY
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,11 +183,11 @@ 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
+RW_Process_Mutex_Test: !VxWorks !ACE_FOR_TAO !PHARLAP !Cygwin
Sendfile_Test: !QNX !NO_NETWORK !VxWorks !LabVIEW_RT
-Signal_Test: !VxWorks63 !VxWorks64 !VxWorks65 !LynxOS
+Signal_Test: !VxWorks63 !VxWorks64 !VxWorks65 !Cygwin
SOCK_Connector_Test: !NO_NETWORK
SOCK_Netlink_Test: !ACE_FOR_TAO
SOCK_Send_Recv_Test: !NO_NETWORK
@@ -167,15 +198,18 @@ Stack_Trace_Test:
SV_Shared_Memory_Test: !MSVC !Unicos !VxWorks !RH_7.1 !nsk !ACE_FOR_TAO
Semaphore_Test: !ACE_FOR_TAO
Service_Config_Test: !STATIC
+Missing_Svc_Conf_Test: !STATIC
+Service_Config_Stream_Test: !STATIC !FIXED_BUGS_ONLY
Sigset_Ops_Test
Simple_Message_Block_Test
Singleton_Test
Svc_Handler_Test: !ACE_FOR_TAO
-TP_Reactor_Test: !LynxOS !ACE_FOR_TAO
+TP_Reactor_Test: !ACE_FOR_TAO
TSS_Test
TSS_Static_Test
Task_Test
Task_Ex_Test
+Thread_Attrs_Test
Thread_Manager_Test: !Unicos
Thread_Mutex_Test
Thread_Pool_Reactor_Resume_Test: !NO_OTHER !ST
@@ -202,7 +236,7 @@ Multihomed_INET_Addr_Test_IPV6: !nsk !ACE_FOR_TAO
Proactor_Test_IPV6: !nsk !ACE_FOR_TAO !BAD_AIO
SOCK_Send_Recv_Test_IPV6
SOCK_Dgram_Test: !NO_NETWORK
-SOCK_Dgram_Bcast_Test: !LynxOS !ACE_FOR_TAO
+SOCK_Dgram_Bcast_Test: !ACE_FOR_TAO
SOCK_SEQPACK_SCTP_Test: !MSVC !nsk !ACE_FOR_TAO
SOCK_Test_IPv6: !nsk
Process_Strategy_Test: !VxWorks !LynxOS !ACE_FOR_TAO !PHARLAP
diff --git a/ACE/tests/run_test.pl b/ACE/tests/run_test.pl
index 2e3b8769392..0205ec3c93c 100755
--- a/ACE/tests/run_test.pl
+++ b/ACE/tests/run_test.pl
@@ -26,7 +26,12 @@ use File::Basename;
$config_list = new PerlACE::ConfigList;
-PerlACE::add_lib_path("$ENV{ACE_ROOT}/tests");
+if (grep(($_ eq 'ARCH'), @PerlACE::ConfigList::Configs)) {
+ my $subdir = $PerlACE::Process::ExeSubDir;
+ $subdir =~ s/\/$//;
+ $ENV{'ACE_EXE_SUB_DIR'} = $subdir;
+}
+
################################################################################
@@ -136,7 +141,7 @@ sub run_program ($@)
}
my $start_time = time();
- $status = $P->SpawnWaitKill (400 + $target->ProcessStartWaitInterval());
+ $status = $P->SpawnWaitKill (300 + $target->ProcessStartWaitInterval());
my $time = time() - $start_time;
### Check for problems
@@ -155,7 +160,7 @@ sub run_program ($@)
check_log ($program);
if ($config_list->check_config ('Codeguard')) {
- check_codeguard_log ($program);
+ check_codeguard_log ($program);
}
chdir $start_dir;
}
@@ -332,9 +337,9 @@ sub check_log ($)
}
print STDERR "======= End Sublog File \n";
}
- }
+ }
}
- }
+ }
}
}
@@ -385,7 +390,7 @@ sub delete_temp_files ()
################################################################################
-if (!getopts ('dhtvo:') || $opt_h) {
+if (!getopts ('dhtvo:l:') || $opt_h) {
print "run_test.pl [-h] [-v] [-o <output file>] [-t file1 file2 ...]\n";
print "\n";
print "Runs the tests listed in run_test.lst\n";
@@ -394,6 +399,7 @@ if (!getopts ('dhtvo:') || $opt_h) {
print " -d Debug mode (do not run tests)\n";
print " -h Display this help\n";
print " -t Runs all the tests passed via the cmd line\n";
+ print " -l list Load the list and run only those tests\n";
print "\n";
print "Pass in configs using \"-Config XXXXX\"\n";
print "\n";
@@ -418,6 +424,10 @@ check_for_more_configs ();
if (defined $opt_t) {
@tests = @ARGV;
}
+elsif (defined $opt_l) {
+ $config_list->load ("$opt_l");
+ @tests = $config_list->valid_entries ();
+}
else {
$config_list->load ("run_test.lst");
@tests = $config_list->valid_entries ();
@@ -433,6 +443,8 @@ my($oh) = \*STDOUT;
my $target = PerlACE::TestTarget::create_target (1);
+$target->AddLibPath("$ENV{ACE_ROOT}/tests");
+
# Put needed files in place for targets that require them.
#
# Service_Config_Test needs service config file.
@@ -440,18 +452,28 @@ my $svc_conf_file = $target->LocalFile ("Service_Config_Test.conf");
if ($target->PutFile ("Service_Config_Test.conf", $svc_conf_file) == -1) {
print STDERR "WARNING: Cannot send $svc_conf_file to target\n";
}
+# Config_Test needs config ini file.
+my $conf_ini_file = $target->LocalFile ("Config_Test_Import_1.ini");
+if ($target->PutFile ("Config_Test_Import_1.ini", $conf_ini_file) == -1) {
+ print STDERR "WARNING: Cannot send $conf_ini_file to target\n";
+}
+# Service_Config_Stream_Test needs service config file.
+$svc_conf_file = $target->LocalFile ("Service_Config_Stream_Test.conf");
+if ($target->PutFile ("Service_Config_Stream_Test.conf", $svc_conf_file) == -1) {
+ print STDERR "WARNING: Cannot send $svc_conf_file to target\n";
+}
foreach $test (@tests) {
- if (defined $opt_d) {
- print "Would run test $test now\n";
- }
- elsif ($config_list->check_config ('Purify')) {
- purify_program ($test);
- }
- else {
- run_program ($target, $test);
- }
- $target->GetStderrLog();
+ if (defined $opt_d) {
+ print "Would run test $test now\n";
+ }
+ elsif ($config_list->check_config ('Purify')) {
+ purify_program ($test);
+ }
+ else {
+ run_program ($target, $test);
+ }
+ $target->GetStderrLog();
}
check_resources ($oh) if (!defined $opt_d);
diff --git a/ACE/tests/run_tests_remote.sh b/ACE/tests/run_tests_remote.sh
index 149a9174d92..39fed72b786 100755
--- a/ACE/tests/run_tests_remote.sh
+++ b/ACE/tests/run_tests_remote.sh
@@ -2,7 +2,7 @@
# $Id$
#
# This is the UNIX version of the one-button ACE tests.
-# Contributed originally by Michael Rueger <m_rueger@SYSCOMP.DE> and
+# Contributed originally by Michael Rueger <m_rueger@SYSCOMP.DE> and
# modified substantially by the DOC group.
#
# It also supports remote invocation on a CHORUS/ClassiX/MVME target.
@@ -213,7 +213,7 @@ for i in `cat run_tests_remote.lst | tr "\012" "$IFS"`; do
test=$i;
;;
esac
-
+
# echo =****= $precond ===== $test;
if test -z "$precond"; then
diff --git a/ACE/tests/test_config.h b/ACE/tests/test_config.h
index 71923ea293c..7bba83490fe 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")
@@ -152,7 +149,7 @@ size_t const ACE_MAX_THREADS = 4;
#define OFSTREAM ofstream
#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
-#include "tests/Test_Output_Export.h"
+#include "Test_Output_Export.h"
class Test_Output_Export ACE_Test_Output
{
diff --git a/ACE/tests/tests.mpc b/ACE/tests/tests.mpc
index 7f1f4b5347f..0248ade6f7a 100644
--- a/ACE/tests/tests.mpc
+++ b/ACE/tests/tests.mpc
@@ -4,7 +4,7 @@
project(Test_Output) : acelib, script {
libout = .
sharedname = Test_Output
- dynamicflags = TEST_OUTPUT_BUILD_DLL
+ dynamicflags += TEST_OUTPUT_BUILD_DLL
Source_Files {
Test_Output.cpp
}
@@ -29,7 +29,7 @@ TESTS_ENVIRONMENT = $(srcdir)/run_test.pl -t
project(Framework Component DLL) : acelib {
libout = .
sharedname = Framework_Component_DLL
- dynamicflags = FRAMEWORK_COMPONENT_DLL_BUILD_DLL
+ dynamicflags += FRAMEWORK_COMPONENT_DLL_BUILD_DLL
Source_Files {
Framework_Component_DLL.cpp
@@ -46,7 +46,7 @@ project(Framework Component DLL) : acelib {
project(DLL Test Parent Lib) : acelib {
libout = .
sharedname = DLL_Test_Parent
- dynamicflags = DLL_TEST_PARENT_BUILD_DLL
+ dynamicflags += DLL_TEST_PARENT_BUILD_DLL
Source_Files {
DLL_Test_Parent.cpp
@@ -62,7 +62,7 @@ project(DLL Test Parent Lib) : acelib {
project(DLL Test Lib) : acelib, dll_test_parent_lib {
libout = .
sharedname = DLL_Test_Lib
- dynamicflags = ACE_SVC_BUILD_DLL
+ dynamicflags += ACE_SVC_BUILD_DLL
Source_Files {
DLL_Test_Impl.cpp
@@ -78,7 +78,7 @@ project(Based Pointer Test Lib) : acelib {
libout = .
avoids += ace_for_tao
sharedname = Based_Pointer_Test_Lib
- dynamicflags = ACE_SVC_BUILD_DLL
+ dynamicflags += ACE_SVC_BUILD_DLL
Source_Files {
Based_Pointer_Test_Lib.cpp
@@ -93,7 +93,7 @@ project(Based Pointer Test Lib) : acelib {
project(Service Config DLL) : acelib {
libout = .
sharedname = Service_Config_DLL
- dynamicflags = SERVICE_CONFIG_DLL_BUILD_DLL
+ dynamicflags += SERVICE_CONFIG_DLL_BUILD_DLL
Source_Files {
Service_Config_DLL.cpp
@@ -106,14 +106,32 @@ project(Service Config DLL) : acelib {
}
}
-project(ACE Init Test) : acetest {
+project(ACE Init Test) : acemfcexe {
+ requires += mfc
+ macros += _AFXDLL
+
+ after += Test_Output
+ libs += Test_Output
+
exename = ACE_Init_Test
Source_Files {
ACE_Init_Test.cpp
+ ACE_Init_TestDlg.cpp
+ }
+ Header_Files {
+ ACE_Init_Test.h
+ ACE_Init_Test_Resource.h
+ ACE_Init_TestDlg.h
+ ACE_Init_TestStdAfx.h
}
Resource_Files {
+ ACE_Init_Test.ico
ACE_Init_Test.rc
}
+ Build_Files {
+ tests.mpc
+ tests.mwc
+ }
}
project(ACE Test) : acetest {
@@ -229,6 +247,13 @@ project(Bug_2368_Regression_Test) : acetest {
}
}
+project(Bug_2434_Regression_Test) : acetest {
+ exename = Bug_2434_Regression_Test
+ Source_Files {
+ Bug_2434_Regression_Test.cpp
+ }
+}
+
project(Bug_2497_Regression_Test) : acetest {
exename = Bug_2497_Regression_Test
Source_Files {
@@ -250,6 +275,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 {
@@ -297,11 +329,13 @@ project (Bug_2980_Regression_Test) {
project (Bug_2980_Regression_Dll): acelib {
libout = .
sharedname = Bug_2980_Regression
- dynamicflags = TEST_OUTPUT_BUILD_DLL
+ dynamicflags += TEST_OUTPUT_BUILD_DLL
Source_Files {
Test_Output.cpp
Bug_2980_Regression_Dll.cpp
}
+ Resource_Files {
+ }
}
project(Bug_3102_Regression_Test) : acetest {
@@ -346,6 +380,13 @@ project(Bug_3532_Regression_Test) : acetest {
}
}
+project(Bug_3539_Regression_Test) : acetest {
+ exename = Bug_3539_Regression_Test
+ Source_Files {
+ Bug_3539_Regression_Test.cpp
+ }
+}
+
project(Bug_3541_Regression_Test) : acetest {
exename = Bug_3541_Regression_Test
Source_Files {
@@ -353,6 +394,78 @@ 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(Bug_3709_Regression_Test) : acetest {
+ exename = Bug_3709_Regression_Test
+ Source_Files {
+ Bug_3709_Regression_Test.cpp
+ }
+}
+
+project(Bug_3710_Regression_Test) : acetest {
+ exename = Bug_3710_Regression_Test
+ Source_Files {
+ Bug_3710_Regression_Test.cpp
+ }
+}
+
+project(Bug_3729_Regression_Test) : acetest {
+ exename = Bug_3729_Regression_Test
+ Source_Files {
+ Bug_3729_Regression_Test.cpp
+ }
+}
+
+project(Bug_3744_Regression_Test) : acetest {
+ exename = Bug_3744_Regression_Test
+ Source_Files {
+ Bug_3744_Regression_Test.cpp
+ }
+}
+
+project(Bug_3758_Regression_Test) : acetest {
+ exename = Bug_3758_Regression_Test
+ Source_Files {
+ Bug_3758_Regression_Test.cpp
+ }
+}
+
+project(Bug_3878_Regression_Test) : acetest {
+ exename = Bug_3878_Regression_Test
+ Source_Files {
+ Bug_3878_Regression_Test.cpp
+ }
+}
+
+project(Bug_3911_Regression_Test) : acetest {
+ avoids += ace_for_tao
+ exename = Bug_3911_Regression_Test
+ Source_Files {
+ Bug_3911_Regression_Test.cpp
+ }
+}
+
+project(Bug_3943_Regression_Test) : acetest {
+ avoids += ace_for_tao
+ exename = Bug_3943_Regression_Test
+ Source_Files {
+ Bug_3943_Regression_Test.cpp
+ }
+}
+
+project(Bug_3974_Regression_Test) : acetest {
+ exename = Bug_3974_Regression_Test
+ Source_Files {
+ Bug_3974_Regression_Test.cpp
+ }
+}
+
project(Cache Map Manager Test) : acetest {
exename = Cache_Map_Manager_Test
Source_Files {
@@ -422,6 +535,106 @@ project(Collection Test) : acetest {
}
}
+project(Compiler_Features_01_Test) : acetest {
+ exename = Compiler_Features_01_Test
+ Source_Files {
+ Compiler_Features_01_Test.cpp
+ }
+}
+
+project(Compiler_Features_02_Test) : acetest {
+ exename = Compiler_Features_02_Test
+ Source_Files {
+ Compiler_Features_02_Test.cpp
+ }
+}
+
+project(Compiler_Features_03_Test) : acetest {
+ exename = Compiler_Features_03_Test
+ Source_Files {
+ Compiler_Features_03_Test.cpp
+ }
+}
+
+project(Compiler_Features_04_Test) : acetest {
+ exename = Compiler_Features_04_Test
+ Source_Files {
+ Compiler_Features_04_Test.cpp
+ }
+}
+
+project(Compiler_Features_05_Test) : acetest {
+ exename = Compiler_Features_05_Test
+ Source_Files {
+ Compiler_Features_05_Test.cpp
+ }
+}
+
+project(Compiler_Features_06_Test) : acetest {
+ exename = Compiler_Features_06_Test
+ Source_Files {
+ Compiler_Features_06_Test.cpp
+ }
+}
+
+project(Compiler_Features_07_Test) : acetest {
+ exename = Compiler_Features_07_Test
+ Source_Files {
+ Compiler_Features_07_Test.cpp
+ }
+}
+
+// This compiler feature is not supported on all compilers
+project(Compiler_Features_08_Test) : acetest {
+ requires += dummy_label
+ exename = Compiler_Features_08_Test
+ Source_Files {
+ Compiler_Features_08_Test.cpp
+ }
+}
+
+project(Compiler_Features_09_Test) : acetest {
+ exename = Compiler_Features_09_Test
+ Source_Files {
+ Compiler_Features_09_Test.cpp
+ }
+}
+
+project(Compiler_Features_10_Test) : acetest {
+ exename = Compiler_Features_10_Test
+ Source_Files {
+ Compiler_Features_10_Test.cpp
+ }
+}
+
+project(Compiler_Features_11_Test) : acetest {
+ exename = Compiler_Features_11_Test
+ Source_Files {
+ Compiler_Features_11_Test.cpp
+ }
+}
+
+project(Compiler_Features_12_Test) : acetest {
+ exename = Compiler_Features_12_Test
+ Source_Files {
+ Compiler_Features_12_Test.cpp
+ }
+}
+
+project(Compiler_Features_13_Test) : acetest {
+ exename = Compiler_Features_13_Test
+ Source_Files {
+ Compiler_Features_13_Test.cpp
+ }
+}
+
+project(Compiler_Features_14_Test) : acetest {
+ exename = Compiler_Features_14_Test
+ Source_Files {
+ Compiler_Features_14_Test.cpp
+ }
+}
+
project(Config Test) : acetest {
avoids += ace_for_tao
exename = Config_Test
@@ -542,6 +755,13 @@ project(High Res Timer Test) : acetest {
}
}
+project(NDDS Timer Test) : acetest, nddsexe {
+ exename = NDDS_Timer_Test
+ Source_Files {
+ NDDS_Timer_Test.cpp
+ }
+}
+
project(Hash Map Manager Test) : acetest {
exename = Hash_Map_Manager_Test
Source_Files {
@@ -721,6 +941,13 @@ project(Message Queue Test) : acetest {
Source_Files {
Message_Queue_Test.cpp
}
+ verbatim(gnuace,local) {
+ # Needs a larger heap on AIX to avoid overwriting stacks in the counting
+ # part of the test.
+ ifdef AIX_VERS
+ LDFLAGS += -bmaxdata:0x20000000
+ endif
+ }
}
project(Message Queue Test Ex) : acetest {
@@ -990,6 +1217,13 @@ project(Reactor_Dispatch_Order_Test_Dev_Poll) : acetest {
}
}
+project(Reactor Fairness Test) : acetest {
+ exename = Reactor_Fairness_Test
+ Source_Files {
+ Reactor_Fairness_Test.cpp
+ }
+}
+
project(Reactor Performance Test) : acetest {
avoids += ace_for_tao
exename = Reactor_Performance_Test
@@ -1209,6 +1443,13 @@ project(Thread Manager Test) : acetest {
}
}
+project(Thread Attrs Test) : acetest {
+ exename = Thread_Attrs_Test
+ Source_Files {
+ Thread_Attrs_Test.cpp
+ }
+}
+
project(Thread Mutex Test) : acetest {
exename = Thread_Mutex_Test
Source_Files {
@@ -1223,6 +1464,13 @@ project(Thread Pool Test) : acetest {
}
}
+project(Thread_Timer_Queue_Adapter_Test) : acetest {
+ exename = Thread_Timer_Queue_Adapter_Test
+ Source_Files {
+ Thread_Timer_Queue_Adapter_Test.cpp
+ }
+}
+
project(Thread Creation Threshold Test) : acetest {
exename = Thread_Creation_Threshold_Test
Source_Files {
@@ -1453,6 +1701,15 @@ project(NonBlocking Conn Test) : acetest {
}
}
+project(MT NonBlocking Connect Test) : acetest {
+ exename = MT_NonBlocking_Connect_Test
+ Source_Files {
+ MT_NonBlocking_Connect_Test.cpp
+ }
+ Header_Files {
+ }
+}
+
project(Reference Counted Event Handler Test) : acetest {
exename = Reference_Counted_Event_Handler_Test
Source_Files {
@@ -1599,7 +1856,7 @@ project(SOCK_SEQPACK_SCTP_Test) : acetest {
}
}
-project(QtReactor Test) : acetest, ace_qtreactor {
+project(QtReactor Test) : acetest, ace_qt4reactor {
exename = QtReactor_Test
MOC_Files {
QtReactor_Test.h
@@ -1673,3 +1930,50 @@ project(Wild_Match_Test) : acetest {
Wild_Match_Test.cpp
}
}
+
+project(Service Config Stream DLL) : acelib {
+ libout = .
+ sharedname = Service_Config_Stream_DLL
+ dynamicflags += SERVICE_CONFIG_STREAM_DLL_BUILD_DLL
+
+ Source_Files {
+ Service_Config_Stream_DLL.cpp
+ }
+ Header_Files {
+ Service_Config_Stream_DLL.h
+ Service_Config_Stream_DLL_Export.h
+ }
+ Resource_Files {
+ }
+}
+
+project(Service Config Stream Test) : acetest {
+ after += Service_Config_Stream_DLL
+ exename = Service_Config_Stream_Test
+ Source_Files {
+ Service_Config_Stream_Test.cpp
+ }
+}
+
+project(Bug_3334_Regression_Test) : acetest {
+ after += Service_Config_Stream_DLL
+ exename = Bug_3334_Regression_Test
+ Source_Files {
+ Bug_3334_Regression_Test.cpp
+ }
+}
+
+project(Bug_3912_Regression_Test) : acetest {
+ after += Service_Config_Stream_DLL
+ exename = Bug_3912_Regression_Test
+ Source_Files {
+ Bug_3912_Regression_Test.cpp
+ }
+}
+
+project(Missing_Svc_Conf_Test) : acetest {
+ exename = Missing_Svc_Conf_Test
+ Source_Files {
+ Missing_Svc_Conf_Test.cpp
+ }
+}
diff --git a/ACE/websvcs/lib/URL_Addr.cpp b/ACE/websvcs/lib/URL_Addr.cpp
index 16de20b8ffb..47e210c7b19 100644
--- a/ACE/websvcs/lib/URL_Addr.cpp
+++ b/ACE/websvcs/lib/URL_Addr.cpp
@@ -10,7 +10,7 @@
#include "ace/OS_NS_strings.h"
#include "ace/OS_NS_stdio.h"
-ACE_RCSID(ace, URL_Addr, "$Id$")
+
static ACE_TCHAR http[] = ACE_TEXT ("http:");
static size_t http_size = sizeof(http)/sizeof(http[0]) - 1;
@@ -335,7 +335,7 @@ path_copy (const ACE_TCHAR *begin,
for (; *src != 0; ++src)
{
ACE_TCHAR c = *src;
-
+
switch (c)
{
case '/':
@@ -345,7 +345,7 @@ path_copy (const ACE_TCHAR *begin,
{
// No action.
}
-
+
src += 3;
}
else if (src[1] == '.' && src[2] == '/')
@@ -405,12 +405,12 @@ ACE_HTTP_Addr::create_relative_address (const ACE_TCHAR *url) const
{
// Remove any # from the path
ACE_TCHAR *p = target;
-
+
while (p != buf && *(--p) != '#')
{
// No action.
}
-
+
if (p != buf)
target = p;
}
@@ -421,7 +421,7 @@ ACE_HTTP_Addr::create_relative_address (const ACE_TCHAR *url) const
{
// No action.
}
-
+
// Go back if we begin with '../'
while ((url[0] == '.' && url[1] == '.' && url[2] == '/')
|| (url[0] == '.' && url[1] == '/'))
@@ -433,7 +433,7 @@ ACE_HTTP_Addr::create_relative_address (const ACE_TCHAR *url) const
{
// No action.
}
-
+
url += 3;
}
else
@@ -456,7 +456,7 @@ ACE_HTTP_Addr::create_relative_address (const ACE_TCHAR *url) const
0);
delete[] buf;
}
-
+
return addr;
}
diff --git a/ACE/websvcs/lib/URL_Addr.h b/ACE/websvcs/lib/URL_Addr.h
index 07e9b34c167..e471af8efb1 100644
--- a/ACE/websvcs/lib/URL_Addr.h
+++ b/ACE/websvcs/lib/URL_Addr.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// URL_Addr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file URL_Addr.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_URL_ADDR_H
#define ACE_URL_ADDR_H
@@ -28,187 +25,200 @@
class ACE_URL_Addr_Visitor;
+/**
+ * @class ACE_URL_Addr
+ *
+ * @brief Defines the interface for an URL
+ *
+ * All URLs derive from this class
+ */
class ACE_WEBSVCS_Export ACE_URL_Addr : public ACE_Addr
{
- // = TITLE
- // Defines the interface for an URL
- //
- // = DESCRIPTION
- // All URLs derive from this class
- //
public:
+ /// Constructor.
ACE_URL_Addr (void);
- // Constructor.
+ /// The copy constructor.
ACE_URL_Addr (const ACE_URL_Addr& address);
- // The copy constructor.
+ /// The assignment operator
ACE_URL_Addr& operator= (const ACE_URL_Addr& address);
- // The assignment operator
+ /// destructor
virtual ~ACE_URL_Addr (void);
- // destructor
+ /// Get the original URL
const ACE_TCHAR *get_url (void) const;
- // Get the original URL
+ /// Essentially the copy contructor.
int set (const ACE_URL_Addr& address);
- // Essentially the copy contructor.
+ /**
+ * Initializes from the scheme specific address, for instance: if
+ * the address is an http URL it will initialize the address from
+ * an string such as "www.cs.wustl.edu/~schmidt"
+ */
virtual int string_to_addr (const ACE_TCHAR *address);
- // Initializes from the scheme specific address, for instance: if
- // the address is an http URL it will initialize the address from
- // an string such as "www.cs.wustl.edu/~schmidt"
+ /**
+ * Write the address in the scheme specific representation.
+ * <flags> provides control over scheme specific features (such as
+ * using numeric vs. fully qualified host names).
+ */
virtual int addr_to_string (ACE_TCHAR *s,
size_t size,
int flags = 0) const;
- // Write the address in the scheme specific representation.
- // <flags> provides control over scheme specific features (such as
- // using numeric vs. fully qualified host names).
+ /// The accept method in the Visitor Pattern. Should return 0 on
+ /// success and not 0 on failure.
virtual int accept (ACE_URL_Addr_Visitor* visitor);
- // The accept method in the Visitor Pattern. Should return 0 on
- // success and not 0 on failure.
+ /// Create an address from a complete URL, such as "http://www/foo"
+ /// or "ftp://ftp.here/get_this".
static ACE_URL_Addr* create_address (const ACE_TCHAR *url);
- // Create an address from a complete URL, such as "http://www/foo"
- // or "ftp://ftp.here/get_this".
-
+
+ /// Returns 1 if the URL scheme is recognized, 0 otherwise.
static int known_scheme (const ACE_TCHAR *url);
- // Returns 1 if the URL scheme is recognized, 0 otherwise.
+ /// Hash function
u_long hash (void) const;
- // Hash function
protected:
+ /// Allows the derived classes to store the compact representation of
+ /// the URL
void set_url (ACE_TCHAR *url);
- // Allows the derived classes to store the compact representation of
- // the URL
private:
ACE_TCHAR *url_;
};
+/**
+ * @class ACE_Mailto_Addr;
+ @@ TODO add more URL schemes as needed.
+ * class ACE_File_Addr;
+ * class ACE_AFS_Addr;
+ * class ACE_News_Addr;
+ * class ACE_NNTP_Addr;
+ * class ACE_CID_Addr;
+ * class ACE_MID_Addr;
+ * class ACE_WAIS_Addr;
+ * class ACE_Prospero_Addr;
+ * class ACE_Telnet_Addr;
+ * class ACE_Rlogin_Addr;
+ * class ACE_TN3270_Addr;
+ * class ACE_Gopher_Addr;
+ */
class ACE_HTTP_Addr;
class ACE_FTP_Addr;
class ACE_Mailto_Addr;
-// @@ TODO add more URL schemes as needed.
-// class ACE_File_Addr;
-// class ACE_AFS_Addr;
-// class ACE_News_Addr;
-// class ACE_NNTP_Addr;
-// class ACE_CID_Addr;
-// class ACE_MID_Addr;
-// class ACE_WAIS_Addr;
-// class ACE_Prospero_Addr;
-// class ACE_Telnet_Addr;
-// class ACE_Rlogin_Addr;
-// class ACE_TN3270_Addr;
-// class ACE_Gopher_Addr;
+/**
+ * @class ACE_URL_Addr_Visitor
+ *
+ * @brief Implements a Visitor object for the ACE_URL hierarchy.
+ *
+ * The manipulation of URL objects is much simpler if we use the
+ * Visitor pattern to solve the double dispatch problem between
+ * the "what to do on a URL" vs. "what to do on each kind of
+ * URL".
+ */
class ACE_WEBSVCS_Export ACE_URL_Addr_Visitor
{
- // = TITLE
- // Implements a Visitor object for the ACE_URL hierarchy.
- //
- // = DESCRIPTION
- // The manipulation of URL objects is much simpler if we use the
- // Visitor pattern to solve the double dispatch problem between
- // the "what to do on a URL" vs. "what to do on each kind of
- // URL".
- //
public:
+ /// Destructor
virtual ~ACE_URL_Addr_Visitor (void);
- // Destructor
+ /**
+ * The visit methods for all the hierarchy.
+ * The default implementation is a nop (instead of a pure virtual
+ * function) to facilitate the addition of new members in the
+ * hierarchy.
+ * virtual int visit (ACE_AFS_Addr*);
+ * virtual int visit (ACE_News_Addr*);
+ * virtual int visit (ACE_NNTP_Addr*);
+ */
virtual int visit (ACE_URL_Addr*);
virtual int visit (ACE_HTTP_Addr*);
virtual int visit (ACE_FTP_Addr*);
virtual int visit (ACE_Mailto_Addr*);
- // The visit methods for all the hierarchy.
- // The default implementation is a nop (instead of a pure virtual
- // function) to facilitate the addition of new members in the
- // hierarchy.
- // virtual int visit (ACE_AFS_Addr*);
- // virtual int visit (ACE_News_Addr*);
- // virtual int visit (ACE_NNTP_Addr*);
};
// ****************************************************************
+/**
+ * @class ACE_HTTP_Addr
+ *
+ * @brief Defines the HTTP scheme addresses
+ *
+ * Encapsulates an HTTP URL; the most general form is:
+ * http://host:port/path?query
+ * but these are also accepted:
+ * http://host/path?query
+ * http://host:port/path
+ * http://host/path
+ */
class ACE_WEBSVCS_Export ACE_HTTP_Addr : public ACE_URL_Addr
{
- // = TITLE
- // Defines the HTTP scheme addresses
- //
- // = DESCRIPTION
- // Encapsulates an HTTP URL; the most general form is:
- //
- // http://host:port/path?query
- //
- // but these are also accepted:
- //
- // http://host/path?query
- // http://host:port/path
- // http://host/path
- //
public:
+ /// Constructor
ACE_HTTP_Addr (void);
- // Constructor
+ /// Construct an HTTP URL from the host, path, query and port.
ACE_HTTP_Addr (const ACE_TCHAR *host_name,
const ACE_TCHAR *path,
const ACE_TCHAR *query = 0,
u_short port = ACE_DEFAULT_HTTP_PORT);
- // Construct an HTTP URL from the host, path, query and port.
+ /// Essentially the constructor above.
int set (const ACE_TCHAR *host_name,
const ACE_TCHAR *path,
const ACE_TCHAR *query = 0,
u_short port = ACE_DEFAULT_HTTP_PORT);
- // Essentially the constructor above.
+ /// Copy constructor.
ACE_HTTP_Addr (const ACE_HTTP_Addr &addr);
- // Copy constructor.
+ /// Assignment operator.
ACE_HTTP_Addr& operator= (const ACE_HTTP_Addr &addr);
- // Assignment operator.
-
+
+ /// Essentially the copy constructor.
int set (const ACE_HTTP_Addr &addr);
- // Essentially the copy constructor.
+ /// Destructor
virtual ~ACE_HTTP_Addr (void);
- // Destructor
+ /**
+ * Build the INET_Address implicit in the URL, notice that we
+ * maintain the hostname in its string representation, because the
+ * URL can be can be refering to an hostname that cannot be
+ * validated at this point.
+ */
ACE_INET_Addr get_inet_address (void) const;
- // Build the INET_Address implicit in the URL, notice that we
- // maintain the hostname in its string representation, because the
- // URL can be can be refering to an hostname that cannot be
- // validated at this point.
+ /// Get the name of the host.
const ACE_TCHAR *get_hostname (void) const;
- // Get the name of the host.
+ /// Get the port number.
u_short get_port_number (void) const;
- // Get the port number.
+ /// Get the path component in the URL
const ACE_TCHAR *get_path (void) const;
- // Get the path component in the URL
+ /// Get the query component in the URL
const ACE_TCHAR *get_query (void) const;
- // Get the query component in the URL
+ /**
+ * Create an address from a (possibly) relative URL, such as
+ * "../foo.html", or "/icons/bar.gif"
+ * If the URL is absolute (like "http://www/foo" or "ftp:host/bar")
+ * it simply returns the correct ACE_URL_Addr object; but if the URL
+ * is not absolute then it is interpreted as relative from the
+ * current address. In that case url is just a path, if it is a
+ * relative path the new address simply concatenates the path and
+ * uses the same host:port; if it is an absolute path only the host
+ * and port are used.
+ */
ACE_URL_Addr* create_relative_address (const ACE_TCHAR *url) const;
- // Create an address from a (possibly) relative URL, such as
- // "../foo.html", or "/icons/bar.gif"
- // If the URL is absolute (like "http://www/foo" or "ftp:host/bar")
- // it simply returns the correct ACE_URL_Addr object; but if the URL
- // is not absolute then it is interpreted as relative from the
- // current address. In that case url is just a path, if it is a
- // relative path the new address simply concatenates the path and
- // uses the same host:port; if it is an absolute path only the host
- // and port are used.
// = The ACE_URL methods, see the documentation above.
virtual int string_to_addr (const ACE_TCHAR *address);
@@ -218,87 +228,84 @@ public:
virtual int accept (ACE_URL_Addr_Visitor* visitor);
private:
+ /// Compute the size required to store the URL in a string
+ /// representation.
size_t url_size (int flags = 0) const;
- // Compute the size required to store the URL in a string
- // representation.
+ /// Helper method to cleanup resources
void clear (void);
- // Helper method to cleanup resources
private:
+ /// The host:port component in the URL
ACE_TCHAR *hostname_;
u_short port_number_;
- // The host:port component in the URL
+ /// The path component in the URL
ACE_TCHAR *path_;
- // The path component in the URL
+ /// The query component in the URL
ACE_TCHAR *query_;
- // The query component in the URL
};
// ****************************************************************
+/**
+ * @class ACE_FTP_Addr
+ *
+ * @brief Defines the FTP scheme addresses
+ *
+ * Encapsulates an FTP URL; usually an FTP URL is of the form:
+ * ftp://hostname/path
+ * but the most general form is:
+ * ftp://user:password@hostname/path
+ * the [:password] part can be omitted too.
+ */
class ACE_WEBSVCS_Export ACE_FTP_Addr : public ACE_URL_Addr
{
- // = TITLE
- // Defines the FTP scheme addresses
- //
- // = DESCRIPTION
- // Encapsulates an FTP URL; usually an FTP URL is of the form:
- //
- // ftp://hostname/path
- //
- // but the most general form is:
- //
- // ftp://user:password@hostname/path
- //
- // the [:password] part can be omitted too.
- //
public:
+ /// Constructor
ACE_FTP_Addr (void);
- // Constructor
+ /// Construct an FTP URL from the host_name, the path, the username
+ /// and the password.
ACE_FTP_Addr (const ACE_TCHAR *host_name,
const ACE_TCHAR *path,
const ACE_TCHAR *user = 0,
const ACE_TCHAR *password = 0);
- // Construct an FTP URL from the host_name, the path, the username
- // and the password.
+ /// Essentially the constructor above.
int set (const ACE_TCHAR *host_name,
const ACE_TCHAR *path,
const ACE_TCHAR *user = 0,
const ACE_TCHAR *password = 0);
- // Essentially the constructor above.
+ /// Copy constructor.
ACE_FTP_Addr (const ACE_FTP_Addr &addr);
- // Copy constructor.
+ /// Assignment operator
ACE_FTP_Addr& operator= (const ACE_FTP_Addr &addr);
- // Assignment operator
+ /// Essentially the copy constructor.
int set (const ACE_FTP_Addr &addr);
- // Essentially the copy constructor.
+ /// Destructor
virtual ~ACE_FTP_Addr (void);
- // Destructor
+ /// Get the host name component in the URL
const ACE_TCHAR *get_hostname (void) const;
- // Get the host name component in the URL
+ /// Get the username component in the URL
const ACE_TCHAR *get_user (void) const;
- // Get the username component in the URL
+ /// Get the password component in the URL
const ACE_TCHAR *get_passwd (void) const;
- // Get the password component in the URL
+ /// Get the path component in the URL
const ACE_TCHAR *get_path (void) const;
- // Get the path component in the URL
+ /// Obtain the INET_Address implicit in the URL, can be used to
+ /// obtain the host and the port.
ACE_INET_Addr get_inet_address (void) const;
- // Obtain the INET_Address implicit in the URL, can be used to
- // obtain the host and the port.
// = The ACE_Addr methods, see the documentation above.
virtual int string_to_addr (const ACE_TCHAR *address);
@@ -308,69 +315,70 @@ public:
virtual int accept (ACE_URL_Addr_Visitor* visitor);
private:
+ /// Compute the size required to store the URL in a string
+ /// representation.
size_t url_size (int flags = 0) const;
- // Compute the size required to store the URL in a string
- // representation.
+ /// Helper method to release the internal resources
void clear (void);
- // Helper method to release the internal resources
private:
+ /// The login name
ACE_TCHAR *user_;
ACE_TCHAR *password_;
- // The login name
+ /// The hostname part.
ACE_TCHAR *hostname_;
- // The hostname part.
+ /// The other components.
ACE_TCHAR *path_;
- // The other components.
};
// ****************************************************************
+/**
+ * @class ACE_Mailto_Addr
+ *
+ * @brief Defines the mailto scheme addresses
+ *
+ * Encapsulates an URL that refers to an email address.
+ */
class ACE_WEBSVCS_Export ACE_Mailto_Addr : public ACE_URL_Addr
{
- // = TITLE
- // Defines the mailto scheme addresses
- //
- // = DESCRIPTION
- // Encapsulates an URL that refers to an email address.
- //
public:
+ /// Constructor
ACE_Mailto_Addr (void);
- // Constructor
+ /// Construct an FTP URL from the host, path and headers.
ACE_Mailto_Addr (const ACE_TCHAR *user,
const ACE_TCHAR *hostname,
const ACE_TCHAR *headers = 0);
- // Construct an FTP URL from the host, path and headers.
+ /// Essentially the constructor above.
int set (const ACE_TCHAR *user,
const ACE_TCHAR *hostname,
const ACE_TCHAR *headers = 0);
- // Essentially the constructor above.
+ /// Copy constructor.
ACE_Mailto_Addr (const ACE_Mailto_Addr &addr);
- // Copy constructor.
+ /// Assignment operator
ACE_Mailto_Addr& operator= (const ACE_Mailto_Addr &addr);
- // Assignment operator
+ /// Essentially the copy constructor.
int set (const ACE_Mailto_Addr &addr);
- // Essentially the copy constructor.
+ /// Destructor
virtual ~ACE_Mailto_Addr (void);
- // Destructor
+ /// Get the username component in the URL
const ACE_TCHAR *get_user (void) const;
- // Get the username component in the URL
+ /// Get the hostname component in the URL
const ACE_TCHAR *get_hostname (void) const;
- // Get the hostname component in the URL
+ /// Get the headers as a single string
const ACE_TCHAR *get_headers (void) const;
- // Get the headers as a single string
// @@ TODO A mailto: URL can contain multiple headers, an iterator
// over them would be a good idea. Similarly a method to *add*
@@ -384,12 +392,12 @@ public:
virtual int accept (ACE_URL_Addr_Visitor* visitor);
private:
+ /// Compute the size required to store the URL in a string
+ /// representation.
size_t url_size (int flags = 0) const;
- // Compute the size required to store the URL in a string
- // representation.
+ /// Helper method to cleanup resources
void clear (void);
- // Helper method to cleanup resources
private:
ACE_TCHAR *user_;
diff --git a/ACE/websvcs/tests/Test_URL_Addr.cpp b/ACE/websvcs/tests/Test_URL_Addr.cpp
index 4f4e33d3cde..e8fbef2197c 100644
--- a/ACE/websvcs/tests/Test_URL_Addr.cpp
+++ b/ACE/websvcs/tests/Test_URL_Addr.cpp
@@ -3,7 +3,7 @@
#include "websvcs/lib/URL_Addr.h"
#include "ace/Log_Msg.h"
-ACE_RCSID(WEBSVCS_Test, Test_URL_Addr, "$Id$")
+
void test_http_addr (void);
void test_ftp_addr (void);